{"version":3,"sources":["preload.js","closesFieldFlyout.js","autonumeric.js","jquery.scrollTo.js","jquery.myhighlight.js","jquery.inputmask.bundle.js","jstree.js","transition.js","collapse.js","moment.min.js","bootstrap-datetimepicker.js","errorstackparser.js","dropdown.js","dropdowntree.js","fileDragAndDrop.js","keyHandling.js","moneyField.js","nameField.js","nav.js","numberField.js","percentField.js","phoneNumber.js","phoneField.js","table.js","dropzone.js","knockout-prerendered.js","errorHandling.js","timeago.min.js","timeago.js","jquery-ui.min.js"],"names":["RUSTIG_BASEPATH","document","querySelector","getAttribute","substr","CKEDITOR_BASEPATH","error","console","warn","ClosesFieldFlyout","options","$lastClicked","disableKeyPress","$","click","e","target","closest","flyoutSelector","length","hideFlyout","mousedown","on","flyoutButtonSelector","setTimeout","mainInput","keypress","showFlyout","onKeyPress","keyCode","keydown","indexOf","arrowKeys","keyup","setElementSelection","that","start","end","r","undefined","selectionStart","focus","createTextRange","collapse","moveEnd","moveStart","select","selectionEnd","convertKeyToNumber","settings","key","autoCode","$this","each","k","val","autoNumeric","tagList","vmax","vMax","toString","split","vmin","vMin","mDec","mRound","allowLeading","aNeg","replace","mInt","Math","max","vminLength","vmaxLength","altDec","aDec","aSep","aNegReg","aNegRegAutoStrip","skipFirstAutoStrip","RegExp","skipLastAutoStrip","allowed","aNum","allowedAutoStrip","numRegAutoStrip","autoStrip","s","strip_zero","aSign","parts","m","match","join","lZero","nSign","charAt","slice","strip_reg","negativeBracket","brackets","pSign","nBracket","hasFocus","removeBrackets","checkValue","value","checkSmall","substring","fixNumber","presentNumber","checkEmpty","iv","signOnEmpty","wEmpty","autoGroup","testNeg","empty","digitalGroup","dGroup","ivSplit","test","has_aNeg","autoRound","round","truncateZeros","ivRounded","regex","rDec","i","aPad","dPos","lastIndexOf","vdPos","cDec","zeros","rLength","tRound","ivArray","odd","onePass","truncateDecimal","paste","autoCheck","AutoNumericHolder","this","$that","formatted","settingsClone","autoGet","obj","getHolder","update","data","holder","get","prototype","init","position","ctrlKey","cmdKey","metaKey","shiftKey","selection","createRange","text","type","kdCode","which","processed","setSelection","setReal","min","setPosition","pos","getBeforeAfter","getBeforeAfterStriped","normalizeParts","left","right","new_value","setValueParts","signPosition","aSignLen","valueLen","expandSelectionOnSign","sign_position","checkPaste","oldParts","valuePartsBeforePaste","skipAllways","processAllways","processKeypress","cCode","String","fromCharCode","formatQuick","leftLength","subParts","left_ar","leftReg","newLeft","methods","tagData","$input","is","extend","fn","defaults","runOnce","prop","toLowerCase","inArray","aForm","setValue","anDefault","readOnly","preventDefault","skip","checkVal","$settings","inVal","onEmpty","origValue","groupedValue","change","destroy","off","removeData","strip","set","valueIn","testValue","attr","isNumeric","setEvent","getValue","eq","getString","isAutoNumeric","formParts","serialize","formIndex","index","allFormElements","aiIndex","scIndex","rsubmitterTypes","rsubmittable","rcheckableType","rnonAutoNumericTypes","count","field","name","localName","disabled","checked","push","miniParts","scElement","getArray","formFields","serializeArray","getSettings","method","apply","Array","call","arguments","sNumber","jQuery","factory","define","amd","module","exports","require","$scrollTo","scrollTo","duration","window","isWin","elem","nodeName","both","isFunction","isPlainObject","top","axis","limit","onAfter","queue","offset","over","toff","win","contentWindow","$elem","targ","style","Pos","prev","margin","parseInt","css","parseFloat","animate","onAfterFirst","callback","opts","complete","Dim","scroll","size","doc","ownerDocument","html","documentElement","body","Tween","propHooks","scrollLeft","scrollTop","t","curr","interrupt","_last","stop","next","now","highlight","pattern","innerHighlight","node","nodeType","spanNode","middleClone","search","createElement","className","middleBit","splitText","cloneNode","appendChild","parentNode","replaceChild","childNodes","tagName","removeHighlight","find","firstChild","normalize","Inputmask","alias","el","noMasksCache","definitions","userOptions","resolveAlias","isInputEventSupported","eventName","evName","isSupported","setAttribute","aliasStr","aliasDefinition","aliases","mask","generateMaskSet","nocache","analyseMask","MaskToken","isGroup","isOptional","isQuantifier","isAlternator","matches","quantifier","insertTestDefinition","mtoken","element","maskdef","prevMatch","escaped","placeholder","prevalidators","prevalidator","prevalidatorsL","cardinality","validator","splice","optionality","newBlockMarker","def","definitionSymbol","casing","verifyGroupMarker","lastMatch","isOpenGroup","groupmarker","maskCurrentToken","currentToken","extraCondition","defaultCase","openenings","currentOpeningToken","alternator","pop","mndx","openingToken","groupToken","tokenizer","maskTokens","exec","escapeChar","optionalmarker","quantifiermarker","mq","mq0","isNaN","mq1","alternatormarker","numericInput","reverseTokens","maskToken","reverse","qt","intMatch","st","generateMask","metadata","repeatStart","masksetDefinition","greedy","repeat","masksCache","validPositions","_buffer","buffer","tests","preProcessMask","ms","isArray","keepStatic","altMask","ndx","msk","maskScope","actionObj","maskset","getMaskTemplate","baseOnInput","minimalPos","includeInput","validPos","ndxIntlzr","maskTemplate","locator","input","getPlaceholder","testPos","getTestTemplate","maxLength","resetMaskSet","soft","p","getLastValidPosition","closestTo","strict","valids","posNdx","before","after","psNdx","setValidPosition","validTest","fromSetValid","insertMode","positionsClone","lvp","j","valid","vps","posMatch","prevPosMatch","getMaskLength","optionalQuantifier","getTests","alternation","seekNext","positionCanMatchDefinition","isValid","getMaskSet","stripValidPositions","nocheck","startPos","canClearPosition","isMask","ml","radixPoint","tstPs","testPositions","lvTest","lvTestAltArr","checkAlternationMatch","getTest","tndx","cacheable","resolveTestFromToken","ndxInitializer","loopNdx","quantifierRecurse","shift","handleMatch","optionalToken","latestMatch","insertStop","maltMatches","alternateToken","malternateMatches","currentMatches","loopNdxCnt","altIndex","currentPos","ndxInitializerClone","altIndexArr","amndx","ntndx","alternateNdx","previousMatch","lmnt","resolveNdxInitializer","concat","ndx1","altMatch","ndx2","altMatch2","map","isFinite","altLocArr","alndx","qndx","tokenGroup","previousPos","mtndx","getBufferTemplate","getBuffer","noCache","refreshFromBuffer","skipOptionalPartCharacter","altArr1","altArr2","altArrC","isMatch","c","_isValid","rslt","tst","loopend","chrs","validatedPos","possibleModifiedBuffer","remove","sort","a","b","insert","refresh","toUpperCase","pndx","postValidResult","maskPos","result","currentPosValid","nPos","snPos","originalPos","newPos","bestMatch","equality","targetLocator","tll","ps","trackbackAlternations","caret","lastAlt","isValidRslt","altPos","validPsClone","lAlt","decisionPos","altNdxs","decisionTaker","possibilityPos","possibilities","dp","validInputs","staticInputsBeforePos","targetLvp","staticInputsBeforePosAlternate","alternate","postValidation","maskLength","newBlock","maskL","nojumps","nojumpsThreshold","seekPrevious","writeBuffer","caretPos","event","triggerInputEvent","onBeforeWrite","inputmask","_valueSet","skipInputEvent","trigger","prevTest","staticAlternations","writeOut","nptvl","staticInput","inputValue","charCodes","initialNdx","autoUnmask","escapeRegex","charCode","Event","charCodeAt","nextTest","charCodeNdx","bufferTemplateArr","isTemplateMatch","keypressEvent","activeElement","unmaskedvalue","umValue","unmaskedValue","isRTL","bufferValue","onUnMask","begin","translatePosition","setSelectionRange","getSelection","range","getRangeAt","commonAncestorContainer","startOffset","endOffset","duplicate","sel","scrollCalc","defaultView","getComputedStyle","currentStyle","fontSize","scrollWidth","androidchrome","textNode","createTextNode","setStart","_valueGet","setEnd","removeAllRanges","addRange","determineLastRequiredPosition","returnDefinition","bl","positions","lvTestAlt","l","clearOptionalTail","rl","lmib","isComplete","lrp","aml","wrapEventRuler","eventHandler","inComposition","keydownPressed","imOpts","tabThrough","TAB","skipKeyPressEvent","handleRemove","pend","BACKSPACE","DELETE","groupSeparator","generalize","keydownEvent","iphone","undoValue","showTooltip","title","tooltip","END","PAGE_DOWN","HOME","PAGE_UP","undoOnEscape","ESCAPE","altKey","INSERT","RIGHT","LEFT","onKeyDown","ignorable","ignorables","checkval","ENTER","isSlctn","undoPositions","multi","writeOutBuffer","self","valResult","forwardPosition","onKeyValidation","pasteEvent","valueBeforeCaret","ev","originalEvent","valueAfterCaret","clipboardData","getData","pasteValue","onBeforePaste","inputFallBackEvent","mobileInputEvent","currentValue","compositionStartEvent","compositionData","compositionUpdateEvent","newData","compositionEndEvent","setValueEvent","onBeforeMask","clearMaskOnLostFocus","clearIncomplete","focusEvent","nptValue","showMaskOnFocus","showMaskOnHover","mouseEnter","positionCaretOnTab","mouseleaveEvent","clickEvent","clickPosition","lastPosition","selectedCaret","clickPos","radixFocus","radixPos","vp","doRadixFocus","dblclickEvent","cutEvent","clipData","setData","execCommand","blurEvent","mouseenterEvent","submitEvent","$el","removeMaskOnSubmit","resetEvent","valueBuffer","npt","valueGet","valueSet","valhookGet","valhookSet","action","dir","rightAlign","textAlign","removeAttribute","__valueGet","Object","getOwnPropertyDescriptor","textContent","defineProperty","getter","setter","__lookupGetter__","__lookupSetter__","__defineGetter__","__defineSetter__","valHooks","inputmaskpatch","bufferTemplate","overruleRTL","__valueSet","inputType","isContentEditable","form","PasteEventType","oncomplete","onincomplete","oncleared","androidfirefox","android","kindle","initialValue","valueProperty","firstAlt","noop","pastedValue","supportsInputType","9","*","elems","getElementById","querySelectorAll","scopedOpts","importOption","option","optionData","dataoptions","attrOptions","JSON","parse","importAttributeOptions","getemptymask","hasMaskedValue","getmetadata","format","extendDefaults","extendDefinitions","definition","extendAliases","unmask","str","ALT","CAPS_LOCK","COMMA","COMMAND","COMMAND_LEFT","COMMAND_RIGHT","CONTROL","DOWN","MENU","NUMPAD_ADD","NUMPAD_DECIMAL","NUMPAD_DIVIDE","NUMPAD_ENTER","NUMPAD_MULTIPLY","NUMPAD_SUBTRACT","PERIOD","SHIFT","SPACE","UP","WINDOWS","ua","navigator","userAgent","nptmask","triggerHandler","h","d","y","dd/mm/yyyy","val1pre","val1","val2pre","separator","escapedSeparator","val2","leapday","yearrange","minyear","maxyear","isInYearRange","enteredyear","enteredyear2","determinebaseyear","hint","currentyear","Date","getFullYear","maxYearPrefix","maxYearPostfix","maxxYear","today","getDate","getMonth","getFrontValue","1","pchrs","2","frontValue","year","yearPrefix","mm/dd/yyyy","yyyy/mm/dd","dd.mm.yyyy","dd-mm-yyyy","mm.dd.yyyy","mm-dd-yyyy","yyyy.mm.dd","yyyy-mm-dd","datetime","hrspre","hrs24","hrs","ampm","mspre","timeseparator","hourFormat","tmp","datetime12","mm/dd/yyyy hh:mm xm","hh:mm t","h:s t","hh:mm:ss","hh:mm","date","mm/yyyy","shamsi","A","&","#","url","ip","maskedValue","email","mac","numeric","autoEscape","txt","escapedTxt","mod","integerDigits","groupSize","seps","floor","integerOptional","digitsOptional","digits","decimalProtect","prefix","negationSymbol","back","suffix","allowPlus","allowMinus","front","step","unmaskAsNumber","postFormat","reformatOnly","suffixStripped","needsRefresh","charAtPos","cbuf","bufValOrigin","bufVal","escapedGroupSeparator","radixSplit","reg","processValue","tmpBufSplit","matchRslt","integerPart","matchRsltDigits","integerNPart","radixPosition","signHandler","radixHandler","integerValue","leadingZeroHandler","_radixPosition","digitsMatch","integerMatch","~","+","-",":","radix","Number","bufClone","kommaMatches","digitsFactor","dotMatches","decPart","pow","positionInput","canClear","radixInjection","intPart","radixPart","currency","decimal","integer","percentage","phone","countrycode","maskList","ajax","async","dataType","success","response","xhr","ajaxOptions","thrownError","alert","processedValue","phonebe","Regex","regexTokens","quantifierFilter","RegexToken","repeaterPart","cbuffer","regexPart","openGroupCount","opengroups","quantifierToken","analyseRegex","bufferStr","regexToken","validateRegexToken","token","fromGroup","isvalid","matchToken","crrntndx","matchGroup","regexPartBak","qm","testExp","tl","jstree","instance_counter","ccp_node","ccp_mode","ccp_inst","themes_loaded","src","setImmediate","Promise","cb","arg","resolve","then","version","plugins","path","idregex","root","create","core","opt","plugin","id","_id","_cnt","_wrk","_data","themes","dots","icons","ellipsis","selected","last_error","working","worker_queue","focused","reference","needle","ignore","inst","_model","is_method","args","instance","expr","pseudos","createPseudo","hasClass","strings","check_callback","animation","multiple","stripes","variant","responsive","expand_selected_onload","worker","force_text","dblclick_toggle","loaded_state","restore_focus","compute_elements_positions","keyboard","ctrl-space","currentTarget","enter","is_open","close_node","o","get_parent","get_node","children","up","get_prev_dom","is_closed","open_node","_firstChild","down","get_next_dom","open_all","home","get_container_ul","filter","last","f2","edit","deco","Child","changed","force_full_redraw","redraw_timeout","default_state","loaded","opened","parent","parents","children_d","state","addClass","ready","rtl","bind","original_container_html","clone","addBack","contents","nodeValue","get_string","li_height","first","outerHeight","_create_prototype_node","load_node","keep_html","URL","revokeObjectURL","teardown","_temp1","_temp2","_node","_kbevent_to_func","8","13","19","27","32","33","34","35","36","37","38","39","40","44","45","46","96","97","98","99","100","101","102","103","104","105","-13","112","113","114","115","116","117","118","119","120","121","122","123","144","145","16","17","18","48","49","50","51","52","53","54","55","56","57","59","61","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","107","109","110","186","187","188","189","190","191","192","219","220","221","222","111","106","173","kb","hasOwnProperty","unbind","removeClass","word","tout","was_click","proxy","toggle_node","activate_node","f","status","vakata","array_unique","clearTimeout","chr","col","ind","v","set_theme","set_theme_variant","not","act","hover_node","dehover_node","get_container","dom","nextSibling","_nextSibling","_previousSibling","previousSibling","as_dom","ex","get_path","glue","ids","get_text","offsetHeight","parentsUntil","nextAll","lastChild","get_children_dom","is_parent","is_loaded","is_loading","loading","is_leaf","_load_nodes","array_filter","failed","_load_node","has_children","hidden","nodes","is_callback","force_reload","done","load_all","to_load","notTextOrCommentNode","parseHTML","x","getResponseHeader","_append_json_data","_append_html_data","reason","stringify","fail","_node_changed","dat","par","chd","dpc","_parse_model_from_html","redraw","force_processing","w","df","t_id","t_cnt","func","add","parse_flat","unshift","tid","icon","li_attr","a_attr","href","original","parse_nest","cnt","postMessage","Blob","Worker","createObjectURL","onmessage","terminate","attributes","trim","_parse_model_from_flat_json","_parse_model_from_json","_redraw","fe","redraw_node","append","full","draw_children","deep","force_render","old","last_sibling","backgroundImage","backgroundPosition","backgroundSize","innerHTML","insertBefore","t1","t2","slideDown","display","ok","_open_to","slideUp","original_obj","_this","close_all","is_disabled","enable_node","disable_node","is_hidden","hide_node","skip_redraw","show_node","hide_all","show_all","last_clicked","deselect_node","select_node","is_selected","deselect_all","supress_event","prevent_open","array_remove_item","select_all","old_selection","get_selected","get_top_selected","get_bottom_selected","get_state","open","set_state","initial_selection","isEmptyObject","skip_loading","forget_state","refresh_node","set_id","new","set_text","get_json","flat","get_icon","no_data","no_state","no_li_attr","no_a_attr","no_id","no_children","create_node","check","rename_node","delete_node","lft","array_remove","chk","more","chc","is_multi","functions","move_node","origin","old_par","old_pos","new_par","old_ins","copy_node","is_foreign","old_parent","old_position","old_instance","new_instance","cut","copy","get_buffer","mode","can_paste","clear_buffer","default_text","h1","h2","cancel","width","visibility","appendTo","class","padding","border","box-sizing","height","lineHeight","blur","stopImmediatePropagation","replaceWith","nv","fontFamily","fontWeight","fontStyle","fontStretch","fontVariant","letterSpacing","wordSpacing","one","theme_name","theme_url","theme","get_theme","variant_name","get_theme_variant","show_stripes","hide_stripes","toggle_stripes","show_dots","hide_dots","toggle_dots","show_icons","hide_icons","toggle_icons","show_ellipsis","hide_ellipsis","toggle_ellipsis","set_icon","removeAttr","hide_icon","show_icon","with_values","array","from","item","deselected","right_to_left","vakata_context","drg","elm","vakata_dnd","_i","checkbox","visible","three_state","whole_node","keep_selected_style","cascade","tie_selection","cascade_to_disabled","cascade_to_hidden","uto","_undetermined","cur","selectedIds","_cascade_new_checked_state","temp","undetermined","allIds","get_undetermined","tt","tmp2","checkbox_disabled","show_checkboxes","checkboxes","hide_checkboxes","toggle_checkboxes","is_undetermined","disable_checkbox","enable_checkbox","is_checked","uncheck_node","check_node","checkedState","selectedNodeIds","selectedChildrenIds","selectedChildIds","get_checked_descendants","childId","check_all","uncheck_all","get_checked","get_top_checked","get_bottom_checked","res","conditionalselect","contextmenu","show_at_node","items","separator_before","separator_after","_disabled","label","new_node","rename","ccp","submenu","ey","last_ts","cto","show_contextmenu","pageX","pageY","context","hide","changedTouches","clientX","clientY","abs","_show_contextmenu","cls","show","position_x","position_y","is_visible","hide_onmouseleave","_trigger","event_name","_execute","_parse","sep","_class","shortcut","shortcut_label","_show_submenu","xl","dw","dh","outerWidth","detach","to","contains","relatedTarget","siblings","prevAll","dnd","open_timeout","is_draggable","check_while_dragging","always_copy","inside_pos","drag_selection","touch","large_drop_target","large_drag_target","use_html5","mlt","escape","helper","lastmv","laster","lastev","opento","marker","isDifferentNode","rel","op","pr","tm","is_copy","pn","ins","ref","z","dataTransfer","dropEffect","_get","_clean","div","is_down","is_drag","helper_w","init_x","init_y","scroll_l","scroll_t","scroll_e","scroll_i","is_touch","scroll_speed","scroll_proximity","helper_left","helper_top","threshold","threshold_touch","clearInterval","drag","_scroll","init_only","setInterval","elementFromPoint","pageXOffset","pageYOffset","unselectable","onselectstart","touchAction","msTouchAction","MozUserSelect","zIndex","wh","ww","dt","dl","ht","hl","scrollHeight","offsetWidth","massload","toLoad","fuzzy","case_sensitive","show_only_matches","show_only_matches_children","close_opened_onclear","search_leaves_only","search_callback","opn","som","smc","hdn","skip_async","inside","clear_search","lastRequest","abort","caseSensitive","ii","matchmask","pattern_alphabet","match_bitapScore","MATCH_LOCATION","location","MATCH_DISTANCE","distance","MATCH_THRESHOLD","patternLen","accuracy","proximity","score","binMin","binMid","lastRd","finish","rd","charMatch","textLen","scoreThreshold","bestLoc","binMax","locations","events","ttl","preserve_loaded","save_state","restore_state","sec","storage","clear_state","del","localStorage","setItem","getItem","removeItem","types","default","_delete_ids","get_rules","max_children","valid_children","max_depth","get_type","rules","set_type","old_type","old_icon","unique","trim_whitespace","counter","n","wholerow","customElements","proto","HTMLElement","createdCallback","emulateTransitionEnd","called","support","transition","transEndEventNames","WebkitTransition","MozTransition","OTransition","transitionEnd","special","bsTransitionEnd","bindType","delegateType","handle","handleObj","handler","Collapse","$element","DEFAULTS","$trigger","transitioning","$parent","getParent","addAriaAndCollapsedClass","toggle","getTargetFromTrigger","Plugin","VERSION","TRANSITION_DURATION","dimension","actives","activesData","startEvent","isDefaultPrevented","scrollSize","camelCase","isOpen","toggleClass","Constructor","noConflict","$target","moment","ru","ui","fi","ft","ei","valueOf","kt","sf","utc","_pf","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","uu","_d","getTime","invalidWeekday","_strict","bigHour","fu","NaN","gi","u","_isAMomentObject","_f","_l","_tzm","_isUTC","_offset","_locale","di","nr","updateOffset","ceil","eu","ou","su","hu","et","oi","_abbr","gt","ot","cu","abbr","ho","ni","lu","pt","au","si","vu","tr","wt","localeData","ordinal","rr","pu","ir","yu","Function","lo","invalidDate","longDateFormat","hi","lastIndex","er","or","_w","sr","UTC","getUTCDate","gu","monthsParse","nf","hr","_a","g","ct","_overflowDayOfYear","tf","suppressDeprecationWarnings","Error","stack","rf","ts","lr","ar","yi","wr","us","setFullYear","vr","setUTCFullYear","uf","ff","lt","day","week","dayOfYear","bt","_useUTC","getUTCFullYear","getUTCMonth","GG","W","E","_week","dow","doy","gg","getUTCDay","ls","_dayOfYear","_nextDay","setUTCMinutes","getUTCMinutes","ISO_8601","_meridiem","meridiemHour","isPM","of","preparse","ws","createFromInputFallback","rs","oo","month","hour","minute","second","millisecond","bs","lf","pi","quarter","_milliseconds","_days","_months","_bubble","br","af","utcOffset","kr","vf","dr","setTime","local","gr","getTimezoneOffset","yf","it","M","milliseconds","pf","wf","at","isBefore","bf","months","isAfter","kf","cr","te","toISOString","toDate","ie","re","wi","ue","se","meridiem","hours","minutes","he","_meridiemParse","no","io","ri","ro","uo","fo","iu","ut","as","vt","sv","yt","nt","relativeTime","ki","bi","asSeconds","gf","nu","rt","pe","momentProperties","wu","bu","ur","ci","li","fr","ai","vi","ti","monthsShort","ku","du","parseTwoDigitYear","yr","ef","hf","cf","ne","defaultFormat","locale","weekYear","isoWeekYear","_ordinalParse","_ordinalParseLenient","tu","weekdaysMin","weekdaysShort","weekdays","weekdaysParse","ee","oe","_isPm","ce","le","ae","ve","ye","calendar","startOf","diff","endOf","subtract","postformat","humanize","fromNow","toNow","invalidAt","isBetween","isSame","lang","parsingFlags","seconds","weekday","isoWeekday","toArray","toObject","years","toJSON","unix","isLeapYear","quarters","daysInMonth","weeks","isoWeek","isoWeeks","weeksInYear","isoWeeksInYear","days","getDay","_changeInProgress","parseZone","hasAlignedHourOffset","isDST","isDSTShifted","_isDSTShifted","isLocal","isUtcOffset","isUtc","isUTC","zoneAbbr","zoneName","dates","zone","be","LTS","LT","L","LL","LLL","LLLL","ge","future","past","mm","hh","dd","MM","yy","_calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","_longDateFormat","_invalidDate","_ordinal","_relativeTime","pastFuture","source","_monthsShort","_monthsParse","_longMonthsParse","_shortMonthsParse","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParse","ordinalParse","langData","la","aa","va","ya","pa","wa","ba","ka","ga","tv","rv","uv","fv","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","toIsoString","isDate","invalid","isMoment","isDuration","defineLocale","normalizeUnits","relativeTimeThreshold","dateTimePicker","getMoment","tzEnabled","tz","timeZone","currentZoneOffset","parseFormats","useStrict","timeZoneIndicator","dateWithTimeZoneInfo","isEnabled","granularity","TypeError","actualFormat","hasTime","hasDate","getTimePickerTemplate","topRow","middleRow","hoursView","minutesView","secondsView","ret","bottomRow","tabindex","tooltips","incrementHour","data-time-component","pickHour","decrementHour","incrementMinute","pickMinute","decrementMinute","incrementSecond","pickSecond","decrementSecond","use24Hours","data-action","togglePeriod","getTemplate","template","dateView","headTemplate","previous","calendarWeeks","contTemplate","timeView","content","toolbar","row","showTodayButton","sideBySide","selectTime","time","showClear","clear","showClose","close","inline","toolbarPlacement","place","component","vertical","widgetPositioning","horizontal","widgetParent","widget","bottom","notifyEvent","oldDate","viewUpdate","viewDate","showMode","currentViewMode","minViewModeNumber","datePickerModes","clsName","targetMoment","testDate","disabledDates","enabledDates","minDate","maxDate","daysOfWeekDisabled","disabledHours","enabledHours","disabledTimeIntervals","found","fillDate","currentDate","monthsView","daysView","daysViewHeader","prevMonth","selectMonth","nextMonth","dayViewHeaderFormat","unset","monthsViewHeader","prevYear","selectYear","nextYear","yearsView","yearsViewHeader","startYear","endYear","prevDecade","selectDecade","nextDecade","updateYears","decadesView","decadesViewHeader","startDecade","endDecade","startedAt","prevCentury","nextCentury","updateDecades","fillTime","newDate","timeComponents","table","currentHour","fillHours","currentMinute","stepping","fillMinutes","currentSecond","fillSeconds","keepInvalid","collapseData","picker","doAction","actions","currentMoment","ignoreReadonly","parseInputDate","useCurrent","fillDow","spans","fillMonths","focusOnShow","index2","keyBindKeys","allModifiersPressed","pressedKeys","pressedModifiers","currentKey","keyState","keyBinds","keyMap","stopPropagation","parsedDate","indexGivenDates","givenDatesArray","givenDatesIndexed","dDate","keys","indexGivenHours","givenHoursArray","givenHoursIndexed","initFormatting","formatInput","formatInput2","extraFormats","dataOptions","eData","navFnc","navStep","viewModes","verticalModes","horizontalModes","toolbarPlacements","tab","pageUp","pageDown","control","space","delete","pickerSwitch","selectDay","keepOpen","incrementHours","incrementMinutes","incrementSeconds","decrementHours","decrementMinutes","decrementSeconds","togglePicker","expanded","closed","showPicker","showHours","showMinutes","showSeconds","selectHour","selectMinute","selectSecond","todaysDate","inputDate","allowInputToggle","disable","enable","newOptions","newFormat","newZone","formats","reduce","previousValue","tries","defaultDate","useCurrentOptions","viewMode","debug","datepickerInput","dateOptions","attributeName","datetimepicker","control up","control down","control space","StackFrame","setFunctionName","setArgs","setFileName","setLineNumber","setColumnNumber","setSource","getFunctionName","functionName","getArgs","getFileName","fileName","getLineNumber","lineNumber","getColumnNumber","columnNumber","getSource","ErrorStackParser","stacktrace","parseOpera","parseV8OrIE","parseFFOrSafari","extractLocation","message","parseOpera9","parseOpera11","parseOpera10","dropDown","reload","clearLastValue","$select","dropDownId","$textInput","hideButton","displayValue","flyoutWidth","hasOverridenWidth","$buttonHtml","$field","displayStyle","$flyout","mouseInContainer","mouseInField","mouseInFlyout","updateMouseInContainer","allowsCustomInput","selectedOption","$items","$selected","changeSupressed","previouslySelectedValue","setValueForCustomInput","setValueForSelect","documentClick","populateOptions","displayItem","onButtonClick","initialTextValue","$button","tabKeyPressed","enterPressed","emptyOption","selectItem","resetValue","dropdownAttr","random","selectTextInput","selectId","asData","filteritems","insertAfter","asDataSelector","mouseenter","mouseleave","selectHasValue","isEmpty","$item","outerHTML","textInputId","isDisabled","foundItem","isReadonly","$containerFlyout","Rustig","ElementPosition","setPositionByElement","upPressed","downPressed","$prev","$next","$firstItem","hasSelectedItem","treeItems","$currentItem","$tree","changeSuppressed","currentItem","getItemByValue","eventHandlers","raise","handlers","existingHandlers","selectedItem","jstreeNode","selectNone","populate","$treeTarget","trimmedSearchText","unescape","$listItem","$nodes","searchtext","$n","selectNextItem","$current","selectPreviousItem","filterItems","filterText","$noneItem","clearFilter","forEach","parentIndex","dropdowntree","$mainInput","mainInputInitialValue","setTextInputValue","flyoutAttr","flyoutId","populated","$hiddenInput","getInitialText","setSelectedItem","customValue","lastSelectedValue","itemToReselect","$targetAndParents","updating","positionFlyout","inputOffset","resize","reset","isUpdating","$selectedItem","selectItemByValue","itemValue","Legacy","fileDragAndDrop","$self","setDragEffect","effect","isOnFileInput","addDropStyle","$dropArea","removeDropStyle","onDropMissed","onFileDrop","files","onDropIsNotFile","itemMissed","addEventListener","keyHandling","keyIsNonPrintable","nonPrintableKeyCodes","includeEnter","moneyField","symbol","hasAttribute","NameField","fields","getOpenFields","fieldId","openFields","nameField","$prefix","$first","$middle","$last","$suffix","sizeFlyoutToInput","notLastClickedInDropDownFlyout","documentClicked","documentMouseDown","suppressChanges","updateInputs","fieldObject","mainId","$fieldContainer","copyFieldBooleanAttributes","$flyoutButton","flyoutRight","keepFlyoutInWindow","PersonName","middle","refreshFormattedName","formattedName","asAtomicChange","enableChildren","disableChildren","resizeFlyout","uniqueId","Nav","toggleMenu","$targetMenu","selectTabs","$root","selectedTab","log","indicateActive","shouldOpen","shouldActivate","$targetElement","$childNav","openParentNav","selectTab","nav","numberField","percentField","decimals","PhoneNumber","countryCode","areaCode","number","extension","cc","area","ext","isAmerican","isAmericanCountryCode","isAmericanAreaCode","isAmericanNumber","numberToParse","xAt","ccEndsAt","phoneField","$countryCode","$areaCode","$phoneNumber","$extension","setPhone","settingPhone","TableHelper","SetSelectAllStateForTable","$table","$selectAll","isAllChecked","SyncSelectAllForFixedHeader","SingleSelectRow","$siblingRows","$targetRow","$newSelectedRow","shouldSelect","selectedRow","HandleSingleRowVisible","isSingleRowVisible","Dropzone","camelize","contentLoaded","detectVerticalSquash","drawImageIOSFix","without","resolveOption","__slice","__hasProp","Emitter","defaultOptions","previewTemplate","clickableElements","listeners","dropzone","instances","elementOptions","_ref","optionsForElement","forceFallback","isBrowserSupported","fallback","acceptedFiles","acceptedMimeTypes","getExistingFallback","removeChild","previewsContainer","getElement","previewsContainerPrepend","clickable","getElements","_callbacks","emit","callbacks","_len","removeListener","removeAllListeners","removeEventListener","child","ctor","constructor","__super__","__extends","withCredentials","parallelUploads","uploadMultiple","maxFilesize","paramName","createImageThumbnails","maxThumbnailFilesize","thumbnailWidth","thumbnailHeight","thumbnailSquare","confirm","filesizeBase","maxFiles","params","ignoreHiddenFiles","autoProcessQueue","autoQueue","addRemoveLinks","hiddenInputContainer","capture","renameFilename","dictDefaultMessage","dictFallbackMessage","dictFallbackText","dictFileTooBig","dictInvalidFileType","dictResponseError","dictCancelUpload","dictCancelUploadConfirmation","dictRemoveFile","dictRemoveFileConfirmation","dictMaxFilesExceeded","accept","file","messageElement","span","getElementsByTagName","innerText","getFallbackForm","ratio","info","srcX","srcY","srcWidth","srcHeight","srcRatio","optWidth","optHeight","trgRatio","trgHeight","trgWidth","drop","classList","dragstart","dragend","dragenter","dragover","dragleave","addedfile","removeFileEvent","removeLink","_j","_k","_len1","_len2","_ref1","_ref2","_results","previewElement","_renameFilename","filesize","_removeLink","UPLOADING","removeFile","removedfile","_updateMaxFilesReachedClass","thumbnail","dataUrl","thumbnailElement","alt","errormultiple","processing","processingmultiple","uploadprogress","progress","bytesSent","totaluploadprogress","sending","sendingmultiple","successmultiple","canceled","canceledmultiple","completemultiple","maxfilesexceeded","maxfilesreached","queuecomplete","addedfiles","object","objects","getAcceptedFiles","accepted","getRejectedFiles","getFilesWithStatus","getQueuedFiles","QUEUED","getUploadingFiles","getAddedFiles","ADDED","getActiveFiles","noPropagation","setupHiddenFileInput","hiddenFileInput","addFile","webkitURL","updateTotalUploadProgress","returnValue","efct","effectAllowed","_error","clickableElement","evt","elementInside","updatePreviewContainer","previewContainer","prepend","addClickableElement","addElementAsDragAndDropArea","dragDropClass","removeAllFiles","totalUploadProgress","totalBytesSent","totalBytes","upload","total","_getParamName","fieldsString","existingFallback","getFallback","elements","setupEventListeners","elementListeners","listener","_results1","removeEventListeners","cancelUpload","unit","units","selectedSize","selectedUnit","_addFilesFromItems","handleFiles","entry","webkitGetAsEntry","isFile","getAsFile","isDirectory","_addFilesFromDirectory","kind","directory","readEntries","dirReader","createReader","errorHandler","entries","fullPath","isValidFile","_enqueueThumbnail","_errorProcessing","enqueueFile","initExistingFile","SUCCESS","enqueueFiles","processQueue","_thumbnailQueue","_processingThumbnail","_processThumbnailQueue","createThumbnail","cancelIfNecessary","fileReader","FileReader","onload","createThumbnailFromUrl","readAsDataURL","imageUrl","crossOrigin","img","resizeInfo","_ref3","ctx","canvas","getContext","trgX","trgY","toDataURL","onerror","queuedFiles","processingLength","processFiles","processFile","uploadFiles","_getFilesWithXhr","groupedFile","groupedFiles","CANCELED","uploadFile","formData","handleError","headerName","headerValue","headers","inputName","updateProgress","_len3","_m","_ref4","_ref5","XMLHttpRequest","allFilesFinished","readyState","responseText","_finished","onprogress","Accept","Cache-Control","X-Requested-With","setRequestHeader","FormData","submitRequest","send","ERROR","forElement","autoDiscover","discover","checkElements","dropzones","blacklistedBrowsers","capableBrowser","File","FileList","list","rejectedItem","string","container","els","question","rejected","baseMimeType","mimeType","validType","ACCEPTED","PROCESSING","naturalWidth","py","sy","ih","naturalHeight","drawImage","getImageData","sx","sw","sh","dx","dy","vertSquashRatio","rem","pre","poll","doScroll","createEventObject","frameElement","_autoDiscoverFunction","KnockoutElse","ko","commentNodesHaveTextProperty","createComment","startCommentRegex","isVirtualNode","makeTemplateNode","sourceNode","namedTemplate","attribute","utils","arrayFirst","virtualElements","removeNode","valueToChangeAddExistingItem","InitializedForeach","spec","$context","noContext","templateNode","afterQueueFlush","beforeQueueFlush","changeQueue","lastNodesList","indexesToDelete","rendering_queued","existingElements","arrayFilter","arrayForEach","existingElement","primeData","unwrap","onArrayChange","isObservable","trackArrayChanges","changeSubs","subscribe","animateFrame","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","dispose","changeSet","changeMap","added","existing","deleted","changeItem","childContext","createChildContext","applyBindings","referenceElement","templateClone","applyBindingsToDescendants","ptr","lastNode","clearDeletedIndexes","bindingHandlers","foreachInit","valueAccessor","bindings","viewModel","initializedForeach","$rawData","domNodeDisposal","addDisposeCallback","controlsDescendantBindings","allowedBindings","allBindings","unwrappedValue","peekObservable","valueElement","fieldValue","errorHandling","timeago","nowDate","defaultLocale","en","zh_CN","_","doRender","render","dataset","setLocale","register","en_short","cleanData","Widget","_createWidget","_proto","_childConstructors","_super","_superApply","widgetEventPrefix","namespace","widgetName","widgetFullName","bridge","jquery","pushStack","_init","defaultElement","classes","uuid","eventNamespace","hoverable","focusable","classesElementLookup","_on","parentWindow","_getCreateOptions","_create","_setOptionDisabled","_getCreateEventData","_destroy","_removeClass","_setOptions","_setOption","_setOptionClasses","_classes","_toggleClass","extra","_untrackClassesElement","_addClass","guid","_off","_delay","_hoverable","_focusable","focusin","focusout","delay","effects","easing","scrollParent","_mouseInit","_mouseDown","started","_mouseDestroy","_mouseMoveDelegate","_mouseUpDelegate","_mouseMoved","_mouseStarted","_mouseUp","_mouseDownEvent","_mouseCapture","mouseDelayMet","_mouseDelayTimer","_mouseDistanceMet","_mouseDelayMet","_mouseStart","_mouseMove","documentMode","button","ignoreMissingWhich","_mouseDrag","_mouseStop","safeActiveElement","safeBlur","mouse","addClasses","connectToSortable","containment","cursor","cursorAt","grid","iframeFix","opacity","refreshPositions","revert","revertDuration","scope","scrollSensitivity","scrollSpeed","snap","snapMode","snapTolerance","_setPositionRelative","_setHandleClassName","_removeHandleClassName","destroyOnClear","_getHandle","_blurActiveElement","_blockFrames","iframeBlocks","_unblockFrames","_createHelper","_cacheHelperProportions","ddmanager","current","_cacheMargins","cssPosition","offsetParent","hasFixedAncestor","positionAbs","_refreshOffsets","originalPosition","_generatePosition","originalPageX","originalPageY","_adjustOffsetFromHelper","_setContainment","_clear","dropBehaviour","prepareOffsets","dragStart","margins","_getParentOffset","relative","_getRelativeOffset","_convertPositionTo","_uiHash","dropped","dragStop","handleElement","helperProportions","_isRootNode","relativeContainer","cancelHelperRemoval","sortables","sortable","isOver","_storedCSS","_helper","_intersectsWith","containerCache","_parent","fromOutside","_revert","_cursor","_opacity","scrollParentNotHidden","overflowOffset","snapElements","snapping","release","snapItem","makeArray","_zIndex","draggable"],"mappings":"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","file":"rustig.legacy.min.js","sourcesContent":["\r\ntry {\r\n var RUSTIG_BASEPATH = document.querySelector(\"meta[name='rustigbase']\").getAttribute(\"content\");\r\n if (RUSTIG_BASEPATH.substr(-1) !== '/') {\r\n RUSTIG_BASEPATH += '/';\r\n }\r\n var CKEDITOR_BASEPATH = RUSTIG_BASEPATH + \"ckeditor/\";\r\n\r\n} catch (error) {\r\n console.warn(\"You must include a meta tag with the rustig base path in your markup.\\nOmitting this value may cause certain modules to work incorrectly\\nExample: \");\r\n}\r\n\r\n","/*\r\n * ClosesFieldFlyout class, contains logic for closing flyouts that contain fields (ex: address field)\r\n * inputs:\r\n * options.showFlyout: function that will show the flyout\r\n * options.hideFlyout: function that will hide the flyout\r\n * options.mainInput: jquery result containing the mainInput object\r\n * options.flyoutSelector: jquery selector that locates the flyout div\r\n * options.flyoutButtonSelector: jquery selector that locates the flyout button\r\n * options.disableKeyPress: optional bool, default is true\r\n * options.onKeyPress: optional function that takes in a keyCode and is called on keypress, only called if disableKeyPress is true\r\n */\r\nfunction ClosesFieldFlyout(options) {\r\n if (options.disableKeyPress == null) options.disableKeyPress = true;\r\n\r\n // for closing the flyout when you click off\r\n $(document).click(function (e) {\r\n if ($(e.target).closest(options.flyoutSelector).length == 0)\r\n options.hideFlyout();\r\n });\r\n\r\n var $lastClicked;\r\n $(document).mousedown(function (e) {\r\n $lastClicked = $(e.target);\r\n });\r\n\r\n var notLastClickedInFlyout = function () {\r\n if (!$lastClicked) return true;\r\n return $lastClicked.closest(options.flyoutSelector).length == 0;\r\n }\r\n\r\n var notLastClickedFlyoutButton = function () {\r\n if (!$lastClicked) return true;\r\n return $lastClicked.closest(options.flyoutButtonSelector).length == 0;\r\n }\r\n\r\n // for closing the flyout when you tab out\r\n $(options.flyoutSelector + ' input').on('blur', function () {\r\n if (notLastClickedInFlyout() && notLastClickedFlyoutButton()) {\r\n setTimeout(function () {\r\n if ($(options.flyoutSelector + ' input:focus').length == 0)\r\n options.hideFlyout();\r\n }, 10);\r\n }\r\n $lastClicked = null;\r\n });\r\n\r\n if (options.disableKeyPress) {\r\n // for opening the flyout when you type a printable key\r\n options.mainInput.keypress(function (e) {\r\n options.showFlyout();\r\n\r\n if (options.onKeyPress != null)\r\n options.onKeyPress(e.keyCode);\r\n return false;\r\n });\r\n\r\n options.mainInput.keydown(function (e) {\r\n if ([8, 46].indexOf(e.keyCode) != -1) { // backspace, delete\r\n options.showFlyout();\r\n return false;\r\n }\r\n });\r\n }\r\n\r\n // for opening the flyout when you type an arrow key\r\n options.mainInput.keydown(function (e) {\r\n var arrowKeys;\r\n if (options.disableKeyPress)\r\n arrowKeys = [37, 38, 39, 40]; // all arrows\r\n else\r\n arrowKeys = [40]; // down arrow\r\n\r\n if (arrowKeys.indexOf(e.keyCode) != -1)\r\n options.showFlyout();\r\n\r\n var hideKeys;\r\n if (options.disableKeyPress)\r\n hideKeys = [27]; // esc\r\n else\r\n hideKeys = [27, 13]; // and enter\r\n\r\n if (hideKeys.indexOf(e.keyCode) != -1)\r\n options.hideFlyout();\r\n });\r\n\r\n // for closing the flyout when you hit ESC\r\n $(options.flyoutSelector).keyup(function (e) {\r\n if (e.keyCode == 27) // esc\r\n options.hideFlyout();\r\n });\r\n}\r\n","/**\r\n * autoNumeric.js\r\n * @author: Bob Knothe\r\n * @author: Sokolov Yura\r\n * @version: 1.9.39 - 2015-07-17 GMT 5:00 PM / 19:00\r\n *\r\n * Created by Robert J. Knothe on 2010-10-25. Please report any bugs to https://github.com/BobKnothe/autoNumeric\r\n * Contributor by Sokolov Yura on 2010-11-07\r\n *\r\n * Copyright (c) 2011 Robert J. Knothe http://www.decorplanit.com/plugin/\r\n *\r\n * The MIT License (http://www.opensource.org/licenses/mit-license.php)\r\n *\r\n * Permission is hereby granted, free of charge, to any person\r\n * obtaining a copy of this software and associated documentation\r\n * files (the \"Software\"), to deal in the Software without\r\n * restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the\r\n * Software is furnished to do so, subject to the following\r\n * conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be\r\n * included in all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\r\n * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\r\n * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\r\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\r\n * OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n(function ($) {\r\n \"use strict\";\r\n /*jslint browser: true*/\r\n /*global jQuery: false*/\r\n /*Cross browser routine for getting selected range/cursor position\r\n */\r\n\r\n /**\r\n * Cross browser routine for getting selected range/cursor position\r\n */\r\n function getElementSelection(that) {\r\n var position = {};\r\n if (that.selectionStart === undefined) {\r\n that.focus();\r\n var select = document.selection.createRange();\r\n position.length = select.text.length;\r\n select.moveStart('character', -that.value.length);\r\n position.end = select.text.length;\r\n position.start = position.end - position.length;\r\n } else {\r\n position.start = that.selectionStart;\r\n position.end = that.selectionEnd;\r\n position.length = position.end - position.start;\r\n }\r\n return position;\r\n }\r\n\r\n /**\r\n * Cross browser routine for setting selected range/cursor position\r\n */\r\n function setElementSelection(that, start, end) {\r\n if (that.selectionStart === undefined) {\r\n that.focus();\r\n var r = that.createTextRange();\r\n r.collapse(true);\r\n r.moveEnd('character', end);\r\n r.moveStart('character', start);\r\n r.select();\r\n } else {\r\n that.selectionStart = start;\r\n that.selectionEnd = end;\r\n }\r\n }\r\n\r\n /**\r\n * run callbacks in parameters if any\r\n * any parameter could be a callback:\r\n * - a function, which invoked with jQuery element, parameters and this parameter name and returns parameter value\r\n * - a name of function, attached to $(selector).autoNumeric.functionName(){} - which was called previously\r\n */\r\n function runCallbacks($this, settings) {\r\n /**\r\n * loops through the settings object (option array) to find the following\r\n * k = option name example k=aNum\r\n * val = option value example val=0123456789\r\n */\r\n $.each(settings, function (k, val) {\r\n if (typeof val === 'function') {\r\n settings[k] = val($this, settings, k);\r\n } else if (typeof $this.autoNumeric[val] === 'function') {\r\n /**\r\n * calls the attached function from the html5 data example: data-a-sign=\"functionName\"\r\n */\r\n settings[k] = $this.autoNumeric[val]($this, settings, k);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Converts the vMin, vMax & mDec string to numeric value\r\n */\r\n function convertKeyToNumber(settings, key) {\r\n if (typeof (settings[key]) === 'string') {\r\n settings[key] *= 1;\r\n }\r\n }\r\n\r\n /**\r\n * Preparing user defined options for further usage\r\n * merge them with defaults appropriately\r\n */\r\n function autoCode($this, settings) {\r\n runCallbacks($this, settings);\r\n settings.tagList = ['b', 'caption', 'cite', 'code', 'dd', 'del', 'div', 'dfn', 'dt', 'em', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ins', 'kdb', 'label', 'li', 'output', 'p', 'q', 's', 'sample', 'span', 'strong', 'td', 'th', 'u', 'var'];\r\n var vmax = settings.vMax.toString().split('.'),\r\n vmin = (!settings.vMin && settings.vMin !== 0) ? [] : settings.vMin.toString().split('.');\r\n convertKeyToNumber(settings, 'vMax');\r\n convertKeyToNumber(settings, 'vMin');\r\n convertKeyToNumber(settings, 'mDec'); /** set mDec if not defined by user */\r\n settings.mDec = (settings.mRound === 'CHF') ? '2' : settings.mDec;\r\n settings.allowLeading = true;\r\n settings.aNeg = settings.vMin < 0 ? '-' : '';\r\n vmax[0] = vmax[0].replace('-', '');\r\n vmin[0] = vmin[0].replace('-', '');\r\n settings.mInt = Math.max(vmax[0].length, vmin[0].length, 1);\r\n if (settings.mDec === null) {\r\n var vmaxLength = 0,\r\n vminLength = 0;\r\n if (vmax[1]) {\r\n vmaxLength = vmax[1].length;\r\n }\r\n if (vmin[1]) {\r\n vminLength = vmin[1].length;\r\n }\r\n settings.mDec = Math.max(vmaxLength, vminLength);\r\n } /** set alternative decimal separator key */\r\n if (settings.altDec === null && settings.mDec > 0) {\r\n if (settings.aDec === '.' && settings.aSep !== ',') {\r\n settings.altDec = ',';\r\n } else if (settings.aDec === ',' && settings.aSep !== '.') {\r\n settings.altDec = '.';\r\n }\r\n }\r\n /** cache regexps for autoStrip */\r\n var aNegReg = settings.aNeg ? '([-\\\\' + settings.aNeg + ']?)' : '(-?)';\r\n settings.aNegRegAutoStrip = aNegReg;\r\n settings.skipFirstAutoStrip = new RegExp(aNegReg + '[^-' + (settings.aNeg ? '\\\\' + settings.aNeg : '') + '\\\\' + settings.aDec + '\\\\d]' + '.*?(\\\\d|\\\\' + settings.aDec + '\\\\d)');\r\n settings.skipLastAutoStrip = new RegExp('(\\\\d\\\\' + settings.aDec + '?)[^\\\\' + settings.aDec + '\\\\d]\\\\D*$');\r\n var allowed = '-' + settings.aNum + '\\\\' + settings.aDec;\r\n settings.allowedAutoStrip = new RegExp('[^' + allowed + ']', 'gi');\r\n settings.numRegAutoStrip = new RegExp(aNegReg + '(?:\\\\' + settings.aDec + '?(\\\\d+\\\\' + settings.aDec + '\\\\d+)|(\\\\d*(?:\\\\' + settings.aDec + '\\\\d*)?))');\r\n return settings;\r\n }\r\n\r\n /**\r\n * strips all unwanted characters and leave only a number alert\r\n */\r\n function autoStrip(s, settings, strip_zero) {\r\n if (settings.aSign) { /** remove currency sign */\r\n while (s.indexOf(settings.aSign) > -1) {\r\n s = s.replace(settings.aSign, '');\r\n }\r\n }\r\n s = s.replace(settings.skipFirstAutoStrip, '$1$2'); /** first replace anything before digits */\r\n s = s.replace(settings.skipLastAutoStrip, '$1'); /** then replace anything after digits */\r\n s = s.replace(settings.allowedAutoStrip, ''); /** then remove any uninterested characters */\r\n if (settings.altDec) {\r\n s = s.replace(settings.altDec, settings.aDec);\r\n } /** get only number string */\r\n var m = s.match(settings.numRegAutoStrip);\r\n s = m ? [m[1], m[2], m[3]].join('') : '';\r\n if ((settings.lZero === 'allow' || settings.lZero === 'keep') && strip_zero !== 'strip') {\r\n var parts = [],\r\n nSign = '';\r\n parts = s.split(settings.aDec);\r\n if (parts[0].indexOf('-') !== -1) {\r\n nSign = '-';\r\n parts[0] = parts[0].replace('-', '');\r\n }\r\n if (parts[0].length > settings.mInt && parts[0].charAt(0) === '0') { /** strip leading zero if need */\r\n parts[0] = parts[0].slice(1);\r\n }\r\n s = nSign + parts.join(settings.aDec);\r\n }\r\n if ((strip_zero && settings.lZero === 'deny') || (strip_zero && settings.lZero === 'allow' && settings.allowLeading === false)) {\r\n var strip_reg = '^' + settings.aNegRegAutoStrip + '0*(\\\\d' + (strip_zero === 'leading' ? ')' : '|$)');\r\n strip_reg = new RegExp(strip_reg);\r\n s = s.replace(strip_reg, '$1$2');\r\n }\r\n return s;\r\n }\r\n\r\n /**\r\n * places or removes brackets on negative values\r\n * works only when with pSign: 'p'\r\n */\r\n function negativeBracket(s, settings) {\r\n if (settings.pSign === 'p') {\r\n var brackets = settings.nBracket.split(',');\r\n if (!settings.hasFocus && !settings.removeBrackets) {\r\n s = s.replace(settings.aNeg, '');\r\n s = brackets[0] + s + brackets[1];\r\n } else if ((settings.hasFocus && s.charAt(0) === brackets[0]) || (settings.removeBrackets && s.charAt(0) === brackets[0])) {\r\n s = s.replace(brackets[0], settings.aNeg);\r\n s = s.replace(brackets[1], '');\r\n }\r\n }\r\n return s;\r\n }\r\n\r\n /**\r\n * function to handle numbers less than 0 that are stored in Exponential notation ex: .0000001 stored as 1e-7\r\n */\r\n function checkValue(value, settings) {\r\n if (value) {\r\n var checkSmall = +value;\r\n if (checkSmall < 0.000001 && checkSmall > -1) {\r\n value = +value;\r\n if (value < 0.000001 && value > 0) {\r\n value = (value + 10).toString();\r\n value = value.substring(1);\r\n }\r\n if (value < 0 && value > -1) {\r\n value = (value - 10).toString();\r\n value = '-' + value.substring(2);\r\n }\r\n value = value.toString();\r\n } else {\r\n var parts = value.split('.');\r\n if (parts[1] !== undefined) {\r\n if (+parts[1] === 0) {\r\n value = parts[0];\r\n } else {\r\n parts[1] = parts[1].replace(/0*$/, '');\r\n value = parts.join('.');\r\n }\r\n }\r\n }\r\n }\r\n return (settings.lZero === 'keep') ? value : value.replace(/^0*(\\d)/, '$1');\r\n }\r\n\r\n /**\r\n * prepare number string to be converted to real number\r\n */\r\n function fixNumber(s, aDec, aNeg) {\r\n if (aDec && aDec !== '.') {\r\n s = s.replace(aDec, '.');\r\n }\r\n if (aNeg && aNeg !== '-') {\r\n s = s.replace(aNeg, '-');\r\n }\r\n if (!s.match(/\\d/)) {\r\n s += '0';\r\n }\r\n return s;\r\n }\r\n\r\n /**\r\n * prepare real number to be converted to our format\r\n */\r\n function presentNumber(s, aDec, aNeg) {\r\n if (aNeg && aNeg !== '-') {\r\n s = s.replace('-', aNeg);\r\n }\r\n if (aDec && aDec !== '.') {\r\n s = s.replace('.', aDec);\r\n }\r\n return s;\r\n }\r\n\r\n /**\r\n * private function to check for empty value\r\n */\r\n function checkEmpty(iv, settings, signOnEmpty) {\r\n if (iv === '' || iv === settings.aNeg) {\r\n if (settings.wEmpty === 'zero') {\r\n return iv + '0';\r\n }\r\n if (settings.wEmpty === 'sign' || signOnEmpty) {\r\n return iv + settings.aSign;\r\n }\r\n return iv;\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * private function that formats our number\r\n */\r\n function autoGroup(iv, settings) {\r\n iv = autoStrip(iv, settings);\r\n var testNeg = iv.replace(',', '.'),\r\n empty = checkEmpty(iv, settings, true);\r\n if (empty !== null) {\r\n return empty;\r\n }\r\n var digitalGroup = '';\r\n if (settings.dGroup === 2) {\r\n digitalGroup = /(\\d)((\\d)(\\d{2}?)+)$/;\r\n } else if (settings.dGroup === 4) {\r\n digitalGroup = /(\\d)((\\d{4}?)+)$/;\r\n } else {\r\n digitalGroup = /(\\d)((\\d{3}?)+)$/;\r\n } /** splits the string at the decimal string */\r\n var ivSplit = iv.split(settings.aDec);\r\n if (settings.altDec && ivSplit.length === 1) {\r\n ivSplit = iv.split(settings.altDec);\r\n } /** assigns the whole number to the a variable (s) */\r\n var s = ivSplit[0];\r\n if (settings.aSep) {\r\n while (digitalGroup.test(s)) { /** re-inserts the thousand separator via a regular expression */\r\n s = s.replace(digitalGroup, '$1' + settings.aSep + '$2');\r\n }\r\n }\r\n if (settings.mDec !== 0 && ivSplit.length > 1) {\r\n if (ivSplit[1].length > settings.mDec) {\r\n ivSplit[1] = ivSplit[1].substring(0, settings.mDec);\r\n } /** joins the whole number with the decimal value */\r\n iv = s + settings.aDec + ivSplit[1];\r\n } else { /** if whole numbers only */\r\n iv = s;\r\n }\r\n if (settings.aSign) {\r\n var has_aNeg = iv.indexOf(settings.aNeg) !== -1;\r\n iv = iv.replace(settings.aNeg, '');\r\n iv = settings.pSign === 'p' ? settings.aSign + iv : iv + settings.aSign;\r\n if (has_aNeg) {\r\n iv = settings.aNeg + iv;\r\n }\r\n }\r\n if (testNeg < 0 && settings.nBracket !== null) { /** removes the negative sign and places brackets */\r\n iv = negativeBracket(iv, settings);\r\n }\r\n return iv;\r\n }\r\n\r\n /**\r\n * round number after setting by pasting or $().autoNumericSet()\r\n * private function for round the number\r\n * please note this handled as text - JavaScript math function can return inaccurate values\r\n * also this offers multiple rounding methods that are not easily accomplished in JavaScript\r\n */\r\n function autoRound(iv, settings) { /** value to string */\r\n iv = (iv === '') ? '0' : iv.toString();\r\n convertKeyToNumber(settings, 'mDec'); /** set mDec to number needed when mDec set by 'update method */\r\n if (settings.mRound === 'CHF') {\r\n iv = (Math.round(iv * 20) / 20).toString();\r\n }\r\n var ivRounded = '',\r\n i = 0,\r\n nSign = '',\r\n rDec = (typeof (settings.aPad) === 'boolean' || settings.aPad === null) ? (settings.aPad ? settings.mDec : 0) : +settings.aPad;\r\n var truncateZeros = function (ivRounded) { /** truncate not needed zeros */\r\n var regex = (rDec === 0) ? (/(\\.(?:\\d*[1-9])?)0*$/) : rDec === 1 ? (/(\\.\\d(?:\\d*[1-9])?)0*$/) : new RegExp('(\\\\.\\\\d{' + rDec + '}(?:\\\\d*[1-9])?)0*$');\r\n ivRounded = ivRounded.replace(regex, '$1'); /** If there are no decimal places, we don't need a decimal point at the end */\r\n if (rDec === 0) {\r\n ivRounded = ivRounded.replace(/\\.$/, '');\r\n }\r\n return ivRounded;\r\n };\r\n if (iv.charAt(0) === '-') { /** Checks if the iv (input Value)is a negative value */\r\n nSign = '-';\r\n iv = iv.replace('-', ''); /** removes the negative sign will be added back later if required */\r\n }\r\n if (!iv.match(/^\\d/)) { /** append a zero if first character is not a digit (then it is likely to be a dot)*/\r\n iv = '0' + iv;\r\n }\r\n if (nSign === '-' && +iv === 0) { /** determines if the value is zero - if zero no negative sign */\r\n nSign = '';\r\n }\r\n if ((+iv > 0 && settings.lZero !== 'keep') || (iv.length > 0 && settings.lZero === 'allow')) { /** trims leading zero's if needed */\r\n iv = iv.replace(/^0*(\\d)/, '$1');\r\n }\r\n var dPos = iv.lastIndexOf('.'),\r\n /** virtual decimal position */\r\n vdPos = (dPos === -1) ? iv.length - 1 : dPos,\r\n /** checks decimal places to determine if rounding is required */\r\n cDec = (iv.length - 1) - vdPos; /** check if no rounding is required */\r\n if (cDec <= settings.mDec) {\r\n ivRounded = iv; /** check if we need to pad with zeros */\r\n if (cDec < rDec) {\r\n if (dPos === -1) {\r\n ivRounded += '.';\r\n }\r\n var zeros = '000000';\r\n while (cDec < rDec) {\r\n zeros = zeros.substring(0, rDec - cDec);\r\n ivRounded += zeros;\r\n cDec += zeros.length;\r\n }\r\n } else if (cDec > rDec) {\r\n ivRounded = truncateZeros(ivRounded);\r\n } else if (cDec === 0 && rDec === 0) {\r\n ivRounded = ivRounded.replace(/\\.$/, '');\r\n }\r\n if (settings.mRound !== 'CHF') {\r\n return (+ivRounded === 0) ? ivRounded : nSign + ivRounded;\r\n }\r\n if (settings.mRound === 'CHF') {\r\n dPos = ivRounded.lastIndexOf('.');\r\n iv = ivRounded;\r\n }\r\n\r\n } /** rounded length of the string after rounding */\r\n var rLength = dPos + settings.mDec,\r\n tRound = +iv.charAt(rLength + 1),\r\n ivArray = iv.substring(0, rLength + 1).split(''),\r\n odd = (iv.charAt(rLength) === '.') ? (iv.charAt(rLength - 1) % 2) : (iv.charAt(rLength) % 2),\r\n onePass = true;\r\n if (odd !== 1) {\r\n odd = (odd === 0 && (iv.substring(rLength + 2, iv.length) > 0)) ? 1 : 0;\r\n }\r\n /*jslint white: true*/\r\n if ((tRound > 4 && settings.mRound === 'S') || /** Round half up symmetric */\r\n (tRound > 4 && settings.mRound === 'A' && nSign === '') || /** Round half up asymmetric positive values */\r\n (tRound > 5 && settings.mRound === 'A' && nSign === '-') || /** Round half up asymmetric negative values */\r\n (tRound > 5 && settings.mRound === 's') || /** Round half down symmetric */\r\n (tRound > 5 && settings.mRound === 'a' && nSign === '') || /** Round half down asymmetric positive values */\r\n (tRound > 4 && settings.mRound === 'a' && nSign === '-') || /** Round half down asymmetric negative values */\r\n (tRound > 5 && settings.mRound === 'B') || /** Round half even \"Banker's Rounding\" */\r\n (tRound === 5 && settings.mRound === 'B' && odd === 1) || /** Round half even \"Banker's Rounding\" */\r\n (tRound > 0 && settings.mRound === 'C' && nSign === '') || /** Round to ceiling toward positive infinite */\r\n (tRound > 0 && settings.mRound === 'F' && nSign === '-') || /** Round to floor toward negative infinite */\r\n (tRound > 0 && settings.mRound === 'U') || /** round up away from zero */\r\n (settings.mRound === 'CHF')) { /** Round Swiss FRanc */\r\n /*jslint white: false*/\r\n for (i = (ivArray.length - 1); i >= 0; i -= 1) { /** Round up the last digit if required, and continue until no more 9's are found */\r\n if (ivArray[i] !== '.') {\r\n if (settings.mRound === 'CHF' && ivArray[i] <= 2 && onePass) {\r\n ivArray[i] = 0;\r\n onePass = false;\r\n break;\r\n }\r\n if (settings.mRound === 'CHF' && ivArray[i] <= 7 && onePass) {\r\n ivArray[i] = 5;\r\n onePass = false;\r\n break;\r\n }\r\n if (settings.mRound === 'CHF' && onePass) {\r\n ivArray[i] = 10;\r\n onePass = false;\r\n } else {\r\n ivArray[i] = +ivArray[i] + 1;\r\n }\r\n if (ivArray[i] < 10) {\r\n break;\r\n }\r\n if (i > 0) {\r\n ivArray[i] = '0';\r\n }\r\n }\r\n }\r\n }\r\n ivArray = ivArray.slice(0, rLength + 1); /** Reconstruct the string, converting any 10's to 0's */\r\n ivRounded = truncateZeros(ivArray.join('')); /** return rounded value */\r\n return (+ivRounded === 0) ? ivRounded : nSign + ivRounded;\r\n }\r\n\r\n /**\r\n * truncate decimal part of a number\r\n */\r\n function truncateDecimal(s, settings, paste) {\r\n var aDec = settings.aDec,\r\n mDec = settings.mDec;\r\n s = (paste === 'paste') ? autoRound(s, settings) : s;\r\n if (aDec && mDec) {\r\n var parts = s.split(aDec);\r\n /** truncate decimal part to satisfying length\r\n * cause we would round it anyway */\r\n if (parts[1] && parts[1].length > mDec) {\r\n if (mDec > 0) {\r\n parts[1] = parts[1].substring(0, mDec);\r\n s = parts.join(aDec);\r\n } else {\r\n s = parts[0];\r\n }\r\n }\r\n }\r\n return s;\r\n }\r\n\r\n /**\r\n * checking that number satisfy format conditions\r\n * and lays between settings.vMin and settings.vMax\r\n * and the string length does not exceed the digits in settings.vMin and settings.vMax\r\n */\r\n function autoCheck(s, settings) {\r\n s = autoStrip(s, settings);\r\n s = truncateDecimal(s, settings);\r\n s = fixNumber(s, settings.aDec, settings.aNeg);\r\n var value = +s;\r\n return value >= settings.vMin && value <= settings.vMax;\r\n }\r\n\r\n /**\r\n * Holder object for field properties\r\n */\r\n function AutoNumericHolder(that, settings) {\r\n this.settings = settings;\r\n this.that = that;\r\n this.$that = $(that);\r\n this.formatted = false;\r\n this.settingsClone = autoCode(this.$that, this.settings);\r\n this.value = that.value;\r\n }\r\n AutoNumericHolder.prototype = {\r\n init: function (e) {\r\n this.value = this.that.value;\r\n this.settingsClone = autoCode(this.$that, this.settings);\r\n this.ctrlKey = e.ctrlKey;\r\n this.cmdKey = e.metaKey;\r\n this.shiftKey = e.shiftKey;\r\n this.selection = getElementSelection(this.that); /** keypress event overwrites meaningful value of e.keyCode */\r\n if (e.type === 'keydown' || e.type === 'keyup') {\r\n this.kdCode = e.keyCode;\r\n }\r\n this.which = e.which;\r\n this.processed = false;\r\n this.formatted = false;\r\n },\r\n setSelection: function (start, end, setReal) {\r\n start = Math.max(start, 0);\r\n end = Math.min(end, this.that.value.length);\r\n this.selection = {\r\n start: start,\r\n end: end,\r\n length: end - start\r\n };\r\n if (setReal === undefined || setReal) {\r\n setElementSelection(this.that, start, end);\r\n }\r\n },\r\n setPosition: function (pos, setReal) {\r\n this.setSelection(pos, pos, setReal);\r\n },\r\n getBeforeAfter: function () {\r\n var value = this.value,\r\n left = value.substring(0, this.selection.start),\r\n right = value.substring(this.selection.end, value.length);\r\n return [left, right];\r\n },\r\n getBeforeAfterStriped: function () {\r\n var parts = this.getBeforeAfter();\r\n parts[0] = autoStrip(parts[0], this.settingsClone);\r\n parts[1] = autoStrip(parts[1], this.settingsClone);\r\n return parts;\r\n },\r\n\r\n /**\r\n * strip parts from excess characters and leading zeroes\r\n */\r\n normalizeParts: function (left, right) {\r\n var settingsClone = this.settingsClone;\r\n right = autoStrip(right, settingsClone); /** if right is not empty and first character is not aDec, */\r\n /** we could strip all zeros, otherwise only leading */\r\n var strip = right.match(/^\\d/) ? true : 'leading';\r\n left = autoStrip(left, settingsClone, strip); /** prevents multiple leading zeros from being entered */\r\n if ((left === '' || left === settingsClone.aNeg) && settingsClone.lZero === 'deny') {\r\n if (right > '') {\r\n right = right.replace(/^0*(\\d)/, '$1');\r\n }\r\n }\r\n var new_value = left + right; /** insert zero if has leading dot */\r\n if (settingsClone.aDec) {\r\n var m = new_value.match(new RegExp('^' + settingsClone.aNegRegAutoStrip + '\\\\' + settingsClone.aDec));\r\n if (m) {\r\n left = left.replace(m[1], m[1] + '0');\r\n new_value = left + right;\r\n }\r\n } /** insert zero if number is empty and io.wEmpty == 'zero' */\r\n if (settingsClone.wEmpty === 'zero' && (new_value === settingsClone.aNeg || new_value === '')) {\r\n left += '0';\r\n }\r\n return [left, right];\r\n },\r\n\r\n /**\r\n * set part of number to value keeping position of cursor\r\n */\r\n setValueParts: function (left, right, paste) {\r\n var settingsClone = this.settingsClone,\r\n parts = this.normalizeParts(left, right),\r\n new_value = parts.join(''),\r\n position = parts[0].length;\r\n if (autoCheck(new_value, settingsClone)) {\r\n new_value = truncateDecimal(new_value, settingsClone, paste);\r\n if (position > new_value.length) {\r\n position = new_value.length;\r\n }\r\n this.value = new_value;\r\n this.setPosition(position, false);\r\n return true;\r\n }\r\n return false;\r\n },\r\n\r\n /**\r\n * helper function for expandSelectionOnSign\r\n * returns sign position of a formatted value\r\n */\r\n signPosition: function () {\r\n var settingsClone = this.settingsClone,\r\n aSign = settingsClone.aSign,\r\n that = this.that;\r\n if (aSign) {\r\n var aSignLen = aSign.length;\r\n if (settingsClone.pSign === 'p') {\r\n var hasNeg = settingsClone.aNeg && that.value && that.value.charAt(0) === settingsClone.aNeg;\r\n return hasNeg ? [1, aSignLen + 1] : [0, aSignLen];\r\n }\r\n var valueLen = that.value.length;\r\n return [valueLen - aSignLen, valueLen];\r\n }\r\n return [1000, -1];\r\n },\r\n\r\n /**\r\n * expands selection to cover whole sign\r\n * prevents partial deletion/copying/overwriting of a sign\r\n */\r\n expandSelectionOnSign: function (setReal) {\r\n var sign_position = this.signPosition(),\r\n selection = this.selection;\r\n if (selection.start < sign_position[1] && selection.end > sign_position[0]) { /** if selection catches something except sign and catches only space from sign */\r\n if ((selection.start < sign_position[0] || selection.end > sign_position[1]) && this.value.substring(Math.max(selection.start, sign_position[0]), Math.min(selection.end, sign_position[1])).match(/^\\s*$/)) { /** then select without empty space */\r\n if (selection.start < sign_position[0]) {\r\n this.setSelection(selection.start, sign_position[0], setReal);\r\n } else {\r\n this.setSelection(sign_position[1], selection.end, setReal);\r\n }\r\n } else { /** else select with whole sign */\r\n this.setSelection(Math.min(selection.start, sign_position[0]), Math.max(selection.end, sign_position[1]), setReal);\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * try to strip pasted value to digits\r\n */\r\n checkPaste: function () {\r\n if (this.valuePartsBeforePaste !== undefined) {\r\n var parts = this.getBeforeAfter(),\r\n\r\n oldParts = this.valuePartsBeforePaste;\r\n delete this.valuePartsBeforePaste; /** try to strip pasted value first */\r\n parts[0] = parts[0].substr(0, oldParts[0].length) + autoStrip(parts[0].substr(oldParts[0].length), this.settingsClone);\r\n if (!this.setValueParts(parts[0], parts[1], 'paste')) {\r\n this.value = oldParts.join('');\r\n this.setPosition(oldParts[0].length, false);\r\n }\r\n }\r\n },\r\n\r\n /**\r\n * process pasting, cursor moving and skipping of not interesting keys\r\n * if returns true, further processing is not performed\r\n */\r\n skipAllways: function (e) {\r\n var kdCode = this.kdCode,\r\n which = this.which,\r\n ctrlKey = this.ctrlKey,\r\n cmdKey = this.cmdKey,\r\n shiftKey = this.shiftKey; /** catch the ctrl up on ctrl-v */\r\n if (((ctrlKey || cmdKey) && e.type === 'keyup' && this.valuePartsBeforePaste !== undefined) || (shiftKey && kdCode === 45)) {\r\n this.checkPaste();\r\n return false;\r\n }\r\n /** codes are taken from http://www.cambiaresearch.com/c4/702b8cd1-e5b0-42e6-83ac-25f0306e3e25/Javascript-Char-Codes-Key-Codes.aspx\r\n * skip Fx keys, windows keys, other special keys\r\n * Thanks Ney Estrabelli for the FF for Mac meta key support \"keycode 224\"\r\n */\r\n if ((kdCode >= 112 && kdCode <= 123) || (kdCode >= 91 && kdCode <= 93) || (kdCode >= 9 && kdCode <= 31) || (kdCode < 8 && (which === 0 || which === kdCode)) || kdCode === 144 || kdCode === 145 || kdCode === 45 || kdCode === 224) {\r\n return true;\r\n }\r\n if ((ctrlKey || cmdKey) && kdCode === 65) { /** if select all (a=65)*/\r\n return true;\r\n }\r\n if ((ctrlKey || cmdKey) && (kdCode === 67 || kdCode === 86 || kdCode === 88)) { /** if copy (c=67) paste (v=86) or cut (x=88) */\r\n if (e.type === 'keydown') {\r\n this.expandSelectionOnSign();\r\n }\r\n if (kdCode === 86 || kdCode === 45) { /** try to prevent wrong paste */\r\n if (e.type === 'keydown' || e.type === 'keypress') {\r\n if (this.valuePartsBeforePaste === undefined) {\r\n this.valuePartsBeforePaste = this.getBeforeAfter();\r\n }\r\n } else {\r\n this.checkPaste();\r\n }\r\n }\r\n return e.type === 'keydown' || e.type === 'keypress' || kdCode === 67;\r\n }\r\n if (ctrlKey || cmdKey) {\r\n return true;\r\n }\r\n if (kdCode === 37 || kdCode === 39) { /** jump over thousand separator */\r\n var aSep = this.settingsClone.aSep,\r\n start = this.selection.start,\r\n value = this.that.value;\r\n if (e.type === 'keydown' && aSep && !this.shiftKey) {\r\n if (kdCode === 37 && value.charAt(start - 2) === aSep) {\r\n this.setPosition(start - 1);\r\n } else if (kdCode === 39 && value.charAt(start + 1) === aSep) {\r\n this.setPosition(start + 1);\r\n }\r\n }\r\n return true;\r\n }\r\n if (kdCode >= 34 && kdCode <= 40) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n\r\n /**\r\n * process deletion of characters\r\n * returns true if processing performed\r\n */\r\n processAllways: function () {\r\n var parts; /** process backspace or delete */\r\n if (this.kdCode === 8 || this.kdCode === 46) {\r\n if (!this.selection.length) {\r\n parts = this.getBeforeAfterStriped();\r\n if (this.kdCode === 8) {\r\n parts[0] = parts[0].substring(0, parts[0].length - 1);\r\n } else {\r\n parts[1] = parts[1].substring(1, parts[1].length);\r\n }\r\n this.setValueParts(parts[0], parts[1]);\r\n } else {\r\n this.expandSelectionOnSign(false);\r\n parts = this.getBeforeAfterStriped();\r\n this.setValueParts(parts[0], parts[1]);\r\n }\r\n return true;\r\n }\r\n return false;\r\n },\r\n\r\n /**\r\n * process insertion of characters\r\n * returns true if processing performed\r\n */\r\n processKeypress: function () {\r\n var settingsClone = this.settingsClone,\r\n cCode = String.fromCharCode(this.which),\r\n parts = this.getBeforeAfterStriped(),\r\n left = parts[0],\r\n right = parts[1]; /** start rules when the decimal character key is pressed */\r\n /** always use numeric pad dot to insert decimal separator */\r\n if (cCode === settingsClone.aDec || (settingsClone.altDec && cCode === settingsClone.altDec) || ((cCode === '.' || cCode === ',') && this.kdCode === 110)) { /** do not allow decimal character if no decimal part allowed */\r\n if (!settingsClone.mDec || !settingsClone.aDec) {\r\n return true;\r\n } /** do not allow decimal character before aNeg character */\r\n if (settingsClone.aNeg && right.indexOf(settingsClone.aNeg) > -1) {\r\n return true;\r\n } /** do not allow decimal character if other decimal character present */\r\n if (left.indexOf(settingsClone.aDec) > -1) {\r\n return true;\r\n }\r\n if (right.indexOf(settingsClone.aDec) > 0) {\r\n return true;\r\n }\r\n if (right.indexOf(settingsClone.aDec) === 0) {\r\n right = right.substr(1);\r\n }\r\n this.setValueParts(left + settingsClone.aDec, right);\r\n return true;\r\n }\r\n /**\r\n * start rule on negative sign & prevent minus if not allowed\r\n */\r\n if (cCode === '-' || cCode === '+') {\r\n if (!settingsClone.aNeg) {\r\n return true;\r\n } /** caret is always after minus */\r\n if (left === '' && right.indexOf(settingsClone.aNeg) > -1) {\r\n left = settingsClone.aNeg;\r\n right = right.substring(1, right.length);\r\n } /** change sign of number, remove part if should */\r\n if (left.charAt(0) === settingsClone.aNeg) {\r\n left = left.substring(1, left.length);\r\n } else {\r\n left = (cCode === '-') ? settingsClone.aNeg + left : left;\r\n }\r\n this.setValueParts(left, right);\r\n return true;\r\n } /** digits */\r\n if (cCode >= '0' && cCode <= '9') { /** if try to insert digit before minus */\r\n if (settingsClone.aNeg && left === '' && right.indexOf(settingsClone.aNeg) > -1) {\r\n left = settingsClone.aNeg;\r\n right = right.substring(1, right.length);\r\n }\r\n if (settingsClone.vMax <= 0 && settingsClone.vMin < settingsClone.vMax && this.value.indexOf(settingsClone.aNeg) === -1 && cCode !== '0') {\r\n left = settingsClone.aNeg + left;\r\n }\r\n this.setValueParts(left + cCode, right);\r\n return true;\r\n } /** prevent any other character */\r\n return true;\r\n },\r\n\r\n /**\r\n * formatting of just processed value with keeping of cursor position\r\n */\r\n formatQuick: function () {\r\n var settingsClone = this.settingsClone,\r\n parts = this.getBeforeAfterStriped(),\r\n leftLength = this.value;\r\n if ((settingsClone.aSep === '' || (settingsClone.aSep !== '' && leftLength.indexOf(settingsClone.aSep) === -1)) && (settingsClone.aSign === '' || (settingsClone.aSign !== '' && leftLength.indexOf(settingsClone.aSign) === -1))) {\r\n var subParts = [],\r\n nSign = '';\r\n subParts = leftLength.split(settingsClone.aDec);\r\n if (subParts[0].indexOf('-') > -1) {\r\n nSign = '-';\r\n subParts[0] = subParts[0].replace('-', '');\r\n parts[0] = parts[0].replace('-', '');\r\n }\r\n if (subParts[0].length > settingsClone.mInt && parts[0].charAt(0) === '0') { /** strip leading zero if need */\r\n parts[0] = parts[0].slice(1);\r\n }\r\n parts[0] = nSign + parts[0];\r\n }\r\n var value = autoGroup(this.value, this.settingsClone),\r\n position = value.length;\r\n if (value) {\r\n /** prepare regexp which searches for cursor position from unformatted left part */\r\n var left_ar = parts[0].split(''),\r\n i = 0;\r\n for (i; i < left_ar.length; i += 1) { /** thanks Peter Kovari */\r\n if (!left_ar[i].match('\\\\d')) {\r\n left_ar[i] = '\\\\' + left_ar[i];\r\n }\r\n }\r\n var leftReg = new RegExp('^.*?' + left_ar.join('.*?'));\r\n /** search cursor position in formatted value */\r\n var newLeft = value.match(leftReg);\r\n if (newLeft) {\r\n position = newLeft[0].length;\r\n /** if we are just before sign which is in prefix position */\r\n if (((position === 0 && value.charAt(0) !== settingsClone.aNeg) || (position === 1 && value.charAt(0) === settingsClone.aNeg)) && settingsClone.aSign && settingsClone.pSign === 'p') {\r\n /** place caret after prefix sign */\r\n position = this.settingsClone.aSign.length + (value.charAt(0) === '-' ? 1 : 0);\r\n }\r\n } else if (settingsClone.aSign && settingsClone.pSign === 's') {\r\n /** if we could not find a place for cursor and have a sign as a suffix */\r\n /** place carret before suffix currency sign */\r\n position -= settingsClone.aSign.length;\r\n }\r\n }\r\n this.that.value = value;\r\n this.setPosition(position);\r\n this.formatted = true;\r\n }\r\n };\r\n\r\n /**\r\n * thanks to Anthony & Evan C\r\n */\r\n function autoGet(obj) {\r\n if (typeof obj === 'string') {\r\n obj = obj.replace(/\\[/g, \"\\\\[\").replace(/\\]/g, \"\\\\]\");\r\n obj = '#' + obj.replace(/(:|\\.)/g, '\\\\$1');\r\n /** obj = '#' + obj.replace(/([;&,\\.\\+\\*\\~':\"\\!\\^#$%@\\[\\]\\(\\)=>\\|])/g, '\\\\$1'); */\r\n /** possible modification to replace the above 2 lines */\r\n }\r\n return $(obj);\r\n }\r\n\r\n /**\r\n * function to attach data to the element\r\n * and imitate the holder\r\n */\r\n function getHolder($that, settings, update) {\r\n var data = $that.data('autoNumeric');\r\n if (!data) {\r\n data = {};\r\n $that.data('autoNumeric', data);\r\n }\r\n var holder = data.holder;\r\n if ((holder === undefined && settings) || update) {\r\n holder = new AutoNumericHolder($that.get(0), settings);\r\n data.holder = holder;\r\n }\r\n return holder;\r\n }\r\n\r\n var methods = {\r\n\r\n /**\r\n * Method to initiate autoNumeric and attached the settings (default and options passed as a parameter\r\n * $(someSelector).autoNumeric('init'); // initiate autoNumeric with defaults\r\n * $(someSelector).autoNumeric('init', {option}); // initiate autoNumeric with options\r\n * $(someSelector).autoNumeric(); // initiate autoNumeric with defaults\r\n * $(someSelector).autoNumeric({option}); // initiate autoNumeric with options\r\n * options passes as a parameter example '{aSep: '.', aDec: ',', aSign: '€ '}\r\n */\r\n init: function (options) {\r\n return this.each(function () {\r\n var $this = $(this),\r\n settings = $this.data('autoNumeric'), /** attempt to grab 'autoNumeric' settings, if they don't exist returns \"undefined\". */\r\n tagData = $this.data(), /** attempt to grab HTML5 data, if they don't exist we'll get \"undefined\".*/\r\n $input = $this.is('input[type=text], input[type=hidden], input[type=tel], input:not([type])');\r\n if (typeof settings !== 'object') { /** If we couldn't grab settings, create them from defaults and passed options. */\r\n settings = $.extend({}, $.fn.autoNumeric.defaults, tagData, options, {\r\n aNum: '0123456789',\r\n hasFocus: false,\r\n removeBrackets: false,\r\n runOnce: false,\r\n tagList: ['b', 'caption', 'cite', 'code', 'dd', 'del', 'div', 'dfn', 'dt', 'em', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ins', 'kdb', 'label', 'li', 'output', 'p', 'q', 's', 'sample', 'span', 'strong', 'td', 'th', 'u', 'var']\r\n }); /** Merge defaults, tagData and options */\r\n if (settings.aDec === settings.aSep) {\r\n $.error(\"autoNumeric will not function properly when the decimal character aDec: '\" + settings.aDec + \"' and thousand separator aSep: '\" + settings.aSep + \"' are the same character\");\r\n }\r\n $this.data('autoNumeric', settings); /** Save our new settings */\r\n } else {\r\n return this;\r\n }\r\n var holder = getHolder($this, settings);\r\n if (!$input && $this.prop('tagName').toLowerCase() === 'input') { /** checks for non-supported input types */\r\n $.error('The input type \"' + $this.prop('type') + '\" is not supported by autoNumeric()');\r\n\r\n }\r\n if ($.inArray($this.prop('tagName').toLowerCase(), settings.tagList) === -1 && $this.prop('tagName').toLowerCase() !== 'input') {\r\n $.error(\"The <\" + $this.prop('tagName').toLowerCase() + \"> is not supported by autoNumeric()\");\r\n\r\n }\r\n if (settings.runOnce === false && settings.aForm) { /** routine to format default value on page load */\r\n if ($input) {\r\n var setValue = true;\r\n if ($this[0].value === '' && settings.wEmpty === 'empty') {\r\n $this[0].value = '';\r\n setValue = false;\r\n }\r\n if ($this[0].value === '' && settings.wEmpty === 'sign') {\r\n $this[0].value = settings.aSign;\r\n setValue = false;\r\n }\r\n /** checks for page reload from back button\r\n * also checks for ASP.net form post back\r\n * the following HTML data attribute is REQUIRED (data-an-default=\"same value as the value attribute\")\r\n * example: \r\n */\r\n if (setValue && $this.val() !== '' && ((settings.anDefault === null && $this[0].value === $this.prop('defaultValue')) || (settings.anDefault !== null && settings.anDefault.toString() === $this.val()))) {\r\n $this.autoNumeric('set', $this.val());\r\n }\r\n }\r\n if ($.inArray($this.prop('tagName').toLowerCase(), settings.tagList) !== -1 && $this.text() !== '') {\r\n $this.autoNumeric('set', $this.text());\r\n }\r\n }\r\n settings.runOnce = true;\r\n if ($this.is('input[type=text], input[type=hidden], input[type=tel], input:not([type])')) { /**added hidden type */\r\n $this.on('keydown.autoNumeric', function (e) {\r\n holder = getHolder($this);\r\n if (holder.settings.aDec === holder.settings.aSep) {\r\n $.error(\"autoNumeric will not function properly when the decimal character aDec: '\" + holder.settings.aDec + \"' and thousand separator aSep: '\" + holder.settings.aSep + \"' are the same character\");\r\n }\r\n if (holder.that.readOnly) {\r\n holder.processed = true;\r\n return true;\r\n }\r\n /** The below streamed code / comment allows the \"enter\" keydown to throw a change() event */\r\n /** if (e.keyCode === 13 && holder.inVal !== $this.val()){\r\n $this.change();\r\n holder.inVal = $this.val();\r\n }*/\r\n holder.init(e);\r\n if (holder.skipAllways(e)) {\r\n holder.processed = true;\r\n return true;\r\n }\r\n if (holder.processAllways()) {\r\n holder.processed = true;\r\n holder.formatQuick();\r\n e.preventDefault();\r\n return false;\r\n }\r\n holder.formatted = false;\r\n return true;\r\n });\r\n $this.on('keypress.autoNumeric', function (e) {\r\n holder = getHolder($this);\r\n var processed = holder.processed;\r\n holder.init(e);\r\n if (holder.skipAllways(e)) {\r\n return true;\r\n }\r\n if (processed) {\r\n e.preventDefault();\r\n return false;\r\n }\r\n if (holder.processAllways() || holder.processKeypress()) {\r\n holder.formatQuick();\r\n e.preventDefault();\r\n return false;\r\n }\r\n holder.formatted = false;\r\n });\r\n $this.on('keyup.autoNumeric', function (e) {\r\n holder = getHolder($this);\r\n holder.init(e);\r\n var skip = holder.skipAllways(e);\r\n holder.kdCode = 0;\r\n delete holder.valuePartsBeforePaste;\r\n if ($this[0].value === holder.settings.aSign) { /** added to properly place the caret when only the currency is present */\r\n if (holder.settings.pSign === 's') {\r\n setElementSelection(this, 0, 0);\r\n } else {\r\n setElementSelection(this, holder.settings.aSign.length, holder.settings.aSign.length);\r\n }\r\n }\r\n if (skip) {\r\n return true;\r\n }\r\n if (this.value === '') {\r\n return true;\r\n }\r\n if (!holder.formatted) {\r\n holder.formatQuick();\r\n }\r\n });\r\n $this.on('focusin.autoNumeric', function () {\r\n holder = getHolder($this);\r\n var $settings = holder.settingsClone;\r\n $settings.hasFocus = true;\r\n if ($settings.nBracket !== null) {\r\n var checkVal = $this.val();\r\n $this.val(negativeBracket(checkVal, $settings));\r\n }\r\n holder.inVal = $this.val();\r\n var onEmpty = checkEmpty(holder.inVal, $settings, true);\r\n if (onEmpty !== null && onEmpty !== '') {\r\n $this.val(onEmpty);\r\n }\r\n });\r\n $this.on('focusout.autoNumeric', function () {\r\n holder = getHolder($this);\r\n var $settings = holder.settingsClone,\r\n value = $this.val(),\r\n origValue = value;\r\n $settings.hasFocus = false;\r\n var strip_zero = ''; /** added to control leading zero */\r\n if ($settings.lZero === 'allow') { /** added to control leading zero */\r\n $settings.allowLeading = false;\r\n strip_zero = 'leading';\r\n }\r\n if (value !== '') {\r\n value = autoStrip(value, $settings, strip_zero);\r\n if (checkEmpty(value, $settings) === null && autoCheck(value, $settings, $this[0])) {\r\n value = fixNumber(value, $settings.aDec, $settings.aNeg);\r\n value = autoRound(value, $settings);\r\n value = presentNumber(value, $settings.aDec, $settings.aNeg);\r\n } else {\r\n value = '';\r\n }\r\n }\r\n var groupedValue = checkEmpty(value, $settings, false);\r\n if (groupedValue === null) {\r\n groupedValue = autoGroup(value, $settings);\r\n }\r\n if (groupedValue !== holder.inVal || groupedValue !== origValue) {\r\n $this.val(groupedValue);\r\n $this.change();\r\n delete holder.inVal;\r\n }\r\n });\r\n }\r\n });\r\n },\r\n\r\n /**\r\n * method to remove settings and stop autoNumeric() - does not remove the formatting\r\n * $(someSelector).autoNumeric('destroy'); // destroy autoNumeric\r\n * no parameters accepted\r\n */\r\n destroy: function () {\r\n return $(this).each(function () {\r\n var $this = $(this);\r\n $this.off('.autoNumeric');\r\n $this.removeData('autoNumeric');\r\n });\r\n },\r\n\r\n /**\r\n * method to update settings - can be call as many times\r\n * $(someSelector).autoNumeric('update', {options}); // updates the settings\r\n * options passes as a parameter example '{aSep: '.', aDec: ',', aSign: '€ '}\r\n */\r\n update: function (options) {\r\n return $(this).each(function () {\r\n var $this = autoGet($(this)),\r\n settings = $this.data('autoNumeric');\r\n if (typeof settings !== 'object') {\r\n $.error(\"You must initialize autoNumeric('init', {options}) prior to calling the 'update' method\");\r\n }\r\n var strip = $this.autoNumeric('get');\r\n settings = $.extend(settings, options);\r\n getHolder($this, settings, true);\r\n if (settings.aDec === settings.aSep) {\r\n $.error(\"autoNumeric will not function properly when the decimal character aDec: '\" + settings.aDec + \"' and thousand separator aSep: '\" + settings.aSep + \"' are the same character\");\r\n }\r\n $this.data('autoNumeric', settings);\r\n if ($this.val() !== '' || $this.text() !== '') {\r\n return $this.autoNumeric('set', strip);\r\n }\r\n return;\r\n });\r\n },\r\n\r\n /**\r\n * method to format value sent as a parameter \"\"\r\n * $(someSelector).autoNumeric('set', 'value'}); // formats the value being passed\r\n * value passed as a string - can be a integer '1234' or double '1234.56789'\r\n * must contain only numbers and one decimal (period) character\r\n */\r\n set: function (valueIn) {\r\n if (valueIn === null) {\r\n return;\r\n }\r\n return $(this).each(function () {\r\n var $this = autoGet($(this)),\r\n settings = $this.data('autoNumeric'),\r\n value = valueIn.toString(),\r\n testValue = valueIn.toString(),\r\n $input = $this.is('input[type=text], input[type=hidden], input[type=tel], input:not([type])');\r\n if (typeof settings !== 'object') {\r\n $.error(\"You must initialize autoNumeric('init', {options}) prior to calling the 'set' method\");\r\n }\r\n /** allows locale decimal separator to be a comma */\r\n if ((testValue === $this.attr('value') || testValue === $this.text()) && settings.runOnce === false) {\r\n value = value.replace(',', '.');\r\n }\r\n if (!$.isNumeric(+value)) {\r\n $.error(\"The value (\" + value + \") being 'set' is not numeric and has caused a error to be thrown\");\r\n }\r\n value = checkValue(value, settings);\r\n settings.setEvent = true;\r\n value.toString();\r\n if (value !== '') {\r\n value = autoRound(value, settings);\r\n }\r\n value = presentNumber(value, settings.aDec, settings.aNeg);\r\n if (!autoCheck(value, settings)) {\r\n value = autoRound('', settings);\r\n }\r\n value = autoGroup(value, settings);\r\n if ($input) {\r\n return $this.val(value);\r\n }\r\n if ($.inArray($this.prop('tagName').toLowerCase(), settings.tagList) !== -1) {\r\n return $this.text(value);\r\n }\r\n return false;\r\n });\r\n },\r\n\r\n /**\r\n * method to get the unformatted that accepts up to one parameter\r\n * $(someSelector).autoNumeric('get'); no parameters accepted\r\n * values returned as ISO numeric string \"1234.56\" where the decimal character is a period\r\n * only the first element in the selector is returned\r\n */\r\n get: function () {\r\n var $this = autoGet($(this)),\r\n settings = $this.data('autoNumeric');\r\n if (typeof settings !== 'object') {\r\n $.error(\"You must initialize autoNumeric('init', {options}) prior to calling the 'get' method\");\r\n }\r\n var getValue = '';\r\n /** determine the element type then use .eq(0) selector to grab the value of the first element in selector */\r\n if ($this.is('input[type=text], input[type=hidden], input[type=tel], input:not([type])')) { /**added hidden type */\r\n getValue = $this.eq(0).val();\r\n } else if ($.inArray($this.prop('tagName').toLowerCase(), settings.tagList) !== -1) {\r\n getValue = $this.eq(0).text();\r\n } else {\r\n $.error(\"The <\" + $this.prop('tagName').toLowerCase() + \"> is not supported by autoNumeric()\");\r\n }\r\n if ((getValue === '' && settings.wEmpty === 'empty') || (getValue === settings.aSign && (settings.wEmpty === 'sign' || settings.wEmpty === 'empty'))) {\r\n return '';\r\n }\r\n if (getValue !== '' && settings.nBracket !== null) {\r\n settings.removeBrackets = true;\r\n getValue = negativeBracket(getValue, settings);\r\n settings.removeBrackets = false;\r\n }\r\n if (settings.runOnce || settings.aForm === false) {\r\n getValue = autoStrip(getValue, settings);\r\n }\r\n getValue = fixNumber(getValue, settings.aDec, settings.aNeg);\r\n if (+getValue === 0 && settings.lZero !== 'keep') {\r\n getValue = '0';\r\n }\r\n if (settings.lZero === 'keep') {\r\n return getValue;\r\n }\r\n getValue = checkValue(getValue, settings);\r\n return getValue; /** returned Numeric String */\r\n },\r\n\r\n /**\r\n * The 'getString' method used jQuerys .serialize() method that creates a text string in standard URL-encoded notation\r\n * it then loops through the string and un-formats the inputs with autoNumeric\r\n * $(someSelector).autoNumeric('getString'); no parameter accepted\r\n * values returned as ISO numeric string \"1234.56\" where the decimal character is a period\r\n */\r\n getString: function () {\r\n var isAutoNumeric = false,\r\n $this = autoGet($(this)),\r\n formFields = $this.serialize(),\r\n formParts = formFields.split('&'),\r\n formIndex = $('form').index($this),\r\n allFormElements = $('form:eq(' + formIndex + ')'),\r\n aiIndex = [], /* all input index */\r\n scIndex = [], /* successful control index */\r\n rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, /* from jQuery serialize method */\r\n rsubmittable = /^(?:input|select|textarea|keygen)/i, /* from jQuery serialize method */\r\n rcheckableType = /^(?:checkbox|radio)$/i,\r\n rnonAutoNumericTypes = /^(?:button|checkbox|color|date|datetime|datetime-local|email|file|image|month|number|password|radio|range|reset|search|submit|time|url|week)/i,\r\n count = 0;\r\n /*jslint unparam: true*/\r\n /* index of successful elements */\r\n $.each(allFormElements[0], function (i, field) {\r\n if (field.name !== '' && rsubmittable.test(field.localName) && !rsubmitterTypes.test(field.type) && !field.disabled && (field.checked || !rcheckableType.test(field.type))) {\r\n scIndex.push(count);\r\n count = count + 1;\r\n } else {\r\n scIndex.push(-1);\r\n }\r\n });\r\n /* index of all inputs tags except checkbox */\r\n count = 0;\r\n $.each(allFormElements[0], function (i, field) {\r\n if (field.localName === 'input' && (field.type === '' || field.type === 'text' || field.type === 'hidden' || field.type === 'tel')) {\r\n aiIndex.push(count);\r\n count = count + 1;\r\n } else {\r\n aiIndex.push(-1);\r\n if (field.localName === 'input' && rnonAutoNumericTypes.test(field.type)) {\r\n count = count + 1;\r\n }\r\n }\r\n });\r\n $.each(formParts, function (i, miniParts) {\r\n miniParts = formParts[i].split('=');\r\n var scElement = $.inArray(i, scIndex);\r\n if (scElement > -1 && aiIndex[scElement] > -1) {\r\n var testInput = $('form:eq(' + formIndex + ') input:eq(' + aiIndex[scElement] + ')'),\r\n settings = testInput.data('autoNumeric');\r\n if (typeof settings === 'object') {\r\n if (miniParts[1] !== null) {\r\n miniParts[1] = $('form:eq(' + formIndex + ') input:eq(' + aiIndex[scElement] + ')').autoNumeric('get').toString();\r\n formParts[i] = miniParts.join('=');\r\n isAutoNumeric = true;\r\n }\r\n }\r\n }\r\n });\r\n /*jslint unparam: false*/\r\n if (!isAutoNumeric) {\r\n $.error(\"You must initialize autoNumeric('init', {options}) prior to calling the 'getString' method\");\r\n }\r\n return formParts.join('&');\r\n },\r\n\r\n /**\r\n * The 'getString' method used jQuerys .serializeArray() method that creates array or objects that can be encoded as a JSON string\r\n * it then loops through the string and un-formats the inputs with autoNumeric\r\n * $(someSelector).autoNumeric('getArray'); no parameter accepted\r\n * values returned as ISO numeric string \"1234.56\" where the decimal character is a period\r\n */\r\n getArray: function () {\r\n var isAutoNumeric = false,\r\n $this = autoGet($(this)),\r\n formFields = $this.serializeArray(),\r\n formIndex = $('form').index($this),\r\n allFormElements = $('form:eq(' + formIndex + ')'),\r\n aiIndex = [], /* all input index */\r\n scIndex = [], /* successful control index */\r\n rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, /* from jQuery serialize method */\r\n rsubmittable = /^(?:input|select|textarea|keygen)/i, /* from jQuery serialize method */\r\n rcheckableType = /^(?:checkbox|radio)$/i,\r\n rnonAutoNumericTypes = /^(?:button|checkbox|color|date|datetime|datetime-local|email|file|image|month|number|password|radio|range|reset|search|submit|time|url|week)/i,\r\n count = 0;\r\n /*jslint unparam: true*/\r\n /* index of successful elements */\r\n $.each(allFormElements[0], function (i, field) {\r\n if (field.name !== '' && rsubmittable.test(field.localName) && !rsubmitterTypes.test(field.type) && !field.disabled && (field.checked || !rcheckableType.test(field.type))) {\r\n scIndex.push(count);\r\n count = count + 1;\r\n } else {\r\n scIndex.push(-1);\r\n }\r\n });\r\n /* index of all inputs tags */\r\n count = 0;\r\n $.each(allFormElements[0], function (i, field) {\r\n if (field.localName === 'input' && (field.type === '' || field.type === 'text' || field.type === 'hidden' || field.type === 'tel')) {\r\n aiIndex.push(count);\r\n count = count + 1;\r\n } else {\r\n aiIndex.push(-1);\r\n if (field.localName === 'input' && rnonAutoNumericTypes.test(field.type)) {\r\n count = count + 1;\r\n }\r\n }\r\n });\r\n $.each(formFields, function (i, field) {\r\n var scElement = $.inArray(i, scIndex);\r\n if (scElement > -1 && aiIndex[scElement] > -1) {\r\n var testInput = $('form:eq(' + formIndex + ') input:eq(' + aiIndex[scElement] + ')'),\r\n settings = testInput.data('autoNumeric');\r\n if (typeof settings === 'object') {\r\n field.value = $('form:eq(' + formIndex + ') input:eq(' + aiIndex[scElement] + ')').autoNumeric('get').toString();\r\n isAutoNumeric = true;\r\n }\r\n }\r\n });\r\n /*jslint unparam: false*/\r\n if (!isAutoNumeric) {\r\n $.error(\"None of the successful form inputs are initialized by autoNumeric.\");\r\n }\r\n return formFields;\r\n },\r\n\r\n /**\r\n * The 'getSteetings returns the object with autoNumeric settings for those who need to look under the hood\r\n * $(someSelector).autoNumeric('getSettings'); // no parameters accepted\r\n * $(someSelector).autoNumeric('getSettings').aDec; // return the aDec setting as a string - ant valid setting can be used\r\n */\r\n getSettings: function () {\r\n var $this = autoGet($(this));\r\n return $this.eq(0).data('autoNumeric');\r\n }\r\n };\r\n\r\n /**\r\n * autoNumeric function\r\n */\r\n $.fn.autoNumeric = function (method) {\r\n if (methods[method]) {\r\n return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));\r\n }\r\n if (typeof method === 'object' || !method) {\r\n return methods.init.apply(this, arguments);\r\n }\r\n $.error('Method \"' + method + '\" is not supported by autoNumeric()');\r\n };\r\n\r\n /**\r\n * Defaults are public - these can be overridden by the following:\r\n * HTML5 data attributes\r\n * Options passed by the 'init' or 'update' methods\r\n * Use jQuery's $.extend method - great way to pass ASP.NET current culture settings\r\n */\r\n $.fn.autoNumeric.defaults = {\r\n /** allowed thousand separator characters\r\n * comma = ','\r\n * period \"full stop\" = '.'\r\n * apostrophe is escaped = '\\''\r\n * space = ' '\r\n * none = ''\r\n * NOTE: do not use numeric characters\r\n */\r\n aSep: ',',\r\n /** digital grouping for the thousand separator used in Format\r\n * dGroup: '2', results in 99,99,99,999 common in India for values less than 1 billion and greater than -1 billion\r\n * dGroup: '3', results in 999,999,999 default\r\n * dGroup: '4', results in 9999,9999,9999 used in some Asian countries\r\n */\r\n dGroup: '3',\r\n /** allowed decimal separator characters\r\n * period \"full stop\" = '.'\r\n * comma = ','\r\n */\r\n aDec: '.',\r\n /** allow to declare alternative decimal separator which is automatically replaced by aDec\r\n * developed for countries the use a comma ',' as the decimal character\r\n * and have keyboards\\numeric pads that have a period 'full stop' as the decimal characters (Spain is an example)\r\n */\r\n altDec: null,\r\n /** allowed currency symbol\r\n * Must be in quotes aSign: '$', a space is allowed aSign: '$ '\r\n */\r\n aSign: '',\r\n /** placement of currency sign\r\n * for prefix pSign: 'p',\r\n * for suffix pSign: 's',\r\n */\r\n pSign: 'p',\r\n /** maximum possible value\r\n * value must be enclosed in quotes and use the period for the decimal point\r\n * value must be larger than vMin\r\n */\r\n vMax: '9999999999999.99',\r\n /** minimum possible value\r\n * value must be enclosed in quotes and use the period for the decimal point\r\n * value must be smaller than vMax\r\n */\r\n vMin: '-9999999999999.99',\r\n /** max number of decimal places = used to override decimal places set by the vMin & vMax values\r\n * value must be enclosed in quotes example mDec: '3',\r\n * This can also set the value via a call back function mDec: 'css:#\r\n */\r\n mDec: null,\r\n /** method used for rounding\r\n * mRound: 'S', Round-Half-Up Symmetric (default)\r\n * mRound: 'A', Round-Half-Up Asymmetric\r\n * mRound: 's', Round-Half-Down Symmetric (lower case s)\r\n * mRound: 'a', Round-Half-Down Asymmetric (lower case a)\r\n * mRound: 'B', Round-Half-Even \"Bankers Rounding\"\r\n * mRound: 'U', Round Up \"Round-Away-From-Zero\"\r\n * mRound: 'D', Round Down \"Round-Toward-Zero\" - same as truncate\r\n * mRound: 'C', Round to Ceiling \"Toward Positive Infinity\"\r\n * mRound: 'F', Round to Floor \"Toward Negative Infinity\"\r\n */\r\n mRound: 'S',\r\n /** controls decimal padding\r\n * aPad: true - always Pad decimals with zeros\r\n * aPad: false - does not pad with zeros.\r\n * aPad: `some number` - pad decimals with zero to number different from mDec\r\n * thanks to Jonas Johansson for the suggestion\r\n */\r\n aPad: true,\r\n /** places brackets on negative value -$ 999.99 to (999.99)\r\n * visible only when the field does NOT have focus the left and right symbols should be enclosed in quotes and seperated by a comma\r\n * nBracket: null, nBracket: '(,)', nBracket: '[,]', nBracket: '<,>' or nBracket: '{,}'\r\n */\r\n nBracket: null,\r\n /** Displayed on empty string\r\n * wEmpty: 'empty', - input can be blank\r\n * wEmpty: 'zero', - displays zero\r\n * wEmpty: 'sign', - displays the currency sign\r\n */\r\n wEmpty: 'empty',\r\n /** controls leading zero behavior\r\n * lZero: 'allow', - allows leading zeros to be entered. Zeros will be truncated when entering additional digits. On focusout zeros will be deleted.\r\n * lZero: 'deny', - allows only one leading zero on values less than one\r\n * lZero: 'keep', - allows leading zeros to be entered. on fousout zeros will be retained.\r\n */\r\n lZero: 'allow',\r\n /** determine if the select all keyboard command will select\r\n * the complete input text or only the input numeric value\r\n * if the currency symbol is between the numeric value and the negative sign only the numeric value will sellected\r\n */\r\n sNumber: true,\r\n /** determine if the default value will be formatted on page ready.\r\n * true = automatically formats the default value on page ready\r\n * false = will not format the default value\r\n */\r\n aForm: true,\r\n /** helper option for ASP.NET postback\r\n * should be the value of the unformatted default value\r\n * examples:\r\n * no default value='' {anDefault: ''}\r\n * value=1234.56 {anDefault: '1234.56'}\r\n */\r\n anDefault: null\r\n };\r\n}(jQuery));","/*!\r\n * jQuery.scrollTo\r\n * Copyright (c) 2007-2015 Ariel Flesler - afleslergmailcom | http://flesler.blogspot.com\r\n * Licensed under MIT\r\n * http://flesler.blogspot.com/2007/10/jqueryscrollto.html\r\n * @projectDescription Lightweight, cross-browser and highly customizable animated scrolling with jQuery\r\n * @author Ariel Flesler\r\n * @version 2.1.2\r\n */\r\n; (function (factory) {\r\n 'use strict';\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD\r\n define(['jquery'], factory);\r\n } else if (typeof module !== 'undefined' && module.exports) {\r\n // CommonJS\r\n module.exports = factory(require('jquery'));\r\n } else {\r\n // Global\r\n factory(jQuery);\r\n }\r\n})(function ($) {\r\n 'use strict';\r\n\r\n var $scrollTo = $.scrollTo = function (target, duration, settings) {\r\n return $(window).scrollTo(target, duration, settings);\r\n };\r\n\r\n $scrollTo.defaults = {\r\n axis: 'xy',\r\n duration: 0,\r\n limit: true\r\n };\r\n\r\n function isWin(elem) {\r\n return !elem.nodeName ||\r\n\t\t\t$.inArray(elem.nodeName.toLowerCase(), ['iframe', '#document', 'html', 'body']) !== -1;\r\n }\r\n\r\n $.fn.scrollTo = function (target, duration, settings) {\r\n if (typeof duration === 'object') {\r\n settings = duration;\r\n duration = 0;\r\n }\r\n if (typeof settings === 'function') {\r\n settings = { onAfter: settings };\r\n }\r\n if (target === 'max') {\r\n target = 9e9;\r\n }\r\n\r\n settings = $.extend({}, $scrollTo.defaults, settings);\r\n // Speed is still recognized for backwards compatibility\r\n duration = duration || settings.duration;\r\n // Make sure the settings are given right\r\n var queue = settings.queue && settings.axis.length > 1;\r\n if (queue) {\r\n // Let's keep the overall duration\r\n duration /= 2;\r\n }\r\n settings.offset = both(settings.offset);\r\n settings.over = both(settings.over);\r\n\r\n return this.each(function () {\r\n // Null target yields nothing, just like jQuery does\r\n if (target === null) return;\r\n\r\n var win = isWin(this),\r\n\t\t\t\telem = win ? this.contentWindow || window : this,\r\n\t\t\t\t$elem = $(elem),\r\n\t\t\t\ttarg = target,\r\n\t\t\t\tattr = {},\r\n\t\t\t\ttoff;\r\n\r\n switch (typeof targ) {\r\n // A number will pass the regex\r\n case 'number':\r\n case 'string':\r\n if (/^([+-]=?)?\\d+(\\.\\d+)?(px|%)?$/.test(targ)) {\r\n targ = both(targ);\r\n // We are done\r\n break;\r\n }\r\n // Relative/Absolute selector\r\n targ = win ? $(targ) : $(targ, elem);\r\n /* falls through */\r\n case 'object':\r\n if (targ.length === 0) return;\r\n // DOMElement / jQuery\r\n if (targ.is || targ.style) {\r\n // Get the real position of the target\r\n toff = (targ = $(targ)).offset();\r\n }\r\n }\r\n\r\n var offset = $.isFunction(settings.offset) && settings.offset(elem, targ) || settings.offset;\r\n\r\n $.each(settings.axis.split(''), function (i, axis) {\r\n var Pos = axis === 'x' ? 'Left' : 'Top',\r\n\t\t\t\t\tpos = Pos.toLowerCase(),\r\n\t\t\t\t\tkey = 'scroll' + Pos,\r\n\t\t\t\t\tprev = $elem[key](),\r\n\t\t\t\t\tmax = $scrollTo.max(elem, axis);\r\n\r\n if (toff) {// jQuery / DOMElement\r\n attr[key] = toff[pos] + (win ? 0 : prev - $elem.offset()[pos]);\r\n\r\n // If it's a dom element, reduce the margin\r\n if (settings.margin) {\r\n attr[key] -= parseInt(targ.css('margin' + Pos), 10) || 0;\r\n attr[key] -= parseInt(targ.css('border' + Pos + 'Width'), 10) || 0;\r\n }\r\n\r\n attr[key] += offset[pos] || 0;\r\n\r\n if (settings.over[pos]) {\r\n // Scroll to a fraction of its width/height\r\n attr[key] += targ[axis === 'x' ? 'width' : 'height']() * settings.over[pos];\r\n }\r\n } else {\r\n var val = targ[pos];\r\n // Handle percentage values\r\n attr[key] = val.slice && val.slice(-1) === '%' ?\r\n\t\t\t\t\t\tparseFloat(val) / 100 * max\r\n\t\t\t\t\t\t: val;\r\n }\r\n\r\n // Number or 'number'\r\n if (settings.limit && /^\\d+$/.test(attr[key])) {\r\n // Check the limits\r\n attr[key] = attr[key] <= 0 ? 0 : Math.min(attr[key], max);\r\n }\r\n\r\n // Don't waste time animating, if there's no need.\r\n if (!i && settings.axis.length > 1) {\r\n if (prev === attr[key]) {\r\n // No animation needed\r\n attr = {};\r\n } else if (queue) {\r\n // Intermediate animation\r\n animate(settings.onAfterFirst);\r\n // Don't animate this axis again in the next iteration.\r\n attr = {};\r\n }\r\n }\r\n });\r\n\r\n animate(settings.onAfter);\r\n\r\n function animate(callback) {\r\n var opts = $.extend({}, settings, {\r\n // The queue setting conflicts with animate()\r\n // Force it to always be true\r\n queue: true,\r\n duration: duration,\r\n complete: callback && function () {\r\n callback.call(elem, targ, settings);\r\n }\r\n });\r\n $elem.animate(attr, opts);\r\n }\r\n });\r\n };\r\n\r\n // Max scrolling position, works on quirks mode\r\n // It only fails (not too badly) on IE, quirks mode.\r\n $scrollTo.max = function (elem, axis) {\r\n var Dim = axis === 'x' ? 'Width' : 'Height',\r\n\t\t\tscroll = 'scroll' + Dim;\r\n\r\n if (!isWin(elem))\r\n return elem[scroll] - $(elem)[Dim.toLowerCase()]();\r\n\r\n var size = 'client' + Dim,\r\n\t\t\tdoc = elem.ownerDocument || elem.document,\r\n\t\t\thtml = doc.documentElement,\r\n\t\t\tbody = doc.body;\r\n\r\n return Math.max(html[scroll], body[scroll]) - Math.min(html[size], body[size]);\r\n };\r\n\r\n function both(val) {\r\n return $.isFunction(val) || $.isPlainObject(val) ? val : { top: val, left: val };\r\n }\r\n\r\n // Add special hooks so that window scroll properties can be animated\r\n $.Tween.propHooks.scrollLeft =\r\n\t$.Tween.propHooks.scrollTop = {\r\n\t get: function (t) {\r\n\t return $(t.elem)[t.prop]();\r\n\t },\r\n\t set: function (t) {\r\n\t var curr = this.get(t);\r\n\t // If interrupt is true and user scrolled, stop animating\r\n\t if (t.options.interrupt && t._last && t._last !== curr) {\r\n\t return $(t.elem).stop();\r\n\t }\r\n\t var next = Math.round(t.now);\r\n\t // Don't waste CPU\r\n\t // Browsers don't render floating point scroll\r\n\t if (curr !== next) {\r\n\t $(t.elem)[t.prop](next);\r\n\t t._last = this.get(t);\r\n\t }\r\n\t }\r\n\t};\r\n\r\n // AMD requirement\r\n return $scrollTo;\r\n});\r\n","/*\r\n\r\nhighlight v3 - Modified by Marshal (beatgates@gmail.com) to add regexp highlight, 2011-6-24\r\n\r\nHighlights arbitrary terms.\r\n\r\n\r\n\r\nMIT license.\r\n\r\nJohann Burkard\r\n\r\n\r\n\r\n*/\r\n\r\njQuery.fn.highlight = function(pattern) {\r\n var regex = typeof(pattern) === \"string\" ? new RegExp(pattern, \"i\") : pattern; // assume very LOOSELY pattern is regexp if not string\r\n function innerHighlight(node, pattern) {\r\n var skip = 0;\r\n if (node.nodeType === 3) { // 3 - Text node\r\n var pos = node.data.search(regex);\r\n if (pos >= 0 && node.data.length > 0) { // .* matching \"\" causes infinite loop\r\n var match = node.data.match(regex); // get the match(es), but we would only handle the 1st one, hence /g is not recommended\r\n var spanNode = document.createElement('span');\r\n spanNode.className = 'highlight'; // set css\r\n var middleBit = node.splitText(pos); // split to 2 nodes, node contains the pre-pos text, middleBit has the post-pos\r\n var endBit = middleBit.splitText(match[0].length); // similarly split middleBit to 2 nodes\r\n var middleClone = middleBit.cloneNode(true);\r\n spanNode.appendChild(middleClone);\r\n // parentNode ie. node, now has 3 nodes by 2 splitText()s, replace the middle with the highlighted spanNode:\r\n middleBit.parentNode.replaceChild(spanNode, middleBit); \r\n skip = 1; // skip this middleBit, but still need to check endBit\r\n }\r\n } else if (node.nodeType === 1 && node.childNodes && !/(script|style)/i.test(node.tagName)) { // 1 - Element node\r\n for (var i = 0; i < node.childNodes.length; i++) { // highlight all children\r\n i += innerHighlight(node.childNodes[i], pattern); // skip highlighted ones\r\n }\r\n }\r\n return skip;\r\n }\r\n \r\n return this.each(function() {\r\n innerHighlight(this, pattern);\r\n });\r\n};\r\n\r\njQuery.fn.removeHighlight = function() {\r\n return this.find(\"span.highlight\").each(function() {\r\n this.parentNode.firstChild.nodeName;\r\n with (this.parentNode) {\r\n replaceChild(this.firstChild, this);\r\n normalize();\r\n }\r\n }).end();\r\n};\r\n","/*!\r\n* jquery.inputmask.bundle.js\r\n* http://github.com/RobinHerbots/jquery.inputmask\r\n* Copyright (c) 2010 - 2015 Robin Herbots\r\n* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)\r\n* Version: 3.2.5\r\n*/\r\n!function($) {\r\n function Inputmask(alias, options) {\r\n return this instanceof Inputmask ? (\"object\" == typeof alias ? options = alias : (options = options || {}, \r\n options.alias = alias), this.el = void 0, this.opts = $.extend(!0, {}, this.defaults, options), \r\n this.noMasksCache = options && void 0 !== options.definitions, this.userOptions = options || {}, \r\n void resolveAlias(this.opts.alias, options, this.opts)) : new Inputmask(alias, options);\r\n }\r\n function isInputEventSupported(eventName) {\r\n var el = document.createElement(\"input\"), evName = \"on\" + eventName, isSupported = evName in el;\r\n return isSupported || (el.setAttribute(evName, \"return;\"), isSupported = \"function\" == typeof el[evName]), \r\n el = null, isSupported;\r\n }\r\n function isInputTypeSupported(inputType) {\r\n var isSupported = \"text\" === inputType || \"tel\" === inputType || \"password\" === inputType;\r\n if (!isSupported) {\r\n var el = document.createElement(\"input\");\r\n el.setAttribute(\"type\", inputType), isSupported = \"text\" === el.type, el = null;\r\n }\r\n return isSupported;\r\n }\r\n function resolveAlias(aliasStr, options, opts) {\r\n var aliasDefinition = opts.aliases[aliasStr];\r\n return aliasDefinition ? (aliasDefinition.alias && resolveAlias(aliasDefinition.alias, void 0, opts), \r\n $.extend(!0, opts, aliasDefinition), $.extend(!0, opts, options), !0) : (null === opts.mask && (opts.mask = aliasStr), \r\n !1);\r\n }\r\n function importAttributeOptions(npt, opts, userOptions) {\r\n function importOption(option, optionData) {\r\n optionData = void 0 !== optionData ? optionData : npt.getAttribute(\"data-inputmask-\" + option), \r\n null !== optionData && (\"string\" == typeof optionData && (0 === option.indexOf(\"on\") ? optionData = window[optionData] : \"false\" === optionData ? optionData = !1 : \"true\" === optionData && (optionData = !0)), \r\n userOptions[option] = optionData);\r\n }\r\n var option, dataoptions, optionData, p, attrOptions = npt.getAttribute(\"data-inputmask\");\r\n if (attrOptions && \"\" !== attrOptions && (attrOptions = attrOptions.replace(new RegExp(\"'\", \"g\"), '\"'), \r\n dataoptions = JSON.parse(\"{\" + attrOptions + \"}\")), dataoptions) {\r\n optionData = void 0;\r\n for (p in dataoptions) if (\"alias\" === p.toLowerCase()) {\r\n optionData = dataoptions[p];\r\n break;\r\n }\r\n }\r\n importOption(\"alias\", optionData), userOptions.alias && resolveAlias(userOptions.alias, userOptions, opts);\r\n for (option in opts) {\r\n if (dataoptions) {\r\n optionData = void 0;\r\n for (p in dataoptions) if (p.toLowerCase() === option.toLowerCase()) {\r\n optionData = dataoptions[p];\r\n break;\r\n }\r\n }\r\n importOption(option, optionData);\r\n }\r\n return $.extend(!0, opts, userOptions), opts;\r\n }\r\n function generateMaskSet(opts, nocache) {\r\n function analyseMask(mask) {\r\n function MaskToken(isGroup, isOptional, isQuantifier, isAlternator) {\r\n this.matches = [], this.isGroup = isGroup || !1, this.isOptional = isOptional || !1, \r\n this.isQuantifier = isQuantifier || !1, this.isAlternator = isAlternator || !1, \r\n this.quantifier = {\r\n min: 1,\r\n max: 1\r\n };\r\n }\r\n function insertTestDefinition(mtoken, element, position) {\r\n var maskdef = opts.definitions[element];\r\n position = void 0 !== position ? position : mtoken.matches.length;\r\n var prevMatch = mtoken.matches[position - 1];\r\n if (maskdef && !escaped) {\r\n maskdef.placeholder = $.isFunction(maskdef.placeholder) ? maskdef.placeholder(opts) : maskdef.placeholder;\r\n for (var prevalidators = maskdef.prevalidator, prevalidatorsL = prevalidators ? prevalidators.length : 0, i = 1; i < maskdef.cardinality; i++) {\r\n var prevalidator = prevalidatorsL >= i ? prevalidators[i - 1] : [], validator = prevalidator.validator, cardinality = prevalidator.cardinality;\r\n mtoken.matches.splice(position++, 0, {\r\n fn: validator ? \"string\" == typeof validator ? new RegExp(validator) : new function() {\r\n this.test = validator;\r\n }() : new RegExp(\".\"),\r\n cardinality: cardinality ? cardinality : 1,\r\n optionality: mtoken.isOptional,\r\n newBlockMarker: void 0 === prevMatch || prevMatch.def !== (maskdef.definitionSymbol || element),\r\n casing: maskdef.casing,\r\n def: maskdef.definitionSymbol || element,\r\n placeholder: maskdef.placeholder,\r\n mask: element\r\n }), prevMatch = mtoken.matches[position - 1];\r\n }\r\n mtoken.matches.splice(position++, 0, {\r\n fn: maskdef.validator ? \"string\" == typeof maskdef.validator ? new RegExp(maskdef.validator) : new function() {\r\n this.test = maskdef.validator;\r\n }() : new RegExp(\".\"),\r\n cardinality: maskdef.cardinality,\r\n optionality: mtoken.isOptional,\r\n newBlockMarker: void 0 === prevMatch || prevMatch.def !== (maskdef.definitionSymbol || element),\r\n casing: maskdef.casing,\r\n def: maskdef.definitionSymbol || element,\r\n placeholder: maskdef.placeholder,\r\n mask: element\r\n });\r\n } else mtoken.matches.splice(position++, 0, {\r\n fn: null,\r\n cardinality: 0,\r\n optionality: mtoken.isOptional,\r\n newBlockMarker: void 0 === prevMatch || prevMatch.def !== element,\r\n casing: null,\r\n def: element,\r\n placeholder: void 0,\r\n mask: element\r\n }), escaped = !1;\r\n }\r\n function verifyGroupMarker(lastMatch, isOpenGroup) {\r\n lastMatch.isGroup && (lastMatch.isGroup = !1, insertTestDefinition(lastMatch, opts.groupmarker.start, 0), \r\n isOpenGroup !== !0 && insertTestDefinition(lastMatch, opts.groupmarker.end));\r\n }\r\n function maskCurrentToken(m, currentToken, lastMatch, extraCondition) {\r\n currentToken.matches.length > 0 && (void 0 === extraCondition || extraCondition) && (lastMatch = currentToken.matches[currentToken.matches.length - 1], \r\n verifyGroupMarker(lastMatch)), insertTestDefinition(currentToken, m);\r\n }\r\n function defaultCase() {\r\n if (openenings.length > 0) {\r\n if (currentOpeningToken = openenings[openenings.length - 1], maskCurrentToken(m, currentOpeningToken, lastMatch, !currentOpeningToken.isAlternator), \r\n currentOpeningToken.isAlternator) {\r\n alternator = openenings.pop();\r\n for (var mndx = 0; mndx < alternator.matches.length; mndx++) alternator.matches[mndx].isGroup = !1;\r\n openenings.length > 0 ? (currentOpeningToken = openenings[openenings.length - 1], \r\n currentOpeningToken.matches.push(alternator)) : currentToken.matches.push(alternator);\r\n }\r\n } else maskCurrentToken(m, currentToken, lastMatch);\r\n }\r\n function reverseTokens(maskToken) {\r\n function reverseStatic(st) {\r\n return st === opts.optionalmarker.start ? st = opts.optionalmarker.end : st === opts.optionalmarker.end ? st = opts.optionalmarker.start : st === opts.groupmarker.start ? st = opts.groupmarker.end : st === opts.groupmarker.end && (st = opts.groupmarker.start), \r\n st;\r\n }\r\n maskToken.matches = maskToken.matches.reverse();\r\n for (var match in maskToken.matches) {\r\n var intMatch = parseInt(match);\r\n if (maskToken.matches[match].isQuantifier && maskToken.matches[intMatch + 1] && maskToken.matches[intMatch + 1].isGroup) {\r\n var qt = maskToken.matches[match];\r\n maskToken.matches.splice(match, 1), maskToken.matches.splice(intMatch + 1, 0, qt);\r\n }\r\n void 0 !== maskToken.matches[match].matches ? maskToken.matches[match] = reverseTokens(maskToken.matches[match]) : maskToken.matches[match] = reverseStatic(maskToken.matches[match]);\r\n }\r\n return maskToken;\r\n }\r\n for (var match, m, openingToken, currentOpeningToken, alternator, lastMatch, groupToken, tokenizer = /(?:[?*+]|\\{[0-9\\+\\*]+(?:,[0-9\\+\\*]*)?\\})|[^.?*+^${[]()|\\\\]+|./g, escaped = !1, currentToken = new MaskToken(), openenings = [], maskTokens = []; match = tokenizer.exec(mask); ) if (m = match[0], \r\n escaped) defaultCase(); else switch (m.charAt(0)) {\r\n case opts.escapeChar:\r\n escaped = !0;\r\n break;\r\n\r\n case opts.optionalmarker.end:\r\n case opts.groupmarker.end:\r\n if (openingToken = openenings.pop(), void 0 !== openingToken) if (openenings.length > 0) {\r\n if (currentOpeningToken = openenings[openenings.length - 1], currentOpeningToken.matches.push(openingToken), \r\n currentOpeningToken.isAlternator) {\r\n alternator = openenings.pop();\r\n for (var mndx = 0; mndx < alternator.matches.length; mndx++) alternator.matches[mndx].isGroup = !1;\r\n openenings.length > 0 ? (currentOpeningToken = openenings[openenings.length - 1], \r\n currentOpeningToken.matches.push(alternator)) : currentToken.matches.push(alternator);\r\n }\r\n } else currentToken.matches.push(openingToken); else defaultCase();\r\n break;\r\n\r\n case opts.optionalmarker.start:\r\n openenings.push(new MaskToken(!1, !0));\r\n break;\r\n\r\n case opts.groupmarker.start:\r\n openenings.push(new MaskToken(!0));\r\n break;\r\n\r\n case opts.quantifiermarker.start:\r\n var quantifier = new MaskToken(!1, !1, !0);\r\n m = m.replace(/[{}]/g, \"\");\r\n var mq = m.split(\",\"), mq0 = isNaN(mq[0]) ? mq[0] : parseInt(mq[0]), mq1 = 1 === mq.length ? mq0 : isNaN(mq[1]) ? mq[1] : parseInt(mq[1]);\r\n if ((\"*\" === mq1 || \"+\" === mq1) && (mq0 = \"*\" === mq1 ? 0 : 1), quantifier.quantifier = {\r\n min: mq0,\r\n max: mq1\r\n }, openenings.length > 0) {\r\n var matches = openenings[openenings.length - 1].matches;\r\n match = matches.pop(), match.isGroup || (groupToken = new MaskToken(!0), groupToken.matches.push(match), \r\n match = groupToken), matches.push(match), matches.push(quantifier);\r\n } else match = currentToken.matches.pop(), match.isGroup || (groupToken = new MaskToken(!0), \r\n groupToken.matches.push(match), match = groupToken), currentToken.matches.push(match), \r\n currentToken.matches.push(quantifier);\r\n break;\r\n\r\n case opts.alternatormarker:\r\n openenings.length > 0 ? (currentOpeningToken = openenings[openenings.length - 1], \r\n lastMatch = currentOpeningToken.matches.pop()) : lastMatch = currentToken.matches.pop(), \r\n lastMatch.isAlternator ? openenings.push(lastMatch) : (alternator = new MaskToken(!1, !1, !1, !0), \r\n alternator.matches.push(lastMatch), openenings.push(alternator));\r\n break;\r\n\r\n default:\r\n defaultCase();\r\n }\r\n for (;openenings.length > 0; ) openingToken = openenings.pop(), verifyGroupMarker(openingToken, !0), \r\n currentToken.matches.push(openingToken);\r\n return currentToken.matches.length > 0 && (lastMatch = currentToken.matches[currentToken.matches.length - 1], \r\n verifyGroupMarker(lastMatch), maskTokens.push(currentToken)), opts.numericInput && reverseTokens(maskTokens[0]), \r\n maskTokens;\r\n }\r\n function generateMask(mask, metadata) {\r\n if (null === mask || \"\" === mask) return void 0;\r\n if (1 === mask.length && opts.greedy === !1 && 0 !== opts.repeat && (opts.placeholder = \"\"), \r\n opts.repeat > 0 || \"*\" === opts.repeat || \"+\" === opts.repeat) {\r\n var repeatStart = \"*\" === opts.repeat ? 0 : \"+\" === opts.repeat ? 1 : opts.repeat;\r\n mask = opts.groupmarker.start + mask + opts.groupmarker.end + opts.quantifiermarker.start + repeatStart + \",\" + opts.repeat + opts.quantifiermarker.end;\r\n }\r\n var masksetDefinition;\r\n return void 0 === Inputmask.prototype.masksCache[mask] || nocache === !0 ? (masksetDefinition = {\r\n mask: mask,\r\n maskToken: analyseMask(mask),\r\n validPositions: {},\r\n _buffer: void 0,\r\n buffer: void 0,\r\n tests: {},\r\n metadata: metadata\r\n }, nocache !== !0 && (Inputmask.prototype.masksCache[opts.numericInput ? mask.split(\"\").reverse().join(\"\") : mask] = masksetDefinition, \r\n masksetDefinition = $.extend(!0, {}, Inputmask.prototype.masksCache[opts.numericInput ? mask.split(\"\").reverse().join(\"\") : mask]))) : masksetDefinition = $.extend(!0, {}, Inputmask.prototype.masksCache[opts.numericInput ? mask.split(\"\").reverse().join(\"\") : mask]), \r\n masksetDefinition;\r\n }\r\n function preProcessMask(mask) {\r\n return mask = mask.toString();\r\n }\r\n var ms;\r\n if ($.isFunction(opts.mask) && (opts.mask = opts.mask(opts)), $.isArray(opts.mask)) {\r\n if (opts.mask.length > 1) {\r\n opts.keepStatic = null === opts.keepStatic ? !0 : opts.keepStatic;\r\n var altMask = \"(\";\r\n return $.each(opts.numericInput ? opts.mask.reverse() : opts.mask, function(ndx, msk) {\r\n altMask.length > 1 && (altMask += \")|(\"), altMask += preProcessMask(void 0 === msk.mask || $.isFunction(msk.mask) ? msk : msk.mask);\r\n }), altMask += \")\", generateMask(altMask, opts.mask);\r\n }\r\n opts.mask = opts.mask.pop();\r\n }\r\n return opts.mask && (ms = void 0 === opts.mask.mask || $.isFunction(opts.mask.mask) ? generateMask(preProcessMask(opts.mask), opts.mask) : generateMask(preProcessMask(opts.mask.mask), opts.mask)), \r\n ms;\r\n }\r\n function maskScope(actionObj, maskset, opts) {\r\n function getMaskTemplate(baseOnInput, minimalPos, includeInput) {\r\n minimalPos = minimalPos || 0;\r\n var ndxIntlzr, test, testPos, maskTemplate = [], pos = 0;\r\n do {\r\n if (baseOnInput === !0 && getMaskSet().validPositions[pos]) {\r\n var validPos = getMaskSet().validPositions[pos];\r\n test = validPos.match, ndxIntlzr = validPos.locator.slice(), maskTemplate.push(includeInput === !0 ? validPos.input : getPlaceholder(pos, test));\r\n } else testPos = getTestTemplate(pos, ndxIntlzr, pos - 1), test = testPos.match, \r\n ndxIntlzr = testPos.locator.slice(), maskTemplate.push(getPlaceholder(pos, test));\r\n pos++;\r\n } while ((void 0 === maxLength || maxLength > pos - 1) && null !== test.fn || null === test.fn && \"\" !== test.def || minimalPos >= pos);\r\n return maskTemplate.pop(), maskTemplate;\r\n }\r\n function getMaskSet() {\r\n return maskset;\r\n }\r\n function resetMaskSet(soft) {\r\n var maskset = getMaskSet();\r\n maskset.buffer = void 0, maskset.tests = {}, soft !== !0 && (maskset._buffer = void 0, \r\n maskset.validPositions = {}, maskset.p = 0);\r\n }\r\n function getLastValidPosition(closestTo, strict) {\r\n var maskset = getMaskSet(), lastValidPosition = -1, valids = maskset.validPositions;\r\n void 0 === closestTo && (closestTo = -1);\r\n var before = lastValidPosition, after = lastValidPosition;\r\n for (var posNdx in valids) {\r\n var psNdx = parseInt(posNdx);\r\n valids[psNdx] && (strict || null !== valids[psNdx].match.fn) && (closestTo >= psNdx && (before = psNdx), \r\n psNdx >= closestTo && (after = psNdx));\r\n }\r\n return lastValidPosition = -1 !== before && closestTo - before > 1 || closestTo > after ? before : after;\r\n }\r\n function setValidPosition(pos, validTest, fromSetValid) {\r\n if (opts.insertMode && void 0 !== getMaskSet().validPositions[pos] && void 0 === fromSetValid) {\r\n var i, positionsClone = $.extend(!0, {}, getMaskSet().validPositions), lvp = getLastValidPosition();\r\n for (i = pos; lvp >= i; i++) delete getMaskSet().validPositions[i];\r\n getMaskSet().validPositions[pos] = validTest;\r\n var j, valid = !0, vps = getMaskSet().validPositions;\r\n for (i = j = pos; lvp >= i; i++) {\r\n var t = positionsClone[i];\r\n if (void 0 !== t) for (var posMatch = j, prevPosMatch = -1; posMatch < getMaskLength() && (null == t.match.fn && vps[i] && (vps[i].match.optionalQuantifier === !0 || vps[i].match.optionality === !0) || null != t.match.fn); ) {\r\n if (null === t.match.fn || !opts.keepStatic && vps[i] && (void 0 !== vps[i + 1] && getTests(i + 1, vps[i].locator.slice(), i).length > 1 || void 0 !== vps[i].alternation) ? posMatch++ : posMatch = seekNext(j), \r\n positionCanMatchDefinition(posMatch, t.match.def)) {\r\n valid = isValid(posMatch, t.input, !0, !0) !== !1, j = posMatch;\r\n break;\r\n }\r\n if (valid = null == t.match.fn, prevPosMatch === posMatch) break;\r\n prevPosMatch = posMatch;\r\n }\r\n if (!valid) break;\r\n }\r\n if (!valid) return getMaskSet().validPositions = $.extend(!0, {}, positionsClone), \r\n resetMaskSet(!0), !1;\r\n } else getMaskSet().validPositions[pos] = validTest;\r\n return resetMaskSet(!0), !0;\r\n }\r\n function stripValidPositions(start, end, nocheck, strict) {\r\n var i, startPos = start;\r\n for (getMaskSet().p = start, i = startPos; end > i; i++) void 0 !== getMaskSet().validPositions[i] && (nocheck === !0 || opts.canClearPosition(getMaskSet(), i, getLastValidPosition(), strict, opts) !== !1) && delete getMaskSet().validPositions[i];\r\n for (i = startPos + 1; i <= getLastValidPosition(); ) {\r\n for (;void 0 !== getMaskSet().validPositions[startPos]; ) startPos++;\r\n var s = getMaskSet().validPositions[startPos];\r\n if (startPos > i && (i = startPos + 1), void 0 === getMaskSet().validPositions[i] && isMask(i) || void 0 !== s) i++; else {\r\n var t = getTestTemplate(i);\r\n positionCanMatchDefinition(startPos, t.match.def) ? isValid(startPos, t.input || getPlaceholder(i), !0) !== !1 && (delete getMaskSet().validPositions[i], \r\n i++) : isMask(i) || (i++, startPos--), startPos++;\r\n }\r\n }\r\n var lvp = getLastValidPosition(), ml = getMaskLength();\r\n for (strict !== !0 && nocheck !== !0 && void 0 !== getMaskSet().validPositions[lvp] && getMaskSet().validPositions[lvp].input === opts.radixPoint && delete getMaskSet().validPositions[lvp], \r\n i = lvp + 1; ml >= i; i++) getMaskSet().validPositions[i] && delete getMaskSet().validPositions[i];\r\n resetMaskSet(!0);\r\n }\r\n function getTestTemplate(pos, ndxIntlzr, tstPs) {\r\n var testPos = getMaskSet().validPositions[pos];\r\n if (void 0 === testPos) for (var testPositions = getTests(pos, ndxIntlzr, tstPs), lvp = getLastValidPosition(), lvTest = getMaskSet().validPositions[lvp] || getTests(0)[0], lvTestAltArr = void 0 !== lvTest.alternation ? lvTest.locator[lvTest.alternation].toString().split(\",\") : [], ndx = 0; ndx < testPositions.length && (testPos = testPositions[ndx], \r\n !(testPos.match && (opts.greedy && testPos.match.optionalQuantifier !== !0 || (testPos.match.optionality === !1 || testPos.match.newBlockMarker === !1) && testPos.match.optionalQuantifier !== !0) && (void 0 === lvTest.alternation || lvTest.alternation !== testPos.alternation || void 0 !== testPos.locator[lvTest.alternation] && checkAlternationMatch(testPos.locator[lvTest.alternation].toString().split(\",\"), lvTestAltArr)))); ndx++) ;\r\n return testPos;\r\n }\r\n function getTest(pos) {\r\n return getMaskSet().validPositions[pos] ? getMaskSet().validPositions[pos].match : getTests(pos)[0].match;\r\n }\r\n function positionCanMatchDefinition(pos, def) {\r\n for (var valid = !1, tests = getTests(pos), tndx = 0; tndx < tests.length; tndx++) if (tests[tndx].match && tests[tndx].match.def === def) {\r\n valid = !0;\r\n break;\r\n }\r\n return valid;\r\n }\r\n function getTests(pos, ndxIntlzr, tstPs, cacheable) {\r\n function resolveTestFromToken(maskToken, ndxInitializer, loopNdx, quantifierRecurse) {\r\n function handleMatch(match, loopNdx, quantifierRecurse) {\r\n function resolveNdxInitializer(pos, alternateNdx) {\r\n var previousMatch = getMaskSet().validPositions[pos];\r\n return void 0 === previousMatch && getMaskSet().tests[pos] && $.each(getMaskSet().tests[pos], function(ndx, lmnt) {\r\n return lmnt.alternation && -1 !== lmnt.locator[lmnt.alternation].toString().indexOf(alternateNdx) ? (previousMatch = lmnt, \r\n !1) : void 0;\r\n }), previousMatch ? previousMatch.locator.slice(previousMatch.alternation + 1) : [];\r\n }\r\n if (testPos > 1e4) throw \"Inputmask: There is probably an error in your mask definition or in the code. Create an issue on github with an example of the mask you are using. \" + getMaskSet().mask;\r\n if (testPos === pos && void 0 === match.matches) return matches.push({\r\n match: match,\r\n locator: loopNdx.reverse()\r\n }), !0;\r\n if (void 0 !== match.matches) {\r\n if (match.isGroup && quantifierRecurse !== match) {\r\n if (match = handleMatch(maskToken.matches[$.inArray(match, maskToken.matches) + 1], loopNdx)) return !0;\r\n } else if (match.isOptional) {\r\n var optionalToken = match;\r\n if (match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse)) {\r\n if (latestMatch = matches[matches.length - 1].match, isFirstMatch = 0 === $.inArray(latestMatch, optionalToken.matches), \r\n !isFirstMatch) return !0;\r\n insertStop = !0, testPos = pos;\r\n }\r\n } else if (match.isAlternator) {\r\n var maltMatches, alternateToken = match, malternateMatches = [], currentMatches = matches.slice(), loopNdxCnt = loopNdx.length, altIndex = ndxInitializer.length > 0 ? ndxInitializer.shift() : -1;\r\n if (-1 === altIndex || \"string\" == typeof altIndex) {\r\n var amndx, currentPos = testPos, ndxInitializerClone = ndxInitializer.slice(), altIndexArr = [];\r\n if (\"string\" == typeof altIndex) altIndexArr = altIndex.split(\",\"); else for (amndx = 0; amndx < alternateToken.matches.length; amndx++) altIndexArr.push(amndx);\r\n for (var ndx = 0; ndx < altIndexArr.length; ndx++) {\r\n if (amndx = parseInt(altIndexArr[ndx]), matches = [], ndxInitializer = resolveNdxInitializer(testPos, amndx), \r\n match = handleMatch(alternateToken.matches[amndx] || maskToken.matches[amndx], [ amndx ].concat(loopNdx), quantifierRecurse) || match, \r\n match !== !0 && void 0 !== match && altIndexArr[altIndexArr.length - 1] < alternateToken.matches.length) {\r\n var ntndx = maskToken.matches.indexOf(match) + 1;\r\n maskToken.matches.length > ntndx && (match = handleMatch(maskToken.matches[ntndx], [ ntndx ].concat(loopNdx.slice(1, loopNdx.length)), quantifierRecurse), \r\n match && (altIndexArr.push(ntndx.toString()), $.each(matches, function(ndx, lmnt) {\r\n lmnt.alternation = loopNdx.length - 1;\r\n })));\r\n }\r\n maltMatches = matches.slice(), testPos = currentPos, matches = [];\r\n for (var i = 0; i < ndxInitializerClone.length; i++) ndxInitializer[i] = ndxInitializerClone[i];\r\n for (var ndx1 = 0; ndx1 < maltMatches.length; ndx1++) {\r\n var altMatch = maltMatches[ndx1];\r\n altMatch.alternation = altMatch.alternation || loopNdxCnt;\r\n for (var ndx2 = 0; ndx2 < malternateMatches.length; ndx2++) {\r\n var altMatch2 = malternateMatches[ndx2];\r\n if (altMatch.match.def === altMatch2.match.def && (\"string\" != typeof altIndex || -1 !== $.inArray(altMatch.locator[altMatch.alternation].toString(), altIndexArr))) {\r\n altMatch.match.mask === altMatch2.match.mask && (maltMatches.splice(ndx1, 1), ndx1--), \r\n -1 === altMatch2.locator[altMatch.alternation].toString().indexOf(altMatch.locator[altMatch.alternation]) && (altMatch2.locator[altMatch.alternation] = altMatch2.locator[altMatch.alternation] + \",\" + altMatch.locator[altMatch.alternation], \r\n altMatch2.alternation = altMatch.alternation);\r\n break;\r\n }\r\n }\r\n }\r\n malternateMatches = malternateMatches.concat(maltMatches);\r\n }\r\n \"string\" == typeof altIndex && (malternateMatches = $.map(malternateMatches, function(lmnt, ndx) {\r\n if (isFinite(ndx)) {\r\n var mamatch, alternation = lmnt.alternation, altLocArr = lmnt.locator[alternation].toString().split(\",\");\r\n lmnt.locator[alternation] = void 0, lmnt.alternation = void 0;\r\n for (var alndx = 0; alndx < altLocArr.length; alndx++) mamatch = -1 !== $.inArray(altLocArr[alndx], altIndexArr), \r\n mamatch && (void 0 !== lmnt.locator[alternation] ? (lmnt.locator[alternation] += \",\", \r\n lmnt.locator[alternation] += altLocArr[alndx]) : lmnt.locator[alternation] = parseInt(altLocArr[alndx]), \r\n lmnt.alternation = alternation);\r\n if (void 0 !== lmnt.locator[alternation]) return lmnt;\r\n }\r\n })), matches = currentMatches.concat(malternateMatches), testPos = pos, insertStop = matches.length > 0;\r\n } else match = handleMatch(alternateToken.matches[altIndex] || maskToken.matches[altIndex], [ altIndex ].concat(loopNdx), quantifierRecurse);\r\n if (match) return !0;\r\n } else if (match.isQuantifier && quantifierRecurse !== maskToken.matches[$.inArray(match, maskToken.matches) - 1]) for (var qt = match, qndx = ndxInitializer.length > 0 ? ndxInitializer.shift() : 0; qndx < (isNaN(qt.quantifier.max) ? qndx + 1 : qt.quantifier.max) && pos >= testPos; qndx++) {\r\n var tokenGroup = maskToken.matches[$.inArray(qt, maskToken.matches) - 1];\r\n if (match = handleMatch(tokenGroup, [ qndx ].concat(loopNdx), tokenGroup)) {\r\n if (latestMatch = matches[matches.length - 1].match, latestMatch.optionalQuantifier = qndx > qt.quantifier.min - 1, \r\n isFirstMatch = 0 === $.inArray(latestMatch, tokenGroup.matches)) {\r\n if (qndx > qt.quantifier.min - 1) {\r\n insertStop = !0, testPos = pos;\r\n break;\r\n }\r\n return !0;\r\n }\r\n return !0;\r\n }\r\n } else if (match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse)) return !0;\r\n } else testPos++;\r\n }\r\n for (var tndx = ndxInitializer.length > 0 ? ndxInitializer.shift() : 0; tndx < maskToken.matches.length; tndx++) if (maskToken.matches[tndx].isQuantifier !== !0) {\r\n var match = handleMatch(maskToken.matches[tndx], [ tndx ].concat(loopNdx), quantifierRecurse);\r\n if (match && testPos === pos) return match;\r\n if (testPos > pos) break;\r\n }\r\n }\r\n var latestMatch, isFirstMatch, maskTokens = getMaskSet().maskToken, testPos = ndxIntlzr ? tstPs : 0, ndxInitializer = ndxIntlzr || [ 0 ], matches = [], insertStop = !1;\r\n if (pos > -1) {\r\n if (cacheable === !0 && getMaskSet().tests[pos]) return getMaskSet().tests[pos];\r\n if (void 0 === ndxIntlzr) {\r\n for (var test, previousPos = pos - 1; void 0 === (test = getMaskSet().validPositions[previousPos]) && previousPos > -1 && (!getMaskSet().tests[previousPos] || void 0 === (test = getMaskSet().tests[previousPos][0])); ) previousPos--;\r\n void 0 !== test && previousPos > -1 && (testPos = previousPos, ndxInitializer = test.locator.slice());\r\n }\r\n for (var mtndx = ndxInitializer.shift(); mtndx < maskTokens.length; mtndx++) {\r\n var match = resolveTestFromToken(maskTokens[mtndx], ndxInitializer, [ mtndx ]);\r\n if (match && testPos === pos || testPos > pos) break;\r\n }\r\n return (0 === matches.length || insertStop) && matches.push({\r\n match: {\r\n fn: null,\r\n cardinality: 0,\r\n optionality: !0,\r\n casing: null,\r\n def: \"\"\r\n },\r\n locator: []\r\n }), getMaskSet().tests[pos] = $.extend(!0, [], matches), getMaskSet().tests[pos];\r\n }\r\n }\r\n function getBufferTemplate() {\r\n return void 0 === getMaskSet()._buffer && (getMaskSet()._buffer = getMaskTemplate(!1, 1)), \r\n getMaskSet()._buffer;\r\n }\r\n function getBuffer(noCache) {\r\n return (void 0 === getMaskSet().buffer || noCache === !0) && (noCache === !0 && (getMaskSet().tests = {}), \r\n getMaskSet().buffer = getMaskTemplate(!0, getLastValidPosition(), !0)), getMaskSet().buffer;\r\n }\r\n function refreshFromBuffer(start, end, buffer) {\r\n var i;\r\n if (buffer = buffer, start === !0) resetMaskSet(), start = 0, end = buffer.length; else for (i = start; end > i; i++) delete getMaskSet().validPositions[i], \r\n delete getMaskSet().tests[i];\r\n for (i = start; end > i; i++) resetMaskSet(!0), buffer[i] !== opts.skipOptionalPartCharacter && isValid(i, buffer[i], !0, !0);\r\n }\r\n function casing(elem, test) {\r\n switch (test.casing) {\r\n case \"upper\":\r\n elem = elem.toUpperCase();\r\n break;\r\n\r\n case \"lower\":\r\n elem = elem.toLowerCase();\r\n }\r\n return elem;\r\n }\r\n function checkAlternationMatch(altArr1, altArr2) {\r\n for (var altArrC = opts.greedy ? altArr2 : altArr2.slice(0, 1), isMatch = !1, alndx = 0; alndx < altArr1.length; alndx++) if (-1 !== $.inArray(altArr1[alndx], altArrC)) {\r\n isMatch = !0;\r\n break;\r\n }\r\n return isMatch;\r\n }\r\n function isValid(pos, c, strict, fromSetValid) {\r\n function _isValid(position, c, strict, fromSetValid) {\r\n var rslt = !1;\r\n return $.each(getTests(position), function(ndx, tst) {\r\n for (var test = tst.match, loopend = c ? 1 : 0, chrs = \"\", i = test.cardinality; i > loopend; i--) chrs += getBufferElement(position - (i - 1));\r\n if (c && (chrs += c), getBuffer(!0), rslt = null != test.fn ? test.fn.test(chrs, getMaskSet(), position, strict, opts) : c !== test.def && c !== opts.skipOptionalPartCharacter || \"\" === test.def ? !1 : {\r\n c: test.def,\r\n pos: position\r\n }, rslt !== !1) {\r\n var elem = void 0 !== rslt.c ? rslt.c : c;\r\n elem = elem === opts.skipOptionalPartCharacter && null === test.fn ? test.def : elem;\r\n var validatedPos = position, possibleModifiedBuffer = getBuffer();\r\n if (void 0 !== rslt.remove && ($.isArray(rslt.remove) || (rslt.remove = [ rslt.remove ]), \r\n $.each(rslt.remove.sort(function(a, b) {\r\n return b - a;\r\n }), function(ndx, lmnt) {\r\n stripValidPositions(lmnt, lmnt + 1, !0);\r\n })), void 0 !== rslt.insert && ($.isArray(rslt.insert) || (rslt.insert = [ rslt.insert ]), \r\n $.each(rslt.insert.sort(function(a, b) {\r\n return a - b;\r\n }), function(ndx, lmnt) {\r\n isValid(lmnt.pos, lmnt.c, !0);\r\n })), rslt.refreshFromBuffer) {\r\n var refresh = rslt.refreshFromBuffer;\r\n if (strict = !0, refreshFromBuffer(refresh === !0 ? refresh : refresh.start, refresh.end, possibleModifiedBuffer), \r\n void 0 === rslt.pos && void 0 === rslt.c) return rslt.pos = getLastValidPosition(), \r\n !1;\r\n if (validatedPos = void 0 !== rslt.pos ? rslt.pos : position, validatedPos !== position) return rslt = $.extend(rslt, isValid(validatedPos, elem, !0)), \r\n !1;\r\n } else if (rslt !== !0 && void 0 !== rslt.pos && rslt.pos !== position && (validatedPos = rslt.pos, \r\n refreshFromBuffer(position, validatedPos, getBuffer().slice()), validatedPos !== position)) return rslt = $.extend(rslt, isValid(validatedPos, elem, !0)), \r\n !1;\r\n return rslt !== !0 && void 0 === rslt.pos && void 0 === rslt.c ? !1 : (ndx > 0 && resetMaskSet(!0), \r\n setValidPosition(validatedPos, $.extend({}, tst, {\r\n input: casing(elem, test)\r\n }), fromSetValid) || (rslt = !1), !1);\r\n }\r\n }), rslt;\r\n }\r\n function alternate(pos, c, strict, fromSetValid) {\r\n for (var lastAlt, alternation, isValidRslt, altPos, i, validPos, validPsClone = $.extend(!0, {}, getMaskSet().validPositions), lAlt = getLastValidPosition(); lAlt >= 0 && (altPos = getMaskSet().validPositions[lAlt], \r\n !altPos || void 0 === altPos.alternation || (lastAlt = lAlt, alternation = getMaskSet().validPositions[lastAlt].alternation, \r\n getTestTemplate(lastAlt).locator[altPos.alternation] === altPos.locator[altPos.alternation])); lAlt--) ;\r\n if (void 0 !== alternation) {\r\n lastAlt = parseInt(lastAlt);\r\n for (var decisionPos in getMaskSet().validPositions) if (decisionPos = parseInt(decisionPos), \r\n altPos = getMaskSet().validPositions[decisionPos], decisionPos >= lastAlt && void 0 !== altPos.alternation) {\r\n var altNdxs = getMaskSet().validPositions[lastAlt].locator[alternation].toString().split(\",\"), decisionTaker = void 0 !== altPos.locator[alternation] ? altPos.locator[alternation] : altNdxs[0];\r\n decisionTaker.length > 0 && (decisionTaker = decisionTaker.split(\",\")[0]);\r\n for (var mndx = 0; mndx < altNdxs.length; mndx++) if (decisionTaker < altNdxs[mndx]) {\r\n for (var possibilityPos, possibilities, dp = decisionPos; dp >= 0; dp--) if (possibilityPos = getMaskSet().validPositions[dp], \r\n void 0 !== possibilityPos) {\r\n possibilities = possibilityPos.locator[alternation], possibilityPos.locator[alternation] = parseInt(altNdxs[mndx]);\r\n break;\r\n }\r\n if (decisionTaker !== possibilityPos.locator[alternation]) {\r\n var validInputs = [], staticInputsBeforePos = 0;\r\n for (i = decisionPos + 1; i < getLastValidPosition() + 1; i++) validPos = getMaskSet().validPositions[i], \r\n validPos && null != validPos.match.fn ? validInputs.push(validPos.input) : pos > i && staticInputsBeforePos++, \r\n delete getMaskSet().validPositions[i], delete getMaskSet().tests[i];\r\n for (resetMaskSet(!0), opts.keepStatic = !opts.keepStatic, isValidRslt = !0; validInputs.length > 0; ) {\r\n var input = validInputs.shift();\r\n if (input !== opts.skipOptionalPartCharacter && !(isValidRslt = isValid(getLastValidPosition() + 1, input, !1, !0))) break;\r\n }\r\n if (possibilityPos.alternation = alternation, possibilityPos.locator[alternation] = possibilities, \r\n isValidRslt) {\r\n var targetLvp = getLastValidPosition(pos) + 1, staticInputsBeforePosAlternate = 0;\r\n for (i = decisionPos + 1; i < getLastValidPosition() + 1; i++) validPos = getMaskSet().validPositions[i], \r\n (void 0 === validPos || null == validPos.match.fn) && pos > i && staticInputsBeforePosAlternate++;\r\n pos += staticInputsBeforePosAlternate - staticInputsBeforePos, isValidRslt = isValid(pos > targetLvp ? targetLvp : pos, c, strict, fromSetValid);\r\n }\r\n if (opts.keepStatic = !opts.keepStatic, isValidRslt) return isValidRslt;\r\n resetMaskSet(), getMaskSet().validPositions = $.extend(!0, {}, validPsClone);\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n return !1;\r\n }\r\n function trackbackAlternations(originalPos, newPos) {\r\n for (var vp = getMaskSet().validPositions[newPos], targetLocator = vp.locator, tll = targetLocator.length, ps = originalPos; newPos > ps; ps++) if (!isMask(ps, !0)) {\r\n var tests = getTests(ps), bestMatch = tests[0], equality = -1;\r\n $.each(tests, function(ndx, tst) {\r\n for (var i = 0; tll > i; i++) tst.locator[i] && checkAlternationMatch(tst.locator[i].toString().split(\",\"), targetLocator[i].toString().split(\",\")) && i > equality && (equality = i, \r\n bestMatch = tst);\r\n }), setValidPosition(ps, $.extend({}, bestMatch, {\r\n input: bestMatch.match.def\r\n }), !0);\r\n }\r\n }\r\n strict = strict === !0;\r\n for (var buffer = getBuffer(), pndx = pos - 1; pndx > -1 && !getMaskSet().validPositions[pndx]; pndx--) ;\r\n for (pndx++; pos > pndx; pndx++) void 0 === getMaskSet().validPositions[pndx] && ((!isMask(pndx) || buffer[pndx] !== getPlaceholder(pndx)) && getTests(pndx).length > 1 || buffer[pndx] === opts.radixPoint || \"0\" === buffer[pndx] && $.inArray(opts.radixPoint, buffer) < pndx) && _isValid(pndx, buffer[pndx], !0);\r\n var maskPos = pos, result = !1, positionsClone = $.extend(!0, {}, getMaskSet().validPositions);\r\n if (maskPos < getMaskLength() && (result = _isValid(maskPos, c, strict, fromSetValid), \r\n (!strict || fromSetValid) && result === !1)) {\r\n var currentPosValid = getMaskSet().validPositions[maskPos];\r\n if (!currentPosValid || null !== currentPosValid.match.fn || currentPosValid.match.def !== c && c !== opts.skipOptionalPartCharacter) {\r\n if ((opts.insertMode || void 0 === getMaskSet().validPositions[seekNext(maskPos)]) && !isMask(maskPos, !0)) for (var nPos = maskPos + 1, snPos = seekNext(maskPos); snPos >= nPos; nPos++) if (result = _isValid(nPos, c, strict, fromSetValid), \r\n result !== !1) {\r\n trackbackAlternations(maskPos, nPos), maskPos = nPos;\r\n break;\r\n }\r\n } else result = {\r\n caret: seekNext(maskPos)\r\n };\r\n }\r\n if (result === !1 && opts.keepStatic && (result = alternate(pos, c, strict, fromSetValid)), \r\n result === !0 && (result = {\r\n pos: maskPos\r\n }), $.isFunction(opts.postValidation) && result !== !1 && !strict) {\r\n var postValidResult = opts.postValidation(getBuffer(!0), opts);\r\n if (postValidResult) {\r\n if (postValidResult.refreshFromBuffer) {\r\n var refresh = postValidResult.refreshFromBuffer;\r\n refreshFromBuffer(refresh === !0 ? refresh : refresh.start, refresh.end, postValidResult.buffer), \r\n resetMaskSet(!0), result = postValidResult;\r\n }\r\n } else resetMaskSet(!0), getMaskSet().validPositions = $.extend(!0, {}, positionsClone), \r\n result = !1;\r\n }\r\n return result;\r\n }\r\n function isMask(pos, strict) {\r\n var test = getTest(pos);\r\n if (null != test.fn) return test.fn;\r\n if (strict !== !0 && pos > -1 && !opts.keepStatic && void 0 === getMaskSet().validPositions[pos]) {\r\n var tests = getTests(pos, void 0, void 0, !0);\r\n return tests.length > 2;\r\n }\r\n return !1;\r\n }\r\n function getMaskLength() {\r\n var maskLength;\r\n maxLength = void 0 !== el ? el.maxLength : void 0, -1 === maxLength && (maxLength = void 0);\r\n var pos, lvp = getLastValidPosition(), testPos = getMaskSet().validPositions[lvp], ndxIntlzr = void 0 !== testPos ? testPos.locator.slice() : void 0;\r\n for (pos = lvp + 1; void 0 === testPos || null !== testPos.match.fn || null === testPos.match.fn && \"\" !== testPos.match.def; pos++) testPos = getTestTemplate(pos, ndxIntlzr, pos - 1), \r\n ndxIntlzr = testPos.locator.slice();\r\n var lastTest = getTest(pos - 1);\r\n return maskLength = \"\" !== lastTest.def ? pos : pos - 1, void 0 === maxLength || maxLength > maskLength ? maskLength : maxLength;\r\n }\r\n function seekNext(pos, newBlock) {\r\n var maskL = getMaskLength();\r\n if (pos >= maskL) return maskL;\r\n for (var position = pos; ++position < maskL && (newBlock === !0 && (getTest(position).newBlockMarker !== !0 || !isMask(position)) || newBlock !== !0 && !isMask(position) && (opts.nojumps !== !0 || opts.nojumpsThreshold > position)); ) ;\r\n return position;\r\n }\r\n function seekPrevious(pos, newBlock) {\r\n var position = pos;\r\n if (0 >= position) return 0;\r\n for (;--position > 0 && (newBlock === !0 && getTest(position).newBlockMarker !== !0 || newBlock !== !0 && !isMask(position)); ) ;\r\n return position;\r\n }\r\n function getBufferElement(position) {\r\n return void 0 === getMaskSet().validPositions[position] ? getPlaceholder(position) : getMaskSet().validPositions[position].input;\r\n }\r\n function writeBuffer(input, buffer, caretPos, event, triggerInputEvent) {\r\n if (event && $.isFunction(opts.onBeforeWrite)) {\r\n var result = opts.onBeforeWrite(event, buffer, caretPos, opts);\r\n if (result) {\r\n if (result.refreshFromBuffer) {\r\n var refresh = result.refreshFromBuffer;\r\n refreshFromBuffer(refresh === !0 ? refresh : refresh.start, refresh.end, result.buffer || buffer), \r\n buffer = getBuffer(!0);\r\n }\r\n void 0 !== caretPos && (caretPos = void 0 !== result.caret ? result.caret : caretPos);\r\n }\r\n }\r\n input.inputmask._valueSet(buffer.join(\"\")), void 0 === caretPos || void 0 !== event && \"blur\" === event.type || caret(input, caretPos), \r\n triggerInputEvent === !0 && (skipInputEvent = !0, $(input).trigger(\"input\"));\r\n }\r\n function getPlaceholder(pos, test) {\r\n if (test = test || getTest(pos), void 0 !== test.placeholder) return test.placeholder;\r\n if (null === test.fn) {\r\n if (pos > -1 && !opts.keepStatic && void 0 === getMaskSet().validPositions[pos]) {\r\n var prevTest, tests = getTests(pos), staticAlternations = 0;\r\n if (tests.length > 2) for (var i = 0; i < tests.length; i++) if (tests[i].match.optionality !== !0 && tests[i].match.optionalQuantifier !== !0 && (null === tests[i].match.fn || void 0 === prevTest || tests[i].match.fn.test(prevTest.match.def, getMaskSet(), pos, !0, opts) !== !1) && (staticAlternations++, \r\n null === tests[i].match.fn && (prevTest = tests[i]), staticAlternations > 1)) return opts.placeholder.charAt(pos % opts.placeholder.length);\r\n }\r\n return test.def;\r\n }\r\n return opts.placeholder.charAt(pos % opts.placeholder.length);\r\n }\r\n function checkVal(input, writeOut, strict, nptvl) {\r\n function isTemplateMatch() {\r\n var isMatch = !1, charCodeNdx = getBufferTemplate().slice(initialNdx, seekNext(initialNdx)).join(\"\").indexOf(charCodes);\r\n if (-1 !== charCodeNdx && !isMask(initialNdx)) {\r\n isMatch = !0;\r\n for (var bufferTemplateArr = getBufferTemplate().slice(initialNdx, initialNdx + charCodeNdx), i = 0; i < bufferTemplateArr.length; i++) if (\" \" !== bufferTemplateArr[i]) {\r\n isMatch = !1;\r\n break;\r\n }\r\n }\r\n return isMatch;\r\n }\r\n var inputValue = nptvl.slice(), charCodes = \"\", initialNdx = 0;\r\n if (resetMaskSet(), getMaskSet().p = seekNext(-1), !strict) if (opts.autoUnmask !== !0) {\r\n var staticInput = getBufferTemplate().slice(0, seekNext(-1)).join(\"\"), matches = inputValue.join(\"\").match(new RegExp(\"^\" + Inputmask.escapeRegex(staticInput), \"g\"));\r\n matches && matches.length > 0 && (inputValue.splice(0, matches.length * staticInput.length), \r\n initialNdx = seekNext(initialNdx));\r\n } else initialNdx = seekNext(initialNdx);\r\n $.each(inputValue, function(ndx, charCode) {\r\n var keypress = $.Event(\"keypress\");\r\n keypress.which = charCode.charCodeAt(0), charCodes += charCode;\r\n var lvp = getLastValidPosition(void 0, !0), lvTest = getMaskSet().validPositions[lvp], nextTest = getTestTemplate(lvp + 1, lvTest ? lvTest.locator.slice() : void 0, lvp);\r\n if (!isTemplateMatch() || strict || opts.autoUnmask) {\r\n var pos = strict ? ndx : null == nextTest.match.fn && nextTest.match.optionality && lvp + 1 < getMaskSet().p ? lvp + 1 : getMaskSet().p;\r\n keypressEvent.call(input, keypress, !0, !1, strict, pos), initialNdx = pos + 1, \r\n charCodes = \"\";\r\n } else keypressEvent.call(input, keypress, !0, !1, !0, lvp + 1);\r\n }), writeOut && writeBuffer(input, getBuffer(), document.activeElement === input ? seekNext(getLastValidPosition(0)) : void 0, $.Event(\"checkval\"));\r\n }\r\n function unmaskedvalue(input) {\r\n if (input && void 0 === input.inputmask) return input.value;\r\n var umValue = [], vps = getMaskSet().validPositions;\r\n for (var pndx in vps) vps[pndx].match && null != vps[pndx].match.fn && umValue.push(vps[pndx].input);\r\n var unmaskedValue = 0 === umValue.length ? null : (isRTL ? umValue.reverse() : umValue).join(\"\");\r\n if (null !== unmaskedValue) {\r\n var bufferValue = (isRTL ? getBuffer().slice().reverse() : getBuffer()).join(\"\");\r\n $.isFunction(opts.onUnMask) && (unmaskedValue = opts.onUnMask(bufferValue, unmaskedValue, opts) || unmaskedValue);\r\n }\r\n return unmaskedValue;\r\n }\r\n function caret(input, begin, end) {\r\n function translatePosition(pos) {\r\n if (isRTL && \"number\" == typeof pos && (!opts.greedy || \"\" !== opts.placeholder)) {\r\n var bffrLght = getBuffer().join(\"\").length;\r\n pos = bffrLght - pos;\r\n }\r\n return pos;\r\n }\r\n var range;\r\n if (\"number\" != typeof begin) return input.setSelectionRange ? (begin = input.selectionStart, \r\n end = input.selectionEnd) : window.getSelection ? (range = window.getSelection().getRangeAt(0), \r\n (range.commonAncestorContainer.parentNode === input || range.commonAncestorContainer === input) && (begin = range.startOffset, \r\n end = range.endOffset)) : document.selection && document.selection.createRange && (range = document.selection.createRange(), \r\n begin = 0 - range.duplicate().moveStart(\"character\", -1e5), end = begin + range.text.length), \r\n {\r\n begin: translatePosition(begin),\r\n end: translatePosition(end)\r\n };\r\n begin = translatePosition(begin), end = translatePosition(end), end = \"number\" == typeof end ? end : begin;\r\n var scrollCalc = parseInt(((input.ownerDocument.defaultView || window).getComputedStyle ? (input.ownerDocument.defaultView || window).getComputedStyle(input, null) : input.currentStyle).fontSize) * end;\r\n if (input.scrollLeft = scrollCalc > input.scrollWidth ? scrollCalc : 0, androidchrome || opts.insertMode !== !1 || begin !== end || end++, \r\n input.setSelectionRange) input.selectionStart = begin, input.selectionEnd = end; else if (window.getSelection) {\r\n if (range = document.createRange(), void 0 === input.firstChild) {\r\n var textNode = document.createTextNode(\"\");\r\n input.appendChild(textNode);\r\n }\r\n range.setStart(input.firstChild, begin < input.inputmask._valueGet().length ? begin : input.inputmask._valueGet().length), \r\n range.setEnd(input.firstChild, end < input.inputmask._valueGet().length ? end : input.inputmask._valueGet().length), \r\n range.collapse(!0);\r\n var sel = window.getSelection();\r\n sel.removeAllRanges(), sel.addRange(range);\r\n } else input.createTextRange && (range = input.createTextRange(), range.collapse(!0), \r\n range.moveEnd(\"character\", end), range.moveStart(\"character\", begin), range.select());\r\n }\r\n function determineLastRequiredPosition(returnDefinition) {\r\n var pos, testPos, buffer = getBuffer(), bl = buffer.length, lvp = getLastValidPosition(), positions = {}, lvTest = getMaskSet().validPositions[lvp], ndxIntlzr = void 0 !== lvTest ? lvTest.locator.slice() : void 0;\r\n for (pos = lvp + 1; pos < buffer.length; pos++) testPos = getTestTemplate(pos, ndxIntlzr, pos - 1), \r\n ndxIntlzr = testPos.locator.slice(), positions[pos] = $.extend(!0, {}, testPos);\r\n var lvTestAlt = lvTest && void 0 !== lvTest.alternation ? lvTest.locator[lvTest.alternation] : void 0;\r\n for (pos = bl - 1; pos > lvp && (testPos = positions[pos], (testPos.match.optionality || testPos.match.optionalQuantifier || lvTestAlt && (lvTestAlt !== positions[pos].locator[lvTest.alternation] && null != testPos.match.fn || null === testPos.match.fn && testPos.locator[lvTest.alternation] && checkAlternationMatch(testPos.locator[lvTest.alternation].toString().split(\",\"), lvTestAlt.toString().split(\",\")) && \"\" !== getTests(pos)[0].def)) && buffer[pos] === getPlaceholder(pos, testPos.match)); pos--) bl--;\r\n return returnDefinition ? {\r\n l: bl,\r\n def: positions[bl] ? positions[bl].match : void 0\r\n } : bl;\r\n }\r\n function clearOptionalTail(buffer) {\r\n for (var rl = determineLastRequiredPosition(), lmib = buffer.length - 1; lmib > rl && !isMask(lmib); lmib--) ;\r\n return buffer.splice(rl, lmib + 1 - rl), buffer;\r\n }\r\n function isComplete(buffer) {\r\n if ($.isFunction(opts.isComplete)) return opts.isComplete(buffer, opts);\r\n if (\"*\" === opts.repeat) return void 0;\r\n var complete = !1, lrp = determineLastRequiredPosition(!0), aml = seekPrevious(lrp.l);\r\n if (void 0 === lrp.def || lrp.def.newBlockMarker || lrp.def.optionality || lrp.def.optionalQuantifier) {\r\n complete = !0;\r\n for (var i = 0; aml >= i; i++) {\r\n var test = getTestTemplate(i).match;\r\n if (null !== test.fn && void 0 === getMaskSet().validPositions[i] && test.optionality !== !0 && test.optionalQuantifier !== !0 || null === test.fn && buffer[i] !== getPlaceholder(i, test)) {\r\n complete = !1;\r\n break;\r\n }\r\n }\r\n }\r\n return complete;\r\n }\r\n function isSelection(begin, end) {\r\n return isRTL ? begin - end > 1 || begin - end === 1 && opts.insertMode : end - begin > 1 || end - begin === 1 && opts.insertMode;\r\n }\r\n function wrapEventRuler(eventHandler) {\r\n return function(e) {\r\n var inComposition = !1, keydownPressed = !1;\r\n if (void 0 === this.inputmask) {\r\n var imOpts = $.data(this, \"_inputmask_opts\");\r\n imOpts ? new Inputmask(imOpts).mask(this) : $(this).off(\".inputmask\");\r\n } else {\r\n if (\"setvalue\" === e.type || !(this.disabled || this.readOnly && !(\"keydown\" === e.type && e.ctrlKey && 67 === e.keyCode || opts.tabThrough === !1 && e.keyCode === Inputmask.keyCode.TAB))) {\r\n switch (e.type) {\r\n case \"input\":\r\n if (skipInputEvent === !0 || inComposition === !0) return skipInputEvent = !1, e.preventDefault();\r\n keydownPressed = !1;\r\n break;\r\n\r\n case \"keydown\":\r\n skipKeyPressEvent = !1, inComposition = !1, keydownPressed = !0;\r\n break;\r\n\r\n case \"keypress\":\r\n if (skipKeyPressEvent === !0) return e.preventDefault();\r\n skipKeyPressEvent = !0;\r\n break;\r\n\r\n case \"compositionstart\":\r\n inComposition = !0;\r\n break;\r\n\r\n case \"compositionupdate\":\r\n skipInputEvent = keydownPressed;\r\n break;\r\n\r\n case \"compositionend\":\r\n inComposition = !1, keydownPressed = !1;\r\n break;\r\n\r\n case \"cut\":\r\n skipInputEvent = !0;\r\n }\r\n return eventHandler.apply(this, arguments);\r\n }\r\n e.preventDefault();\r\n }\r\n };\r\n }\r\n function patchValueProperty(npt) {\r\n function patchValhook(type) {\r\n if ($.valHooks && (void 0 === $.valHooks[type] || $.valHooks[type].inputmaskpatch !== !0)) {\r\n var valhookGet = $.valHooks[type] && $.valHooks[type].get ? $.valHooks[type].get : function(elem) {\r\n return elem.value;\r\n }, valhookSet = $.valHooks[type] && $.valHooks[type].set ? $.valHooks[type].set : function(elem, value) {\r\n return elem.value = value, elem;\r\n };\r\n $.valHooks[type] = {\r\n get: function(elem) {\r\n if (elem.inputmask) {\r\n if (elem.inputmask.opts.autoUnmask) return elem.inputmask.unmaskedvalue();\r\n var result = valhookGet(elem), maskset = elem.inputmask.maskset, bufferTemplate = maskset._buffer;\r\n return bufferTemplate = bufferTemplate ? bufferTemplate.join(\"\") : \"\", result !== bufferTemplate ? result : \"\";\r\n }\r\n return valhookGet(elem);\r\n },\r\n set: function(elem, value) {\r\n var result, $elem = $(elem);\r\n return result = valhookSet(elem, value), elem.inputmask && $elem.trigger(\"setvalue.inputmask\"), \r\n result;\r\n },\r\n inputmaskpatch: !0\r\n };\r\n }\r\n }\r\n function getter() {\r\n return this.inputmask ? this.inputmask.opts.autoUnmask ? this.inputmask.unmaskedvalue() : valueGet.call(this) !== getBufferTemplate().join(\"\") ? document.activeElement === this && opts.clearMaskOnLostFocus ? (isRTL ? clearOptionalTail(getBuffer().slice()).reverse() : clearOptionalTail(getBuffer().slice())).join(\"\") : valueGet.call(this) : \"\" : valueGet.call(this);\r\n }\r\n function setter(value) {\r\n valueSet.call(this, value), this.inputmask && $(this).trigger(\"setvalue.inputmask\");\r\n }\r\n function installNativeValueSetFallback(npt) {\r\n $(npt).on(\"mouseenter.inputmask\", wrapEventRuler(function(event) {\r\n var $input = $(this), input = this, value = input.inputmask._valueGet();\r\n \"\" !== value && value !== getBuffer().join(\"\") && $input.trigger(\"setvalue.inputmask\");\r\n }));\r\n }\r\n var valueGet, valueSet;\r\n npt.inputmask.__valueGet || (Object.getOwnPropertyDescriptor && void 0 === npt.value ? (valueGet = function() {\r\n return this.textContent;\r\n }, valueSet = function(value) {\r\n this.textContent = value;\r\n }, Object.defineProperty(npt, \"value\", {\r\n get: getter,\r\n set: setter\r\n })) : document.__lookupGetter__ && npt.__lookupGetter__(\"value\") ? (valueGet = npt.__lookupGetter__(\"value\"), \r\n valueSet = npt.__lookupSetter__(\"value\"), npt.__defineGetter__(\"value\", getter), \r\n npt.__defineSetter__(\"value\", setter)) : (valueGet = function() {\r\n return npt.value;\r\n }, valueSet = function(value) {\r\n npt.value = value;\r\n }, patchValhook(npt.type), installNativeValueSetFallback(npt)), npt.inputmask.__valueGet = valueGet, \r\n npt.inputmask._valueGet = function(overruleRTL) {\r\n return isRTL && overruleRTL !== !0 ? valueGet.call(this.el).split(\"\").reverse().join(\"\") : valueGet.call(this.el);\r\n }, npt.inputmask.__valueSet = valueSet, npt.inputmask._valueSet = function(value, overruleRTL) {\r\n valueSet.call(this.el, null === value || void 0 === value ? \"\" : overruleRTL !== !0 && isRTL ? value.split(\"\").reverse().join(\"\") : value);\r\n });\r\n }\r\n function handleRemove(input, k, pos, strict) {\r\n function generalize() {\r\n if (opts.keepStatic) {\r\n resetMaskSet(!0);\r\n var lastAlt, validInputs = [], positionsClone = $.extend(!0, {}, getMaskSet().validPositions);\r\n for (lastAlt = getLastValidPosition(); lastAlt >= 0; lastAlt--) {\r\n var validPos = getMaskSet().validPositions[lastAlt];\r\n if (validPos && (null != validPos.match.fn && validInputs.push(validPos.input), \r\n delete getMaskSet().validPositions[lastAlt], void 0 !== validPos.alternation && validPos.locator[validPos.alternation] === getTestTemplate(lastAlt).locator[validPos.alternation])) break;\r\n }\r\n if (lastAlt > -1) for (;validInputs.length > 0; ) {\r\n getMaskSet().p = seekNext(getLastValidPosition());\r\n var keypress = $.Event(\"keypress\");\r\n keypress.which = validInputs.pop().charCodeAt(0), keypressEvent.call(input, keypress, !0, !1, !1, getMaskSet().p);\r\n } else getMaskSet().validPositions = $.extend(!0, {}, positionsClone);\r\n }\r\n }\r\n if ((opts.numericInput || isRTL) && (k === Inputmask.keyCode.BACKSPACE ? k = Inputmask.keyCode.DELETE : k === Inputmask.keyCode.DELETE && (k = Inputmask.keyCode.BACKSPACE), \r\n isRTL)) {\r\n var pend = pos.end;\r\n pos.end = pos.begin, pos.begin = pend;\r\n }\r\n k === Inputmask.keyCode.BACKSPACE && (pos.end - pos.begin < 1 || opts.insertMode === !1) ? (pos.begin = seekPrevious(pos.begin), \r\n void 0 === getMaskSet().validPositions[pos.begin] || getMaskSet().validPositions[pos.begin].input !== opts.groupSeparator && getMaskSet().validPositions[pos.begin].input !== opts.radixPoint || pos.begin--) : k === Inputmask.keyCode.DELETE && pos.begin === pos.end && (pos.end = isMask(pos.end) ? pos.end + 1 : seekNext(pos.end) + 1, \r\n void 0 === getMaskSet().validPositions[pos.begin] || getMaskSet().validPositions[pos.begin].input !== opts.groupSeparator && getMaskSet().validPositions[pos.begin].input !== opts.radixPoint || pos.end++), \r\n stripValidPositions(pos.begin, pos.end, !1, strict), strict !== !0 && generalize();\r\n var lvp = getLastValidPosition(pos.begin);\r\n lvp < pos.begin ? (-1 === lvp && resetMaskSet(), getMaskSet().p = seekNext(lvp)) : strict !== !0 && (getMaskSet().p = pos.begin);\r\n }\r\n function keydownEvent(e) {\r\n var input = this, $input = $(input), k = e.keyCode, pos = caret(input);\r\n k === Inputmask.keyCode.BACKSPACE || k === Inputmask.keyCode.DELETE || iphone && 127 === k || e.ctrlKey && 88 === k && !isInputEventSupported(\"cut\") ? (e.preventDefault(), \r\n 88 === k && (undoValue = getBuffer().join(\"\")), handleRemove(input, k, pos), writeBuffer(input, getBuffer(), getMaskSet().p, e, undoValue !== getBuffer().join(\"\")), \r\n input.inputmask._valueGet() === getBufferTemplate().join(\"\") ? $input.trigger(\"cleared\") : isComplete(getBuffer()) === !0 && $input.trigger(\"complete\"), \r\n opts.showTooltip && (input.title = opts.tooltip || getMaskSet().mask)) : k === Inputmask.keyCode.END || k === Inputmask.keyCode.PAGE_DOWN ? setTimeout(function() {\r\n var caretPos = seekNext(getLastValidPosition());\r\n opts.insertMode || caretPos !== getMaskLength() || e.shiftKey || caretPos--, caret(input, e.shiftKey ? pos.begin : caretPos, caretPos);\r\n }, 0) : k === Inputmask.keyCode.HOME && !e.shiftKey || k === Inputmask.keyCode.PAGE_UP ? caret(input, 0, e.shiftKey ? pos.begin : 0) : (opts.undoOnEscape && k === Inputmask.keyCode.ESCAPE || 90 === k && e.ctrlKey) && e.altKey !== !0 ? (checkVal(input, !0, !1, undoValue.split(\"\")), \r\n $input.trigger(\"click\")) : k !== Inputmask.keyCode.INSERT || e.shiftKey || e.ctrlKey ? opts.tabThrough === !0 && k === Inputmask.keyCode.TAB ? (e.shiftKey === !0 ? (null === getTest(pos.begin).fn && (pos.begin = seekNext(pos.begin)), \r\n pos.end = seekPrevious(pos.begin, !0), pos.begin = seekPrevious(pos.end, !0)) : (pos.begin = seekNext(pos.begin, !0), \r\n pos.end = seekNext(pos.begin, !0), pos.end < getMaskLength() && pos.end--), pos.begin < getMaskLength() && (e.preventDefault(), \r\n caret(input, pos.begin, pos.end))) : opts.insertMode !== !1 || e.shiftKey || (k === Inputmask.keyCode.RIGHT ? setTimeout(function() {\r\n var caretPos = caret(input);\r\n caret(input, caretPos.begin);\r\n }, 0) : k === Inputmask.keyCode.LEFT && setTimeout(function() {\r\n var caretPos = caret(input);\r\n caret(input, isRTL ? caretPos.begin + 1 : caretPos.begin - 1);\r\n }, 0)) : (opts.insertMode = !opts.insertMode, caret(input, opts.insertMode || pos.begin !== getMaskLength() ? pos.begin : pos.begin - 1)), \r\n opts.onKeyDown.call(this, e, getBuffer(), caret(input).begin, opts), ignorable = -1 !== $.inArray(k, opts.ignorables);\r\n }\r\n function keypressEvent(e, checkval, writeOut, strict, ndx) {\r\n var input = this, $input = $(input), k = e.which || e.charCode || e.keyCode;\r\n if (!(checkval === !0 || e.ctrlKey && e.altKey) && (e.ctrlKey || e.metaKey || ignorable)) return k === Inputmask.keyCode.ENTER && undoValue !== getBuffer().join(\"\") && (undoValue = getBuffer().join(\"\"), \r\n e.preventDefault(), setTimeout(function() {\r\n $input.trigger(\"change\");\r\n }, 0)), !0;\r\n if (k) {\r\n 46 === k && e.shiftKey === !1 && \",\" === opts.radixPoint && (k = 44);\r\n var forwardPosition, pos = checkval ? {\r\n begin: ndx,\r\n end: ndx\r\n } : caret(input), c = String.fromCharCode(k), isSlctn = isSelection(pos.begin, pos.end);\r\n isSlctn && (getMaskSet().undoPositions = $.extend(!0, {}, getMaskSet().validPositions), \r\n handleRemove(input, Inputmask.keyCode.DELETE, pos, !0), pos.begin = getMaskSet().p, \r\n opts.insertMode || (opts.insertMode = !opts.insertMode, setValidPosition(pos.begin, strict), \r\n opts.insertMode = !opts.insertMode), isSlctn = !opts.multi), getMaskSet().writeOutBuffer = !0;\r\n var p = isRTL && !isSlctn ? pos.end : pos.begin, valResult = isValid(p, c, strict);\r\n if (valResult !== !1) {\r\n if (valResult !== !0 && (p = void 0 !== valResult.pos ? valResult.pos : p, c = void 0 !== valResult.c ? valResult.c : c), \r\n resetMaskSet(!0), void 0 !== valResult.caret) forwardPosition = valResult.caret; else {\r\n var vps = getMaskSet().validPositions;\r\n forwardPosition = !opts.keepStatic && (void 0 !== vps[p + 1] && getTests(p + 1, vps[p].locator.slice(), p).length > 1 || void 0 !== vps[p].alternation) ? p + 1 : seekNext(p);\r\n }\r\n getMaskSet().p = forwardPosition;\r\n }\r\n if (writeOut !== !1) {\r\n var self = this;\r\n if (setTimeout(function() {\r\n opts.onKeyValidation.call(self, k, valResult, opts);\r\n }, 0), getMaskSet().writeOutBuffer && valResult !== !1) {\r\n var buffer = getBuffer();\r\n writeBuffer(input, buffer, checkval ? void 0 : opts.numericInput ? seekPrevious(forwardPosition) : forwardPosition, e, checkval !== !0), \r\n checkval !== !0 && setTimeout(function() {\r\n isComplete(buffer) === !0 && $input.trigger(\"complete\");\r\n }, 0);\r\n } else isSlctn && (getMaskSet().buffer = void 0, getMaskSet().validPositions = getMaskSet().undoPositions);\r\n } else isSlctn && (getMaskSet().buffer = void 0, getMaskSet().validPositions = getMaskSet().undoPositions);\r\n if (opts.showTooltip && (input.title = opts.tooltip || getMaskSet().mask), checkval && $.isFunction(opts.onBeforeWrite)) {\r\n var result = opts.onBeforeWrite(e, getBuffer(), forwardPosition, opts);\r\n if (result && result.refreshFromBuffer) {\r\n var refresh = result.refreshFromBuffer;\r\n refreshFromBuffer(refresh === !0 ? refresh : refresh.start, refresh.end, result.buffer), \r\n resetMaskSet(!0), result.caret && (getMaskSet().p = result.caret);\r\n }\r\n }\r\n if (e.preventDefault(), checkval) return valResult;\r\n }\r\n }\r\n function pasteEvent(e) {\r\n var input = this, ev = e.originalEvent || e, $input = $(input), inputValue = input.inputmask._valueGet(!0), caretPos = caret(input);\r\n if (\"propertychange\" === e.type && input.inputmask._valueGet().length <= getMaskLength()) return !0;\r\n if (\"paste\" === e.type) {\r\n var valueBeforeCaret = inputValue.substr(0, caretPos.begin), valueAfterCaret = inputValue.substr(caretPos.end, inputValue.length);\r\n valueBeforeCaret === getBufferTemplate().slice(0, caretPos.begin).join(\"\") && (valueBeforeCaret = \"\"), \r\n valueAfterCaret === getBufferTemplate().slice(caretPos.end).join(\"\") && (valueAfterCaret = \"\"), \r\n window.clipboardData && window.clipboardData.getData ? inputValue = valueBeforeCaret + window.clipboardData.getData(\"Text\") + valueAfterCaret : ev.clipboardData && ev.clipboardData.getData && (inputValue = valueBeforeCaret + ev.clipboardData.getData(\"text/plain\") + valueAfterCaret);\r\n }\r\n var pasteValue = inputValue;\r\n if ($.isFunction(opts.onBeforePaste)) {\r\n if (pasteValue = opts.onBeforePaste(inputValue, opts), pasteValue === !1) return e.preventDefault(), \r\n !1;\r\n pasteValue || (pasteValue = inputValue);\r\n }\r\n return checkVal(input, !1, !1, isRTL ? pasteValue.split(\"\").reverse() : pasteValue.toString().split(\"\")), \r\n writeBuffer(input, getBuffer(), void 0, e, !0), $input.trigger(\"click\"), isComplete(getBuffer()) === !0 && $input.trigger(\"complete\"), \r\n !1;\r\n }\r\n function inputFallBackEvent(e) {\r\n var input = this;\r\n checkVal(input, !0, !1, input.inputmask._valueGet().split(\"\")), isComplete(getBuffer()) === !0 && $(input).trigger(\"complete\"), \r\n e.preventDefault();\r\n }\r\n function mobileInputEvent(e) {\r\n var input = this, caretPos = caret(input), currentValue = input._valueGet();\r\n currentValue = currentValue.replace(new RegExp(\"(\" + Inputmask.escapeRegex(getBufferTemplate().join(\"\")) + \")*\"), \"\"), \r\n caretPos.begin > currentValue.length && (caret(input, currentValue.length), caretPos = caret(input)), \r\n getBuffer().length - currentValue.length !== 1 || currentValue.charAt(caretPos.begin) === getBuffer()[caretPos.begin] || currentValue.charAt(caretPos.begin + 1) === getBuffer()[caretPos.begin] || isMask(caretPos.begin) ? inputFallBackEvent.call(this, e) : (e.keyCode = opts.keyCode.BACKSPACE, \r\n keydownEvent.call(input, e)), e.preventDefault();\r\n }\r\n function compositionStartEvent(e) {\r\n var ev = e.originalEvent || e;\r\n undoValue = getBuffer().join(\"\"), \"\" === compositionData || 0 !== ev.data.indexOf(compositionData);\r\n }\r\n function compositionUpdateEvent(e) {\r\n var input = this, ev = e.originalEvent || e;\r\n 0 === ev.data.indexOf(compositionData) && (resetMaskSet(), getMaskSet().p = seekNext(-1), \r\n skipInputEvent = !0);\r\n for (var newData = ev.data, i = 0; i < newData.length; i++) {\r\n var keypress = $.Event(\"keypress\");\r\n keypress.which = newData.charCodeAt(i), skipKeyPressEvent = !1, ignorable = !1, \r\n keypressEvent.call(input, keypress, !0, !1, !1, getMaskSet().p);\r\n }\r\n setTimeout(function() {\r\n var forwardPosition = getMaskSet().p;\r\n writeBuffer(input, getBuffer(), opts.numericInput ? seekPrevious(forwardPosition) : forwardPosition);\r\n }, 0), compositionData = ev.data;\r\n }\r\n function compositionEndEvent(e) {}\r\n function setValueEvent(e) {\r\n var input = this, value = input.inputmask._valueGet();\r\n checkVal(input, !0, !1, ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(value, opts) || value : value).split(\"\")), \r\n undoValue = getBuffer().join(\"\"), (opts.clearMaskOnLostFocus || opts.clearIncomplete) && input.inputmask._valueGet() === getBufferTemplate().join(\"\") && input.inputmask._valueSet(\"\");\r\n }\r\n function focusEvent(e) {\r\n var input = this, nptValue = input.inputmask._valueGet();\r\n opts.showMaskOnFocus && (!opts.showMaskOnHover || opts.showMaskOnHover && \"\" === nptValue) ? input.inputmask._valueGet() !== getBuffer().join(\"\") && writeBuffer(input, getBuffer(), seekNext(getLastValidPosition())) : mouseEnter === !1 && caret(input, seekNext(getLastValidPosition())), \r\n opts.positionCaretOnTab === !0 && setTimeout(function() {\r\n caret(input, seekNext(getLastValidPosition()));\r\n }, 0), undoValue = getBuffer().join(\"\");\r\n }\r\n function mouseleaveEvent(e) {\r\n var input = this;\r\n if (mouseEnter = !1, opts.clearMaskOnLostFocus) {\r\n var buffer = getBuffer().slice(), nptValue = input.inputmask._valueGet();\r\n document.activeElement !== input && nptValue !== input.getAttribute(\"placeholder\") && \"\" !== nptValue && (-1 === getLastValidPosition() && nptValue === getBufferTemplate().join(\"\") ? buffer = [] : clearOptionalTail(buffer), \r\n writeBuffer(input, buffer));\r\n }\r\n }\r\n function clickEvent(e) {\r\n function doRadixFocus(clickPos) {\r\n if (opts.radixFocus && \"\" !== opts.radixPoint) {\r\n var vps = getMaskSet().validPositions;\r\n if (void 0 === vps[clickPos] || vps[clickPos].input === getPlaceholder(clickPos)) {\r\n if (clickPos < seekNext(-1)) return !0;\r\n var radixPos = $.inArray(opts.radixPoint, getBuffer());\r\n if (-1 !== radixPos) {\r\n for (var vp in vps) if (vp > radixPos && vps[vp].input !== getPlaceholder(vp)) return !1;\r\n return !0;\r\n }\r\n }\r\n }\r\n return !1;\r\n }\r\n var input = this;\r\n if (document.activeElement === input) {\r\n var selectedCaret = caret(input);\r\n if (selectedCaret.begin === selectedCaret.end) if (doRadixFocus(selectedCaret.begin)) caret(input, $.inArray(opts.radixPoint, getBuffer())); else {\r\n var clickPosition = selectedCaret.begin, lvclickPosition = getLastValidPosition(clickPosition), lastPosition = seekNext(lvclickPosition);\r\n lastPosition > clickPosition ? caret(input, isMask(clickPosition) || isMask(clickPosition - 1) ? clickPosition : seekNext(clickPosition)) : ((getBuffer()[lastPosition] !== getPlaceholder(lastPosition) || !isMask(lastPosition, !0) && getTest(lastPosition).def === getPlaceholder(lastPosition)) && (lastPosition = seekNext(lastPosition)), \r\n caret(input, opts.numericInput ? 0 : lastPosition));\r\n }\r\n }\r\n }\r\n function dblclickEvent(e) {\r\n var input = this;\r\n setTimeout(function() {\r\n caret(input, 0, seekNext(getLastValidPosition()));\r\n }, 0);\r\n }\r\n function cutEvent(e) {\r\n var input = this, $input = $(input), pos = caret(input), ev = e.originalEvent || e, clipboardData = window.clipboardData || ev.clipboardData, clipData = isRTL ? getBuffer().slice(pos.end, pos.begin) : getBuffer().slice(pos.begin, pos.end);\r\n clipboardData.setData(\"text\", isRTL ? clipData.reverse().join(\"\") : clipData.join(\"\")), \r\n document.execCommand && document.execCommand(\"copy\"), handleRemove(input, Inputmask.keyCode.DELETE, pos), \r\n writeBuffer(input, getBuffer(), getMaskSet().p, e, undoValue !== getBuffer().join(\"\")), \r\n input.inputmask._valueGet() === getBufferTemplate().join(\"\") && $input.trigger(\"cleared\"), \r\n opts.showTooltip && (input.title = opts.tooltip || getMaskSet().mask);\r\n }\r\n function blurEvent(e) {\r\n var $input = $(this), input = this;\r\n if (input.inputmask) {\r\n var nptValue = input.inputmask._valueGet(), buffer = getBuffer().slice();\r\n undoValue !== buffer.join(\"\") && setTimeout(function() {\r\n $input.trigger(\"change\"), undoValue = buffer.join(\"\");\r\n }, 0), \"\" !== nptValue && (opts.clearMaskOnLostFocus && (-1 === getLastValidPosition() && nptValue === getBufferTemplate().join(\"\") ? buffer = [] : clearOptionalTail(buffer)), \r\n isComplete(buffer) === !1 && (setTimeout(function() {\r\n $input.trigger(\"incomplete\");\r\n }, 0), opts.clearIncomplete && (resetMaskSet(), buffer = opts.clearMaskOnLostFocus ? [] : getBufferTemplate().slice())), \r\n writeBuffer(input, buffer, void 0, e));\r\n }\r\n }\r\n function mouseenterEvent(e) {\r\n var input = this;\r\n mouseEnter = !0, document.activeElement !== input && opts.showMaskOnHover && input.inputmask._valueGet() !== getBuffer().join(\"\") && writeBuffer(input, getBuffer());\r\n }\r\n function submitEvent(e) {\r\n undoValue !== getBuffer().join(\"\") && $el.trigger(\"change\"), opts.clearMaskOnLostFocus && -1 === getLastValidPosition() && el.inputmask._valueGet && el.inputmask._valueGet() === getBufferTemplate().join(\"\") && el.inputmask._valueSet(\"\"), \r\n opts.removeMaskOnSubmit && (el.inputmask._valueSet(el.inputmask.unmaskedvalue(), !0), \r\n setTimeout(function() {\r\n writeBuffer(el, getBuffer());\r\n }, 0));\r\n }\r\n function resetEvent(e) {\r\n setTimeout(function() {\r\n $el.trigger(\"setvalue.inputmask\");\r\n }, 0);\r\n }\r\n function mask(elem) {\r\n if (el = elem, $el = $(el), opts.showTooltip && (el.title = opts.tooltip || getMaskSet().mask), \r\n (\"rtl\" === el.dir || opts.rightAlign) && (el.style.textAlign = \"right\"), (\"rtl\" === el.dir || opts.numericInput) && (el.dir = \"ltr\", \r\n el.removeAttribute(\"dir\"), el.inputmask.isRTL = !0, isRTL = !0), $el.off(\".inputmask\"), \r\n patchValueProperty(el), (\"INPUT\" === el.tagName && isInputTypeSupported(el.getAttribute(\"type\")) || el.isContentEditable) && ($(el.form).on(\"submit.inputmask\", submitEvent).on(\"reset.inputmask\", resetEvent), \r\n $el.on(\"mouseenter.inputmask\", wrapEventRuler(mouseenterEvent)).on(\"blur.inputmask\", wrapEventRuler(blurEvent)).on(\"focus.inputmask\", wrapEventRuler(focusEvent)).on(\"mouseleave.inputmask\", wrapEventRuler(mouseleaveEvent)).on(\"click.inputmask\", wrapEventRuler(clickEvent)).on(\"dblclick.inputmask\", wrapEventRuler(dblclickEvent)).on(PasteEventType + \".inputmask dragdrop.inputmask drop.inputmask\", wrapEventRuler(pasteEvent)).on(\"cut.inputmask\", wrapEventRuler(cutEvent)).on(\"complete.inputmask\", wrapEventRuler(opts.oncomplete)).on(\"incomplete.inputmask\", wrapEventRuler(opts.onincomplete)).on(\"cleared.inputmask\", wrapEventRuler(opts.oncleared)).on(\"keydown.inputmask\", wrapEventRuler(keydownEvent)).on(\"keypress.inputmask\", wrapEventRuler(keypressEvent)), \r\n androidfirefox || $el.on(\"compositionstart.inputmask\", wrapEventRuler(compositionStartEvent)).on(\"compositionupdate.inputmask\", wrapEventRuler(compositionUpdateEvent)).on(\"compositionend.inputmask\", wrapEventRuler(compositionEndEvent)), \r\n \"paste\" === PasteEventType && $el.on(\"input.inputmask\", wrapEventRuler(inputFallBackEvent)), \r\n (android || androidfirefox || androidchrome || kindle) && ($el.off(\"input.inputmask\"), \r\n $el.on(\"input.inputmask\", wrapEventRuler(mobileInputEvent)))), $el.on(\"setvalue.inputmask\", wrapEventRuler(setValueEvent)), \r\n \"\" !== el.inputmask._valueGet() || opts.clearMaskOnLostFocus === !1) {\r\n var initialValue = $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(el.inputmask._valueGet(), opts) || el.inputmask._valueGet() : el.inputmask._valueGet();\r\n checkVal(el, !0, !1, initialValue.split(\"\"));\r\n var buffer = getBuffer().slice();\r\n undoValue = buffer.join(\"\"), isComplete(buffer) === !1 && opts.clearIncomplete && resetMaskSet(), \r\n opts.clearMaskOnLostFocus && (buffer.join(\"\") === getBufferTemplate().join(\"\") ? buffer = [] : clearOptionalTail(buffer)), \r\n writeBuffer(el, buffer), document.activeElement === el && caret(el, seekNext(getLastValidPosition()));\r\n }\r\n }\r\n var undoValue, compositionData, el, $el, maxLength, valueBuffer, isRTL = !1, skipKeyPressEvent = !1, skipInputEvent = !1, ignorable = !1, mouseEnter = !0;\r\n if (void 0 !== actionObj) switch (actionObj.action) {\r\n case \"isComplete\":\r\n return el = actionObj.el, isComplete(getBuffer());\r\n\r\n case \"unmaskedvalue\":\r\n return el = actionObj.el, void 0 !== el && void 0 !== el.inputmask ? (maskset = el.inputmask.maskset, \r\n opts = el.inputmask.opts, isRTL = el.inputmask.isRTL) : (valueBuffer = actionObj.value, \r\n opts.numericInput && (isRTL = !0), valueBuffer = ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(valueBuffer, opts) || valueBuffer : valueBuffer).split(\"\"), \r\n checkVal(void 0, !1, !1, isRTL ? valueBuffer.reverse() : valueBuffer), $.isFunction(opts.onBeforeWrite) && opts.onBeforeWrite(void 0, getBuffer(), 0, opts)), \r\n unmaskedvalue(el);\r\n\r\n case \"mask\":\r\n el = actionObj.el, maskset = el.inputmask.maskset, opts = el.inputmask.opts, isRTL = el.inputmask.isRTL, \r\n undoValue = getBuffer().join(\"\"), mask(el);\r\n break;\r\n\r\n case \"format\":\r\n return opts.numericInput && (isRTL = !0), valueBuffer = ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(actionObj.value, opts) || actionObj.value : actionObj.value).split(\"\"), \r\n checkVal(void 0, !1, !1, isRTL ? valueBuffer.reverse() : valueBuffer), $.isFunction(opts.onBeforeWrite) && opts.onBeforeWrite(void 0, getBuffer(), 0, opts), \r\n actionObj.metadata ? {\r\n value: isRTL ? getBuffer().slice().reverse().join(\"\") : getBuffer().join(\"\"),\r\n metadata: maskScope({\r\n action: \"getmetadata\"\r\n }, maskset, opts)\r\n } : isRTL ? getBuffer().slice().reverse().join(\"\") : getBuffer().join(\"\");\r\n\r\n case \"isValid\":\r\n opts.numericInput && (isRTL = !0), actionObj.value ? (valueBuffer = actionObj.value.split(\"\"), \r\n checkVal(void 0, !1, !0, isRTL ? valueBuffer.reverse() : valueBuffer)) : actionObj.value = getBuffer().join(\"\");\r\n for (var buffer = getBuffer(), rl = determineLastRequiredPosition(), lmib = buffer.length - 1; lmib > rl && !isMask(lmib); lmib--) ;\r\n return buffer.splice(rl, lmib + 1 - rl), isComplete(buffer) && actionObj.value === getBuffer().join(\"\");\r\n\r\n case \"getemptymask\":\r\n return getBufferTemplate();\r\n\r\n case \"remove\":\r\n el = actionObj.el, $el = $(el), maskset = el.inputmask.maskset, opts = el.inputmask.opts, \r\n el.inputmask._valueSet(unmaskedvalue(el)), $el.off(\".inputmask\");\r\n var valueProperty;\r\n Object.getOwnPropertyDescriptor && (valueProperty = Object.getOwnPropertyDescriptor(el, \"value\")), \r\n valueProperty && valueProperty.get ? el.inputmask.__valueGet && Object.defineProperty(el, \"value\", {\r\n get: el.inputmask.__valueGet,\r\n set: el.inputmask.__valueSet\r\n }) : document.__lookupGetter__ && el.__lookupGetter__(\"value\") && el.inputmask.__valueGet && (el.__defineGetter__(\"value\", el.inputmask.__valueGet), \r\n el.__defineSetter__(\"value\", el.inputmask.__valueSet)), el.inputmask = void 0;\r\n break;\r\n\r\n case \"getmetadata\":\r\n if ($.isArray(maskset.metadata)) {\r\n for (var alternation, lvp = getLastValidPosition(), firstAlt = lvp; firstAlt >= 0; firstAlt--) if (getMaskSet().validPositions[firstAlt] && void 0 !== getMaskSet().validPositions[firstAlt].alternation) {\r\n alternation = getMaskSet().validPositions[firstAlt].alternation;\r\n break;\r\n }\r\n return void 0 !== alternation ? maskset.metadata[getMaskSet().validPositions[lvp].locator[alternation]] : maskset.metadata[0];\r\n }\r\n return maskset.metadata;\r\n }\r\n }\r\n Inputmask.prototype = {\r\n defaults: {\r\n placeholder: \"_\",\r\n optionalmarker: {\r\n start: \"[\",\r\n end: \"]\"\r\n },\r\n quantifiermarker: {\r\n start: \"{\",\r\n end: \"}\"\r\n },\r\n groupmarker: {\r\n start: \"(\",\r\n end: \")\"\r\n },\r\n alternatormarker: \"|\",\r\n escapeChar: \"\\\\\",\r\n mask: null,\r\n oncomplete: $.noop,\r\n onincomplete: $.noop,\r\n oncleared: $.noop,\r\n repeat: 0,\r\n greedy: !0,\r\n autoUnmask: !1,\r\n removeMaskOnSubmit: !1,\r\n clearMaskOnLostFocus: !0,\r\n insertMode: !0,\r\n clearIncomplete: !1,\r\n aliases: {},\r\n alias: null,\r\n onKeyDown: $.noop,\r\n onBeforeMask: null,\r\n onBeforePaste: function(pastedValue, opts) {\r\n return $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask(pastedValue, opts) : pastedValue;\r\n },\r\n onBeforeWrite: null,\r\n onUnMask: null,\r\n showMaskOnFocus: !0,\r\n showMaskOnHover: !0,\r\n onKeyValidation: $.noop,\r\n skipOptionalPartCharacter: \" \",\r\n showTooltip: !1,\r\n tooltip: void 0,\r\n numericInput: !1,\r\n rightAlign: !1,\r\n undoOnEscape: !0,\r\n radixPoint: \"\",\r\n groupSeparator: \"\",\r\n radixFocus: !1,\r\n nojumps: !1,\r\n nojumpsThreshold: 0,\r\n keepStatic: null,\r\n positionCaretOnTab: !1,\r\n tabThrough: !1,\r\n supportsInputType: [],\r\n definitions: {\r\n \"9\": {\r\n validator: \"[0-9]\",\r\n cardinality: 1,\r\n definitionSymbol: \"*\"\r\n },\r\n a: {\r\n validator: \"[A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\r\n cardinality: 1,\r\n definitionSymbol: \"*\"\r\n },\r\n \"*\": {\r\n validator: \"[0-9A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\r\n cardinality: 1\r\n }\r\n },\r\n ignorables: [ 8, 9, 13, 19, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 93, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123 ],\r\n isComplete: null,\r\n canClearPosition: $.noop,\r\n postValidation: null\r\n },\r\n masksCache: {},\r\n mask: function(elems) {\r\n var that = this;\r\n return \"string\" == typeof elems && (elems = document.getElementById(elems) || document.querySelectorAll(elems)), \r\n elems = elems.nodeName ? [ elems ] : elems, $.each(elems, function(ndx, el) {\r\n var scopedOpts = $.extend(!0, {}, that.opts);\r\n importAttributeOptions(el, scopedOpts, $.extend(!0, {}, that.userOptions));\r\n var maskset = generateMaskSet(scopedOpts, that.noMasksCache);\r\n void 0 !== maskset && (void 0 !== el.inputmask && el.inputmask.remove(), el.inputmask = new Inputmask(), \r\n el.inputmask.opts = scopedOpts, el.inputmask.noMasksCache = that.noMasksCache, el.inputmask.userOptions = $.extend(!0, {}, that.userOptions), \r\n el.inputmask.el = el, el.inputmask.maskset = maskset, el.inputmask.isRTL = !1, $.data(el, \"_inputmask_opts\", scopedOpts), \r\n maskScope({\r\n action: \"mask\",\r\n el: el\r\n }));\r\n }), elems ? elems[0].inputmask || this : this;\r\n },\r\n option: function(options) {\r\n return \"string\" == typeof options ? this.opts[options] : \"object\" == typeof options ? ($.extend(this.opts, options), \r\n $.extend(this.userOptions, options), this.el && (void 0 !== options.mask || void 0 !== options.alias ? this.mask(this.el) : ($.data(this.el, \"_inputmask_opts\", this.opts), \r\n maskScope({\r\n action: \"mask\",\r\n el: this.el\r\n }))), this) : void 0;\r\n },\r\n unmaskedvalue: function(value) {\r\n return maskScope({\r\n action: \"unmaskedvalue\",\r\n el: this.el,\r\n value: value\r\n }, this.el && this.el.inputmask ? this.el.inputmask.maskset : generateMaskSet(this.opts, this.noMasksCache), this.opts);\r\n },\r\n remove: function() {\r\n return this.el ? (maskScope({\r\n action: \"remove\",\r\n el: this.el\r\n }), this.el.inputmask = void 0, this.el) : void 0;\r\n },\r\n getemptymask: function() {\r\n return maskScope({\r\n action: \"getemptymask\"\r\n }, this.maskset || generateMaskSet(this.opts, this.noMasksCache), this.opts);\r\n },\r\n hasMaskedValue: function() {\r\n return !this.opts.autoUnmask;\r\n },\r\n isComplete: function() {\r\n return maskScope({\r\n action: \"isComplete\",\r\n el: this.el\r\n }, this.maskset || generateMaskSet(this.opts, this.noMasksCache), this.opts);\r\n },\r\n getmetadata: function() {\r\n return maskScope({\r\n action: \"getmetadata\"\r\n }, this.maskset || generateMaskSet(this.opts, this.noMasksCache), this.opts);\r\n },\r\n isValid: function(value) {\r\n return maskScope({\r\n action: \"isValid\",\r\n value: value\r\n }, this.maskset || generateMaskSet(this.opts, this.noMasksCache), this.opts);\r\n },\r\n format: function(value, metadata) {\r\n return maskScope({\r\n action: \"format\",\r\n value: value,\r\n metadata: metadata\r\n }, this.maskset || generateMaskSet(this.opts, this.noMasksCache), this.opts);\r\n }\r\n }, Inputmask.extendDefaults = function(options) {\r\n $.extend(!0, Inputmask.prototype.defaults, options);\r\n }, Inputmask.extendDefinitions = function(definition) {\r\n $.extend(!0, Inputmask.prototype.defaults.definitions, definition);\r\n }, Inputmask.extendAliases = function(alias) {\r\n $.extend(!0, Inputmask.prototype.defaults.aliases, alias);\r\n }, Inputmask.format = function(value, options, metadata) {\r\n return Inputmask(options).format(value, metadata);\r\n }, Inputmask.unmask = function(value, options) {\r\n return Inputmask(options).unmaskedvalue(value);\r\n }, Inputmask.isValid = function(value, options) {\r\n return Inputmask(options).isValid(value);\r\n }, Inputmask.remove = function(elems) {\r\n $.each(elems, function(ndx, el) {\r\n el.inputmask && el.inputmask.remove();\r\n });\r\n }, Inputmask.escapeRegex = function(str) {\r\n var specials = [ \"/\", \".\", \"*\", \"+\", \"?\", \"|\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", \"\\\\\", \"$\", \"^\" ];\r\n return str.replace(new RegExp(\"(\\\\\" + specials.join(\"|\\\\\") + \")\", \"gim\"), \"\\\\$1\");\r\n }, Inputmask.keyCode = {\r\n ALT: 18,\r\n BACKSPACE: 8,\r\n CAPS_LOCK: 20,\r\n COMMA: 188,\r\n COMMAND: 91,\r\n COMMAND_LEFT: 91,\r\n COMMAND_RIGHT: 93,\r\n CONTROL: 17,\r\n DELETE: 46,\r\n DOWN: 40,\r\n END: 35,\r\n ENTER: 13,\r\n ESCAPE: 27,\r\n HOME: 36,\r\n INSERT: 45,\r\n LEFT: 37,\r\n MENU: 93,\r\n NUMPAD_ADD: 107,\r\n NUMPAD_DECIMAL: 110,\r\n NUMPAD_DIVIDE: 111,\r\n NUMPAD_ENTER: 108,\r\n NUMPAD_MULTIPLY: 106,\r\n NUMPAD_SUBTRACT: 109,\r\n PAGE_DOWN: 34,\r\n PAGE_UP: 33,\r\n PERIOD: 190,\r\n RIGHT: 39,\r\n SHIFT: 16,\r\n SPACE: 32,\r\n TAB: 9,\r\n UP: 38,\r\n WINDOWS: 91\r\n };\r\n var ua = navigator.userAgent, iphone = null !== ua.match(new RegExp(\"iphone\", \"i\")), android = null !== ua.match(new RegExp(\"android.*safari.*\", \"i\")), androidchrome = null !== ua.match(new RegExp(\"android.*chrome.*\", \"i\")), androidfirefox = null !== ua.match(new RegExp(\"android.*firefox.*\", \"i\")), kindle = /Kindle/i.test(ua) || /Silk/i.test(ua) || /KFTT/i.test(ua) || /KFOT/i.test(ua) || /KFJWA/i.test(ua) || /KFJWI/i.test(ua) || /KFSOWI/i.test(ua) || /KFTHWA/i.test(ua) || /KFTHWI/i.test(ua) || /KFAPWA/i.test(ua) || /KFAPWI/i.test(ua), PasteEventType = isInputEventSupported(\"paste\") ? \"paste\" : isInputEventSupported(\"input\") ? \"input\" : \"propertychange\";\r\n return window.Inputmask = Inputmask, Inputmask;\r\n}(jQuery), function($, Inputmask) {\r\n return void 0 === $.fn.inputmask && ($.fn.inputmask = function(fn, options) {\r\n var nptmask, input = this[0];\r\n if (options = options || {}, \"string\" == typeof fn) switch (fn) {\r\n case \"unmaskedvalue\":\r\n return input && input.inputmask ? input.inputmask.unmaskedvalue() : $(input).val();\r\n\r\n case \"remove\":\r\n return this.each(function() {\r\n this.inputmask && this.inputmask.remove();\r\n });\r\n\r\n case \"getemptymask\":\r\n return input && input.inputmask ? input.inputmask.getemptymask() : \"\";\r\n\r\n case \"hasMaskedValue\":\r\n return input && input.inputmask ? input.inputmask.hasMaskedValue() : !1;\r\n\r\n case \"isComplete\":\r\n return input && input.inputmask ? input.inputmask.isComplete() : !0;\r\n\r\n case \"getmetadata\":\r\n return input && input.inputmask ? input.inputmask.getmetadata() : void 0;\r\n\r\n case \"setvalue\":\r\n $(input).val(options), input && void 0 !== input.inputmask && $(input).triggerHandler(\"setvalue.inputmask\");\r\n break;\r\n\r\n case \"option\":\r\n if (\"string\" != typeof options) return this.each(function() {\r\n return void 0 !== this.inputmask ? this.inputmask.option(options) : void 0;\r\n });\r\n if (input && void 0 !== input.inputmask) return input.inputmask.option(options);\r\n break;\r\n\r\n default:\r\n return options.alias = fn, nptmask = new Inputmask(options), this.each(function() {\r\n nptmask.mask(this);\r\n });\r\n } else {\r\n if (\"object\" == typeof fn) return nptmask = new Inputmask(fn), void 0 === fn.mask && void 0 === fn.alias ? this.each(function() {\r\n return void 0 !== this.inputmask ? this.inputmask.option(fn) : void nptmask.mask(this);\r\n }) : this.each(function() {\r\n nptmask.mask(this);\r\n });\r\n if (void 0 === fn) return this.each(function() {\r\n nptmask = new Inputmask(options), nptmask.mask(this);\r\n });\r\n }\r\n }), $.fn.inputmask;\r\n}(jQuery, Inputmask), function($, Inputmask) {\r\n return Inputmask.extendDefinitions({\r\n h: {\r\n validator: \"[01][0-9]|2[0-3]\",\r\n cardinality: 2,\r\n prevalidator: [ {\r\n validator: \"[0-2]\",\r\n cardinality: 1\r\n } ]\r\n },\r\n s: {\r\n validator: \"[0-5][0-9]\",\r\n cardinality: 2,\r\n prevalidator: [ {\r\n validator: \"[0-5]\",\r\n cardinality: 1\r\n } ]\r\n },\r\n d: {\r\n validator: \"0[1-9]|[12][0-9]|3[01]\",\r\n cardinality: 2,\r\n prevalidator: [ {\r\n validator: \"[0-3]\",\r\n cardinality: 1\r\n } ]\r\n },\r\n m: {\r\n validator: \"0[1-9]|1[012]\",\r\n cardinality: 2,\r\n prevalidator: [ {\r\n validator: \"[01]\",\r\n cardinality: 1\r\n } ]\r\n },\r\n y: {\r\n validator: \"(19|20)\\\\d{2}\",\r\n cardinality: 4,\r\n prevalidator: [ {\r\n validator: \"[12]\",\r\n cardinality: 1\r\n }, {\r\n validator: \"(19|20)\",\r\n cardinality: 2\r\n }, {\r\n validator: \"(19|20)\\\\d\",\r\n cardinality: 3\r\n } ]\r\n }\r\n }), Inputmask.extendAliases({\r\n \"dd/mm/yyyy\": {\r\n mask: \"1/2/y\",\r\n placeholder: \"dd/mm/yyyy\",\r\n regex: {\r\n val1pre: new RegExp(\"[0-3]\"),\r\n val1: new RegExp(\"0[1-9]|[12][0-9]|3[01]\"),\r\n val2pre: function(separator) {\r\n var escapedSeparator = Inputmask.escapeRegex.call(this, separator);\r\n return new RegExp(\"((0[1-9]|[12][0-9]|3[01])\" + escapedSeparator + \"[01])\");\r\n },\r\n val2: function(separator) {\r\n var escapedSeparator = Inputmask.escapeRegex.call(this, separator);\r\n return new RegExp(\"((0[1-9]|[12][0-9])\" + escapedSeparator + \"(0[1-9]|1[012]))|(30\" + escapedSeparator + \"(0[13-9]|1[012]))|(31\" + escapedSeparator + \"(0[13578]|1[02]))\");\r\n }\r\n },\r\n leapday: \"29/02/\",\r\n separator: \"/\",\r\n yearrange: {\r\n minyear: 1900,\r\n maxyear: 2099\r\n },\r\n isInYearRange: function(chrs, minyear, maxyear) {\r\n if (isNaN(chrs)) return !1;\r\n var enteredyear = parseInt(chrs.concat(minyear.toString().slice(chrs.length))), enteredyear2 = parseInt(chrs.concat(maxyear.toString().slice(chrs.length)));\r\n return (isNaN(enteredyear) ? !1 : enteredyear >= minyear && maxyear >= enteredyear) || (isNaN(enteredyear2) ? !1 : enteredyear2 >= minyear && maxyear >= enteredyear2);\r\n },\r\n determinebaseyear: function(minyear, maxyear, hint) {\r\n var currentyear = new Date().getFullYear();\r\n if (minyear > currentyear) return minyear;\r\n if (currentyear > maxyear) {\r\n for (var maxYearPrefix = maxyear.toString().slice(0, 2), maxYearPostfix = maxyear.toString().slice(2, 4); maxYearPrefix + hint > maxyear; ) maxYearPrefix--;\r\n var maxxYear = maxYearPrefix + maxYearPostfix;\r\n return minyear > maxxYear ? minyear : maxxYear;\r\n }\r\n return currentyear;\r\n },\r\n onKeyDown: function(e, buffer, caretPos, opts) {\r\n var $input = $(this);\r\n if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) {\r\n var today = new Date();\r\n $input.val(today.getDate().toString() + (today.getMonth() + 1).toString() + today.getFullYear().toString()), \r\n $input.trigger(\"setvalue.inputmask\");\r\n }\r\n },\r\n getFrontValue: function(mask, buffer, opts) {\r\n for (var start = 0, length = 0, i = 0; i < mask.length && \"2\" !== mask.charAt(i); i++) {\r\n var definition = opts.definitions[mask.charAt(i)];\r\n definition ? (start += length, length = definition.cardinality) : length++;\r\n }\r\n return buffer.join(\"\").substr(start, length);\r\n },\r\n definitions: {\r\n \"1\": {\r\n validator: function(chrs, maskset, pos, strict, opts) {\r\n var isValid = opts.regex.val1.test(chrs);\r\n return strict || isValid || chrs.charAt(1) !== opts.separator && -1 === \"-./\".indexOf(chrs.charAt(1)) || !(isValid = opts.regex.val1.test(\"0\" + chrs.charAt(0))) ? isValid : (maskset.buffer[pos - 1] = \"0\", \r\n {\r\n refreshFromBuffer: {\r\n start: pos - 1,\r\n end: pos\r\n },\r\n pos: pos,\r\n c: chrs.charAt(0)\r\n });\r\n },\r\n cardinality: 2,\r\n prevalidator: [ {\r\n validator: function(chrs, maskset, pos, strict, opts) {\r\n var pchrs = chrs;\r\n isNaN(maskset.buffer[pos + 1]) || (pchrs += maskset.buffer[pos + 1]);\r\n var isValid = 1 === pchrs.length ? opts.regex.val1pre.test(pchrs) : opts.regex.val1.test(pchrs);\r\n if (!strict && !isValid) {\r\n if (isValid = opts.regex.val1.test(chrs + \"0\")) return maskset.buffer[pos] = chrs, \r\n maskset.buffer[++pos] = \"0\", {\r\n pos: pos,\r\n c: \"0\"\r\n };\r\n if (isValid = opts.regex.val1.test(\"0\" + chrs)) return maskset.buffer[pos] = \"0\", \r\n pos++, {\r\n pos: pos\r\n };\r\n }\r\n return isValid;\r\n },\r\n cardinality: 1\r\n } ]\r\n },\r\n \"2\": {\r\n validator: function(chrs, maskset, pos, strict, opts) {\r\n var frontValue = opts.getFrontValue(maskset.mask, maskset.buffer, opts);\r\n -1 !== frontValue.indexOf(opts.placeholder[0]) && (frontValue = \"01\" + opts.separator);\r\n var isValid = opts.regex.val2(opts.separator).test(frontValue + chrs);\r\n if (!strict && !isValid && (chrs.charAt(1) === opts.separator || -1 !== \"-./\".indexOf(chrs.charAt(1))) && (isValid = opts.regex.val2(opts.separator).test(frontValue + \"0\" + chrs.charAt(0)))) return maskset.buffer[pos - 1] = \"0\", \r\n {\r\n refreshFromBuffer: {\r\n start: pos - 1,\r\n end: pos\r\n },\r\n pos: pos,\r\n c: chrs.charAt(0)\r\n };\r\n if (opts.mask.indexOf(\"2\") === opts.mask.length - 1 && isValid) {\r\n var dayMonthValue = maskset.buffer.join(\"\").substr(4, 4) + chrs;\r\n if (dayMonthValue !== opts.leapday) return !0;\r\n var year = parseInt(maskset.buffer.join(\"\").substr(0, 4), 10);\r\n return year % 4 === 0 ? year % 100 === 0 ? year % 400 === 0 ? !0 : !1 : !0 : !1;\r\n }\r\n return isValid;\r\n },\r\n cardinality: 2,\r\n prevalidator: [ {\r\n validator: function(chrs, maskset, pos, strict, opts) {\r\n isNaN(maskset.buffer[pos + 1]) || (chrs += maskset.buffer[pos + 1]);\r\n var frontValue = opts.getFrontValue(maskset.mask, maskset.buffer, opts);\r\n -1 !== frontValue.indexOf(opts.placeholder[0]) && (frontValue = \"01\" + opts.separator);\r\n var isValid = 1 === chrs.length ? opts.regex.val2pre(opts.separator).test(frontValue + chrs) : opts.regex.val2(opts.separator).test(frontValue + chrs);\r\n return strict || isValid || !(isValid = opts.regex.val2(opts.separator).test(frontValue + \"0\" + chrs)) ? isValid : (maskset.buffer[pos] = \"0\", \r\n pos++, {\r\n pos: pos\r\n });\r\n },\r\n cardinality: 1\r\n } ]\r\n },\r\n y: {\r\n validator: function(chrs, maskset, pos, strict, opts) {\r\n if (opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) {\r\n var dayMonthValue = maskset.buffer.join(\"\").substr(0, 6);\r\n if (dayMonthValue !== opts.leapday) return !0;\r\n var year = parseInt(chrs, 10);\r\n return year % 4 === 0 ? year % 100 === 0 ? year % 400 === 0 ? !0 : !1 : !0 : !1;\r\n }\r\n return !1;\r\n },\r\n cardinality: 4,\r\n prevalidator: [ {\r\n validator: function(chrs, maskset, pos, strict, opts) {\r\n var isValid = opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear);\r\n if (!strict && !isValid) {\r\n var yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs + \"0\").toString().slice(0, 1);\r\n if (isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos++] = yearPrefix.charAt(0), \r\n {\r\n pos: pos\r\n };\r\n if (yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs + \"0\").toString().slice(0, 2), \r\n isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos++] = yearPrefix.charAt(0), \r\n maskset.buffer[pos++] = yearPrefix.charAt(1), {\r\n pos: pos\r\n };\r\n }\r\n return isValid;\r\n },\r\n cardinality: 1\r\n }, {\r\n validator: function(chrs, maskset, pos, strict, opts) {\r\n var isValid = opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear);\r\n if (!strict && !isValid) {\r\n var yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs).toString().slice(0, 2);\r\n if (isValid = opts.isInYearRange(chrs[0] + yearPrefix[1] + chrs[1], opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos++] = yearPrefix.charAt(1), \r\n {\r\n pos: pos\r\n };\r\n if (yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs).toString().slice(0, 2), \r\n opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) {\r\n var dayMonthValue = maskset.buffer.join(\"\").substr(0, 6);\r\n if (dayMonthValue !== opts.leapday) isValid = !0; else {\r\n var year = parseInt(chrs, 10);\r\n isValid = year % 4 === 0 ? year % 100 === 0 ? year % 400 === 0 ? !0 : !1 : !0 : !1;\r\n }\r\n } else isValid = !1;\r\n if (isValid) return maskset.buffer[pos - 1] = yearPrefix.charAt(0), maskset.buffer[pos++] = yearPrefix.charAt(1), \r\n maskset.buffer[pos++] = chrs.charAt(0), {\r\n refreshFromBuffer: {\r\n start: pos - 3,\r\n end: pos\r\n },\r\n pos: pos\r\n };\r\n }\r\n return isValid;\r\n },\r\n cardinality: 2\r\n }, {\r\n validator: function(chrs, maskset, pos, strict, opts) {\r\n return opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear);\r\n },\r\n cardinality: 3\r\n } ]\r\n }\r\n },\r\n insertMode: !1,\r\n autoUnmask: !1\r\n },\r\n \"mm/dd/yyyy\": {\r\n placeholder: \"mm/dd/yyyy\",\r\n alias: \"dd/mm/yyyy\",\r\n regex: {\r\n val2pre: function(separator) {\r\n var escapedSeparator = Inputmask.escapeRegex.call(this, separator);\r\n return new RegExp(\"((0[13-9]|1[012])\" + escapedSeparator + \"[0-3])|(02\" + escapedSeparator + \"[0-2])\");\r\n },\r\n val2: function(separator) {\r\n var escapedSeparator = Inputmask.escapeRegex.call(this, separator);\r\n return new RegExp(\"((0[1-9]|1[012])\" + escapedSeparator + \"(0[1-9]|[12][0-9]))|((0[13-9]|1[012])\" + escapedSeparator + \"30)|((0[13578]|1[02])\" + escapedSeparator + \"31)\");\r\n },\r\n val1pre: new RegExp(\"[01]\"),\r\n val1: new RegExp(\"0[1-9]|1[012]\")\r\n },\r\n leapday: \"02/29/\",\r\n onKeyDown: function(e, buffer, caretPos, opts) {\r\n var $input = $(this);\r\n if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) {\r\n var today = new Date();\r\n $input.val((today.getMonth() + 1).toString() + today.getDate().toString() + today.getFullYear().toString()), \r\n $input.trigger(\"setvalue.inputmask\");\r\n }\r\n }\r\n },\r\n \"yyyy/mm/dd\": {\r\n mask: \"y/1/2\",\r\n placeholder: \"yyyy/mm/dd\",\r\n alias: \"mm/dd/yyyy\",\r\n leapday: \"/02/29\",\r\n onKeyDown: function(e, buffer, caretPos, opts) {\r\n var $input = $(this);\r\n if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) {\r\n var today = new Date();\r\n $input.val(today.getFullYear().toString() + (today.getMonth() + 1).toString() + today.getDate().toString()), \r\n $input.trigger(\"setvalue.inputmask\");\r\n }\r\n }\r\n },\r\n \"dd.mm.yyyy\": {\r\n mask: \"1.2.y\",\r\n placeholder: \"dd.mm.yyyy\",\r\n leapday: \"29.02.\",\r\n separator: \".\",\r\n alias: \"dd/mm/yyyy\"\r\n },\r\n \"dd-mm-yyyy\": {\r\n mask: \"1-2-y\",\r\n placeholder: \"dd-mm-yyyy\",\r\n leapday: \"29-02-\",\r\n separator: \"-\",\r\n alias: \"dd/mm/yyyy\"\r\n },\r\n \"mm.dd.yyyy\": {\r\n mask: \"1.2.y\",\r\n placeholder: \"mm.dd.yyyy\",\r\n leapday: \"02.29.\",\r\n separator: \".\",\r\n alias: \"mm/dd/yyyy\"\r\n },\r\n \"mm-dd-yyyy\": {\r\n mask: \"1-2-y\",\r\n placeholder: \"mm-dd-yyyy\",\r\n leapday: \"02-29-\",\r\n separator: \"-\",\r\n alias: \"mm/dd/yyyy\"\r\n },\r\n \"yyyy.mm.dd\": {\r\n mask: \"y.1.2\",\r\n placeholder: \"yyyy.mm.dd\",\r\n leapday: \".02.29\",\r\n separator: \".\",\r\n alias: \"yyyy/mm/dd\"\r\n },\r\n \"yyyy-mm-dd\": {\r\n mask: \"y-1-2\",\r\n placeholder: \"yyyy-mm-dd\",\r\n leapday: \"-02-29\",\r\n separator: \"-\",\r\n alias: \"yyyy/mm/dd\"\r\n },\r\n datetime: {\r\n mask: \"1/2/y h:s\",\r\n placeholder: \"dd/mm/yyyy hh:mm\",\r\n alias: \"dd/mm/yyyy\",\r\n regex: {\r\n hrspre: new RegExp(\"[012]\"),\r\n hrs24: new RegExp(\"2[0-4]|1[3-9]\"),\r\n hrs: new RegExp(\"[01][0-9]|2[0-4]\"),\r\n ampm: new RegExp(\"^[a|p|A|P][m|M]\"),\r\n mspre: new RegExp(\"[0-5]\"),\r\n ms: new RegExp(\"[0-5][0-9]\")\r\n },\r\n timeseparator: \":\",\r\n hourFormat: \"24\",\r\n definitions: {\r\n h: {\r\n validator: function(chrs, maskset, pos, strict, opts) {\r\n if (\"24\" === opts.hourFormat && 24 === parseInt(chrs, 10)) return maskset.buffer[pos - 1] = \"0\", \r\n maskset.buffer[pos] = \"0\", {\r\n refreshFromBuffer: {\r\n start: pos - 1,\r\n end: pos\r\n },\r\n c: \"0\"\r\n };\r\n var isValid = opts.regex.hrs.test(chrs);\r\n if (!strict && !isValid && (chrs.charAt(1) === opts.timeseparator || -1 !== \"-.:\".indexOf(chrs.charAt(1))) && (isValid = opts.regex.hrs.test(\"0\" + chrs.charAt(0)))) return maskset.buffer[pos - 1] = \"0\", \r\n maskset.buffer[pos] = chrs.charAt(0), pos++, {\r\n refreshFromBuffer: {\r\n start: pos - 2,\r\n end: pos\r\n },\r\n pos: pos,\r\n c: opts.timeseparator\r\n };\r\n if (isValid && \"24\" !== opts.hourFormat && opts.regex.hrs24.test(chrs)) {\r\n var tmp = parseInt(chrs, 10);\r\n return 24 === tmp ? (maskset.buffer[pos + 5] = \"a\", maskset.buffer[pos + 6] = \"m\") : (maskset.buffer[pos + 5] = \"p\", \r\n maskset.buffer[pos + 6] = \"m\"), tmp -= 12, 10 > tmp ? (maskset.buffer[pos] = tmp.toString(), \r\n maskset.buffer[pos - 1] = \"0\") : (maskset.buffer[pos] = tmp.toString().charAt(1), \r\n maskset.buffer[pos - 1] = tmp.toString().charAt(0)), {\r\n refreshFromBuffer: {\r\n start: pos - 1,\r\n end: pos + 6\r\n },\r\n c: maskset.buffer[pos]\r\n };\r\n }\r\n return isValid;\r\n },\r\n cardinality: 2,\r\n prevalidator: [ {\r\n validator: function(chrs, maskset, pos, strict, opts) {\r\n var isValid = opts.regex.hrspre.test(chrs);\r\n return strict || isValid || !(isValid = opts.regex.hrs.test(\"0\" + chrs)) ? isValid : (maskset.buffer[pos] = \"0\", \r\n pos++, {\r\n pos: pos\r\n });\r\n },\r\n cardinality: 1\r\n } ]\r\n },\r\n s: {\r\n validator: \"[0-5][0-9]\",\r\n cardinality: 2,\r\n prevalidator: [ {\r\n validator: function(chrs, maskset, pos, strict, opts) {\r\n var isValid = opts.regex.mspre.test(chrs);\r\n return strict || isValid || !(isValid = opts.regex.ms.test(\"0\" + chrs)) ? isValid : (maskset.buffer[pos] = \"0\", \r\n pos++, {\r\n pos: pos\r\n });\r\n },\r\n cardinality: 1\r\n } ]\r\n },\r\n t: {\r\n validator: function(chrs, maskset, pos, strict, opts) {\r\n return opts.regex.ampm.test(chrs + \"m\");\r\n },\r\n casing: \"lower\",\r\n cardinality: 1\r\n }\r\n },\r\n insertMode: !1,\r\n autoUnmask: !1\r\n },\r\n datetime12: {\r\n mask: \"1/2/y h:s t\\\\m\",\r\n placeholder: \"dd/mm/yyyy hh:mm xm\",\r\n alias: \"datetime\",\r\n hourFormat: \"12\"\r\n },\r\n \"mm/dd/yyyy hh:mm xm\": {\r\n mask: \"1/2/y h:s t\\\\m\",\r\n placeholder: \"mm/dd/yyyy hh:mm xm\",\r\n alias: \"datetime12\",\r\n regex: {\r\n val2pre: function(separator) {\r\n var escapedSeparator = Inputmask.escapeRegex.call(this, separator);\r\n return new RegExp(\"((0[13-9]|1[012])\" + escapedSeparator + \"[0-3])|(02\" + escapedSeparator + \"[0-2])\");\r\n },\r\n val2: function(separator) {\r\n var escapedSeparator = Inputmask.escapeRegex.call(this, separator);\r\n return new RegExp(\"((0[1-9]|1[012])\" + escapedSeparator + \"(0[1-9]|[12][0-9]))|((0[13-9]|1[012])\" + escapedSeparator + \"30)|((0[13578]|1[02])\" + escapedSeparator + \"31)\");\r\n },\r\n val1pre: new RegExp(\"[01]\"),\r\n val1: new RegExp(\"0[1-9]|1[012]\")\r\n },\r\n leapday: \"02/29/\",\r\n onKeyDown: function(e, buffer, caretPos, opts) {\r\n var $input = $(this);\r\n if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) {\r\n var today = new Date();\r\n $input.val((today.getMonth() + 1).toString() + today.getDate().toString() + today.getFullYear().toString()), \r\n $input.trigger(\"setvalue.inputmask\");\r\n }\r\n }\r\n },\r\n \"hh:mm t\": {\r\n mask: \"h:s t\\\\m\",\r\n placeholder: \"hh:mm xm\",\r\n alias: \"datetime\",\r\n hourFormat: \"12\"\r\n },\r\n \"h:s t\": {\r\n mask: \"h:s t\\\\m\",\r\n placeholder: \"hh:mm xm\",\r\n alias: \"datetime\",\r\n hourFormat: \"12\"\r\n },\r\n \"hh:mm:ss\": {\r\n mask: \"h:s:s\",\r\n placeholder: \"hh:mm:ss\",\r\n alias: \"datetime\",\r\n autoUnmask: !1\r\n },\r\n \"hh:mm\": {\r\n mask: \"h:s\",\r\n placeholder: \"hh:mm\",\r\n alias: \"datetime\",\r\n autoUnmask: !1\r\n },\r\n date: {\r\n alias: \"dd/mm/yyyy\"\r\n },\r\n \"mm/yyyy\": {\r\n mask: \"1/y\",\r\n placeholder: \"mm/yyyy\",\r\n leapday: \"donotuse\",\r\n separator: \"/\",\r\n alias: \"mm/dd/yyyy\"\r\n },\r\n shamsi: {\r\n regex: {\r\n val2pre: function(separator) {\r\n var escapedSeparator = Inputmask.escapeRegex.call(this, separator);\r\n return new RegExp(\"((0[1-9]|1[012])\" + escapedSeparator + \"[0-3])\");\r\n },\r\n val2: function(separator) {\r\n var escapedSeparator = Inputmask.escapeRegex.call(this, separator);\r\n return new RegExp(\"((0[1-9]|1[012])\" + escapedSeparator + \"(0[1-9]|[12][0-9]))|((0[1-9]|1[012])\" + escapedSeparator + \"30)|((0[1-6])\" + escapedSeparator + \"31)\");\r\n },\r\n val1pre: new RegExp(\"[01]\"),\r\n val1: new RegExp(\"0[1-9]|1[012]\")\r\n },\r\n yearrange: {\r\n minyear: 1300,\r\n maxyear: 1499\r\n },\r\n mask: \"y/1/2\",\r\n leapday: \"/12/30\",\r\n placeholder: \"yyyy/mm/dd\",\r\n alias: \"mm/dd/yyyy\",\r\n clearIncomplete: !0\r\n }\r\n }), Inputmask;\r\n}(jQuery, Inputmask), function($, Inputmask) {\r\n return Inputmask.extendDefinitions({\r\n A: {\r\n validator: \"[A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\r\n cardinality: 1,\r\n casing: \"upper\"\r\n },\r\n \"&\": {\r\n validator: \"[0-9A-Za-z\\u0410-\\u044f\\u0401\\u0451\\xc0-\\xff\\xb5]\",\r\n cardinality: 1,\r\n casing: \"upper\"\r\n },\r\n \"#\": {\r\n validator: \"[0-9A-Fa-f]\",\r\n cardinality: 1,\r\n casing: \"upper\"\r\n }\r\n }), Inputmask.extendAliases({\r\n url: {\r\n mask: \"(\\\\http://)|(\\\\http\\\\s://)|(ftp://)|(ftp\\\\s://)*{+}\",\r\n insertMode: !1,\r\n autoUnmask: !1\r\n },\r\n ip: {\r\n mask: \"i[i[i]].i[i[i]].i[i[i]].i[i[i]]\",\r\n definitions: {\r\n i: {\r\n validator: function(chrs, maskset, pos, strict, opts) {\r\n return pos - 1 > -1 && \".\" !== maskset.buffer[pos - 1] ? (chrs = maskset.buffer[pos - 1] + chrs, \r\n chrs = pos - 2 > -1 && \".\" !== maskset.buffer[pos - 2] ? maskset.buffer[pos - 2] + chrs : \"0\" + chrs) : chrs = \"00\" + chrs, \r\n new RegExp(\"25[0-5]|2[0-4][0-9]|[01][0-9][0-9]\").test(chrs);\r\n },\r\n cardinality: 1\r\n }\r\n },\r\n onUnMask: function(maskedValue, unmaskedValue, opts) {\r\n return maskedValue;\r\n }\r\n },\r\n email: {\r\n mask: \"*{1,64}[.*{1,64}][.*{1,64}][.*{1,64}]@*{1,64}[.*{2,64}][.*{2,6}][.*{1,2}]\",\r\n greedy: !1,\r\n onBeforePaste: function(pastedValue, opts) {\r\n return pastedValue = pastedValue.toLowerCase(), pastedValue.replace(\"mailto:\", \"\");\r\n },\r\n definitions: {\r\n \"*\": {\r\n validator: \"[0-9A-Za-z!#$%&'*+/=?^_`{|}~-]\",\r\n cardinality: 1,\r\n casing: \"lower\"\r\n }\r\n },\r\n onUnMask: function(maskedValue, unmaskedValue, opts) {\r\n return maskedValue;\r\n }\r\n },\r\n mac: {\r\n mask: \"##:##:##:##:##:##\"\r\n }\r\n }), Inputmask;\r\n}(jQuery, Inputmask), function($, Inputmask) {\r\n return Inputmask.extendAliases({\r\n numeric: {\r\n mask: function(opts) {\r\n function autoEscape(txt) {\r\n for (var escapedTxt = \"\", i = 0; i < txt.length; i++) escapedTxt += opts.definitions[txt.charAt(i)] ? \"\\\\\" + txt.charAt(i) : txt.charAt(i);\r\n return escapedTxt;\r\n }\r\n if (0 !== opts.repeat && isNaN(opts.integerDigits) && (opts.integerDigits = opts.repeat), \r\n opts.repeat = 0, opts.groupSeparator === opts.radixPoint && (\".\" === opts.radixPoint ? opts.groupSeparator = \",\" : \",\" === opts.radixPoint ? opts.groupSeparator = \".\" : opts.groupSeparator = \"\"), \r\n \" \" === opts.groupSeparator && (opts.skipOptionalPartCharacter = void 0), opts.autoGroup = opts.autoGroup && \"\" !== opts.groupSeparator, \r\n opts.autoGroup && (\"string\" == typeof opts.groupSize && isFinite(opts.groupSize) && (opts.groupSize = parseInt(opts.groupSize)), \r\n isFinite(opts.integerDigits))) {\r\n var seps = Math.floor(opts.integerDigits / opts.groupSize), mod = opts.integerDigits % opts.groupSize;\r\n opts.integerDigits = parseInt(opts.integerDigits) + (0 === mod ? seps - 1 : seps), \r\n opts.integerDigits < 1 && (opts.integerDigits = \"*\");\r\n }\r\n opts.placeholder.length > 1 && (opts.placeholder = opts.placeholder.charAt(0)), \r\n opts.radixFocus = opts.radixFocus && \"\" !== opts.placeholder && opts.integerOptional === !0, \r\n opts.definitions[\";\"] = opts.definitions[\"~\"], opts.definitions[\";\"].definitionSymbol = \"~\", \r\n opts.numericInput === !0 && (opts.radixFocus = !1, opts.digitsOptional = !1, isNaN(opts.digits) && (opts.digits = 2), \r\n opts.decimalProtect = !1);\r\n var mask = autoEscape(opts.prefix);\r\n return mask += \"[+]\", mask += opts.integerOptional === !0 ? \"~{1,\" + opts.integerDigits + \"}\" : \"~{\" + opts.integerDigits + \"}\", \r\n void 0 !== opts.digits && (isNaN(opts.digits) || parseInt(opts.digits) > 0) && (mask += opts.digitsOptional ? \"[\" + (opts.decimalProtect ? \":\" : opts.radixPoint) + \";{1,\" + opts.digits + \"}]\" : (opts.decimalProtect ? \":\" : opts.radixPoint) + \";{\" + opts.digits + \"}\"), \r\n \"\" !== opts.negationSymbol.back && (mask += \"[-]\"), mask += autoEscape(opts.suffix), \r\n opts.greedy = !1, mask;\r\n },\r\n placeholder: \"\",\r\n greedy: !1,\r\n digits: \"*\",\r\n digitsOptional: !0,\r\n radixPoint: \".\",\r\n radixFocus: !0,\r\n groupSize: 3,\r\n groupSeparator: \"\",\r\n autoGroup: !1,\r\n allowPlus: !0,\r\n allowMinus: !0,\r\n negationSymbol: {\r\n front: \"-\",\r\n back: \"\"\r\n },\r\n integerDigits: \"+\",\r\n integerOptional: !0,\r\n prefix: \"\",\r\n suffix: \"\",\r\n rightAlign: !0,\r\n decimalProtect: !0,\r\n min: null,\r\n max: null,\r\n step: 1,\r\n insertMode: !0,\r\n autoUnmask: !1,\r\n unmaskAsNumber: !1,\r\n postFormat: function(buffer, pos, reformatOnly, opts) {\r\n opts.numericInput === !0 && (buffer = buffer.reverse(), isFinite(pos) && (pos = buffer.join(\"\").length - pos - 1));\r\n var i, l, suffixStripped = !1;\r\n buffer.length >= opts.suffix.length && buffer.join(\"\").indexOf(opts.suffix) === buffer.length - opts.suffix.length && (buffer.length = buffer.length - opts.suffix.length, \r\n suffixStripped = !0), pos = pos >= buffer.length ? buffer.length - 1 : pos < opts.prefix.length ? opts.prefix.length : pos;\r\n var needsRefresh = !1, charAtPos = buffer[pos];\r\n if (\"\" === opts.groupSeparator || opts.numericInput !== !0 && -1 !== $.inArray(opts.radixPoint, buffer) && pos > $.inArray(opts.radixPoint, buffer) || new RegExp(\"[\" + Inputmask.escapeRegex(opts.negationSymbol.front) + \"+]\").test(charAtPos)) {\r\n if (suffixStripped) for (i = 0, l = opts.suffix.length; l > i; i++) buffer.push(opts.suffix.charAt(i));\r\n return {\r\n pos: pos\r\n };\r\n }\r\n var cbuf = buffer.slice();\r\n charAtPos === opts.groupSeparator && (cbuf.splice(pos--, 1), charAtPos = cbuf[pos]), \r\n reformatOnly ? charAtPos !== opts.radixPoint && (cbuf[pos] = \"?\") : cbuf.splice(pos, 0, \"?\");\r\n var bufVal = cbuf.join(\"\"), bufValOrigin = bufVal;\r\n if (bufVal.length > 0 && opts.autoGroup || reformatOnly && -1 !== bufVal.indexOf(opts.groupSeparator)) {\r\n var escapedGroupSeparator = Inputmask.escapeRegex(opts.groupSeparator);\r\n needsRefresh = 0 === bufVal.indexOf(opts.groupSeparator), bufVal = bufVal.replace(new RegExp(escapedGroupSeparator, \"g\"), \"\");\r\n var radixSplit = bufVal.split(opts.radixPoint);\r\n if (bufVal = \"\" === opts.radixPoint ? bufVal : radixSplit[0], bufVal !== opts.prefix + \"?0\" && bufVal.length >= opts.groupSize + opts.prefix.length) for (var reg = new RegExp(\"([-+]?[\\\\d?]+)([\\\\d?]{\" + opts.groupSize + \"})\"); reg.test(bufVal); ) bufVal = bufVal.replace(reg, \"$1\" + opts.groupSeparator + \"$2\"), \r\n bufVal = bufVal.replace(opts.groupSeparator + opts.groupSeparator, opts.groupSeparator);\r\n \"\" !== opts.radixPoint && radixSplit.length > 1 && (bufVal += opts.radixPoint + radixSplit[1]);\r\n }\r\n for (needsRefresh = bufValOrigin !== bufVal, buffer.length = bufVal.length, i = 0, \r\n l = bufVal.length; l > i; i++) buffer[i] = bufVal.charAt(i);\r\n var newPos = $.inArray(\"?\", buffer);\r\n if (-1 === newPos && charAtPos === opts.radixPoint && (newPos = $.inArray(opts.radixPoint, buffer)), \r\n reformatOnly ? buffer[newPos] = charAtPos : buffer.splice(newPos, 1), !needsRefresh && suffixStripped) for (i = 0, \r\n l = opts.suffix.length; l > i; i++) buffer.push(opts.suffix.charAt(i));\r\n return newPos = opts.numericInput && isFinite(pos) ? buffer.join(\"\").length - newPos - 1 : newPos, \r\n opts.numericInput && (buffer = buffer.reverse(), $.inArray(opts.radixPoint, buffer) < newPos && buffer.join(\"\").length - opts.suffix.length !== newPos && (newPos -= 1)), \r\n {\r\n pos: newPos,\r\n refreshFromBuffer: needsRefresh,\r\n buffer: buffer\r\n };\r\n },\r\n onBeforeWrite: function(e, buffer, caretPos, opts) {\r\n if (e && (\"blur\" === e.type || \"checkval\" === e.type)) {\r\n var maskedValue = buffer.join(\"\"), processValue = maskedValue.replace(opts.prefix, \"\");\r\n if (processValue = processValue.replace(opts.suffix, \"\"), processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), \"g\"), \"\"), \r\n \",\" === opts.radixPoint && (processValue = processValue.replace(Inputmask.escapeRegex(opts.radixPoint), \".\")), \r\n isFinite(processValue) && isFinite(opts.min) && parseFloat(processValue) < parseFloat(opts.min)) return $.extend(!0, {\r\n refreshFromBuffer: !0,\r\n buffer: (opts.prefix + opts.min).split(\"\")\r\n }, opts.postFormat((opts.prefix + opts.min).split(\"\"), 0, !0, opts));\r\n if (opts.numericInput !== !0) {\r\n var tmpBufSplit = \"\" !== opts.radixPoint ? buffer.join(\"\").split(opts.radixPoint) : [ buffer.join(\"\") ], matchRslt = tmpBufSplit[0].match(opts.regex.integerPart(opts)), matchRsltDigits = 2 === tmpBufSplit.length ? tmpBufSplit[1].match(opts.regex.integerNPart(opts)) : void 0;\r\n if (matchRslt) {\r\n matchRslt[0] !== opts.negationSymbol.front + \"0\" && matchRslt[0] !== opts.negationSymbol.front && \"+\" !== matchRslt[0] || void 0 !== matchRsltDigits && !matchRsltDigits[0].match(/^0+$/) || buffer.splice(matchRslt.index, 1);\r\n var radixPosition = $.inArray(opts.radixPoint, buffer);\r\n if (-1 !== radixPosition) {\r\n if (isFinite(opts.digits) && !opts.digitsOptional) {\r\n for (var i = 1; i <= opts.digits; i++) (void 0 === buffer[radixPosition + i] || buffer[radixPosition + i] === opts.placeholder.charAt(0)) && (buffer[radixPosition + i] = \"0\");\r\n return {\r\n refreshFromBuffer: maskedValue !== buffer.join(\"\"),\r\n buffer: buffer\r\n };\r\n }\r\n if (radixPosition === buffer.length - opts.suffix.length - 1) return buffer.splice(radixPosition, 1), \r\n {\r\n refreshFromBuffer: !0,\r\n buffer: buffer\r\n };\r\n }\r\n }\r\n }\r\n }\r\n if (opts.autoGroup) {\r\n var rslt = opts.postFormat(buffer, opts.numericInput ? caretPos : caretPos - 1, !0, opts);\r\n return rslt.caret = caretPos <= opts.prefix.length ? rslt.pos : rslt.pos + 1, rslt;\r\n }\r\n },\r\n regex: {\r\n integerPart: function(opts) {\r\n return new RegExp(\"[\" + Inputmask.escapeRegex(opts.negationSymbol.front) + \"+]?\\\\d+\");\r\n },\r\n integerNPart: function(opts) {\r\n return new RegExp(\"[\\\\d\" + Inputmask.escapeRegex(opts.groupSeparator) + \"]+\");\r\n }\r\n },\r\n signHandler: function(chrs, maskset, pos, strict, opts) {\r\n if (!strict && opts.allowMinus && \"-\" === chrs || opts.allowPlus && \"+\" === chrs) {\r\n var matchRslt = maskset.buffer.join(\"\").match(opts.regex.integerPart(opts));\r\n if (matchRslt && matchRslt[0].length > 0) return maskset.buffer[matchRslt.index] === (\"-\" === chrs ? \"+\" : opts.negationSymbol.front) ? \"-\" === chrs ? \"\" !== opts.negationSymbol.back ? {\r\n pos: matchRslt.index,\r\n c: opts.negationSymbol.front,\r\n remove: matchRslt.index,\r\n caret: pos,\r\n insert: {\r\n pos: maskset.buffer.length - opts.suffix.length - 1,\r\n c: opts.negationSymbol.back\r\n }\r\n } : {\r\n pos: matchRslt.index,\r\n c: opts.negationSymbol.front,\r\n remove: matchRslt.index,\r\n caret: pos\r\n } : \"\" !== opts.negationSymbol.back ? {\r\n pos: matchRslt.index,\r\n c: \"+\",\r\n remove: [ matchRslt.index, maskset.buffer.length - opts.suffix.length - 1 ],\r\n caret: pos\r\n } : {\r\n pos: matchRslt.index,\r\n c: \"+\",\r\n remove: matchRslt.index,\r\n caret: pos\r\n } : maskset.buffer[matchRslt.index] === (\"-\" === chrs ? opts.negationSymbol.front : \"+\") ? \"-\" === chrs && \"\" !== opts.negationSymbol.back ? {\r\n remove: [ matchRslt.index, maskset.buffer.length - opts.suffix.length - 1 ],\r\n caret: pos - 1\r\n } : {\r\n remove: matchRslt.index,\r\n caret: pos - 1\r\n } : \"-\" === chrs ? \"\" !== opts.negationSymbol.back ? {\r\n pos: matchRslt.index,\r\n c: opts.negationSymbol.front,\r\n caret: pos + 1,\r\n insert: {\r\n pos: maskset.buffer.length - opts.suffix.length,\r\n c: opts.negationSymbol.back\r\n }\r\n } : {\r\n pos: matchRslt.index,\r\n c: opts.negationSymbol.front,\r\n caret: pos + 1\r\n } : {\r\n pos: matchRslt.index,\r\n c: chrs,\r\n caret: pos + 1\r\n };\r\n }\r\n return !1;\r\n },\r\n radixHandler: function(chrs, maskset, pos, strict, opts) {\r\n if (!strict && (-1 !== $.inArray(chrs, [ \",\", \".\" ]) && (chrs = opts.radixPoint), \r\n chrs === opts.radixPoint && void 0 !== opts.digits && (isNaN(opts.digits) || parseInt(opts.digits) > 0))) {\r\n var radixPos = $.inArray(opts.radixPoint, maskset.buffer), integerValue = maskset.buffer.join(\"\").match(opts.regex.integerPart(opts));\r\n if (-1 !== radixPos && maskset.validPositions[radixPos]) return maskset.validPositions[radixPos - 1] ? {\r\n caret: radixPos + 1\r\n } : {\r\n pos: integerValue.index,\r\n c: integerValue[0],\r\n caret: radixPos + 1\r\n };\r\n if (!integerValue || \"0\" === integerValue[0] && integerValue.index + 1 !== pos) return maskset.buffer[integerValue ? integerValue.index : pos] = \"0\", \r\n {\r\n pos: (integerValue ? integerValue.index : pos) + 1,\r\n c: opts.radixPoint\r\n };\r\n }\r\n return !1;\r\n },\r\n leadingZeroHandler: function(chrs, maskset, pos, strict, opts) {\r\n if (opts.numericInput === !0) {\r\n if (\"0\" === maskset.buffer[maskset.buffer.length - opts.prefix.length - 1]) return {\r\n pos: pos,\r\n remove: maskset.buffer.length - opts.prefix.length - 1\r\n };\r\n } else {\r\n var matchRslt = maskset.buffer.join(\"\").match(opts.regex.integerNPart(opts)), radixPosition = $.inArray(opts.radixPoint, maskset.buffer);\r\n if (matchRslt && !strict && (-1 === radixPosition || radixPosition >= pos)) if (0 === matchRslt[0].indexOf(\"0\")) {\r\n pos < opts.prefix.length && (pos = matchRslt.index);\r\n var _radixPosition = $.inArray(opts.radixPoint, maskset._buffer), digitsMatch = maskset._buffer && maskset.buffer.slice(radixPosition).join(\"\") === maskset._buffer.slice(_radixPosition).join(\"\") || 0 === parseInt(maskset.buffer.slice(radixPosition + 1).join(\"\")), integerMatch = maskset._buffer && maskset.buffer.slice(matchRslt.index, radixPosition).join(\"\") === maskset._buffer.slice(opts.prefix.length, _radixPosition).join(\"\") || \"0\" === maskset.buffer.slice(matchRslt.index, radixPosition).join(\"\");\r\n if (-1 === radixPosition || digitsMatch && integerMatch) return maskset.buffer.splice(matchRslt.index, 1), \r\n pos = pos > matchRslt.index ? pos - 1 : matchRslt.index, {\r\n pos: pos,\r\n remove: matchRslt.index\r\n };\r\n if (matchRslt.index + 1 === pos || \"0\" === chrs) return maskset.buffer.splice(matchRslt.index, 1), \r\n pos = matchRslt.index, {\r\n pos: pos,\r\n remove: matchRslt.index\r\n };\r\n } else if (\"0\" === chrs && pos <= matchRslt.index && matchRslt[0] !== opts.groupSeparator) return !1;\r\n }\r\n return !0;\r\n },\r\n postValidation: function(buffer, opts) {\r\n var isValid = !0, maskedValue = buffer.join(\"\"), processValue = maskedValue.replace(opts.prefix, \"\");\r\n return processValue = processValue.replace(opts.suffix, \"\"), processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), \"g\"), \"\"), \r\n \",\" === opts.radixPoint && (processValue = processValue.replace(Inputmask.escapeRegex(opts.radixPoint), \".\")), \r\n processValue = processValue.replace(new RegExp(\"^\" + Inputmask.escapeRegex(opts.negationSymbol.front)), \"-\"), \r\n processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.negationSymbol.back) + \"$\"), \"\"), \r\n processValue = processValue === opts.negationSymbol.front ? processValue + \"0\" : processValue, \r\n isFinite(processValue) && (null !== opts.max && isFinite(opts.max) && (isValid = parseFloat(processValue) <= parseFloat(opts.max)), \r\n isValid && null !== opts.min && isFinite(opts.min) && (0 >= processValue || processValue.toString().length >= opts.min.toString().length) && (isValid = parseFloat(processValue) >= parseFloat(opts.min), \r\n isValid || (isValid = $.extend(!0, {\r\n refreshFromBuffer: !0,\r\n buffer: (opts.prefix + opts.min).split(\"\")\r\n }, opts.postFormat((opts.prefix + opts.min).split(\"\"), 0, !0, opts)), isValid.refreshFromBuffer = !0))), \r\n isValid;\r\n },\r\n definitions: {\r\n \"~\": {\r\n validator: function(chrs, maskset, pos, strict, opts) {\r\n var isValid = opts.signHandler(chrs, maskset, pos, strict, opts);\r\n if (!isValid && (isValid = opts.radixHandler(chrs, maskset, pos, strict, opts), \r\n !isValid && (isValid = strict ? new RegExp(\"[0-9\" + Inputmask.escapeRegex(opts.groupSeparator) + \"]\").test(chrs) : new RegExp(\"[0-9]\").test(chrs), \r\n isValid === !0 && (isValid = opts.leadingZeroHandler(chrs, maskset, pos, strict, opts), \r\n isValid === !0)))) {\r\n var radixPosition = $.inArray(opts.radixPoint, maskset.buffer);\r\n isValid = -1 !== radixPosition && opts.digitsOptional === !1 && opts.numericInput !== !0 && pos > radixPosition && !strict ? {\r\n pos: pos,\r\n remove: pos\r\n } : {\r\n pos: pos\r\n };\r\n }\r\n return isValid;\r\n },\r\n cardinality: 1,\r\n prevalidator: null\r\n },\r\n \"+\": {\r\n validator: function(chrs, maskset, pos, strict, opts) {\r\n var isValid = opts.signHandler(chrs, maskset, pos, strict, opts);\r\n return !isValid && (strict && opts.allowMinus && chrs === opts.negationSymbol.front || opts.allowMinus && \"-\" === chrs || opts.allowPlus && \"+\" === chrs) && (isValid = \"-\" === chrs ? \"\" !== opts.negationSymbol.back ? {\r\n pos: pos,\r\n c: \"-\" === chrs ? opts.negationSymbol.front : \"+\",\r\n caret: pos + 1,\r\n insert: {\r\n pos: maskset.buffer.length,\r\n c: opts.negationSymbol.back\r\n }\r\n } : {\r\n pos: pos,\r\n c: \"-\" === chrs ? opts.negationSymbol.front : \"+\",\r\n caret: pos + 1\r\n } : !0), isValid;\r\n },\r\n cardinality: 1,\r\n prevalidator: null,\r\n placeholder: \"\"\r\n },\r\n \"-\": {\r\n validator: function(chrs, maskset, pos, strict, opts) {\r\n var isValid = opts.signHandler(chrs, maskset, pos, strict, opts);\r\n return !isValid && strict && opts.allowMinus && chrs === opts.negationSymbol.back && (isValid = !0), \r\n isValid;\r\n },\r\n cardinality: 1,\r\n prevalidator: null,\r\n placeholder: \"\"\r\n },\r\n \":\": {\r\n validator: function(chrs, maskset, pos, strict, opts) {\r\n var isValid = opts.signHandler(chrs, maskset, pos, strict, opts);\r\n if (!isValid) {\r\n var radix = \"[\" + Inputmask.escapeRegex(opts.radixPoint) + \",\\\\.]\";\r\n isValid = new RegExp(radix).test(chrs), isValid && maskset.validPositions[pos] && maskset.validPositions[pos].match.placeholder === opts.radixPoint && (isValid = {\r\n caret: pos + 1\r\n });\r\n }\r\n return isValid ? {\r\n c: opts.radixPoint\r\n } : isValid;\r\n },\r\n cardinality: 1,\r\n prevalidator: null,\r\n placeholder: function(opts) {\r\n return opts.radixPoint;\r\n }\r\n }\r\n },\r\n onUnMask: function(maskedValue, unmaskedValue, opts) {\r\n var processValue = maskedValue.replace(opts.prefix, \"\");\r\n return processValue = processValue.replace(opts.suffix, \"\"), processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), \"g\"), \"\"), \r\n opts.unmaskAsNumber ? (\"\" !== opts.radixPoint && -1 !== processValue.indexOf(opts.radixPoint) && (processValue = processValue.replace(Inputmask.escapeRegex.call(this, opts.radixPoint), \".\")), \r\n Number(processValue)) : processValue;\r\n },\r\n isComplete: function(buffer, opts) {\r\n var maskedValue = buffer.join(\"\"), bufClone = buffer.slice();\r\n if (opts.postFormat(bufClone, 0, !0, opts), bufClone.join(\"\") !== maskedValue) return !1;\r\n var processValue = maskedValue.replace(opts.prefix, \"\");\r\n return processValue = processValue.replace(opts.suffix, \"\"), processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), \"g\"), \"\"), \r\n \",\" === opts.radixPoint && (processValue = processValue.replace(Inputmask.escapeRegex(opts.radixPoint), \".\")), \r\n isFinite(processValue);\r\n },\r\n onBeforeMask: function(initialValue, opts) {\r\n if (\"\" !== opts.radixPoint && isFinite(initialValue)) initialValue = initialValue.toString().replace(\".\", opts.radixPoint); else {\r\n var kommaMatches = initialValue.match(/,/g), dotMatches = initialValue.match(/\\./g);\r\n dotMatches && kommaMatches ? dotMatches.length > kommaMatches.length ? (initialValue = initialValue.replace(/\\./g, \"\"), \r\n initialValue = initialValue.replace(\",\", opts.radixPoint)) : kommaMatches.length > dotMatches.length ? (initialValue = initialValue.replace(/,/g, \"\"), \r\n initialValue = initialValue.replace(\".\", opts.radixPoint)) : initialValue = initialValue.indexOf(\".\") < initialValue.indexOf(\",\") ? initialValue.replace(/\\./g, \"\") : initialValue = initialValue.replace(/,/g, \"\") : initialValue = initialValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), \"g\"), \"\");\r\n }\r\n if (0 === opts.digits && (-1 !== initialValue.indexOf(\".\") ? initialValue = initialValue.substring(0, initialValue.indexOf(\".\")) : -1 !== initialValue.indexOf(\",\") && (initialValue = initialValue.substring(0, initialValue.indexOf(\",\")))), \r\n \"\" !== opts.radixPoint && isFinite(opts.digits) && -1 !== initialValue.indexOf(opts.radixPoint)) {\r\n var valueParts = initialValue.split(opts.radixPoint), decPart = valueParts[1].match(new RegExp(\"\\\\d*\"))[0];\r\n if (parseInt(opts.digits) < decPart.toString().length) {\r\n var digitsFactor = Math.pow(10, parseInt(opts.digits));\r\n initialValue = initialValue.replace(Inputmask.escapeRegex(opts.radixPoint), \".\"), \r\n initialValue = Math.round(parseFloat(initialValue) * digitsFactor) / digitsFactor, \r\n initialValue = initialValue.toString().replace(\".\", opts.radixPoint);\r\n }\r\n }\r\n return initialValue.toString();\r\n },\r\n canClearPosition: function(maskset, position, lvp, strict, opts) {\r\n var positionInput = maskset.validPositions[position].input, canClear = positionInput !== opts.radixPoint || null !== maskset.validPositions[position].match.fn && opts.decimalProtect === !1 || isFinite(positionInput) || position === lvp || positionInput === opts.groupSeparator || positionInput === opts.negationSymbol.front || positionInput === opts.negationSymbol.back;\r\n if (canClear && isFinite(positionInput)) {\r\n var matchRslt, radixPos = $.inArray(opts.radixPoint, maskset.buffer), radixInjection = !1;\r\n if (void 0 === maskset.validPositions[radixPos] && (maskset.validPositions[radixPos] = {\r\n input: opts.radixPoint\r\n }, radixInjection = !0), !strict && maskset.buffer) {\r\n matchRslt = maskset.buffer.join(\"\").substr(0, position).match(opts.regex.integerNPart(opts));\r\n var pos = position + 1, isNull = null == matchRslt || 0 === parseInt(matchRslt[0].replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), \"g\"), \"\"));\r\n if (isNull) for (;maskset.validPositions[pos] && (maskset.validPositions[pos].input === opts.groupSeparator || \"0\" === maskset.validPositions[pos].input); ) delete maskset.validPositions[pos], \r\n pos++;\r\n }\r\n var buffer = [];\r\n for (var vp in maskset.validPositions) void 0 !== maskset.validPositions[vp].input && buffer.push(maskset.validPositions[vp].input);\r\n if (radixInjection && delete maskset.validPositions[radixPos], radixPos > 0) {\r\n var bufVal = buffer.join(\"\");\r\n if (matchRslt = bufVal.match(opts.regex.integerNPart(opts))) if (radixPos >= position) if (0 === matchRslt[0].indexOf(\"0\")) canClear = matchRslt.index !== position || \"0\" === opts.placeholder; else {\r\n var intPart = parseInt(matchRslt[0].replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), \"g\"), \"\")), radixPart = parseInt(bufVal.split(opts.radixPoint)[1]);\r\n 10 > intPart && maskset.validPositions[position] && (\"0\" !== opts.placeholder || radixPart > 0) && (maskset.validPositions[position].input = \"0\", \r\n maskset.p = opts.prefix.length + 1, canClear = !1);\r\n } else 0 === matchRslt[0].indexOf(\"0\") && 3 === bufVal.length && (maskset.validPositions = {}, \r\n canClear = !1);\r\n }\r\n }\r\n return canClear;\r\n },\r\n onKeyDown: function(e, buffer, caretPos, opts) {\r\n var $input = $(this);\r\n if (e.ctrlKey) switch (e.keyCode) {\r\n case Inputmask.keyCode.UP:\r\n $input.val(parseFloat(this.inputmask.unmaskedvalue()) + parseInt(opts.step)), $input.trigger(\"setvalue.inputmask\");\r\n break;\r\n\r\n case Inputmask.keyCode.DOWN:\r\n $input.val(parseFloat(this.inputmask.unmaskedvalue()) - parseInt(opts.step)), $input.trigger(\"setvalue.inputmask\");\r\n }\r\n }\r\n },\r\n currency: {\r\n prefix: \"$ \",\r\n groupSeparator: \",\",\r\n alias: \"numeric\",\r\n placeholder: \"0\",\r\n autoGroup: !0,\r\n digits: 2,\r\n digitsOptional: !1,\r\n clearMaskOnLostFocus: !1\r\n },\r\n decimal: {\r\n alias: \"numeric\"\r\n },\r\n integer: {\r\n alias: \"numeric\",\r\n digits: 0,\r\n radixPoint: \"\"\r\n },\r\n percentage: {\r\n alias: \"numeric\",\r\n digits: 2,\r\n radixPoint: \".\",\r\n placeholder: \"0\",\r\n autoGroup: !1,\r\n min: 0,\r\n max: 100,\r\n suffix: \" %\",\r\n allowPlus: !1,\r\n allowMinus: !1\r\n }\r\n }), Inputmask;\r\n}(jQuery, Inputmask), function($, Inputmask) {\r\n return Inputmask.extendAliases({\r\n phone: {\r\n url: \"phone-codes/phone-codes.js\",\r\n countrycode: \"\",\r\n mask: function(opts) {\r\n opts.definitions[\"#\"] = opts.definitions[9];\r\n var maskList = [];\r\n return $.ajax({\r\n url: opts.url,\r\n async: !1,\r\n dataType: \"json\",\r\n success: function(response) {\r\n maskList = response;\r\n },\r\n error: function(xhr, ajaxOptions, thrownError) {\r\n alert(thrownError + \" - \" + opts.url);\r\n }\r\n }), maskList = maskList.sort(function(a, b) {\r\n return (a.mask || a) < (b.mask || b) ? -1 : 1;\r\n });\r\n },\r\n keepStatic: !1,\r\n nojumps: !0,\r\n nojumpsThreshold: 1,\r\n onBeforeMask: function(value, opts) {\r\n var processedValue = value.replace(/^0/g, \"\");\r\n return (processedValue.indexOf(opts.countrycode) > 1 || -1 === processedValue.indexOf(opts.countrycode)) && (processedValue = \"+\" + opts.countrycode + processedValue), \r\n processedValue;\r\n }\r\n },\r\n phonebe: {\r\n alias: \"phone\",\r\n url: \"phone-codes/phone-be.js\",\r\n countrycode: \"32\",\r\n nojumpsThreshold: 4\r\n }\r\n }), Inputmask;\r\n}(jQuery, Inputmask), function($, Inputmask) {\r\n return Inputmask.extendAliases({\r\n Regex: {\r\n mask: \"r\",\r\n greedy: !1,\r\n repeat: \"*\",\r\n regex: null,\r\n regexTokens: null,\r\n tokenizer: /\\[\\^?]?(?:[^\\\\\\]]+|\\\\[\\S\\s]?)*]?|\\\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\\S\\s]?)|\\((?:\\?[:=!]?)?|(?:[?*+]|\\{[0-9]+(?:,[0-9]*)?\\})\\??|[^.?*+^${[()|\\\\]+|./g,\r\n quantifierFilter: /[0-9]+[^,]/,\r\n isComplete: function(buffer, opts) {\r\n return new RegExp(opts.regex).test(buffer.join(\"\"));\r\n },\r\n definitions: {\r\n r: {\r\n validator: function(chrs, maskset, pos, strict, opts) {\r\n function RegexToken(isGroup, isQuantifier) {\r\n this.matches = [], this.isGroup = isGroup || !1, this.isQuantifier = isQuantifier || !1, \r\n this.quantifier = {\r\n min: 1,\r\n max: 1\r\n }, this.repeaterPart = void 0;\r\n }\r\n function analyseRegex() {\r\n var match, m, currentToken = new RegexToken(), opengroups = [];\r\n for (opts.regexTokens = []; match = opts.tokenizer.exec(opts.regex); ) switch (m = match[0], \r\n m.charAt(0)) {\r\n case \"(\":\r\n opengroups.push(new RegexToken(!0));\r\n break;\r\n\r\n case \")\":\r\n groupToken = opengroups.pop(), opengroups.length > 0 ? opengroups[opengroups.length - 1].matches.push(groupToken) : currentToken.matches.push(groupToken);\r\n break;\r\n\r\n case \"{\":\r\n case \"+\":\r\n case \"*\":\r\n var quantifierToken = new RegexToken(!1, !0);\r\n m = m.replace(/[{}]/g, \"\");\r\n var mq = m.split(\",\"), mq0 = isNaN(mq[0]) ? mq[0] : parseInt(mq[0]), mq1 = 1 === mq.length ? mq0 : isNaN(mq[1]) ? mq[1] : parseInt(mq[1]);\r\n if (quantifierToken.quantifier = {\r\n min: mq0,\r\n max: mq1\r\n }, opengroups.length > 0) {\r\n var matches = opengroups[opengroups.length - 1].matches;\r\n match = matches.pop(), match.isGroup || (groupToken = new RegexToken(!0), groupToken.matches.push(match), \r\n match = groupToken), matches.push(match), matches.push(quantifierToken);\r\n } else match = currentToken.matches.pop(), match.isGroup || (groupToken = new RegexToken(!0), \r\n groupToken.matches.push(match), match = groupToken), currentToken.matches.push(match), \r\n currentToken.matches.push(quantifierToken);\r\n break;\r\n\r\n default:\r\n opengroups.length > 0 ? opengroups[opengroups.length - 1].matches.push(m) : currentToken.matches.push(m);\r\n }\r\n currentToken.matches.length > 0 && opts.regexTokens.push(currentToken);\r\n }\r\n function validateRegexToken(token, fromGroup) {\r\n var isvalid = !1;\r\n fromGroup && (regexPart += \"(\", openGroupCount++);\r\n for (var mndx = 0; mndx < token.matches.length; mndx++) {\r\n var matchToken = token.matches[mndx];\r\n if (matchToken.isGroup === !0) isvalid = validateRegexToken(matchToken, !0); else if (matchToken.isQuantifier === !0) {\r\n var crrntndx = $.inArray(matchToken, token.matches), matchGroup = token.matches[crrntndx - 1], regexPartBak = regexPart;\r\n if (isNaN(matchToken.quantifier.max)) {\r\n for (;matchToken.repeaterPart && matchToken.repeaterPart !== regexPart && matchToken.repeaterPart.length > regexPart.length && !(isvalid = validateRegexToken(matchGroup, !0)); ) ;\r\n isvalid = isvalid || validateRegexToken(matchGroup, !0), isvalid && (matchToken.repeaterPart = regexPart), \r\n regexPart = regexPartBak + matchToken.quantifier.max;\r\n } else {\r\n for (var i = 0, qm = matchToken.quantifier.max - 1; qm > i && !(isvalid = validateRegexToken(matchGroup, !0)); i++) ;\r\n regexPart = regexPartBak + \"{\" + matchToken.quantifier.min + \",\" + matchToken.quantifier.max + \"}\";\r\n }\r\n } else if (void 0 !== matchToken.matches) for (var k = 0; k < matchToken.length && !(isvalid = validateRegexToken(matchToken[k], fromGroup)); k++) ; else {\r\n var testExp;\r\n if (\"[\" == matchToken.charAt(0)) {\r\n testExp = regexPart, testExp += matchToken;\r\n for (var j = 0; openGroupCount > j; j++) testExp += \")\";\r\n var exp = new RegExp(\"^(\" + testExp + \")$\");\r\n isvalid = exp.test(bufferStr);\r\n } else for (var l = 0, tl = matchToken.length; tl > l; l++) if (\"\\\\\" !== matchToken.charAt(l)) {\r\n testExp = regexPart, testExp += matchToken.substr(0, l + 1), testExp = testExp.replace(/\\|$/, \"\");\r\n for (var j = 0; openGroupCount > j; j++) testExp += \")\";\r\n var exp = new RegExp(\"^(\" + testExp + \")$\");\r\n if (isvalid = exp.test(bufferStr)) break;\r\n }\r\n regexPart += matchToken;\r\n }\r\n if (isvalid) break;\r\n }\r\n return fromGroup && (regexPart += \")\", openGroupCount--), isvalid;\r\n }\r\n var groupToken, cbuffer = maskset.buffer.slice(), regexPart = \"\", isValid = !1, openGroupCount = 0;\r\n null === opts.regexTokens && analyseRegex(), cbuffer.splice(pos, 0, chrs);\r\n for (var bufferStr = cbuffer.join(\"\"), i = 0; i < opts.regexTokens.length; i++) {\r\n var regexToken = opts.regexTokens[i];\r\n if (isValid = validateRegexToken(regexToken, regexToken.isGroup)) break;\r\n }\r\n return isValid;\r\n },\r\n cardinality: 1\r\n }\r\n }\r\n }\r\n }), Inputmask;\r\n}(jQuery, Inputmask);","/*globals jQuery, define, module, exports, require, window, document, postMessage */\r\n(function (factory) {\r\n\t\"use strict\";\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(['jquery'], factory);\r\n\t}\r\n\telse if(typeof module !== 'undefined' && module.exports) {\r\n\t\tmodule.exports = factory(require('jquery'));\r\n\t}\r\n\telse {\r\n\t\tfactory(jQuery);\r\n\t}\r\n}(function ($, undefined) {\r\n\t\"use strict\";\r\n/*!\r\n * jsTree 3.3.11\r\n * http://jstree.com/\r\n *\r\n * Copyright (c) 2014 Ivan Bozhanov (http://vakata.com)\r\n *\r\n * Licensed same as jquery - under the terms of the MIT License\r\n * http://www.opensource.org/licenses/mit-license.php\r\n */\r\n/*!\r\n * if using jslint please allow for the jQuery global and use following options:\r\n * jslint: loopfunc: true, browser: true, ass: true, bitwise: true, continue: true, nomen: true, plusplus: true, regexp: true, unparam: true, todo: true, white: true\r\n */\r\n/*jshint -W083 */\r\n\r\n\t// prevent another load? maybe there is a better way?\r\n\tif($.jstree) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t/**\r\n\t * ### jsTree core functionality\r\n\t */\r\n\r\n\t// internal variables\r\n\tvar instance_counter = 0,\r\n\t\tccp_node = false,\r\n\t\tccp_mode = false,\r\n\t\tccp_inst = false,\r\n\t\tthemes_loaded = [],\r\n\t\tsrc = $('script:last').attr('src'),\r\n\t\tdocument = window.document; // local variable is always faster to access then a global\r\n\r\n\tvar setImmediate = window.setImmediate;\r\n\tvar Promise = window.Promise;\r\n\tif (!setImmediate && Promise) {\r\n\t\t// Good enough approximation of setImmediate\r\n\t\tsetImmediate = function (cb, arg) {\r\n\t\t\tPromise.resolve(arg).then(cb);\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * holds all jstree related functions and variables, including the actual class and methods to create, access and manipulate instances.\r\n\t * @name $.jstree\r\n\t */\r\n\t$.jstree = {\r\n\t\t/**\r\n\t\t * specifies the jstree version in use\r\n\t\t * @name $.jstree.version\r\n\t\t */\r\n\t\tversion : '3.3.11',\r\n\t\t/**\r\n\t\t * holds all the default options used when creating new instances\r\n\t\t * @name $.jstree.defaults\r\n\t\t */\r\n\t\tdefaults : {\r\n\t\t\t/**\r\n\t\t\t * configure which plugins will be active on an instance. Should be an array of strings, where each element is a plugin name. The default is `[]`\r\n\t\t\t * @name $.jstree.defaults.plugins\r\n\t\t\t */\r\n\t\t\tplugins : []\r\n\t\t},\r\n\t\t/**\r\n\t\t * stores all loaded jstree plugins (used internally)\r\n\t\t * @name $.jstree.plugins\r\n\t\t */\r\n\t\tplugins : {},\r\n\t\tpath : src && src.indexOf('/') !== -1 ? src.replace(/\\/[^\\/]+$/,'') : '',\r\n\t\tidregex : /[\\\\:&!^|()\\[\\]<>@*'+~#\";.,=\\- \\/${}%?`]/g,\r\n\t\troot : '#'\r\n\t};\r\n\t\r\n\t/**\r\n\t * creates a jstree instance\r\n\t * @name $.jstree.create(el [, options])\r\n\t * @param {DOMElement|jQuery|String} el the element to create the instance on, can be jQuery extended or a selector\r\n\t * @param {Object} options options for this instance (extends `$.jstree.defaults`)\r\n\t * @return {jsTree} the new instance\r\n\t */\r\n\t$.jstree.create = function (el, options) {\r\n\t\tvar tmp = new $.jstree.core(++instance_counter),\r\n\t\t\topt = options;\r\n\t\toptions = $.extend(true, {}, $.jstree.defaults, options);\r\n\t\tif(opt && opt.plugins) {\r\n\t\t\toptions.plugins = opt.plugins;\r\n\t\t}\r\n\t\t$.each(options.plugins, function (i, k) {\r\n\t\t\tif(i !== 'core') {\r\n\t\t\t\ttmp = tmp.plugin(k, options[k]);\r\n\t\t\t}\r\n\t\t});\r\n\t\t$(el).data('jstree', tmp);\r\n\t\ttmp.init(el, options);\r\n\t\treturn tmp;\r\n\t};\r\n\t/**\r\n\t * remove all traces of jstree from the DOM and destroy all instances\r\n\t * @name $.jstree.destroy()\r\n\t */\r\n\t$.jstree.destroy = function () {\r\n\t\t$('.jstree:jstree').jstree('destroy');\r\n\t\t$(document).off('.jstree');\r\n\t};\r\n\t/**\r\n\t * the jstree class constructor, used only internally\r\n\t * @private\r\n\t * @name $.jstree.core(id)\r\n\t * @param {Number} id this instance's index\r\n\t */\r\n\t$.jstree.core = function (id) {\r\n\t\tthis._id = id;\r\n\t\tthis._cnt = 0;\r\n\t\tthis._wrk = null;\r\n\t\tthis._data = {\r\n\t\t\tcore : {\r\n\t\t\t\tthemes : {\r\n\t\t\t\t\tname : false,\r\n\t\t\t\t\tdots : false,\r\n\t\t\t\t\ticons : false,\r\n\t\t\t\t\tellipsis : false\r\n\t\t\t\t},\r\n\t\t\t\tselected : [],\r\n\t\t\t\tlast_error : {},\r\n\t\t\t\tworking : false,\r\n\t\t\t\tworker_queue : [],\r\n\t\t\t\tfocused : null\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\t/**\r\n\t * get a reference to an existing instance\r\n\t *\r\n\t * __Examples__\r\n\t *\r\n\t *\t// provided a container with an ID of \"tree\", and a nested node with an ID of \"branch\"\r\n\t *\t// all of there will return the same instance\r\n\t *\t$.jstree.reference('tree');\r\n\t *\t$.jstree.reference('#tree');\r\n\t *\t$.jstree.reference($('#tree'));\r\n\t *\t$.jstree.reference(document.getElementByID('tree'));\r\n\t *\t$.jstree.reference('branch');\r\n\t *\t$.jstree.reference('#branch');\r\n\t *\t$.jstree.reference($('#branch'));\r\n\t *\t$.jstree.reference(document.getElementByID('branch'));\r\n\t *\r\n\t * @name $.jstree.reference(needle)\r\n\t * @param {DOMElement|jQuery|String} needle\r\n\t * @return {jsTree|null} the instance or `null` if not found\r\n\t */\r\n\t$.jstree.reference = function (needle) {\r\n\t\tvar tmp = null,\r\n\t\t\tobj = null;\r\n\t\tif(needle && needle.id && (!needle.tagName || !needle.nodeType)) { needle = needle.id; }\r\n\r\n\t\tif(!obj || !obj.length) {\r\n\t\t\ttry { obj = $(needle); } catch (ignore) { }\r\n\t\t}\r\n\t\tif(!obj || !obj.length) {\r\n\t\t\ttry { obj = $('#' + needle.replace($.jstree.idregex,'\\\\$&')); } catch (ignore) { }\r\n\t\t}\r\n\t\tif(obj && obj.length && (obj = obj.closest('.jstree')).length && (obj = obj.data('jstree'))) {\r\n\t\t\ttmp = obj;\r\n\t\t}\r\n\t\telse {\r\n\t\t\t$('.jstree').each(function () {\r\n\t\t\t\tvar inst = $(this).data('jstree');\r\n\t\t\t\tif(inst && inst._model.data[needle]) {\r\n\t\t\t\t\ttmp = inst;\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn tmp;\r\n\t};\r\n\t/**\r\n\t * Create an instance, get an instance or invoke a command on a instance.\r\n\t *\r\n\t * If there is no instance associated with the current node a new one is created and `arg` is used to extend `$.jstree.defaults` for this new instance. There would be no return value (chaining is not broken).\r\n\t *\r\n\t * If there is an existing instance and `arg` is a string the command specified by `arg` is executed on the instance, with any additional arguments passed to the function. If the function returns a value it will be returned (chaining could break depending on function).\r\n\t *\r\n\t * If there is an existing instance and `arg` is not a string the instance itself is returned (similar to `$.jstree.reference`).\r\n\t *\r\n\t * In any other case - nothing is returned and chaining is not broken.\r\n\t *\r\n\t * __Examples__\r\n\t *\r\n\t *\t$('#tree1').jstree(); // creates an instance\r\n\t *\t$('#tree2').jstree({ plugins : [] }); // create an instance with some options\r\n\t *\t$('#tree1').jstree('open_node', '#branch_1'); // call a method on an existing instance, passing additional arguments\r\n\t *\t$('#tree2').jstree(); // get an existing instance (or create an instance)\r\n\t *\t$('#tree2').jstree(true); // get an existing instance (will not create new instance)\r\n\t *\t$('#branch_1').jstree().select_node('#branch_1'); // get an instance (using a nested element and call a method)\r\n\t *\r\n\t * @name $().jstree([arg])\r\n\t * @param {String|Object} arg\r\n\t * @return {Mixed}\r\n\t */\r\n\t$.fn.jstree = function (arg) {\r\n\t\t// check for string argument\r\n\t\tvar is_method\t= (typeof arg === 'string'),\r\n\t\t\targs\t\t= Array.prototype.slice.call(arguments, 1),\r\n\t\t\tresult\t\t= null;\r\n\t\tif(arg === true && !this.length) { return false; }\r\n\t\tthis.each(function () {\r\n\t\t\t// get the instance (if there is one) and method (if it exists)\r\n\t\t\tvar instance = $.jstree.reference(this),\r\n\t\t\t\tmethod = is_method && instance ? instance[arg] : null;\r\n\t\t\t// if calling a method, and method is available - execute on the instance\r\n\t\t\tresult = is_method && method ?\r\n\t\t\t\tmethod.apply(instance, args) :\r\n\t\t\t\tnull;\r\n\t\t\t// if there is no instance and no method is being called - create one\r\n\t\t\tif(!instance && !is_method && (arg === undefined || $.isPlainObject(arg))) {\r\n\t\t\t\t$.jstree.create(this, arg);\r\n\t\t\t}\r\n\t\t\t// if there is an instance and no method is called - return the instance\r\n\t\t\tif( (instance && !is_method) || arg === true ) {\r\n\t\t\t\tresult = instance || false;\r\n\t\t\t}\r\n\t\t\t// if there was a method call which returned a result - break and return the value\r\n\t\t\tif(result !== null && result !== undefined) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t});\r\n\t\t// if there was a method call with a valid return value - return that, otherwise continue the chain\r\n\t\treturn result !== null && result !== undefined ?\r\n\t\t\tresult : this;\r\n\t};\r\n\t/**\r\n\t * used to find elements containing an instance\r\n\t *\r\n\t * __Examples__\r\n\t *\r\n\t *\t$('div:jstree').each(function () {\r\n\t *\t\t$(this).jstree('destroy');\r\n\t *\t});\r\n\t *\r\n\t * @name $(':jstree')\r\n\t * @return {jQuery}\r\n\t */\r\n\t$.expr.pseudos.jstree = $.expr.createPseudo(function(search) {\r\n\t\treturn function(a) {\r\n\t\t\treturn $(a).hasClass('jstree') &&\r\n\t\t\t\t$(a).data('jstree') !== undefined;\r\n\t\t};\r\n\t});\r\n\r\n\t/**\r\n\t * stores all defaults for the core\r\n\t * @name $.jstree.defaults.core\r\n\t */\r\n\t$.jstree.defaults.core = {\r\n\t\t/**\r\n\t\t * data configuration\r\n\t\t *\r\n\t\t * If left as `false` the HTML inside the jstree container element is used to populate the tree (that should be an unordered list with list items).\r\n\t\t *\r\n\t\t * You can also pass in a HTML string or a JSON array here.\r\n\t\t *\r\n\t\t * It is possible to pass in a standard jQuery-like AJAX config and jstree will automatically determine if the response is JSON or HTML and use that to populate the tree.\r\n\t\t * In addition to the standard jQuery ajax options here you can suppy functions for `data` and `url`, the functions will be run in the current instance's scope and a param will be passed indicating which node is being loaded, the return value of those functions will be used.\r\n\t\t *\r\n\t\t * The last option is to specify a function, that function will receive the node being loaded as argument and a second param which is a function which should be called with the result.\r\n\t\t *\r\n\t\t * __Examples__\r\n\t\t *\r\n\t\t *\t// AJAX\r\n\t\t *\t$('#tree').jstree({\r\n\t\t *\t\t'core' : {\r\n\t\t *\t\t\t'data' : {\r\n\t\t *\t\t\t\t'url' : '/get/children/',\r\n\t\t *\t\t\t\t'data' : function (node) {\r\n\t\t *\t\t\t\t\treturn { 'id' : node.id };\r\n\t\t *\t\t\t\t}\r\n\t\t *\t\t\t}\r\n\t\t *\t\t});\r\n\t\t *\r\n\t\t *\t// direct data\r\n\t\t *\t$('#tree').jstree({\r\n\t\t *\t\t'core' : {\r\n\t\t *\t\t\t'data' : [\r\n\t\t *\t\t\t\t'Simple root node',\r\n\t\t *\t\t\t\t{\r\n\t\t *\t\t\t\t\t'id' : 'node_2',\r\n\t\t *\t\t\t\t\t'text' : 'Root node with options',\r\n\t\t *\t\t\t\t\t'state' : { 'opened' : true, 'selected' : true },\r\n\t\t *\t\t\t\t\t'children' : [ { 'text' : 'Child 1' }, 'Child 2']\r\n\t\t *\t\t\t\t}\r\n\t\t *\t\t\t]\r\n\t\t *\t\t}\r\n\t\t *\t});\r\n\t\t *\r\n\t\t *\t// function\r\n\t\t *\t$('#tree').jstree({\r\n\t\t *\t\t'core' : {\r\n\t\t *\t\t\t'data' : function (obj, callback) {\r\n\t\t *\t\t\t\tcallback.call(this, ['Root 1', 'Root 2']);\r\n\t\t *\t\t\t}\r\n\t\t *\t\t});\r\n\t\t *\r\n\t\t * @name $.jstree.defaults.core.data\r\n\t\t */\r\n\t\tdata\t\t\t: false,\r\n\t\t/**\r\n\t\t * configure the various strings used throughout the tree\r\n\t\t *\r\n\t\t * You can use an object where the key is the string you need to replace and the value is your replacement.\r\n\t\t * Another option is to specify a function which will be called with an argument of the needed string and should return the replacement.\r\n\t\t * If left as `false` no replacement is made.\r\n\t\t *\r\n\t\t * __Examples__\r\n\t\t *\r\n\t\t *\t$('#tree').jstree({\r\n\t\t *\t\t'core' : {\r\n\t\t *\t\t\t'strings' : {\r\n\t\t *\t\t\t\t'Loading ...' : 'Please wait ...'\r\n\t\t *\t\t\t}\r\n\t\t *\t\t}\r\n\t\t *\t});\r\n\t\t *\r\n\t\t * @name $.jstree.defaults.core.strings\r\n\t\t */\r\n\t\tstrings\t\t\t: false,\r\n\t\t/**\r\n\t\t * determines what happens when a user tries to modify the structure of the tree\r\n\t\t * If left as `false` all operations like create, rename, delete, move or copy are prevented.\r\n\t\t * You can set this to `true` to allow all interactions or use a function to have better control.\r\n\t\t *\r\n\t\t * __Examples__\r\n\t\t *\r\n\t\t *\t$('#tree').jstree({\r\n\t\t *\t\t'core' : {\r\n\t\t *\t\t\t'check_callback' : function (operation, node, node_parent, node_position, more) {\r\n\t\t *\t\t\t\t// operation can be 'create_node', 'rename_node', 'delete_node', 'move_node', 'copy_node' or 'edit'\r\n\t\t *\t\t\t\t// in case of 'rename_node' node_position is filled with the new node name\r\n\t\t *\t\t\t\treturn operation === 'rename_node' ? true : false;\r\n\t\t *\t\t\t}\r\n\t\t *\t\t}\r\n\t\t *\t});\r\n\t\t *\r\n\t\t * @name $.jstree.defaults.core.check_callback\r\n\t\t */\r\n\t\tcheck_callback\t: false,\r\n\t\t/**\r\n\t\t * a callback called with a single object parameter in the instance's scope when something goes wrong (operation prevented, ajax failed, etc)\r\n\t\t * @name $.jstree.defaults.core.error\r\n\t\t */\r\n\t\terror\t\t\t: $.noop,\r\n\t\t/**\r\n\t\t * the open / close animation duration in milliseconds - set this to `false` to disable the animation (default is `200`)\r\n\t\t * @name $.jstree.defaults.core.animation\r\n\t\t */\r\n\t\tanimation\t\t: 200,\r\n\t\t/**\r\n\t\t * a boolean indicating if multiple nodes can be selected\r\n\t\t * @name $.jstree.defaults.core.multiple\r\n\t\t */\r\n\t\tmultiple\t\t: true,\r\n\t\t/**\r\n\t\t * theme configuration object\r\n\t\t * @name $.jstree.defaults.core.themes\r\n\t\t */\r\n\t\tthemes\t\t\t: {\r\n\t\t\t/**\r\n\t\t\t * the name of the theme to use (if left as `false` the default theme is used)\r\n\t\t\t * @name $.jstree.defaults.core.themes.name\r\n\t\t\t */\r\n\t\t\tname\t\t\t: false,\r\n\t\t\t/**\r\n\t\t\t * the URL of the theme's CSS file, leave this as `false` if you have manually included the theme CSS (recommended). You can set this to `true` too which will try to autoload the theme.\r\n\t\t\t * @name $.jstree.defaults.core.themes.url\r\n\t\t\t */\r\n\t\t\turl\t\t\t\t: false,\r\n\t\t\t/**\r\n\t\t\t * the location of all jstree themes - only used if `url` is set to `true`\r\n\t\t\t * @name $.jstree.defaults.core.themes.dir\r\n\t\t\t */\r\n\t\t\tdir\t\t\t\t: false,\r\n\t\t\t/**\r\n\t\t\t * a boolean indicating if connecting dots are shown\r\n\t\t\t * @name $.jstree.defaults.core.themes.dots\r\n\t\t\t */\r\n\t\t\tdots\t\t\t: true,\r\n\t\t\t/**\r\n\t\t\t * a boolean indicating if node icons are shown\r\n\t\t\t * @name $.jstree.defaults.core.themes.icons\r\n\t\t\t */\r\n\t\t\ticons\t\t\t: true,\r\n\t\t\t/**\r\n\t\t\t * a boolean indicating if node ellipsis should be shown - this only works with a fixed with on the container\r\n\t\t\t * @name $.jstree.defaults.core.themes.ellipsis\r\n\t\t\t */\r\n\t\t\tellipsis\t\t: false,\r\n\t\t\t/**\r\n\t\t\t * a boolean indicating if the tree background is striped\r\n\t\t\t * @name $.jstree.defaults.core.themes.stripes\r\n\t\t\t */\r\n\t\t\tstripes\t\t\t: false,\r\n\t\t\t/**\r\n\t\t\t * a string (or boolean `false`) specifying the theme variant to use (if the theme supports variants)\r\n\t\t\t * @name $.jstree.defaults.core.themes.variant\r\n\t\t\t */\r\n\t\t\tvariant\t\t\t: false,\r\n\t\t\t/**\r\n\t\t\t * a boolean specifying if a reponsive version of the theme should kick in on smaller screens (if the theme supports it). Defaults to `false`.\r\n\t\t\t * @name $.jstree.defaults.core.themes.responsive\r\n\t\t\t */\r\n\t\t\tresponsive\t\t: false\r\n\t\t},\r\n\t\t/**\r\n\t\t * if left as `true` all parents of all selected nodes will be opened once the tree loads (so that all selected nodes are visible to the user)\r\n\t\t * @name $.jstree.defaults.core.expand_selected_onload\r\n\t\t */\r\n\t\texpand_selected_onload : true,\r\n\t\t/**\r\n\t\t * if left as `true` web workers will be used to parse incoming JSON data where possible, so that the UI will not be blocked by large requests. Workers are however about 30% slower. Defaults to `true`\r\n\t\t * @name $.jstree.defaults.core.worker\r\n\t\t */\r\n\t\tworker : true,\r\n\t\t/**\r\n\t\t * Force node text to plain text (and escape HTML). Defaults to `false`\r\n\t\t * @name $.jstree.defaults.core.force_text\r\n\t\t */\r\n\t\tforce_text : false,\r\n\t\t/**\r\n\t\t * Should the node be toggled if the text is double clicked. Defaults to `true`\r\n\t\t * @name $.jstree.defaults.core.dblclick_toggle\r\n\t\t */\r\n\t\tdblclick_toggle : true,\r\n\t\t/**\r\n\t\t * Should the loaded nodes be part of the state. Defaults to `false`\r\n\t\t * @name $.jstree.defaults.core.loaded_state\r\n\t\t */\r\n\t\tloaded_state : false,\r\n\t\t/**\r\n\t\t * Should the last active node be focused when the tree container is blurred and the focused again. This helps working with screen readers. Defaults to `true`\r\n\t\t * @name $.jstree.defaults.core.restore_focus\r\n\t\t */\r\n\t\trestore_focus : true,\r\n\t\t/**\r\n\t\t * Force to compute and set \"aria-setsize\" and \"aria-posinset\" explicitly for each treeitem. \r\n\t\t * Some browsers may compute incorrect elements position and produce wrong announcements for screen readers. Defaults to `false`\r\n\t\t * @name $.jstree.defaults.core.compute_elements_positions\r\n\t\t */\r\n\t\tcompute_elements_positions : false,\r\n\t\t/**\r\n\t\t * Default keyboard shortcuts (an object where each key is the button name or combo - like 'enter', 'ctrl-space', 'p', etc and the value is the function to execute in the instance's scope)\r\n\t\t * @name $.jstree.defaults.core.keyboard\r\n\t\t */\r\n\t\tkeyboard : {\r\n\t\t\t'ctrl-space': function (e) {\r\n\t\t\t\t// aria defines space only with Ctrl\r\n\t\t\t\te.type = \"click\";\r\n\t\t\t\t$(e.currentTarget).trigger(e);\r\n\t\t\t},\r\n\t\t\t'enter': function (e) {\r\n\t\t\t\t// enter\r\n\t\t\t\te.type = \"click\";\r\n\t\t\t\t$(e.currentTarget).trigger(e);\r\n\t\t\t},\r\n\t\t\t'left': function (e) {\r\n\t\t\t\t// left\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tif(this.is_open(e.currentTarget)) {\r\n\t\t\t\t\tthis.close_node(e.currentTarget);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvar o = this.get_parent(e.currentTarget);\r\n\t\t\t\t\tif(o && o.id !== $.jstree.root) { this.get_node(o, true).children('.jstree-anchor').focus(); }\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t'up': function (e) {\r\n\t\t\t\t// up\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tvar o = this.get_prev_dom(e.currentTarget);\r\n\t\t\t\tif(o && o.length) { o.children('.jstree-anchor').focus(); }\r\n\t\t\t},\r\n\t\t\t'right': function (e) {\r\n\t\t\t\t// right\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tif(this.is_closed(e.currentTarget)) {\r\n\t\t\t\t\tthis.open_node(e.currentTarget, function (o) { this.get_node(o, true).children('.jstree-anchor').focus(); });\r\n\t\t\t\t}\r\n\t\t\t\telse if (this.is_open(e.currentTarget)) {\r\n\t\t\t\t\tvar o = this.get_node(e.currentTarget, true).children('.jstree-children')[0];\r\n\t\t\t\t\tif(o) { $(this._firstChild(o)).children('.jstree-anchor').focus(); }\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t'down': function (e) {\r\n\t\t\t\t// down\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tvar o = this.get_next_dom(e.currentTarget);\r\n\t\t\t\tif(o && o.length) { o.children('.jstree-anchor').focus(); }\r\n\t\t\t},\r\n\t\t\t'*': function (e) {\r\n\t\t\t\t// aria defines * on numpad as open_all - not very common\r\n\t\t\t\tthis.open_all();\r\n\t\t\t},\r\n\t\t\t'home': function (e) {\r\n\t\t\t\t// home\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tvar o = this._firstChild(this.get_container_ul()[0]);\r\n\t\t\t\tif(o) { $(o).children('.jstree-anchor').filter(':visible').focus(); }\r\n\t\t\t},\r\n\t\t\t'end': function (e) {\r\n\t\t\t\t// end\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tthis.element.find('.jstree-anchor').filter(':visible').last().focus();\r\n\t\t\t},\r\n\t\t\t'f2': function (e) {\r\n\t\t\t\t// f2 - safe to include - if check_callback is false it will fail\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tthis.edit(e.currentTarget);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t$.jstree.core.prototype = {\r\n\t\t/**\r\n\t\t * used to decorate an instance with a plugin. Used internally.\r\n\t\t * @private\r\n\t\t * @name plugin(deco [, opts])\r\n\t\t * @param {String} deco the plugin to decorate with\r\n\t\t * @param {Object} opts options for the plugin\r\n\t\t * @return {jsTree}\r\n\t\t */\r\n\t\tplugin : function (deco, opts) {\r\n\t\t\tvar Child = $.jstree.plugins[deco];\r\n\t\t\tif(Child) {\r\n\t\t\t\tthis._data[deco] = {};\r\n\t\t\t\tChild.prototype = this;\r\n\t\t\t\treturn new Child(opts, this);\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t},\r\n\t\t/**\r\n\t\t * initialize the instance. Used internally.\r\n\t\t * @private\r\n\t\t * @name init(el, optons)\r\n\t\t * @param {DOMElement|jQuery|String} el the element we are transforming\r\n\t\t * @param {Object} options options for this instance\r\n\t\t * @trigger init.jstree, loading.jstree, loaded.jstree, ready.jstree, changed.jstree\r\n\t\t */\r\n\t\tinit : function (el, options) {\r\n\t\t\tthis._model = {\r\n\t\t\t\tdata : {},\r\n\t\t\t\tchanged : [],\r\n\t\t\t\tforce_full_redraw : false,\r\n\t\t\t\tredraw_timeout : false,\r\n\t\t\t\tdefault_state : {\r\n\t\t\t\t\tloaded : true,\r\n\t\t\t\t\topened : false,\r\n\t\t\t\t\tselected : false,\r\n\t\t\t\t\tdisabled : false\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tthis._model.data[$.jstree.root] = {\r\n\t\t\t\tid : $.jstree.root,\r\n\t\t\t\tparent : null,\r\n\t\t\t\tparents : [],\r\n\t\t\t\tchildren : [],\r\n\t\t\t\tchildren_d : [],\r\n\t\t\t\tstate : { loaded : false }\r\n\t\t\t};\r\n\r\n\t\t\tthis.element = $(el).addClass('jstree jstree-' + this._id);\r\n\t\t\tthis.settings = options;\r\n\r\n\t\t\tthis._data.core.ready = false;\r\n\t\t\tthis._data.core.loaded = false;\r\n\t\t\tthis._data.core.rtl = (this.element.css(\"direction\") === \"rtl\");\r\n\t\t\tthis.element[this._data.core.rtl ? 'addClass' : 'removeClass'](\"jstree-rtl\");\r\n\t\t\tthis.element.attr('role','tree');\r\n\t\t\tif(this.settings.core.multiple) {\r\n\t\t\t\tthis.element.attr('aria-multiselectable', true);\r\n\t\t\t}\r\n\t\t\tif(!this.element.attr('tabindex')) {\r\n\t\t\t\tthis.element.attr('tabindex','0');\r\n\t\t\t}\r\n\r\n\t\t\tthis.bind();\r\n\t\t\t/**\r\n\t\t\t * triggered after all events are bound\r\n\t\t\t * @event\r\n\t\t\t * @name init.jstree\r\n\t\t\t */\r\n\t\t\tthis.trigger(\"init\");\r\n\r\n\t\t\tthis._data.core.original_container_html = this.element.find(\" > ul > li\").clone(true);\r\n\t\t\tthis._data.core.original_container_html\r\n\t\t\t\t.find(\"li\").addBack()\r\n\t\t\t\t.contents().filter(function() {\r\n\t\t\t\t\treturn this.nodeType === 3 && (!this.nodeValue || /^\\s+$/.test(this.nodeValue));\r\n\t\t\t\t})\r\n\t\t\t\t.remove();\r\n\t\t\tthis.element.html(\"<\"+\"ul class='jstree-container-ul jstree-children' role='group'><\"+\"li id='j\"+this._id+\"_loading' class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='none'><\"+\"a class='jstree-anchor' role='treeitem' href='#'>\" + this.get_string(\"Loading ...\") + \"\");\r\n\t\t\tthis.element.attr('aria-activedescendant','j' + this._id + '_loading');\r\n\t\t\tthis._data.core.li_height = this.get_container_ul().children(\"li\").first().outerHeight() || 24;\r\n\t\t\tthis._data.core.node = this._create_prototype_node();\r\n\t\t\t/**\r\n\t\t\t * triggered after the loading text is shown and before loading starts\r\n\t\t\t * @event\r\n\t\t\t * @name loading.jstree\r\n\t\t\t */\r\n\t\t\tthis.trigger(\"loading\");\r\n\t\t\tthis.load_node($.jstree.root);\r\n\t\t},\r\n\t\t/**\r\n\t\t * destroy an instance\r\n\t\t * @name destroy()\r\n\t\t * @param {Boolean} keep_html if not set to `true` the container will be emptied, otherwise the current DOM elements will be kept intact\r\n\t\t */\r\n\t\tdestroy : function (keep_html) {\r\n\t\t\t/**\r\n\t\t\t * triggered before the tree is destroyed\r\n\t\t\t * @event\r\n\t\t\t * @name destroy.jstree\r\n\t\t\t */\r\n\t\t\tthis.trigger(\"destroy\");\r\n\t\t\tif(this._wrk) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\twindow.URL.revokeObjectURL(this._wrk);\r\n\t\t\t\t\tthis._wrk = null;\r\n\t\t\t\t}\r\n\t\t\t\tcatch (ignore) { }\r\n\t\t\t}\r\n\t\t\tif(!keep_html) { this.element.empty(); }\r\n\t\t\tthis.teardown();\r\n\t\t},\r\n\t\t/**\r\n\t\t * Create a prototype node\r\n\t\t * @name _create_prototype_node()\r\n\t\t * @return {DOMElement}\r\n\t\t */\r\n\t\t_create_prototype_node : function () {\r\n\t\t\tvar _node = document.createElement('LI'), _temp1, _temp2;\r\n\t\t\t_node.setAttribute('role', 'none');\r\n\t\t\t_temp1 = document.createElement('I');\r\n\t\t\t_temp1.className = 'jstree-icon jstree-ocl';\r\n\t\t\t_temp1.setAttribute('role', 'presentation');\r\n\t\t\t_node.appendChild(_temp1);\r\n\t\t\t_temp1 = document.createElement('A');\r\n\t\t\t_temp1.className = 'jstree-anchor';\r\n\t\t\t_temp1.setAttribute('href','#');\r\n\t\t\t_temp1.setAttribute('tabindex','-1');\r\n\t\t\t_temp1.setAttribute('role', 'treeitem');\r\n\t\t\t_temp2 = document.createElement('I');\r\n\t\t\t_temp2.className = 'jstree-icon jstree-themeicon';\r\n\t\t\t_temp2.setAttribute('role', 'presentation');\r\n\t\t\t_temp1.appendChild(_temp2);\r\n\t\t\t_node.appendChild(_temp1);\r\n\t\t\t_temp1 = _temp2 = null;\r\n\r\n\t\t\treturn _node;\r\n\t\t},\r\n\t\t_kbevent_to_func : function (e) {\r\n\t\t\tvar keys = {\r\n\t\t\t\t8: \"Backspace\", 9: \"Tab\", 13: \"Enter\", 19: \"Pause\", 27: \"Esc\",\r\n\t\t\t\t32: \"Space\", 33: \"PageUp\", 34: \"PageDown\", 35: \"End\", 36: \"Home\",\r\n\t\t\t\t37: \"Left\", 38: \"Up\", 39: \"Right\", 40: \"Down\", 44: \"Print\", 45: \"Insert\",\r\n\t\t\t\t46: \"Delete\", 96: \"Numpad0\", 97: \"Numpad1\", 98: \"Numpad2\", 99 : \"Numpad3\",\r\n\t\t\t\t100: \"Numpad4\", 101: \"Numpad5\", 102: \"Numpad6\", 103: \"Numpad7\",\r\n\t\t\t\t104: \"Numpad8\", 105: \"Numpad9\", '-13': \"NumpadEnter\", 112: \"F1\",\r\n\t\t\t\t113: \"F2\", 114: \"F3\", 115: \"F4\", 116: \"F5\", 117: \"F6\", 118: \"F7\",\r\n\t\t\t\t119: \"F8\", 120: \"F9\", 121: \"F10\", 122: \"F11\", 123: \"F12\", 144: \"Numlock\",\r\n\t\t\t\t145: \"Scrolllock\", 16: 'Shift', 17: 'Ctrl', 18: 'Alt',\r\n\t\t\t\t48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5',\r\n\t\t\t\t54: '6', 55: '7', 56: '8', 57: '9', 59: ';', 61: '=', 65: 'a',\r\n\t\t\t\t66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h',\r\n\t\t\t\t73: 'i', 74: 'j', 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o',\r\n\t\t\t\t80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v',\r\n\t\t\t\t87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.',\r\n\t\t\t\t186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`',\r\n\t\t\t\t219: '[', 220: '\\\\',221: ']', 222: \"'\", 111: '/', 106: '*', 173: '-'\r\n\t\t\t};\r\n\t\t\tvar parts = [];\r\n\t\t\tif (e.ctrlKey) { parts.push('ctrl'); }\r\n\t\t\tif (e.altKey) { parts.push('alt'); }\r\n if (e.shiftKey) { parts.push('shift'); }\r\n\t\t\tparts.push(keys[e.which] || e.which);\r\n parts = parts.sort().join('-').toLowerCase();\r\n if (parts === 'shift-shift' || parts === 'ctrl-ctrl' || parts === 'alt-alt') {\r\n return null;\r\n }\r\n\r\n\t\t\tvar kb = this.settings.core.keyboard, i, tmp;\r\n\t\t\tfor (i in kb) {\r\n\t\t\t\tif (kb.hasOwnProperty(i)) {\r\n\t\t\t\t\ttmp = i;\r\n\t\t\t\t\tif (tmp !== '-' && tmp !== '+') {\r\n\t\t\t\t\t\ttmp = tmp.replace('--', '-MINUS').replace('+-', '-MINUS').replace('++', '-PLUS').replace('-+', '-PLUS');\r\n\t\t\t\t\t\ttmp = tmp.split(/-|\\+/).sort().join('-').replace('MINUS', '-').replace('PLUS', '+').toLowerCase();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (tmp === parts) {\r\n\t\t\t\t\t\treturn kb[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\t/**\r\n\t\t * part of the destroying of an instance. Used internally.\r\n\t\t * @private\r\n\t\t * @name teardown()\r\n\t\t */\r\n\t\tteardown : function () {\r\n\t\t\tthis.unbind();\r\n\t\t\tthis.element\r\n\t\t\t\t.removeClass('jstree')\r\n\t\t\t\t.removeData('jstree')\r\n\t\t\t\t.find(\"[class^='jstree']\")\r\n\t\t\t\t\t.addBack()\r\n\t\t\t\t\t.attr(\"class\", function () { return this.className.replace(/jstree[^ ]*|$/ig,''); });\r\n\t\t\tthis.element = null;\r\n\t\t},\r\n\t\t/**\r\n\t\t * bind all events. Used internally.\r\n\t\t * @private\r\n\t\t * @name bind()\r\n\t\t */\r\n\t\tbind : function () {\r\n\t\t\tvar word = '',\r\n\t\t\t\ttout = null,\r\n\t\t\t\twas_click = 0;\r\n\t\t\tthis.element\r\n\t\t\t\t.on(\"dblclick.jstree\", function (e) {\r\n\t\t\t\t\t\tif(e.target.tagName && e.target.tagName.toLowerCase() === \"input\") { return true; }\r\n\t\t\t\t\t\tif(document.selection && document.selection.empty) {\r\n\t\t\t\t\t\t\tdocument.selection.empty();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tif(window.getSelection) {\r\n\t\t\t\t\t\t\t\tvar sel = window.getSelection();\r\n\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\tsel.removeAllRanges();\r\n\t\t\t\t\t\t\t\t\tsel.collapse();\r\n\t\t\t\t\t\t\t\t} catch (ignore) { }\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t.on(\"mousedown.jstree\", $.proxy(function (e) {\r\n\t\t\t\t\t\tif(e.target === this.element[0]) {\r\n\t\t\t\t\t\t\te.preventDefault(); // prevent losing focus when clicking scroll arrows (FF, Chrome)\r\n\t\t\t\t\t\t\twas_click = +(new Date()); // ie does not allow to prevent losing focus\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"mousedown.jstree\", \".jstree-ocl\", function (e) {\r\n\t\t\t\t\t\te.preventDefault(); // prevent any node inside from losing focus when clicking the open/close icon\r\n\t\t\t\t\t})\r\n\t\t\t\t.on(\"click.jstree\", \".jstree-ocl\", $.proxy(function (e) {\r\n\t\t\t\t\t\tthis.toggle_node(e.target);\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"dblclick.jstree\", \".jstree-anchor\", $.proxy(function (e) {\r\n\t\t\t\t\t\tif(e.target.tagName && e.target.tagName.toLowerCase() === \"input\") { return true; }\r\n\t\t\t\t\t\tif(this.settings.core.dblclick_toggle) {\r\n\t\t\t\t\t\t\tthis.toggle_node(e.target);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"click.jstree\", \".jstree-anchor\", $.proxy(function (e) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\tif(e.currentTarget !== document.activeElement) { $(e.currentTarget).focus(); }\r\n\t\t\t\t\t\tthis.activate_node(e.currentTarget, e);\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on('keydown.jstree', '.jstree-anchor', $.proxy(function (e) {\r\n\t\t\t\t\t\tif(e.target.tagName && e.target.tagName.toLowerCase() === \"input\") { return true; }\r\n\t\t\t\t\t\tif(this._data.core.rtl) {\r\n\t\t\t\t\t\t\tif(e.which === 37) { e.which = 39; }\r\n\t\t\t\t\t\t\telse if(e.which === 39) { e.which = 37; }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar f = this._kbevent_to_func(e);\r\n\t\t\t\t\t\tif (f) {\r\n\t\t\t\t\t\t\tvar r = f.call(this, e);\r\n\t\t\t\t\t\t\tif (r === false || r === true) {\r\n\t\t\t\t\t\t\t\treturn r;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"load_node.jstree\", $.proxy(function (e, data) {\r\n\t\t\t\t\t\tif(data.status) {\r\n\t\t\t\t\t\t\tif(data.node.id === $.jstree.root && !this._data.core.loaded) {\r\n\t\t\t\t\t\t\t\tthis._data.core.loaded = true;\r\n\t\t\t\t\t\t\t\tif(this._firstChild(this.get_container_ul()[0])) {\r\n\t\t\t\t\t\t\t\t\tthis.element.attr('aria-activedescendant',this._firstChild(this.get_container_ul()[0]).id);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t\t\t * triggered after the root node is loaded for the first time\r\n\t\t\t\t\t\t\t\t * @event\r\n\t\t\t\t\t\t\t\t * @name loaded.jstree\r\n\t\t\t\t\t\t\t\t */\r\n\t\t\t\t\t\t\t\tthis.trigger(\"loaded\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(!this._data.core.ready) {\r\n\t\t\t\t\t\t\t\tsetTimeout($.proxy(function() {\r\n\t\t\t\t\t\t\t\t\tif(this.element && !this.get_container_ul().find('.jstree-loading').length) {\r\n\t\t\t\t\t\t\t\t\t\tthis._data.core.ready = true;\r\n\t\t\t\t\t\t\t\t\t\tif(this._data.core.selected.length) {\r\n\t\t\t\t\t\t\t\t\t\t\tif(this.settings.core.expand_selected_onload) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tvar tmp = [], i, j;\r\n\t\t\t\t\t\t\t\t\t\t\t\tfor(i = 0, j = this._data.core.selected.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ttmp = tmp.concat(this._model.data[this._data.core.selected[i]].parents);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\ttmp = $.vakata.array_unique(tmp);\r\n\t\t\t\t\t\t\t\t\t\t\t\tfor(i = 0, j = tmp.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.open_node(tmp[i], false, 0);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tthis.trigger('changed', { 'action' : 'ready', 'selected' : this._data.core.selected });\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t\t\t\t\t * triggered after all nodes are finished loading\r\n\t\t\t\t\t\t\t\t\t\t * @event\r\n\t\t\t\t\t\t\t\t\t\t * @name ready.jstree\r\n\t\t\t\t\t\t\t\t\t\t */\r\n\t\t\t\t\t\t\t\t\t\tthis.trigger(\"ready\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}, this), 0);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t// quick searching when the tree is focused\r\n\t\t\t\t.on('keypress.jstree', $.proxy(function (e) {\r\n\t\t\t\t\t\tif(e.target.tagName && e.target.tagName.toLowerCase() === \"input\") { return true; }\r\n\t\t\t\t\t\tif(tout) { clearTimeout(tout); }\r\n\t\t\t\t\t\ttout = setTimeout(function () {\r\n\t\t\t\t\t\t\tword = '';\r\n\t\t\t\t\t\t}, 500);\r\n\r\n\t\t\t\t\t\tvar chr = String.fromCharCode(e.which).toLowerCase(),\r\n\t\t\t\t\t\t\tcol = this.element.find('.jstree-anchor').filter(':visible'),\r\n\t\t\t\t\t\t\tind = col.index(document.activeElement) || 0,\r\n\t\t\t\t\t\t\tend = false;\r\n\t\t\t\t\t\tword += chr;\r\n\r\n\t\t\t\t\t\t// match for whole word from current node down (including the current node)\r\n\t\t\t\t\t\tif(word.length > 1) {\r\n\t\t\t\t\t\t\tcol.slice(ind).each($.proxy(function (i, v) {\r\n\t\t\t\t\t\t\t\tif($(v).text().toLowerCase().indexOf(word) === 0) {\r\n\t\t\t\t\t\t\t\t\t$(v).focus();\r\n\t\t\t\t\t\t\t\t\tend = true;\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}, this));\r\n\t\t\t\t\t\t\tif(end) { return; }\r\n\r\n\t\t\t\t\t\t\t// match for whole word from the beginning of the tree\r\n\t\t\t\t\t\t\tcol.slice(0, ind).each($.proxy(function (i, v) {\r\n\t\t\t\t\t\t\t\tif($(v).text().toLowerCase().indexOf(word) === 0) {\r\n\t\t\t\t\t\t\t\t\t$(v).focus();\r\n\t\t\t\t\t\t\t\t\tend = true;\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}, this));\r\n\t\t\t\t\t\t\tif(end) { return; }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// list nodes that start with that letter (only if word consists of a single char)\r\n\t\t\t\t\t\tif(new RegExp('^' + chr.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&') + '+$').test(word)) {\r\n\t\t\t\t\t\t\t// search for the next node starting with that letter\r\n\t\t\t\t\t\t\tcol.slice(ind + 1).each($.proxy(function (i, v) {\r\n\t\t\t\t\t\t\t\tif($(v).text().toLowerCase().charAt(0) === chr) {\r\n\t\t\t\t\t\t\t\t\t$(v).focus();\r\n\t\t\t\t\t\t\t\t\tend = true;\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}, this));\r\n\t\t\t\t\t\t\tif(end) { return; }\r\n\r\n\t\t\t\t\t\t\t// search from the beginning\r\n\t\t\t\t\t\t\tcol.slice(0, ind + 1).each($.proxy(function (i, v) {\r\n\t\t\t\t\t\t\t\tif($(v).text().toLowerCase().charAt(0) === chr) {\r\n\t\t\t\t\t\t\t\t\t$(v).focus();\r\n\t\t\t\t\t\t\t\t\tend = true;\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}, this));\r\n\t\t\t\t\t\t\tif(end) { return; }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t// THEME RELATED\r\n\t\t\t\t.on(\"init.jstree\", $.proxy(function () {\r\n\t\t\t\t\t\tvar s = this.settings.core.themes;\r\n\t\t\t\t\t\tthis._data.core.themes.dots\t\t\t= s.dots;\r\n\t\t\t\t\t\tthis._data.core.themes.stripes\t\t= s.stripes;\r\n\t\t\t\t\t\tthis._data.core.themes.icons\t\t= s.icons;\r\n\t\t\t\t\t\tthis._data.core.themes.ellipsis\t\t= s.ellipsis;\r\n\t\t\t\t\t\tthis.set_theme(s.name || \"default\", s.url);\r\n\t\t\t\t\t\tthis.set_theme_variant(s.variant);\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"loading.jstree\", $.proxy(function () {\r\n\t\t\t\t\t\tthis[ this._data.core.themes.dots ? \"show_dots\" : \"hide_dots\" ]();\r\n\t\t\t\t\t\tthis[ this._data.core.themes.icons ? \"show_icons\" : \"hide_icons\" ]();\r\n\t\t\t\t\t\tthis[ this._data.core.themes.stripes ? \"show_stripes\" : \"hide_stripes\" ]();\r\n\t\t\t\t\t\tthis[ this._data.core.themes.ellipsis ? \"show_ellipsis\" : \"hide_ellipsis\" ]();\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on('blur.jstree', '.jstree-anchor', $.proxy(function (e) {\r\n\t\t\t\t\t\tthis._data.core.focused = null;\r\n\t\t\t\t\t\t$(e.currentTarget).filter('.jstree-hovered').trigger('mouseleave');\r\n\t\t\t\t\t\tthis.element.attr('tabindex', '0');\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on('focus.jstree', '.jstree-anchor', $.proxy(function (e) {\r\n\t\t\t\t\t\tvar tmp = this.get_node(e.currentTarget);\r\n\t\t\t\t\t\tif(tmp && tmp.id) {\r\n\t\t\t\t\t\t\tthis._data.core.focused = tmp.id;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.element.find('.jstree-hovered').not(e.currentTarget).trigger('mouseleave');\r\n\t\t\t\t\t\t$(e.currentTarget).trigger('mouseenter');\r\n\t\t\t\t\t\tthis.element.attr('tabindex', '-1');\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on('focus.jstree', $.proxy(function () {\r\n\t\t\t\t\t\tif(+(new Date()) - was_click > 500 && !this._data.core.focused && this.settings.core.restore_focus) {\r\n\t\t\t\t\t\t\twas_click = 0;\r\n\t\t\t\t\t\t\tvar act = this.get_node(this.element.attr('aria-activedescendant'), true);\r\n\t\t\t\t\t\t\tif(act) {\r\n\t\t\t\t\t\t\t\tact.find('> .jstree-anchor').focus();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on('mouseenter.jstree', '.jstree-anchor', $.proxy(function (e) {\r\n\t\t\t\t\t\tthis.hover_node(e.currentTarget);\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on('mouseleave.jstree', '.jstree-anchor', $.proxy(function (e) {\r\n\t\t\t\t\t\tthis.dehover_node(e.currentTarget);\r\n\t\t\t\t\t}, this));\r\n\t\t},\r\n\t\t/**\r\n\t\t * part of the destroying of an instance. Used internally.\r\n\t\t * @private\r\n\t\t * @name unbind()\r\n\t\t */\r\n\t\tunbind : function () {\r\n\t\t\tthis.element.off('.jstree');\r\n\t\t\t$(document).off('.jstree-' + this._id);\r\n\t\t},\r\n\t\t/**\r\n\t\t * trigger an event. Used internally.\r\n\t\t * @private\r\n\t\t * @name trigger(ev [, data])\r\n\t\t * @param {String} ev the name of the event to trigger\r\n\t\t * @param {Object} data additional data to pass with the event\r\n\t\t */\r\n\t\ttrigger : function (ev, data) {\r\n\t\t\tif(!data) {\r\n\t\t\t\tdata = {};\r\n\t\t\t}\r\n\t\t\tdata.instance = this;\r\n\t\t\tthis.element.triggerHandler(ev.replace('.jstree','') + '.jstree', data);\r\n\t\t},\r\n\t\t/**\r\n\t\t * returns the jQuery extended instance container\r\n\t\t * @name get_container()\r\n\t\t * @return {jQuery}\r\n\t\t */\r\n\t\tget_container : function () {\r\n\t\t\treturn this.element;\r\n\t\t},\r\n\t\t/**\r\n\t\t * returns the jQuery extended main UL node inside the instance container. Used internally.\r\n\t\t * @private\r\n\t\t * @name get_container_ul()\r\n\t\t * @return {jQuery}\r\n\t\t */\r\n\t\tget_container_ul : function () {\r\n\t\t\treturn this.element.children(\".jstree-children\").first();\r\n\t\t},\r\n\t\t/**\r\n\t\t * gets string replacements (localization). Used internally.\r\n\t\t * @private\r\n\t\t * @name get_string(key)\r\n\t\t * @param {String} key\r\n\t\t * @return {String}\r\n\t\t */\r\n\t\tget_string : function (key) {\r\n\t\t\tvar a = this.settings.core.strings;\r\n\t\t\tif($.isFunction(a)) { return a.call(this, key); }\r\n\t\t\tif(a && a[key]) { return a[key]; }\r\n\t\t\treturn key;\r\n\t\t},\r\n\t\t/**\r\n\t\t * gets the first child of a DOM node. Used internally.\r\n\t\t * @private\r\n\t\t * @name _firstChild(dom)\r\n\t\t * @param {DOMElement} dom\r\n\t\t * @return {DOMElement}\r\n\t\t */\r\n\t\t_firstChild : function (dom) {\r\n\t\t\tdom = dom ? dom.firstChild : null;\r\n\t\t\twhile(dom !== null && dom.nodeType !== 1) {\r\n\t\t\t\tdom = dom.nextSibling;\r\n\t\t\t}\r\n\t\t\treturn dom;\r\n\t\t},\r\n\t\t/**\r\n\t\t * gets the next sibling of a DOM node. Used internally.\r\n\t\t * @private\r\n\t\t * @name _nextSibling(dom)\r\n\t\t * @param {DOMElement} dom\r\n\t\t * @return {DOMElement}\r\n\t\t */\r\n\t\t_nextSibling : function (dom) {\r\n\t\t\tdom = dom ? dom.nextSibling : null;\r\n\t\t\twhile(dom !== null && dom.nodeType !== 1) {\r\n\t\t\t\tdom = dom.nextSibling;\r\n\t\t\t}\r\n\t\t\treturn dom;\r\n\t\t},\r\n\t\t/**\r\n\t\t * gets the previous sibling of a DOM node. Used internally.\r\n\t\t * @private\r\n\t\t * @name _previousSibling(dom)\r\n\t\t * @param {DOMElement} dom\r\n\t\t * @return {DOMElement}\r\n\t\t */\r\n\t\t_previousSibling : function (dom) {\r\n\t\t\tdom = dom ? dom.previousSibling : null;\r\n\t\t\twhile(dom !== null && dom.nodeType !== 1) {\r\n\t\t\t\tdom = dom.previousSibling;\r\n\t\t\t}\r\n\t\t\treturn dom;\r\n\t\t},\r\n\t\t/**\r\n\t\t * get the JSON representation of a node (or the actual jQuery extended DOM node) by using any input (child DOM element, ID string, selector, etc)\r\n\t\t * @name get_node(obj [, as_dom])\r\n\t\t * @param {mixed} obj\r\n\t\t * @param {Boolean} as_dom\r\n\t\t * @return {Object|jQuery}\r\n\t\t */\r\n\t\tget_node : function (obj, as_dom) {\r\n\t\t\tif(obj && obj.id) {\r\n\t\t\t\tobj = obj.id;\r\n\t\t\t}\r\n\t\t\tif (obj instanceof $ && obj.length && obj[0].id) {\r\n\t\t\t\tobj = obj[0].id;\r\n\t\t\t}\r\n\t\t\tvar dom;\r\n\t\t\ttry {\r\n\t\t\t\tif(this._model.data[obj]) {\r\n\t\t\t\t\tobj = this._model.data[obj];\r\n\t\t\t\t}\r\n\t\t\t\telse if(typeof obj === \"string\" && this._model.data[obj.replace(/^#/, '')]) {\r\n\t\t\t\t\tobj = this._model.data[obj.replace(/^#/, '')];\r\n\t\t\t\t}\r\n\t\t\t\telse if(typeof obj === \"string\" && (dom = $('#' + obj.replace($.jstree.idregex,'\\\\$&'), this.element)).length && this._model.data[dom.closest('.jstree-node').attr('id')]) {\r\n\t\t\t\t\tobj = this._model.data[dom.closest('.jstree-node').attr('id')];\r\n\t\t\t\t}\r\n\t\t\t\telse if((dom = this.element.find(obj)).length && this._model.data[dom.closest('.jstree-node').attr('id')]) {\r\n\t\t\t\t\tobj = this._model.data[dom.closest('.jstree-node').attr('id')];\r\n\t\t\t\t}\r\n\t\t\t\telse if((dom = this.element.find(obj)).length && dom.hasClass('jstree')) {\r\n\t\t\t\t\tobj = this._model.data[$.jstree.root];\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(as_dom) {\r\n\t\t\t\t\tobj = obj.id === $.jstree.root ? this.element : $('#' + obj.id.replace($.jstree.idregex,'\\\\$&'), this.element);\r\n\t\t\t\t}\r\n\t\t\t\treturn obj;\r\n\t\t\t} catch (ex) { return false; }\r\n\t\t},\r\n\t\t/**\r\n\t\t * get the path to a node, either consisting of node texts, or of node IDs, optionally glued together (otherwise an array)\r\n\t\t * @name get_path(obj [, glue, ids])\r\n\t\t * @param {mixed} obj the node\r\n\t\t * @param {String} glue if you want the path as a string - pass the glue here (for example '/'), if a falsy value is supplied here, an array is returned\r\n\t\t * @param {Boolean} ids if set to true build the path using ID, otherwise node text is used\r\n\t\t * @return {mixed}\r\n\t\t */\r\n\t\tget_path : function (obj, glue, ids) {\r\n\t\t\tobj = obj.parents ? obj : this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === $.jstree.root || !obj.parents) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tvar i, j, p = [];\r\n\t\t\tp.push(ids ? obj.id : obj.text);\r\n\t\t\tfor(i = 0, j = obj.parents.length; i < j; i++) {\r\n\t\t\t\tp.push(ids ? obj.parents[i] : this.get_text(obj.parents[i]));\r\n\t\t\t}\r\n\t\t\tp = p.reverse().slice(1);\r\n\t\t\treturn glue ? p.join(glue) : p;\r\n\t\t},\r\n\t\t/**\r\n\t\t * get the next visible node that is below the `obj` node. If `strict` is set to `true` only sibling nodes are returned.\r\n\t\t * @name get_next_dom(obj [, strict])\r\n\t\t * @param {mixed} obj\r\n\t\t * @param {Boolean} strict\r\n\t\t * @return {jQuery}\r\n\t\t */\r\n\t\tget_next_dom : function (obj, strict) {\r\n\t\t\tvar tmp;\r\n\t\t\tobj = this.get_node(obj, true);\r\n\t\t\tif(obj[0] === this.element[0]) {\r\n\t\t\t\ttmp = this._firstChild(this.get_container_ul()[0]);\r\n\t\t\t\twhile (tmp && tmp.offsetHeight === 0) {\r\n\t\t\t\t\ttmp = this._nextSibling(tmp);\r\n\t\t\t\t}\r\n\t\t\t\treturn tmp ? $(tmp) : false;\r\n\t\t\t}\r\n\t\t\tif(!obj || !obj.length) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif(strict) {\r\n\t\t\t\ttmp = obj[0];\r\n\t\t\t\tdo {\r\n\t\t\t\t\ttmp = this._nextSibling(tmp);\r\n\t\t\t\t} while (tmp && tmp.offsetHeight === 0);\r\n\t\t\t\treturn tmp ? $(tmp) : false;\r\n\t\t\t}\r\n\t\t\tif(obj.hasClass(\"jstree-open\")) {\r\n\t\t\t\ttmp = this._firstChild(obj.children('.jstree-children')[0]);\r\n\t\t\t\twhile (tmp && tmp.offsetHeight === 0) {\r\n\t\t\t\t\ttmp = this._nextSibling(tmp);\r\n\t\t\t\t}\r\n\t\t\t\tif(tmp !== null) {\r\n\t\t\t\t\treturn $(tmp);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttmp = obj[0];\r\n\t\t\tdo {\r\n\t\t\t\ttmp = this._nextSibling(tmp);\r\n\t\t\t} while (tmp && tmp.offsetHeight === 0);\r\n\t\t\tif(tmp !== null) {\r\n\t\t\t\treturn $(tmp);\r\n\t\t\t}\r\n\t\t\treturn obj.parentsUntil(\".jstree\",\".jstree-node\").nextAll(\".jstree-node:visible\").first();\r\n\t\t},\r\n\t\t/**\r\n\t\t * get the previous visible node that is above the `obj` node. If `strict` is set to `true` only sibling nodes are returned.\r\n\t\t * @name get_prev_dom(obj [, strict])\r\n\t\t * @param {mixed} obj\r\n\t\t * @param {Boolean} strict\r\n\t\t * @return {jQuery}\r\n\t\t */\r\n\t\tget_prev_dom : function (obj, strict) {\r\n\t\t\tvar tmp;\r\n\t\t\tobj = this.get_node(obj, true);\r\n\t\t\tif(obj[0] === this.element[0]) {\r\n\t\t\t\ttmp = this.get_container_ul()[0].lastChild;\r\n\t\t\t\twhile (tmp && tmp.offsetHeight === 0) {\r\n\t\t\t\t\ttmp = this._previousSibling(tmp);\r\n\t\t\t\t}\r\n\t\t\t\treturn tmp ? $(tmp) : false;\r\n\t\t\t}\r\n\t\t\tif(!obj || !obj.length) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif(strict) {\r\n\t\t\t\ttmp = obj[0];\r\n\t\t\t\tdo {\r\n\t\t\t\t\ttmp = this._previousSibling(tmp);\r\n\t\t\t\t} while (tmp && tmp.offsetHeight === 0);\r\n\t\t\t\treturn tmp ? $(tmp) : false;\r\n\t\t\t}\r\n\t\t\ttmp = obj[0];\r\n\t\t\tdo {\r\n\t\t\t\ttmp = this._previousSibling(tmp);\r\n\t\t\t} while (tmp && tmp.offsetHeight === 0);\r\n\t\t\tif(tmp !== null) {\r\n\t\t\t\tobj = $(tmp);\r\n\t\t\t\twhile(obj.hasClass(\"jstree-open\")) {\r\n\t\t\t\t\tobj = obj.children(\".jstree-children\").first().children(\".jstree-node:visible:last\");\r\n\t\t\t\t}\r\n\t\t\t\treturn obj;\r\n\t\t\t}\r\n\t\t\ttmp = obj[0].parentNode.parentNode;\r\n\t\t\treturn tmp && tmp.className && tmp.className.indexOf('jstree-node') !== -1 ? $(tmp) : false;\r\n\t\t},\r\n\t\t/**\r\n\t\t * get the parent ID of a node\r\n\t\t * @name get_parent(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t * @return {String}\r\n\t\t */\r\n\t\tget_parent : function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === $.jstree.root) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\treturn obj.parent;\r\n\t\t},\r\n\t\t/**\r\n\t\t * get a jQuery collection of all the children of a node (node must be rendered), returns false on error\r\n\t\t * @name get_children_dom(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t * @return {jQuery}\r\n\t\t */\r\n\t\tget_children_dom : function (obj) {\r\n\t\t\tobj = this.get_node(obj, true);\r\n\t\t\tif(obj[0] === this.element[0]) {\r\n\t\t\t\treturn this.get_container_ul().children(\".jstree-node\");\r\n\t\t\t}\r\n\t\t\tif(!obj || !obj.length) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\treturn obj.children(\".jstree-children\").children(\".jstree-node\");\r\n\t\t},\r\n\t\t/**\r\n\t\t * checks if a node has children\r\n\t\t * @name is_parent(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t * @return {Boolean}\r\n\t\t */\r\n\t\tis_parent : function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\treturn obj && (obj.state.loaded === false || obj.children.length > 0);\r\n\t\t},\r\n\t\t/**\r\n\t\t * checks if a node is loaded (its children are available)\r\n\t\t * @name is_loaded(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t * @return {Boolean}\r\n\t\t */\r\n\t\tis_loaded : function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\treturn obj && obj.state.loaded;\r\n\t\t},\r\n\t\t/**\r\n\t\t * check if a node is currently loading (fetching children)\r\n\t\t * @name is_loading(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t * @return {Boolean}\r\n\t\t */\r\n\t\tis_loading : function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\treturn obj && obj.state && obj.state.loading;\r\n\t\t},\r\n\t\t/**\r\n\t\t * check if a node is opened\r\n\t\t * @name is_open(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t * @return {Boolean}\r\n\t\t */\r\n\t\tis_open : function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\treturn obj && obj.state.opened;\r\n\t\t},\r\n\t\t/**\r\n\t\t * check if a node is in a closed state\r\n\t\t * @name is_closed(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t * @return {Boolean}\r\n\t\t */\r\n\t\tis_closed : function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\treturn obj && this.is_parent(obj) && !obj.state.opened;\r\n\t\t},\r\n\t\t/**\r\n\t\t * check if a node has no children\r\n\t\t * @name is_leaf(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t * @return {Boolean}\r\n\t\t */\r\n\t\tis_leaf : function (obj) {\r\n\t\t\treturn !this.is_parent(obj);\r\n\t\t},\r\n\t\t/**\r\n\t\t * loads a node (fetches its children using the `core.data` setting). Multiple nodes can be passed to by using an array.\r\n\t\t * @name load_node(obj [, callback])\r\n\t\t * @param {mixed} obj\r\n\t\t * @param {function} callback a function to be executed once loading is complete, the function is executed in the instance's scope and receives two arguments - the node and a boolean status\r\n\t\t * @return {Boolean}\r\n\t\t * @trigger load_node.jstree\r\n\t\t */\r\n\t\tload_node : function (obj, callback) {\r\n\t\t\tvar k, l, i, j, c;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tthis._load_nodes(obj.slice(), callback);\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj) {\r\n\t\t\t\tif(callback) { callback.call(this, obj, false); }\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\t// if(obj.state.loading) { } // the node is already loading - just wait for it to load and invoke callback? but if called implicitly it should be loaded again?\r\n\t\t\tif(obj.state.loaded) {\r\n\t\t\t\tobj.state.loaded = false;\r\n\t\t\t\tfor(i = 0, j = obj.parents.length; i < j; i++) {\r\n\t\t\t\t\tthis._model.data[obj.parents[i]].children_d = $.vakata.array_filter(this._model.data[obj.parents[i]].children_d, function (v) {\r\n\t\t\t\t\t\treturn $.inArray(v, obj.children_d) === -1;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tfor(k = 0, l = obj.children_d.length; k < l; k++) {\r\n\t\t\t\t\tif(this._model.data[obj.children_d[k]].state.selected) {\r\n\t\t\t\t\t\tc = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdelete this._model.data[obj.children_d[k]];\r\n\t\t\t\t}\r\n\t\t\t\tif (c) {\r\n\t\t\t\t\tthis._data.core.selected = $.vakata.array_filter(this._data.core.selected, function (v) {\r\n\t\t\t\t\t\treturn $.inArray(v, obj.children_d) === -1;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tobj.children = [];\r\n\t\t\t\tobj.children_d = [];\r\n\t\t\t\tif(c) {\r\n\t\t\t\t\tthis.trigger('changed', { 'action' : 'load_node', 'node' : obj, 'selected' : this._data.core.selected });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tobj.state.failed = false;\r\n\t\t\tobj.state.loading = true;\r\n\t\t\tthis.get_node(obj, true).addClass(\"jstree-loading\").attr('aria-busy',true);\r\n\t\t\tthis._load_node(obj, $.proxy(function (status) {\r\n\t\t\t\tobj = this._model.data[obj.id];\r\n\t\t\t\tobj.state.loading = false;\r\n\t\t\t\tobj.state.loaded = status;\r\n\t\t\t\tobj.state.failed = !obj.state.loaded;\r\n\t\t\t\tvar dom = this.get_node(obj, true), i = 0, j = 0, m = this._model.data, has_children = false;\r\n\t\t\t\tfor(i = 0, j = obj.children.length; i < j; i++) {\r\n\t\t\t\t\tif(m[obj.children[i]] && !m[obj.children[i]].state.hidden) {\r\n\t\t\t\t\t\thas_children = true;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(obj.state.loaded && dom && dom.length) {\r\n\t\t\t\t\tdom.removeClass('jstree-closed jstree-open jstree-leaf');\r\n\t\t\t\t\tif (!has_children) {\r\n\t\t\t\t\t\tdom.addClass('jstree-leaf');\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tif (obj.id !== '#') {\r\n\t\t\t\t\t\t\tdom.addClass(obj.state.opened ? 'jstree-open' : 'jstree-closed');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tdom.removeClass(\"jstree-loading\").attr('aria-busy',false);\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered after a node is loaded\r\n\t\t\t\t * @event\r\n\t\t\t\t * @name load_node.jstree\r\n\t\t\t\t * @param {Object} node the node that was loading\r\n\t\t\t\t * @param {Boolean} status was the node loaded successfully\r\n\t\t\t\t */\r\n\t\t\t\tthis.trigger('load_node', { \"node\" : obj, \"status\" : status });\r\n\t\t\t\tif(callback) {\r\n\t\t\t\t\tcallback.call(this, obj, status);\r\n\t\t\t\t}\r\n\t\t\t}, this));\r\n\t\t\treturn true;\r\n\t\t},\r\n\t\t/**\r\n\t\t * load an array of nodes (will also load unavailable nodes as soon as they appear in the structure). Used internally.\r\n\t\t * @private\r\n\t\t * @name _load_nodes(nodes [, callback])\r\n\t\t * @param {array} nodes\r\n\t\t * @param {function} callback a function to be executed once loading is complete, the function is executed in the instance's scope and receives one argument - the array passed to _load_nodes\r\n\t\t */\r\n\t\t_load_nodes : function (nodes, callback, is_callback, force_reload) {\r\n\t\t\tvar r = true,\r\n\t\t\t\tc = function () { this._load_nodes(nodes, callback, true); },\r\n\t\t\t\tm = this._model.data, i, j, tmp = [];\r\n\t\t\tfor(i = 0, j = nodes.length; i < j; i++) {\r\n\t\t\t\tif(m[nodes[i]] && ( (!m[nodes[i]].state.loaded && !m[nodes[i]].state.failed) || (!is_callback && force_reload) )) {\r\n\t\t\t\t\tif(!this.is_loading(nodes[i])) {\r\n\t\t\t\t\t\tthis.load_node(nodes[i], c);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tr = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(r) {\r\n\t\t\t\tfor(i = 0, j = nodes.length; i < j; i++) {\r\n\t\t\t\t\tif(m[nodes[i]] && m[nodes[i]].state.loaded) {\r\n\t\t\t\t\t\ttmp.push(nodes[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(callback && !callback.done) {\r\n\t\t\t\t\tcallback.call(this, tmp);\r\n\t\t\t\t\tcallback.done = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * loads all unloaded nodes\r\n\t\t * @name load_all([obj, callback])\r\n\t\t * @param {mixed} obj the node to load recursively, omit to load all nodes in the tree\r\n\t\t * @param {function} callback a function to be executed once loading all the nodes is complete,\r\n\t\t * @trigger load_all.jstree\r\n\t\t */\r\n\t\tload_all : function (obj, callback) {\r\n\t\t\tif(!obj) { obj = $.jstree.root; }\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj) { return false; }\r\n\t\t\tvar to_load = [],\r\n\t\t\t\tm = this._model.data,\r\n\t\t\t\tc = m[obj.id].children_d,\r\n\t\t\t\ti, j;\r\n\t\t\tif(obj.state && !obj.state.loaded) {\r\n\t\t\t\tto_load.push(obj.id);\r\n\t\t\t}\r\n\t\t\tfor(i = 0, j = c.length; i < j; i++) {\r\n\t\t\t\tif(m[c[i]] && m[c[i]].state && !m[c[i]].state.loaded) {\r\n\t\t\t\t\tto_load.push(c[i]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(to_load.length) {\r\n\t\t\t\tthis._load_nodes(to_load, function () {\r\n\t\t\t\t\tthis.load_all(obj, callback);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered after a load_all call completes\r\n\t\t\t\t * @event\r\n\t\t\t\t * @name load_all.jstree\r\n\t\t\t\t * @param {Object} node the recursively loaded node\r\n\t\t\t\t */\r\n\t\t\t\tif(callback) { callback.call(this, obj); }\r\n\t\t\t\tthis.trigger('load_all', { \"node\" : obj });\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * handles the actual loading of a node. Used only internally.\r\n\t\t * @private\r\n\t\t * @name _load_node(obj [, callback])\r\n\t\t * @param {mixed} obj\r\n\t\t * @param {function} callback a function to be executed once loading is complete, the function is executed in the instance's scope and receives one argument - a boolean status\r\n\t\t * @return {Boolean}\r\n\t\t */\r\n\t\t_load_node : function (obj, callback) {\r\n\t\t\tvar s = this.settings.core.data, t;\r\n\t\t\tvar notTextOrCommentNode = function notTextOrCommentNode () {\r\n\t\t\t\treturn this.nodeType !== 3 && this.nodeType !== 8;\r\n\t\t\t};\r\n\t\t\t// use original HTML\r\n\t\t\tif(!s) {\r\n\t\t\t\tif(obj.id === $.jstree.root) {\r\n\t\t\t\t\treturn this._append_html_data(obj, this._data.core.original_container_html.clone(true), function (status) {\r\n\t\t\t\t\t\tcallback.call(this, status);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\treturn callback.call(this, false);\r\n\t\t\t\t}\r\n\t\t\t\t// return callback.call(this, obj.id === $.jstree.root ? this._append_html_data(obj, this._data.core.original_container_html.clone(true)) : false);\r\n\t\t\t}\r\n\t\t\tif($.isFunction(s)) {\r\n\t\t\t\treturn s.call(this, obj, $.proxy(function (d) {\r\n\t\t\t\t\tif(d === false) {\r\n\t\t\t\t\t\tcallback.call(this, false);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthis[typeof d === 'string' ? '_append_html_data' : '_append_json_data'](obj, typeof d === 'string' ? $($.parseHTML(d)).filter(notTextOrCommentNode) : d, function (status) {\r\n\t\t\t\t\t\t\tcallback.call(this, status);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// return d === false ? callback.call(this, false) : callback.call(this, this[typeof d === 'string' ? '_append_html_data' : '_append_json_data'](obj, typeof d === 'string' ? $(d) : d));\r\n\t\t\t\t}, this));\r\n\t\t\t}\r\n\t\t\tif(typeof s === 'object') {\r\n\t\t\t\tif(s.url) {\r\n\t\t\t\t\ts = $.extend(true, {}, s);\r\n\t\t\t\t\tif($.isFunction(s.url)) {\r\n\t\t\t\t\t\ts.url = s.url.call(this, obj);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif($.isFunction(s.data)) {\r\n\t\t\t\t\t\ts.data = s.data.call(this, obj);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn $.ajax(s)\r\n\t\t\t\t\t\t.done($.proxy(function (d,t,x) {\r\n\t\t\t\t\t\t\t\tvar type = x.getResponseHeader('Content-Type');\r\n\t\t\t\t\t\t\t\tif((type && type.indexOf('json') !== -1) || typeof d === \"object\") {\r\n\t\t\t\t\t\t\t\t\treturn this._append_json_data(obj, d, function (status) { callback.call(this, status); });\r\n\t\t\t\t\t\t\t\t\t//return callback.call(this, this._append_json_data(obj, d));\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif((type && type.indexOf('html') !== -1) || typeof d === \"string\") {\r\n\t\t\t\t\t\t\t\t\treturn this._append_html_data(obj, $($.parseHTML(d)).filter(notTextOrCommentNode), function (status) { callback.call(this, status); });\r\n\t\t\t\t\t\t\t\t\t// return callback.call(this, this._append_html_data(obj, $(d)));\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tthis._data.core.last_error = { 'error' : 'ajax', 'plugin' : 'core', 'id' : 'core_04', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id, 'xhr' : x }) };\r\n\t\t\t\t\t\t\t\tthis.settings.core.error.call(this, this._data.core.last_error);\r\n\t\t\t\t\t\t\t\treturn callback.call(this, false);\r\n\t\t\t\t\t\t\t}, this))\r\n\t\t\t\t\t\t.fail($.proxy(function (f) {\r\n\t\t\t\t\t\t\t\tthis._data.core.last_error = { 'error' : 'ajax', 'plugin' : 'core', 'id' : 'core_04', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id, 'xhr' : f }) };\r\n\t\t\t\t\t\t\t\tcallback.call(this, false);\r\n\t\t\t\t\t\t\t\tthis.settings.core.error.call(this, this._data.core.last_error);\r\n\t\t\t\t\t\t\t}, this));\r\n\t\t\t\t}\r\n\t\t\t\tif ($.isArray(s)) {\r\n\t\t\t\t\tt = $.extend(true, [], s);\r\n\t\t\t\t} else if ($.isPlainObject(s)) {\r\n\t\t\t\t\tt = $.extend(true, {}, s);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tt = s;\r\n\t\t\t\t}\r\n\t\t\t\tif(obj.id === $.jstree.root) {\r\n\t\t\t\t\treturn this._append_json_data(obj, t, function (status) {\r\n\t\t\t\t\t\tcallback.call(this, status);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis._data.core.last_error = { 'error' : 'nodata', 'plugin' : 'core', 'id' : 'core_05', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id }) };\r\n\t\t\t\t\tthis.settings.core.error.call(this, this._data.core.last_error);\r\n\t\t\t\t\treturn callback.call(this, false);\r\n\t\t\t\t}\r\n\t\t\t\t//return callback.call(this, (obj.id === $.jstree.root ? this._append_json_data(obj, t) : false) );\r\n\t\t\t}\r\n\t\t\tif(typeof s === 'string') {\r\n\t\t\t\tif(obj.id === $.jstree.root) {\r\n\t\t\t\t\treturn this._append_html_data(obj, $($.parseHTML(s)).filter(notTextOrCommentNode), function (status) {\r\n\t\t\t\t\t\tcallback.call(this, status);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis._data.core.last_error = { 'error' : 'nodata', 'plugin' : 'core', 'id' : 'core_06', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id }) };\r\n\t\t\t\t\tthis.settings.core.error.call(this, this._data.core.last_error);\r\n\t\t\t\t\treturn callback.call(this, false);\r\n\t\t\t\t}\r\n\t\t\t\t//return callback.call(this, (obj.id === $.jstree.root ? this._append_html_data(obj, $(s)) : false) );\r\n\t\t\t}\r\n\t\t\treturn callback.call(this, false);\r\n\t\t},\r\n\t\t/**\r\n\t\t * adds a node to the list of nodes to redraw. Used only internally.\r\n\t\t * @private\r\n\t\t * @name _node_changed(obj [, callback])\r\n\t\t * @param {mixed} obj\r\n\t\t */\r\n\t\t_node_changed : function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n if (obj && $.inArray(obj.id, this._model.changed) === -1) {\r\n\t\t\t\tthis._model.changed.push(obj.id);\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * appends HTML content to the tree. Used internally.\r\n\t\t * @private\r\n\t\t * @name _append_html_data(obj, data)\r\n\t\t * @param {mixed} obj the node to append to\r\n\t\t * @param {String} data the HTML string to parse and append\r\n\t\t * @trigger model.jstree, changed.jstree\r\n\t\t */\r\n\t\t_append_html_data : function (dom, data, cb) {\r\n\t\t\tdom = this.get_node(dom);\r\n\t\t\tdom.children = [];\r\n\t\t\tdom.children_d = [];\r\n\t\t\tvar dat = data.is('ul') ? data.children() : data,\r\n\t\t\t\tpar = dom.id,\r\n\t\t\t\tchd = [],\r\n\t\t\t\tdpc = [],\r\n\t\t\t\tm = this._model.data,\r\n\t\t\t\tp = m[par],\r\n\t\t\t\ts = this._data.core.selected.length,\r\n\t\t\t\ttmp, i, j;\r\n\t\t\tdat.each($.proxy(function (i, v) {\r\n\t\t\t\ttmp = this._parse_model_from_html($(v), par, p.parents.concat());\r\n\t\t\t\tif(tmp) {\r\n\t\t\t\t\tchd.push(tmp);\r\n\t\t\t\t\tdpc.push(tmp);\r\n\t\t\t\t\tif(m[tmp].children_d.length) {\r\n\t\t\t\t\t\tdpc = dpc.concat(m[tmp].children_d);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}, this));\r\n\t\t\tp.children = chd;\r\n\t\t\tp.children_d = dpc;\r\n\t\t\tfor(i = 0, j = p.parents.length; i < j; i++) {\r\n\t\t\t\tm[p.parents[i]].children_d = m[p.parents[i]].children_d.concat(dpc);\r\n\t\t\t}\r\n\t\t\t/**\r\n\t\t\t * triggered when new data is inserted to the tree model\r\n\t\t\t * @event\r\n\t\t\t * @name model.jstree\r\n\t\t\t * @param {Array} nodes an array of node IDs\r\n\t\t\t * @param {String} parent the parent ID of the nodes\r\n\t\t\t */\r\n\t\t\tthis.trigger('model', { \"nodes\" : dpc, 'parent' : par });\r\n\t\t\tif(par !== $.jstree.root) {\r\n\t\t\t\tthis._node_changed(par);\r\n\t\t\t\tthis.redraw();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.get_container_ul().children('.jstree-initial-node').remove();\r\n\t\t\t\tthis.redraw(true);\r\n\t\t\t}\r\n\t\t\tif(this._data.core.selected.length !== s) {\r\n\t\t\t\tthis.trigger('changed', { 'action' : 'model', 'selected' : this._data.core.selected });\r\n\t\t\t}\r\n\t\t\tcb.call(this, true);\r\n\t\t},\r\n\t\t/**\r\n\t\t * appends JSON content to the tree. Used internally.\r\n\t\t * @private\r\n\t\t * @name _append_json_data(obj, data)\r\n\t\t * @param {mixed} obj the node to append to\r\n\t\t * @param {String} data the JSON object to parse and append\r\n\t\t * @param {Boolean} force_processing internal param - do not set\r\n\t\t * @trigger model.jstree, changed.jstree\r\n\t\t */\r\n\t\t_append_json_data : function (dom, data, cb, force_processing) {\r\n\t\t\tif(this.element === null) { return; }\r\n\t\t\tdom = this.get_node(dom);\r\n\t\t\tdom.children = [];\r\n\t\t\tdom.children_d = [];\r\n\t\t\t// *%$@!!!\r\n\t\t\tif(data.d) {\r\n\t\t\t\tdata = data.d;\r\n\t\t\t\tif(typeof data === \"string\") {\r\n\t\t\t\t\tdata = JSON.parse(data);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(!$.isArray(data)) { data = [data]; }\r\n\t\t\tvar w = null,\r\n\t\t\t\targs = {\r\n\t\t\t\t\t'df'\t: this._model.default_state,\r\n\t\t\t\t\t'dat'\t: data,\r\n\t\t\t\t\t'par'\t: dom.id,\r\n\t\t\t\t\t'm'\t\t: this._model.data,\r\n\t\t\t\t\t't_id'\t: this._id,\r\n\t\t\t\t\t't_cnt'\t: this._cnt,\r\n\t\t\t\t\t'sel'\t: this._data.core.selected\r\n\t\t\t\t},\r\n\t\t\t\tinst = this,\r\n\t\t\t\tfunc = function (data, undefined) {\r\n\t\t\t\t\tif(data.data) { data = data.data; }\r\n\t\t\t\t\tvar dat = data.dat,\r\n\t\t\t\t\t\tpar = data.par,\r\n\t\t\t\t\t\tchd = [],\r\n\t\t\t\t\t\tdpc = [],\r\n\t\t\t\t\t\tadd = [],\r\n\t\t\t\t\t\tdf = data.df,\r\n\t\t\t\t\t\tt_id = data.t_id,\r\n\t\t\t\t\t\tt_cnt = data.t_cnt,\r\n\t\t\t\t\t\tm = data.m,\r\n\t\t\t\t\t\tp = m[par],\r\n\t\t\t\t\t\tsel = data.sel,\r\n\t\t\t\t\t\ttmp, i, j, rslt,\r\n\t\t\t\t\t\tparse_flat = function (d, p, ps) {\r\n\t\t\t\t\t\t\tif(!ps) { ps = []; }\r\n\t\t\t\t\t\t\telse { ps = ps.concat(); }\r\n\t\t\t\t\t\t\tif(p) { ps.unshift(p); }\r\n\t\t\t\t\t\t\tvar tid = d.id.toString(),\r\n\t\t\t\t\t\t\t\ti, j, c, e,\r\n\t\t\t\t\t\t\t\ttmp = {\r\n\t\t\t\t\t\t\t\t\tid\t\t\t: tid,\r\n\t\t\t\t\t\t\t\t\ttext\t\t: d.text || '',\r\n\t\t\t\t\t\t\t\t\ticon\t\t: d.icon !== undefined ? d.icon : true,\r\n\t\t\t\t\t\t\t\t\tparent\t\t: p,\r\n\t\t\t\t\t\t\t\t\tparents\t\t: ps,\r\n\t\t\t\t\t\t\t\t\tchildren\t: d.children || [],\r\n\t\t\t\t\t\t\t\t\tchildren_d\t: d.children_d || [],\r\n\t\t\t\t\t\t\t\t\tdata\t\t: d.data,\r\n\t\t\t\t\t\t\t\t\tstate\t\t: { },\r\n\t\t\t\t\t\t\t\t\tli_attr\t\t: { id : false },\r\n\t\t\t\t\t\t\t\t\ta_attr\t\t: { href : '#' },\r\n\t\t\t\t\t\t\t\t\toriginal\t: false\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\tfor(i in df) {\r\n\t\t\t\t\t\t\t\tif(df.hasOwnProperty(i)) {\r\n\t\t\t\t\t\t\t\t\ttmp.state[i] = df[i];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(d && d.data && d.data.jstree && d.data.jstree.icon) {\r\n\t\t\t\t\t\t\t\ttmp.icon = d.data.jstree.icon;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(tmp.icon === undefined || tmp.icon === null || tmp.icon === \"\") {\r\n\t\t\t\t\t\t\t\ttmp.icon = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(d && d.data) {\r\n\t\t\t\t\t\t\t\ttmp.data = d.data;\r\n\t\t\t\t\t\t\t\tif(d.data.jstree) {\r\n\t\t\t\t\t\t\t\t\tfor(i in d.data.jstree) {\r\n\t\t\t\t\t\t\t\t\t\tif(d.data.jstree.hasOwnProperty(i)) {\r\n\t\t\t\t\t\t\t\t\t\t\ttmp.state[i] = d.data.jstree[i];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(d && typeof d.state === 'object') {\r\n\t\t\t\t\t\t\t\tfor (i in d.state) {\r\n\t\t\t\t\t\t\t\t\tif(d.state.hasOwnProperty(i)) {\r\n\t\t\t\t\t\t\t\t\t\ttmp.state[i] = d.state[i];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(d && typeof d.li_attr === 'object') {\r\n\t\t\t\t\t\t\t\tfor (i in d.li_attr) {\r\n\t\t\t\t\t\t\t\t\tif(d.li_attr.hasOwnProperty(i)) {\r\n\t\t\t\t\t\t\t\t\t\ttmp.li_attr[i] = d.li_attr[i];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(!tmp.li_attr.id) {\r\n\t\t\t\t\t\t\t\ttmp.li_attr.id = tid;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(d && typeof d.a_attr === 'object') {\r\n\t\t\t\t\t\t\t\tfor (i in d.a_attr) {\r\n\t\t\t\t\t\t\t\t\tif(d.a_attr.hasOwnProperty(i)) {\r\n\t\t\t\t\t\t\t\t\t\ttmp.a_attr[i] = d.a_attr[i];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(d && d.children && d.children === true) {\r\n\t\t\t\t\t\t\t\ttmp.state.loaded = false;\r\n\t\t\t\t\t\t\t\ttmp.children = [];\r\n\t\t\t\t\t\t\t\ttmp.children_d = [];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tm[tmp.id] = tmp;\r\n\t\t\t\t\t\t\tfor(i = 0, j = tmp.children.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\tc = parse_flat(m[tmp.children[i]], tmp.id, ps);\r\n\t\t\t\t\t\t\t\te = m[c];\r\n\t\t\t\t\t\t\t\ttmp.children_d.push(c);\r\n\t\t\t\t\t\t\t\tif(e.children_d.length) {\r\n\t\t\t\t\t\t\t\t\ttmp.children_d = tmp.children_d.concat(e.children_d);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tdelete d.data;\r\n\t\t\t\t\t\t\tdelete d.children;\r\n\t\t\t\t\t\t\tm[tmp.id].original = d;\r\n\t\t\t\t\t\t\tif(tmp.state.selected) {\r\n\t\t\t\t\t\t\t\tadd.push(tmp.id);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn tmp.id;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tparse_nest = function (d, p, ps) {\r\n\t\t\t\t\t\t\tif(!ps) { ps = []; }\r\n\t\t\t\t\t\t\telse { ps = ps.concat(); }\r\n\t\t\t\t\t\t\tif(p) { ps.unshift(p); }\r\n\t\t\t\t\t\t\tvar tid = false, i, j, c, e, tmp;\r\n\t\t\t\t\t\t\tdo {\r\n\t\t\t\t\t\t\t\ttid = 'j' + t_id + '_' + (++t_cnt);\r\n\t\t\t\t\t\t\t} while(m[tid]);\r\n\r\n\t\t\t\t\t\t\ttmp = {\r\n\t\t\t\t\t\t\t\tid\t\t\t: false,\r\n\t\t\t\t\t\t\t\ttext\t\t: typeof d === 'string' ? d : '',\r\n\t\t\t\t\t\t\t\ticon\t\t: typeof d === 'object' && d.icon !== undefined ? d.icon : true,\r\n\t\t\t\t\t\t\t\tparent\t\t: p,\r\n\t\t\t\t\t\t\t\tparents\t\t: ps,\r\n\t\t\t\t\t\t\t\tchildren\t: [],\r\n\t\t\t\t\t\t\t\tchildren_d\t: [],\r\n\t\t\t\t\t\t\t\tdata\t\t: null,\r\n\t\t\t\t\t\t\t\tstate\t\t: { },\r\n\t\t\t\t\t\t\t\tli_attr\t\t: { id : false },\r\n\t\t\t\t\t\t\t\ta_attr\t\t: { href : '#' },\r\n\t\t\t\t\t\t\t\toriginal\t: false\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\tfor(i in df) {\r\n\t\t\t\t\t\t\t\tif(df.hasOwnProperty(i)) {\r\n\t\t\t\t\t\t\t\t\ttmp.state[i] = df[i];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(d && d.id) { tmp.id = d.id.toString(); }\r\n\t\t\t\t\t\t\tif(d && d.text) { tmp.text = d.text; }\r\n\t\t\t\t\t\t\tif(d && d.data && d.data.jstree && d.data.jstree.icon) {\r\n\t\t\t\t\t\t\t\ttmp.icon = d.data.jstree.icon;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(tmp.icon === undefined || tmp.icon === null || tmp.icon === \"\") {\r\n\t\t\t\t\t\t\t\ttmp.icon = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(d && d.data) {\r\n\t\t\t\t\t\t\t\ttmp.data = d.data;\r\n\t\t\t\t\t\t\t\tif(d.data.jstree) {\r\n\t\t\t\t\t\t\t\t\tfor(i in d.data.jstree) {\r\n\t\t\t\t\t\t\t\t\t\tif(d.data.jstree.hasOwnProperty(i)) {\r\n\t\t\t\t\t\t\t\t\t\t\ttmp.state[i] = d.data.jstree[i];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(d && typeof d.state === 'object') {\r\n\t\t\t\t\t\t\t\tfor (i in d.state) {\r\n\t\t\t\t\t\t\t\t\tif(d.state.hasOwnProperty(i)) {\r\n\t\t\t\t\t\t\t\t\t\ttmp.state[i] = d.state[i];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(d && typeof d.li_attr === 'object') {\r\n\t\t\t\t\t\t\t\tfor (i in d.li_attr) {\r\n\t\t\t\t\t\t\t\t\tif(d.li_attr.hasOwnProperty(i)) {\r\n\t\t\t\t\t\t\t\t\t\ttmp.li_attr[i] = d.li_attr[i];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(tmp.li_attr.id && !tmp.id) {\r\n\t\t\t\t\t\t\t\ttmp.id = tmp.li_attr.id.toString();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(!tmp.id) {\r\n\t\t\t\t\t\t\t\ttmp.id = tid;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(!tmp.li_attr.id) {\r\n\t\t\t\t\t\t\t\ttmp.li_attr.id = tmp.id;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(d && typeof d.a_attr === 'object') {\r\n\t\t\t\t\t\t\t\tfor (i in d.a_attr) {\r\n\t\t\t\t\t\t\t\t\tif(d.a_attr.hasOwnProperty(i)) {\r\n\t\t\t\t\t\t\t\t\t\ttmp.a_attr[i] = d.a_attr[i];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(d && d.children && d.children.length) {\r\n\t\t\t\t\t\t\t\tfor(i = 0, j = d.children.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\t\tc = parse_nest(d.children[i], tmp.id, ps);\r\n\t\t\t\t\t\t\t\t\te = m[c];\r\n\t\t\t\t\t\t\t\t\ttmp.children.push(c);\r\n\t\t\t\t\t\t\t\t\tif(e.children_d.length) {\r\n\t\t\t\t\t\t\t\t\t\ttmp.children_d = tmp.children_d.concat(e.children_d);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\ttmp.children_d = tmp.children_d.concat(tmp.children);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(d && d.children && d.children === true) {\r\n\t\t\t\t\t\t\t\ttmp.state.loaded = false;\r\n\t\t\t\t\t\t\t\ttmp.children = [];\r\n\t\t\t\t\t\t\t\ttmp.children_d = [];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tdelete d.data;\r\n\t\t\t\t\t\t\tdelete d.children;\r\n\t\t\t\t\t\t\ttmp.original = d;\r\n\t\t\t\t\t\t\tm[tmp.id] = tmp;\r\n\t\t\t\t\t\t\tif(tmp.state.selected) {\r\n\t\t\t\t\t\t\t\tadd.push(tmp.id);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn tmp.id;\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\tif(dat.length && dat[0].id !== undefined && dat[0].parent !== undefined) {\r\n\t\t\t\t\t\t// Flat JSON support (for easy import from DB):\r\n\t\t\t\t\t\t// 1) convert to object (foreach)\r\n\t\t\t\t\t\tfor(i = 0, j = dat.length; i < j; i++) {\r\n\t\t\t\t\t\t\tif(!dat[i].children) {\r\n\t\t\t\t\t\t\t\tdat[i].children = [];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(!dat[i].state) {\r\n\t\t\t\t\t\t\t\tdat[i].state = {};\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tm[dat[i].id.toString()] = dat[i];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// 2) populate children (foreach)\r\n\t\t\t\t\t\tfor(i = 0, j = dat.length; i < j; i++) {\r\n\t\t\t\t\t\t\tif (!m[dat[i].parent.toString()]) {\r\n\t\t\t\t\t\t\t\tif (typeof inst !== \"undefined\") {\r\n\t\t\t\t\t\t\t\t\tinst._data.core.last_error = { 'error' : 'parse', 'plugin' : 'core', 'id' : 'core_07', 'reason' : 'Node with invalid parent', 'data' : JSON.stringify({ 'id' : dat[i].id.toString(), 'parent' : dat[i].parent.toString() }) };\r\n\t\t\t\t\t\t\t\t\tinst.settings.core.error.call(inst, inst._data.core.last_error);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tm[dat[i].parent.toString()].children.push(dat[i].id.toString());\r\n\t\t\t\t\t\t\t// populate parent.children_d\r\n\t\t\t\t\t\t\tp.children_d.push(dat[i].id.toString());\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// 3) normalize && populate parents and children_d with recursion\r\n\t\t\t\t\t\tfor(i = 0, j = p.children.length; i < j; i++) {\r\n\t\t\t\t\t\t\ttmp = parse_flat(m[p.children[i]], par, p.parents.concat());\r\n\t\t\t\t\t\t\tdpc.push(tmp);\r\n\t\t\t\t\t\t\tif(m[tmp].children_d.length) {\r\n\t\t\t\t\t\t\t\tdpc = dpc.concat(m[tmp].children_d);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfor(i = 0, j = p.parents.length; i < j; i++) {\r\n\t\t\t\t\t\t\tm[p.parents[i]].children_d = m[p.parents[i]].children_d.concat(dpc);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t// ?) three_state selection - p.state.selected && t - (if three_state foreach(dat => ch) -> foreach(parents) if(parent.selected) child.selected = true;\r\n\t\t\t\t\t\trslt = {\r\n\t\t\t\t\t\t\t'cnt' : t_cnt,\r\n\t\t\t\t\t\t\t'mod' : m,\r\n\t\t\t\t\t\t\t'sel' : sel,\r\n\t\t\t\t\t\t\t'par' : par,\r\n\t\t\t\t\t\t\t'dpc' : dpc,\r\n\t\t\t\t\t\t\t'add' : add\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tfor(i = 0, j = dat.length; i < j; i++) {\r\n\t\t\t\t\t\t\ttmp = parse_nest(dat[i], par, p.parents.concat());\r\n\t\t\t\t\t\t\tif(tmp) {\r\n\t\t\t\t\t\t\t\tchd.push(tmp);\r\n\t\t\t\t\t\t\t\tdpc.push(tmp);\r\n\t\t\t\t\t\t\t\tif(m[tmp].children_d.length) {\r\n\t\t\t\t\t\t\t\t\tdpc = dpc.concat(m[tmp].children_d);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tp.children = chd;\r\n\t\t\t\t\t\tp.children_d = dpc;\r\n\t\t\t\t\t\tfor(i = 0, j = p.parents.length; i < j; i++) {\r\n\t\t\t\t\t\t\tm[p.parents[i]].children_d = m[p.parents[i]].children_d.concat(dpc);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\trslt = {\r\n\t\t\t\t\t\t\t'cnt' : t_cnt,\r\n\t\t\t\t\t\t\t'mod' : m,\r\n\t\t\t\t\t\t\t'sel' : sel,\r\n\t\t\t\t\t\t\t'par' : par,\r\n\t\t\t\t\t\t\t'dpc' : dpc,\r\n\t\t\t\t\t\t\t'add' : add\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(typeof window === 'undefined' || typeof window.document === 'undefined') {\r\n\t\t\t\t\t\tpostMessage(rslt);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\treturn rslt;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\trslt = function (rslt, worker) {\r\n\t\t\t\t\tif(this.element === null) { return; }\r\n\t\t\t\t\tthis._cnt = rslt.cnt;\r\n\t\t\t\t\tvar i, m = this._model.data;\r\n\t\t\t\t\tfor (i in m) {\r\n\t\t\t\t\t\tif (m.hasOwnProperty(i) && m[i].state && m[i].state.loading && rslt.mod[i]) {\r\n\t\t\t\t\t\t\trslt.mod[i].state.loading = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis._model.data = rslt.mod; // breaks the reference in load_node - careful\r\n\r\n\t\t\t\t\tif(worker) {\r\n\t\t\t\t\t\tvar j, a = rslt.add, r = rslt.sel, s = this._data.core.selected.slice();\r\n\t\t\t\t\t\tm = this._model.data;\r\n\t\t\t\t\t\t// if selection was changed while calculating in worker\r\n\t\t\t\t\t\tif(r.length !== s.length || $.vakata.array_unique(r.concat(s)).length !== r.length) {\r\n\t\t\t\t\t\t\t// deselect nodes that are no longer selected\r\n\t\t\t\t\t\t\tfor(i = 0, j = r.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\tif($.inArray(r[i], a) === -1 && $.inArray(r[i], s) === -1) {\r\n\t\t\t\t\t\t\t\t\tm[r[i]].state.selected = false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// select nodes that were selected in the mean time\r\n\t\t\t\t\t\t\tfor(i = 0, j = s.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\tif($.inArray(s[i], r) === -1) {\r\n\t\t\t\t\t\t\t\t\tm[s[i]].state.selected = true;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(rslt.add.length) {\r\n\t\t\t\t\t\tthis._data.core.selected = this._data.core.selected.concat(rslt.add);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.trigger('model', { \"nodes\" : rslt.dpc, 'parent' : rslt.par });\r\n\r\n\t\t\t\t\tif(rslt.par !== $.jstree.root) {\r\n\t\t\t\t\t\tthis._node_changed(rslt.par);\r\n\t\t\t\t\t\tthis.redraw();\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t// this.get_container_ul().children('.jstree-initial-node').remove();\r\n\t\t\t\t\t\tthis.redraw(true);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(rslt.add.length) {\r\n\t\t\t\t\t\tthis.trigger('changed', { 'action' : 'model', 'selected' : this._data.core.selected });\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// If no worker, try to mimic worker behavioour, by invoking cb asynchronously\r\n\t\t\t\t\tif (!worker && setImmediate) {\r\n\t\t\t\t\t\tsetImmediate(function(){\r\n\t\t\t\t\t\t\tcb.call(inst, true);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tcb.call(inst, true);\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\tif(this.settings.core.worker && window.Blob && window.URL && window.Worker) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tif(this._wrk === null) {\r\n\t\t\t\t\t\tthis._wrk = window.URL.createObjectURL(\r\n\t\t\t\t\t\t\tnew window.Blob(\r\n\t\t\t\t\t\t\t\t['self.onmessage = ' + func.toString()],\r\n\t\t\t\t\t\t\t\t{type:\"text/javascript\"}\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(!this._data.core.working || force_processing) {\r\n\t\t\t\t\t\tthis._data.core.working = true;\r\n\t\t\t\t\t\tw = new window.Worker(this._wrk);\r\n\t\t\t\t\t\tw.onmessage = $.proxy(function (e) {\r\n\t\t\t\t\t\t\trslt.call(this, e.data, true);\r\n\t\t\t\t\t\t\ttry { w.terminate(); w = null; } catch(ignore) { }\r\n\t\t\t\t\t\t\tif(this._data.core.worker_queue.length) {\r\n\t\t\t\t\t\t\t\tthis._append_json_data.apply(this, this._data.core.worker_queue.shift());\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tthis._data.core.working = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, this);\r\n\t\t\t\t\t\tif(!args.par) {\r\n\t\t\t\t\t\t\tif(this._data.core.worker_queue.length) {\r\n\t\t\t\t\t\t\t\tthis._append_json_data.apply(this, this._data.core.worker_queue.shift());\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tthis._data.core.working = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tw.postMessage(args);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthis._data.core.worker_queue.push([dom, data, cb, true]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tcatch(e) {\r\n\t\t\t\t\trslt.call(this, func(args), false);\r\n\t\t\t\t\tif(this._data.core.worker_queue.length) {\r\n\t\t\t\t\t\tthis._append_json_data.apply(this, this._data.core.worker_queue.shift());\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthis._data.core.working = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\trslt.call(this, func(args), false);\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * parses a node from a jQuery object and appends them to the in memory tree model. Used internally.\r\n\t\t * @private\r\n\t\t * @name _parse_model_from_html(d [, p, ps])\r\n\t\t * @param {jQuery} d the jQuery object to parse\r\n\t\t * @param {String} p the parent ID\r\n\t\t * @param {Array} ps list of all parents\r\n\t\t * @return {String} the ID of the object added to the model\r\n\t\t */\r\n\t\t_parse_model_from_html : function (d, p, ps) {\r\n\t\t\tif(!ps) { ps = []; }\r\n\t\t\telse { ps = [].concat(ps); }\r\n\t\t\tif(p) { ps.unshift(p); }\r\n\t\t\tvar c, e, m = this._model.data,\r\n\t\t\t\tdata = {\r\n\t\t\t\t\tid\t\t\t: false,\r\n\t\t\t\t\ttext\t\t: false,\r\n\t\t\t\t\ticon\t\t: true,\r\n\t\t\t\t\tparent\t\t: p,\r\n\t\t\t\t\tparents\t\t: ps,\r\n\t\t\t\t\tchildren\t: [],\r\n\t\t\t\t\tchildren_d\t: [],\r\n\t\t\t\t\tdata\t\t: null,\r\n\t\t\t\t\tstate\t\t: { },\r\n\t\t\t\t\tli_attr\t\t: { id : false },\r\n\t\t\t\t\ta_attr\t\t: { href : '#' },\r\n\t\t\t\t\toriginal\t: false\r\n\t\t\t\t}, i, tmp, tid;\r\n\t\t\tfor(i in this._model.default_state) {\r\n\t\t\t\tif(this._model.default_state.hasOwnProperty(i)) {\r\n\t\t\t\t\tdata.state[i] = this._model.default_state[i];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttmp = $.vakata.attributes(d, true);\r\n\t\t\t$.each(tmp, function (i, v) {\r\n\t\t\t\tv = $.vakata.trim(v);\r\n\t\t\t\tif(!v.length) { return true; }\r\n\t\t\t\tdata.li_attr[i] = v;\r\n\t\t\t\tif(i === 'id') {\r\n\t\t\t\t\tdata.id = v.toString();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\ttmp = d.children('a').first();\r\n\t\t\tif(tmp.length) {\r\n\t\t\t\ttmp = $.vakata.attributes(tmp, true);\r\n\t\t\t\t$.each(tmp, function (i, v) {\r\n\t\t\t\t\tv = $.vakata.trim(v);\r\n\t\t\t\t\tif(v.length) {\r\n\t\t\t\t\t\tdata.a_attr[i] = v;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\ttmp = d.children(\"a\").first().length ? d.children(\"a\").first().clone() : d.clone();\r\n\t\t\ttmp.children(\"ins, i, ul\").remove();\r\n\t\t\ttmp = tmp.html();\r\n\t\t\ttmp = $('
').html(tmp);\r\n\t\t\tdata.text = this.settings.core.force_text ? tmp.text() : tmp.html();\r\n\t\t\ttmp = d.data();\r\n\t\t\tdata.data = tmp ? $.extend(true, {}, tmp) : null;\r\n\t\t\tdata.state.opened = d.hasClass('jstree-open');\r\n\t\t\tdata.state.selected = d.children('a').hasClass('jstree-clicked');\r\n\t\t\tdata.state.disabled = d.children('a').hasClass('jstree-disabled');\r\n\t\t\tif(data.data && data.data.jstree) {\r\n\t\t\t\tfor(i in data.data.jstree) {\r\n\t\t\t\t\tif(data.data.jstree.hasOwnProperty(i)) {\r\n\t\t\t\t\t\tdata.state[i] = data.data.jstree[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttmp = d.children(\"a\").children(\".jstree-themeicon\");\r\n\t\t\tif(tmp.length) {\r\n\t\t\t\tdata.icon = tmp.hasClass('jstree-themeicon-hidden') ? false : tmp.attr('rel');\r\n\t\t\t}\r\n\t\t\tif(data.state.icon !== undefined) {\r\n\t\t\t\tdata.icon = data.state.icon;\r\n\t\t\t}\r\n\t\t\tif(data.icon === undefined || data.icon === null || data.icon === \"\") {\r\n\t\t\t\tdata.icon = true;\r\n\t\t\t}\r\n\t\t\ttmp = d.children(\"ul\").children(\"li\");\r\n\t\t\tdo {\r\n\t\t\t\ttid = 'j' + this._id + '_' + (++this._cnt);\r\n\t\t\t} while(m[tid]);\r\n\t\t\tdata.id = data.li_attr.id ? data.li_attr.id.toString() : tid;\r\n\t\t\tif(tmp.length) {\r\n\t\t\t\ttmp.each($.proxy(function (i, v) {\r\n\t\t\t\t\tc = this._parse_model_from_html($(v), data.id, ps);\r\n\t\t\t\t\te = this._model.data[c];\r\n\t\t\t\t\tdata.children.push(c);\r\n\t\t\t\t\tif(e.children_d.length) {\r\n\t\t\t\t\t\tdata.children_d = data.children_d.concat(e.children_d);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, this));\r\n\t\t\t\tdata.children_d = data.children_d.concat(data.children);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif(d.hasClass('jstree-closed')) {\r\n\t\t\t\t\tdata.state.loaded = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(data.li_attr['class']) {\r\n\t\t\t\tdata.li_attr['class'] = data.li_attr['class'].replace('jstree-closed','').replace('jstree-open','');\r\n\t\t\t}\r\n\t\t\tif(data.a_attr['class']) {\r\n\t\t\t\tdata.a_attr['class'] = data.a_attr['class'].replace('jstree-clicked','').replace('jstree-disabled','');\r\n\t\t\t}\r\n\t\t\tm[data.id] = data;\r\n\t\t\tif(data.state.selected) {\r\n\t\t\t\tthis._data.core.selected.push(data.id);\r\n\t\t\t}\r\n\t\t\treturn data.id;\r\n\t\t},\r\n\t\t/**\r\n\t\t * parses a node from a JSON object (used when dealing with flat data, which has no nesting of children, but has id and parent properties) and appends it to the in memory tree model. Used internally.\r\n\t\t * @private\r\n\t\t * @name _parse_model_from_flat_json(d [, p, ps])\r\n\t\t * @param {Object} d the JSON object to parse\r\n\t\t * @param {String} p the parent ID\r\n\t\t * @param {Array} ps list of all parents\r\n\t\t * @return {String} the ID of the object added to the model\r\n\t\t */\r\n\t\t_parse_model_from_flat_json : function (d, p, ps) {\r\n\t\t\tif(!ps) { ps = []; }\r\n\t\t\telse { ps = ps.concat(); }\r\n\t\t\tif(p) { ps.unshift(p); }\r\n\t\t\tvar tid = d.id.toString(),\r\n\t\t\t\tm = this._model.data,\r\n\t\t\t\tdf = this._model.default_state,\r\n\t\t\t\ti, j, c, e,\r\n\t\t\t\ttmp = {\r\n\t\t\t\t\tid\t\t\t: tid,\r\n\t\t\t\t\ttext\t\t: d.text || '',\r\n\t\t\t\t\ticon\t\t: d.icon !== undefined ? d.icon : true,\r\n\t\t\t\t\tparent\t\t: p,\r\n\t\t\t\t\tparents\t\t: ps,\r\n\t\t\t\t\tchildren\t: d.children || [],\r\n\t\t\t\t\tchildren_d\t: d.children_d || [],\r\n\t\t\t\t\tdata\t\t: d.data,\r\n\t\t\t\t\tstate\t\t: { },\r\n\t\t\t\t\tli_attr\t\t: { id : false },\r\n\t\t\t\t\ta_attr\t\t: { href : '#' },\r\n\t\t\t\t\toriginal\t: false\r\n\t\t\t\t};\r\n\t\t\tfor(i in df) {\r\n\t\t\t\tif(df.hasOwnProperty(i)) {\r\n\t\t\t\t\ttmp.state[i] = df[i];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(d && d.data && d.data.jstree && d.data.jstree.icon) {\r\n\t\t\t\ttmp.icon = d.data.jstree.icon;\r\n\t\t\t}\r\n\t\t\tif(tmp.icon === undefined || tmp.icon === null || tmp.icon === \"\") {\r\n\t\t\t\ttmp.icon = true;\r\n\t\t\t}\r\n\t\t\tif(d && d.data) {\r\n\t\t\t\ttmp.data = d.data;\r\n\t\t\t\tif(d.data.jstree) {\r\n\t\t\t\t\tfor(i in d.data.jstree) {\r\n\t\t\t\t\t\tif(d.data.jstree.hasOwnProperty(i)) {\r\n\t\t\t\t\t\t\ttmp.state[i] = d.data.jstree[i];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(d && typeof d.state === 'object') {\r\n\t\t\t\tfor (i in d.state) {\r\n\t\t\t\t\tif(d.state.hasOwnProperty(i)) {\r\n\t\t\t\t\t\ttmp.state[i] = d.state[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(d && typeof d.li_attr === 'object') {\r\n\t\t\t\tfor (i in d.li_attr) {\r\n\t\t\t\t\tif(d.li_attr.hasOwnProperty(i)) {\r\n\t\t\t\t\t\ttmp.li_attr[i] = d.li_attr[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(!tmp.li_attr.id) {\r\n\t\t\t\ttmp.li_attr.id = tid;\r\n\t\t\t}\r\n\t\t\tif(d && typeof d.a_attr === 'object') {\r\n\t\t\t\tfor (i in d.a_attr) {\r\n\t\t\t\t\tif(d.a_attr.hasOwnProperty(i)) {\r\n\t\t\t\t\t\ttmp.a_attr[i] = d.a_attr[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(d && d.children && d.children === true) {\r\n\t\t\t\ttmp.state.loaded = false;\r\n\t\t\t\ttmp.children = [];\r\n\t\t\t\ttmp.children_d = [];\r\n\t\t\t}\r\n\t\t\tm[tmp.id] = tmp;\r\n\t\t\tfor(i = 0, j = tmp.children.length; i < j; i++) {\r\n\t\t\t\tc = this._parse_model_from_flat_json(m[tmp.children[i]], tmp.id, ps);\r\n\t\t\t\te = m[c];\r\n\t\t\t\ttmp.children_d.push(c);\r\n\t\t\t\tif(e.children_d.length) {\r\n\t\t\t\t\ttmp.children_d = tmp.children_d.concat(e.children_d);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tdelete d.data;\r\n\t\t\tdelete d.children;\r\n\t\t\tm[tmp.id].original = d;\r\n\t\t\tif(tmp.state.selected) {\r\n\t\t\t\tthis._data.core.selected.push(tmp.id);\r\n\t\t\t}\r\n\t\t\treturn tmp.id;\r\n\t\t},\r\n\t\t/**\r\n\t\t * parses a node from a JSON object and appends it to the in memory tree model. Used internally.\r\n\t\t * @private\r\n\t\t * @name _parse_model_from_json(d [, p, ps])\r\n\t\t * @param {Object} d the JSON object to parse\r\n\t\t * @param {String} p the parent ID\r\n\t\t * @param {Array} ps list of all parents\r\n\t\t * @return {String} the ID of the object added to the model\r\n\t\t */\r\n\t\t_parse_model_from_json : function (d, p, ps) {\r\n\t\t\tif(!ps) { ps = []; }\r\n\t\t\telse { ps = ps.concat(); }\r\n\t\t\tif(p) { ps.unshift(p); }\r\n\t\t\tvar tid = false, i, j, c, e, m = this._model.data, df = this._model.default_state, tmp;\r\n\t\t\tdo {\r\n\t\t\t\ttid = 'j' + this._id + '_' + (++this._cnt);\r\n\t\t\t} while(m[tid]);\r\n\r\n\t\t\ttmp = {\r\n\t\t\t\tid\t\t\t: false,\r\n\t\t\t\ttext\t\t: typeof d === 'string' ? d : '',\r\n\t\t\t\ticon\t\t: typeof d === 'object' && d.icon !== undefined ? d.icon : true,\r\n\t\t\t\tparent\t\t: p,\r\n\t\t\t\tparents\t\t: ps,\r\n\t\t\t\tchildren\t: [],\r\n\t\t\t\tchildren_d\t: [],\r\n\t\t\t\tdata\t\t: null,\r\n\t\t\t\tstate\t\t: { },\r\n\t\t\t\tli_attr\t\t: { id : false },\r\n\t\t\t\ta_attr\t\t: { href : '#' },\r\n\t\t\t\toriginal\t: false\r\n\t\t\t};\r\n\t\t\tfor(i in df) {\r\n\t\t\t\tif(df.hasOwnProperty(i)) {\r\n\t\t\t\t\ttmp.state[i] = df[i];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(d && d.id) { tmp.id = d.id.toString(); }\r\n\t\t\tif(d && d.text) { tmp.text = d.text; }\r\n\t\t\tif(d && d.data && d.data.jstree && d.data.jstree.icon) {\r\n\t\t\t\ttmp.icon = d.data.jstree.icon;\r\n\t\t\t}\r\n\t\t\tif(tmp.icon === undefined || tmp.icon === null || tmp.icon === \"\") {\r\n\t\t\t\ttmp.icon = true;\r\n\t\t\t}\r\n\t\t\tif(d && d.data) {\r\n\t\t\t\ttmp.data = d.data;\r\n\t\t\t\tif(d.data.jstree) {\r\n\t\t\t\t\tfor(i in d.data.jstree) {\r\n\t\t\t\t\t\tif(d.data.jstree.hasOwnProperty(i)) {\r\n\t\t\t\t\t\t\ttmp.state[i] = d.data.jstree[i];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(d && typeof d.state === 'object') {\r\n\t\t\t\tfor (i in d.state) {\r\n\t\t\t\t\tif(d.state.hasOwnProperty(i)) {\r\n\t\t\t\t\t\ttmp.state[i] = d.state[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(d && typeof d.li_attr === 'object') {\r\n\t\t\t\tfor (i in d.li_attr) {\r\n\t\t\t\t\tif(d.li_attr.hasOwnProperty(i)) {\r\n\t\t\t\t\t\ttmp.li_attr[i] = d.li_attr[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(tmp.li_attr.id && !tmp.id) {\r\n\t\t\t\ttmp.id = tmp.li_attr.id.toString();\r\n\t\t\t}\r\n\t\t\tif(!tmp.id) {\r\n\t\t\t\ttmp.id = tid;\r\n\t\t\t}\r\n\t\t\tif(!tmp.li_attr.id) {\r\n\t\t\t\ttmp.li_attr.id = tmp.id;\r\n\t\t\t}\r\n\t\t\tif(d && typeof d.a_attr === 'object') {\r\n\t\t\t\tfor (i in d.a_attr) {\r\n\t\t\t\t\tif(d.a_attr.hasOwnProperty(i)) {\r\n\t\t\t\t\t\ttmp.a_attr[i] = d.a_attr[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(d && d.children && d.children.length) {\r\n\t\t\t\tfor(i = 0, j = d.children.length; i < j; i++) {\r\n\t\t\t\t\tc = this._parse_model_from_json(d.children[i], tmp.id, ps);\r\n\t\t\t\t\te = m[c];\r\n\t\t\t\t\ttmp.children.push(c);\r\n\t\t\t\t\tif(e.children_d.length) {\r\n\t\t\t\t\t\ttmp.children_d = tmp.children_d.concat(e.children_d);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\ttmp.children_d = tmp.children.concat(tmp.children_d);\r\n\t\t\t}\r\n\t\t\tif(d && d.children && d.children === true) {\r\n\t\t\t\ttmp.state.loaded = false;\r\n\t\t\t\ttmp.children = [];\r\n\t\t\t\ttmp.children_d = [];\r\n\t\t\t}\r\n\t\t\tdelete d.data;\r\n\t\t\tdelete d.children;\r\n\t\t\ttmp.original = d;\r\n\t\t\tm[tmp.id] = tmp;\r\n\t\t\tif(tmp.state.selected) {\r\n\t\t\t\tthis._data.core.selected.push(tmp.id);\r\n\t\t\t}\r\n\t\t\treturn tmp.id;\r\n\t\t},\r\n\t\t/**\r\n\t\t * redraws all nodes that need to be redrawn. Used internally.\r\n\t\t * @private\r\n\t\t * @name _redraw()\r\n\t\t * @trigger redraw.jstree\r\n\t\t */\r\n\t\t_redraw : function () {\r\n\t\t\tvar nodes = this._model.force_full_redraw ? this._model.data[$.jstree.root].children.concat([]) : this._model.changed.concat([]),\r\n\t\t\t\tf = document.createElement('UL'), tmp, i, j, fe = this._data.core.focused;\r\n\t\t\tfor(i = 0, j = nodes.length; i < j; i++) {\r\n\t\t\t\ttmp = this.redraw_node(nodes[i], true, this._model.force_full_redraw);\r\n\t\t\t\tif(tmp && this._model.force_full_redraw) {\r\n\t\t\t\t\tf.appendChild(tmp);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(this._model.force_full_redraw) {\r\n\t\t\t\tf.className = this.get_container_ul()[0].className;\r\n\t\t\t\tf.setAttribute('role','group');\r\n\t\t\t\tthis.element.empty().append(f);\r\n\t\t\t\t//this.get_container_ul()[0].appendChild(f);\r\n\t\t\t}\r\n\t\t\tif(fe !== null && this.settings.core.restore_focus) {\r\n\t\t\t\ttmp = this.get_node(fe, true);\r\n\t\t\t\tif(tmp && tmp.length && tmp.children('.jstree-anchor')[0] !== document.activeElement) {\r\n\t\t\t\t\ttmp.children('.jstree-anchor').focus();\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis._data.core.focused = null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis._model.force_full_redraw = false;\r\n\t\t\tthis._model.changed = [];\r\n\t\t\t/**\r\n\t\t\t * triggered after nodes are redrawn\r\n\t\t\t * @event\r\n\t\t\t * @name redraw.jstree\r\n\t\t\t * @param {array} nodes the redrawn nodes\r\n\t\t\t */\r\n\t\t\tthis.trigger('redraw', { \"nodes\" : nodes });\r\n\t\t},\r\n\t\t/**\r\n\t\t * redraws all nodes that need to be redrawn or optionally - the whole tree\r\n\t\t * @name redraw([full])\r\n\t\t * @param {Boolean} full if set to `true` all nodes are redrawn.\r\n\t\t */\r\n\t\tredraw : function (full) {\r\n\t\t\tif(full) {\r\n\t\t\t\tthis._model.force_full_redraw = true;\r\n\t\t\t}\r\n\t\t\t//if(this._model.redraw_timeout) {\r\n\t\t\t//\tclearTimeout(this._model.redraw_timeout);\r\n\t\t\t//}\r\n\t\t\t//this._model.redraw_timeout = setTimeout($.proxy(this._redraw, this),0);\r\n\t\t\tthis._redraw();\r\n\t\t},\r\n\t\t/**\r\n\t\t * redraws a single node's children. Used internally.\r\n\t\t * @private\r\n\t\t * @name draw_children(node)\r\n\t\t * @param {mixed} node the node whose children will be redrawn\r\n\t\t */\r\n\t\tdraw_children : function (node) {\r\n\t\t\tvar obj = this.get_node(node),\r\n\t\t\t\ti = false,\r\n\t\t\t\tj = false,\r\n\t\t\t\tk = false,\r\n\t\t\t\td = document;\r\n\t\t\tif(!obj) { return false; }\r\n\t\t\tif(obj.id === $.jstree.root) { return this.redraw(true); }\r\n\t\t\tnode = this.get_node(node, true);\r\n\t\t\tif(!node || !node.length) { return false; } // TODO: quick toggle\r\n\r\n\t\t\tnode.children('.jstree-children').remove();\r\n\t\t\tnode = node[0];\r\n\t\t\tif(obj.children.length && obj.state.loaded) {\r\n\t\t\t\tk = d.createElement('UL');\r\n\t\t\t\tk.setAttribute('role', 'group');\r\n\t\t\t\tk.className = 'jstree-children';\r\n\t\t\t\tfor(i = 0, j = obj.children.length; i < j; i++) {\r\n\t\t\t\t\tk.appendChild(this.redraw_node(obj.children[i], true, true));\r\n\t\t\t\t}\r\n\t\t\t\tnode.appendChild(k);\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * redraws a single node. Used internally.\r\n\t\t * @private\r\n\t\t * @name redraw_node(node, deep, is_callback, force_render)\r\n\t\t * @param {mixed} node the node to redraw\r\n\t\t * @param {Boolean} deep should child nodes be redrawn too\r\n\t\t * @param {Boolean} is_callback is this a recursion call\r\n\t\t * @param {Boolean} force_render should children of closed parents be drawn anyway\r\n\t\t */\r\n\t\tredraw_node : function (node, deep, is_callback, force_render) {\r\n\t\t\tvar obj = this.get_node(node),\r\n\t\t\t\tpar = false,\r\n\t\t\t\tind = false,\r\n\t\t\t\told = false,\r\n\t\t\t\ti = false,\r\n\t\t\t\tj = false,\r\n\t\t\t\tk = false,\r\n\t\t\t\tc = '',\r\n\t\t\t\td = document,\r\n\t\t\t\tm = this._model.data,\r\n\t\t\t\tf = false,\r\n\t\t\t\ts = false,\r\n\t\t\t\ttmp = null,\r\n\t\t\t\tt = 0,\r\n\t\t\t\tl = 0,\r\n\t\t\t\thas_children = false,\r\n\t\t\t\tlast_sibling = false;\r\n\t\t\tif(!obj) { return false; }\r\n\t\t\tif(obj.id === $.jstree.root) { return this.redraw(true); }\r\n\t\t\tdeep = deep || obj.children.length === 0;\r\n\t\t\tnode = !document.querySelector ? document.getElementById(obj.id) : this.element[0].querySelector('#' + (\"0123456789\".indexOf(obj.id[0]) !== -1 ? '\\\\3' + obj.id[0] + ' ' + obj.id.substr(1).replace($.jstree.idregex,'\\\\$&') : obj.id.replace($.jstree.idregex,'\\\\$&')) ); //, this.element);\r\n\t\t\tif(!node) {\r\n\t\t\t\tdeep = true;\r\n\t\t\t\t//node = d.createElement('LI');\r\n\t\t\t\tif(!is_callback) {\r\n\t\t\t\t\tpar = obj.parent !== $.jstree.root ? $('#' + obj.parent.replace($.jstree.idregex,'\\\\$&'), this.element)[0] : null;\r\n\t\t\t\t\tif(par !== null && (!par || !m[obj.parent].state.opened)) {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tind = $.inArray(obj.id, par === null ? m[$.jstree.root].children : m[obj.parent].children);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tnode = $(node);\r\n\t\t\t\tif(!is_callback) {\r\n\t\t\t\t\tpar = node.parent().parent()[0];\r\n\t\t\t\t\tif(par === this.element[0]) {\r\n\t\t\t\t\t\tpar = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tind = node.index();\r\n\t\t\t\t}\r\n\t\t\t\t// m[obj.id].data = node.data(); // use only node's data, no need to touch jquery storage\r\n\t\t\t\tif(!deep && obj.children.length && !node.children('.jstree-children').length) {\r\n\t\t\t\t\tdeep = true;\r\n\t\t\t\t}\r\n\t\t\t\tif(!deep) {\r\n\t\t\t\t\told = node.children('.jstree-children')[0];\r\n\t\t\t\t}\r\n\t\t\t\tf = node.children('.jstree-anchor')[0] === document.activeElement;\r\n\t\t\t\tnode.remove();\r\n\t\t\t\t//node = d.createElement('LI');\r\n\t\t\t\t//node = node[0];\r\n\t\t\t}\r\n\t\t\tnode = this._data.core.node.cloneNode(true);\r\n\t\t\t// node is DOM, deep is boolean\r\n\r\n\t\t\tc = 'jstree-node ';\r\n\t\t\tfor(i in obj.li_attr) {\r\n\t\t\t\tif(obj.li_attr.hasOwnProperty(i)) {\r\n\t\t\t\t\tif(i === 'id') { continue; }\r\n\t\t\t\t\tif(i !== 'class') {\r\n\t\t\t\t\t\tnode.setAttribute(i, obj.li_attr[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tc += obj.li_attr[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(!obj.a_attr.id) {\r\n\t\t\t\tobj.a_attr.id = obj.id + '_anchor';\r\n\t\t\t}\r\n\t\t\tnode.childNodes[1].setAttribute('aria-selected', !!obj.state.selected);\r\n\t\t\tnode.childNodes[1].setAttribute('aria-level', obj.parents.length);\r\n\t\t\tif(this.settings.core.compute_elements_positions) {\r\n\t\t\t\tnode.childNodes[1].setAttribute('aria-setsize', m[obj.parent].children.length);\r\n\t\t\t\tnode.childNodes[1].setAttribute('aria-posinset', m[obj.parent].children.indexOf(obj.id) + 1);\r\n\t\t\t}\r\n\t\t\tif(obj.state.disabled) {\r\n\t\t\t\tnode.childNodes[1].setAttribute('aria-disabled', true);\r\n\t\t\t}\r\n\r\n\t\t\tfor(i = 0, j = obj.children.length; i < j; i++) {\r\n\t\t\t\tif(!m[obj.children[i]].state.hidden) {\r\n\t\t\t\t\thas_children = true;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(obj.parent !== null && m[obj.parent] && !obj.state.hidden) {\r\n\t\t\t\ti = $.inArray(obj.id, m[obj.parent].children);\r\n\t\t\t\tlast_sibling = obj.id;\r\n\t\t\t\tif(i !== -1) {\r\n\t\t\t\t\ti++;\r\n\t\t\t\t\tfor(j = m[obj.parent].children.length; i < j; i++) {\r\n\t\t\t\t\t\tif(!m[m[obj.parent].children[i]].state.hidden) {\r\n\t\t\t\t\t\t\tlast_sibling = m[obj.parent].children[i];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(last_sibling !== obj.id) {\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(obj.state.hidden) {\r\n\t\t\t\tc += ' jstree-hidden';\r\n\t\t\t}\r\n\t\t\tif (obj.state.loading) {\r\n\t\t\t\tc += ' jstree-loading';\r\n\t\t\t}\r\n\t\t\tif(obj.state.loaded && !has_children) {\r\n\t\t\t\tc += ' jstree-leaf';\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tc += obj.state.opened && obj.state.loaded ? ' jstree-open' : ' jstree-closed';\r\n\t\t\t\tnode.childNodes[1].setAttribute('aria-expanded', (obj.state.opened && obj.state.loaded) );\r\n\t\t\t}\r\n\t\t\tif(last_sibling === obj.id) {\r\n\t\t\t\tc += ' jstree-last';\r\n\t\t\t}\r\n\t\t\tnode.id = obj.id;\r\n\t\t\tnode.className = c;\r\n\t\t\tc = ( obj.state.selected ? ' jstree-clicked' : '') + ( obj.state.disabled ? ' jstree-disabled' : '');\r\n\t\t\tfor(j in obj.a_attr) {\r\n\t\t\t\tif(obj.a_attr.hasOwnProperty(j)) {\r\n\t\t\t\t\tif(j === 'href' && obj.a_attr[j] === '#') { continue; }\r\n\t\t\t\t\tif(j !== 'class') {\r\n\t\t\t\t\t\tnode.childNodes[1].setAttribute(j, obj.a_attr[j]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tc += ' ' + obj.a_attr[j];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(c.length) {\r\n\t\t\t\tnode.childNodes[1].className = 'jstree-anchor ' + c;\r\n\t\t\t}\r\n\t\t\tif((obj.icon && obj.icon !== true) || obj.icon === false) {\r\n\t\t\t\tif(obj.icon === false) {\r\n\t\t\t\t\tnode.childNodes[1].childNodes[0].className += ' jstree-themeicon-hidden';\r\n\t\t\t\t}\r\n\t\t\t\telse if(obj.icon.indexOf('/') === -1 && obj.icon.indexOf('.') === -1) {\r\n\t\t\t\t\tnode.childNodes[1].childNodes[0].className += ' ' + obj.icon + ' jstree-themeicon-custom';\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tnode.childNodes[1].childNodes[0].style.backgroundImage = 'url(\"'+obj.icon+'\")';\r\n\t\t\t\t\tnode.childNodes[1].childNodes[0].style.backgroundPosition = 'center center';\r\n\t\t\t\t\tnode.childNodes[1].childNodes[0].style.backgroundSize = 'auto';\r\n\t\t\t\t\tnode.childNodes[1].childNodes[0].className += ' jstree-themeicon-custom';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif(this.settings.core.force_text) {\r\n\t\t\t\tnode.childNodes[1].appendChild(d.createTextNode(obj.text));\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tnode.childNodes[1].innerHTML += obj.text;\r\n\t\t\t}\r\n\r\n\r\n\t\t\tif(deep && obj.children.length && (obj.state.opened || force_render) && obj.state.loaded) {\r\n\t\t\t\tk = d.createElement('UL');\r\n\t\t\t\tk.setAttribute('role', 'group');\r\n\t\t\t\tk.className = 'jstree-children';\r\n\t\t\t\tfor(i = 0, j = obj.children.length; i < j; i++) {\r\n\t\t\t\t\tk.appendChild(this.redraw_node(obj.children[i], deep, true));\r\n\t\t\t\t}\r\n\t\t\t\tnode.appendChild(k);\r\n\t\t\t}\r\n\t\t\tif(old) {\r\n\t\t\t\tnode.appendChild(old);\r\n\t\t\t}\r\n\t\t\tif(!is_callback) {\r\n\t\t\t\t// append back using par / ind\r\n\t\t\t\tif(!par) {\r\n\t\t\t\t\tpar = this.element[0];\r\n\t\t\t\t}\r\n\t\t\t\tfor(i = 0, j = par.childNodes.length; i < j; i++) {\r\n\t\t\t\t\tif(par.childNodes[i] && par.childNodes[i].className && par.childNodes[i].className.indexOf('jstree-children') !== -1) {\r\n\t\t\t\t\t\ttmp = par.childNodes[i];\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(!tmp) {\r\n\t\t\t\t\ttmp = d.createElement('UL');\r\n\t\t\t\t\ttmp.setAttribute('role', 'group');\r\n\t\t\t\t\ttmp.className = 'jstree-children';\r\n\t\t\t\t\tpar.appendChild(tmp);\r\n\t\t\t\t}\r\n\t\t\t\tpar = tmp;\r\n\r\n\t\t\t\tif(ind < par.childNodes.length) {\r\n\t\t\t\t\tpar.insertBefore(node, par.childNodes[ind]);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tpar.appendChild(node);\r\n\t\t\t\t}\r\n\t\t\t\tif(f) {\r\n\t\t\t\t\tt = this.element[0].scrollTop;\r\n\t\t\t\t\tl = this.element[0].scrollLeft;\r\n\t\t\t\t\tnode.childNodes[1].focus();\r\n\t\t\t\t\tthis.element[0].scrollTop = t;\r\n\t\t\t\t\tthis.element[0].scrollLeft = l;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(obj.state.opened && !obj.state.loaded) {\r\n\t\t\t\tobj.state.opened = false;\r\n\t\t\t\tsetTimeout($.proxy(function () {\r\n\t\t\t\t\tthis.open_node(obj.id, false, 0);\r\n\t\t\t\t}, this), 0);\r\n\t\t\t}\r\n\t\t\treturn node;\r\n\t\t},\r\n\t\t/**\r\n\t\t * opens a node, revealing its children. If the node is not loaded it will be loaded and opened once ready.\r\n\t\t * @name open_node(obj [, callback, animation])\r\n\t\t * @param {mixed} obj the node to open\r\n\t\t * @param {Function} callback a function to execute once the node is opened\r\n\t\t * @param {Number} animation the animation duration in milliseconds when opening the node (overrides the `core.animation` setting). Use `false` for no animation.\r\n\t\t * @trigger open_node.jstree, after_open.jstree, before_open.jstree\r\n\t\t */\r\n\t\topen_node : function (obj, callback, animation) {\r\n\t\t\tvar t1, t2, d, t;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.open_node(obj[t1], callback, animation);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === $.jstree.root) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tanimation = animation === undefined ? this.settings.core.animation : animation;\r\n\t\t\tif(!this.is_closed(obj)) {\r\n\t\t\t\tif(callback) {\r\n\t\t\t\t\tcallback.call(this, obj, false);\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif(!this.is_loaded(obj)) {\r\n\t\t\t\tif(this.is_loading(obj)) {\r\n\t\t\t\t\treturn setTimeout($.proxy(function () {\r\n\t\t\t\t\t\tthis.open_node(obj, callback, animation);\r\n\t\t\t\t\t}, this), 500);\r\n\t\t\t\t}\r\n\t\t\t\tthis.load_node(obj, function (o, ok) {\r\n\t\t\t\t\treturn ok ? this.open_node(o, callback, animation) : (callback ? callback.call(this, o, false) : false);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\td = this.get_node(obj, true);\r\n\t\t\t\tt = this;\r\n\t\t\t\tif(d.length) {\r\n\t\t\t\t\tif(animation && d.children(\".jstree-children\").length) {\r\n\t\t\t\t\t\td.children(\".jstree-children\").stop(true, true);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(obj.children.length && !this._firstChild(d.children('.jstree-children')[0])) {\r\n\t\t\t\t\t\tthis.draw_children(obj);\r\n\t\t\t\t\t\t//d = this.get_node(obj, true);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(!animation) {\r\n\t\t\t\t\t\tthis.trigger('before_open', { \"node\" : obj });\r\n\t\t\t\t\t\td[0].className = d[0].className.replace('jstree-closed', 'jstree-open');\r\n\t\t\t\t\t\td[0].childNodes[1].setAttribute(\"aria-expanded\", true);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthis.trigger('before_open', { \"node\" : obj });\r\n\t\t\t\t\t\td\r\n\t\t\t\t\t\t\t.children(\".jstree-children\").css(\"display\",\"none\").end()\r\n\t\t\t\t\t\t\t.removeClass(\"jstree-closed\").addClass(\"jstree-open\")\r\n\t\t\t\t\t\t\t\t.children('.jstree-anchor').attr(\"aria-expanded\", true).end()\r\n\t\t\t\t\t\t\t.children(\".jstree-children\").stop(true, true)\r\n\t\t\t\t\t\t\t\t.slideDown(animation, function () {\r\n\t\t\t\t\t\t\t\t\tthis.style.display = \"\";\r\n\t\t\t\t\t\t\t\t\tif (t.element) {\r\n\t\t\t\t\t\t\t\t\t\tt.trigger(\"after_open\", { \"node\" : obj });\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tobj.state.opened = true;\r\n\t\t\t\tif(callback) {\r\n\t\t\t\t\tcallback.call(this, obj, true);\r\n\t\t\t\t}\r\n\t\t\t\tif(!d.length) {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * triggered when a node is about to be opened (if the node is supposed to be in the DOM, it will be, but it won't be visible yet)\r\n\t\t\t\t\t * @event\r\n\t\t\t\t\t * @name before_open.jstree\r\n\t\t\t\t\t * @param {Object} node the opened node\r\n\t\t\t\t\t */\r\n\t\t\t\t\tthis.trigger('before_open', { \"node\" : obj });\r\n\t\t\t\t}\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered when a node is opened (if there is an animation it will not be completed yet)\r\n\t\t\t\t * @event\r\n\t\t\t\t * @name open_node.jstree\r\n\t\t\t\t * @param {Object} node the opened node\r\n\t\t\t\t */\r\n\t\t\t\tthis.trigger('open_node', { \"node\" : obj });\r\n\t\t\t\tif(!animation || !d.length) {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * triggered when a node is opened and the animation is complete\r\n\t\t\t\t\t * @event\r\n\t\t\t\t\t * @name after_open.jstree\r\n\t\t\t\t\t * @param {Object} node the opened node\r\n\t\t\t\t\t */\r\n\t\t\t\t\tthis.trigger(\"after_open\", { \"node\" : obj });\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * opens every parent of a node (node should be loaded)\r\n\t\t * @name _open_to(obj)\r\n\t\t * @param {mixed} obj the node to reveal\r\n\t\t * @private\r\n\t\t */\r\n\t\t_open_to : function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === $.jstree.root) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tvar i, j, p = obj.parents;\r\n\t\t\tfor(i = 0, j = p.length; i < j; i+=1) {\r\n\t\t\t\tif(i !== $.jstree.root) {\r\n\t\t\t\t\tthis.open_node(p[i], false, 0);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn $('#' + obj.id.replace($.jstree.idregex,'\\\\$&'), this.element);\r\n\t\t},\r\n\t\t/**\r\n\t\t * closes a node, hiding its children\r\n\t\t * @name close_node(obj [, animation])\r\n\t\t * @param {mixed} obj the node to close\r\n\t\t * @param {Number} animation the animation duration in milliseconds when closing the node (overrides the `core.animation` setting). Use `false` for no animation.\r\n\t\t * @trigger close_node.jstree, after_close.jstree\r\n\t\t */\r\n\t\tclose_node : function (obj, animation) {\r\n\t\t\tvar t1, t2, t, d;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.close_node(obj[t1], animation);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === $.jstree.root) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif(this.is_closed(obj)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tanimation = animation === undefined ? this.settings.core.animation : animation;\r\n\t\t\tt = this;\r\n\t\t\td = this.get_node(obj, true);\r\n\r\n\t\t\tobj.state.opened = false;\r\n\t\t\t/**\r\n\t\t\t * triggered when a node is closed (if there is an animation it will not be complete yet)\r\n\t\t\t * @event\r\n\t\t\t * @name close_node.jstree\r\n\t\t\t * @param {Object} node the closed node\r\n\t\t\t */\r\n\t\t\tthis.trigger('close_node',{ \"node\" : obj });\r\n\t\t\tif(!d.length) {\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered when a node is closed and the animation is complete\r\n\t\t\t\t * @event\r\n\t\t\t\t * @name after_close.jstree\r\n\t\t\t\t * @param {Object} node the closed node\r\n\t\t\t\t */\r\n\t\t\t\tthis.trigger(\"after_close\", { \"node\" : obj });\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif(!animation) {\r\n\t\t\t\t\td[0].className = d[0].className.replace('jstree-open', 'jstree-closed');\r\n\t\t\t\t\td.children('.jstree-anchor').attr(\"aria-expanded\", false);\r\n\t\t\t\t\td.children('.jstree-children').remove();\r\n\t\t\t\t\tthis.trigger(\"after_close\", { \"node\" : obj });\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\td\r\n\t\t\t\t\t\t.children(\".jstree-children\").attr(\"style\",\"display:block !important\").end()\r\n\t\t\t\t\t\t.removeClass(\"jstree-open\").addClass(\"jstree-closed\")\r\n\t\t\t\t\t\t\t.children('.jstree-anchor').attr(\"aria-expanded\", false).end()\r\n\t\t\t\t\t\t.children(\".jstree-children\").stop(true, true).slideUp(animation, function () {\r\n\t\t\t\t\t\t\tthis.style.display = \"\";\r\n\t\t\t\t\t\t\td.children('.jstree-children').remove();\r\n\t\t\t\t\t\t\tif (t.element) {\r\n\t\t\t\t\t\t\t\tt.trigger(\"after_close\", { \"node\" : obj });\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * toggles a node - closing it if it is open, opening it if it is closed\r\n\t\t * @name toggle_node(obj)\r\n\t\t * @param {mixed} obj the node to toggle\r\n\t\t */\r\n\t\ttoggle_node : function (obj) {\r\n\t\t\tvar t1, t2;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.toggle_node(obj[t1]);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tif(this.is_closed(obj)) {\r\n\t\t\t\treturn this.open_node(obj);\r\n\t\t\t}\r\n\t\t\tif(this.is_open(obj)) {\r\n\t\t\t\treturn this.close_node(obj);\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * opens all nodes within a node (or the tree), revealing their children. If the node is not loaded it will be loaded and opened once ready.\r\n\t\t * @name open_all([obj, animation, original_obj])\r\n\t\t * @param {mixed} obj the node to open recursively, omit to open all nodes in the tree\r\n\t\t * @param {Number} animation the animation duration in milliseconds when opening the nodes, the default is no animation\r\n\t\t * @param {jQuery} reference to the node that started the process (internal use)\r\n\t\t * @trigger open_all.jstree\r\n\t\t */\r\n\t\topen_all : function (obj, animation, original_obj) {\r\n\t\t\tif(!obj) { obj = $.jstree.root; }\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj) { return false; }\r\n\t\t\tvar dom = obj.id === $.jstree.root ? this.get_container_ul() : this.get_node(obj, true), i, j, _this;\r\n\t\t\tif(!dom.length) {\r\n\t\t\t\tfor(i = 0, j = obj.children_d.length; i < j; i++) {\r\n\t\t\t\t\tif(this.is_closed(this._model.data[obj.children_d[i]])) {\r\n\t\t\t\t\t\tthis._model.data[obj.children_d[i]].state.opened = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn this.trigger('open_all', { \"node\" : obj });\r\n\t\t\t}\r\n\t\t\toriginal_obj = original_obj || dom;\r\n\t\t\t_this = this;\r\n\t\t\tdom = this.is_closed(obj) ? dom.find('.jstree-closed').addBack() : dom.find('.jstree-closed');\r\n\t\t\tdom.each(function () {\r\n\t\t\t\t_this.open_node(\r\n\t\t\t\t\tthis,\r\n\t\t\t\t\tfunction(node, status) { if(status && this.is_parent(node)) { this.open_all(node, animation, original_obj); } },\r\n\t\t\t\t\tanimation || 0\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t\t\tif(original_obj.find('.jstree-closed').length === 0) {\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered when an `open_all` call completes\r\n\t\t\t\t * @event\r\n\t\t\t\t * @name open_all.jstree\r\n\t\t\t\t * @param {Object} node the opened node\r\n\t\t\t\t */\r\n\t\t\t\tthis.trigger('open_all', { \"node\" : this.get_node(original_obj) });\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * closes all nodes within a node (or the tree), revealing their children\r\n\t\t * @name close_all([obj, animation])\r\n\t\t * @param {mixed} obj the node to close recursively, omit to close all nodes in the tree\r\n\t\t * @param {Number} animation the animation duration in milliseconds when closing the nodes, the default is no animation\r\n\t\t * @trigger close_all.jstree\r\n\t\t */\r\n\t\tclose_all : function (obj, animation) {\r\n\t\t\tif(!obj) { obj = $.jstree.root; }\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj) { return false; }\r\n\t\t\tvar dom = obj.id === $.jstree.root ? this.get_container_ul() : this.get_node(obj, true),\r\n\t\t\t\t_this = this, i, j;\r\n\t\t\tif(dom.length) {\r\n\t\t\t\tdom = this.is_open(obj) ? dom.find('.jstree-open').addBack() : dom.find('.jstree-open');\r\n\t\t\t\t$(dom.get().reverse()).each(function () { _this.close_node(this, animation || 0); });\r\n\t\t\t}\r\n\t\t\tfor(i = 0, j = obj.children_d.length; i < j; i++) {\r\n\t\t\t\tthis._model.data[obj.children_d[i]].state.opened = false;\r\n\t\t\t}\r\n\t\t\t/**\r\n\t\t\t * triggered when an `close_all` call completes\r\n\t\t\t * @event\r\n\t\t\t * @name close_all.jstree\r\n\t\t\t * @param {Object} node the closed node\r\n\t\t\t */\r\n\t\t\tthis.trigger('close_all', { \"node\" : obj });\r\n\t\t},\r\n\t\t/**\r\n\t\t * checks if a node is disabled (not selectable)\r\n\t\t * @name is_disabled(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t * @return {Boolean}\r\n\t\t */\r\n\t\tis_disabled : function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\treturn obj && obj.state && obj.state.disabled;\r\n\t\t},\r\n\t\t/**\r\n\t\t * enables a node - so that it can be selected\r\n\t\t * @name enable_node(obj)\r\n\t\t * @param {mixed} obj the node to enable\r\n\t\t * @trigger enable_node.jstree\r\n\t\t */\r\n\t\tenable_node : function (obj) {\r\n\t\t\tvar t1, t2;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.enable_node(obj[t1]);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === $.jstree.root) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tobj.state.disabled = false;\r\n\t\t\tthis.get_node(obj,true).children('.jstree-anchor').removeClass('jstree-disabled').attr('aria-disabled', false);\r\n\t\t\t/**\r\n\t\t\t * triggered when an node is enabled\r\n\t\t\t * @event\r\n\t\t\t * @name enable_node.jstree\r\n\t\t\t * @param {Object} node the enabled node\r\n\t\t\t */\r\n\t\t\tthis.trigger('enable_node', { 'node' : obj });\r\n\t\t},\r\n\t\t/**\r\n\t\t * disables a node - so that it can not be selected\r\n\t\t * @name disable_node(obj)\r\n\t\t * @param {mixed} obj the node to disable\r\n\t\t * @trigger disable_node.jstree\r\n\t\t */\r\n\t\tdisable_node : function (obj) {\r\n\t\t\tvar t1, t2;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.disable_node(obj[t1]);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === $.jstree.root) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tobj.state.disabled = true;\r\n\t\t\tthis.get_node(obj,true).children('.jstree-anchor').addClass('jstree-disabled').attr('aria-disabled', true);\r\n\t\t\t/**\r\n\t\t\t * triggered when an node is disabled\r\n\t\t\t * @event\r\n\t\t\t * @name disable_node.jstree\r\n\t\t\t * @param {Object} node the disabled node\r\n\t\t\t */\r\n\t\t\tthis.trigger('disable_node', { 'node' : obj });\r\n\t\t},\r\n\t\t/**\r\n\t\t * determines if a node is hidden\r\n\t\t * @name is_hidden(obj)\r\n\t\t * @param {mixed} obj the node\r\n\t\t */\r\n\t\tis_hidden : function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\treturn obj.state.hidden === true;\r\n\t\t},\r\n\t\t/**\r\n\t\t * hides a node - it is still in the structure but will not be visible\r\n\t\t * @name hide_node(obj)\r\n\t\t * @param {mixed} obj the node to hide\r\n\t\t * @param {Boolean} skip_redraw internal parameter controlling if redraw is called\r\n\t\t * @trigger hide_node.jstree\r\n\t\t */\r\n\t\thide_node : function (obj, skip_redraw) {\r\n\t\t\tvar t1, t2;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.hide_node(obj[t1], true);\r\n\t\t\t\t}\r\n\t\t\t\tif (!skip_redraw) {\r\n\t\t\t\t\tthis.redraw();\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === $.jstree.root) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif(!obj.state.hidden) {\r\n\t\t\t\tobj.state.hidden = true;\r\n\t\t\t\tthis._node_changed(obj.parent);\r\n\t\t\t\tif(!skip_redraw) {\r\n\t\t\t\t\tthis.redraw();\r\n\t\t\t\t}\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered when an node is hidden\r\n\t\t\t\t * @event\r\n\t\t\t\t * @name hide_node.jstree\r\n\t\t\t\t * @param {Object} node the hidden node\r\n\t\t\t\t */\r\n\t\t\t\tthis.trigger('hide_node', { 'node' : obj });\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * shows a node\r\n\t\t * @name show_node(obj)\r\n\t\t * @param {mixed} obj the node to show\r\n\t\t * @param {Boolean} skip_redraw internal parameter controlling if redraw is called\r\n\t\t * @trigger show_node.jstree\r\n\t\t */\r\n\t\tshow_node : function (obj, skip_redraw) {\r\n\t\t\tvar t1, t2;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.show_node(obj[t1], true);\r\n\t\t\t\t}\r\n\t\t\t\tif (!skip_redraw) {\r\n\t\t\t\t\tthis.redraw();\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === $.jstree.root) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif(obj.state.hidden) {\r\n\t\t\t\tobj.state.hidden = false;\r\n\t\t\t\tthis._node_changed(obj.parent);\r\n\t\t\t\tif(!skip_redraw) {\r\n\t\t\t\t\tthis.redraw();\r\n\t\t\t\t}\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered when an node is shown\r\n\t\t\t\t * @event\r\n\t\t\t\t * @name show_node.jstree\r\n\t\t\t\t * @param {Object} node the shown node\r\n\t\t\t\t */\r\n\t\t\t\tthis.trigger('show_node', { 'node' : obj });\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * hides all nodes\r\n\t\t * @name hide_all()\r\n\t\t * @trigger hide_all.jstree\r\n\t\t */\r\n\t\thide_all : function (skip_redraw) {\r\n\t\t\tvar i, m = this._model.data, ids = [];\r\n\t\t\tfor(i in m) {\r\n\t\t\t\tif(m.hasOwnProperty(i) && i !== $.jstree.root && !m[i].state.hidden) {\r\n\t\t\t\t\tm[i].state.hidden = true;\r\n\t\t\t\t\tids.push(i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis._model.force_full_redraw = true;\r\n\t\t\tif(!skip_redraw) {\r\n\t\t\t\tthis.redraw();\r\n\t\t\t}\r\n\t\t\t/**\r\n\t\t\t * triggered when all nodes are hidden\r\n\t\t\t * @event\r\n\t\t\t * @name hide_all.jstree\r\n\t\t\t * @param {Array} nodes the IDs of all hidden nodes\r\n\t\t\t */\r\n\t\t\tthis.trigger('hide_all', { 'nodes' : ids });\r\n\t\t\treturn ids;\r\n\t\t},\r\n\t\t/**\r\n\t\t * shows all nodes\r\n\t\t * @name show_all()\r\n\t\t * @trigger show_all.jstree\r\n\t\t */\r\n\t\tshow_all : function (skip_redraw) {\r\n\t\t\tvar i, m = this._model.data, ids = [];\r\n\t\t\tfor(i in m) {\r\n\t\t\t\tif(m.hasOwnProperty(i) && i !== $.jstree.root && m[i].state.hidden) {\r\n\t\t\t\t\tm[i].state.hidden = false;\r\n\t\t\t\t\tids.push(i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis._model.force_full_redraw = true;\r\n\t\t\tif(!skip_redraw) {\r\n\t\t\t\tthis.redraw();\r\n\t\t\t}\r\n\t\t\t/**\r\n\t\t\t * triggered when all nodes are shown\r\n\t\t\t * @event\r\n\t\t\t * @name show_all.jstree\r\n\t\t\t * @param {Array} nodes the IDs of all shown nodes\r\n\t\t\t */\r\n\t\t\tthis.trigger('show_all', { 'nodes' : ids });\r\n\t\t\treturn ids;\r\n\t\t},\r\n\t\t/**\r\n\t\t * called when a node is selected by the user. Used internally.\r\n\t\t * @private\r\n\t\t * @name activate_node(obj, e)\r\n\t\t * @param {mixed} obj the node\r\n\t\t * @param {Object} e the related event\r\n\t\t * @trigger activate_node.jstree, changed.jstree\r\n\t\t */\r\n\t\tactivate_node : function (obj, e) {\r\n\t\t\tif(this.is_disabled(obj)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif(!e || typeof e !== 'object') {\r\n\t\t\t\te = {};\r\n\t\t\t}\r\n\r\n\t\t\t// ensure last_clicked is still in the DOM, make it fresh (maybe it was moved?) and make sure it is still selected, if not - make last_clicked the last selected node\r\n\t\t\tthis._data.core.last_clicked = this._data.core.last_clicked && this._data.core.last_clicked.id !== undefined ? this.get_node(this._data.core.last_clicked.id) : null;\r\n\t\t\tif(this._data.core.last_clicked && !this._data.core.last_clicked.state.selected) { this._data.core.last_clicked = null; }\r\n\t\t\tif(!this._data.core.last_clicked && this._data.core.selected.length) { this._data.core.last_clicked = this.get_node(this._data.core.selected[this._data.core.selected.length - 1]); }\r\n\r\n\t\t\tif(!this.settings.core.multiple || (!e.metaKey && !e.ctrlKey && !e.shiftKey) || (e.shiftKey && (!this._data.core.last_clicked || !this.get_parent(obj) || this.get_parent(obj) !== this._data.core.last_clicked.parent ) )) {\r\n\t\t\t\tif(!this.settings.core.multiple && (e.metaKey || e.ctrlKey || e.shiftKey) && this.is_selected(obj)) {\r\n\t\t\t\t\tthis.deselect_node(obj, false, e);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.deselect_all(true);\r\n\t\t\t\t\tthis.select_node(obj, false, false, e);\r\n\t\t\t\t\tthis._data.core.last_clicked = this.get_node(obj);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif(e.shiftKey) {\r\n\t\t\t\t\tvar o = this.get_node(obj).id,\r\n\t\t\t\t\t\tl = this._data.core.last_clicked.id,\r\n\t\t\t\t\t\tp = this.get_node(this._data.core.last_clicked.parent).children,\r\n\t\t\t\t\t\tc = false,\r\n\t\t\t\t\t\ti, j;\r\n\t\t\t\t\tfor(i = 0, j = p.length; i < j; i += 1) {\r\n\t\t\t\t\t\t// separate IFs work whem o and l are the same\r\n\t\t\t\t\t\tif(p[i] === o) {\r\n\t\t\t\t\t\t\tc = !c;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(p[i] === l) {\r\n\t\t\t\t\t\t\tc = !c;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(!this.is_disabled(p[i]) && (c || p[i] === o || p[i] === l)) {\r\n\t\t\t\t\t\t\tif (!this.is_hidden(p[i])) {\r\n\t\t\t\t\t\t\t\tthis.select_node(p[i], true, false, e);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tthis.deselect_node(p[i], true, e);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.trigger('changed', { 'action' : 'select_node', 'node' : this.get_node(obj), 'selected' : this._data.core.selected, 'event' : e });\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif(!this.is_selected(obj)) {\r\n\t\t\t\t\t\tthis.select_node(obj, false, false, e);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthis.deselect_node(obj, false, e);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t/**\r\n\t\t\t * triggered when an node is clicked or intercated with by the user\r\n\t\t\t * @event\r\n\t\t\t * @name activate_node.jstree\r\n\t\t\t * @param {Object} node\r\n\t\t\t * @param {Object} event the ooriginal event (if any) which triggered the call (may be an empty object)\r\n\t\t\t */\r\n\t\t\tthis.trigger('activate_node', { 'node' : this.get_node(obj), 'event' : e });\r\n\t\t},\r\n\t\t/**\r\n\t\t * applies the hover state on a node, called when a node is hovered by the user. Used internally.\r\n\t\t * @private\r\n\t\t * @name hover_node(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t * @trigger hover_node.jstree\r\n\t\t */\r\n\t\thover_node : function (obj) {\r\n\t\t\tobj = this.get_node(obj, true);\r\n\t\t\tif(!obj || !obj.length || obj.children('.jstree-hovered').length) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tvar o = this.element.find('.jstree-hovered'), t = this.element;\r\n\t\t\tif(o && o.length) { this.dehover_node(o); }\r\n\r\n\t\t\tobj.children('.jstree-anchor').addClass('jstree-hovered');\r\n\t\t\t/**\r\n\t\t\t * triggered when an node is hovered\r\n\t\t\t * @event\r\n\t\t\t * @name hover_node.jstree\r\n\t\t\t * @param {Object} node\r\n\t\t\t */\r\n\t\t\tthis.trigger('hover_node', { 'node' : this.get_node(obj) });\r\n\t\t\tsetTimeout(function () { t.attr('aria-activedescendant', obj[0].id); }, 0);\r\n\t\t},\r\n\t\t/**\r\n\t\t * removes the hover state from a nodecalled when a node is no longer hovered by the user. Used internally.\r\n\t\t * @private\r\n\t\t * @name dehover_node(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t * @trigger dehover_node.jstree\r\n\t\t */\r\n\t\tdehover_node : function (obj) {\r\n\t\t\tobj = this.get_node(obj, true);\r\n\t\t\tif(!obj || !obj.length || !obj.children('.jstree-hovered').length) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tobj.children('.jstree-anchor').removeClass('jstree-hovered');\r\n\t\t\t/**\r\n\t\t\t * triggered when an node is no longer hovered\r\n\t\t\t * @event\r\n\t\t\t * @name dehover_node.jstree\r\n\t\t\t * @param {Object} node\r\n\t\t\t */\r\n\t\t\tthis.trigger('dehover_node', { 'node' : this.get_node(obj) });\r\n\t\t},\r\n\t\t/**\r\n\t\t * select a node\r\n\t\t * @name select_node(obj [, supress_event, prevent_open])\r\n\t\t * @param {mixed} obj an array can be used to select multiple nodes\r\n\t\t * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered\r\n\t\t * @param {Boolean} prevent_open if set to `true` parents of the selected node won't be opened\r\n\t\t * @trigger select_node.jstree, changed.jstree\r\n\t\t */\r\n\t\tselect_node : function (obj, supress_event, prevent_open, e) {\r\n\t\t\tvar dom, t1, t2, th;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.select_node(obj[t1], supress_event, prevent_open, e);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === $.jstree.root) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tdom = this.get_node(obj, true);\r\n\t\t\tif(!obj.state.selected) {\r\n\t\t\t\tobj.state.selected = true;\r\n\t\t\t\tthis._data.core.selected.push(obj.id);\r\n\t\t\t\tif(!prevent_open) {\r\n\t\t\t\t\tdom = this._open_to(obj);\r\n\t\t\t\t}\r\n\t\t\t\tif(dom && dom.length) {\r\n\t\t\t\t\tdom.children('.jstree-anchor').addClass('jstree-clicked').attr('aria-selected', true);\r\n\t\t\t\t}\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered when an node is selected\r\n\t\t\t\t * @event\r\n\t\t\t\t * @name select_node.jstree\r\n\t\t\t\t * @param {Object} node\r\n\t\t\t\t * @param {Array} selected the current selection\r\n\t\t\t\t * @param {Object} event the event (if any) that triggered this select_node\r\n\t\t\t\t */\r\n\t\t\t\tthis.trigger('select_node', { 'node' : obj, 'selected' : this._data.core.selected, 'event' : e });\r\n\t\t\t\tif(!supress_event) {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * triggered when selection changes\r\n\t\t\t\t\t * @event\r\n\t\t\t\t\t * @name changed.jstree\r\n\t\t\t\t\t * @param {Object} node\r\n\t\t\t\t\t * @param {Object} action the action that caused the selection to change\r\n\t\t\t\t\t * @param {Array} selected the current selection\r\n\t\t\t\t\t * @param {Object} event the event (if any) that triggered this changed event\r\n\t\t\t\t\t */\r\n\t\t\t\t\tthis.trigger('changed', { 'action' : 'select_node', 'node' : obj, 'selected' : this._data.core.selected, 'event' : e });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * deselect a node\r\n\t\t * @name deselect_node(obj [, supress_event])\r\n\t\t * @param {mixed} obj an array can be used to deselect multiple nodes\r\n\t\t * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered\r\n\t\t * @trigger deselect_node.jstree, changed.jstree\r\n\t\t */\r\n\t\tdeselect_node : function (obj, supress_event, e) {\r\n\t\t\tvar t1, t2, dom;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.deselect_node(obj[t1], supress_event, e);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === $.jstree.root) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tdom = this.get_node(obj, true);\r\n\t\t\tif(obj.state.selected) {\r\n\t\t\t\tobj.state.selected = false;\r\n\t\t\t\tthis._data.core.selected = $.vakata.array_remove_item(this._data.core.selected, obj.id);\r\n\t\t\t\tif(dom.length) {\r\n\t\t\t\t\tdom.children('.jstree-anchor').removeClass('jstree-clicked').attr('aria-selected', false);\r\n\t\t\t\t}\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered when an node is deselected\r\n\t\t\t\t * @event\r\n\t\t\t\t * @name deselect_node.jstree\r\n\t\t\t\t * @param {Object} node\r\n\t\t\t\t * @param {Array} selected the current selection\r\n\t\t\t\t * @param {Object} event the event (if any) that triggered this deselect_node\r\n\t\t\t\t */\r\n\t\t\t\tthis.trigger('deselect_node', { 'node' : obj, 'selected' : this._data.core.selected, 'event' : e });\r\n\t\t\t\tif(!supress_event) {\r\n\t\t\t\t\tthis.trigger('changed', { 'action' : 'deselect_node', 'node' : obj, 'selected' : this._data.core.selected, 'event' : e });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * select all nodes in the tree\r\n\t\t * @name select_all([supress_event])\r\n\t\t * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered\r\n\t\t * @trigger select_all.jstree, changed.jstree\r\n\t\t */\r\n\t\tselect_all : function (supress_event) {\r\n\t\t\tvar tmp = this._data.core.selected.concat([]), i, j;\r\n\t\t\tthis._data.core.selected = this._model.data[$.jstree.root].children_d.concat();\r\n\t\t\tfor(i = 0, j = this._data.core.selected.length; i < j; i++) {\r\n\t\t\t\tif(this._model.data[this._data.core.selected[i]]) {\r\n\t\t\t\t\tthis._model.data[this._data.core.selected[i]].state.selected = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.redraw(true);\r\n\t\t\t/**\r\n\t\t\t * triggered when all nodes are selected\r\n\t\t\t * @event\r\n\t\t\t * @name select_all.jstree\r\n\t\t\t * @param {Array} selected the current selection\r\n\t\t\t */\r\n\t\t\tthis.trigger('select_all', { 'selected' : this._data.core.selected });\r\n\t\t\tif(!supress_event) {\r\n\t\t\t\tthis.trigger('changed', { 'action' : 'select_all', 'selected' : this._data.core.selected, 'old_selection' : tmp });\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * deselect all selected nodes\r\n\t\t * @name deselect_all([supress_event])\r\n\t\t * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered\r\n\t\t * @trigger deselect_all.jstree, changed.jstree\r\n\t\t */\r\n\t\tdeselect_all : function (supress_event) {\r\n\t\t\tvar tmp = this._data.core.selected.concat([]), i, j;\r\n\t\t\tfor(i = 0, j = this._data.core.selected.length; i < j; i++) {\r\n\t\t\t\tif(this._model.data[this._data.core.selected[i]]) {\r\n\t\t\t\t\tthis._model.data[this._data.core.selected[i]].state.selected = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis._data.core.selected = [];\r\n\t\t\tthis.element.find('.jstree-clicked').removeClass('jstree-clicked').attr('aria-selected', false);\r\n\t\t\t/**\r\n\t\t\t * triggered when all nodes are deselected\r\n\t\t\t * @event\r\n\t\t\t * @name deselect_all.jstree\r\n\t\t\t * @param {Object} node the previous selection\r\n\t\t\t * @param {Array} selected the current selection\r\n\t\t\t */\r\n\t\t\tthis.trigger('deselect_all', { 'selected' : this._data.core.selected, 'node' : tmp });\r\n\t\t\tif(!supress_event) {\r\n\t\t\t\tthis.trigger('changed', { 'action' : 'deselect_all', 'selected' : this._data.core.selected, 'old_selection' : tmp });\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * checks if a node is selected\r\n\t\t * @name is_selected(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t * @return {Boolean}\r\n\t\t */\r\n\t\tis_selected : function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === $.jstree.root) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\treturn obj.state.selected;\r\n\t\t},\r\n\t\t/**\r\n\t\t * get an array of all selected nodes\r\n\t\t * @name get_selected([full])\r\n\t\t * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned\r\n\t\t * @return {Array}\r\n\t\t */\r\n\t\tget_selected : function (full) {\r\n\t\t\treturn full ? $.map(this._data.core.selected, $.proxy(function (i) { return this.get_node(i); }, this)) : this._data.core.selected.slice();\r\n\t\t},\r\n\t\t/**\r\n\t\t * get an array of all top level selected nodes (ignoring children of selected nodes)\r\n\t\t * @name get_top_selected([full])\r\n\t\t * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned\r\n\t\t * @return {Array}\r\n\t\t */\r\n\t\tget_top_selected : function (full) {\r\n\t\t\tvar tmp = this.get_selected(true),\r\n\t\t\t\tobj = {}, i, j, k, l;\r\n\t\t\tfor(i = 0, j = tmp.length; i < j; i++) {\r\n\t\t\t\tobj[tmp[i].id] = tmp[i];\r\n\t\t\t}\r\n\t\t\tfor(i = 0, j = tmp.length; i < j; i++) {\r\n\t\t\t\tfor(k = 0, l = tmp[i].children_d.length; k < l; k++) {\r\n\t\t\t\t\tif(obj[tmp[i].children_d[k]]) {\r\n\t\t\t\t\t\tdelete obj[tmp[i].children_d[k]];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttmp = [];\r\n\t\t\tfor(i in obj) {\r\n\t\t\t\tif(obj.hasOwnProperty(i)) {\r\n\t\t\t\t\ttmp.push(i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn full ? $.map(tmp, $.proxy(function (i) { return this.get_node(i); }, this)) : tmp;\r\n\t\t},\r\n\t\t/**\r\n\t\t * get an array of all bottom level selected nodes (ignoring selected parents)\r\n\t\t * @name get_bottom_selected([full])\r\n\t\t * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned\r\n\t\t * @return {Array}\r\n\t\t */\r\n\t\tget_bottom_selected : function (full) {\r\n\t\t\tvar tmp = this.get_selected(true),\r\n\t\t\t\tobj = [], i, j;\r\n\t\t\tfor(i = 0, j = tmp.length; i < j; i++) {\r\n\t\t\t\tif(!tmp[i].children.length) {\r\n\t\t\t\t\tobj.push(tmp[i].id);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn full ? $.map(obj, $.proxy(function (i) { return this.get_node(i); }, this)) : obj;\r\n\t\t},\r\n\t\t/**\r\n\t\t * gets the current state of the tree so that it can be restored later with `set_state(state)`. Used internally.\r\n\t\t * @name get_state()\r\n\t\t * @private\r\n\t\t * @return {Object}\r\n\t\t */\r\n\t\tget_state : function () {\r\n\t\t\tvar state\t= {\r\n\t\t\t\t'core' : {\r\n\t\t\t\t\t'open' : [],\r\n\t\t\t\t\t'loaded' : [],\r\n\t\t\t\t\t'scroll' : {\r\n\t\t\t\t\t\t'left' : this.element.scrollLeft(),\r\n\t\t\t\t\t\t'top' : this.element.scrollTop()\r\n\t\t\t\t\t},\r\n\t\t\t\t\t/*!\r\n\t\t\t\t\t'themes' : {\r\n\t\t\t\t\t\t'name' : this.get_theme(),\r\n\t\t\t\t\t\t'icons' : this._data.core.themes.icons,\r\n\t\t\t\t\t\t'dots' : this._data.core.themes.dots\r\n\t\t\t\t\t},\r\n\t\t\t\t\t*/\r\n\t\t\t\t\t'selected' : []\r\n\t\t\t\t}\r\n\t\t\t}, i;\r\n\t\t\tfor(i in this._model.data) {\r\n\t\t\t\tif(this._model.data.hasOwnProperty(i)) {\r\n\t\t\t\t\tif(i !== $.jstree.root) {\r\n\t\t\t\t\t\tif(this._model.data[i].state.loaded && this.settings.core.loaded_state) {\r\n\t\t\t\t\t\t\tstate.core.loaded.push(i);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(this._model.data[i].state.opened) {\r\n\t\t\t\t\t\t\tstate.core.open.push(i);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(this._model.data[i].state.selected) {\r\n\t\t\t\t\t\t\tstate.core.selected.push(i);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn state;\r\n\t\t},\r\n\t\t/**\r\n\t\t * sets the state of the tree. Used internally.\r\n\t\t * @name set_state(state [, callback])\r\n\t\t * @private\r\n\t\t * @param {Object} state the state to restore. Keep in mind this object is passed by reference and jstree will modify it.\r\n\t\t * @param {Function} callback an optional function to execute once the state is restored.\r\n\t\t * @trigger set_state.jstree\r\n\t\t */\r\n\t\tset_state : function (state, callback) {\r\n\t\t\tif(state) {\r\n\t\t\t\tif(state.core && state.core.selected && state.core.initial_selection === undefined) {\r\n\t\t\t\t\tstate.core.initial_selection = this._data.core.selected.concat([]).sort().join(',');\r\n\t\t\t\t}\r\n\t\t\t\tif(state.core) {\r\n\t\t\t\t\tvar res, n, t, _this, i;\r\n\t\t\t\t\tif(state.core.loaded) {\r\n\t\t\t\t\t\tif(!this.settings.core.loaded_state || !$.isArray(state.core.loaded) || !state.core.loaded.length) {\r\n\t\t\t\t\t\t\tdelete state.core.loaded;\r\n\t\t\t\t\t\t\tthis.set_state(state, callback);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tthis._load_nodes(state.core.loaded, function (nodes) {\r\n\t\t\t\t\t\t\t\tdelete state.core.loaded;\r\n\t\t\t\t\t\t\t\tthis.set_state(state, callback);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(state.core.open) {\r\n\t\t\t\t\t\tif(!$.isArray(state.core.open) || !state.core.open.length) {\r\n\t\t\t\t\t\t\tdelete state.core.open;\r\n\t\t\t\t\t\t\tthis.set_state(state, callback);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tthis._load_nodes(state.core.open, function (nodes) {\r\n\t\t\t\t\t\t\t\tthis.open_node(nodes, false, 0);\r\n\t\t\t\t\t\t\t\tdelete state.core.open;\r\n\t\t\t\t\t\t\t\tthis.set_state(state, callback);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(state.core.scroll) {\r\n\t\t\t\t\t\tif(state.core.scroll && state.core.scroll.left !== undefined) {\r\n\t\t\t\t\t\t\tthis.element.scrollLeft(state.core.scroll.left);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(state.core.scroll && state.core.scroll.top !== undefined) {\r\n\t\t\t\t\t\t\tthis.element.scrollTop(state.core.scroll.top);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tdelete state.core.scroll;\r\n\t\t\t\t\t\tthis.set_state(state, callback);\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(state.core.selected) {\r\n\t\t\t\t\t\t_this = this;\r\n\t\t\t\t\t\tif (state.core.initial_selection === undefined ||\r\n\t\t\t\t\t\t\tstate.core.initial_selection === this._data.core.selected.concat([]).sort().join(',')\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\tthis.deselect_all();\r\n\t\t\t\t\t\t\t$.each(state.core.selected, function (i, v) {\r\n\t\t\t\t\t\t\t\t_this.select_node(v, false, true);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tdelete state.core.initial_selection;\r\n\t\t\t\t\t\tdelete state.core.selected;\r\n\t\t\t\t\t\tthis.set_state(state, callback);\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfor(i in state) {\r\n\t\t\t\t\t\tif(state.hasOwnProperty(i) && i !== \"core\" && $.inArray(i, this.settings.plugins) === -1) {\r\n\t\t\t\t\t\t\tdelete state[i];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif($.isEmptyObject(state.core)) {\r\n\t\t\t\t\t\tdelete state.core;\r\n\t\t\t\t\t\tthis.set_state(state, callback);\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif($.isEmptyObject(state)) {\r\n\t\t\t\t\tstate = null;\r\n\t\t\t\t\tif(callback) { callback.call(this); }\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * triggered when a `set_state` call completes\r\n\t\t\t\t\t * @event\r\n\t\t\t\t\t * @name set_state.jstree\r\n\t\t\t\t\t */\r\n\t\t\t\t\tthis.trigger('set_state');\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t},\r\n\t\t/**\r\n\t\t * refreshes the tree - all nodes are reloaded with calls to `load_node`.\r\n\t\t * @name refresh()\r\n\t\t * @param {Boolean} skip_loading an option to skip showing the loading indicator\r\n\t\t * @param {Mixed} forget_state if set to `true` state will not be reapplied, if set to a function (receiving the current state as argument) the result of that function will be used as state\r\n\t\t * @trigger refresh.jstree\r\n\t\t */\r\n\t\trefresh : function (skip_loading, forget_state) {\r\n\t\t\tthis._data.core.state = forget_state === true ? {} : this.get_state();\r\n\t\t\tif(forget_state && $.isFunction(forget_state)) { this._data.core.state = forget_state.call(this, this._data.core.state); }\r\n\t\t\tthis._cnt = 0;\r\n\t\t\tthis._model.data = {};\r\n\t\t\tthis._model.data[$.jstree.root] = {\r\n\t\t\t\tid : $.jstree.root,\r\n\t\t\t\tparent : null,\r\n\t\t\t\tparents : [],\r\n\t\t\t\tchildren : [],\r\n\t\t\t\tchildren_d : [],\r\n\t\t\t\tstate : { loaded : false }\r\n\t\t\t};\r\n\t\t\tthis._data.core.selected = [];\r\n\t\t\tthis._data.core.last_clicked = null;\r\n\t\t\tthis._data.core.focused = null;\r\n\r\n\t\t\tvar c = this.get_container_ul()[0].className;\r\n\t\t\tif(!skip_loading) {\r\n\t\t\t\tthis.element.html(\"<\"+\"ul class='\"+c+\"' role='group'><\"+\"li class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='none' id='j\"+this._id+\"_loading'><\"+\"a class='jstree-anchor' role='treeitem' href='#'>\" + this.get_string(\"Loading ...\") + \"\");\r\n\t\t\t\tthis.element.attr('aria-activedescendant','j'+this._id+'_loading');\r\n\t\t\t}\r\n\t\t\tthis.load_node($.jstree.root, function (o, s) {\r\n\t\t\t\tif(s) {\r\n\t\t\t\t\tthis.get_container_ul()[0].className = c;\r\n\t\t\t\t\tif(this._firstChild(this.get_container_ul()[0])) {\r\n\t\t\t\t\t\tthis.element.attr('aria-activedescendant',this._firstChild(this.get_container_ul()[0]).id);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.set_state($.extend(true, {}, this._data.core.state), function () {\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t * triggered when a `refresh` call completes\r\n\t\t\t\t\t\t * @event\r\n\t\t\t\t\t\t * @name refresh.jstree\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\tthis.trigger('refresh');\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tthis._data.core.state = null;\r\n\t\t\t});\r\n\t\t},\r\n\t\t/**\r\n\t\t * refreshes a node in the tree (reload its children) all opened nodes inside that node are reloaded with calls to `load_node`.\r\n\t\t * @name refresh_node(obj)\r\n\t\t * @param {mixed} obj the node\r\n\t\t * @trigger refresh_node.jstree\r\n\t\t */\r\n\t\trefresh_node : function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === $.jstree.root) { return false; }\r\n\t\t\tvar opened = [], to_load = [], s = this._data.core.selected.concat([]);\r\n\t\t\tto_load.push(obj.id);\r\n\t\t\tif(obj.state.opened === true) { opened.push(obj.id); }\r\n\t\t\tthis.get_node(obj, true).find('.jstree-open').each(function() { to_load.push(this.id); opened.push(this.id); });\r\n\t\t\tthis._load_nodes(to_load, $.proxy(function (nodes) {\r\n\t\t\t\tthis.open_node(opened, false, 0);\r\n\t\t\t\tthis.select_node(s);\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered when a node is refreshed\r\n\t\t\t\t * @event\r\n\t\t\t\t * @name refresh_node.jstree\r\n\t\t\t\t * @param {Object} node - the refreshed node\r\n\t\t\t\t * @param {Array} nodes - an array of the IDs of the nodes that were reloaded\r\n\t\t\t\t */\r\n\t\t\t\tthis.trigger('refresh_node', { 'node' : obj, 'nodes' : nodes });\r\n\t\t\t}, this), false, true);\r\n\t\t},\r\n\t\t/**\r\n\t\t * set (change) the ID of a node\r\n\t\t * @name set_id(obj, id)\r\n\t\t * @param {mixed} obj the node\r\n\t\t * @param {String} id the new ID\r\n\t\t * @return {Boolean}\r\n\t\t * @trigger set_id.jstree\r\n\t\t */\r\n\t\tset_id : function (obj, id) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === $.jstree.root) { return false; }\r\n\t\t\tvar i, j, m = this._model.data, old = obj.id;\r\n\t\t\tid = id.toString();\r\n\t\t\t// update parents (replace current ID with new one in children and children_d)\r\n\t\t\tm[obj.parent].children[$.inArray(obj.id, m[obj.parent].children)] = id;\r\n\t\t\tfor(i = 0, j = obj.parents.length; i < j; i++) {\r\n\t\t\t\tm[obj.parents[i]].children_d[$.inArray(obj.id, m[obj.parents[i]].children_d)] = id;\r\n\t\t\t}\r\n\t\t\t// update children (replace current ID with new one in parent and parents)\r\n\t\t\tfor(i = 0, j = obj.children.length; i < j; i++) {\r\n\t\t\t\tm[obj.children[i]].parent = id;\r\n\t\t\t}\r\n\t\t\tfor(i = 0, j = obj.children_d.length; i < j; i++) {\r\n\t\t\t\tm[obj.children_d[i]].parents[$.inArray(obj.id, m[obj.children_d[i]].parents)] = id;\r\n\t\t\t}\r\n\t\t\ti = $.inArray(obj.id, this._data.core.selected);\r\n\t\t\tif(i !== -1) { this._data.core.selected[i] = id; }\r\n\t\t\t// update model and obj itself (obj.id, this._model.data[KEY])\r\n\t\t\ti = this.get_node(obj.id, true);\r\n\t\t\tif(i) {\r\n\t\t\t\ti.attr('id', id); //.children('.jstree-anchor').attr('id', id + '_anchor').end().attr('aria-labelledby', id + '_anchor');\r\n\t\t\t\tif(this.element.attr('aria-activedescendant') === obj.id) {\r\n\t\t\t\t\tthis.element.attr('aria-activedescendant', id);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tdelete m[obj.id];\r\n\t\t\tobj.id = id;\r\n\t\t\tobj.li_attr.id = id;\r\n\t\t\tm[id] = obj;\r\n\t\t\t/**\r\n\t\t\t * triggered when a node id value is changed\r\n\t\t\t * @event\r\n\t\t\t * @name set_id.jstree\r\n\t\t\t * @param {Object} node\r\n\t\t\t * @param {String} old the old id\r\n\t\t\t */\r\n\t\t\tthis.trigger('set_id',{ \"node\" : obj, \"new\" : obj.id, \"old\" : old });\r\n\t\t\treturn true;\r\n\t\t},\r\n\t\t/**\r\n\t\t * get the text value of a node\r\n\t\t * @name get_text(obj)\r\n\t\t * @param {mixed} obj the node\r\n\t\t * @return {String}\r\n\t\t */\r\n\t\tget_text : function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\treturn (!obj || obj.id === $.jstree.root) ? false : obj.text;\r\n\t\t},\r\n\t\t/**\r\n\t\t * set the text value of a node. Used internally, please use `rename_node(obj, val)`.\r\n\t\t * @private\r\n\t\t * @name set_text(obj, val)\r\n\t\t * @param {mixed} obj the node, you can pass an array to set the text on multiple nodes\r\n\t\t * @param {String} val the new text value\r\n\t\t * @return {Boolean}\r\n\t\t * @trigger set_text.jstree\r\n\t\t */\r\n\t\tset_text : function (obj, val) {\r\n\t\t\tvar t1, t2;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.set_text(obj[t1], val);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === $.jstree.root) { return false; }\r\n\t\t\tobj.text = val;\r\n\t\t\tif(this.get_node(obj, true).length) {\r\n\t\t\t\tthis.redraw_node(obj.id);\r\n\t\t\t}\r\n\t\t\t/**\r\n\t\t\t * triggered when a node text value is changed\r\n\t\t\t * @event\r\n\t\t\t * @name set_text.jstree\r\n\t\t\t * @param {Object} obj\r\n\t\t\t * @param {String} text the new value\r\n\t\t\t */\r\n\t\t\tthis.trigger('set_text',{ \"obj\" : obj, \"text\" : val });\r\n\t\t\treturn true;\r\n\t\t},\r\n\t\t/**\r\n\t\t * gets a JSON representation of a node (or the whole tree)\r\n\t\t * @name get_json([obj, options])\r\n\t\t * @param {mixed} obj\r\n\t\t * @param {Object} options\r\n\t\t * @param {Boolean} options.no_state do not return state information\r\n\t\t * @param {Boolean} options.no_id do not return ID\r\n\t\t * @param {Boolean} options.no_children do not include children\r\n\t\t * @param {Boolean} options.no_data do not include node data\r\n\t\t * @param {Boolean} options.no_li_attr do not include LI attributes\r\n\t\t * @param {Boolean} options.no_a_attr do not include A attributes\r\n\t\t * @param {Boolean} options.flat return flat JSON instead of nested\r\n\t\t * @return {Object}\r\n\t\t */\r\n\t\tget_json : function (obj, options, flat) {\r\n\t\t\tobj = this.get_node(obj || $.jstree.root);\r\n\t\t\tif(!obj) { return false; }\r\n\t\t\tif(options && options.flat && !flat) { flat = []; }\r\n\t\t\tvar tmp = {\r\n\t\t\t\t'id' : obj.id,\r\n\t\t\t\t'text' : obj.text,\r\n\t\t\t\t'icon' : this.get_icon(obj),\r\n\t\t\t\t'li_attr' : $.extend(true, {}, obj.li_attr),\r\n\t\t\t\t'a_attr' : $.extend(true, {}, obj.a_attr),\r\n\t\t\t\t'state' : {},\r\n\t\t\t\t'data' : options && options.no_data ? false : $.extend(true, $.isArray(obj.data)?[]:{}, obj.data)\r\n\t\t\t\t//( this.get_node(obj, true).length ? this.get_node(obj, true).data() : obj.data ),\r\n\t\t\t}, i, j;\r\n\t\t\tif(options && options.flat) {\r\n\t\t\t\ttmp.parent = obj.parent;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\ttmp.children = [];\r\n\t\t\t}\r\n\t\t\tif(!options || !options.no_state) {\r\n\t\t\t\tfor(i in obj.state) {\r\n\t\t\t\t\tif(obj.state.hasOwnProperty(i)) {\r\n\t\t\t\t\t\ttmp.state[i] = obj.state[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tdelete tmp.state;\r\n\t\t\t}\r\n\t\t\tif(options && options.no_li_attr) {\r\n\t\t\t\tdelete tmp.li_attr;\r\n\t\t\t}\r\n\t\t\tif(options && options.no_a_attr) {\r\n\t\t\t\tdelete tmp.a_attr;\r\n\t\t\t}\r\n\t\t\tif(options && options.no_id) {\r\n\t\t\t\tdelete tmp.id;\r\n\t\t\t\tif(tmp.li_attr && tmp.li_attr.id) {\r\n\t\t\t\t\tdelete tmp.li_attr.id;\r\n\t\t\t\t}\r\n\t\t\t\tif(tmp.a_attr && tmp.a_attr.id) {\r\n\t\t\t\t\tdelete tmp.a_attr.id;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(options && options.flat && obj.id !== $.jstree.root) {\r\n\t\t\t\tflat.push(tmp);\r\n\t\t\t}\r\n\t\t\tif(!options || !options.no_children) {\r\n\t\t\t\tfor(i = 0, j = obj.children.length; i < j; i++) {\r\n\t\t\t\t\tif(options && options.flat) {\r\n\t\t\t\t\t\tthis.get_json(obj.children[i], options, flat);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttmp.children.push(this.get_json(obj.children[i], options));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn options && options.flat ? flat : (obj.id === $.jstree.root ? tmp.children : tmp);\r\n\t\t},\r\n\t\t/**\r\n\t\t * create a new node (do not confuse with load_node)\r\n\t\t * @name create_node([par, node, pos, callback, is_loaded])\r\n\t\t * @param {mixed} par the parent node (to create a root node use either \"#\" (string) or `null`)\r\n\t\t * @param {mixed} node the data for the new node (a valid JSON object, or a simple string with the name)\r\n\t\t * @param {mixed} pos the index at which to insert the node, \"first\" and \"last\" are also supported, default is \"last\"\r\n\t\t * @param {Function} callback a function to be called once the node is created\r\n\t\t * @param {Boolean} is_loaded internal argument indicating if the parent node was succesfully loaded\r\n\t\t * @return {String} the ID of the newly create node\r\n\t\t * @trigger model.jstree, create_node.jstree\r\n\t\t */\r\n\t\tcreate_node : function (par, node, pos, callback, is_loaded) {\r\n\t\t\tif(par === null) { par = $.jstree.root; }\r\n\t\t\tpar = this.get_node(par);\r\n\t\t\tif(!par) { return false; }\r\n\t\t\tpos = pos === undefined ? \"last\" : pos;\r\n\t\t\tif(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) {\r\n\t\t\t\treturn this.load_node(par, function () { this.create_node(par, node, pos, callback, true); });\r\n\t\t\t}\r\n\t\t\tif(!node) { node = { \"text\" : this.get_string('New node') }; }\r\n\t\t\tif(typeof node === \"string\") {\r\n\t\t\t\tnode = { \"text\" : node };\r\n\t\t\t} else {\r\n\t\t\t\tnode = $.extend(true, {}, node);\r\n\t\t\t}\r\n\t\t\tif(node.text === undefined) { node.text = this.get_string('New node'); }\r\n\t\t\tvar tmp, dpc, i, j;\r\n\r\n\t\t\tif(par.id === $.jstree.root) {\r\n\t\t\t\tif(pos === \"before\") { pos = \"first\"; }\r\n\t\t\t\tif(pos === \"after\") { pos = \"last\"; }\r\n\t\t\t}\r\n\t\t\tswitch(pos) {\r\n\t\t\t\tcase \"before\":\r\n\t\t\t\t\ttmp = this.get_node(par.parent);\r\n\t\t\t\t\tpos = $.inArray(par.id, tmp.children);\r\n\t\t\t\t\tpar = tmp;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"after\" :\r\n\t\t\t\t\ttmp = this.get_node(par.parent);\r\n\t\t\t\t\tpos = $.inArray(par.id, tmp.children) + 1;\r\n\t\t\t\t\tpar = tmp;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"inside\":\r\n\t\t\t\tcase \"first\":\r\n\t\t\t\t\tpos = 0;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"last\":\r\n\t\t\t\t\tpos = par.children.length;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tif(!pos) { pos = 0; }\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tif(pos > par.children.length) { pos = par.children.length; }\r\n\t\t\tif(!node.id) { node.id = true; }\r\n\t\t\tif(!this.check(\"create_node\", node, par, pos)) {\r\n\t\t\t\tthis.settings.core.error.call(this, this._data.core.last_error);\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif(node.id === true) { delete node.id; }\r\n\t\t\tnode = this._parse_model_from_json(node, par.id, par.parents.concat());\r\n\t\t\tif(!node) { return false; }\r\n\t\t\ttmp = this.get_node(node);\r\n\t\t\tdpc = [];\r\n\t\t\tdpc.push(node);\r\n\t\t\tdpc = dpc.concat(tmp.children_d);\r\n\t\t\tthis.trigger('model', { \"nodes\" : dpc, \"parent\" : par.id });\r\n\r\n\t\t\tpar.children_d = par.children_d.concat(dpc);\r\n\t\t\tfor(i = 0, j = par.parents.length; i < j; i++) {\r\n\t\t\t\tthis._model.data[par.parents[i]].children_d = this._model.data[par.parents[i]].children_d.concat(dpc);\r\n\t\t\t}\r\n\t\t\tnode = tmp;\r\n\t\t\ttmp = [];\r\n\t\t\tfor(i = 0, j = par.children.length; i < j; i++) {\r\n\t\t\t\ttmp[i >= pos ? i+1 : i] = par.children[i];\r\n\t\t\t}\r\n\t\t\ttmp[pos] = node.id;\r\n\t\t\tpar.children = tmp;\r\n\r\n\t\t\tthis.redraw_node(par, true);\r\n\t\t\t/**\r\n\t\t\t * triggered when a node is created\r\n\t\t\t * @event\r\n\t\t\t * @name create_node.jstree\r\n\t\t\t * @param {Object} node\r\n\t\t\t * @param {String} parent the parent's ID\r\n\t\t\t * @param {Number} position the position of the new node among the parent's children\r\n\t\t\t */\r\n\t\t\tthis.trigger('create_node', { \"node\" : this.get_node(node), \"parent\" : par.id, \"position\" : pos });\r\n\t\t\tif(callback) { callback.call(this, this.get_node(node)); }\r\n\t\t\treturn node.id;\r\n\t\t},\r\n\t\t/**\r\n\t\t * set the text value of a node\r\n\t\t * @name rename_node(obj, val)\r\n\t\t * @param {mixed} obj the node, you can pass an array to rename multiple nodes to the same name\r\n\t\t * @param {String} val the new text value\r\n\t\t * @return {Boolean}\r\n\t\t * @trigger rename_node.jstree\r\n\t\t */\r\n\t\trename_node : function (obj, val) {\r\n\t\t\tvar t1, t2, old;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.rename_node(obj[t1], val);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === $.jstree.root) { return false; }\r\n\t\t\told = obj.text;\r\n\t\t\tif(!this.check(\"rename_node\", obj, this.get_parent(obj), val)) {\r\n\t\t\t\tthis.settings.core.error.call(this, this._data.core.last_error);\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tthis.set_text(obj, val); // .apply(this, Array.prototype.slice.call(arguments))\r\n\t\t\t/**\r\n\t\t\t * triggered when a node is renamed\r\n\t\t\t * @event\r\n\t\t\t * @name rename_node.jstree\r\n\t\t\t * @param {Object} node\r\n\t\t\t * @param {String} text the new value\r\n\t\t\t * @param {String} old the old value\r\n\t\t\t */\r\n\t\t\tthis.trigger('rename_node', { \"node\" : obj, \"text\" : val, \"old\" : old });\r\n\t\t\treturn true;\r\n\t\t},\r\n\t\t/**\r\n\t\t * remove a node\r\n\t\t * @name delete_node(obj)\r\n\t\t * @param {mixed} obj the node, you can pass an array to delete multiple nodes\r\n\t\t * @return {Boolean}\r\n\t\t * @trigger delete_node.jstree, changed.jstree\r\n\t\t */\r\n\t\tdelete_node : function (obj) {\r\n\t\t\tvar t1, t2, par, pos, tmp, i, j, k, l, c, top, lft;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.delete_node(obj[t1]);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === $.jstree.root) { return false; }\r\n\t\t\tpar = this.get_node(obj.parent);\r\n\t\t\tpos = $.inArray(obj.id, par.children);\r\n\t\t\tc = false;\r\n\t\t\tif(!this.check(\"delete_node\", obj, par, pos)) {\r\n\t\t\t\tthis.settings.core.error.call(this, this._data.core.last_error);\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif(pos !== -1) {\r\n\t\t\t\tpar.children = $.vakata.array_remove(par.children, pos);\r\n\t\t\t}\r\n\t\t\ttmp = obj.children_d.concat([]);\r\n\t\t\ttmp.push(obj.id);\r\n\t\t\tfor(i = 0, j = obj.parents.length; i < j; i++) {\r\n\t\t\t\tthis._model.data[obj.parents[i]].children_d = $.vakata.array_filter(this._model.data[obj.parents[i]].children_d, function (v) {\r\n\t\t\t\t\treturn $.inArray(v, tmp) === -1;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tfor(k = 0, l = tmp.length; k < l; k++) {\r\n\t\t\t\tif(this._model.data[tmp[k]].state.selected) {\r\n\t\t\t\t\tc = true;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (c) {\r\n\t\t\t\tthis._data.core.selected = $.vakata.array_filter(this._data.core.selected, function (v) {\r\n\t\t\t\t\treturn $.inArray(v, tmp) === -1;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\t/**\r\n\t\t\t * triggered when a node is deleted\r\n\t\t\t * @event\r\n\t\t\t * @name delete_node.jstree\r\n\t\t\t * @param {Object} node\r\n\t\t\t * @param {String} parent the parent's ID\r\n\t\t\t */\r\n\t\t\tthis.trigger('delete_node', { \"node\" : obj, \"parent\" : par.id });\r\n\t\t\tif(c) {\r\n\t\t\t\tthis.trigger('changed', { 'action' : 'delete_node', 'node' : obj, 'selected' : this._data.core.selected, 'parent' : par.id });\r\n\t\t\t}\r\n\t\t\tfor(k = 0, l = tmp.length; k < l; k++) {\r\n\t\t\t\tdelete this._model.data[tmp[k]];\r\n\t\t\t}\r\n\t\t\tif($.inArray(this._data.core.focused, tmp) !== -1) {\r\n\t\t\t\tthis._data.core.focused = null;\r\n\t\t\t\ttop = this.element[0].scrollTop;\r\n\t\t\t\tlft = this.element[0].scrollLeft;\r\n\t\t\t\tif(par.id === $.jstree.root) {\r\n\t\t\t\t\tif (this._model.data[$.jstree.root].children[0]) {\r\n\t\t\t\t\t\tthis.get_node(this._model.data[$.jstree.root].children[0], true).children('.jstree-anchor').focus();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.get_node(par, true).children('.jstree-anchor').focus();\r\n\t\t\t\t}\r\n\t\t\t\tthis.element[0].scrollTop = top;\r\n\t\t\t\tthis.element[0].scrollLeft = lft;\r\n\t\t\t}\r\n\t\t\tthis.redraw_node(par, true);\r\n\t\t\treturn true;\r\n\t\t},\r\n\t\t/**\r\n\t\t * check if an operation is premitted on the tree. Used internally.\r\n\t\t * @private\r\n\t\t * @name check(chk, obj, par, pos)\r\n\t\t * @param {String} chk the operation to check, can be \"create_node\", \"rename_node\", \"delete_node\", \"copy_node\" or \"move_node\"\r\n\t\t * @param {mixed} obj the node\r\n\t\t * @param {mixed} par the parent\r\n\t\t * @param {mixed} pos the position to insert at, or if \"rename_node\" - the new name\r\n\t\t * @param {mixed} more some various additional information, for example if a \"move_node\" operations is triggered by DND this will be the hovered node\r\n\t\t * @return {Boolean}\r\n\t\t */\r\n\t\tcheck : function (chk, obj, par, pos, more) {\r\n\t\t\tobj = obj && obj.id ? obj : this.get_node(obj);\r\n\t\t\tpar = par && par.id ? par : this.get_node(par);\r\n\t\t\tvar tmp = chk.match(/^move_node|copy_node|create_node$/i) ? par : obj,\r\n\t\t\t\tchc = this.settings.core.check_callback;\r\n\t\t\tif(chk === \"move_node\" || chk === \"copy_node\") {\r\n\t\t\t\tif((!more || !more.is_multi) && (chk === \"move_node\" && $.inArray(obj.id, par.children) === pos)) {\r\n\t\t\t\t\tthis._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_08', 'reason' : 'Moving node to its current position', 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif((!more || !more.is_multi) && (obj.id === par.id || (chk === \"move_node\" && $.inArray(obj.id, par.children) === pos) || $.inArray(par.id, obj.children_d) !== -1)) {\r\n\t\t\t\t\tthis._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_01', 'reason' : 'Moving parent inside child', 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(tmp && tmp.data) { tmp = tmp.data; }\r\n\t\t\tif(tmp && tmp.functions && (tmp.functions[chk] === false || tmp.functions[chk] === true)) {\r\n\t\t\t\tif(tmp.functions[chk] === false) {\r\n\t\t\t\t\tthis._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_02', 'reason' : 'Node data prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };\r\n\t\t\t\t}\r\n\t\t\t\treturn tmp.functions[chk];\r\n\t\t\t}\r\n\t\t\tif(chc === false || ($.isFunction(chc) && chc.call(this, chk, obj, par, pos, more) === false) || (chc && chc[chk] === false)) {\r\n\t\t\t\tthis._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_03', 'reason' : 'User config for core.check_callback prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t},\r\n\t\t/**\r\n\t\t * get the last error\r\n\t\t * @name last_error()\r\n\t\t * @return {Object}\r\n\t\t */\r\n\t\tlast_error : function () {\r\n\t\t\treturn this._data.core.last_error;\r\n\t\t},\r\n\t\t/**\r\n\t\t * move a node to a new parent\r\n\t\t * @name move_node(obj, par [, pos, callback, is_loaded])\r\n\t\t * @param {mixed} obj the node to move, pass an array to move multiple nodes\r\n\t\t * @param {mixed} par the new parent\r\n\t\t * @param {mixed} pos the position to insert at (besides integer values, \"first\" and \"last\" are supported, as well as \"before\" and \"after\"), defaults to integer `0`\r\n\t\t * @param {function} callback a function to call once the move is completed, receives 3 arguments - the node, the new parent and the position\r\n\t\t * @param {Boolean} is_loaded internal parameter indicating if the parent node has been loaded\r\n\t\t * @param {Boolean} skip_redraw internal parameter indicating if the tree should be redrawn\r\n\t\t * @param {Boolean} instance internal parameter indicating if the node comes from another instance\r\n\t\t * @trigger move_node.jstree\r\n\t\t */\r\n\t\tmove_node : function (obj, par, pos, callback, is_loaded, skip_redraw, origin) {\r\n\t\t\tvar t1, t2, old_par, old_pos, new_par, old_ins, is_multi, dpc, tmp, i, j, k, l, p;\r\n\r\n\t\t\tpar = this.get_node(par);\r\n\t\t\tpos = pos === undefined ? 0 : pos;\r\n\t\t\tif(!par) { return false; }\r\n\t\t\tif(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) {\r\n\t\t\t\treturn this.load_node(par, function () { this.move_node(obj, par, pos, callback, true, false, origin); });\r\n\t\t\t}\r\n\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tif(obj.length === 1) {\r\n\t\t\t\t\tobj = obj[0];\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t//obj = obj.slice();\r\n\t\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\t\tif((tmp = this.move_node(obj[t1], par, pos, callback, is_loaded, false, origin))) {\r\n\t\t\t\t\t\t\tpar = tmp;\r\n\t\t\t\t\t\t\tpos = \"after\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.redraw();\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tobj = obj && obj.id ? obj : this.get_node(obj);\r\n\r\n\t\t\tif(!obj || obj.id === $.jstree.root) { return false; }\r\n\r\n\t\t\told_par = (obj.parent || $.jstree.root).toString();\r\n\t\t\tnew_par = (!pos.toString().match(/^(before|after)$/) || par.id === $.jstree.root) ? par : this.get_node(par.parent);\r\n\t\t\told_ins = origin ? origin : (this._model.data[obj.id] ? this : $.jstree.reference(obj.id));\r\n\t\t\tis_multi = !old_ins || !old_ins._id || (this._id !== old_ins._id);\r\n\t\t\told_pos = old_ins && old_ins._id && old_par && old_ins._model.data[old_par] && old_ins._model.data[old_par].children ? $.inArray(obj.id, old_ins._model.data[old_par].children) : -1;\r\n\t\t\tif(old_ins && old_ins._id) {\r\n\t\t\t\tobj = old_ins._model.data[obj.id];\r\n\t\t\t}\r\n\r\n\t\t\tif(is_multi) {\r\n\t\t\t\tif((tmp = this.copy_node(obj, par, pos, callback, is_loaded, false, origin))) {\r\n\t\t\t\t\tif(old_ins) { old_ins.delete_node(obj); }\r\n\t\t\t\t\treturn tmp;\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\t//var m = this._model.data;\r\n\t\t\tif(par.id === $.jstree.root) {\r\n\t\t\t\tif(pos === \"before\") { pos = \"first\"; }\r\n\t\t\t\tif(pos === \"after\") { pos = \"last\"; }\r\n\t\t\t}\r\n\t\t\tswitch(pos) {\r\n\t\t\t\tcase \"before\":\r\n\t\t\t\t\tpos = $.inArray(par.id, new_par.children);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"after\" :\r\n\t\t\t\t\tpos = $.inArray(par.id, new_par.children) + 1;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"inside\":\r\n\t\t\t\tcase \"first\":\r\n\t\t\t\t\tpos = 0;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"last\":\r\n\t\t\t\t\tpos = new_par.children.length;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tif(!pos) { pos = 0; }\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tif(pos > new_par.children.length) { pos = new_par.children.length; }\r\n\t\t\tif(!this.check(\"move_node\", obj, new_par, pos, { 'core' : true, 'origin' : origin, 'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id) })) {\r\n\t\t\t\tthis.settings.core.error.call(this, this._data.core.last_error);\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif(obj.parent === new_par.id) {\r\n\t\t\t\tdpc = new_par.children.concat();\r\n\t\t\t\ttmp = $.inArray(obj.id, dpc);\r\n\t\t\t\tif(tmp !== -1) {\r\n\t\t\t\t\tdpc = $.vakata.array_remove(dpc, tmp);\r\n\t\t\t\t\tif(pos > tmp) { pos--; }\r\n\t\t\t\t}\r\n\t\t\t\ttmp = [];\r\n\t\t\t\tfor(i = 0, j = dpc.length; i < j; i++) {\r\n\t\t\t\t\ttmp[i >= pos ? i+1 : i] = dpc[i];\r\n\t\t\t\t}\r\n\t\t\t\ttmp[pos] = obj.id;\r\n\t\t\t\tnew_par.children = tmp;\r\n\t\t\t\tthis._node_changed(new_par.id);\r\n\t\t\t\tthis.redraw(new_par.id === $.jstree.root);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\t// clean old parent and up\r\n\t\t\t\ttmp = obj.children_d.concat();\r\n\t\t\t\ttmp.push(obj.id);\r\n\t\t\t\tfor(i = 0, j = obj.parents.length; i < j; i++) {\r\n\t\t\t\t\tdpc = [];\r\n\t\t\t\t\tp = old_ins._model.data[obj.parents[i]].children_d;\r\n\t\t\t\t\tfor(k = 0, l = p.length; k < l; k++) {\r\n\t\t\t\t\t\tif($.inArray(p[k], tmp) === -1) {\r\n\t\t\t\t\t\t\tdpc.push(p[k]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\told_ins._model.data[obj.parents[i]].children_d = dpc;\r\n\t\t\t\t}\r\n\t\t\t\told_ins._model.data[old_par].children = $.vakata.array_remove_item(old_ins._model.data[old_par].children, obj.id);\r\n\r\n\t\t\t\t// insert into new parent and up\r\n\t\t\t\tfor(i = 0, j = new_par.parents.length; i < j; i++) {\r\n\t\t\t\t\tthis._model.data[new_par.parents[i]].children_d = this._model.data[new_par.parents[i]].children_d.concat(tmp);\r\n\t\t\t\t}\r\n\t\t\t\tdpc = [];\r\n\t\t\t\tfor(i = 0, j = new_par.children.length; i < j; i++) {\r\n\t\t\t\t\tdpc[i >= pos ? i+1 : i] = new_par.children[i];\r\n\t\t\t\t}\r\n\t\t\t\tdpc[pos] = obj.id;\r\n\t\t\t\tnew_par.children = dpc;\r\n\t\t\t\tnew_par.children_d.push(obj.id);\r\n\t\t\t\tnew_par.children_d = new_par.children_d.concat(obj.children_d);\r\n\r\n\t\t\t\t// update object\r\n\t\t\t\tobj.parent = new_par.id;\r\n\t\t\t\ttmp = new_par.parents.concat();\r\n\t\t\t\ttmp.unshift(new_par.id);\r\n\t\t\t\tp = obj.parents.length;\r\n\t\t\t\tobj.parents = tmp;\r\n\r\n\t\t\t\t// update object children\r\n\t\t\t\ttmp = tmp.concat();\r\n\t\t\t\tfor(i = 0, j = obj.children_d.length; i < j; i++) {\r\n\t\t\t\t\tthis._model.data[obj.children_d[i]].parents = this._model.data[obj.children_d[i]].parents.slice(0,p*-1);\r\n\t\t\t\t\tArray.prototype.push.apply(this._model.data[obj.children_d[i]].parents, tmp);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(old_par === $.jstree.root || new_par.id === $.jstree.root) {\r\n\t\t\t\t\tthis._model.force_full_redraw = true;\r\n\t\t\t\t}\r\n\t\t\t\tif(!this._model.force_full_redraw) {\r\n\t\t\t\t\tthis._node_changed(old_par);\r\n\t\t\t\t\tthis._node_changed(new_par.id);\r\n\t\t\t\t}\r\n\t\t\t\tif(!skip_redraw) {\r\n\t\t\t\t\tthis.redraw();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(callback) { callback.call(this, obj, new_par, pos); }\r\n\t\t\t/**\r\n\t\t\t * triggered when a node is moved\r\n\t\t\t * @event\r\n\t\t\t * @name move_node.jstree\r\n\t\t\t * @param {Object} node\r\n\t\t\t * @param {String} parent the parent's ID\r\n\t\t\t * @param {Number} position the position of the node among the parent's children\r\n\t\t\t * @param {String} old_parent the old parent of the node\r\n\t\t\t * @param {Number} old_position the old position of the node\r\n\t\t\t * @param {Boolean} is_multi do the node and new parent belong to different instances\r\n\t\t\t * @param {jsTree} old_instance the instance the node came from\r\n\t\t\t * @param {jsTree} new_instance the instance of the new parent\r\n\t\t\t */\r\n\t\t\tthis.trigger('move_node', { \"node\" : obj, \"parent\" : new_par.id, \"position\" : pos, \"old_parent\" : old_par, \"old_position\" : old_pos, 'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id), 'old_instance' : old_ins, 'new_instance' : this });\r\n\t\t\treturn obj.id;\r\n\t\t},\r\n\t\t/**\r\n\t\t * copy a node to a new parent\r\n\t\t * @name copy_node(obj, par [, pos, callback, is_loaded])\r\n\t\t * @param {mixed} obj the node to copy, pass an array to copy multiple nodes\r\n\t\t * @param {mixed} par the new parent\r\n\t\t * @param {mixed} pos the position to insert at (besides integer values, \"first\" and \"last\" are supported, as well as \"before\" and \"after\"), defaults to integer `0`\r\n\t\t * @param {function} callback a function to call once the move is completed, receives 3 arguments - the node, the new parent and the position\r\n\t\t * @param {Boolean} is_loaded internal parameter indicating if the parent node has been loaded\r\n\t\t * @param {Boolean} skip_redraw internal parameter indicating if the tree should be redrawn\r\n\t\t * @param {Boolean} instance internal parameter indicating if the node comes from another instance\r\n\t\t * @trigger model.jstree copy_node.jstree\r\n\t\t */\r\n\t\tcopy_node : function (obj, par, pos, callback, is_loaded, skip_redraw, origin) {\r\n\t\t\tvar t1, t2, dpc, tmp, i, j, node, old_par, new_par, old_ins, is_multi;\r\n\r\n\t\t\tpar = this.get_node(par);\r\n\t\t\tpos = pos === undefined ? 0 : pos;\r\n\t\t\tif(!par) { return false; }\r\n\t\t\tif(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) {\r\n\t\t\t\treturn this.load_node(par, function () { this.copy_node(obj, par, pos, callback, true, false, origin); });\r\n\t\t\t}\r\n\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tif(obj.length === 1) {\r\n\t\t\t\t\tobj = obj[0];\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t//obj = obj.slice();\r\n\t\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\t\tif((tmp = this.copy_node(obj[t1], par, pos, callback, is_loaded, true, origin))) {\r\n\t\t\t\t\t\t\tpar = tmp;\r\n\t\t\t\t\t\t\tpos = \"after\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.redraw();\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tobj = obj && obj.id ? obj : this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === $.jstree.root) { return false; }\r\n\r\n\t\t\told_par = (obj.parent || $.jstree.root).toString();\r\n\t\t\tnew_par = (!pos.toString().match(/^(before|after)$/) || par.id === $.jstree.root) ? par : this.get_node(par.parent);\r\n\t\t\told_ins = origin ? origin : (this._model.data[obj.id] ? this : $.jstree.reference(obj.id));\r\n\t\t\tis_multi = !old_ins || !old_ins._id || (this._id !== old_ins._id);\r\n\r\n\t\t\tif(old_ins && old_ins._id) {\r\n\t\t\t\tobj = old_ins._model.data[obj.id];\r\n\t\t\t}\r\n\r\n\t\t\tif(par.id === $.jstree.root) {\r\n\t\t\t\tif(pos === \"before\") { pos = \"first\"; }\r\n\t\t\t\tif(pos === \"after\") { pos = \"last\"; }\r\n\t\t\t}\r\n\t\t\tswitch(pos) {\r\n\t\t\t\tcase \"before\":\r\n\t\t\t\t\tpos = $.inArray(par.id, new_par.children);\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"after\" :\r\n\t\t\t\t\tpos = $.inArray(par.id, new_par.children) + 1;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"inside\":\r\n\t\t\t\tcase \"first\":\r\n\t\t\t\t\tpos = 0;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"last\":\r\n\t\t\t\t\tpos = new_par.children.length;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tif(!pos) { pos = 0; }\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tif(pos > new_par.children.length) { pos = new_par.children.length; }\r\n\t\t\tif(!this.check(\"copy_node\", obj, new_par, pos, { 'core' : true, 'origin' : origin, 'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id) })) {\r\n\t\t\t\tthis.settings.core.error.call(this, this._data.core.last_error);\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tnode = old_ins ? old_ins.get_json(obj, { no_id : true, no_data : true, no_state : true }) : obj;\r\n\t\t\tif(!node) { return false; }\r\n\t\t\tif(node.id === true) { delete node.id; }\r\n\t\t\tnode = this._parse_model_from_json(node, new_par.id, new_par.parents.concat());\r\n\t\t\tif(!node) { return false; }\r\n\t\t\ttmp = this.get_node(node);\r\n\t\t\tif(obj && obj.state && obj.state.loaded === false) { tmp.state.loaded = false; }\r\n\t\t\tdpc = [];\r\n\t\t\tdpc.push(node);\r\n\t\t\tdpc = dpc.concat(tmp.children_d);\r\n\t\t\tthis.trigger('model', { \"nodes\" : dpc, \"parent\" : new_par.id });\r\n\r\n\t\t\t// insert into new parent and up\r\n\t\t\tfor(i = 0, j = new_par.parents.length; i < j; i++) {\r\n\t\t\t\tthis._model.data[new_par.parents[i]].children_d = this._model.data[new_par.parents[i]].children_d.concat(dpc);\r\n\t\t\t}\r\n\t\t\tdpc = [];\r\n\t\t\tfor(i = 0, j = new_par.children.length; i < j; i++) {\r\n\t\t\t\tdpc[i >= pos ? i+1 : i] = new_par.children[i];\r\n\t\t\t}\r\n\t\t\tdpc[pos] = tmp.id;\r\n\t\t\tnew_par.children = dpc;\r\n\t\t\tnew_par.children_d.push(tmp.id);\r\n\t\t\tnew_par.children_d = new_par.children_d.concat(tmp.children_d);\r\n\r\n\t\t\tif(new_par.id === $.jstree.root) {\r\n\t\t\t\tthis._model.force_full_redraw = true;\r\n\t\t\t}\r\n\t\t\tif(!this._model.force_full_redraw) {\r\n\t\t\t\tthis._node_changed(new_par.id);\r\n\t\t\t}\r\n\t\t\tif(!skip_redraw) {\r\n\t\t\t\tthis.redraw(new_par.id === $.jstree.root);\r\n\t\t\t}\r\n\t\t\tif(callback) { callback.call(this, tmp, new_par, pos); }\r\n\t\t\t/**\r\n\t\t\t * triggered when a node is copied\r\n\t\t\t * @event\r\n\t\t\t * @name copy_node.jstree\r\n\t\t\t * @param {Object} node the copied node\r\n\t\t\t * @param {Object} original the original node\r\n\t\t\t * @param {String} parent the parent's ID\r\n\t\t\t * @param {Number} position the position of the node among the parent's children\r\n\t\t\t * @param {String} old_parent the old parent of the node\r\n\t\t\t * @param {Number} old_position the position of the original node\r\n\t\t\t * @param {Boolean} is_multi do the node and new parent belong to different instances\r\n\t\t\t * @param {jsTree} old_instance the instance the node came from\r\n\t\t\t * @param {jsTree} new_instance the instance of the new parent\r\n\t\t\t */\r\n\t\t\tthis.trigger('copy_node', { \"node\" : tmp, \"original\" : obj, \"parent\" : new_par.id, \"position\" : pos, \"old_parent\" : old_par, \"old_position\" : old_ins && old_ins._id && old_par && old_ins._model.data[old_par] && old_ins._model.data[old_par].children ? $.inArray(obj.id, old_ins._model.data[old_par].children) : -1,'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id), 'old_instance' : old_ins, 'new_instance' : this });\r\n\t\t\treturn tmp.id;\r\n\t\t},\r\n\t\t/**\r\n\t\t * cut a node (a later call to `paste(obj)` would move the node)\r\n\t\t * @name cut(obj)\r\n\t\t * @param {mixed} obj multiple objects can be passed using an array\r\n\t\t * @trigger cut.jstree\r\n\t\t */\r\n\t\tcut : function (obj) {\r\n\t\t\tif(!obj) { obj = this._data.core.selected.concat(); }\r\n\t\t\tif(!$.isArray(obj)) { obj = [obj]; }\r\n\t\t\tif(!obj.length) { return false; }\r\n\t\t\tvar tmp = [], o, t1, t2;\r\n\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\to = this.get_node(obj[t1]);\r\n\t\t\t\tif(o && o.id && o.id !== $.jstree.root) { tmp.push(o); }\r\n\t\t\t}\r\n\t\t\tif(!tmp.length) { return false; }\r\n\t\t\tccp_node = tmp;\r\n\t\t\tccp_inst = this;\r\n\t\t\tccp_mode = 'move_node';\r\n\t\t\t/**\r\n\t\t\t * triggered when nodes are added to the buffer for moving\r\n\t\t\t * @event\r\n\t\t\t * @name cut.jstree\r\n\t\t\t * @param {Array} node\r\n\t\t\t */\r\n\t\t\tthis.trigger('cut', { \"node\" : obj });\r\n\t\t},\r\n\t\t/**\r\n\t\t * copy a node (a later call to `paste(obj)` would copy the node)\r\n\t\t * @name copy(obj)\r\n\t\t * @param {mixed} obj multiple objects can be passed using an array\r\n\t\t * @trigger copy.jstree\r\n\t\t */\r\n\t\tcopy : function (obj) {\r\n\t\t\tif(!obj) { obj = this._data.core.selected.concat(); }\r\n\t\t\tif(!$.isArray(obj)) { obj = [obj]; }\r\n\t\t\tif(!obj.length) { return false; }\r\n\t\t\tvar tmp = [], o, t1, t2;\r\n\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\to = this.get_node(obj[t1]);\r\n\t\t\t\tif(o && o.id && o.id !== $.jstree.root) { tmp.push(o); }\r\n\t\t\t}\r\n\t\t\tif(!tmp.length) { return false; }\r\n\t\t\tccp_node = tmp;\r\n\t\t\tccp_inst = this;\r\n\t\t\tccp_mode = 'copy_node';\r\n\t\t\t/**\r\n\t\t\t * triggered when nodes are added to the buffer for copying\r\n\t\t\t * @event\r\n\t\t\t * @name copy.jstree\r\n\t\t\t * @param {Array} node\r\n\t\t\t */\r\n\t\t\tthis.trigger('copy', { \"node\" : obj });\r\n\t\t},\r\n\t\t/**\r\n\t\t * get the current buffer (any nodes that are waiting for a paste operation)\r\n\t\t * @name get_buffer()\r\n\t\t * @return {Object} an object consisting of `mode` (\"copy_node\" or \"move_node\"), `node` (an array of objects) and `inst` (the instance)\r\n\t\t */\r\n\t\tget_buffer : function () {\r\n\t\t\treturn { 'mode' : ccp_mode, 'node' : ccp_node, 'inst' : ccp_inst };\r\n\t\t},\r\n\t\t/**\r\n\t\t * check if there is something in the buffer to paste\r\n\t\t * @name can_paste()\r\n\t\t * @return {Boolean}\r\n\t\t */\r\n\t\tcan_paste : function () {\r\n\t\t\treturn ccp_mode !== false && ccp_node !== false; // && ccp_inst._model.data[ccp_node];\r\n\t\t},\r\n\t\t/**\r\n\t\t * copy or move the previously cut or copied nodes to a new parent\r\n\t\t * @name paste(obj [, pos])\r\n\t\t * @param {mixed} obj the new parent\r\n\t\t * @param {mixed} pos the position to insert at (besides integer, \"first\" and \"last\" are supported), defaults to integer `0`\r\n\t\t * @trigger paste.jstree\r\n\t\t */\r\n\t\tpaste : function (obj, pos) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || !ccp_mode || !ccp_mode.match(/^(copy_node|move_node)$/) || !ccp_node) { return false; }\r\n\t\t\tif(this[ccp_mode](ccp_node, obj, pos, false, false, false, ccp_inst)) {\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered when paste is invoked\r\n\t\t\t\t * @event\r\n\t\t\t\t * @name paste.jstree\r\n\t\t\t\t * @param {String} parent the ID of the receiving node\r\n\t\t\t\t * @param {Array} node the nodes in the buffer\r\n\t\t\t\t * @param {String} mode the performed operation - \"copy_node\" or \"move_node\"\r\n\t\t\t\t */\r\n\t\t\t\tthis.trigger('paste', { \"parent\" : obj.id, \"node\" : ccp_node, \"mode\" : ccp_mode });\r\n\t\t\t}\r\n\t\t\tccp_node = false;\r\n\t\t\tccp_mode = false;\r\n\t\t\tccp_inst = false;\r\n\t\t},\r\n\t\t/**\r\n\t\t * clear the buffer of previously copied or cut nodes\r\n\t\t * @name clear_buffer()\r\n\t\t * @trigger clear_buffer.jstree\r\n\t\t */\r\n\t\tclear_buffer : function () {\r\n\t\t\tccp_node = false;\r\n\t\t\tccp_mode = false;\r\n\t\t\tccp_inst = false;\r\n\t\t\t/**\r\n\t\t\t * triggered when the copy / cut buffer is cleared\r\n\t\t\t * @event\r\n\t\t\t * @name clear_buffer.jstree\r\n\t\t\t */\r\n\t\t\tthis.trigger('clear_buffer');\r\n\t\t},\r\n\t\t/**\r\n\t\t * put a node in edit mode (input field to rename the node)\r\n\t\t * @name edit(obj [, default_text, callback])\r\n\t\t * @param {mixed} obj\r\n\t\t * @param {String} default_text the text to populate the input with (if omitted or set to a non-string value the node's text value is used)\r\n\t\t * @param {Function} callback a function to be called once the text box is blurred, it is called in the instance's scope and receives the node, a status parameter (true if the rename is successful, false otherwise), a boolean indicating if the user cancelled the edit and the original unescaped value provided by the user. You can also access the node's title using .text\r\n\t\t */\r\n\t\tedit : function (obj, default_text, callback) {\r\n\t\t\tvar rtl, w, a, s, t, h1, h2, fn, tmp, cancel = false;\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj) { return false; }\r\n\t\t\tif(!this.check(\"edit\", obj, this.get_parent(obj))) {\r\n\t\t\t\tthis.settings.core.error.call(this, this._data.core.last_error);\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\ttmp = obj;\r\n\t\t\tdefault_text = typeof default_text === 'string' ? default_text : obj.text;\r\n\t\t\tthis.set_text(obj, \"\");\r\n\t\t\tobj = this._open_to(obj);\r\n\t\t\ttmp.text = default_text;\r\n\r\n\t\t\trtl = this._data.core.rtl;\r\n\t\t\tw = this.element.width();\r\n\t\t\tthis._data.core.focused = tmp.id;\r\n\t\t\ta = obj.children('.jstree-anchor').focus();\r\n\t\t\ts = $('');\r\n\t\t\t/*!\r\n\t\t\toi = obj.children(\"i:visible\"),\r\n\t\t\tai = a.children(\"i:visible\"),\r\n\t\t\tw1 = oi.width() * oi.length,\r\n\t\t\tw2 = ai.width() * ai.length,\r\n\t\t\t*/\r\n\t\t\tt = default_text;\r\n\t\t\th1 = $(\"<\"+\"div>\", { css : { \"position\" : \"absolute\", \"top\" : \"-200px\", \"left\" : (rtl ? \"0px\" : \"-1000px\"), \"visibility\" : \"hidden\" } }).appendTo(document.body);\r\n\t\t\th2 = $(\"<\"+\"input />\", {\r\n\t\t\t\t\t\t\"value\" : t,\r\n\t\t\t\t\t\t\"class\" : \"jstree-rename-input\",\r\n\t\t\t\t\t\t// \"size\" : t.length,\r\n\t\t\t\t\t\t\"css\" : {\r\n\t\t\t\t\t\t\t\"padding\" : \"0\",\r\n\t\t\t\t\t\t\t\"border\" : \"1px solid silver\",\r\n\t\t\t\t\t\t\t\"box-sizing\" : \"border-box\",\r\n\t\t\t\t\t\t\t\"display\" : \"inline-block\",\r\n\t\t\t\t\t\t\t\"height\" : (this._data.core.li_height) + \"px\",\r\n\t\t\t\t\t\t\t\"lineHeight\" : (this._data.core.li_height) + \"px\",\r\n\t\t\t\t\t\t\t\"width\" : \"150px\" // will be set a bit further down\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\"blur\" : $.proxy(function (e) {\r\n\t\t\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\tvar i = s.children(\".jstree-rename-input\"),\r\n\t\t\t\t\t\t\t\tv = i.val(),\r\n\t\t\t\t\t\t\t\tf = this.settings.core.force_text,\r\n\t\t\t\t\t\t\t\tnv;\r\n\t\t\t\t\t\t\tif(v === \"\") { v = t; }\r\n\t\t\t\t\t\t\th1.remove();\r\n\t\t\t\t\t\t\ts.replaceWith(a);\r\n\t\t\t\t\t\t\ts.remove();\r\n\t\t\t\t\t\t\tt = f ? t : $('
').append($.parseHTML(t)).html();\r\n\t\t\t\t\t\t\tobj = this.get_node(obj);\r\n\t\t\t\t\t\t\tthis.set_text(obj, t);\r\n\t\t\t\t\t\t\tnv = !!this.rename_node(obj, f ? $('
').text(v).text() : $('
').append($.parseHTML(v)).html());\r\n\t\t\t\t\t\t\tif(!nv) {\r\n\t\t\t\t\t\t\t\tthis.set_text(obj, t); // move this up? and fix #483\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tthis._data.core.focused = tmp.id;\r\n\t\t\t\t\t\t\tsetTimeout($.proxy(function () {\r\n\t\t\t\t\t\t\t\tvar node = this.get_node(tmp.id, true);\r\n\t\t\t\t\t\t\t\tif(node.length) {\r\n\t\t\t\t\t\t\t\t\tthis._data.core.focused = tmp.id;\r\n\t\t\t\t\t\t\t\t\tnode.children('.jstree-anchor').focus();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}, this), 0);\r\n\t\t\t\t\t\t\tif(callback) {\r\n\t\t\t\t\t\t\t\tcallback.call(this, tmp, nv, cancel, v);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\th2 = null;\r\n\t\t\t\t\t\t}, this),\r\n\t\t\t\t\t\t\"keydown\" : function (e) {\r\n\t\t\t\t\t\t\tvar key = e.which;\r\n\t\t\t\t\t\t\tif(key === 27) {\r\n\t\t\t\t\t\t\t\tcancel = true;\r\n\t\t\t\t\t\t\t\tthis.value = t;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(key === 27 || key === 13 || key === 37 || key === 38 || key === 39 || key === 40 || key === 32) {\r\n\t\t\t\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(key === 27 || key === 13) {\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\tthis.blur();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\"click\" : function (e) { e.stopImmediatePropagation(); },\r\n\t\t\t\t\t\t\"mousedown\" : function (e) { e.stopImmediatePropagation(); },\r\n\t\t\t\t\t\t\"keyup\" : function (e) {\r\n\t\t\t\t\t\t\th2.width(Math.min(h1.text(\"pW\" + this.value).width(),w));\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\"keypress\" : function(e) {\r\n\t\t\t\t\t\t\tif(e.which === 13) { return false; }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\tfn = {\r\n\t\t\t\t\t\tfontFamily\t\t: a.css('fontFamily')\t\t|| '',\r\n\t\t\t\t\t\tfontSize\t\t: a.css('fontSize')\t\t\t|| '',\r\n\t\t\t\t\t\tfontWeight\t\t: a.css('fontWeight')\t\t|| '',\r\n\t\t\t\t\t\tfontStyle\t\t: a.css('fontStyle')\t\t|| '',\r\n\t\t\t\t\t\tfontStretch\t\t: a.css('fontStretch')\t\t|| '',\r\n\t\t\t\t\t\tfontVariant\t\t: a.css('fontVariant')\t\t|| '',\r\n\t\t\t\t\t\tletterSpacing\t: a.css('letterSpacing')\t|| '',\r\n\t\t\t\t\t\twordSpacing\t\t: a.css('wordSpacing')\t\t|| ''\r\n\t\t\t\t};\r\n\t\t\ts.attr('class', a.attr('class')).append(a.contents().clone()).append(h2);\r\n\t\t\ta.replaceWith(s);\r\n\t\t\th1.css(fn);\r\n\t\t\th2.css(fn).width(Math.min(h1.text(\"pW\" + h2[0].value).width(),w))[0].select();\r\n\t\t\t$(document).one('mousedown.jstree touchstart.jstree dnd_start.vakata', function (e) {\r\n\t\t\t\tif (h2 && e.target !== h2) {\r\n\t\t\t\t\t$(h2).blur();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t},\r\n\r\n\r\n\t\t/**\r\n\t\t * changes the theme\r\n\t\t * @name set_theme(theme_name [, theme_url])\r\n\t\t * @param {String} theme_name the name of the new theme to apply\r\n\t\t * @param {mixed} theme_url the location of the CSS file for this theme. Omit or set to `false` if you manually included the file. Set to `true` to autoload from the `core.themes.dir` directory.\r\n\t\t * @trigger set_theme.jstree\r\n\t\t */\r\n\t\tset_theme : function (theme_name, theme_url) {\r\n\t\t\tif(!theme_name) { return false; }\r\n\t\t\tif(theme_url === true) {\r\n\t\t\t\tvar dir = this.settings.core.themes.dir;\r\n\t\t\t\tif(!dir) { dir = $.jstree.path + '/themes'; }\r\n\t\t\t\ttheme_url = dir + '/' + theme_name + '/style.css';\r\n\t\t\t}\r\n\t\t\tif(theme_url && $.inArray(theme_url, themes_loaded) === -1) {\r\n\t\t\t\t$('head').append('<'+'link rel=\"stylesheet\" href=\"' + theme_url + '\" type=\"text/css\" />');\r\n\t\t\t\tthemes_loaded.push(theme_url);\r\n\t\t\t}\r\n\t\t\tif(this._data.core.themes.name) {\r\n\t\t\t\tthis.element.removeClass('jstree-' + this._data.core.themes.name);\r\n\t\t\t}\r\n\t\t\tthis._data.core.themes.name = theme_name;\r\n\t\t\tthis.element.addClass('jstree-' + theme_name);\r\n\t\t\tthis.element[this.settings.core.themes.responsive ? 'addClass' : 'removeClass' ]('jstree-' + theme_name + '-responsive');\r\n\t\t\t/**\r\n\t\t\t * triggered when a theme is set\r\n\t\t\t * @event\r\n\t\t\t * @name set_theme.jstree\r\n\t\t\t * @param {String} theme the new theme\r\n\t\t\t */\r\n\t\t\tthis.trigger('set_theme', { 'theme' : theme_name });\r\n\t\t},\r\n\t\t/**\r\n\t\t * gets the name of the currently applied theme name\r\n\t\t * @name get_theme()\r\n\t\t * @return {String}\r\n\t\t */\r\n\t\tget_theme : function () { return this._data.core.themes.name; },\r\n\t\t/**\r\n\t\t * changes the theme variant (if the theme has variants)\r\n\t\t * @name set_theme_variant(variant_name)\r\n\t\t * @param {String|Boolean} variant_name the variant to apply (if `false` is used the current variant is removed)\r\n\t\t */\r\n\t\tset_theme_variant : function (variant_name) {\r\n\t\t\tif(this._data.core.themes.variant) {\r\n\t\t\t\tthis.element.removeClass('jstree-' + this._data.core.themes.name + '-' + this._data.core.themes.variant);\r\n\t\t\t}\r\n\t\t\tthis._data.core.themes.variant = variant_name;\r\n\t\t\tif(variant_name) {\r\n\t\t\t\tthis.element.addClass('jstree-' + this._data.core.themes.name + '-' + this._data.core.themes.variant);\r\n\t\t\t}\r\n\t\t},\r\n\t\t/**\r\n\t\t * gets the name of the currently applied theme variant\r\n\t\t * @name get_theme()\r\n\t\t * @return {String}\r\n\t\t */\r\n\t\tget_theme_variant : function () { return this._data.core.themes.variant; },\r\n\t\t/**\r\n\t\t * shows a striped background on the container (if the theme supports it)\r\n\t\t * @name show_stripes()\r\n\t\t */\r\n\t\tshow_stripes : function () {\r\n\t\t\tthis._data.core.themes.stripes = true;\r\n\t\t\tthis.get_container_ul().addClass(\"jstree-striped\");\r\n\t\t\t/**\r\n\t\t\t * triggered when stripes are shown\r\n\t\t\t * @event\r\n\t\t\t * @name show_stripes.jstree\r\n\t\t\t */\r\n\t\t\tthis.trigger('show_stripes');\r\n\t\t},\r\n\t\t/**\r\n\t\t * hides the striped background on the container\r\n\t\t * @name hide_stripes()\r\n\t\t */\r\n\t\thide_stripes : function () {\r\n\t\t\tthis._data.core.themes.stripes = false;\r\n\t\t\tthis.get_container_ul().removeClass(\"jstree-striped\");\r\n\t\t\t/**\r\n\t\t\t * triggered when stripes are hidden\r\n\t\t\t * @event\r\n\t\t\t * @name hide_stripes.jstree\r\n\t\t\t */\r\n\t\t\tthis.trigger('hide_stripes');\r\n\t\t},\r\n\t\t/**\r\n\t\t * toggles the striped background on the container\r\n\t\t * @name toggle_stripes()\r\n\t\t */\r\n\t\ttoggle_stripes : function () { if(this._data.core.themes.stripes) { this.hide_stripes(); } else { this.show_stripes(); } },\r\n\t\t/**\r\n\t\t * shows the connecting dots (if the theme supports it)\r\n\t\t * @name show_dots()\r\n\t\t */\r\n\t\tshow_dots : function () {\r\n\t\t\tthis._data.core.themes.dots = true;\r\n\t\t\tthis.get_container_ul().removeClass(\"jstree-no-dots\");\r\n\t\t\t/**\r\n\t\t\t * triggered when dots are shown\r\n\t\t\t * @event\r\n\t\t\t * @name show_dots.jstree\r\n\t\t\t */\r\n\t\t\tthis.trigger('show_dots');\r\n\t\t},\r\n\t\t/**\r\n\t\t * hides the connecting dots\r\n\t\t * @name hide_dots()\r\n\t\t */\r\n\t\thide_dots : function () {\r\n\t\t\tthis._data.core.themes.dots = false;\r\n\t\t\tthis.get_container_ul().addClass(\"jstree-no-dots\");\r\n\t\t\t/**\r\n\t\t\t * triggered when dots are hidden\r\n\t\t\t * @event\r\n\t\t\t * @name hide_dots.jstree\r\n\t\t\t */\r\n\t\t\tthis.trigger('hide_dots');\r\n\t\t},\r\n\t\t/**\r\n\t\t * toggles the connecting dots\r\n\t\t * @name toggle_dots()\r\n\t\t */\r\n\t\ttoggle_dots : function () { if(this._data.core.themes.dots) { this.hide_dots(); } else { this.show_dots(); } },\r\n\t\t/**\r\n\t\t * show the node icons\r\n\t\t * @name show_icons()\r\n\t\t */\r\n\t\tshow_icons : function () {\r\n\t\t\tthis._data.core.themes.icons = true;\r\n\t\t\tthis.get_container_ul().removeClass(\"jstree-no-icons\");\r\n\t\t\t/**\r\n\t\t\t * triggered when icons are shown\r\n\t\t\t * @event\r\n\t\t\t * @name show_icons.jstree\r\n\t\t\t */\r\n\t\t\tthis.trigger('show_icons');\r\n\t\t},\r\n\t\t/**\r\n\t\t * hide the node icons\r\n\t\t * @name hide_icons()\r\n\t\t */\r\n\t\thide_icons : function () {\r\n\t\t\tthis._data.core.themes.icons = false;\r\n\t\t\tthis.get_container_ul().addClass(\"jstree-no-icons\");\r\n\t\t\t/**\r\n\t\t\t * triggered when icons are hidden\r\n\t\t\t * @event\r\n\t\t\t * @name hide_icons.jstree\r\n\t\t\t */\r\n\t\t\tthis.trigger('hide_icons');\r\n\t\t},\r\n\t\t/**\r\n\t\t * toggle the node icons\r\n\t\t * @name toggle_icons()\r\n\t\t */\r\n\t\ttoggle_icons : function () { if(this._data.core.themes.icons) { this.hide_icons(); } else { this.show_icons(); } },\r\n\t\t/**\r\n\t\t * show the node ellipsis\r\n\t\t * @name show_icons()\r\n\t\t */\r\n\t\tshow_ellipsis : function () {\r\n\t\t\tthis._data.core.themes.ellipsis = true;\r\n\t\t\tthis.get_container_ul().addClass(\"jstree-ellipsis\");\r\n\t\t\t/**\r\n\t\t\t * triggered when ellisis is shown\r\n\t\t\t * @event\r\n\t\t\t * @name show_ellipsis.jstree\r\n\t\t\t */\r\n\t\t\tthis.trigger('show_ellipsis');\r\n\t\t},\r\n\t\t/**\r\n\t\t * hide the node ellipsis\r\n\t\t * @name hide_ellipsis()\r\n\t\t */\r\n\t\thide_ellipsis : function () {\r\n\t\t\tthis._data.core.themes.ellipsis = false;\r\n\t\t\tthis.get_container_ul().removeClass(\"jstree-ellipsis\");\r\n\t\t\t/**\r\n\t\t\t * triggered when ellisis is hidden\r\n\t\t\t * @event\r\n\t\t\t * @name hide_ellipsis.jstree\r\n\t\t\t */\r\n\t\t\tthis.trigger('hide_ellipsis');\r\n\t\t},\r\n\t\t/**\r\n\t\t * toggle the node ellipsis\r\n\t\t * @name toggle_icons()\r\n\t\t */\r\n\t\ttoggle_ellipsis : function () { if(this._data.core.themes.ellipsis) { this.hide_ellipsis(); } else { this.show_ellipsis(); } },\r\n\t\t/**\r\n\t\t * set the node icon for a node\r\n\t\t * @name set_icon(obj, icon)\r\n\t\t * @param {mixed} obj\r\n\t\t * @param {String} icon the new icon - can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class\r\n\t\t */\r\n\t\tset_icon : function (obj, icon) {\r\n\t\t\tvar t1, t2, dom, old;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.set_icon(obj[t1], icon);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === $.jstree.root) { return false; }\r\n\t\t\told = obj.icon;\r\n\t\t\tobj.icon = icon === true || icon === null || icon === undefined || icon === '' ? true : icon;\r\n\t\t\tdom = this.get_node(obj, true).children(\".jstree-anchor\").children(\".jstree-themeicon\");\r\n\t\t\tif(icon === false) {\r\n\t\t\t\tdom.removeClass('jstree-themeicon-custom ' + old).css(\"background\",\"\").removeAttr(\"rel\");\r\n\t\t\t\tthis.hide_icon(obj);\r\n\t\t\t}\r\n\t\t\telse if(icon === true || icon === null || icon === undefined || icon === '') {\r\n\t\t\t\tdom.removeClass('jstree-themeicon-custom ' + old).css(\"background\",\"\").removeAttr(\"rel\");\r\n\t\t\t\tif(old === false) { this.show_icon(obj); }\r\n\t\t\t}\r\n\t\t\telse if(icon.indexOf(\"/\") === -1 && icon.indexOf(\".\") === -1) {\r\n\t\t\t\tdom.removeClass(old).css(\"background\",\"\");\r\n\t\t\t\tdom.addClass(icon + ' jstree-themeicon-custom').attr(\"rel\",icon);\r\n\t\t\t\tif(old === false) { this.show_icon(obj); }\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tdom.removeClass(old).css(\"background\",\"\");\r\n\t\t\t\tdom.addClass('jstree-themeicon-custom').css(\"background\", \"url('\" + icon + \"') center center no-repeat\").attr(\"rel\",icon);\r\n\t\t\t\tif(old === false) { this.show_icon(obj); }\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t},\r\n\t\t/**\r\n\t\t * get the node icon for a node\r\n\t\t * @name get_icon(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t * @return {String}\r\n\t\t */\r\n\t\tget_icon : function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\treturn (!obj || obj.id === $.jstree.root) ? false : obj.icon;\r\n\t\t},\r\n\t\t/**\r\n\t\t * hide the icon on an individual node\r\n\t\t * @name hide_icon(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t */\r\n\t\thide_icon : function (obj) {\r\n\t\t\tvar t1, t2;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.hide_icon(obj[t1]);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj === $.jstree.root) { return false; }\r\n\t\t\tobj.icon = false;\r\n\t\t\tthis.get_node(obj, true).children(\".jstree-anchor\").children(\".jstree-themeicon\").addClass('jstree-themeicon-hidden');\r\n\t\t\treturn true;\r\n\t\t},\r\n\t\t/**\r\n\t\t * show the icon on an individual node\r\n\t\t * @name show_icon(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t */\r\n\t\tshow_icon : function (obj) {\r\n\t\t\tvar t1, t2, dom;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.show_icon(obj[t1]);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj === $.jstree.root) { return false; }\r\n\t\t\tdom = this.get_node(obj, true);\r\n\t\t\tobj.icon = dom.length ? dom.children(\".jstree-anchor\").children(\".jstree-themeicon\").attr('rel') : true;\r\n\t\t\tif(!obj.icon) { obj.icon = true; }\r\n\t\t\tdom.children(\".jstree-anchor\").children(\".jstree-themeicon\").removeClass('jstree-themeicon-hidden');\r\n\t\t\treturn true;\r\n\t\t}\r\n\t};\r\n\r\n\t// helpers\r\n\t$.vakata = {};\r\n\t// collect attributes\r\n\t$.vakata.attributes = function(node, with_values) {\r\n\t\tnode = $(node)[0];\r\n\t\tvar attr = with_values ? {} : [];\r\n\t\tif(node && node.attributes) {\r\n\t\t\t$.each(node.attributes, function (i, v) {\r\n\t\t\t\tif($.inArray(v.name.toLowerCase(),['style','contenteditable','hasfocus','tabindex']) !== -1) { return; }\r\n\t\t\t\tif(v.value !== null && $.vakata.trim(v.value) !== '') {\r\n\t\t\t\t\tif(with_values) { attr[v.name] = v.value; }\r\n\t\t\t\t\telse { attr.push(v.name); }\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn attr;\r\n\t};\r\n\t$.vakata.array_unique = function(array) {\r\n\t\tvar a = [], i, j, l, o = {};\r\n\t\tfor(i = 0, l = array.length; i < l; i++) {\r\n\t\t\tif(o[array[i]] === undefined) {\r\n\t\t\t\ta.push(array[i]);\r\n\t\t\t\to[array[i]] = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn a;\r\n\t};\r\n\t// remove item from array\r\n\t$.vakata.array_remove = function(array, from) {\r\n\t\tarray.splice(from, 1);\r\n\t\treturn array;\r\n\t\t//var rest = array.slice((to || from) + 1 || array.length);\r\n\t\t//array.length = from < 0 ? array.length + from : from;\r\n\t\t//array.push.apply(array, rest);\r\n\t\t//return array;\r\n\t};\r\n\t// remove item from array\r\n\t$.vakata.array_remove_item = function(array, item) {\r\n\t\tvar tmp = $.inArray(item, array);\r\n\t\treturn tmp !== -1 ? $.vakata.array_remove(array, tmp) : array;\r\n\t};\r\n\t$.vakata.array_filter = function(c,a,b,d,e) {\r\n\t\tif (c.filter) {\r\n\t\t\treturn c.filter(a, b);\r\n\t\t}\r\n\t\td=[];\r\n\t\tfor (e in c) {\r\n\t\t\tif (~~e+''===e+'' && e>=0 && a.call(b,c[e],+e,c)) {\r\n\t\t\t\td.push(c[e]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn d;\r\n\t};\r\n\t$.vakata.trim = function (text) {\r\n\t\treturn String.prototype.trim ? \r\n\t\t\tString.prototype.trim.call(text.toString()) :\r\n\t\t\ttext.toString().replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\r\n\t};\r\n\r\n\r\n/**\r\n * ### Changed plugin\r\n *\r\n * This plugin adds more information to the `changed.jstree` event. The new data is contained in the `changed` event data property, and contains a lists of `selected` and `deselected` nodes.\r\n */\r\n\r\n\t$.jstree.plugins.changed = function (options, parent) {\r\n\t\tvar last = [];\r\n\t\tthis.trigger = function (ev, data) {\r\n\t\t\tvar i, j;\r\n\t\t\tif(!data) {\r\n\t\t\t\tdata = {};\r\n\t\t\t}\r\n\t\t\tif(ev.replace('.jstree','') === 'changed') {\r\n\t\t\t\tdata.changed = { selected : [], deselected : [] };\r\n\t\t\t\tvar tmp = {};\r\n\t\t\t\tfor(i = 0, j = last.length; i < j; i++) {\r\n\t\t\t\t\ttmp[last[i]] = 1;\r\n\t\t\t\t}\r\n\t\t\t\tfor(i = 0, j = data.selected.length; i < j; i++) {\r\n\t\t\t\t\tif(!tmp[data.selected[i]]) {\r\n\t\t\t\t\t\tdata.changed.selected.push(data.selected[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttmp[data.selected[i]] = 2;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tfor(i = 0, j = last.length; i < j; i++) {\r\n\t\t\t\t\tif(tmp[last[i]] === 1) {\r\n\t\t\t\t\t\tdata.changed.deselected.push(last[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tlast = data.selected.slice();\r\n\t\t\t}\r\n\t\t\t/**\r\n\t\t\t * triggered when selection changes (the \"changed\" plugin enhances the original event with more data)\r\n\t\t\t * @event\r\n\t\t\t * @name changed.jstree\r\n\t\t\t * @param {Object} node\r\n\t\t\t * @param {Object} action the action that caused the selection to change\r\n\t\t\t * @param {Array} selected the current selection\r\n\t\t\t * @param {Object} changed an object containing two properties `selected` and `deselected` - both arrays of node IDs, which were selected or deselected since the last changed event\r\n\t\t\t * @param {Object} event the event (if any) that triggered this changed event\r\n\t\t\t * @plugin changed\r\n\t\t\t */\r\n\t\t\tparent.trigger.call(this, ev, data);\r\n\t\t};\r\n\t\tthis.refresh = function (skip_loading, forget_state) {\r\n\t\t\tlast = [];\r\n\t\t\treturn parent.refresh.apply(this, arguments);\r\n\t\t};\r\n\t};\r\n\r\n/**\r\n * ### Checkbox plugin\r\n *\r\n * This plugin renders checkbox icons in front of each node, making multiple selection much easier.\r\n * It also supports tri-state behavior, meaning that if a node has a few of its children checked it will be rendered as undetermined, and state will be propagated up.\r\n */\r\n\r\n\tvar _i = document.createElement('I');\r\n\t_i.className = 'jstree-icon jstree-checkbox';\r\n\t_i.setAttribute('role', 'presentation');\r\n\t/**\r\n\t * stores all defaults for the checkbox plugin\r\n\t * @name $.jstree.defaults.checkbox\r\n\t * @plugin checkbox\r\n\t */\r\n\t$.jstree.defaults.checkbox = {\r\n\t\t/**\r\n\t\t * a boolean indicating if checkboxes should be visible (can be changed at a later time using `show_checkboxes()` and `hide_checkboxes`). Defaults to `true`.\r\n\t\t * @name $.jstree.defaults.checkbox.visible\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tvisible\t\t\t\t: true,\r\n\t\t/**\r\n\t\t * a boolean indicating if checkboxes should cascade down and have an undetermined state. Defaults to `true`.\r\n\t\t * @name $.jstree.defaults.checkbox.three_state\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tthree_state\t\t\t: true,\r\n\t\t/**\r\n\t\t * a boolean indicating if clicking anywhere on the node should act as clicking on the checkbox. Defaults to `true`.\r\n\t\t * @name $.jstree.defaults.checkbox.whole_node\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\twhole_node\t\t\t: true,\r\n\t\t/**\r\n\t\t * a boolean indicating if the selected style of a node should be kept, or removed. Defaults to `true`.\r\n\t\t * @name $.jstree.defaults.checkbox.keep_selected_style\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tkeep_selected_style\t: true,\r\n\t\t/**\r\n\t\t * This setting controls how cascading and undetermined nodes are applied.\r\n\t\t * If 'up' is in the string - cascading up is enabled, if 'down' is in the string - cascading down is enabled, if 'undetermined' is in the string - undetermined nodes will be used.\r\n\t\t * If `three_state` is set to `true` this setting is automatically set to 'up+down+undetermined'. Defaults to ''.\r\n\t\t * @name $.jstree.defaults.checkbox.cascade\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tcascade\t\t\t\t: '',\r\n\t\t/**\r\n\t\t * This setting controls if checkbox are bound to the general tree selection or to an internal array maintained by the checkbox plugin. Defaults to `true`, only set to `false` if you know exactly what you are doing.\r\n\t\t * @name $.jstree.defaults.checkbox.tie_selection\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\ttie_selection\t\t: true,\r\n\r\n\t\t/**\r\n\t\t * This setting controls if cascading down affects disabled checkboxes\r\n\t\t * @name $.jstree.defaults.checkbox.cascade_to_disabled\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tcascade_to_disabled : true,\r\n\r\n\t\t/**\r\n\t\t * This setting controls if cascading down affects hidden checkboxes\r\n\t\t * @name $.jstree.defaults.checkbox.cascade_to_hidden\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tcascade_to_hidden : true\r\n\t};\r\n\t$.jstree.plugins.checkbox = function (options, parent) {\r\n\t\tthis.bind = function () {\r\n\t\t\tparent.bind.call(this);\r\n\t\t\tthis._data.checkbox.uto = false;\r\n\t\t\tthis._data.checkbox.selected = [];\r\n\t\t\tif(this.settings.checkbox.three_state) {\r\n\t\t\t\tthis.settings.checkbox.cascade = 'up+down+undetermined';\r\n\t\t\t}\r\n\t\t\tthis.element\r\n\t\t\t\t.on(\"init.jstree\", $.proxy(function () {\r\n\t\t\t\t\t\tthis._data.checkbox.visible = this.settings.checkbox.visible;\r\n\t\t\t\t\t\tif(!this.settings.checkbox.keep_selected_style) {\r\n\t\t\t\t\t\t\tthis.element.addClass('jstree-checkbox-no-clicked');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(this.settings.checkbox.tie_selection) {\r\n\t\t\t\t\t\t\tthis.element.addClass('jstree-checkbox-selection');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"loading.jstree\", $.proxy(function () {\r\n\t\t\t\t\t\tthis[ this._data.checkbox.visible ? 'show_checkboxes' : 'hide_checkboxes' ]();\r\n\t\t\t\t\t}, this));\r\n\t\t\tif(this.settings.checkbox.cascade.indexOf('undetermined') !== -1) {\r\n\t\t\t\tthis.element\r\n\t\t\t\t\t.on('changed.jstree uncheck_node.jstree check_node.jstree uncheck_all.jstree check_all.jstree move_node.jstree copy_node.jstree redraw.jstree open_node.jstree', $.proxy(function () {\r\n\t\t\t\t\t\t\t// only if undetermined is in setting\r\n\t\t\t\t\t\t\tif(this._data.checkbox.uto) { clearTimeout(this._data.checkbox.uto); }\r\n\t\t\t\t\t\t\tthis._data.checkbox.uto = setTimeout($.proxy(this._undetermined, this), 50);\r\n\t\t\t\t\t\t}, this));\r\n\t\t\t}\r\n\t\t\tif(!this.settings.checkbox.tie_selection) {\r\n\t\t\t\tthis.element\r\n\t\t\t\t\t.on('model.jstree', $.proxy(function (e, data) {\r\n\t\t\t\t\t\tvar m = this._model.data,\r\n\t\t\t\t\t\t\tp = m[data.parent],\r\n\t\t\t\t\t\t\tdpc = data.nodes,\r\n\t\t\t\t\t\t\ti, j;\r\n\t\t\t\t\t\tfor(i = 0, j = dpc.length; i < j; i++) {\r\n\t\t\t\t\t\t\tm[dpc[i]].state.checked = m[dpc[i]].state.checked || (m[dpc[i]].original && m[dpc[i]].original.state && m[dpc[i]].original.state.checked);\r\n\t\t\t\t\t\t\tif(m[dpc[i]].state.checked) {\r\n\t\t\t\t\t\t\t\tthis._data.checkbox.selected.push(dpc[i]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, this));\r\n\t\t\t}\r\n\t\t\tif(this.settings.checkbox.cascade.indexOf('up') !== -1 || this.settings.checkbox.cascade.indexOf('down') !== -1) {\r\n\t\t\t\tthis.element\r\n\t\t\t\t\t.on('model.jstree', $.proxy(function (e, data) {\r\n\t\t\t\t\t\t\tvar m = this._model.data,\r\n\t\t\t\t\t\t\t\tp = m[data.parent],\r\n\t\t\t\t\t\t\t\tdpc = data.nodes,\r\n\t\t\t\t\t\t\t\tchd = [],\r\n\t\t\t\t\t\t\t\tc, i, j, k, l, tmp, s = this.settings.checkbox.cascade, t = this.settings.checkbox.tie_selection;\r\n\r\n\t\t\t\t\t\t\tif(s.indexOf('down') !== -1) {\r\n\t\t\t\t\t\t\t\t// apply down\r\n\t\t\t\t\t\t\t\tif(p.state[ t ? 'selected' : 'checked' ]) {\r\n\t\t\t\t\t\t\t\t\tfor(i = 0, j = dpc.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\t\t\tm[dpc[i]].state[ t ? 'selected' : 'checked' ] = true;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tthis._data[ t ? 'core' : 'checkbox' ].selected = this._data[ t ? 'core' : 'checkbox' ].selected.concat(dpc);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tfor(i = 0, j = dpc.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\t\t\tif(m[dpc[i]].state[ t ? 'selected' : 'checked' ]) {\r\n\t\t\t\t\t\t\t\t\t\t\tfor(k = 0, l = m[dpc[i]].children_d.length; k < l; k++) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tm[m[dpc[i]].children_d[k]].state[ t ? 'selected' : 'checked' ] = true;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tthis._data[ t ? 'core' : 'checkbox' ].selected = this._data[ t ? 'core' : 'checkbox' ].selected.concat(m[dpc[i]].children_d);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif(s.indexOf('up') !== -1) {\r\n\t\t\t\t\t\t\t\t// apply up\r\n\t\t\t\t\t\t\t\tfor(i = 0, j = p.children_d.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\t\tif(!m[p.children_d[i]].children.length) {\r\n\t\t\t\t\t\t\t\t\t\tchd.push(m[p.children_d[i]].parent);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tchd = $.vakata.array_unique(chd);\r\n\t\t\t\t\t\t\t\tfor(k = 0, l = chd.length; k < l; k++) {\r\n\t\t\t\t\t\t\t\t\tp = m[chd[k]];\r\n\t\t\t\t\t\t\t\t\twhile(p && p.id !== $.jstree.root) {\r\n\t\t\t\t\t\t\t\t\t\tc = 0;\r\n\t\t\t\t\t\t\t\t\t\tfor(i = 0, j = p.children.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\t\t\t\tc += m[p.children[i]].state[ t ? 'selected' : 'checked' ];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tif(c === j) {\r\n\t\t\t\t\t\t\t\t\t\t\tp.state[ t ? 'selected' : 'checked' ] = true;\r\n\t\t\t\t\t\t\t\t\t\t\tthis._data[ t ? 'core' : 'checkbox' ].selected.push(p.id);\r\n\t\t\t\t\t\t\t\t\t\t\ttmp = this.get_node(p, true);\r\n\t\t\t\t\t\t\t\t\t\t\tif(tmp && tmp.length) {\r\n\t\t\t\t\t\t\t\t\t\t\t\ttmp.attr('aria-selected', true).children('.jstree-anchor').addClass( t ? 'jstree-clicked' : 'jstree-checked');\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tp = this.get_node(p.parent);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tthis._data[ t ? 'core' : 'checkbox' ].selected = $.vakata.array_unique(this._data[ t ? 'core' : 'checkbox' ].selected);\r\n\t\t\t\t\t\t}, this))\r\n\t\t\t\t\t.on(this.settings.checkbox.tie_selection ? 'select_node.jstree' : 'check_node.jstree', $.proxy(function (e, data) {\r\n\t\t\t\t\t\t\tvar self = this,\r\n\t\t\t\t\t\t\t\tobj = data.node,\r\n\t\t\t\t\t\t\t\tm = this._model.data,\r\n\t\t\t\t\t\t\t\tpar = this.get_node(obj.parent),\r\n\t\t\t\t\t\t\t\ti, j, c, tmp, s = this.settings.checkbox.cascade, t = this.settings.checkbox.tie_selection,\r\n\t\t\t\t\t\t\t\tsel = {}, cur = this._data[ t ? 'core' : 'checkbox' ].selected;\r\n\r\n\t\t\t\t\t\t\tfor (i = 0, j = cur.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\tsel[cur[i]] = true;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// apply down\r\n\t\t\t\t\t\t\tif(s.indexOf('down') !== -1) {\r\n\t\t\t\t\t\t\t\t//this._data[ t ? 'core' : 'checkbox' ].selected = $.vakata.array_unique(this._data[ t ? 'core' : 'checkbox' ].selected.concat(obj.children_d));\r\n\t\t\t\t\t\t\t\tvar selectedIds = this._cascade_new_checked_state(obj.id, true);\r\n\t\t\t\t\t\t\t\tvar temp = obj.children_d.concat(obj.id);\r\n\t\t\t\t\t\t\t\tfor (i = 0, j = temp.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\t\tif (selectedIds.indexOf(temp[i]) > -1) {\r\n\t\t\t\t\t\t\t\t\t\tsel[temp[i]] = true;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\tdelete sel[temp[i]];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// apply up\r\n\t\t\t\t\t\t\tif(s.indexOf('up') !== -1) {\r\n\t\t\t\t\t\t\t\twhile(par && par.id !== $.jstree.root) {\r\n\t\t\t\t\t\t\t\t\tc = 0;\r\n\t\t\t\t\t\t\t\t\tfor(i = 0, j = par.children.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\t\t\tc += m[par.children[i]].state[ t ? 'selected' : 'checked' ];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif(c === j) {\r\n\t\t\t\t\t\t\t\t\t\tpar.state[ t ? 'selected' : 'checked' ] = true;\r\n\t\t\t\t\t\t\t\t\t\tsel[par.id] = true;\r\n\t\t\t\t\t\t\t\t\t\t//this._data[ t ? 'core' : 'checkbox' ].selected.push(par.id);\r\n\t\t\t\t\t\t\t\t\t\ttmp = this.get_node(par, true);\r\n\t\t\t\t\t\t\t\t\t\tif(tmp && tmp.length) {\r\n\t\t\t\t\t\t\t\t\t\t\ttmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked');\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tpar = this.get_node(par.parent);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tcur = [];\r\n\t\t\t\t\t\t\tfor (i in sel) {\r\n\t\t\t\t\t\t\t\tif (sel.hasOwnProperty(i)) {\r\n\t\t\t\t\t\t\t\t\tcur.push(i);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tthis._data[ t ? 'core' : 'checkbox' ].selected = cur;\r\n\t\t\t\t\t\t}, this))\r\n\t\t\t\t\t.on(this.settings.checkbox.tie_selection ? 'deselect_all.jstree' : 'uncheck_all.jstree', $.proxy(function (e, data) {\r\n\t\t\t\t\t\t\tvar obj = this.get_node($.jstree.root),\r\n\t\t\t\t\t\t\t\tm = this._model.data,\r\n\t\t\t\t\t\t\t\ti, j, tmp;\r\n\t\t\t\t\t\t\tfor(i = 0, j = obj.children_d.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\ttmp = m[obj.children_d[i]];\r\n\t\t\t\t\t\t\t\tif(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) {\r\n\t\t\t\t\t\t\t\t\ttmp.original.state.undetermined = false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, this))\r\n\t\t\t\t\t.on(this.settings.checkbox.tie_selection ? 'deselect_node.jstree' : 'uncheck_node.jstree', $.proxy(function (e, data) {\r\n\t\t\t\t\t\t\tvar self = this,\r\n\t\t\t\t\t\t\t\tobj = data.node,\r\n\t\t\t\t\t\t\t\tdom = this.get_node(obj, true),\r\n\t\t\t\t\t\t\t\ti, j, tmp, s = this.settings.checkbox.cascade, t = this.settings.checkbox.tie_selection,\r\n\t\t\t\t\t\t\t\tcur = this._data[ t ? 'core' : 'checkbox' ].selected, sel = {},\r\n\t\t\t\t\t\t\t\tstillSelectedIds = [],\r\n\t\t\t\t\t\t\t\tallIds = obj.children_d.concat(obj.id);\r\n\r\n\t\t\t\t\t\t\t// apply down\r\n\t\t\t\t\t\t\tif(s.indexOf('down') !== -1) {\r\n\t\t\t\t\t\t\t\tvar selectedIds = this._cascade_new_checked_state(obj.id, false);\r\n\r\n\t\t\t\t\t\t\t\tcur = $.vakata.array_filter(cur, function(id) {\r\n\t\t\t\t\t\t\t\t\treturn allIds.indexOf(id) === -1 || selectedIds.indexOf(id) > -1;\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// only apply up if cascade up is enabled and if this node is not selected\r\n\t\t\t\t\t\t\t// (if all child nodes are disabled and cascade_to_disabled === false then this node will till be selected).\r\n\t\t\t\t\t\t\tif(s.indexOf('up') !== -1 && cur.indexOf(obj.id) === -1) {\r\n\t\t\t\t\t\t\t\tfor(i = 0, j = obj.parents.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\t\ttmp = this._model.data[obj.parents[i]];\r\n\t\t\t\t\t\t\t\t\ttmp.state[ t ? 'selected' : 'checked' ] = false;\r\n\t\t\t\t\t\t\t\t\tif(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) {\r\n\t\t\t\t\t\t\t\t\t\ttmp.original.state.undetermined = false;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\ttmp = this.get_node(obj.parents[i], true);\r\n\t\t\t\t\t\t\t\t\tif(tmp && tmp.length) {\r\n\t\t\t\t\t\t\t\t\t\ttmp.attr('aria-selected', false).children('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked');\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tcur = $.vakata.array_filter(cur, function(id) {\r\n\t\t\t\t\t\t\t\t\treturn obj.parents.indexOf(id) === -1;\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tthis._data[ t ? 'core' : 'checkbox' ].selected = cur;\r\n\t\t\t\t\t\t}, this));\r\n\t\t\t}\r\n\t\t\tif(this.settings.checkbox.cascade.indexOf('up') !== -1) {\r\n\t\t\t\tthis.element\r\n\t\t\t\t\t.on('delete_node.jstree', $.proxy(function (e, data) {\r\n\t\t\t\t\t\t\t// apply up (whole handler)\r\n\t\t\t\t\t\t\tvar p = this.get_node(data.parent),\r\n\t\t\t\t\t\t\t\tm = this._model.data,\r\n\t\t\t\t\t\t\t\ti, j, c, tmp, t = this.settings.checkbox.tie_selection;\r\n\t\t\t\t\t\t\twhile(p && p.id !== $.jstree.root && !p.state[ t ? 'selected' : 'checked' ]) {\r\n\t\t\t\t\t\t\t\tc = 0;\r\n\t\t\t\t\t\t\t\tfor(i = 0, j = p.children.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\t\tc += m[p.children[i]].state[ t ? 'selected' : 'checked' ];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif(j > 0 && c === j) {\r\n\t\t\t\t\t\t\t\t\tp.state[ t ? 'selected' : 'checked' ] = true;\r\n\t\t\t\t\t\t\t\t\tthis._data[ t ? 'core' : 'checkbox' ].selected.push(p.id);\r\n\t\t\t\t\t\t\t\t\ttmp = this.get_node(p, true);\r\n\t\t\t\t\t\t\t\t\tif(tmp && tmp.length) {\r\n\t\t\t\t\t\t\t\t\t\ttmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked');\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tp = this.get_node(p.parent);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, this))\r\n\t\t\t\t\t.on('move_node.jstree', $.proxy(function (e, data) {\r\n\t\t\t\t\t\t\t// apply up (whole handler)\r\n\t\t\t\t\t\t\tvar is_multi = data.is_multi,\r\n\t\t\t\t\t\t\t\told_par = data.old_parent,\r\n\t\t\t\t\t\t\t\tnew_par = this.get_node(data.parent),\r\n\t\t\t\t\t\t\t\tm = this._model.data,\r\n\t\t\t\t\t\t\t\tp, c, i, j, tmp, t = this.settings.checkbox.tie_selection;\r\n\t\t\t\t\t\t\tif(!is_multi) {\r\n\t\t\t\t\t\t\t\tp = this.get_node(old_par);\r\n\t\t\t\t\t\t\t\twhile(p && p.id !== $.jstree.root && !p.state[ t ? 'selected' : 'checked' ]) {\r\n\t\t\t\t\t\t\t\t\tc = 0;\r\n\t\t\t\t\t\t\t\t\tfor(i = 0, j = p.children.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\t\t\tc += m[p.children[i]].state[ t ? 'selected' : 'checked' ];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tif(j > 0 && c === j) {\r\n\t\t\t\t\t\t\t\t\t\tp.state[ t ? 'selected' : 'checked' ] = true;\r\n\t\t\t\t\t\t\t\t\t\tthis._data[ t ? 'core' : 'checkbox' ].selected.push(p.id);\r\n\t\t\t\t\t\t\t\t\t\ttmp = this.get_node(p, true);\r\n\t\t\t\t\t\t\t\t\t\tif(tmp && tmp.length) {\r\n\t\t\t\t\t\t\t\t\t\t\ttmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked');\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tp = this.get_node(p.parent);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tp = new_par;\r\n\t\t\t\t\t\t\twhile(p && p.id !== $.jstree.root) {\r\n\t\t\t\t\t\t\t\tc = 0;\r\n\t\t\t\t\t\t\t\tfor(i = 0, j = p.children.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\t\tc += m[p.children[i]].state[ t ? 'selected' : 'checked' ];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif(c === j) {\r\n\t\t\t\t\t\t\t\t\tif(!p.state[ t ? 'selected' : 'checked' ]) {\r\n\t\t\t\t\t\t\t\t\t\tp.state[ t ? 'selected' : 'checked' ] = true;\r\n\t\t\t\t\t\t\t\t\t\tthis._data[ t ? 'core' : 'checkbox' ].selected.push(p.id);\r\n\t\t\t\t\t\t\t\t\t\ttmp = this.get_node(p, true);\r\n\t\t\t\t\t\t\t\t\t\tif(tmp && tmp.length) {\r\n\t\t\t\t\t\t\t\t\t\t\ttmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked');\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tif(p.state[ t ? 'selected' : 'checked' ]) {\r\n\t\t\t\t\t\t\t\t\t\tp.state[ t ? 'selected' : 'checked' ] = false;\r\n\t\t\t\t\t\t\t\t\t\tthis._data[ t ? 'core' : 'checkbox' ].selected = $.vakata.array_remove_item(this._data[ t ? 'core' : 'checkbox' ].selected, p.id);\r\n\t\t\t\t\t\t\t\t\t\ttmp = this.get_node(p, true);\r\n\t\t\t\t\t\t\t\t\t\tif(tmp && tmp.length) {\r\n\t\t\t\t\t\t\t\t\t\t\ttmp.attr('aria-selected', false).children('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked');\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tp = this.get_node(p.parent);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, this));\r\n\t\t\t}\r\n\t\t};\r\n\t\t/**\r\n\t\t * get an array of all nodes whose state is \"undetermined\"\r\n\t\t * @name get_undetermined([full])\r\n\t\t * @param {boolean} full: if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned\r\n\t\t * @return {Array}\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tthis.get_undetermined = function (full) {\r\n\t\t\tif (this.settings.checkbox.cascade.indexOf('undetermined') === -1) {\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t\tvar i, j, k, l, o = {}, m = this._model.data, t = this.settings.checkbox.tie_selection, s = this._data[ t ? 'core' : 'checkbox' ].selected, p = [], tt = this, r = [];\r\n\t\t\tfor(i = 0, j = s.length; i < j; i++) {\r\n\t\t\t\tif(m[s[i]] && m[s[i]].parents) {\r\n\t\t\t\t\tfor(k = 0, l = m[s[i]].parents.length; k < l; k++) {\r\n\t\t\t\t\t\tif(o[m[s[i]].parents[k]] !== undefined) {\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(m[s[i]].parents[k] !== $.jstree.root) {\r\n\t\t\t\t\t\t\to[m[s[i]].parents[k]] = true;\r\n\t\t\t\t\t\t\tp.push(m[s[i]].parents[k]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// attempt for server side undetermined state\r\n\t\t\tthis.element.find('.jstree-closed').not(':has(.jstree-children)')\r\n\t\t\t\t.each(function () {\r\n\t\t\t\t\tvar tmp = tt.get_node(this), tmp2;\r\n\t\t\t\t\t\r\n\t\t\t\t\tif(!tmp) { return; }\r\n\t\t\t\t\t\r\n\t\t\t\t\tif(!tmp.state.loaded) {\r\n\t\t\t\t\t\tif(tmp.original && tmp.original.state && tmp.original.state.undetermined && tmp.original.state.undetermined === true) {\r\n\t\t\t\t\t\t\tif(o[tmp.id] === undefined && tmp.id !== $.jstree.root) {\r\n\t\t\t\t\t\t\t\to[tmp.id] = true;\r\n\t\t\t\t\t\t\t\tp.push(tmp.id);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tfor(k = 0, l = tmp.parents.length; k < l; k++) {\r\n\t\t\t\t\t\t\t\tif(o[tmp.parents[k]] === undefined && tmp.parents[k] !== $.jstree.root) {\r\n\t\t\t\t\t\t\t\t\to[tmp.parents[k]] = true;\r\n\t\t\t\t\t\t\t\t\tp.push(tmp.parents[k]);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tfor(i = 0, j = tmp.children_d.length; i < j; i++) {\r\n\t\t\t\t\t\t\ttmp2 = m[tmp.children_d[i]];\r\n\t\t\t\t\t\t\tif(!tmp2.state.loaded && tmp2.original && tmp2.original.state && tmp2.original.state.undetermined && tmp2.original.state.undetermined === true) {\r\n\t\t\t\t\t\t\t\tif(o[tmp2.id] === undefined && tmp2.id !== $.jstree.root) {\r\n\t\t\t\t\t\t\t\t\to[tmp2.id] = true;\r\n\t\t\t\t\t\t\t\t\tp.push(tmp2.id);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tfor(k = 0, l = tmp2.parents.length; k < l; k++) {\r\n\t\t\t\t\t\t\t\t\tif(o[tmp2.parents[k]] === undefined && tmp2.parents[k] !== $.jstree.root) {\r\n\t\t\t\t\t\t\t\t\t\to[tmp2.parents[k]] = true;\r\n\t\t\t\t\t\t\t\t\t\tp.push(tmp2.parents[k]);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\tfor (i = 0, j = p.length; i < j; i++) {\r\n\t\t\t\tif(!m[p[i]].state[ t ? 'selected' : 'checked' ]) {\r\n\t\t\t\t\tr.push(full ? m[p[i]] : p[i]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn r;\r\n\t\t};\r\n\t\t/**\r\n\t\t * set the undetermined state where and if necessary. Used internally.\r\n\t\t * @private\r\n\t\t * @name _undetermined()\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tthis._undetermined = function () {\r\n\t\t\tif(this.element === null) { return; }\r\n\t\t\tvar p = this.get_undetermined(false), i, j, s;\r\n\r\n\t\t\tthis.element.find('.jstree-undetermined').removeClass('jstree-undetermined');\r\n\t\t\tfor (i = 0, j = p.length; i < j; i++) {\r\n\t\t\t\ts = this.get_node(p[i], true);\r\n\t\t\t\tif(s && s.length) {\r\n\t\t\t\t\ts.children('.jstree-anchor').children('.jstree-checkbox').addClass('jstree-undetermined');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\tthis.redraw_node = function(obj, deep, is_callback, force_render) {\r\n\t\t\tobj = parent.redraw_node.apply(this, arguments);\r\n\t\t\tif(obj) {\r\n\t\t\t\tvar i, j, tmp = null, icon = null;\r\n\t\t\t\tfor(i = 0, j = obj.childNodes.length; i < j; i++) {\r\n\t\t\t\t\tif(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf(\"jstree-anchor\") !== -1) {\r\n\t\t\t\t\t\ttmp = obj.childNodes[i];\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(tmp) {\r\n\t\t\t\t\tif(!this.settings.checkbox.tie_selection && this._model.data[obj.id].state.checked) { tmp.className += ' jstree-checked'; }\r\n\t\t\t\t\ticon = _i.cloneNode(false);\r\n\t\t\t\t\tif(this._model.data[obj.id].state.checkbox_disabled) { icon.className += ' jstree-checkbox-disabled'; }\r\n\t\t\t\t\ttmp.insertBefore(icon, tmp.childNodes[0]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(!is_callback && this.settings.checkbox.cascade.indexOf('undetermined') !== -1) {\r\n\t\t\t\tif(this._data.checkbox.uto) { clearTimeout(this._data.checkbox.uto); }\r\n\t\t\t\tthis._data.checkbox.uto = setTimeout($.proxy(this._undetermined, this), 50);\r\n\t\t\t}\r\n\t\t\treturn obj;\r\n\t\t};\r\n\t\t/**\r\n\t\t * show the node checkbox icons\r\n\t\t * @name show_checkboxes()\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tthis.show_checkboxes = function () { this._data.core.themes.checkboxes = true; this.get_container_ul().removeClass(\"jstree-no-checkboxes\"); };\r\n\t\t/**\r\n\t\t * hide the node checkbox icons\r\n\t\t * @name hide_checkboxes()\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tthis.hide_checkboxes = function () { this._data.core.themes.checkboxes = false; this.get_container_ul().addClass(\"jstree-no-checkboxes\"); };\r\n\t\t/**\r\n\t\t * toggle the node icons\r\n\t\t * @name toggle_checkboxes()\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tthis.toggle_checkboxes = function () { if(this._data.core.themes.checkboxes) { this.hide_checkboxes(); } else { this.show_checkboxes(); } };\r\n\t\t/**\r\n\t\t * checks if a node is in an undetermined state\r\n\t\t * @name is_undetermined(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t * @return {Boolean}\r\n\t\t */\r\n\t\tthis.is_undetermined = function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tvar s = this.settings.checkbox.cascade, i, j, t = this.settings.checkbox.tie_selection, d = this._data[ t ? 'core' : 'checkbox' ].selected, m = this._model.data;\r\n\t\t\tif(!obj || obj.state[ t ? 'selected' : 'checked' ] === true || s.indexOf('undetermined') === -1 || (s.indexOf('down') === -1 && s.indexOf('up') === -1)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif(!obj.state.loaded && obj.original.state.undetermined === true) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tfor(i = 0, j = obj.children_d.length; i < j; i++) {\r\n\t\t\t\tif($.inArray(obj.children_d[i], d) !== -1 || (!m[obj.children_d[i]].state.loaded && m[obj.children_d[i]].original.state.undetermined)) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t};\r\n\t\t/**\r\n\t\t * disable a node's checkbox\r\n\t\t * @name disable_checkbox(obj)\r\n\t\t * @param {mixed} obj an array can be used too\r\n\t\t * @trigger disable_checkbox.jstree\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tthis.disable_checkbox = function (obj) {\r\n\t\t\tvar t1, t2, dom;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.disable_checkbox(obj[t1]);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === $.jstree.root) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tdom = this.get_node(obj, true);\r\n\t\t\tif(!obj.state.checkbox_disabled) {\r\n\t\t\t\tobj.state.checkbox_disabled = true;\r\n\t\t\t\tif(dom && dom.length) {\r\n\t\t\t\t\tdom.children('.jstree-anchor').children('.jstree-checkbox').addClass('jstree-checkbox-disabled');\r\n\t\t\t\t}\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered when an node's checkbox is disabled\r\n\t\t\t\t * @event\r\n\t\t\t\t * @name disable_checkbox.jstree\r\n\t\t\t\t * @param {Object} node\r\n\t\t\t\t * @plugin checkbox\r\n\t\t\t\t */\r\n\t\t\t\tthis.trigger('disable_checkbox', { 'node' : obj });\r\n\t\t\t}\r\n\t\t};\r\n\t\t/**\r\n\t\t * enable a node's checkbox\r\n\t\t * @name enable_checkbox(obj)\r\n\t\t * @param {mixed} obj an array can be used too\r\n\t\t * @trigger enable_checkbox.jstree\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tthis.enable_checkbox = function (obj) {\r\n\t\t\tvar t1, t2, dom;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.enable_checkbox(obj[t1]);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === $.jstree.root) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tdom = this.get_node(obj, true);\r\n\t\t\tif(obj.state.checkbox_disabled) {\r\n\t\t\t\tobj.state.checkbox_disabled = false;\r\n\t\t\t\tif(dom && dom.length) {\r\n\t\t\t\t\tdom.children('.jstree-anchor').children('.jstree-checkbox').removeClass('jstree-checkbox-disabled');\r\n\t\t\t\t}\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered when an node's checkbox is enabled\r\n\t\t\t\t * @event\r\n\t\t\t\t * @name enable_checkbox.jstree\r\n\t\t\t\t * @param {Object} node\r\n\t\t\t\t * @plugin checkbox\r\n\t\t\t\t */\r\n\t\t\t\tthis.trigger('enable_checkbox', { 'node' : obj });\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tthis.activate_node = function (obj, e) {\r\n\t\t\tif($(e.target).hasClass('jstree-checkbox-disabled')) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif(this.settings.checkbox.tie_selection && (this.settings.checkbox.whole_node || $(e.target).hasClass('jstree-checkbox'))) {\r\n\t\t\t\te.ctrlKey = true;\r\n\t\t\t}\r\n\t\t\tif(this.settings.checkbox.tie_selection || (!this.settings.checkbox.whole_node && !$(e.target).hasClass('jstree-checkbox'))) {\r\n\t\t\t\treturn parent.activate_node.call(this, obj, e);\r\n\t\t\t}\r\n\t\t\tif(this.is_disabled(obj)) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tif(this.is_checked(obj)) {\r\n\t\t\t\tthis.uncheck_node(obj, e);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.check_node(obj, e);\r\n\t\t\t}\r\n\t\t\tthis.trigger('activate_node', { 'node' : this.get_node(obj) });\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Cascades checked state to a node and all its descendants. This function does NOT affect hidden and disabled nodes (or their descendants).\r\n\t\t * However if these unaffected nodes are already selected their ids will be included in the returned array.\r\n\t\t * @private\r\n\t\t * @param {string} id the node ID\r\n\t\t * @param {bool} checkedState should the nodes be checked or not\r\n\t\t * @returns {Array} Array of all node id's (in this tree branch) that are checked.\r\n\t\t */\r\n\t\tthis._cascade_new_checked_state = function (id, checkedState) {\r\n\t\t\tvar self = this;\r\n\t\t\tvar t = this.settings.checkbox.tie_selection;\r\n\t\t\tvar node = this._model.data[id];\r\n\t\t\tvar selectedNodeIds = [];\r\n\t\t\tvar selectedChildrenIds = [], i, j, selectedChildIds;\r\n\r\n\t\t\tif (\r\n\t\t\t\t(this.settings.checkbox.cascade_to_disabled || !node.state.disabled) &&\r\n\t\t\t\t(this.settings.checkbox.cascade_to_hidden || !node.state.hidden)\r\n\t\t\t) {\r\n\t\t\t\t//First try and check/uncheck the children\r\n\t\t\t\tif (node.children) {\r\n\t\t\t\t\tfor (i = 0, j = node.children.length; i < j; i++) {\r\n\t\t\t\t\t\tvar childId = node.children[i];\r\n\t\t\t\t\t\tselectedChildIds = self._cascade_new_checked_state(childId, checkedState);\r\n\t\t\t\t\t\tselectedNodeIds = selectedNodeIds.concat(selectedChildIds);\r\n\t\t\t\t\t\tif (selectedChildIds.indexOf(childId) > -1) {\r\n\t\t\t\t\t\t\tselectedChildrenIds.push(childId);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar dom = self.get_node(node, true);\r\n\r\n\t\t\t\t//A node's state is undetermined if some but not all of it's children are checked/selected .\r\n\t\t\t\tvar undetermined = selectedChildrenIds.length > 0 && selectedChildrenIds.length < node.children.length;\r\n\r\n\t\t\t\tif(node.original && node.original.state && node.original.state.undetermined) {\r\n\t\t\t\t\tnode.original.state.undetermined = undetermined;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//If a node is undetermined then remove selected class\r\n\t\t\t\tif (undetermined) {\r\n\t\t\t\t\tnode.state[ t ? 'selected' : 'checked' ] = false;\r\n\t\t\t\t\tdom.attr('aria-selected', false).children('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked');\r\n\t\t\t\t}\r\n\t\t\t\t//Otherwise, if the checkedState === true (i.e. the node is being checked now) and all of the node's children are checked (if it has any children),\r\n\t\t\t\t//check the node and style it correctly.\r\n\t\t\t\telse if (checkedState && selectedChildrenIds.length === node.children.length) {\r\n\t\t\t\t\tnode.state[ t ? 'selected' : 'checked' ] = checkedState;\r\n\t\t\t\t\tselectedNodeIds.push(node.id);\r\n\r\n\t\t\t\t\tdom.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked');\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tnode.state[ t ? 'selected' : 'checked' ] = false;\r\n\t\t\t\t\tdom.attr('aria-selected', false).children('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tselectedChildIds = this.get_checked_descendants(id);\r\n\r\n\t\t\t\tif (node.state[ t ? 'selected' : 'checked' ]) {\r\n\t\t\t\t\tselectedChildIds.push(node.id);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tselectedNodeIds = selectedNodeIds.concat(selectedChildIds);\r\n\t\t\t}\r\n\r\n\t\t\treturn selectedNodeIds;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Gets ids of nodes selected in branch (of tree) specified by id (does not include the node specified by id)\r\n\t\t * @name get_checked_descendants(obj)\r\n\t\t * @param {string} id the node ID\r\n\t\t * @return {Array} array of IDs\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tthis.get_checked_descendants = function (id) {\r\n\t\t\tvar self = this;\r\n\t\t\tvar t = self.settings.checkbox.tie_selection;\r\n\t\t\tvar node = self._model.data[id];\r\n\r\n\t\t\treturn $.vakata.array_filter(node.children_d, function(_id) {\r\n\t\t\t\treturn self._model.data[_id].state[ t ? 'selected' : 'checked' ];\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * check a node (only if tie_selection in checkbox settings is false, otherwise select_node will be called internally)\r\n\t\t * @name check_node(obj)\r\n\t\t * @param {mixed} obj an array can be used to check multiple nodes\r\n\t\t * @trigger check_node.jstree\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tthis.check_node = function (obj, e) {\r\n\t\t\tif(this.settings.checkbox.tie_selection) { return this.select_node(obj, false, true, e); }\r\n\t\t\tvar dom, t1, t2, th;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.check_node(obj[t1], e);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === $.jstree.root) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tdom = this.get_node(obj, true);\r\n\t\t\tif(!obj.state.checked) {\r\n\t\t\t\tobj.state.checked = true;\r\n\t\t\t\tthis._data.checkbox.selected.push(obj.id);\r\n\t\t\t\tif(dom && dom.length) {\r\n\t\t\t\t\tdom.children('.jstree-anchor').addClass('jstree-checked');\r\n\t\t\t\t}\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered when an node is checked (only if tie_selection in checkbox settings is false)\r\n\t\t\t\t * @event\r\n\t\t\t\t * @name check_node.jstree\r\n\t\t\t\t * @param {Object} node\r\n\t\t\t\t * @param {Array} selected the current selection\r\n\t\t\t\t * @param {Object} event the event (if any) that triggered this check_node\r\n\t\t\t\t * @plugin checkbox\r\n\t\t\t\t */\r\n\t\t\t\tthis.trigger('check_node', { 'node' : obj, 'selected' : this._data.checkbox.selected, 'event' : e });\r\n\t\t\t}\r\n\t\t};\r\n\t\t/**\r\n\t\t * uncheck a node (only if tie_selection in checkbox settings is false, otherwise deselect_node will be called internally)\r\n\t\t * @name uncheck_node(obj)\r\n\t\t * @param {mixed} obj an array can be used to uncheck multiple nodes\r\n\t\t * @trigger uncheck_node.jstree\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tthis.uncheck_node = function (obj, e) {\r\n\t\t\tif(this.settings.checkbox.tie_selection) { return this.deselect_node(obj, false, e); }\r\n\t\t\tvar t1, t2, dom;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.uncheck_node(obj[t1], e);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === $.jstree.root) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tdom = this.get_node(obj, true);\r\n\t\t\tif(obj.state.checked) {\r\n\t\t\t\tobj.state.checked = false;\r\n\t\t\t\tthis._data.checkbox.selected = $.vakata.array_remove_item(this._data.checkbox.selected, obj.id);\r\n\t\t\t\tif(dom.length) {\r\n\t\t\t\t\tdom.children('.jstree-anchor').removeClass('jstree-checked');\r\n\t\t\t\t}\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered when an node is unchecked (only if tie_selection in checkbox settings is false)\r\n\t\t\t\t * @event\r\n\t\t\t\t * @name uncheck_node.jstree\r\n\t\t\t\t * @param {Object} node\r\n\t\t\t\t * @param {Array} selected the current selection\r\n\t\t\t\t * @param {Object} event the event (if any) that triggered this uncheck_node\r\n\t\t\t\t * @plugin checkbox\r\n\t\t\t\t */\r\n\t\t\t\tthis.trigger('uncheck_node', { 'node' : obj, 'selected' : this._data.checkbox.selected, 'event' : e });\r\n\t\t\t}\r\n\t\t};\r\n\t\t\r\n\t\t/**\r\n\t\t * checks all nodes in the tree (only if tie_selection in checkbox settings is false, otherwise select_all will be called internally)\r\n\t\t * @name check_all()\r\n\t\t * @trigger check_all.jstree, changed.jstree\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tthis.check_all = function () {\r\n\t\t\tif(this.settings.checkbox.tie_selection) { return this.select_all(); }\r\n\t\t\tvar tmp = this._data.checkbox.selected.concat([]), i, j;\r\n\t\t\tthis._data.checkbox.selected = this._model.data[$.jstree.root].children_d.concat();\r\n\t\t\tfor(i = 0, j = this._data.checkbox.selected.length; i < j; i++) {\r\n\t\t\t\tif(this._model.data[this._data.checkbox.selected[i]]) {\r\n\t\t\t\t\tthis._model.data[this._data.checkbox.selected[i]].state.checked = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.redraw(true);\r\n\t\t\t/**\r\n\t\t\t * triggered when all nodes are checked (only if tie_selection in checkbox settings is false)\r\n\t\t\t * @event\r\n\t\t\t * @name check_all.jstree\r\n\t\t\t * @param {Array} selected the current selection\r\n\t\t\t * @plugin checkbox\r\n\t\t\t */\r\n\t\t\tthis.trigger('check_all', { 'selected' : this._data.checkbox.selected });\r\n\t\t};\r\n\t\t/**\r\n\t\t * uncheck all checked nodes (only if tie_selection in checkbox settings is false, otherwise deselect_all will be called internally)\r\n\t\t * @name uncheck_all()\r\n\t\t * @trigger uncheck_all.jstree\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tthis.uncheck_all = function () {\r\n\t\t\tif(this.settings.checkbox.tie_selection) { return this.deselect_all(); }\r\n\t\t\tvar tmp = this._data.checkbox.selected.concat([]), i, j;\r\n\t\t\tfor(i = 0, j = this._data.checkbox.selected.length; i < j; i++) {\r\n\t\t\t\tif(this._model.data[this._data.checkbox.selected[i]]) {\r\n\t\t\t\t\tthis._model.data[this._data.checkbox.selected[i]].state.checked = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis._data.checkbox.selected = [];\r\n\t\t\tthis.element.find('.jstree-checked').removeClass('jstree-checked');\r\n\t\t\t/**\r\n\t\t\t * triggered when all nodes are unchecked (only if tie_selection in checkbox settings is false)\r\n\t\t\t * @event\r\n\t\t\t * @name uncheck_all.jstree\r\n\t\t\t * @param {Object} node the previous selection\r\n\t\t\t * @param {Array} selected the current selection\r\n\t\t\t * @plugin checkbox\r\n\t\t\t */\r\n\t\t\tthis.trigger('uncheck_all', { 'selected' : this._data.checkbox.selected, 'node' : tmp });\r\n\t\t};\r\n\t\t/**\r\n\t\t * checks if a node is checked (if tie_selection is on in the settings this function will return the same as is_selected)\r\n\t\t * @name is_checked(obj)\r\n\t\t * @param {mixed} obj\r\n\t\t * @return {Boolean}\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tthis.is_checked = function (obj) {\r\n\t\t\tif(this.settings.checkbox.tie_selection) { return this.is_selected(obj); }\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === $.jstree.root) { return false; }\r\n\t\t\treturn obj.state.checked;\r\n\t\t};\r\n\t\t/**\r\n\t\t * get an array of all checked nodes (if tie_selection is on in the settings this function will return the same as get_selected)\r\n\t\t * @name get_checked([full])\r\n\t\t * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned\r\n\t\t * @return {Array}\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tthis.get_checked = function (full) {\r\n\t\t\tif(this.settings.checkbox.tie_selection) { return this.get_selected(full); }\r\n\t\t\treturn full ? $.map(this._data.checkbox.selected, $.proxy(function (i) { return this.get_node(i); }, this)) : this._data.checkbox.selected.slice();\r\n\t\t};\r\n\t\t/**\r\n\t\t * get an array of all top level checked nodes (ignoring children of checked nodes) (if tie_selection is on in the settings this function will return the same as get_top_selected)\r\n\t\t * @name get_top_checked([full])\r\n\t\t * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned\r\n\t\t * @return {Array}\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tthis.get_top_checked = function (full) {\r\n\t\t\tif(this.settings.checkbox.tie_selection) { return this.get_top_selected(full); }\r\n\t\t\tvar tmp = this.get_checked(true),\r\n\t\t\t\tobj = {}, i, j, k, l;\r\n\t\t\tfor(i = 0, j = tmp.length; i < j; i++) {\r\n\t\t\t\tobj[tmp[i].id] = tmp[i];\r\n\t\t\t}\r\n\t\t\tfor(i = 0, j = tmp.length; i < j; i++) {\r\n\t\t\t\tfor(k = 0, l = tmp[i].children_d.length; k < l; k++) {\r\n\t\t\t\t\tif(obj[tmp[i].children_d[k]]) {\r\n\t\t\t\t\t\tdelete obj[tmp[i].children_d[k]];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttmp = [];\r\n\t\t\tfor(i in obj) {\r\n\t\t\t\tif(obj.hasOwnProperty(i)) {\r\n\t\t\t\t\ttmp.push(i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn full ? $.map(tmp, $.proxy(function (i) { return this.get_node(i); }, this)) : tmp;\r\n\t\t};\r\n\t\t/**\r\n\t\t * get an array of all bottom level checked nodes (ignoring selected parents) (if tie_selection is on in the settings this function will return the same as get_bottom_selected)\r\n\t\t * @name get_bottom_checked([full])\r\n\t\t * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned\r\n\t\t * @return {Array}\r\n\t\t * @plugin checkbox\r\n\t\t */\r\n\t\tthis.get_bottom_checked = function (full) {\r\n\t\t\tif(this.settings.checkbox.tie_selection) { return this.get_bottom_selected(full); }\r\n\t\t\tvar tmp = this.get_checked(true),\r\n\t\t\t\tobj = [], i, j;\r\n\t\t\tfor(i = 0, j = tmp.length; i < j; i++) {\r\n\t\t\t\tif(!tmp[i].children.length) {\r\n\t\t\t\t\tobj.push(tmp[i].id);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn full ? $.map(obj, $.proxy(function (i) { return this.get_node(i); }, this)) : obj;\r\n\t\t};\r\n\t\tthis.load_node = function (obj, callback) {\r\n\t\t\tvar k, l, i, j, c, tmp;\r\n\t\t\tif(!$.isArray(obj) && !this.settings.checkbox.tie_selection) {\r\n\t\t\t\ttmp = this.get_node(obj);\r\n\t\t\t\tif(tmp && tmp.state.loaded) {\r\n\t\t\t\t\tfor(k = 0, l = tmp.children_d.length; k < l; k++) {\r\n\t\t\t\t\t\tif(this._model.data[tmp.children_d[k]].state.checked) {\r\n\t\t\t\t\t\t\tc = true;\r\n\t\t\t\t\t\t\tthis._data.checkbox.selected = $.vakata.array_remove_item(this._data.checkbox.selected, tmp.children_d[k]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn parent.load_node.apply(this, arguments);\r\n\t\t};\r\n\t\tthis.get_state = function () {\r\n\t\t\tvar state = parent.get_state.apply(this, arguments);\r\n\t\t\tif(this.settings.checkbox.tie_selection) { return state; }\r\n\t\t\tstate.checkbox = this._data.checkbox.selected.slice();\r\n\t\t\treturn state;\r\n\t\t};\r\n\t\tthis.set_state = function (state, callback) {\r\n\t\t\tvar res = parent.set_state.apply(this, arguments);\r\n\t\t\tif(res && state.checkbox) {\r\n\t\t\t\tif(!this.settings.checkbox.tie_selection) {\r\n\t\t\t\t\tthis.uncheck_all();\r\n\t\t\t\t\tvar _this = this;\r\n\t\t\t\t\t$.each(state.checkbox, function (i, v) {\r\n\t\t\t\t\t\t_this.check_node(v);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tdelete state.checkbox;\r\n\t\t\t\tthis.set_state(state, callback);\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\treturn res;\r\n\t\t};\r\n\t\tthis.refresh = function (skip_loading, forget_state) {\r\n\t\t\tif(this.settings.checkbox.tie_selection) {\r\n\t\t\t\tthis._data.checkbox.selected = [];\r\n\t\t\t}\r\n\t\t\treturn parent.refresh.apply(this, arguments);\r\n\t\t};\r\n\t};\r\n\r\n\t// include the checkbox plugin by default\r\n\t// $.jstree.defaults.plugins.push(\"checkbox\");\r\n\r\n\r\n/**\r\n * ### Conditionalselect plugin\r\n *\r\n * This plugin allows defining a callback to allow or deny node selection by user input (activate node method).\r\n */\r\n\r\n\t/**\r\n\t * a callback (function) which is invoked in the instance's scope and receives two arguments - the node and the event that triggered the `activate_node` call. Returning false prevents working with the node, returning true allows invoking activate_node. Defaults to returning `true`.\r\n\t * @name $.jstree.defaults.checkbox.visible\r\n\t * @plugin checkbox\r\n\t */\r\n\t$.jstree.defaults.conditionalselect = function () { return true; };\r\n\t$.jstree.plugins.conditionalselect = function (options, parent) {\r\n\t\t// own function\r\n\t\tthis.activate_node = function (obj, e) {\r\n\t\t\tif(this.settings.conditionalselect.call(this, this.get_node(obj), e)) {\r\n\t\t\t\treturn parent.activate_node.call(this, obj, e);\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\r\n/**\r\n * ### Contextmenu plugin\r\n *\r\n * Shows a context menu when a node is right-clicked.\r\n */\r\n\r\n\t/**\r\n\t * stores all defaults for the contextmenu plugin\r\n\t * @name $.jstree.defaults.contextmenu\r\n\t * @plugin contextmenu\r\n\t */\r\n\t$.jstree.defaults.contextmenu = {\r\n\t\t/**\r\n\t\t * a boolean indicating if the node should be selected when the context menu is invoked on it. Defaults to `true`.\r\n\t\t * @name $.jstree.defaults.contextmenu.select_node\r\n\t\t * @plugin contextmenu\r\n\t\t */\r\n\t\tselect_node : true,\r\n\t\t/**\r\n\t\t * a boolean indicating if the menu should be shown aligned with the node. Defaults to `true`, otherwise the mouse coordinates are used.\r\n\t\t * @name $.jstree.defaults.contextmenu.show_at_node\r\n\t\t * @plugin contextmenu\r\n\t\t */\r\n\t\tshow_at_node : true,\r\n\t\t/**\r\n\t\t * an object of actions, or a function that accepts a node and a callback function and calls the callback function with an object of actions available for that node (you can also return the items too).\r\n\t\t *\r\n\t\t * Each action consists of a key (a unique name) and a value which is an object with the following properties (only label and action are required). Once a menu item is activated the `action` function will be invoked with an object containing the following keys: item - the contextmenu item definition as seen below, reference - the DOM node that was used (the tree node), element - the contextmenu DOM element, position - an object with x/y properties indicating the position of the menu.\r\n\t\t *\r\n\t\t * * `separator_before` - a boolean indicating if there should be a separator before this item\r\n\t\t * * `separator_after` - a boolean indicating if there should be a separator after this item\r\n\t\t * * `_disabled` - a boolean indicating if this action should be disabled\r\n\t\t * * `label` - a string - the name of the action (could be a function returning a string)\r\n\t\t * * `title` - a string - an optional tooltip for the item\r\n\t\t * * `action` - a function to be executed if this item is chosen, the function will receive \r\n\t\t * * `icon` - a string, can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class\r\n\t\t * * `shortcut` - keyCode which will trigger the action if the menu is open (for example `113` for rename, which equals F2)\r\n\t\t * * `shortcut_label` - shortcut label (like for example `F2` for rename)\r\n\t\t * * `submenu` - an object with the same structure as $.jstree.defaults.contextmenu.items which can be used to create a submenu - each key will be rendered as a separate option in a submenu that will appear once the current item is hovered\r\n\t\t *\r\n\t\t * @name $.jstree.defaults.contextmenu.items\r\n\t\t * @plugin contextmenu\r\n\t\t */\r\n\t\titems : function (o, cb) { // Could be an object directly\r\n\t\t\treturn {\r\n\t\t\t\t\"create\" : {\r\n\t\t\t\t\t\"separator_before\"\t: false,\r\n\t\t\t\t\t\"separator_after\"\t: true,\r\n\t\t\t\t\t\"_disabled\"\t\t\t: false, //(this.check(\"create_node\", data.reference, {}, \"last\")),\r\n\t\t\t\t\t\"label\"\t\t\t\t: \"Create\",\r\n\t\t\t\t\t\"action\"\t\t\t: function (data) {\r\n\t\t\t\t\t\tvar inst = $.jstree.reference(data.reference),\r\n\t\t\t\t\t\t\tobj = inst.get_node(data.reference);\r\n\t\t\t\t\t\tinst.create_node(obj, {}, \"last\", function (new_node) {\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\tinst.edit(new_node);\r\n\t\t\t\t\t\t\t} catch (ex) {\r\n\t\t\t\t\t\t\t\tsetTimeout(function () { inst.edit(new_node); },0);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t\"rename\" : {\r\n\t\t\t\t\t\"separator_before\"\t: false,\r\n\t\t\t\t\t\"separator_after\"\t: false,\r\n\t\t\t\t\t\"_disabled\"\t\t\t: false, //(this.check(\"rename_node\", data.reference, this.get_parent(data.reference), \"\")),\r\n\t\t\t\t\t\"label\"\t\t\t\t: \"Rename\",\r\n\t\t\t\t\t/*!\r\n\t\t\t\t\t\"shortcut\"\t\t\t: 113,\r\n\t\t\t\t\t\"shortcut_label\"\t: 'F2',\r\n\t\t\t\t\t\"icon\"\t\t\t\t: \"glyphicon glyphicon-leaf\",\r\n\t\t\t\t\t*/\r\n\t\t\t\t\t\"action\"\t\t\t: function (data) {\r\n\t\t\t\t\t\tvar inst = $.jstree.reference(data.reference),\r\n\t\t\t\t\t\t\tobj = inst.get_node(data.reference);\r\n\t\t\t\t\t\tinst.edit(obj);\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t\"remove\" : {\r\n\t\t\t\t\t\"separator_before\"\t: false,\r\n\t\t\t\t\t\"icon\"\t\t\t\t: false,\r\n\t\t\t\t\t\"separator_after\"\t: false,\r\n\t\t\t\t\t\"_disabled\"\t\t\t: false, //(this.check(\"delete_node\", data.reference, this.get_parent(data.reference), \"\")),\r\n\t\t\t\t\t\"label\"\t\t\t\t: \"Delete\",\r\n\t\t\t\t\t\"action\"\t\t\t: function (data) {\r\n\t\t\t\t\t\tvar inst = $.jstree.reference(data.reference),\r\n\t\t\t\t\t\t\tobj = inst.get_node(data.reference);\r\n\t\t\t\t\t\tif(inst.is_selected(obj)) {\r\n\t\t\t\t\t\t\tinst.delete_node(inst.get_selected());\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tinst.delete_node(obj);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t\"ccp\" : {\r\n\t\t\t\t\t\"separator_before\"\t: true,\r\n\t\t\t\t\t\"icon\"\t\t\t\t: false,\r\n\t\t\t\t\t\"separator_after\"\t: false,\r\n\t\t\t\t\t\"label\"\t\t\t\t: \"Edit\",\r\n\t\t\t\t\t\"action\"\t\t\t: false,\r\n\t\t\t\t\t\"submenu\" : {\r\n\t\t\t\t\t\t\"cut\" : {\r\n\t\t\t\t\t\t\t\"separator_before\"\t: false,\r\n\t\t\t\t\t\t\t\"separator_after\"\t: false,\r\n\t\t\t\t\t\t\t\"label\"\t\t\t\t: \"Cut\",\r\n\t\t\t\t\t\t\t\"action\"\t\t\t: function (data) {\r\n\t\t\t\t\t\t\t\tvar inst = $.jstree.reference(data.reference),\r\n\t\t\t\t\t\t\t\t\tobj = inst.get_node(data.reference);\r\n\t\t\t\t\t\t\t\tif(inst.is_selected(obj)) {\r\n\t\t\t\t\t\t\t\t\tinst.cut(inst.get_top_selected());\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tinst.cut(obj);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\"copy\" : {\r\n\t\t\t\t\t\t\t\"separator_before\"\t: false,\r\n\t\t\t\t\t\t\t\"icon\"\t\t\t\t: false,\r\n\t\t\t\t\t\t\t\"separator_after\"\t: false,\r\n\t\t\t\t\t\t\t\"label\"\t\t\t\t: \"Copy\",\r\n\t\t\t\t\t\t\t\"action\"\t\t\t: function (data) {\r\n\t\t\t\t\t\t\t\tvar inst = $.jstree.reference(data.reference),\r\n\t\t\t\t\t\t\t\t\tobj = inst.get_node(data.reference);\r\n\t\t\t\t\t\t\t\tif(inst.is_selected(obj)) {\r\n\t\t\t\t\t\t\t\t\tinst.copy(inst.get_top_selected());\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tinst.copy(obj);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\"paste\" : {\r\n\t\t\t\t\t\t\t\"separator_before\"\t: false,\r\n\t\t\t\t\t\t\t\"icon\"\t\t\t\t: false,\r\n\t\t\t\t\t\t\t\"_disabled\"\t\t\t: function (data) {\r\n\t\t\t\t\t\t\t\treturn !$.jstree.reference(data.reference).can_paste();\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\"separator_after\"\t: false,\r\n\t\t\t\t\t\t\t\"label\"\t\t\t\t: \"Paste\",\r\n\t\t\t\t\t\t\t\"action\"\t\t\t: function (data) {\r\n\t\t\t\t\t\t\t\tvar inst = $.jstree.reference(data.reference),\r\n\t\t\t\t\t\t\t\t\tobj = inst.get_node(data.reference);\r\n\t\t\t\t\t\t\t\tinst.paste(obj);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t};\r\n\r\n\t$.jstree.plugins.contextmenu = function (options, parent) {\r\n\t\tthis.bind = function () {\r\n\t\t\tparent.bind.call(this);\r\n\r\n\t\t\tvar last_ts = 0, cto = null, ex, ey;\r\n\t\t\tthis.element\r\n\t\t\t\t.on(\"init.jstree loading.jstree ready.jstree\", $.proxy(function () {\r\n\t\t\t\t\t\tthis.get_container_ul().addClass('jstree-contextmenu');\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"contextmenu.jstree\", \".jstree-anchor\", $.proxy(function (e, data) {\r\n\t\t\t\t\t\tif (e.target.tagName.toLowerCase() === 'input') {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\tlast_ts = e.ctrlKey ? +new Date() : 0;\r\n\t\t\t\t\t\tif(data || cto) {\r\n\t\t\t\t\t\t\tlast_ts = (+new Date()) + 10000;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(cto) {\r\n\t\t\t\t\t\t\tclearTimeout(cto);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(!this.is_loading(e.currentTarget)) {\r\n\t\t\t\t\t\t\tthis.show_contextmenu(e.currentTarget, e.pageX, e.pageY, e);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"click.jstree\", \".jstree-anchor\", $.proxy(function (e) {\r\n\t\t\t\t\t\tif(this._data.contextmenu.visible && (!last_ts || (+new Date()) - last_ts > 250)) { // work around safari & macOS ctrl+click\r\n\t\t\t\t\t\t\t$.vakata.context.hide();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tlast_ts = 0;\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"touchstart.jstree\", \".jstree-anchor\", function (e) {\r\n\t\t\t\t\t\tif(!e.originalEvent || !e.originalEvent.changedTouches || !e.originalEvent.changedTouches[0]) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tex = e.originalEvent.changedTouches[0].clientX;\r\n\t\t\t\t\t\tey = e.originalEvent.changedTouches[0].clientY;\r\n\t\t\t\t\t\tcto = setTimeout(function () {\r\n\t\t\t\t\t\t\t$(e.currentTarget).trigger('contextmenu', true);\r\n\t\t\t\t\t\t}, 750);\r\n\t\t\t\t\t})\r\n\t\t\t\t.on('touchmove.vakata.jstree', function (e) {\r\n\t\t\t\t\t\tif(cto && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0] && (Math.abs(ex - e.originalEvent.changedTouches[0].clientX) > 10 || Math.abs(ey - e.originalEvent.changedTouches[0].clientY) > 10)) {\r\n\t\t\t\t\t\t\tclearTimeout(cto);\r\n\t\t\t\t\t\t\t$.vakata.context.hide();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t.on('touchend.vakata.jstree', function (e) {\r\n\t\t\t\t\t\tif(cto) {\r\n\t\t\t\t\t\t\tclearTimeout(cto);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t/*!\r\n\t\t\tif(!('oncontextmenu' in document.body) && ('ontouchstart' in document.body)) {\r\n\t\t\t\tvar el = null, tm = null;\r\n\t\t\t\tthis.element\r\n\t\t\t\t\t.on(\"touchstart\", \".jstree-anchor\", function (e) {\r\n\t\t\t\t\t\tel = e.currentTarget;\r\n\t\t\t\t\t\ttm = +new Date();\r\n\t\t\t\t\t\t$(document).one(\"touchend\", function (e) {\r\n\t\t\t\t\t\t\te.target = document.elementFromPoint(e.originalEvent.targetTouches[0].pageX - window.pageXOffset, e.originalEvent.targetTouches[0].pageY - window.pageYOffset);\r\n\t\t\t\t\t\t\te.currentTarget = e.target;\r\n\t\t\t\t\t\t\ttm = ((+(new Date())) - tm);\r\n\t\t\t\t\t\t\tif(e.target === el && tm > 600 && tm < 1000) {\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t$(el).trigger('contextmenu', e);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tel = null;\r\n\t\t\t\t\t\t\ttm = null;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t\t*/\r\n\t\t\t$(document).on(\"context_hide.vakata.jstree\", $.proxy(function (e, data) {\r\n\t\t\t\tthis._data.contextmenu.visible = false;\r\n\t\t\t\t$(data.reference).removeClass('jstree-context');\r\n\t\t\t}, this));\r\n\t\t};\r\n\t\tthis.teardown = function () {\r\n\t\t\tif(this._data.contextmenu.visible) {\r\n\t\t\t\t$.vakata.context.hide();\r\n\t\t\t}\r\n\t\t\tparent.teardown.call(this);\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * prepare and show the context menu for a node\r\n\t\t * @name show_contextmenu(obj [, x, y])\r\n\t\t * @param {mixed} obj the node\r\n\t\t * @param {Number} x the x-coordinate relative to the document to show the menu at\r\n\t\t * @param {Number} y the y-coordinate relative to the document to show the menu at\r\n\t\t * @param {Object} e the event if available that triggered the contextmenu\r\n\t\t * @plugin contextmenu\r\n\t\t * @trigger show_contextmenu.jstree\r\n\t\t */\r\n\t\tthis.show_contextmenu = function (obj, x, y, e) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj || obj.id === $.jstree.root) { return false; }\r\n\t\t\tvar s = this.settings.contextmenu,\r\n\t\t\t\td = this.get_node(obj, true),\r\n\t\t\t\ta = d.children(\".jstree-anchor\"),\r\n\t\t\t\to = false,\r\n\t\t\t\ti = false;\r\n\t\t\tif(s.show_at_node || x === undefined || y === undefined) {\r\n\t\t\t\to = a.offset();\r\n\t\t\t\tx = o.left;\r\n\t\t\t\ty = o.top + this._data.core.li_height;\r\n\t\t\t}\r\n\t\t\tif(this.settings.contextmenu.select_node && !this.is_selected(obj)) {\r\n\t\t\t\tthis.activate_node(obj, e);\r\n\t\t\t}\r\n\r\n\t\t\ti = s.items;\r\n\t\t\tif($.isFunction(i)) {\r\n\t\t\t\ti = i.call(this, obj, $.proxy(function (i) {\r\n\t\t\t\t\tthis._show_contextmenu(obj, x, y, i);\r\n\t\t\t\t}, this));\r\n\t\t\t}\r\n\t\t\tif($.isPlainObject(i)) {\r\n\t\t\t\tthis._show_contextmenu(obj, x, y, i);\r\n\t\t\t}\r\n\t\t};\r\n\t\t/**\r\n\t\t * show the prepared context menu for a node\r\n\t\t * @name _show_contextmenu(obj, x, y, i)\r\n\t\t * @param {mixed} obj the node\r\n\t\t * @param {Number} x the x-coordinate relative to the document to show the menu at\r\n\t\t * @param {Number} y the y-coordinate relative to the document to show the menu at\r\n\t\t * @param {Number} i the object of items to show\r\n\t\t * @plugin contextmenu\r\n\t\t * @trigger show_contextmenu.jstree\r\n\t\t * @private\r\n\t\t */\r\n\t\tthis._show_contextmenu = function (obj, x, y, i) {\r\n\t\t\tvar d = this.get_node(obj, true),\r\n\t\t\t\ta = d.children(\".jstree-anchor\");\r\n\t\t\t$(document).one(\"context_show.vakata.jstree\", $.proxy(function (e, data) {\r\n\t\t\t\tvar cls = 'jstree-contextmenu jstree-' + this.get_theme() + '-contextmenu';\r\n\t\t\t\t$(data.element).addClass(cls);\r\n\t\t\t\ta.addClass('jstree-context');\r\n\t\t\t}, this));\r\n\t\t\tthis._data.contextmenu.visible = true;\r\n\t\t\t$.vakata.context.show(a, { 'x' : x, 'y' : y }, i);\r\n\t\t\t/**\r\n\t\t\t * triggered when the contextmenu is shown for a node\r\n\t\t\t * @event\r\n\t\t\t * @name show_contextmenu.jstree\r\n\t\t\t * @param {Object} node the node\r\n\t\t\t * @param {Number} x the x-coordinate of the menu relative to the document\r\n\t\t\t * @param {Number} y the y-coordinate of the menu relative to the document\r\n\t\t\t * @plugin contextmenu\r\n\t\t\t */\r\n\t\t\tthis.trigger('show_contextmenu', { \"node\" : obj, \"x\" : x, \"y\" : y });\r\n\t\t};\r\n\t};\r\n\r\n\t// contextmenu helper\r\n\t(function ($) {\r\n\t\tvar right_to_left = false,\r\n\t\t\tvakata_context = {\r\n\t\t\t\telement\t\t: false,\r\n\t\t\t\treference\t: false,\r\n\t\t\t\tposition_x\t: 0,\r\n\t\t\t\tposition_y\t: 0,\r\n\t\t\t\titems\t\t: [],\r\n\t\t\t\thtml\t\t: \"\",\r\n\t\t\t\tis_visible\t: false\r\n\t\t\t};\r\n\r\n\t\t$.vakata.context = {\r\n\t\t\tsettings : {\r\n\t\t\t\thide_onmouseleave\t: 0,\r\n\t\t\t\ticons\t\t\t\t: true\r\n\t\t\t},\r\n\t\t\t_trigger : function (event_name) {\r\n\t\t\t\t$(document).triggerHandler(\"context_\" + event_name + \".vakata\", {\r\n\t\t\t\t\t\"reference\"\t: vakata_context.reference,\r\n\t\t\t\t\t\"element\"\t: vakata_context.element,\r\n\t\t\t\t\t\"position\"\t: {\r\n\t\t\t\t\t\t\"x\" : vakata_context.position_x,\r\n\t\t\t\t\t\t\"y\" : vakata_context.position_y\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\t_execute : function (i) {\r\n\t\t\t\ti = vakata_context.items[i];\r\n\t\t\t\treturn i && (!i._disabled || ($.isFunction(i._disabled) && !i._disabled({ \"item\" : i, \"reference\" : vakata_context.reference, \"element\" : vakata_context.element }))) && i.action ? i.action.call(null, {\r\n\t\t\t\t\t\t\t\"item\"\t\t: i,\r\n\t\t\t\t\t\t\t\"reference\"\t: vakata_context.reference,\r\n\t\t\t\t\t\t\t\"element\"\t: vakata_context.element,\r\n\t\t\t\t\t\t\t\"position\"\t: {\r\n\t\t\t\t\t\t\t\t\"x\" : vakata_context.position_x,\r\n\t\t\t\t\t\t\t\t\"y\" : vakata_context.position_y\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}) : false;\r\n\t\t\t},\r\n\t\t\t_parse : function (o, is_callback) {\r\n\t\t\t\tif(!o) { return false; }\r\n\t\t\t\tif(!is_callback) {\r\n\t\t\t\t\tvakata_context.html\t\t= \"\";\r\n\t\t\t\t\tvakata_context.items\t= [];\r\n\t\t\t\t}\r\n\t\t\t\tvar str = \"\",\r\n\t\t\t\t\tsep = false,\r\n\t\t\t\t\ttmp;\r\n\r\n\t\t\t\tif(is_callback) { str += \"<\"+\"ul>\"; }\r\n\t\t\t\t$.each(o, function (i, val) {\r\n\t\t\t\t\tif(!val) { return true; }\r\n\t\t\t\t\tvakata_context.items.push(val);\r\n\t\t\t\t\tif(!sep && val.separator_before) {\r\n\t\t\t\t\t\tstr += \"<\"+\"li class='vakata-context-separator'><\"+\"a href='#' \" + ($.vakata.context.settings.icons ? '' : 'style=\"margin-left:0px;\"') + \"> <\"+\"/a><\"+\"/li>\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tsep = false;\r\n\t\t\t\t\tstr += \"<\"+\"li class='\" + (val._class || \"\") + (val._disabled === true || ($.isFunction(val._disabled) && val._disabled({ \"item\" : val, \"reference\" : vakata_context.reference, \"element\" : vakata_context.element })) ? \" vakata-contextmenu-disabled \" : \"\") + \"' \"+(val.shortcut?\" data-shortcut='\"+val.shortcut+\"' \":'')+\">\";\r\n\t\t\t\t\tstr += \"<\"+\"a href='#' rel='\" + (vakata_context.items.length - 1) + \"' \" + (val.title ? \"title='\" + val.title + \"'\" : \"\") + \">\";\r\n\t\t\t\t\tif($.vakata.context.settings.icons) {\r\n\t\t\t\t\t\tstr += \"<\"+\"i \";\r\n\t\t\t\t\t\tif(val.icon) {\r\n\t\t\t\t\t\t\tif(val.icon.indexOf(\"/\") !== -1 || val.icon.indexOf(\".\") !== -1) { str += \" style='background:url(\\\"\" + val.icon + \"\\\") center center no-repeat' \"; }\r\n\t\t\t\t\t\t\telse { str += \" class='\" + val.icon + \"' \"; }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tstr += \"><\"+\"/i><\"+\"span class='vakata-contextmenu-sep'> <\"+\"/span>\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tstr += ($.isFunction(val.label) ? val.label({ \"item\" : i, \"reference\" : vakata_context.reference, \"element\" : vakata_context.element }) : val.label) + (val.shortcut?' '+ (val.shortcut_label || '') +'':'') + \"<\"+\"/a>\";\r\n\t\t\t\t\tif(val.submenu) {\r\n\t\t\t\t\t\ttmp = $.vakata.context._parse(val.submenu, true);\r\n\t\t\t\t\t\tif(tmp) { str += tmp; }\r\n\t\t\t\t\t}\r\n\t\t\t\t\tstr += \"<\"+\"/li>\";\r\n\t\t\t\t\tif(val.separator_after) {\r\n\t\t\t\t\t\tstr += \"<\"+\"li class='vakata-context-separator'><\"+\"a href='#' \" + ($.vakata.context.settings.icons ? '' : 'style=\"margin-left:0px;\"') + \"> <\"+\"/a><\"+\"/li>\";\r\n\t\t\t\t\t\tsep = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tstr = str.replace(/
  • <\\/li\\>$/,\"\");\r\n\t\t\t\tif(is_callback) { str += \"\"; }\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered on the document when the contextmenu is parsed (HTML is built)\r\n\t\t\t\t * @event\r\n\t\t\t\t * @plugin contextmenu\r\n\t\t\t\t * @name context_parse.vakata\r\n\t\t\t\t * @param {jQuery} reference the element that was right clicked\r\n\t\t\t\t * @param {jQuery} element the DOM element of the menu itself\r\n\t\t\t\t * @param {Object} position the x & y coordinates of the menu\r\n\t\t\t\t */\r\n\t\t\t\tif(!is_callback) { vakata_context.html = str; $.vakata.context._trigger(\"parse\"); }\r\n\t\t\t\treturn str.length > 10 ? str : false;\r\n\t\t\t},\r\n\t\t\t_show_submenu : function (o) {\r\n\t\t\t\to = $(o);\r\n\t\t\t\tif(!o.length || !o.children(\"ul\").length) { return; }\r\n\t\t\t\tvar e = o.children(\"ul\"),\r\n\t\t\t\t\txl = o.offset().left,\r\n\t\t\t\t\tx = xl + o.outerWidth(),\r\n\t\t\t\t\ty = o.offset().top,\r\n\t\t\t\t\tw = e.width(),\r\n\t\t\t\t\th = e.height(),\r\n\t\t\t\t\tdw = $(window).width() + $(window).scrollLeft(),\r\n\t\t\t\t\tdh = $(window).height() + $(window).scrollTop();\r\n\t\t\t\t// може да се спести е една проверка - дали няма някой от класовете вече нагоре\r\n\t\t\t\tif(right_to_left) {\r\n\t\t\t\t\to[x - (w + 10 + o.outerWidth()) < 0 ? \"addClass\" : \"removeClass\"](\"vakata-context-left\");\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\to[x + w > dw && xl > dw - x ? \"addClass\" : \"removeClass\"](\"vakata-context-right\");\r\n\t\t\t\t}\r\n\t\t\t\tif(y + h + 10 > dh) {\r\n\t\t\t\t\te.css(\"bottom\",\"-1px\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//if does not fit - stick it to the side\r\n\t\t\t\tif (o.hasClass('vakata-context-right')) {\r\n\t\t\t\t\tif (xl < w) {\r\n\t\t\t\t\t\te.css(\"margin-right\", xl - w);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (dw - x < w) {\r\n\t\t\t\t\t\te.css(\"margin-left\", dw - x - w);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\te.show();\r\n\t\t\t},\r\n\t\t\tshow : function (reference, position, data) {\r\n\t\t\t\tvar o, e, x, y, w, h, dw, dh, cond = true;\r\n\t\t\t\tif(vakata_context.element && vakata_context.element.length) {\r\n\t\t\t\t\tvakata_context.element.width('');\r\n\t\t\t\t}\r\n\t\t\t\tswitch(cond) {\r\n\t\t\t\t\tcase (!position && !reference):\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\tcase (!!position && !!reference):\r\n\t\t\t\t\t\tvakata_context.reference\t= reference;\r\n\t\t\t\t\t\tvakata_context.position_x\t= position.x;\r\n\t\t\t\t\t\tvakata_context.position_y\t= position.y;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase (!position && !!reference):\r\n\t\t\t\t\t\tvakata_context.reference\t= reference;\r\n\t\t\t\t\t\to = reference.offset();\r\n\t\t\t\t\t\tvakata_context.position_x\t= o.left + reference.outerHeight();\r\n\t\t\t\t\t\tvakata_context.position_y\t= o.top;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tcase (!!position && !reference):\r\n\t\t\t\t\t\tvakata_context.position_x\t= position.x;\r\n\t\t\t\t\t\tvakata_context.position_y\t= position.y;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t\tif(!!reference && !data && $(reference).data('vakata_contextmenu')) {\r\n\t\t\t\t\tdata = $(reference).data('vakata_contextmenu');\r\n\t\t\t\t}\r\n\t\t\t\tif($.vakata.context._parse(data)) {\r\n\t\t\t\t\tvakata_context.element.html(vakata_context.html);\r\n\t\t\t\t}\r\n\t\t\t\tif(vakata_context.items.length) {\r\n\t\t\t\t\tvakata_context.element.appendTo(document.body);\r\n\t\t\t\t\te = vakata_context.element;\r\n\t\t\t\t\tx = vakata_context.position_x;\r\n\t\t\t\t\ty = vakata_context.position_y;\r\n\t\t\t\t\tw = e.width();\r\n\t\t\t\t\th = e.height();\r\n\t\t\t\t\tdw = $(window).width() + $(window).scrollLeft();\r\n\t\t\t\t\tdh = $(window).height() + $(window).scrollTop();\r\n\t\t\t\t\tif(right_to_left) {\r\n\t\t\t\t\t\tx -= (e.outerWidth() - $(reference).outerWidth());\r\n\t\t\t\t\t\tif(x < $(window).scrollLeft() + 20) {\r\n\t\t\t\t\t\t\tx = $(window).scrollLeft() + 20;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(x + w + 20 > dw) {\r\n\t\t\t\t\t\tx = dw - (w + 20);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(y + h + 20 > dh) {\r\n\t\t\t\t\t\ty = dh - (h + 20);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvakata_context.element\r\n\t\t\t\t\t\t.css({ \"left\" : x, \"top\" : y })\r\n\t\t\t\t\t\t.show()\r\n\t\t\t\t\t\t.find('a').first().focus().parent().addClass(\"vakata-context-hover\");\r\n\t\t\t\t\tvakata_context.is_visible = true;\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * triggered on the document when the contextmenu is shown\r\n\t\t\t\t\t * @event\r\n\t\t\t\t\t * @plugin contextmenu\r\n\t\t\t\t\t * @name context_show.vakata\r\n\t\t\t\t\t * @param {jQuery} reference the element that was right clicked\r\n\t\t\t\t\t * @param {jQuery} element the DOM element of the menu itself\r\n\t\t\t\t\t * @param {Object} position the x & y coordinates of the menu\r\n\t\t\t\t\t */\r\n\t\t\t\t\t$.vakata.context._trigger(\"show\");\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\thide : function () {\r\n\t\t\t\tif(vakata_context.is_visible) {\r\n\t\t\t\t\tvakata_context.element.hide().find(\"ul\").hide().end().find(':focus').blur().end().detach();\r\n\t\t\t\t\tvakata_context.is_visible = false;\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * triggered on the document when the contextmenu is hidden\r\n\t\t\t\t\t * @event\r\n\t\t\t\t\t * @plugin contextmenu\r\n\t\t\t\t\t * @name context_hide.vakata\r\n\t\t\t\t\t * @param {jQuery} reference the element that was right clicked\r\n\t\t\t\t\t * @param {jQuery} element the DOM element of the menu itself\r\n\t\t\t\t\t * @param {Object} position the x & y coordinates of the menu\r\n\t\t\t\t\t */\r\n\t\t\t\t\t$.vakata.context._trigger(\"hide\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\t$(function () {\r\n\t\t\tright_to_left = $(document.body).css(\"direction\") === \"rtl\";\r\n\t\t\tvar to = false;\r\n\r\n\t\t\tvakata_context.element = $(\"\");\r\n\t\t\tvakata_context.element\r\n\t\t\t\t.on(\"mouseenter\", \"li\", function (e) {\r\n\t\t\t\t\te.stopImmediatePropagation();\r\n\r\n\t\t\t\t\tif($.contains(this, e.relatedTarget)) {\r\n\t\t\t\t\t\t// премахнато заради delegate mouseleave по-долу\r\n\t\t\t\t\t\t// $(this).find(\".vakata-context-hover\").removeClass(\"vakata-context-hover\");\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif(to) { clearTimeout(to); }\r\n\t\t\t\t\tvakata_context.element.find(\".vakata-context-hover\").removeClass(\"vakata-context-hover\").end();\r\n\r\n\t\t\t\t\t$(this)\r\n\t\t\t\t\t\t.siblings().find(\"ul\").hide().end().end()\r\n\t\t\t\t\t\t.parentsUntil(\".vakata-context\", \"li\").addBack().addClass(\"vakata-context-hover\");\r\n\t\t\t\t\t$.vakata.context._show_submenu(this);\r\n\t\t\t\t})\r\n\t\t\t\t// тестово - дали не натоварва?\r\n\t\t\t\t.on(\"mouseleave\", \"li\", function (e) {\r\n\t\t\t\t\tif($.contains(this, e.relatedTarget)) { return; }\r\n\t\t\t\t\t$(this).find(\".vakata-context-hover\").addBack().removeClass(\"vakata-context-hover\");\r\n\t\t\t\t})\r\n\t\t\t\t.on(\"mouseleave\", function (e) {\r\n\t\t\t\t\t$(this).find(\".vakata-context-hover\").removeClass(\"vakata-context-hover\");\r\n\t\t\t\t\tif($.vakata.context.settings.hide_onmouseleave) {\r\n\t\t\t\t\t\tto = setTimeout(\r\n\t\t\t\t\t\t\t(function (t) {\r\n\t\t\t\t\t\t\t\treturn function () { $.vakata.context.hide(); };\r\n\t\t\t\t\t\t\t}(this)), $.vakata.context.settings.hide_onmouseleave);\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.on(\"click\", \"a\", function (e) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t//})\r\n\t\t\t\t//.on(\"mouseup\", \"a\", function (e) {\r\n\t\t\t\t\tif(!$(this).blur().parent().hasClass(\"vakata-context-disabled\") && $.vakata.context._execute($(this).attr(\"rel\")) !== false) {\r\n\t\t\t\t\t\t$.vakata.context.hide();\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.on('keydown', 'a', function (e) {\r\n\t\t\t\t\t\tvar o = null;\r\n\t\t\t\t\t\tswitch(e.which) {\r\n\t\t\t\t\t\t\tcase 13:\r\n\t\t\t\t\t\t\tcase 32:\r\n\t\t\t\t\t\t\t\te.type = \"click\";\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t$(e.currentTarget).trigger(e);\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 37:\r\n\t\t\t\t\t\t\t\tif(vakata_context.is_visible) {\r\n\t\t\t\t\t\t\t\t\tvakata_context.element.find(\".vakata-context-hover\").last().closest(\"li\").first().find(\"ul\").hide().find(\".vakata-context-hover\").removeClass(\"vakata-context-hover\").end().end().children('a').focus();\r\n\t\t\t\t\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 38:\r\n\t\t\t\t\t\t\t\tif(vakata_context.is_visible) {\r\n\t\t\t\t\t\t\t\t\to = vakata_context.element.find(\"ul:visible\").addBack().last().children(\".vakata-context-hover\").removeClass(\"vakata-context-hover\").prevAll(\"li:not(.vakata-context-separator)\").first();\r\n\t\t\t\t\t\t\t\t\tif(!o.length) { o = vakata_context.element.find(\"ul:visible\").addBack().last().children(\"li:not(.vakata-context-separator)\").last(); }\r\n\t\t\t\t\t\t\t\t\to.addClass(\"vakata-context-hover\").children('a').focus();\r\n\t\t\t\t\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 39:\r\n\t\t\t\t\t\t\t\tif(vakata_context.is_visible) {\r\n\t\t\t\t\t\t\t\t\tvakata_context.element.find(\".vakata-context-hover\").last().children(\"ul\").show().children(\"li:not(.vakata-context-separator)\").removeClass(\"vakata-context-hover\").first().addClass(\"vakata-context-hover\").children('a').focus();\r\n\t\t\t\t\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 40:\r\n\t\t\t\t\t\t\t\tif(vakata_context.is_visible) {\r\n\t\t\t\t\t\t\t\t\to = vakata_context.element.find(\"ul:visible\").addBack().last().children(\".vakata-context-hover\").removeClass(\"vakata-context-hover\").nextAll(\"li:not(.vakata-context-separator)\").first();\r\n\t\t\t\t\t\t\t\t\tif(!o.length) { o = vakata_context.element.find(\"ul:visible\").addBack().last().children(\"li:not(.vakata-context-separator)\").first(); }\r\n\t\t\t\t\t\t\t\t\to.addClass(\"vakata-context-hover\").children('a').focus();\r\n\t\t\t\t\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 27:\r\n\t\t\t\t\t\t\t\t$.vakata.context.hide();\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\t//console.log(e.which);\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t.on('keydown', function (e) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tvar a = vakata_context.element.find('.vakata-contextmenu-shortcut-' + e.which).parent();\r\n\t\t\t\t\tif(a.parent().not('.vakata-context-disabled')) {\r\n\t\t\t\t\t\ta.click();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t$(document)\r\n\t\t\t\t.on(\"mousedown.vakata.jstree\", function (e) {\r\n\t\t\t\t\tif(vakata_context.is_visible && vakata_context.element[0] !== e.target && !$.contains(vakata_context.element[0], e.target)) {\r\n\t\t\t\t\t\t$.vakata.context.hide();\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.on(\"context_show.vakata.jstree\", function (e, data) {\r\n\t\t\t\t\tvakata_context.element.find(\"li:has(ul)\").children(\"a\").addClass(\"vakata-context-parent\");\r\n\t\t\t\t\tif(right_to_left) {\r\n\t\t\t\t\t\tvakata_context.element.addClass(\"vakata-context-rtl\").css(\"direction\", \"rtl\");\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// also apply a RTL class?\r\n\t\t\t\t\tvakata_context.element.find(\"ul\").hide().end();\r\n\t\t\t\t});\r\n\t\t});\r\n\t}($));\r\n\t// $.jstree.defaults.plugins.push(\"contextmenu\");\r\n\r\n\r\n/**\r\n * ### Drag'n'drop plugin\r\n *\r\n * Enables dragging and dropping of nodes in the tree, resulting in a move or copy operations.\r\n */\r\n\r\n\t/**\r\n\t * stores all defaults for the drag'n'drop plugin\r\n\t * @name $.jstree.defaults.dnd\r\n\t * @plugin dnd\r\n\t */\r\n\t$.jstree.defaults.dnd = {\r\n\t\t/**\r\n\t\t * a boolean indicating if a copy should be possible while dragging (by pressint the meta key or Ctrl). Defaults to `true`.\r\n\t\t * @name $.jstree.defaults.dnd.copy\r\n\t\t * @plugin dnd\r\n\t\t */\r\n\t\tcopy : true,\r\n\t\t/**\r\n\t\t * a number indicating how long a node should remain hovered while dragging to be opened. Defaults to `500`.\r\n\t\t * @name $.jstree.defaults.dnd.open_timeout\r\n\t\t * @plugin dnd\r\n\t\t */\r\n\t\topen_timeout : 500,\r\n\t\t/**\r\n\t\t * a function invoked each time a node is about to be dragged, invoked in the tree's scope and receives the nodes about to be dragged as an argument (array) and the event that started the drag - return `false` to prevent dragging\r\n\t\t * @name $.jstree.defaults.dnd.is_draggable\r\n\t\t * @plugin dnd\r\n\t\t */\r\n\t\tis_draggable : true,\r\n\t\t/**\r\n\t\t * a boolean indicating if checks should constantly be made while the user is dragging the node (as opposed to checking only on drop), default is `true`\r\n\t\t * @name $.jstree.defaults.dnd.check_while_dragging\r\n\t\t * @plugin dnd\r\n\t\t */\r\n\t\tcheck_while_dragging : true,\r\n\t\t/**\r\n\t\t * a boolean indicating if nodes from this tree should only be copied with dnd (as opposed to moved), default is `false`\r\n\t\t * @name $.jstree.defaults.dnd.always_copy\r\n\t\t * @plugin dnd\r\n\t\t */\r\n\t\talways_copy : false,\r\n\t\t/**\r\n\t\t * when dropping a node \"inside\", this setting indicates the position the node should go to - it can be an integer or a string: \"first\" (same as 0) or \"last\", default is `0`\r\n\t\t * @name $.jstree.defaults.dnd.inside_pos\r\n\t\t * @plugin dnd\r\n\t\t */\r\n\t\tinside_pos : 0,\r\n\t\t/**\r\n\t\t * when starting the drag on a node that is selected this setting controls if all selected nodes are dragged or only the single node, default is `true`, which means all selected nodes are dragged when the drag is started on a selected node\r\n\t\t * @name $.jstree.defaults.dnd.drag_selection\r\n\t\t * @plugin dnd\r\n\t\t */\r\n\t\tdrag_selection : true,\r\n\t\t/**\r\n\t\t * controls whether dnd works on touch devices. If left as boolean true dnd will work the same as in desktop browsers, which in some cases may impair scrolling. If set to boolean false dnd will not work on touch devices. There is a special third option - string \"selected\" which means only selected nodes can be dragged on touch devices.\r\n\t\t * @name $.jstree.defaults.dnd.touch\r\n\t\t * @plugin dnd\r\n\t\t */\r\n\t\ttouch : true,\r\n\t\t/**\r\n\t\t * controls whether items can be dropped anywhere on the node, not just on the anchor, by default only the node anchor is a valid drop target. Works best with the wholerow plugin. If enabled on mobile depending on the interface it might be hard for the user to cancel the drop, since the whole tree container will be a valid drop target.\r\n\t\t * @name $.jstree.defaults.dnd.large_drop_target\r\n\t\t * @plugin dnd\r\n\t\t */\r\n\t\tlarge_drop_target : false,\r\n\t\t/**\r\n\t\t * controls whether a drag can be initiated from any part of the node and not just the text/icon part, works best with the wholerow plugin. Keep in mind it can cause problems with tree scrolling on mobile depending on the interface - in that case set the touch option to \"selected\".\r\n\t\t * @name $.jstree.defaults.dnd.large_drag_target\r\n\t\t * @plugin dnd\r\n\t\t */\r\n\t\tlarge_drag_target : false,\r\n\t\t/**\r\n\t\t * controls whether use HTML5 dnd api instead of classical. That will allow better integration of dnd events with other HTML5 controls.\r\n\t\t * @reference http://caniuse.com/#feat=dragndrop\r\n\t\t * @name $.jstree.defaults.dnd.use_html5\r\n\t\t * @plugin dnd\r\n\t\t */\r\n\t\tuse_html5: false\r\n\t};\r\n\tvar drg, elm;\r\n\t// TODO: now check works by checking for each node individually, how about max_children, unique, etc?\r\n\t$.jstree.plugins.dnd = function (options, parent) {\r\n\t\tthis.init = function (el, options) {\r\n\t\t\tparent.init.call(this, el, options);\r\n\t\t\tthis.settings.dnd.use_html5 = this.settings.dnd.use_html5 && ('draggable' in document.createElement('span'));\r\n\t\t};\r\n\t\tthis.bind = function () {\r\n\t\t\tparent.bind.call(this);\r\n\r\n\t\t\tthis.element\r\n\t\t\t\t.on(this.settings.dnd.use_html5 ? 'dragstart.jstree' : 'mousedown.jstree touchstart.jstree', this.settings.dnd.large_drag_target ? '.jstree-node' : '.jstree-anchor', $.proxy(function (e) {\r\n\t\t\t\t\t\tif(this.settings.dnd.large_drag_target && $(e.target).closest('.jstree-node')[0] !== e.currentTarget) {\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(e.type === \"touchstart\" && (!this.settings.dnd.touch || (this.settings.dnd.touch === 'selected' && !$(e.currentTarget).closest('.jstree-node').children('.jstree-anchor').hasClass('jstree-clicked')))) {\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar obj = this.get_node(e.target),\r\n\t\t\t\t\t\t\tmlt = this.is_selected(obj) && this.settings.dnd.drag_selection ? this.get_top_selected().length : 1,\r\n\t\t\t\t\t\t\ttxt = (mlt > 1 ? mlt + ' ' + this.get_string('nodes') : this.get_text(e.currentTarget));\r\n\t\t\t\t\t\tif(this.settings.core.force_text) {\r\n\t\t\t\t\t\t\ttxt = $.vakata.html.escape(txt);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(obj && obj.id && obj.id !== $.jstree.root && (e.which === 1 || e.type === \"touchstart\" || e.type === \"dragstart\") &&\r\n\t\t\t\t\t\t\t(this.settings.dnd.is_draggable === true || ($.isFunction(this.settings.dnd.is_draggable) && this.settings.dnd.is_draggable.call(this, (mlt > 1 ? this.get_top_selected(true) : [obj]), e)))\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\tdrg = { 'jstree' : true, 'origin' : this, 'obj' : this.get_node(obj,true), 'nodes' : mlt > 1 ? this.get_top_selected() : [obj.id] };\r\n\t\t\t\t\t\t\telm = e.currentTarget;\r\n\t\t\t\t\t\t\tif (this.settings.dnd.use_html5) {\r\n\t\t\t\t\t\t\t\t$.vakata.dnd._trigger('start', e, { 'helper': $(), 'element': elm, 'data': drg });\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tthis.element.trigger('mousedown.jstree');\r\n\t\t\t\t\t\t\t\treturn $.vakata.dnd.start(e, drg, '
    ' + txt + '+
    ');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, this));\r\n\t\t\tif (this.settings.dnd.use_html5) {\r\n\t\t\t\tthis.element\r\n\t\t\t\t\t.on('dragover.jstree', function (e) {\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t$.vakata.dnd._trigger('move', e, { 'helper': $(), 'element': elm, 'data': drg });\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t//.on('dragenter.jstree', this.settings.dnd.large_drop_target ? '.jstree-node' : '.jstree-anchor', $.proxy(function (e) {\r\n\t\t\t\t\t//\t\te.preventDefault();\r\n\t\t\t\t\t//\t\t$.vakata.dnd._trigger('move', e, { 'helper': $(), 'element': elm, 'data': drg });\r\n\t\t\t\t\t//\t\treturn false;\r\n\t\t\t\t\t//\t}, this))\r\n\t\t\t\t\t.on('drop.jstree', $.proxy(function (e) {\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t$.vakata.dnd._trigger('stop', e, { 'helper': $(), 'element': elm, 'data': drg });\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}, this));\r\n\t\t\t}\r\n\t\t};\r\n\t\tthis.redraw_node = function(obj, deep, callback, force_render) {\r\n\t\t\tobj = parent.redraw_node.apply(this, arguments);\r\n\t\t\tif (obj && this.settings.dnd.use_html5) {\r\n\t\t\t\tif (this.settings.dnd.large_drag_target) {\r\n\t\t\t\t\tobj.setAttribute('draggable', true);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar i, j, tmp = null;\r\n\t\t\t\t\tfor(i = 0, j = obj.childNodes.length; i < j; i++) {\r\n\t\t\t\t\t\tif(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf(\"jstree-anchor\") !== -1) {\r\n\t\t\t\t\t\t\ttmp = obj.childNodes[i];\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(tmp) {\r\n\t\t\t\t\t\ttmp.setAttribute('draggable', true);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn obj;\r\n\t\t};\r\n\t};\r\n\r\n\t$(function() {\r\n\t\t// bind only once for all instances\r\n\t\tvar lastmv = false,\r\n\t\t\tlaster = false,\r\n\t\t\tlastev = false,\r\n\t\t\topento = false,\r\n\t\t\tmarker = $('
     
    ').hide(); //.appendTo('body');\r\n\r\n\t\t$(document)\r\n\t\t\t.on('dragover.vakata.jstree', function (e) {\r\n\t\t\t\tif (elm) {\r\n\t\t\t\t\t$.vakata.dnd._trigger('move', e, { 'helper': $(), 'element': elm, 'data': drg });\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.on('drop.vakata.jstree', function (e) {\r\n\t\t\t\tif (elm) {\r\n\t\t\t\t\t$.vakata.dnd._trigger('stop', e, { 'helper': $(), 'element': elm, 'data': drg });\r\n\t\t\t\t\telm = null;\r\n\t\t\t\t\tdrg = null;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.on('dnd_start.vakata.jstree', function (e, data) {\r\n\t\t\t\tlastmv = false;\r\n\t\t\t\tlastev = false;\r\n\t\t\t\tif(!data || !data.data || !data.data.jstree) { return; }\r\n\t\t\t\tmarker.appendTo(document.body); //.show();\r\n\t\t\t})\r\n\t\t\t.on('dnd_move.vakata.jstree', function (e, data) {\r\n\t\t\t\tvar isDifferentNode = data.event.target !== lastev.target;\r\n\t\t\t\tif(opento) {\r\n\t\t\t\t\tif (!data.event || data.event.type !== 'dragover' || isDifferentNode) {\r\n\t\t\t\t\t\tclearTimeout(opento);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(!data || !data.data || !data.data.jstree) { return; }\r\n\r\n\t\t\t\t// if we are hovering the marker image do nothing (can happen on \"inside\" drags)\r\n\t\t\t\tif(data.event.target.id && data.event.target.id === 'jstree-marker') {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tlastev = data.event;\r\n\r\n\t\t\t\tvar ins = $.jstree.reference(data.event.target),\r\n\t\t\t\t\tref = false,\r\n\t\t\t\t\toff = false,\r\n\t\t\t\t\trel = false,\r\n\t\t\t\t\ttmp, l, t, h, p, i, o, ok, t1, t2, op, ps, pr, ip, tm, is_copy, pn, c;\r\n\t\t\t\t// if we are over an instance\r\n\t\t\t\tif(ins && ins._data && ins._data.dnd) {\r\n\t\t\t\t\tmarker.attr('class', 'jstree-' + ins.get_theme() + ( ins.settings.core.themes.responsive ? ' jstree-dnd-responsive' : '' ));\r\n\t\t\t\t\tis_copy = data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey)));\r\n\t\t\t\t\tdata.helper\r\n\t\t\t\t\t\t.children().attr('class', 'jstree-' + ins.get_theme() + ' jstree-' + ins.get_theme() + '-' + ins.get_theme_variant() + ' ' + ( ins.settings.core.themes.responsive ? ' jstree-dnd-responsive' : '' ))\r\n\t\t\t\t\t\t.find('.jstree-copy').first()[ is_copy ? 'show' : 'hide' ]();\r\n\r\n\t\t\t\t\t// if are hovering the container itself add a new root node\r\n\t\t\t\t\t//console.log(data.event);\r\n\t\t\t\t\tif( (data.event.target === ins.element[0] || data.event.target === ins.get_container_ul()[0]) && ins.get_container_ul().children().length === 0) {\r\n\t\t\t\t\t\tok = true;\r\n\t\t\t\t\t\tfor(t1 = 0, t2 = data.data.nodes.length; t1 < t2; t1++) {\r\n\t\t\t\t\t\t\tok = ok && ins.check( (data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey)) ) ? \"copy_node\" : \"move_node\"), (data.data.origin && data.data.origin !== ins ? data.data.origin.get_node(data.data.nodes[t1]) : data.data.nodes[t1]), $.jstree.root, 'last', { 'dnd' : true, 'ref' : ins.get_node($.jstree.root), 'pos' : 'i', 'origin' : data.data.origin, 'is_multi' : (data.data.origin && data.data.origin !== ins), 'is_foreign' : (!data.data.origin) });\r\n\t\t\t\t\t\t\tif(!ok) { break; }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(ok) {\r\n\t\t\t\t\t\t\tlastmv = { 'ins' : ins, 'par' : $.jstree.root, 'pos' : 'last' };\r\n\t\t\t\t\t\t\tmarker.hide();\r\n\t\t\t\t\t\t\tdata.helper.find('.jstree-icon').first().removeClass('jstree-er').addClass('jstree-ok');\r\n\t\t\t\t\t\t\tif (data.event.originalEvent && data.event.originalEvent.dataTransfer) {\r\n\t\t\t\t\t\t\t\tdata.event.originalEvent.dataTransfer.dropEffect = is_copy ? 'copy' : 'move';\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\t// if we are hovering a tree node\r\n\t\t\t\t\t\tref = ins.settings.dnd.large_drop_target ? $(data.event.target).closest('.jstree-node').children('.jstree-anchor') : $(data.event.target).closest('.jstree-anchor');\r\n\t\t\t\t\t\tif(ref && ref.length && ref.parent().is('.jstree-closed, .jstree-open, .jstree-leaf')) {\r\n\t\t\t\t\t\t\toff = ref.offset();\r\n\t\t\t\t\t\t\trel = (data.event.pageY !== undefined ? data.event.pageY : data.event.originalEvent.pageY) - off.top;\r\n\t\t\t\t\t\t\th = ref.outerHeight();\r\n\t\t\t\t\t\t\tif(rel < h / 3) {\r\n\t\t\t\t\t\t\t\to = ['b', 'i', 'a'];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse if(rel > h - h / 3) {\r\n\t\t\t\t\t\t\t\to = ['a', 'i', 'b'];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\to = rel > h / 2 ? ['i', 'a', 'b'] : ['i', 'b', 'a'];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t$.each(o, function (j, v) {\r\n\t\t\t\t\t\t\t\tswitch(v) {\r\n\t\t\t\t\t\t\t\t\tcase 'b':\r\n\t\t\t\t\t\t\t\t\t\tl = off.left - 6;\r\n\t\t\t\t\t\t\t\t\t\tt = off.top;\r\n\t\t\t\t\t\t\t\t\t\tp = ins.get_parent(ref);\r\n\t\t\t\t\t\t\t\t\t\ti = ref.parent().index();\r\n\t\t\t\t\t\t\t\t\t\tc = 'jstree-below';\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\tcase 'i':\r\n\t\t\t\t\t\t\t\t\t\tip = ins.settings.dnd.inside_pos;\r\n\t\t\t\t\t\t\t\t\t\ttm = ins.get_node(ref.parent());\r\n\t\t\t\t\t\t\t\t\t\tl = off.left - 2;\r\n\t\t\t\t\t\t\t\t\t\tt = off.top + h / 2 + 1;\r\n\t\t\t\t\t\t\t\t\t\tp = tm.id;\r\n\t\t\t\t\t\t\t\t\t\ti = ip === 'first' ? 0 : (ip === 'last' ? tm.children.length : Math.min(ip, tm.children.length));\r\n\t\t\t\t\t\t\t\t\t\tc = 'jstree-inside';\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\tcase 'a':\r\n\t\t\t\t\t\t\t\t\t\tl = off.left - 6;\r\n\t\t\t\t\t\t\t\t\t\tt = off.top + h;\r\n\t\t\t\t\t\t\t\t\t\tp = ins.get_parent(ref);\r\n\t\t\t\t\t\t\t\t\t\ti = ref.parent().index() + 1;\r\n\t\t\t\t\t\t\t\t\t\tc = 'jstree-above';\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tok = true;\r\n\t\t\t\t\t\t\t\tfor(t1 = 0, t2 = data.data.nodes.length; t1 < t2; t1++) {\r\n\t\t\t\t\t\t\t\t\top = data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey))) ? \"copy_node\" : \"move_node\";\r\n\t\t\t\t\t\t\t\t\tps = i;\r\n\t\t\t\t\t\t\t\t\tif(op === \"move_node\" && v === 'a' && (data.data.origin && data.data.origin === ins) && p === ins.get_parent(data.data.nodes[t1])) {\r\n\t\t\t\t\t\t\t\t\t\tpr = ins.get_node(p);\r\n\t\t\t\t\t\t\t\t\t\tif(ps > $.inArray(data.data.nodes[t1], pr.children)) {\r\n\t\t\t\t\t\t\t\t\t\t\tps -= 1;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tok = ok && ( (ins && ins.settings && ins.settings.dnd && ins.settings.dnd.check_while_dragging === false) || ins.check(op, (data.data.origin && data.data.origin !== ins ? data.data.origin.get_node(data.data.nodes[t1]) : data.data.nodes[t1]), p, ps, { 'dnd' : true, 'ref' : ins.get_node(ref.parent()), 'pos' : v, 'origin' : data.data.origin, 'is_multi' : (data.data.origin && data.data.origin !== ins), 'is_foreign' : (!data.data.origin) }) );\r\n\t\t\t\t\t\t\t\t\tif(!ok) {\r\n\t\t\t\t\t\t\t\t\t\tif(ins && ins.last_error) { laster = ins.last_error(); }\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif(v === 'i' && ref.parent().is('.jstree-closed') && ins.settings.dnd.open_timeout) {\r\n\t\t\t\t\t\t\t\t\tif (!data.event || data.event.type !== 'dragover' || isDifferentNode) {\r\n\t\t\t\t\t\t\t\t\t\tif (opento) { clearTimeout(opento); }\r\n\t\t\t\t\t\t\t\t\t\topento = setTimeout((function (x, z) { return function () { x.open_node(z); }; }(ins, ref)), ins.settings.dnd.open_timeout);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif(ok) {\r\n\t\t\t\t\t\t\t\t\tpn = ins.get_node(p, true);\r\n\t\t\t\t\t\t\t\t\tif (!pn.hasClass('.jstree-dnd-parent')) {\r\n\t\t\t\t\t\t\t\t\t\t$('.jstree-dnd-parent').removeClass('jstree-dnd-parent');\r\n\t\t\t\t\t\t\t\t\t\tpn.addClass('jstree-dnd-parent');\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tlastmv = { 'ins' : ins, 'par' : p, 'pos' : v === 'i' && ip === 'last' && i === 0 && !ins.is_loaded(tm) ? 'last' : i };\r\n\t\t\t\t\t\t\t\t\tmarker.css({ 'left' : l + 'px', 'top' : t + 'px' }).show();\r\n\t\t\t\t\t\t\t\t\tmarker.removeClass('jstree-above jstree-inside jstree-below').addClass(c);\r\n\t\t\t\t\t\t\t\t\tdata.helper.find('.jstree-icon').first().removeClass('jstree-er').addClass('jstree-ok');\r\n\t\t\t\t\t\t\t\t\tif (data.event.originalEvent && data.event.originalEvent.dataTransfer) {\r\n\t\t\t\t\t\t\t\t\t\tdata.event.originalEvent.dataTransfer.dropEffect = is_copy ? 'copy' : 'move';\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tlaster = {};\r\n\t\t\t\t\t\t\t\t\to = true;\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tif(o === true) { return; }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t$('.jstree-dnd-parent').removeClass('jstree-dnd-parent');\r\n\t\t\t\tlastmv = false;\r\n\t\t\t\tdata.helper.find('.jstree-icon').removeClass('jstree-ok').addClass('jstree-er');\r\n\t\t\t\tif (data.event.originalEvent && data.event.originalEvent.dataTransfer) {\r\n\t\t\t\t\t//data.event.originalEvent.dataTransfer.dropEffect = 'none';\r\n\t\t\t\t}\r\n\t\t\t\tmarker.hide();\r\n\t\t\t})\r\n\t\t\t.on('dnd_scroll.vakata.jstree', function (e, data) {\r\n\t\t\t\tif(!data || !data.data || !data.data.jstree) { return; }\r\n\t\t\t\tmarker.hide();\r\n\t\t\t\tlastmv = false;\r\n\t\t\t\tlastev = false;\r\n\t\t\t\tdata.helper.find('.jstree-icon').first().removeClass('jstree-ok').addClass('jstree-er');\r\n\t\t\t})\r\n\t\t\t.on('dnd_stop.vakata.jstree', function (e, data) {\r\n\t\t\t\t$('.jstree-dnd-parent').removeClass('jstree-dnd-parent');\r\n\t\t\t\tif(opento) { clearTimeout(opento); }\r\n\t\t\t\tif(!data || !data.data || !data.data.jstree) { return; }\r\n\t\t\t\tmarker.hide().detach();\r\n\t\t\t\tvar i, j, nodes = [];\r\n\t\t\t\tif(lastmv) {\r\n\t\t\t\t\tfor(i = 0, j = data.data.nodes.length; i < j; i++) {\r\n\t\t\t\t\t\tnodes[i] = data.data.origin ? data.data.origin.get_node(data.data.nodes[i]) : data.data.nodes[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlastmv.ins[ data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey))) ? 'copy_node' : 'move_node' ](nodes, lastmv.par, lastmv.pos, false, false, false, data.data.origin);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\ti = $(data.event.target).closest('.jstree');\r\n\t\t\t\t\tif(i.length && laster && laster.error && laster.error === 'check') {\r\n\t\t\t\t\t\ti = i.jstree(true);\r\n\t\t\t\t\t\tif(i) {\r\n\t\t\t\t\t\t\ti.settings.core.error.call(this, laster);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tlastev = false;\r\n\t\t\t\tlastmv = false;\r\n\t\t\t})\r\n\t\t\t.on('keyup.jstree keydown.jstree', function (e, data) {\r\n\t\t\t\tdata = $.vakata.dnd._get();\r\n\t\t\t\tif(data && data.data && data.data.jstree) {\r\n\t\t\t\t\tif (e.type === \"keyup\" && e.which === 27) {\r\n\t\t\t\t\t\tif (opento) { clearTimeout(opento); }\r\n\t\t\t\t\t\tlastmv = false;\r\n\t\t\t\t\t\tlaster = false;\r\n\t\t\t\t\t\tlastev = false;\r\n\t\t\t\t\t\topento = false;\r\n\t\t\t\t\t\tmarker.hide().detach();\r\n\t\t\t\t\t\t$.vakata.dnd._clean();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdata.helper.find('.jstree-copy').first()[ data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (e.metaKey || e.ctrlKey))) ? 'show' : 'hide' ]();\r\n\t\t\t\t\t\tif(lastev) {\r\n\t\t\t\t\t\t\tlastev.metaKey = e.metaKey;\r\n\t\t\t\t\t\t\tlastev.ctrlKey = e.ctrlKey;\r\n\t\t\t\t\t\t\t$.vakata.dnd._trigger('move', lastev);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t});\r\n\r\n\t// helpers\r\n\t(function ($) {\r\n\t\t$.vakata.html = {\r\n\t\t\tdiv : $('
    '),\r\n\t\t\tescape : function (str) {\r\n\t\t\t\treturn $.vakata.html.div.text(str).html();\r\n\t\t\t},\r\n\t\t\tstrip : function (str) {\r\n\t\t\t\treturn $.vakata.html.div.empty().append($.parseHTML(str)).text();\r\n\t\t\t}\r\n\t\t};\r\n\t\t// private variable\r\n\t\tvar vakata_dnd = {\r\n\t\t\telement\t: false,\r\n\t\t\ttarget\t: false,\r\n\t\t\tis_down\t: false,\r\n\t\t\tis_drag\t: false,\r\n\t\t\thelper\t: false,\r\n\t\t\thelper_w: 0,\r\n\t\t\tdata\t: false,\r\n\t\t\tinit_x\t: 0,\r\n\t\t\tinit_y\t: 0,\r\n\t\t\tscroll_l: 0,\r\n\t\t\tscroll_t: 0,\r\n\t\t\tscroll_e: false,\r\n\t\t\tscroll_i: false,\r\n\t\t\tis_touch: false\r\n\t\t};\r\n\t\t$.vakata.dnd = {\r\n\t\t\tsettings : {\r\n\t\t\t\tscroll_speed\t\t: 10,\r\n\t\t\t\tscroll_proximity\t: 20,\r\n\t\t\t\thelper_left\t\t\t: 5,\r\n\t\t\t\thelper_top\t\t\t: 10,\r\n\t\t\t\tthreshold\t\t\t: 5,\r\n\t\t\t\tthreshold_touch\t\t: 10\r\n\t\t\t},\r\n\t\t\t_trigger : function (event_name, e, data) {\r\n\t\t\t\tif (data === undefined) {\r\n\t\t\t\t\tdata = $.vakata.dnd._get();\r\n\t\t\t\t}\r\n\t\t\t\tdata.event = e;\r\n\t\t\t\t$(document).triggerHandler(\"dnd_\" + event_name + \".vakata\", data);\r\n\t\t\t},\r\n\t\t\t_get : function () {\r\n\t\t\t\treturn {\r\n\t\t\t\t\t\"data\"\t\t: vakata_dnd.data,\r\n\t\t\t\t\t\"element\"\t: vakata_dnd.element,\r\n\t\t\t\t\t\"helper\"\t: vakata_dnd.helper\r\n\t\t\t\t};\r\n\t\t\t},\r\n\t\t\t_clean : function () {\r\n\t\t\t\tif(vakata_dnd.helper) { vakata_dnd.helper.remove(); }\r\n\t\t\t\tif(vakata_dnd.scroll_i) { clearInterval(vakata_dnd.scroll_i); vakata_dnd.scroll_i = false; }\r\n\t\t\t\tvakata_dnd = {\r\n\t\t\t\t\telement\t: false,\r\n\t\t\t\t\ttarget\t: false,\r\n\t\t\t\t\tis_down\t: false,\r\n\t\t\t\t\tis_drag\t: false,\r\n\t\t\t\t\thelper\t: false,\r\n\t\t\t\t\thelper_w: 0,\r\n\t\t\t\t\tdata\t: false,\r\n\t\t\t\t\tinit_x\t: 0,\r\n\t\t\t\t\tinit_y\t: 0,\r\n\t\t\t\t\tscroll_l: 0,\r\n\t\t\t\t\tscroll_t: 0,\r\n\t\t\t\t\tscroll_e: false,\r\n\t\t\t\t\tscroll_i: false,\r\n\t\t\t\t\tis_touch: false\r\n\t\t\t\t};\r\n\t\t\t\telm = null;\r\n\t\t\t\t$(document).off(\"mousemove.vakata.jstree touchmove.vakata.jstree\", $.vakata.dnd.drag);\r\n\t\t\t\t$(document).off(\"mouseup.vakata.jstree touchend.vakata.jstree\", $.vakata.dnd.stop);\r\n\t\t\t},\r\n\t\t\t_scroll : function (init_only) {\r\n\t\t\t\tif(!vakata_dnd.scroll_e || (!vakata_dnd.scroll_l && !vakata_dnd.scroll_t)) {\r\n\t\t\t\t\tif(vakata_dnd.scroll_i) { clearInterval(vakata_dnd.scroll_i); vakata_dnd.scroll_i = false; }\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif(!vakata_dnd.scroll_i) {\r\n\t\t\t\t\tvakata_dnd.scroll_i = setInterval($.vakata.dnd._scroll, 100);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif(init_only === true) { return false; }\r\n\r\n\t\t\t\tvar i = vakata_dnd.scroll_e.scrollTop(),\r\n\t\t\t\t\tj = vakata_dnd.scroll_e.scrollLeft();\r\n\t\t\t\tvakata_dnd.scroll_e.scrollTop(i + vakata_dnd.scroll_t * $.vakata.dnd.settings.scroll_speed);\r\n\t\t\t\tvakata_dnd.scroll_e.scrollLeft(j + vakata_dnd.scroll_l * $.vakata.dnd.settings.scroll_speed);\r\n\t\t\t\tif(i !== vakata_dnd.scroll_e.scrollTop() || j !== vakata_dnd.scroll_e.scrollLeft()) {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * triggered on the document when a drag causes an element to scroll\r\n\t\t\t\t\t * @event\r\n\t\t\t\t\t * @plugin dnd\r\n\t\t\t\t\t * @name dnd_scroll.vakata\r\n\t\t\t\t\t * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start\r\n\t\t\t\t\t * @param {DOM} element the DOM element being dragged\r\n\t\t\t\t\t * @param {jQuery} helper the helper shown next to the mouse\r\n\t\t\t\t\t * @param {jQuery} event the element that is scrolling\r\n\t\t\t\t\t */\r\n\t\t\t\t\t$.vakata.dnd._trigger(\"scroll\", vakata_dnd.scroll_e);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tstart : function (e, data, html) {\r\n\t\t\t\tif(e.type === \"touchstart\" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) {\r\n\t\t\t\t\te.pageX = e.originalEvent.changedTouches[0].pageX;\r\n\t\t\t\t\te.pageY = e.originalEvent.changedTouches[0].pageY;\r\n\t\t\t\t\te.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset);\r\n\t\t\t\t}\r\n\t\t\t\tif(vakata_dnd.is_drag) { $.vakata.dnd.stop({}); }\r\n\t\t\t\ttry {\r\n\t\t\t\t\te.currentTarget.unselectable = \"on\";\r\n\t\t\t\t\te.currentTarget.onselectstart = function() { return false; };\r\n\t\t\t\t\tif(e.currentTarget.style) {\r\n\t\t\t\t\t\te.currentTarget.style.touchAction = \"none\";\r\n\t\t\t\t\t\te.currentTarget.style.msTouchAction = \"none\";\r\n\t\t\t\t\t\te.currentTarget.style.MozUserSelect = \"none\";\r\n\t\t\t\t\t}\r\n\t\t\t\t} catch(ignore) { }\r\n\t\t\t\tvakata_dnd.init_x\t= e.pageX;\r\n\t\t\t\tvakata_dnd.init_y\t= e.pageY;\r\n\t\t\t\tvakata_dnd.data\t\t= data;\r\n\t\t\t\tvakata_dnd.is_down\t= true;\r\n\t\t\t\tvakata_dnd.element\t= e.currentTarget;\r\n\t\t\t\tvakata_dnd.target\t= e.target;\r\n\t\t\t\tvakata_dnd.is_touch\t= e.type === \"touchstart\";\r\n\t\t\t\tif(html !== false) {\r\n\t\t\t\t\tvakata_dnd.helper = $(\"
    \").html(html).css({\r\n\t\t\t\t\t\t\"display\"\t\t: \"block\",\r\n\t\t\t\t\t\t\"margin\"\t\t: \"0\",\r\n\t\t\t\t\t\t\"padding\"\t\t: \"0\",\r\n\t\t\t\t\t\t\"position\"\t\t: \"absolute\",\r\n\t\t\t\t\t\t\"top\"\t\t\t: \"-2000px\",\r\n\t\t\t\t\t\t\"lineHeight\"\t: \"16px\",\r\n\t\t\t\t\t\t\"zIndex\"\t\t: \"10000\"\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\t$(document).on(\"mousemove.vakata.jstree touchmove.vakata.jstree\", $.vakata.dnd.drag);\r\n\t\t\t\t$(document).on(\"mouseup.vakata.jstree touchend.vakata.jstree\", $.vakata.dnd.stop);\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\t\t\tdrag : function (e) {\r\n\t\t\t\tif(e.type === \"touchmove\" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) {\r\n\t\t\t\t\te.pageX = e.originalEvent.changedTouches[0].pageX;\r\n\t\t\t\t\te.pageY = e.originalEvent.changedTouches[0].pageY;\r\n\t\t\t\t\te.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset);\r\n\t\t\t\t}\r\n\t\t\t\tif(!vakata_dnd.is_down) { return; }\r\n\t\t\t\tif(!vakata_dnd.is_drag) {\r\n\t\t\t\t\tif(\r\n\t\t\t\t\t\tMath.abs(e.pageX - vakata_dnd.init_x) > (vakata_dnd.is_touch ? $.vakata.dnd.settings.threshold_touch : $.vakata.dnd.settings.threshold) ||\r\n\t\t\t\t\t\tMath.abs(e.pageY - vakata_dnd.init_y) > (vakata_dnd.is_touch ? $.vakata.dnd.settings.threshold_touch : $.vakata.dnd.settings.threshold)\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tif(vakata_dnd.helper) {\r\n\t\t\t\t\t\t\tvakata_dnd.helper.appendTo(document.body);\r\n\t\t\t\t\t\t\tvakata_dnd.helper_w = vakata_dnd.helper.outerWidth();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvakata_dnd.is_drag = true;\r\n\t\t\t\t\t\t$(vakata_dnd.target).one('click.vakata', false);\r\n\t\t\t\t\t\t/**\r\n\t\t\t\t\t\t * triggered on the document when a drag starts\r\n\t\t\t\t\t\t * @event\r\n\t\t\t\t\t\t * @plugin dnd\r\n\t\t\t\t\t\t * @name dnd_start.vakata\r\n\t\t\t\t\t\t * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start\r\n\t\t\t\t\t\t * @param {DOM} element the DOM element being dragged\r\n\t\t\t\t\t\t * @param {jQuery} helper the helper shown next to the mouse\r\n\t\t\t\t\t\t * @param {Object} event the event that caused the start (probably mousemove)\r\n\t\t\t\t\t\t */\r\n\t\t\t\t\t\t$.vakata.dnd._trigger(\"start\", e);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse { return; }\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar d = false, w = false,\r\n\t\t\t\t\tdh = false, wh = false,\r\n\t\t\t\t\tdw = false, ww = false,\r\n\t\t\t\t\tdt = false, dl = false,\r\n\t\t\t\t\tht = false, hl = false;\r\n\r\n\t\t\t\tvakata_dnd.scroll_t = 0;\r\n\t\t\t\tvakata_dnd.scroll_l = 0;\r\n\t\t\t\tvakata_dnd.scroll_e = false;\r\n\t\t\t\t$($(e.target).parentsUntil(\"body\").addBack().get().reverse())\r\n\t\t\t\t\t.filter(function () {\r\n\t\t\t\t\t\treturn\t(/^auto|scroll$/).test($(this).css(\"overflow\")) &&\r\n\t\t\t\t\t\t\t\t(this.scrollHeight > this.offsetHeight || this.scrollWidth > this.offsetWidth);\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.each(function () {\r\n\t\t\t\t\t\tvar t = $(this), o = t.offset();\r\n\t\t\t\t\t\tif(this.scrollHeight > this.offsetHeight) {\r\n\t\t\t\t\t\t\tif(o.top + t.height() - e.pageY < $.vakata.dnd.settings.scroll_proximity)\t{ vakata_dnd.scroll_t = 1; }\r\n\t\t\t\t\t\t\tif(e.pageY - o.top < $.vakata.dnd.settings.scroll_proximity)\t\t\t\t{ vakata_dnd.scroll_t = -1; }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(this.scrollWidth > this.offsetWidth) {\r\n\t\t\t\t\t\t\tif(o.left + t.width() - e.pageX < $.vakata.dnd.settings.scroll_proximity)\t{ vakata_dnd.scroll_l = 1; }\r\n\t\t\t\t\t\t\tif(e.pageX - o.left < $.vakata.dnd.settings.scroll_proximity)\t\t\t\t{ vakata_dnd.scroll_l = -1; }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(vakata_dnd.scroll_t || vakata_dnd.scroll_l) {\r\n\t\t\t\t\t\t\tvakata_dnd.scroll_e = $(this);\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\tif(!vakata_dnd.scroll_e) {\r\n\t\t\t\t\td = $(document); w = $(window);\r\n\t\t\t\t\tdh = d.height(); wh = w.height();\r\n\t\t\t\t\tdw = d.width(); ww = w.width();\r\n\t\t\t\t\tdt = d.scrollTop(); dl = d.scrollLeft();\r\n\t\t\t\t\tif(dh > wh && e.pageY - dt < $.vakata.dnd.settings.scroll_proximity)\t\t{ vakata_dnd.scroll_t = -1; }\r\n\t\t\t\t\tif(dh > wh && wh - (e.pageY - dt) < $.vakata.dnd.settings.scroll_proximity)\t{ vakata_dnd.scroll_t = 1; }\r\n\t\t\t\t\tif(dw > ww && e.pageX - dl < $.vakata.dnd.settings.scroll_proximity)\t\t{ vakata_dnd.scroll_l = -1; }\r\n\t\t\t\t\tif(dw > ww && ww - (e.pageX - dl) < $.vakata.dnd.settings.scroll_proximity)\t{ vakata_dnd.scroll_l = 1; }\r\n\t\t\t\t\tif(vakata_dnd.scroll_t || vakata_dnd.scroll_l) {\r\n\t\t\t\t\t\tvakata_dnd.scroll_e = d;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(vakata_dnd.scroll_e) { $.vakata.dnd._scroll(true); }\r\n\r\n\t\t\t\tif(vakata_dnd.helper) {\r\n\t\t\t\t\tht = parseInt(e.pageY + $.vakata.dnd.settings.helper_top, 10);\r\n\t\t\t\t\thl = parseInt(e.pageX + $.vakata.dnd.settings.helper_left, 10);\r\n\t\t\t\t\tif(dh && ht + 25 > dh) { ht = dh - 50; }\r\n\t\t\t\t\tif(dw && hl + vakata_dnd.helper_w > dw) { hl = dw - (vakata_dnd.helper_w + 2); }\r\n\t\t\t\t\tvakata_dnd.helper.css({\r\n\t\t\t\t\t\tleft\t: hl + \"px\",\r\n\t\t\t\t\t\ttop\t\t: ht + \"px\"\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered on the document when a drag is in progress\r\n\t\t\t\t * @event\r\n\t\t\t\t * @plugin dnd\r\n\t\t\t\t * @name dnd_move.vakata\r\n\t\t\t\t * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start\r\n\t\t\t\t * @param {DOM} element the DOM element being dragged\r\n\t\t\t\t * @param {jQuery} helper the helper shown next to the mouse\r\n\t\t\t\t * @param {Object} event the event that caused this to trigger (most likely mousemove)\r\n\t\t\t\t */\r\n\t\t\t\t$.vakata.dnd._trigger(\"move\", e);\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\t\t\tstop : function (e) {\r\n\t\t\t\tif(e.type === \"touchend\" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) {\r\n\t\t\t\t\te.pageX = e.originalEvent.changedTouches[0].pageX;\r\n\t\t\t\t\te.pageY = e.originalEvent.changedTouches[0].pageY;\r\n\t\t\t\t\te.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset);\r\n\t\t\t\t}\r\n\t\t\t\tif(vakata_dnd.is_drag) {\r\n\t\t\t\t\t/**\r\n\t\t\t\t\t * triggered on the document when a drag stops (the dragged element is dropped)\r\n\t\t\t\t\t * @event\r\n\t\t\t\t\t * @plugin dnd\r\n\t\t\t\t\t * @name dnd_stop.vakata\r\n\t\t\t\t\t * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start\r\n\t\t\t\t\t * @param {DOM} element the DOM element being dragged\r\n\t\t\t\t\t * @param {jQuery} helper the helper shown next to the mouse\r\n\t\t\t\t\t * @param {Object} event the event that caused the stop\r\n\t\t\t\t\t */\r\n\t\t\t\t\tif (e.target !== vakata_dnd.target) {\r\n\t\t\t\t\t\t$(vakata_dnd.target).off('click.vakata');\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$.vakata.dnd._trigger(\"stop\", e);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tif(e.type === \"touchend\" && e.target === vakata_dnd.target) {\r\n\t\t\t\t\t\tvar to = setTimeout(function () { $(e.target).click(); }, 100);\r\n\t\t\t\t\t\t$(e.target).one('click', function() { if(to) { clearTimeout(to); } });\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t$.vakata.dnd._clean();\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t};\r\n\t}($));\r\n\r\n\t// include the dnd plugin by default\r\n\t// $.jstree.defaults.plugins.push(\"dnd\");\r\n\r\n\r\n/**\r\n * ### Massload plugin\r\n *\r\n * Adds massload functionality to jsTree, so that multiple nodes can be loaded in a single request (only useful with lazy loading).\r\n */\r\n\r\n\t/**\r\n\t * massload configuration\r\n\t *\r\n\t * It is possible to set this to a standard jQuery-like AJAX config.\r\n\t * In addition to the standard jQuery ajax options here you can supply functions for `data` and `url`, the functions will be run in the current instance's scope and a param will be passed indicating which node IDs need to be loaded, the return value of those functions will be used.\r\n\t *\r\n\t * You can also set this to a function, that function will receive the node IDs being loaded as argument and a second param which is a function (callback) which should be called with the result.\r\n\t *\r\n\t * Both the AJAX and the function approach rely on the same return value - an object where the keys are the node IDs, and the value is the children of that node as an array.\r\n\t *\r\n\t *\t{\r\n\t *\t\t\"id1\" : [{ \"text\" : \"Child of ID1\", \"id\" : \"c1\" }, { \"text\" : \"Another child of ID1\", \"id\" : \"c2\" }],\r\n\t *\t\t\"id2\" : [{ \"text\" : \"Child of ID2\", \"id\" : \"c3\" }]\r\n\t *\t}\r\n\t * \r\n\t * @name $.jstree.defaults.massload\r\n\t * @plugin massload\r\n\t */\r\n\t$.jstree.defaults.massload = null;\r\n\t$.jstree.plugins.massload = function (options, parent) {\r\n\t\tthis.init = function (el, options) {\r\n\t\t\tthis._data.massload = {};\r\n\t\t\tparent.init.call(this, el, options);\r\n\t\t};\r\n\t\tthis._load_nodes = function (nodes, callback, is_callback, force_reload) {\r\n\t\t\tvar s = this.settings.massload,\t\t\t\t\r\n\t\t\t\ttoLoad = [],\r\n\t\t\t\tm = this._model.data,\r\n\t\t\t\ti, j, dom;\r\n\t\t\tif (!is_callback) {\r\n\t\t\t\tfor(i = 0, j = nodes.length; i < j; i++) {\r\n\t\t\t\t\tif(!m[nodes[i]] || ( (!m[nodes[i]].state.loaded && !m[nodes[i]].state.failed) || force_reload) ) {\r\n\t\t\t\t\t\ttoLoad.push(nodes[i]);\r\n\t\t\t\t\t\tdom = this.get_node(nodes[i], true);\r\n\t\t\t\t\t\tif (dom && dom.length) {\r\n\t\t\t\t\t\t\tdom.addClass(\"jstree-loading\").attr('aria-busy',true);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tthis._data.massload = {};\r\n\t\t\t\tif (toLoad.length) {\r\n\t\t\t\t\tif($.isFunction(s)) {\r\n\t\t\t\t\t\treturn s.call(this, toLoad, $.proxy(function (data) {\r\n\t\t\t\t\t\t\tvar i, j;\r\n\t\t\t\t\t\t\tif(data) {\r\n\t\t\t\t\t\t\t\tfor(i in data) {\r\n\t\t\t\t\t\t\t\t\tif(data.hasOwnProperty(i)) {\r\n\t\t\t\t\t\t\t\t\t\tthis._data.massload[i] = data[i];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tfor(i = 0, j = nodes.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\tdom = this.get_node(nodes[i], true);\r\n\t\t\t\t\t\t\t\tif (dom && dom.length) {\r\n\t\t\t\t\t\t\t\t\tdom.removeClass(\"jstree-loading\").attr('aria-busy',false);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tparent._load_nodes.call(this, nodes, callback, is_callback, force_reload);\r\n\t\t\t\t\t\t}, this));\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(typeof s === 'object' && s && s.url) {\r\n\t\t\t\t\t\ts = $.extend(true, {}, s);\r\n\t\t\t\t\t\tif($.isFunction(s.url)) {\r\n\t\t\t\t\t\t\ts.url = s.url.call(this, toLoad);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif($.isFunction(s.data)) {\r\n\t\t\t\t\t\t\ts.data = s.data.call(this, toLoad);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn $.ajax(s)\r\n\t\t\t\t\t\t\t.done($.proxy(function (data,t,x) {\r\n\t\t\t\t\t\t\t\t\tvar i, j;\r\n\t\t\t\t\t\t\t\t\tif(data) {\r\n\t\t\t\t\t\t\t\t\t\tfor(i in data) {\r\n\t\t\t\t\t\t\t\t\t\t\tif(data.hasOwnProperty(i)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tthis._data.massload[i] = data[i];\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tfor(i = 0, j = nodes.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\t\t\tdom = this.get_node(nodes[i], true);\r\n\t\t\t\t\t\t\t\t\t\tif (dom && dom.length) {\r\n\t\t\t\t\t\t\t\t\t\t\tdom.removeClass(\"jstree-loading\").attr('aria-busy',false);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tparent._load_nodes.call(this, nodes, callback, is_callback, force_reload);\r\n\t\t\t\t\t\t\t\t}, this))\r\n\t\t\t\t\t\t\t.fail($.proxy(function (f) {\r\n\t\t\t\t\t\t\t\t\tparent._load_nodes.call(this, nodes, callback, is_callback, force_reload);\r\n\t\t\t\t\t\t\t\t}, this));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn parent._load_nodes.call(this, nodes, callback, is_callback, force_reload);\r\n\t\t};\r\n\t\tthis._load_node = function (obj, callback) {\r\n\t\t\tvar data = this._data.massload[obj.id],\r\n\t\t\t\trslt = null, dom;\r\n\t\t\tif(data) {\r\n\t\t\t\trslt = this[typeof data === 'string' ? '_append_html_data' : '_append_json_data'](\r\n\t\t\t\t\tobj,\r\n\t\t\t\t\ttypeof data === 'string' ? $($.parseHTML(data)).filter(function () { return this.nodeType !== 3; }) : data,\r\n\t\t\t\t\tfunction (status) { callback.call(this, status); }\r\n\t\t\t\t);\r\n\t\t\t\tdom = this.get_node(obj.id, true);\r\n\t\t\t\tif (dom && dom.length) {\r\n\t\t\t\t\tdom.removeClass(\"jstree-loading\").attr('aria-busy',false);\r\n\t\t\t\t}\r\n\t\t\t\tdelete this._data.massload[obj.id];\r\n\t\t\t\treturn rslt;\r\n\t\t\t}\r\n\t\t\treturn parent._load_node.call(this, obj, callback);\r\n\t\t};\r\n\t};\r\n\r\n\r\n/**\r\n * ### Search plugin\r\n *\r\n * Adds search functionality to jsTree.\r\n */\r\n\r\n\t/**\r\n\t * stores all defaults for the search plugin\r\n\t * @name $.jstree.defaults.search\r\n\t * @plugin search\r\n\t */\r\n\t$.jstree.defaults.search = {\r\n\t\t/**\r\n\t\t * a jQuery-like AJAX config, which jstree uses if a server should be queried for results.\r\n\t\t *\r\n\t\t * A `str` (which is the search string) parameter will be added with the request, an optional `inside` parameter will be added if the search is limited to a node id. The expected result is a JSON array with nodes that need to be opened so that matching nodes will be revealed.\r\n\t\t * Leave this setting as `false` to not query the server. You can also set this to a function, which will be invoked in the instance's scope and receive 3 parameters - the search string, the callback to call with the array of nodes to load, and the optional node ID to limit the search to\r\n\t\t * @name $.jstree.defaults.search.ajax\r\n\t\t * @plugin search\r\n\t\t */\r\n\t\tajax : false,\r\n\t\t/**\r\n\t\t * Indicates if the search should be fuzzy or not (should `chnd3` match `child node 3`). Default is `false`.\r\n\t\t * @name $.jstree.defaults.search.fuzzy\r\n\t\t * @plugin search\r\n\t\t */\r\n\t\tfuzzy : false,\r\n\t\t/**\r\n\t\t * Indicates if the search should be case sensitive. Default is `false`.\r\n\t\t * @name $.jstree.defaults.search.case_sensitive\r\n\t\t * @plugin search\r\n\t\t */\r\n\t\tcase_sensitive : false,\r\n\t\t/**\r\n\t\t * Indicates if the tree should be filtered (by default) to show only matching nodes (keep in mind this can be a heavy on large trees in old browsers).\r\n\t\t * This setting can be changed at runtime when calling the search method. Default is `false`.\r\n\t\t * @name $.jstree.defaults.search.show_only_matches\r\n\t\t * @plugin search\r\n\t\t */\r\n\t\tshow_only_matches : false,\r\n\t\t/**\r\n\t\t * Indicates if the children of matched element are shown (when show_only_matches is true)\r\n\t\t * This setting can be changed at runtime when calling the search method. Default is `false`.\r\n\t\t * @name $.jstree.defaults.search.show_only_matches_children\r\n\t\t * @plugin search\r\n\t\t */\r\n\t\tshow_only_matches_children : false,\r\n\t\t/**\r\n\t\t * Indicates if all nodes opened to reveal the search result, should be closed when the search is cleared or a new search is performed. Default is `true`.\r\n\t\t * @name $.jstree.defaults.search.close_opened_onclear\r\n\t\t * @plugin search\r\n\t\t */\r\n\t\tclose_opened_onclear : true,\r\n\t\t/**\r\n\t\t * Indicates if only leaf nodes should be included in search results. Default is `false`.\r\n\t\t * @name $.jstree.defaults.search.search_leaves_only\r\n\t\t * @plugin search\r\n\t\t */\r\n\t\tsearch_leaves_only : false,\r\n\t\t/**\r\n\t\t * If set to a function it wil be called in the instance's scope with two arguments - search string and node (where node will be every node in the structure, so use with caution).\r\n\t\t * If the function returns a truthy value the node will be considered a match (it might not be displayed if search_only_leaves is set to true and the node is not a leaf). Default is `false`.\r\n\t\t * @name $.jstree.defaults.search.search_callback\r\n\t\t * @plugin search\r\n\t\t */\r\n\t\tsearch_callback : false\r\n\t};\r\n\r\n\t$.jstree.plugins.search = function (options, parent) {\r\n\t\tthis.bind = function () {\r\n\t\t\tparent.bind.call(this);\r\n\r\n\t\t\tthis._data.search.str = \"\";\r\n\t\t\tthis._data.search.dom = $();\r\n\t\t\tthis._data.search.res = [];\r\n\t\t\tthis._data.search.opn = [];\r\n\t\t\tthis._data.search.som = false;\r\n\t\t\tthis._data.search.smc = false;\r\n\t\t\tthis._data.search.hdn = [];\r\n\r\n\t\t\tthis.element\r\n\t\t\t\t.on(\"search.jstree\", $.proxy(function (e, data) {\r\n\t\t\t\t\t\tif(this._data.search.som && data.res.length) {\r\n\t\t\t\t\t\t\tvar m = this._model.data, i, j, p = [], k, l;\r\n\t\t\t\t\t\t\tfor(i = 0, j = data.res.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\tif(m[data.res[i]] && !m[data.res[i]].state.hidden) {\r\n\t\t\t\t\t\t\t\t\tp.push(data.res[i]);\r\n\t\t\t\t\t\t\t\t\tp = p.concat(m[data.res[i]].parents);\r\n\t\t\t\t\t\t\t\t\tif(this._data.search.smc) {\r\n\t\t\t\t\t\t\t\t\t\tfor (k = 0, l = m[data.res[i]].children_d.length; k < l; k++) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (m[m[data.res[i]].children_d[k]] && !m[m[data.res[i]].children_d[k]].state.hidden) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tp.push(m[data.res[i]].children_d[k]);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tp = $.vakata.array_remove_item($.vakata.array_unique(p), $.jstree.root);\r\n\t\t\t\t\t\t\tthis._data.search.hdn = this.hide_all(true);\r\n\t\t\t\t\t\t\tthis.show_node(p, true);\r\n\t\t\t\t\t\t\tthis.redraw(true);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"clear_search.jstree\", $.proxy(function (e, data) {\r\n\t\t\t\t\t\tif(this._data.search.som && data.res.length) {\r\n\t\t\t\t\t\t\tthis.show_node(this._data.search.hdn, true);\r\n\t\t\t\t\t\t\tthis.redraw(true);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, this));\r\n\t\t};\r\n\t\t/**\r\n\t\t * used to search the tree nodes for a given string\r\n\t\t * @name search(str [, skip_async])\r\n\t\t * @param {String} str the search string\r\n\t\t * @param {Boolean} skip_async if set to true server will not be queried even if configured\r\n\t\t * @param {Boolean} show_only_matches if set to true only matching nodes will be shown (keep in mind this can be very slow on large trees or old browsers)\r\n\t\t * @param {mixed} inside an optional node to whose children to limit the search\r\n\t\t * @param {Boolean} append if set to true the results of this search are appended to the previous search\r\n\t\t * @plugin search\r\n\t\t * @trigger search.jstree\r\n\t\t */\r\n\t\tthis.search = function (str, skip_async, show_only_matches, inside, append, show_only_matches_children) {\r\n\t\t\tif(str === false || $.vakata.trim(str.toString()) === \"\") {\r\n\t\t\t\treturn this.clear_search();\r\n\t\t\t}\r\n\t\t\tinside = this.get_node(inside);\r\n\t\t\tinside = inside && inside.id ? inside.id : null;\r\n\t\t\tstr = str.toString();\r\n\t\t\tvar s = this.settings.search,\r\n\t\t\t\ta = s.ajax ? s.ajax : false,\r\n\t\t\t\tm = this._model.data,\r\n\t\t\t\tf = null,\r\n\t\t\t\tr = [],\r\n\t\t\t\tp = [], i, j;\r\n\t\t\tif(this._data.search.res.length && !append) {\r\n\t\t\t\tthis.clear_search();\r\n\t\t\t}\r\n\t\t\tif(show_only_matches === undefined) {\r\n\t\t\t\tshow_only_matches = s.show_only_matches;\r\n\t\t\t}\r\n\t\t\tif(show_only_matches_children === undefined) {\r\n\t\t\t\tshow_only_matches_children = s.show_only_matches_children;\r\n\t\t\t}\r\n\t\t\tif(!skip_async && a !== false) {\r\n\t\t\t\tif($.isFunction(a)) {\r\n\t\t\t\t\treturn a.call(this, str, $.proxy(function (d) {\r\n\t\t\t\t\t\t\tif(d && d.d) { d = d.d; }\r\n\t\t\t\t\t\t\tthis._load_nodes(!$.isArray(d) ? [] : $.vakata.array_unique(d), function () {\r\n\t\t\t\t\t\t\t\tthis.search(str, true, show_only_matches, inside, append, show_only_matches_children);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}, this), inside);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\ta = $.extend({}, a);\r\n\t\t\t\t\tif(!a.data) { a.data = {}; }\r\n\t\t\t\t\ta.data.str = str;\r\n\t\t\t\t\tif(inside) {\r\n\t\t\t\t\t\ta.data.inside = inside;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (this._data.search.lastRequest) {\r\n\t\t\t\t\t\tthis._data.search.lastRequest.abort();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis._data.search.lastRequest = $.ajax(a)\r\n\t\t\t\t\t\t.fail($.proxy(function () {\r\n\t\t\t\t\t\t\tthis._data.core.last_error = { 'error' : 'ajax', 'plugin' : 'search', 'id' : 'search_01', 'reason' : 'Could not load search parents', 'data' : JSON.stringify(a) };\r\n\t\t\t\t\t\t\tthis.settings.core.error.call(this, this._data.core.last_error);\r\n\t\t\t\t\t\t}, this))\r\n\t\t\t\t\t\t.done($.proxy(function (d) {\r\n\t\t\t\t\t\t\tif(d && d.d) { d = d.d; }\r\n\t\t\t\t\t\t\tthis._load_nodes(!$.isArray(d) ? [] : $.vakata.array_unique(d), function () {\r\n\t\t\t\t\t\t\t\tthis.search(str, true, show_only_matches, inside, append, show_only_matches_children);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}, this));\r\n\t\t\t\t\treturn this._data.search.lastRequest;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(!append) {\r\n\t\t\t\tthis._data.search.str = str;\r\n\t\t\t\tthis._data.search.dom = $();\r\n\t\t\t\tthis._data.search.res = [];\r\n\t\t\t\tthis._data.search.opn = [];\r\n\t\t\t\tthis._data.search.som = show_only_matches;\r\n\t\t\t\tthis._data.search.smc = show_only_matches_children;\r\n\t\t\t}\r\n\r\n\t\t\tf = new $.vakata.search(str, true, { caseSensitive : s.case_sensitive, fuzzy : s.fuzzy });\r\n\t\t\t$.each(m[inside ? inside : $.jstree.root].children_d, function (ii, i) {\r\n\t\t\t\tvar v = m[i];\r\n\t\t\t\tif(v.text && !v.state.hidden && (!s.search_leaves_only || (v.state.loaded && v.children.length === 0)) && ( (s.search_callback && s.search_callback.call(this, str, v)) || (!s.search_callback && f.search(v.text).isMatch) ) ) {\r\n\t\t\t\t\tr.push(i);\r\n\t\t\t\t\tp = p.concat(v.parents);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tif(r.length) {\r\n\t\t\t\tp = $.vakata.array_unique(p);\r\n\t\t\t\tfor(i = 0, j = p.length; i < j; i++) {\r\n\t\t\t\t\tif(p[i] !== $.jstree.root && m[p[i]] && this.open_node(p[i], null, 0) === true) {\r\n\t\t\t\t\t\tthis._data.search.opn.push(p[i]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(!append) {\r\n\t\t\t\t\tthis._data.search.dom = $(this.element[0].querySelectorAll('#' + $.map(r, function (v) { return \"0123456789\".indexOf(v[0]) !== -1 ? '\\\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex,'\\\\$&') : v.replace($.jstree.idregex,'\\\\$&'); }).join(', #')));\r\n\t\t\t\t\tthis._data.search.res = r;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis._data.search.dom = this._data.search.dom.add($(this.element[0].querySelectorAll('#' + $.map(r, function (v) { return \"0123456789\".indexOf(v[0]) !== -1 ? '\\\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex,'\\\\$&') : v.replace($.jstree.idregex,'\\\\$&'); }).join(', #'))));\r\n\t\t\t\t\tthis._data.search.res = $.vakata.array_unique(this._data.search.res.concat(r));\r\n\t\t\t\t}\r\n\t\t\t\tthis._data.search.dom.children(\".jstree-anchor\").addClass('jstree-search');\r\n\t\t\t}\r\n\t\t\t/**\r\n\t\t\t * triggered after search is complete\r\n\t\t\t * @event\r\n\t\t\t * @name search.jstree\r\n\t\t\t * @param {jQuery} nodes a jQuery collection of matching nodes\r\n\t\t\t * @param {String} str the search string\r\n\t\t\t * @param {Array} res a collection of objects represeing the matching nodes\r\n\t\t\t * @plugin search\r\n\t\t\t */\r\n\t\t\tthis.trigger('search', { nodes : this._data.search.dom, str : str, res : this._data.search.res, show_only_matches : show_only_matches });\r\n\t\t};\r\n\t\t/**\r\n\t\t * used to clear the last search (removes classes and shows all nodes if filtering is on)\r\n\t\t * @name clear_search()\r\n\t\t * @plugin search\r\n\t\t * @trigger clear_search.jstree\r\n\t\t */\r\n\t\tthis.clear_search = function () {\r\n\t\t\tif(this.settings.search.close_opened_onclear) {\r\n\t\t\t\tthis.close_node(this._data.search.opn, 0);\r\n\t\t\t}\r\n\t\t\t/**\r\n\t\t\t * triggered after search is complete\r\n\t\t\t * @event\r\n\t\t\t * @name clear_search.jstree\r\n\t\t\t * @param {jQuery} nodes a jQuery collection of matching nodes (the result from the last search)\r\n\t\t\t * @param {String} str the search string (the last search string)\r\n\t\t\t * @param {Array} res a collection of objects represeing the matching nodes (the result from the last search)\r\n\t\t\t * @plugin search\r\n\t\t\t */\r\n\t\t\tthis.trigger('clear_search', { 'nodes' : this._data.search.dom, str : this._data.search.str, res : this._data.search.res });\r\n\t\t\tif(this._data.search.res.length) {\r\n\t\t\t\tthis._data.search.dom = $(this.element[0].querySelectorAll('#' + $.map(this._data.search.res, function (v) {\r\n\t\t\t\t\treturn \"0123456789\".indexOf(v[0]) !== -1 ? '\\\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex,'\\\\$&') : v.replace($.jstree.idregex,'\\\\$&');\r\n\t\t\t\t}).join(', #')));\r\n\t\t\t\tthis._data.search.dom.children(\".jstree-anchor\").removeClass(\"jstree-search\");\r\n\t\t\t}\r\n\t\t\tthis._data.search.str = \"\";\r\n\t\t\tthis._data.search.res = [];\r\n\t\t\tthis._data.search.opn = [];\r\n\t\t\tthis._data.search.dom = $();\r\n\t\t};\r\n\r\n\t\tthis.redraw_node = function(obj, deep, callback, force_render) {\r\n\t\t\tobj = parent.redraw_node.apply(this, arguments);\r\n\t\t\tif(obj) {\r\n\t\t\t\tif($.inArray(obj.id, this._data.search.res) !== -1) {\r\n\t\t\t\t\tvar i, j, tmp = null;\r\n\t\t\t\t\tfor(i = 0, j = obj.childNodes.length; i < j; i++) {\r\n\t\t\t\t\t\tif(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf(\"jstree-anchor\") !== -1) {\r\n\t\t\t\t\t\t\ttmp = obj.childNodes[i];\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(tmp) {\r\n\t\t\t\t\t\ttmp.className += ' jstree-search';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn obj;\r\n\t\t};\r\n\t};\r\n\r\n\t// helpers\r\n\t(function ($) {\r\n\t\t// from http://kiro.me/projects/fuse.html\r\n\t\t$.vakata.search = function(pattern, txt, options) {\r\n\t\t\toptions = options || {};\r\n\t\t\toptions = $.extend({}, $.vakata.search.defaults, options);\r\n\t\t\tif(options.fuzzy !== false) {\r\n\t\t\t\toptions.fuzzy = true;\r\n\t\t\t}\r\n\t\t\tpattern = options.caseSensitive ? pattern : pattern.toLowerCase();\r\n\t\t\tvar MATCH_LOCATION\t= options.location,\r\n\t\t\t\tMATCH_DISTANCE\t= options.distance,\r\n\t\t\t\tMATCH_THRESHOLD\t= options.threshold,\r\n\t\t\t\tpatternLen = pattern.length,\r\n\t\t\t\tmatchmask, pattern_alphabet, match_bitapScore, search;\r\n\t\t\tif(patternLen > 32) {\r\n\t\t\t\toptions.fuzzy = false;\r\n\t\t\t}\r\n\t\t\tif(options.fuzzy) {\r\n\t\t\t\tmatchmask = 1 << (patternLen - 1);\r\n\t\t\t\tpattern_alphabet = (function () {\r\n\t\t\t\t\tvar mask = {},\r\n\t\t\t\t\t\ti = 0;\r\n\t\t\t\t\tfor (i = 0; i < patternLen; i++) {\r\n\t\t\t\t\t\tmask[pattern.charAt(i)] = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfor (i = 0; i < patternLen; i++) {\r\n\t\t\t\t\t\tmask[pattern.charAt(i)] |= 1 << (patternLen - i - 1);\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn mask;\r\n\t\t\t\t}());\r\n\t\t\t\tmatch_bitapScore = function (e, x) {\r\n\t\t\t\t\tvar accuracy = e / patternLen,\r\n\t\t\t\t\t\tproximity = Math.abs(MATCH_LOCATION - x);\r\n\t\t\t\t\tif(!MATCH_DISTANCE) {\r\n\t\t\t\t\t\treturn proximity ? 1.0 : accuracy;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn accuracy + (proximity / MATCH_DISTANCE);\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tsearch = function (text) {\r\n\t\t\t\ttext = options.caseSensitive ? text : text.toLowerCase();\r\n\t\t\t\tif(pattern === text || text.indexOf(pattern) !== -1) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tisMatch: true,\r\n\t\t\t\t\t\tscore: 0\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t\tif(!options.fuzzy) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tisMatch: false,\r\n\t\t\t\t\t\tscore: 1\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t\tvar i, j,\r\n\t\t\t\t\ttextLen = text.length,\r\n\t\t\t\t\tscoreThreshold = MATCH_THRESHOLD,\r\n\t\t\t\t\tbestLoc = text.indexOf(pattern, MATCH_LOCATION),\r\n\t\t\t\t\tbinMin, binMid,\r\n\t\t\t\t\tbinMax = patternLen + textLen,\r\n\t\t\t\t\tlastRd, start, finish, rd, charMatch,\r\n\t\t\t\t\tscore = 1,\r\n\t\t\t\t\tlocations = [];\r\n\t\t\t\tif (bestLoc !== -1) {\r\n\t\t\t\t\tscoreThreshold = Math.min(match_bitapScore(0, bestLoc), scoreThreshold);\r\n\t\t\t\t\tbestLoc = text.lastIndexOf(pattern, MATCH_LOCATION + patternLen);\r\n\t\t\t\t\tif (bestLoc !== -1) {\r\n\t\t\t\t\t\tscoreThreshold = Math.min(match_bitapScore(0, bestLoc), scoreThreshold);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tbestLoc = -1;\r\n\t\t\t\tfor (i = 0; i < patternLen; i++) {\r\n\t\t\t\t\tbinMin = 0;\r\n\t\t\t\t\tbinMid = binMax;\r\n\t\t\t\t\twhile (binMin < binMid) {\r\n\t\t\t\t\t\tif (match_bitapScore(i, MATCH_LOCATION + binMid) <= scoreThreshold) {\r\n\t\t\t\t\t\t\tbinMin = binMid;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tbinMax = binMid;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbinMid = Math.floor((binMax - binMin) / 2 + binMin);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbinMax = binMid;\r\n\t\t\t\t\tstart = Math.max(1, MATCH_LOCATION - binMid + 1);\r\n\t\t\t\t\tfinish = Math.min(MATCH_LOCATION + binMid, textLen) + patternLen;\r\n\t\t\t\t\trd = new Array(finish + 2);\r\n\t\t\t\t\trd[finish + 1] = (1 << i) - 1;\r\n\t\t\t\t\tfor (j = finish; j >= start; j--) {\r\n\t\t\t\t\t\tcharMatch = pattern_alphabet[text.charAt(j - 1)];\r\n\t\t\t\t\t\tif (i === 0) {\r\n\t\t\t\t\t\t\trd[j] = ((rd[j + 1] << 1) | 1) & charMatch;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\trd[j] = ((rd[j + 1] << 1) | 1) & charMatch | (((lastRd[j + 1] | lastRd[j]) << 1) | 1) | lastRd[j + 1];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (rd[j] & matchmask) {\r\n\t\t\t\t\t\t\tscore = match_bitapScore(i, j - 1);\r\n\t\t\t\t\t\t\tif (score <= scoreThreshold) {\r\n\t\t\t\t\t\t\t\tscoreThreshold = score;\r\n\t\t\t\t\t\t\t\tbestLoc = j - 1;\r\n\t\t\t\t\t\t\t\tlocations.push(bestLoc);\r\n\t\t\t\t\t\t\t\tif (bestLoc > MATCH_LOCATION) {\r\n\t\t\t\t\t\t\t\t\tstart = Math.max(1, 2 * MATCH_LOCATION - bestLoc);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (match_bitapScore(i + 1, MATCH_LOCATION) > scoreThreshold) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlastRd = rd;\r\n\t\t\t\t}\r\n\t\t\t\treturn {\r\n\t\t\t\t\tisMatch: bestLoc >= 0,\r\n\t\t\t\t\tscore: score\r\n\t\t\t\t};\r\n\t\t\t};\r\n\t\t\treturn txt === true ? { 'search' : search } : search(txt);\r\n\t\t};\r\n\t\t$.vakata.search.defaults = {\r\n\t\t\tlocation : 0,\r\n\t\t\tdistance : 100,\r\n\t\t\tthreshold : 0.6,\r\n\t\t\tfuzzy : false,\r\n\t\t\tcaseSensitive : false\r\n\t\t};\r\n\t}($));\r\n\r\n\t// include the search plugin by default\r\n\t// $.jstree.defaults.plugins.push(\"search\");\r\n\r\n\r\n/**\r\n * ### Sort plugin\r\n *\r\n * Automatically sorts all siblings in the tree according to a sorting function.\r\n */\r\n\r\n\t/**\r\n\t * the settings function used to sort the nodes.\r\n\t * It is executed in the tree's context, accepts two nodes as arguments and should return `1` or `-1`.\r\n\t * @name $.jstree.defaults.sort\r\n\t * @plugin sort\r\n\t */\r\n\t$.jstree.defaults.sort = function (a, b) {\r\n\t\t//return this.get_type(a) === this.get_type(b) ? (this.get_text(a) > this.get_text(b) ? 1 : -1) : this.get_type(a) >= this.get_type(b);\r\n\t\treturn this.get_text(a) > this.get_text(b) ? 1 : -1;\r\n\t};\r\n\t$.jstree.plugins.sort = function (options, parent) {\r\n\t\tthis.bind = function () {\r\n\t\t\tparent.bind.call(this);\r\n\t\t\tthis.element\r\n\t\t\t\t.on(\"model.jstree\", $.proxy(function (e, data) {\r\n\t\t\t\t\t\tthis.sort(data.parent, true);\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"rename_node.jstree create_node.jstree\", $.proxy(function (e, data) {\r\n\t\t\t\t\t\tthis.sort(data.parent || data.node.parent, false);\r\n\t\t\t\t\t\tthis.redraw_node(data.parent || data.node.parent, true);\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"move_node.jstree copy_node.jstree\", $.proxy(function (e, data) {\r\n\t\t\t\t\t\tthis.sort(data.parent, false);\r\n\t\t\t\t\t\tthis.redraw_node(data.parent, true);\r\n\t\t\t\t\t}, this));\r\n\t\t};\r\n\t\t/**\r\n\t\t * used to sort a node's children\r\n\t\t * @private\r\n\t\t * @name sort(obj [, deep])\r\n\t\t * @param {mixed} obj the node\r\n\t\t * @param {Boolean} deep if set to `true` nodes are sorted recursively.\r\n\t\t * @plugin sort\r\n\t\t * @trigger search.jstree\r\n\t\t */\r\n\t\tthis.sort = function (obj, deep) {\r\n\t\t\tvar i, j;\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(obj && obj.children && obj.children.length) {\r\n\t\t\t\tobj.children.sort($.proxy(this.settings.sort, this));\r\n\t\t\t\tif(deep) {\r\n\t\t\t\t\tfor(i = 0, j = obj.children_d.length; i < j; i++) {\r\n\t\t\t\t\t\tthis.sort(obj.children_d[i], false);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t// include the sort plugin by default\r\n\t// $.jstree.defaults.plugins.push(\"sort\");\r\n\r\n/**\r\n * ### State plugin\r\n *\r\n * Saves the state of the tree (selected nodes, opened nodes) on the user's computer using available options (localStorage, cookies, etc)\r\n */\r\n\r\n\tvar to = false;\r\n\t/**\r\n\t * stores all defaults for the state plugin\r\n\t * @name $.jstree.defaults.state\r\n\t * @plugin state\r\n\t */\r\n\t$.jstree.defaults.state = {\r\n\t\t/**\r\n\t\t * A string for the key to use when saving the current tree (change if using multiple trees in your project). Defaults to `jstree`.\r\n\t\t * @name $.jstree.defaults.state.key\r\n\t\t * @plugin state\r\n\t\t */\r\n\t\tkey\t\t: 'jstree',\r\n\t\t/**\r\n\t\t * A space separated list of events that trigger a state save. Defaults to `changed.jstree open_node.jstree close_node.jstree`.\r\n\t\t * @name $.jstree.defaults.state.events\r\n\t\t * @plugin state\r\n\t\t */\r\n\t\tevents\t: 'changed.jstree open_node.jstree close_node.jstree check_node.jstree uncheck_node.jstree',\r\n\t\t/**\r\n\t\t * Time in milliseconds after which the state will expire. Defaults to 'false' meaning - no expire.\r\n\t\t * @name $.jstree.defaults.state.ttl\r\n\t\t * @plugin state\r\n\t\t */\r\n\t\tttl\t\t: false,\r\n\t\t/**\r\n\t\t * A function that will be executed prior to restoring state with one argument - the state object. Can be used to clear unwanted parts of the state.\r\n\t\t * @name $.jstree.defaults.state.filter\r\n\t\t * @plugin state\r\n\t\t */\r\n\t\tfilter\t: false,\r\n\t\t/**\r\n\t\t * Should loaded nodes be restored (setting this to true means that it is possible that the whole tree will be loaded for some users - use with caution). Defaults to `false`\r\n\t\t * @name $.jstree.defaults.state.preserve_loaded\r\n\t\t * @plugin state\r\n\t\t */\r\n\t\tpreserve_loaded : false\r\n\t};\r\n\t$.jstree.plugins.state = function (options, parent) {\r\n\t\tthis.bind = function () {\r\n\t\t\tparent.bind.call(this);\r\n\t\t\tvar bind = $.proxy(function () {\r\n\t\t\t\tthis.element.on(this.settings.state.events, $.proxy(function () {\r\n\t\t\t\t\tif(to) { clearTimeout(to); }\r\n\t\t\t\t\tto = setTimeout($.proxy(function () { this.save_state(); }, this), 100);\r\n\t\t\t\t}, this));\r\n\t\t\t\t/**\r\n\t\t\t\t * triggered when the state plugin is finished restoring the state (and immediately after ready if there is no state to restore).\r\n\t\t\t\t * @event\r\n\t\t\t\t * @name state_ready.jstree\r\n\t\t\t\t * @plugin state\r\n\t\t\t\t */\r\n\t\t\t\tthis.trigger('state_ready');\r\n\t\t\t}, this);\r\n\t\t\tthis.element\r\n\t\t\t\t.on(\"ready.jstree\", $.proxy(function (e, data) {\r\n\t\t\t\t\t\tthis.element.one(\"restore_state.jstree\", bind);\r\n\t\t\t\t\t\tif(!this.restore_state()) { bind(); }\r\n\t\t\t\t\t}, this));\r\n\t\t};\r\n\t\t/**\r\n\t\t * save the state\r\n\t\t * @name save_state()\r\n\t\t * @plugin state\r\n\t\t */\r\n\t\tthis.save_state = function () {\r\n\t\t\tvar tm = this.get_state();\r\n\t\t\tif (!this.settings.state.preserve_loaded) {\r\n\t\t\t\tdelete tm.core.loaded;\r\n\t\t\t}\r\n\t\t\tvar st = { 'state' : tm, 'ttl' : this.settings.state.ttl, 'sec' : +(new Date()) };\r\n\t\t\t$.vakata.storage.set(this.settings.state.key, JSON.stringify(st));\r\n\t\t};\r\n\t\t/**\r\n\t\t * restore the state from the user's computer\r\n\t\t * @name restore_state()\r\n\t\t * @plugin state\r\n\t\t */\r\n\t\tthis.restore_state = function () {\r\n\t\t\tvar k = $.vakata.storage.get(this.settings.state.key);\r\n\t\t\tif(!!k) { try { k = JSON.parse(k); } catch(ex) { return false; } }\r\n\t\t\tif(!!k && k.ttl && k.sec && +(new Date()) - k.sec > k.ttl) { return false; }\r\n\t\t\tif(!!k && k.state) { k = k.state; }\r\n\t\t\tif(!!k && $.isFunction(this.settings.state.filter)) { k = this.settings.state.filter.call(this, k); }\r\n\t\t\tif(!!k) {\r\n\t\t\t\tif (!this.settings.state.preserve_loaded) {\r\n\t\t\t\t\tdelete k.core.loaded;\r\n\t\t\t\t}\r\n\t\t\t\tthis.element.one(\"set_state.jstree\", function (e, data) { data.instance.trigger('restore_state', { 'state' : $.extend(true, {}, k) }); });\r\n\t\t\t\tthis.set_state(k);\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t};\r\n\t\t/**\r\n\t\t * clear the state on the user's computer\r\n\t\t * @name clear_state()\r\n\t\t * @plugin state\r\n\t\t */\r\n\t\tthis.clear_state = function () {\r\n\t\t\treturn $.vakata.storage.del(this.settings.state.key);\r\n\t\t};\r\n\t};\r\n\r\n\t(function ($, undefined) {\r\n\t\t$.vakata.storage = {\r\n\t\t\t// simply specifying the functions in FF throws an error\r\n\t\t\tset : function (key, val) { return window.localStorage.setItem(key, val); },\r\n\t\t\tget : function (key) { return window.localStorage.getItem(key); },\r\n\t\t\tdel : function (key) { return window.localStorage.removeItem(key); }\r\n\t\t};\r\n\t}($));\r\n\r\n\t// include the state plugin by default\r\n\t// $.jstree.defaults.plugins.push(\"state\");\r\n\r\n/**\r\n * ### Types plugin\r\n *\r\n * Makes it possible to add predefined types for groups of nodes, which make it possible to easily control nesting rules and icon for each group.\r\n */\r\n\r\n\t/**\r\n\t * An object storing all types as key value pairs, where the key is the type name and the value is an object that could contain following keys (all optional).\r\n\t *\r\n\t * * `max_children` the maximum number of immediate children this node type can have. Do not specify or set to `-1` for unlimited.\r\n\t * * `max_depth` the maximum number of nesting this node type can have. A value of `1` would mean that the node can have children, but no grandchildren. Do not specify or set to `-1` for unlimited.\r\n\t * * `valid_children` an array of node type strings, that nodes of this type can have as children. Do not specify or set to `-1` for no limits.\r\n\t * * `icon` a string - can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class. Omit to use the default icon from your theme.\r\n\t * * `li_attr` an object of values which will be used to add HTML attributes on the resulting LI DOM node (merged with the node's own data)\r\n\t * * `a_attr` an object of values which will be used to add HTML attributes on the resulting A DOM node (merged with the node's own data)\r\n\t *\r\n\t * There are two predefined types:\r\n\t *\r\n\t * * `#` represents the root of the tree, for example `max_children` would control the maximum number of root nodes.\r\n\t * * `default` represents the default node - any settings here will be applied to all nodes that do not have a type specified.\r\n\t *\r\n\t * @name $.jstree.defaults.types\r\n\t * @plugin types\r\n\t */\r\n\t$.jstree.defaults.types = {\r\n\t\t'default' : {}\r\n\t};\r\n\t$.jstree.defaults.types[$.jstree.root] = {};\r\n\r\n\t$.jstree.plugins.types = function (options, parent) {\r\n\t\tthis.init = function (el, options) {\r\n\t\t\tvar i, j;\r\n\t\t\tif(options && options.types && options.types['default']) {\r\n\t\t\t\tfor(i in options.types) {\r\n\t\t\t\t\tif(i !== \"default\" && i !== $.jstree.root && options.types.hasOwnProperty(i)) {\r\n\t\t\t\t\t\tfor(j in options.types['default']) {\r\n\t\t\t\t\t\t\tif(options.types['default'].hasOwnProperty(j) && options.types[i][j] === undefined) {\r\n\t\t\t\t\t\t\t\toptions.types[i][j] = options.types['default'][j];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tparent.init.call(this, el, options);\r\n\t\t\tthis._model.data[$.jstree.root].type = $.jstree.root;\r\n\t\t};\r\n\t\tthis.refresh = function (skip_loading, forget_state) {\r\n\t\t\tparent.refresh.call(this, skip_loading, forget_state);\r\n\t\t\tthis._model.data[$.jstree.root].type = $.jstree.root;\r\n\t\t};\r\n\t\tthis.bind = function () {\r\n\t\t\tthis.element\r\n\t\t\t\t.on('model.jstree', $.proxy(function (e, data) {\r\n\t\t\t\t\t\tvar m = this._model.data,\r\n\t\t\t\t\t\t\tdpc = data.nodes,\r\n\t\t\t\t\t\t\tt = this.settings.types,\r\n\t\t\t\t\t\t\ti, j, c = 'default', k;\r\n\t\t\t\t\t\tfor(i = 0, j = dpc.length; i < j; i++) {\r\n\t\t\t\t\t\t\tc = 'default';\r\n\t\t\t\t\t\t\tif(m[dpc[i]].original && m[dpc[i]].original.type && t[m[dpc[i]].original.type]) {\r\n\t\t\t\t\t\t\t\tc = m[dpc[i]].original.type;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(m[dpc[i]].data && m[dpc[i]].data.jstree && m[dpc[i]].data.jstree.type && t[m[dpc[i]].data.jstree.type]) {\r\n\t\t\t\t\t\t\t\tc = m[dpc[i]].data.jstree.type;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tm[dpc[i]].type = c;\r\n\t\t\t\t\t\t\tif(m[dpc[i]].icon === true && t[c].icon !== undefined) {\r\n\t\t\t\t\t\t\t\tm[dpc[i]].icon = t[c].icon;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(t[c].li_attr !== undefined && typeof t[c].li_attr === 'object') {\r\n\t\t\t\t\t\t\t\tfor (k in t[c].li_attr) {\r\n\t\t\t\t\t\t\t\t\tif (t[c].li_attr.hasOwnProperty(k)) {\r\n\t\t\t\t\t\t\t\t\t\tif (k === 'id') {\r\n\t\t\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse if (m[dpc[i]].li_attr[k] === undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\tm[dpc[i]].li_attr[k] = t[c].li_attr[k];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse if (k === 'class') {\r\n\t\t\t\t\t\t\t\t\t\t\tm[dpc[i]].li_attr['class'] = t[c].li_attr['class'] + ' ' + m[dpc[i]].li_attr['class'];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif(t[c].a_attr !== undefined && typeof t[c].a_attr === 'object') {\r\n\t\t\t\t\t\t\t\tfor (k in t[c].a_attr) {\r\n\t\t\t\t\t\t\t\t\tif (t[c].a_attr.hasOwnProperty(k)) {\r\n\t\t\t\t\t\t\t\t\t\tif (k === 'id') {\r\n\t\t\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse if (m[dpc[i]].a_attr[k] === undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\tm[dpc[i]].a_attr[k] = t[c].a_attr[k];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse if (k === 'href' && m[dpc[i]].a_attr[k] === '#') {\r\n\t\t\t\t\t\t\t\t\t\t\tm[dpc[i]].a_attr['href'] = t[c].a_attr['href'];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\telse if (k === 'class') {\r\n\t\t\t\t\t\t\t\t\t\t\tm[dpc[i]].a_attr['class'] = t[c].a_attr['class'] + ' ' + m[dpc[i]].a_attr['class'];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tm[$.jstree.root].type = $.jstree.root;\r\n\t\t\t\t\t}, this));\r\n\t\t\tparent.bind.call(this);\r\n\t\t};\r\n\t\tthis.get_json = function (obj, options, flat) {\r\n\t\t\tvar i, j,\r\n\t\t\t\tm = this._model.data,\r\n\t\t\t\topt = options ? $.extend(true, {}, options, {no_id:false}) : {},\r\n\t\t\t\ttmp = parent.get_json.call(this, obj, opt, flat);\r\n\t\t\tif(tmp === false) { return false; }\r\n\t\t\tif($.isArray(tmp)) {\r\n\t\t\t\tfor(i = 0, j = tmp.length; i < j; i++) {\r\n\t\t\t\t\ttmp[i].type = tmp[i].id && m[tmp[i].id] && m[tmp[i].id].type ? m[tmp[i].id].type : \"default\";\r\n\t\t\t\t\tif(options && options.no_id) {\r\n\t\t\t\t\t\tdelete tmp[i].id;\r\n\t\t\t\t\t\tif(tmp[i].li_attr && tmp[i].li_attr.id) {\r\n\t\t\t\t\t\t\tdelete tmp[i].li_attr.id;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(tmp[i].a_attr && tmp[i].a_attr.id) {\r\n\t\t\t\t\t\t\tdelete tmp[i].a_attr.id;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\ttmp.type = tmp.id && m[tmp.id] && m[tmp.id].type ? m[tmp.id].type : \"default\";\r\n\t\t\t\tif(options && options.no_id) {\r\n\t\t\t\t\ttmp = this._delete_ids(tmp);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn tmp;\r\n\t\t};\r\n\t\tthis._delete_ids = function (tmp) {\r\n\t\t\tif($.isArray(tmp)) {\r\n\t\t\t\tfor(var i = 0, j = tmp.length; i < j; i++) {\r\n\t\t\t\t\ttmp[i] = this._delete_ids(tmp[i]);\r\n\t\t\t\t}\r\n\t\t\t\treturn tmp;\r\n\t\t\t}\r\n\t\t\tdelete tmp.id;\r\n\t\t\tif(tmp.li_attr && tmp.li_attr.id) {\r\n\t\t\t\tdelete tmp.li_attr.id;\r\n\t\t\t}\r\n\t\t\tif(tmp.a_attr && tmp.a_attr.id) {\r\n\t\t\t\tdelete tmp.a_attr.id;\r\n\t\t\t}\r\n\t\t\tif(tmp.children && $.isArray(tmp.children)) {\r\n\t\t\t\ttmp.children = this._delete_ids(tmp.children);\r\n\t\t\t}\r\n\t\t\treturn tmp;\r\n\t\t};\r\n\t\tthis.check = function (chk, obj, par, pos, more) {\r\n\t\t\tif(parent.check.call(this, chk, obj, par, pos, more) === false) { return false; }\r\n\t\t\tobj = obj && obj.id ? obj : this.get_node(obj);\r\n\t\t\tpar = par && par.id ? par : this.get_node(par);\r\n\t\t\tvar m = obj && obj.id ? (more && more.origin ? more.origin : $.jstree.reference(obj.id)) : null, tmp, d, i, j;\r\n\t\t\tm = m && m._model && m._model.data ? m._model.data : null;\r\n\t\t\tswitch(chk) {\r\n\t\t\t\tcase \"create_node\":\r\n\t\t\t\tcase \"move_node\":\r\n\t\t\t\tcase \"copy_node\":\r\n\t\t\t\t\tif(chk !== 'move_node' || $.inArray(obj.id, par.children) === -1) {\r\n\t\t\t\t\t\ttmp = this.get_rules(par);\r\n\t\t\t\t\t\tif(tmp.max_children !== undefined && tmp.max_children !== -1 && tmp.max_children === par.children.length) {\r\n\t\t\t\t\t\t\tthis._data.core.last_error = { 'error' : 'check', 'plugin' : 'types', 'id' : 'types_01', 'reason' : 'max_children prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(tmp.valid_children !== undefined && tmp.valid_children !== -1 && $.inArray((obj.type || 'default'), tmp.valid_children) === -1) {\r\n\t\t\t\t\t\t\tthis._data.core.last_error = { 'error' : 'check', 'plugin' : 'types', 'id' : 'types_02', 'reason' : 'valid_children prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(m && obj.children_d && obj.parents) {\r\n\t\t\t\t\t\t\td = 0;\r\n\t\t\t\t\t\t\tfor(i = 0, j = obj.children_d.length; i < j; i++) {\r\n\t\t\t\t\t\t\t\td = Math.max(d, m[obj.children_d[i]].parents.length);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\td = d - obj.parents.length + 1;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif(d <= 0 || d === undefined) { d = 1; }\r\n\t\t\t\t\t\tdo {\r\n\t\t\t\t\t\t\tif(tmp.max_depth !== undefined && tmp.max_depth !== -1 && tmp.max_depth < d) {\r\n\t\t\t\t\t\t\t\tthis._data.core.last_error = { 'error' : 'check', 'plugin' : 'types', 'id' : 'types_03', 'reason' : 'max_depth prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tpar = this.get_node(par.parent);\r\n\t\t\t\t\t\t\ttmp = this.get_rules(par);\r\n\t\t\t\t\t\t\td++;\r\n\t\t\t\t\t\t} while(par);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t};\r\n\t\t/**\r\n\t\t * used to retrieve the type settings object for a node\r\n\t\t * @name get_rules(obj)\r\n\t\t * @param {mixed} obj the node to find the rules for\r\n\t\t * @return {Object}\r\n\t\t * @plugin types\r\n\t\t */\r\n\t\tthis.get_rules = function (obj) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!obj) { return false; }\r\n\t\t\tvar tmp = this.get_type(obj, true);\r\n\t\t\tif(tmp.max_depth === undefined) { tmp.max_depth = -1; }\r\n\t\t\tif(tmp.max_children === undefined) { tmp.max_children = -1; }\r\n\t\t\tif(tmp.valid_children === undefined) { tmp.valid_children = -1; }\r\n\t\t\treturn tmp;\r\n\t\t};\r\n\t\t/**\r\n\t\t * used to retrieve the type string or settings object for a node\r\n\t\t * @name get_type(obj [, rules])\r\n\t\t * @param {mixed} obj the node to find the rules for\r\n\t\t * @param {Boolean} rules if set to `true` instead of a string the settings object will be returned\r\n\t\t * @return {String|Object}\r\n\t\t * @plugin types\r\n\t\t */\r\n\t\tthis.get_type = function (obj, rules) {\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\treturn (!obj) ? false : ( rules ? $.extend({ 'type' : obj.type }, this.settings.types[obj.type]) : obj.type);\r\n\t\t};\r\n\t\t/**\r\n\t\t * used to change a node's type\r\n\t\t * @name set_type(obj, type)\r\n\t\t * @param {mixed} obj the node to change\r\n\t\t * @param {String} type the new type\r\n\t\t * @plugin types\r\n\t\t */\r\n\t\tthis.set_type = function (obj, type) {\r\n\t\t\tvar m = this._model.data, t, t1, t2, old_type, old_icon, k, d, a;\r\n\t\t\tif($.isArray(obj)) {\r\n\t\t\t\tobj = obj.slice();\r\n\t\t\t\tfor(t1 = 0, t2 = obj.length; t1 < t2; t1++) {\r\n\t\t\t\t\tthis.set_type(obj[t1], type);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t\tt = this.settings.types;\r\n\t\t\tobj = this.get_node(obj);\r\n\t\t\tif(!t[type] || !obj) { return false; }\r\n\t\t\td = this.get_node(obj, true);\r\n\t\t\tif (d && d.length) {\r\n\t\t\t\ta = d.children('.jstree-anchor');\r\n\t\t\t}\r\n\t\t\told_type = obj.type;\r\n\t\t\told_icon = this.get_icon(obj);\r\n\t\t\tobj.type = type;\r\n\t\t\tif(old_icon === true || !t[old_type] || (t[old_type].icon !== undefined && old_icon === t[old_type].icon)) {\r\n\t\t\t\tthis.set_icon(obj, t[type].icon !== undefined ? t[type].icon : true);\r\n\t\t\t}\r\n\r\n\t\t\t// remove old type props\r\n\t\t\tif(t[old_type] && t[old_type].li_attr !== undefined && typeof t[old_type].li_attr === 'object') {\r\n\t\t\t\tfor (k in t[old_type].li_attr) {\r\n\t\t\t\t\tif (t[old_type].li_attr.hasOwnProperty(k)) {\r\n\t\t\t\t\t\tif (k === 'id') {\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (k === 'class') {\r\n\t\t\t\t\t\t\tm[obj.id].li_attr['class'] = (m[obj.id].li_attr['class'] || '').replace(t[old_type].li_attr[k], '');\r\n\t\t\t\t\t\t\tif (d) { d.removeClass(t[old_type].li_attr[k]); }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (m[obj.id].li_attr[k] === t[old_type].li_attr[k]) {\r\n\t\t\t\t\t\t\tm[obj.id].li_attr[k] = null;\r\n\t\t\t\t\t\t\tif (d) { d.removeAttr(k); }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(t[old_type] && t[old_type].a_attr !== undefined && typeof t[old_type].a_attr === 'object') {\r\n\t\t\t\tfor (k in t[old_type].a_attr) {\r\n\t\t\t\t\tif (t[old_type].a_attr.hasOwnProperty(k)) {\r\n\t\t\t\t\t\tif (k === 'id') {\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (k === 'class') {\r\n\t\t\t\t\t\t\tm[obj.id].a_attr['class'] = (m[obj.id].a_attr['class'] || '').replace(t[old_type].a_attr[k], '');\r\n\t\t\t\t\t\t\tif (a) { a.removeClass(t[old_type].a_attr[k]); }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (m[obj.id].a_attr[k] === t[old_type].a_attr[k]) {\r\n\t\t\t\t\t\t\tif (k === 'href') {\r\n\t\t\t\t\t\t\t\tm[obj.id].a_attr[k] = '#';\r\n\t\t\t\t\t\t\t\tif (a) { a.attr('href', '#'); }\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\tdelete m[obj.id].a_attr[k];\r\n\t\t\t\t\t\t\t\tif (a) { a.removeAttr(k); }\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// add new props\r\n\t\t\tif(t[type].li_attr !== undefined && typeof t[type].li_attr === 'object') {\r\n\t\t\t\tfor (k in t[type].li_attr) {\r\n\t\t\t\t\tif (t[type].li_attr.hasOwnProperty(k)) {\r\n\t\t\t\t\t\tif (k === 'id') {\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (m[obj.id].li_attr[k] === undefined) {\r\n\t\t\t\t\t\t\tm[obj.id].li_attr[k] = t[type].li_attr[k];\r\n\t\t\t\t\t\t\tif (d) {\r\n\t\t\t\t\t\t\t\tif (k === 'class') {\r\n\t\t\t\t\t\t\t\t\td.addClass(t[type].li_attr[k]);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\td.attr(k, t[type].li_attr[k]);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (k === 'class') {\r\n\t\t\t\t\t\t\tm[obj.id].li_attr['class'] = t[type].li_attr[k] + ' ' + m[obj.id].li_attr['class'];\r\n\t\t\t\t\t\t\tif (d) { d.addClass(t[type].li_attr[k]); }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(t[type].a_attr !== undefined && typeof t[type].a_attr === 'object') {\r\n\t\t\t\tfor (k in t[type].a_attr) {\r\n\t\t\t\t\tif (t[type].a_attr.hasOwnProperty(k)) {\r\n\t\t\t\t\t\tif (k === 'id') {\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (m[obj.id].a_attr[k] === undefined) {\r\n\t\t\t\t\t\t\tm[obj.id].a_attr[k] = t[type].a_attr[k];\r\n\t\t\t\t\t\t\tif (a) {\r\n\t\t\t\t\t\t\t\tif (k === 'class') {\r\n\t\t\t\t\t\t\t\t\ta.addClass(t[type].a_attr[k]);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\ta.attr(k, t[type].a_attr[k]);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (k === 'href' && m[obj.id].a_attr[k] === '#') {\r\n\t\t\t\t\t\t\tm[obj.id].a_attr['href'] = t[type].a_attr['href'];\r\n\t\t\t\t\t\t\tif (a) { a.attr('href', t[type].a_attr['href']); }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse if (k === 'class') {\r\n\t\t\t\t\t\t\tm[obj.id].a_attr['class'] = t[type].a_attr['class'] + ' ' + m[obj.id].a_attr['class'];\r\n\t\t\t\t\t\t\tif (a) { a.addClass(t[type].a_attr[k]); }\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t};\r\n\t};\r\n\t// include the types plugin by default\r\n\t// $.jstree.defaults.plugins.push(\"types\");\r\n\r\n\r\n/**\r\n * ### Unique plugin\r\n *\r\n * Enforces that no nodes with the same name can coexist as siblings.\r\n */\r\n\r\n\t/**\r\n\t * stores all defaults for the unique plugin\r\n\t * @name $.jstree.defaults.unique\r\n\t * @plugin unique\r\n\t */\r\n\t$.jstree.defaults.unique = {\r\n\t\t/**\r\n\t\t * Indicates if the comparison should be case sensitive. Default is `false`.\r\n\t\t * @name $.jstree.defaults.unique.case_sensitive\r\n\t\t * @plugin unique\r\n\t\t */\r\n\t\tcase_sensitive : false,\r\n\t\t/**\r\n\t\t * Indicates if white space should be trimmed before the comparison. Default is `false`.\r\n\t\t * @name $.jstree.defaults.unique.trim_whitespace\r\n\t\t * @plugin unique\r\n\t\t */\r\n\t\ttrim_whitespace : false,\r\n\t\t/**\r\n\t\t * A callback executed in the instance's scope when a new node is created and the name is already taken, the two arguments are the conflicting name and the counter. The default will produce results like `New node (2)`.\r\n\t\t * @name $.jstree.defaults.unique.duplicate\r\n\t\t * @plugin unique\r\n\t\t */\r\n\t\tduplicate : function (name, counter) {\r\n\t\t\treturn name + ' (' + counter + ')';\r\n\t\t}\r\n\t};\r\n\r\n\t$.jstree.plugins.unique = function (options, parent) {\r\n\t\tthis.check = function (chk, obj, par, pos, more) {\r\n\t\t\tif(parent.check.call(this, chk, obj, par, pos, more) === false) { return false; }\r\n\t\t\tobj = obj && obj.id ? obj : this.get_node(obj);\r\n\t\t\tpar = par && par.id ? par : this.get_node(par);\r\n\t\t\tif(!par || !par.children) { return true; }\r\n\t\t\tvar n = chk === \"rename_node\" ? pos : obj.text,\r\n\t\t\t\tc = [],\r\n\t\t\t\ts = this.settings.unique.case_sensitive,\r\n\t\t\t\tw = this.settings.unique.trim_whitespace,\r\n\t\t\t\tm = this._model.data, i, j, t;\r\n\t\t\tfor(i = 0, j = par.children.length; i < j; i++) {\r\n\t\t\t\tt = m[par.children[i]].text;\r\n\t\t\t\tif (!s) {\r\n\t\t\t\t\tt = t.toLowerCase();\r\n\t\t\t\t}\r\n\t\t\t\tif (w) {\r\n\t\t\t\t\tt = t.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\r\n\t\t\t\t}\r\n\t\t\t\tc.push(t);\r\n\t\t\t}\r\n\t\t\tif(!s) { n = n.toLowerCase(); }\r\n\t\t\tif (w) { n = n.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, ''); }\r\n\t\t\tswitch(chk) {\r\n\t\t\t\tcase \"delete_node\":\r\n\t\t\t\t\treturn true;\r\n\t\t\t\tcase \"rename_node\":\r\n\t\t\t\t\tt = obj.text || '';\r\n\t\t\t\t\tif (!s) {\r\n\t\t\t\t\t\tt = t.toLowerCase();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (w) {\r\n\t\t\t\t\t\tt = t.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\r\n\t\t\t\t\t}\r\n\t\t\t\t\ti = ($.inArray(n, c) === -1 || (obj.text && t === n));\r\n\t\t\t\t\tif(!i) {\r\n\t\t\t\t\t\tthis._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_01', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn i;\r\n\t\t\t\tcase \"create_node\":\r\n\t\t\t\t\ti = ($.inArray(n, c) === -1);\r\n\t\t\t\t\tif(!i) {\r\n\t\t\t\t\t\tthis._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_04', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn i;\r\n\t\t\t\tcase \"copy_node\":\r\n\t\t\t\t\ti = ($.inArray(n, c) === -1);\r\n\t\t\t\t\tif(!i) {\r\n\t\t\t\t\t\tthis._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_02', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn i;\r\n\t\t\t\tcase \"move_node\":\r\n\t\t\t\t\ti = ( (obj.parent === par.id && (!more || !more.is_multi)) || $.inArray(n, c) === -1);\r\n\t\t\t\t\tif(!i) {\r\n\t\t\t\t\t\tthis._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_03', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) };\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn i;\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t};\r\n\t\tthis.create_node = function (par, node, pos, callback, is_loaded) {\r\n\t\t\tif(!node || node.text === undefined) {\r\n\t\t\t\tif(par === null) {\r\n\t\t\t\t\tpar = $.jstree.root;\r\n\t\t\t\t}\r\n\t\t\t\tpar = this.get_node(par);\r\n\t\t\t\tif(!par) {\r\n\t\t\t\t\treturn parent.create_node.call(this, par, node, pos, callback, is_loaded);\r\n\t\t\t\t}\r\n\t\t\t\tpos = pos === undefined ? \"last\" : pos;\r\n\t\t\t\tif(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) {\r\n\t\t\t\t\treturn parent.create_node.call(this, par, node, pos, callback, is_loaded);\r\n\t\t\t\t}\r\n\t\t\t\tif(!node) { node = {}; }\r\n\t\t\t\tvar tmp, n, dpc, i, j, m = this._model.data, s = this.settings.unique.case_sensitive, w = this.settings.unique.trim_whitespace, cb = this.settings.unique.duplicate, t;\r\n\t\t\t\tn = tmp = this.get_string('New node');\r\n\t\t\t\tdpc = [];\r\n\t\t\t\tfor(i = 0, j = par.children.length; i < j; i++) {\r\n\t\t\t\t\tt = m[par.children[i]].text;\r\n\t\t\t\t\tif (!s) {\r\n\t\t\t\t\t\tt = t.toLowerCase();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (w) {\r\n\t\t\t\t\t\tt = t.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdpc.push(t);\r\n\t\t\t\t}\r\n\t\t\t\ti = 1;\r\n\t\t\t\tt = n;\r\n\t\t\t\tif (!s) {\r\n\t\t\t\t\tt = t.toLowerCase();\r\n\t\t\t\t}\r\n\t\t\t\tif (w) {\r\n\t\t\t\t\tt = t.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\r\n\t\t\t\t}\r\n\t\t\t\twhile($.inArray(t, dpc) !== -1) {\r\n\t\t\t\t\tn = cb.call(this, tmp, (++i)).toString();\r\n\t\t\t\t\tt = n;\r\n\t\t\t\t\tif (!s) {\r\n\t\t\t\t\t\tt = t.toLowerCase();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (w) {\r\n\t\t\t\t\t\tt = t.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tnode.text = n;\r\n\t\t\t}\r\n\t\t\treturn parent.create_node.call(this, par, node, pos, callback, is_loaded);\r\n\t\t};\r\n\t};\r\n\r\n\t// include the unique plugin by default\r\n\t// $.jstree.defaults.plugins.push(\"unique\");\r\n\r\n\r\n/**\r\n * ### Wholerow plugin\r\n *\r\n * Makes each node appear block level. Making selection easier. May cause slow down for large trees in old browsers.\r\n */\r\n\r\n\tvar div = document.createElement('DIV');\r\n\tdiv.setAttribute('unselectable','on');\r\n\tdiv.setAttribute('role','presentation');\r\n\tdiv.className = 'jstree-wholerow';\r\n\tdiv.innerHTML = ' ';\r\n\t$.jstree.plugins.wholerow = function (options, parent) {\r\n\t\tthis.bind = function () {\r\n\t\t\tparent.bind.call(this);\r\n\r\n\t\t\tthis.element\r\n\t\t\t\t.on('ready.jstree set_state.jstree', $.proxy(function () {\r\n\t\t\t\t\t\tthis.hide_dots();\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"init.jstree loading.jstree ready.jstree\", $.proxy(function () {\r\n\t\t\t\t\t\t//div.style.height = this._data.core.li_height + 'px';\r\n\t\t\t\t\t\tthis.get_container_ul().addClass('jstree-wholerow-ul');\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"deselect_all.jstree\", $.proxy(function (e, data) {\r\n\t\t\t\t\t\tthis.element.find('.jstree-wholerow-clicked').removeClass('jstree-wholerow-clicked');\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"changed.jstree\", $.proxy(function (e, data) {\r\n\t\t\t\t\t\tthis.element.find('.jstree-wholerow-clicked').removeClass('jstree-wholerow-clicked');\r\n\t\t\t\t\t\tvar tmp = false, i, j;\r\n\t\t\t\t\t\tfor(i = 0, j = data.selected.length; i < j; i++) {\r\n\t\t\t\t\t\t\ttmp = this.get_node(data.selected[i], true);\r\n\t\t\t\t\t\t\tif(tmp && tmp.length) {\r\n\t\t\t\t\t\t\t\ttmp.children('.jstree-wholerow').addClass('jstree-wholerow-clicked');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"open_node.jstree\", $.proxy(function (e, data) {\r\n\t\t\t\t\t\tthis.get_node(data.node, true).find('.jstree-clicked').parent().children('.jstree-wholerow').addClass('jstree-wholerow-clicked');\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"hover_node.jstree dehover_node.jstree\", $.proxy(function (e, data) {\r\n\t\t\t\t\t\tif(e.type === \"hover_node\" && this.is_disabled(data.node)) { return; }\r\n\t\t\t\t\t\tthis.get_node(data.node, true).children('.jstree-wholerow')[e.type === \"hover_node\"?\"addClass\":\"removeClass\"]('jstree-wholerow-hovered');\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"contextmenu.jstree\", \".jstree-wholerow\", $.proxy(function (e) {\r\n\t\t\t\t\t\tif (this._data.contextmenu) {\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\tvar tmp = $.Event('contextmenu', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey, pageX : e.pageX, pageY : e.pageY });\r\n\t\t\t\t\t\t\t$(e.currentTarget).closest(\".jstree-node\").children(\".jstree-anchor\").first().trigger(tmp);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t/*!\r\n\t\t\t\t.on(\"mousedown.jstree touchstart.jstree\", \".jstree-wholerow\", function (e) {\r\n\t\t\t\t\t\tif(e.target === e.currentTarget) {\r\n\t\t\t\t\t\t\tvar a = $(e.currentTarget).closest(\".jstree-node\").children(\".jstree-anchor\");\r\n\t\t\t\t\t\t\te.target = a[0];\r\n\t\t\t\t\t\t\ta.trigger(e);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t*/\r\n\t\t\t\t.on(\"click.jstree\", \".jstree-wholerow\", function (e) {\r\n\t\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\t\tvar tmp = $.Event('click', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey });\r\n\t\t\t\t\t\t$(e.currentTarget).closest(\".jstree-node\").children(\".jstree-anchor\").first().trigger(tmp).focus();\r\n\t\t\t\t\t})\r\n\t\t\t\t.on(\"dblclick.jstree\", \".jstree-wholerow\", function (e) {\r\n\t\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\t\tvar tmp = $.Event('dblclick', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey });\r\n\t\t\t\t\t\t$(e.currentTarget).closest(\".jstree-node\").children(\".jstree-anchor\").first().trigger(tmp).focus();\r\n\t\t\t\t\t})\r\n\t\t\t\t.on(\"click.jstree\", \".jstree-leaf > .jstree-ocl\", $.proxy(function (e) {\r\n\t\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\t\tvar tmp = $.Event('click', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey });\r\n\t\t\t\t\t\t$(e.currentTarget).closest(\".jstree-node\").children(\".jstree-anchor\").first().trigger(tmp).focus();\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"mouseover.jstree\", \".jstree-wholerow, .jstree-icon\", $.proxy(function (e) {\r\n\t\t\t\t\t\te.stopImmediatePropagation();\r\n\t\t\t\t\t\tif(!this.is_disabled(e.currentTarget)) {\r\n\t\t\t\t\t\t\tthis.hover_node(e.currentTarget);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}, this))\r\n\t\t\t\t.on(\"mouseleave.jstree\", \".jstree-node\", $.proxy(function (e) {\r\n\t\t\t\t\t\tthis.dehover_node(e.currentTarget);\r\n\t\t\t\t\t}, this));\r\n\t\t};\r\n\t\tthis.teardown = function () {\r\n\t\t\tif(this.settings.wholerow) {\r\n\t\t\t\tthis.element.find(\".jstree-wholerow\").remove();\r\n\t\t\t}\r\n\t\t\tparent.teardown.call(this);\r\n\t\t};\r\n\t\tthis.redraw_node = function(obj, deep, callback, force_render) {\r\n\t\t\tobj = parent.redraw_node.apply(this, arguments);\r\n\t\t\tif(obj) {\r\n\t\t\t\tvar tmp = div.cloneNode(true);\r\n\t\t\t\t//tmp.style.height = this._data.core.li_height + 'px';\r\n\t\t\t\tif($.inArray(obj.id, this._data.core.selected) !== -1) { tmp.className += ' jstree-wholerow-clicked'; }\r\n\t\t\t\tif(this._data.core.focused && this._data.core.focused === obj.id) { tmp.className += ' jstree-wholerow-hovered'; }\r\n\t\t\t\tobj.insertBefore(tmp, obj.childNodes[0]);\r\n\t\t\t}\r\n\t\t\treturn obj;\r\n\t\t};\r\n\t};\r\n\t// include the wholerow plugin by default\r\n\t// $.jstree.defaults.plugins.push(\"wholerow\");\r\n\tif(window.customElements && Object && Object.create) {\r\n\t\tvar proto = Object.create(HTMLElement.prototype);\r\n\t\tproto.createdCallback = function () {\r\n\t\t\tvar c = { core : {}, plugins : [] }, i;\r\n\t\t\tfor(i in $.jstree.plugins) {\r\n\t\t\t\tif($.jstree.plugins.hasOwnProperty(i) && this.attributes[i]) {\r\n\t\t\t\t\tc.plugins.push(i);\r\n\t\t\t\t\tif(this.getAttribute(i) && JSON.parse(this.getAttribute(i))) {\r\n\t\t\t\t\t\tc[i] = JSON.parse(this.getAttribute(i));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tfor(i in $.jstree.defaults.core) {\r\n\t\t\t\tif($.jstree.defaults.core.hasOwnProperty(i) && this.attributes[i]) {\r\n\t\t\t\t\tc.core[i] = JSON.parse(this.getAttribute(i)) || this.getAttribute(i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t$(this).jstree(c);\r\n\t\t};\r\n\t\t// proto.attributeChangedCallback = function (name, previous, value) { };\r\n\t\ttry {\r\n\t\t\twindow.customElements.define(\"vakata-jstree\", function() {}, { prototype: proto });\r\n\t\t} catch (ignore) { }\r\n\t}\r\n\r\n}));","/* ========================================================================\r\n * Bootstrap: transition.js v3.3.0\r\n * http://getbootstrap.com/javascript/#transitions\r\n * ========================================================================\r\n * Copyright 2011-2014 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) {\r\n 'use strict';\r\n\r\n // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\r\n // ============================================================\r\n\r\n function transitionEnd() {\r\n var el = document.createElement('bootstrap')\r\n\r\n var transEndEventNames = {\r\n WebkitTransition : 'webkitTransitionEnd',\r\n MozTransition : 'transitionend',\r\n OTransition : 'oTransitionEnd otransitionend',\r\n transition : 'transitionend'\r\n }\r\n\r\n for (var name in transEndEventNames) {\r\n if (el.style[name] !== undefined) {\r\n return { end: transEndEventNames[name] }\r\n }\r\n }\r\n\r\n return false // explicit for ie8 ( ._.)\r\n }\r\n\r\n // http://blog.alexmaccaw.com/css-transitions\r\n $.fn.emulateTransitionEnd = function (duration) {\r\n var called = false\r\n var $el = this\r\n $(this).one('bsTransitionEnd', function () { called = true })\r\n var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\r\n setTimeout(callback, duration)\r\n return this\r\n }\r\n\r\n $(function () {\r\n $.support.transition = transitionEnd()\r\n\r\n if (!$.support.transition) return\r\n\r\n $.event.special.bsTransitionEnd = {\r\n bindType: $.support.transition.end,\r\n delegateType: $.support.transition.end,\r\n handle: function (e) {\r\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\r\n }\r\n }\r\n })\r\n\r\n}(jQuery);\r\n","/* ========================================================================\r\n * Bootstrap: collapse.js v3.3.0\r\n * http://getbootstrap.com/javascript/#collapse\r\n * ========================================================================\r\n * Copyright 2011-2014 Twitter, Inc.\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\r\n * ======================================================================== */\r\n\r\n\r\n+function ($) {\r\n 'use strict';\r\n\r\n // COLLAPSE PUBLIC CLASS DEFINITION\r\n // ================================\r\n\r\n var Collapse = function (element, options) {\r\n this.$element = $(element)\r\n this.options = $.extend({}, Collapse.DEFAULTS, options)\r\n this.$trigger = $(this.options.trigger).filter('[href=\"#' + element.id + '\"], [data-target=\"#' + element.id + '\"]')\r\n this.transitioning = null\r\n\r\n if (this.options.parent) {\r\n this.$parent = this.getParent()\r\n } else {\r\n this.addAriaAndCollapsedClass(this.$element, this.$trigger)\r\n }\r\n\r\n if (this.options.toggle) this.toggle()\r\n }\r\n\r\n Collapse.VERSION = '3.3.0'\r\n\r\n Collapse.TRANSITION_DURATION = 350\r\n\r\n Collapse.DEFAULTS = {\r\n toggle: true,\r\n trigger: '[data-toggle=\"collapse\"]'\r\n }\r\n\r\n Collapse.prototype.dimension = function () {\r\n var hasWidth = this.$element.hasClass('width')\r\n return hasWidth ? 'width' : 'height'\r\n }\r\n\r\n Collapse.prototype.show = function () {\r\n if (this.transitioning || this.$element.hasClass('in')) return\r\n\r\n var activesData\r\n var actives = this.$parent && this.$parent.find('> .panel').children('.in, .collapsing')\r\n\r\n if (actives && actives.length) {\r\n activesData = actives.data('bs.collapse')\r\n if (activesData && activesData.transitioning) return\r\n }\r\n\r\n var startEvent = $.Event('show.bs.collapse')\r\n this.$element.trigger(startEvent)\r\n if (startEvent.isDefaultPrevented()) return\r\n\r\n if (actives && actives.length) {\r\n Plugin.call(actives, 'hide')\r\n activesData || actives.data('bs.collapse', null)\r\n }\r\n\r\n var dimension = this.dimension()\r\n\r\n this.$element\r\n .removeClass('collapse')\r\n .addClass('collapsing')[dimension](0)\r\n .attr('aria-expanded', true)\r\n\r\n this.$trigger\r\n .removeClass('collapsed')\r\n .attr('aria-expanded', true)\r\n\r\n this.transitioning = 1\r\n\r\n var complete = function () {\r\n this.$element\r\n .removeClass('collapsing')\r\n .addClass('collapse in')[dimension]('')\r\n this.transitioning = 0\r\n this.$element\r\n .trigger('shown.bs.collapse')\r\n }\r\n\r\n if (!$.support.transition) return complete.call(this)\r\n\r\n var scrollSize = $.camelCase(['scroll', dimension].join('-'))\r\n\r\n this.$element\r\n .one('bsTransitionEnd', $.proxy(complete, this))\r\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\r\n }\r\n\r\n Collapse.prototype.hide = function () {\r\n if (this.transitioning || !this.$element.hasClass('in')) return\r\n\r\n var startEvent = $.Event('hide.bs.collapse')\r\n this.$element.trigger(startEvent)\r\n if (startEvent.isDefaultPrevented()) return\r\n\r\n var dimension = this.dimension()\r\n\r\n this.$element[dimension](this.$element[dimension]())[0].offsetHeight\r\n\r\n this.$element\r\n .addClass('collapsing')\r\n .removeClass('collapse in')\r\n .attr('aria-expanded', false)\r\n\r\n this.$trigger\r\n .addClass('collapsed')\r\n .attr('aria-expanded', false)\r\n\r\n this.transitioning = 1\r\n\r\n var complete = function () {\r\n this.transitioning = 0\r\n this.$element\r\n .removeClass('collapsing')\r\n .addClass('collapse')\r\n .trigger('hidden.bs.collapse')\r\n }\r\n\r\n if (!$.support.transition) return complete.call(this)\r\n\r\n this.$element\r\n [dimension](0)\r\n .one('bsTransitionEnd', $.proxy(complete, this))\r\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\r\n }\r\n\r\n Collapse.prototype.toggle = function () {\r\n this[this.$element.hasClass('in') ? 'hide' : 'show']()\r\n }\r\n\r\n Collapse.prototype.getParent = function () {\r\n return $(this.options.parent)\r\n .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\r\n .each($.proxy(function (i, element) {\r\n var $element = $(element)\r\n this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\r\n }, this))\r\n .end()\r\n }\r\n\r\n Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\r\n var isOpen = $element.hasClass('in')\r\n\r\n $element.attr('aria-expanded', isOpen)\r\n $trigger\r\n .toggleClass('collapsed', !isOpen)\r\n .attr('aria-expanded', isOpen)\r\n }\r\n\r\n function getTargetFromTrigger($trigger) {\r\n var href\r\n var target = $trigger.attr('data-target')\r\n || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\r\n\r\n return $(target)\r\n }\r\n\r\n\r\n // COLLAPSE PLUGIN DEFINITION\r\n // ==========================\r\n\r\n function Plugin(option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('bs.collapse')\r\n var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\r\n\r\n if (!data && options.toggle && option == 'show') options.toggle = false\r\n if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\r\n if (typeof option == 'string') data[option]()\r\n })\r\n }\r\n\r\n var old = $.fn.collapse\r\n\r\n $.fn.collapse = Plugin\r\n $.fn.collapse.Constructor = Collapse\r\n\r\n\r\n // COLLAPSE NO CONFLICT\r\n // ====================\r\n\r\n $.fn.collapse.noConflict = function () {\r\n $.fn.collapse = old\r\n return this\r\n }\r\n\r\n\r\n // COLLAPSE DATA-API\r\n // =================\r\n\r\n $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\r\n var $this = $(this)\r\n\r\n if (!$this.attr('data-target')) e.preventDefault()\r\n\r\n var $target = getTargetFromTrigger($this)\r\n var data = $target.data('bs.collapse')\r\n var option = data ? 'toggle' : $.extend({}, $this.data(), { trigger: this })\r\n\r\n Plugin.call($target, option)\r\n })\r\n\r\n}(jQuery);\r\n","//! moment.js\r\n//! version : 2.10.6\r\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\r\n//! license : MIT\r\n//! momentjs.com\r\n(function(n,t){typeof exports==\"object\"&&typeof module!=\"undefined\"?module.exports=t():typeof define==\"function\"&&define.amd?define(t):n.moment=t()})(this,function(){\"use strict\";function i(){return ru.apply(null,arguments)}function eo(n){ru=n}function ui(n){return Object.prototype.toString.call(n)===\"[object Array]\"}function fi(n){return n instanceof Date||Object.prototype.toString.call(n)===\"[object Date]\"}function oo(n,t){for(var r=[],i=0;i0)for(u in di)i=di[u],r=t[i],typeof r!=\"undefined\"&&(n[i]=r);return n}function dt(n){gi(this,n);this._d=new Date(n._d!=null?n._d.getTime():NaN);nr===!1&&(nr=!0,i.updateOffset(this),nr=!1)}function tt(n){return n instanceof dt||n!=null&&n._isAMomentObject!=null}function v(n){return n<0?Math.ceil(n):Math.floor(n)}function s(n){var t=+n,i=0;return t!==0&&isFinite(t)&&(i=v(t)),i}function eu(n,t,i){for(var f=Math.min(n.length,t.length),e=Math.abs(n.length-t.length),u=0,r=0;r0;){if(f=hu(u.slice(0,i).join(\"-\")),f)return f;if(t&&t.length>=i&&eu(u,t,!0)>=i-1)break;i--}r++}return null}function hu(n){var t=null;if(!et[n]&&typeof module!=\"undefined\"&&module&&module.exports)try{t=oi._abbr;require(\"./locale/\"+n);gt(t)}catch(i){}return et[n]}function gt(n,t){var i;return n&&(i=typeof t==\"undefined\"?ot(n):cu(n,t),i&&(oi=i)),oi._abbr}function cu(n,t){return t!==null?(t.abbr=n,et[n]=et[n]||new ou,et[n].set(t),gt(n),et[n]):(delete et[n],null)}function ot(n){var t;if(n&&n._locale&&n._locale._abbr&&(n=n._locale._abbr),!n)return oi;if(!ui(n)){if(t=hu(n),t)return t;n=[n]}return ho(n)}function l(n,t){var i=n.toLowerCase();ni[i]=ni[i+\"s\"]=ni[t]=n}function p(n){return typeof n==\"string\"?ni[n]||ni[n.toLowerCase()]:undefined}function lu(n){var r={},t;for(var i in n)ft(n,i)&&(t=p(i),t&&(r[t]=n[i]));return r}function pt(n,t){return function(r){return r!=null?(au(this,n,r),i.updateOffset(this,t),this):si(this,n)}}function si(n,t){return n._d[\"get\"+(n._isUTC?\"UTC\":\"\")+t]()}function au(n,t,i){return n._d[\"set\"+(n._isUTC?\"UTC\":\"\")+t](i)}function vu(n,t){var i;if(typeof n==\"object\")for(i in n)this.set(i,n[i]);else if(n=p(n),typeof this[n]==\"function\")return this[n](t);return this}function tr(n,t,i){var r=\"\"+Math.abs(n),u=t-r.length,f=n>=0;return(f?i?\"+\":\"\":\"-\")+Math.pow(10,Math.max(0,u)).toString().substr(1)+r}function r(n,t,i,r){var u=r;typeof r==\"string\"&&(u=function(){return this[r]()});n&&(wt[n]=u);t&&(wt[t[0]]=function(){return tr(u.apply(this,arguments),t[1],t[2])});i&&(wt[i]=function(){return this.localeData().ordinal(u.apply(this,arguments),n)})}function co(n){return n.match(/\\[[\\s\\S]/)?n.replace(/^\\[|\\]$/g,\"\"):n.replace(/\\\\/g,\"\")}function lo(n){for(var i=n.match(yu),t=0,r=i.length;t=0&&hi.test(n);)n=n.replace(hi,r),hi.lastIndex=0,i-=1;return n}function ao(n){return typeof n==\"function\"&&Object.prototype.toString.call(n)===\"[object Function]\"}function t(n,t,i){er[n]=ao(t)?t:function(n){return n&&i?i:t}}function vo(n,t){return ft(er,n)?er[n](t._strict,t._locale):new RegExp(yo(n))}function yo(n){return n.replace(\"\\\\\",\"\").replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,function(n,t,i,r,u){return t||i||r||u}).replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")}function c(n,t){var i,r=t;for(typeof n==\"string\"&&(n=[n]),typeof t==\"number\"&&(r=function(n,i){i[t]=s(n)}),i=0;i11?g:t[k]<1||t[k]>sr(t[b],t[g])?k:t[a]<0||t[a]>24||t[a]===24&&(t[st]!==0||t[ht]!==0||t[ct]!==0)?a:t[st]<0||t[st]>59?st:t[ht]<0||t[ht]>59?ht:t[ct]<0||t[ct]>999?ct:-1,e(n)._overflowDayOfYear&&(ik)&&(i=k),e(n).overflow=i),n}function tf(n){i.suppressDeprecationWarnings===!1&&typeof console!=\"undefined\"&&console.warn&&console.warn(\"Deprecation warning: \"+n)}function w(n,t){var i=!0;return ei(function(){return i&&(tf(n+\"\\n\"+(new Error).stack),i=!1),t.apply(this,arguments)},t)}function ns(n,t){cr[n]||(tf(t),cr[n]=!0)}function rf(n){var t,i,r=n._i,u=ts.exec(r);if(u){for(e(n).iso=!0,t=0,i=lr.length;tf&&(r-=7),r0?n:n-1,dayOfYear:f>0?f:uf(n-1)+f}}function as(n){var t=Math.round((this.clone().startOf(\"day\")-this.clone().startOf(\"year\"))/864e5)+1;return n==null?t:this.add(n-t,\"d\")}function bt(n,t,i){return n!=null?n:t!=null?t:i}function vs(n){var t=new Date;return n._useUTC?[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]:[t.getFullYear(),t.getMonth(),t.getDate()]}function pr(n){var t,i,r=[],u,f;if(!n._d){for(u=vs(n),n._w&&n._a[k]==null&&n._a[g]==null&&ys(n),n._dayOfYear&&(f=bt(n._a[b],u[b]),n._dayOfYear>uf(f)&&(e(n)._overflowDayOfYear=!0),i=vr(f,0,n._dayOfYear),n._a[g]=i.getUTCMonth(),n._a[k]=i.getUTCDate()),t=0;t<3&&n._a[t]==null;++t)n._a[t]=r[t]=u[t];for(;t<7;t++)n._a[t]=r[t]=n._a[t]==null?t===2?1:0:n._a[t];n._a[a]===24&&n._a[st]===0&&n._a[ht]===0&&n._a[ct]===0&&(n._nextDay=!0,n._a[a]=0);n._d=(n._useUTC?vr:us).apply(null,r);n._tzm!=null&&n._d.setUTCMinutes(n._d.getUTCMinutes()-n._tzm);n._nextDay&&(n._a[a]=24)}}function ys(n){var t,e,u,r,i,f,s;t=n._w;t.GG!=null||t.W!=null||t.E!=null?(i=1,f=4,e=bt(t.GG,n._a[b],lt(o(),1,4).year),u=bt(t.W,1),r=bt(t.E,1)):(i=n._locale._week.dow,f=n._locale._week.doy,e=bt(t.gg,n._a[b],lt(o(),i,f).year),u=bt(t.w,1),t.d!=null?(r=t.d,r0&&e(n).unusedInput.push(s),t=t.slice(t.indexOf(r)+r.length),h+=r.length),wt[u]?(r?e(n).empty=!1:e(n).unusedTokens.push(u),po(u,r,n)):n._strict&&!r&&e(n).unusedTokens.push(u);e(n).charsLeftOver=c-h;t.length>0&&e(n).unusedInput.push(t);e(n).bigHour===!0&&n._a[a]<=12&&n._a[a]>0&&(e(n).bigHour=undefined);n._a[a]=ps(n._locale,n._a[a],n._meridiem);pr(n);hr(n)}function ps(n,t,i){var r;return i==null?t:n.meridiemHour!=null?n.meridiemHour(t,i):n.isPM!=null?(r=n.isPM(i),r&&t<12&&(t+=12),r||t!==12||(t=0),t):t}function ws(n){var t,f,u,r,i;if(n._f.length===0){e(n).invalidFormat=!0;n._d=new Date(NaN);return}for(r=0;rthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function sh(){var n,t;return typeof this._isDSTShifted!=\"undefined\"?this._isDSTShifted:(n={},gi(n,this),n=of(n),n._a?(t=n._isUTC?kt(n._a):o(n._a),this._isDSTShifted=this.isValid()&&eu(n._a,t.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted)}function hh(){return!this._isUTC}function ch(){return this._isUTC}function yf(){return this._isUTC&&this._offset===0}function it(n,t){var i=n,r=null,u,f,e;return br(n)?i={ms:n._milliseconds,d:n._days,M:n._months}:typeof n==\"number\"?(i={},t?i[t]=n:i.milliseconds=n):(r=pf.exec(n))?(u=r[1]===\"-\"?-1:1,i={y:0,d:s(r[k])*u,h:s(r[a])*u,m:s(r[st])*u,s:s(r[ht])*u,ms:s(r[ct])*u}):(r=wf.exec(n))?(u=r[1]===\"-\"?-1:1,i={y:at(r[2],u),M:at(r[3],u),d:at(r[4],u),h:at(r[5],u),m:at(r[6],u),s:at(r[7],u),w:at(r[8],u)}):i==null?i={}:typeof i==\"object\"&&(\"from\"in i||\"to\"in i)&&(e=lh(o(i.from),o(i.to)),i={},i.ms=e.milliseconds,i.M=e.months),f=new pi(i),br(n)&&ft(n,\"_locale\")&&(f._locale=n._locale),f}function at(n,t){var i=n&&parseFloat(n.replace(\",\",\".\"));return(isNaN(i)?0:i)*t}function bf(n,t){var i={milliseconds:0,months:0};return i.months=t.month()-n.month()+(t.year()-n.year())*12,n.clone().add(i.months,\"M\").isAfter(t)&&--i.months,i.milliseconds=+t-+n.clone().add(i.months,\"M\"),i}function lh(n,t){var i;return t=dr(t,n),n.isBefore(t)?i=bf(n,t):(i=bf(t,n),i.milliseconds=-i.milliseconds,i.months=-i.months),i}function kf(n,t){return function(i,r){var u,f;return r===null||isNaN(+r)||(ns(t,\"moment().\"+t+\"(period, number) is deprecated. Please use moment().\"+t+\"(number, period).\"),f=i,i=r,r=f),i=typeof i==\"string\"?+i:i,u=it(i,r),df(this,u,n),this}}function df(n,t,r,u){var o=t._milliseconds,f=t._days,e=t._months;u=u==null?!0:u;o&&n._d.setTime(+n._d+o*r);f&&au(n,\"Date\",si(n,\"Date\")+f*r);e&&gu(n,si(n,\"Month\")+e*r);u&&i.updateOffset(n,f||e)}function ah(n,t){var r=n||o(),f=dr(r,this).startOf(\"day\"),i=this.diff(f,\"days\",!0),u=i<-6?\"sameElse\":i<-1?\"lastWeek\":i<0?\"lastDay\":i<1?\"sameDay\":i<2?\"nextDay\":i<7?\"nextWeek\":\"sameElse\";return this.format(t&&t[u]||this.localeData().calendar(u,this,o(r)))}function vh(){return new dt(this)}function yh(n,t){var i;return t=p(typeof t!=\"undefined\"?t:\"millisecond\"),t===\"millisecond\"?(n=tt(n)?n:o(n),+this>+n):(i=tt(n)?+n:+o(n),i<+this.clone().startOf(t))}function ph(n,t){var i;return t=p(typeof t!=\"undefined\"?t:\"millisecond\"),t===\"millisecond\"?(n=tt(n)?n:o(n),+this<+n):(i=tt(n)?+n:+o(n),+this.clone().endOf(t)11?i?\"pm\":\"PM\":i?\"am\":\"AM\"}function hl(n,t){t[ct]=s((\"0.\"+n)*1e3)}function cl(){return this._isUTC?\"UTC\":\"\"}function ll(){return this._isUTC?\"Coordinated Universal Time\":\"\"}function al(n){return o(n*1e3)}function vl(){return o.apply(null,arguments).parseZone()}function yl(n,t,i){var r=this._calendar[n];return typeof r==\"function\"?r.call(t,i):r}function pl(n){var t=this._longDateFormat[n],i=this._longDateFormat[n.toUpperCase()];return t||!i?t:(this._longDateFormat[n]=i.replace(/MMMM|MM|DD|dddd/g,function(n){return n.slice(1)}),this._longDateFormat[n])}function wl(){return this._invalidDate}function bl(n){return this._ordinal.replace(\"%d\",n)}function no(n){return n}function kl(n,t,i,r){var u=this._relativeTime[i];return typeof u==\"function\"?u(n,t,i,r):u.replace(/%d/i,n)}function dl(n,t){var i=this._relativeTime[n>0?\"future\":\"past\"];return typeof i==\"function\"?i(t):i.replace(/%s/i,t)}function gl(n){var t;for(var i in n)t=n[i],typeof t==\"function\"?this[i]=t:this[\"_\"+i]=t;this._ordinalParseLenient=new RegExp(this._ordinalParse.source+\"|\"+/\\d{1,2}/.source)}function io(n,t,i,r){var u=ot(),f=kt().set(r,t);return u[i](f,n)}function ri(n,t,i,r,u){if(typeof n==\"number\"&&(t=n,n=undefined),n=n||\"\",t!=null)return io(n,t,i,u);for(var e=[],f=0;f=0&&n>=0&&t>=0||r<=0&&n<=0&&t<=0||(r+=uo(iu(t)+n)*864e5,n=0,t=0),i.milliseconds=r%1e3,u=v(r/1e3),i.seconds=u%60,f=v(u/60),i.minutes=f%60,e=v(f/60),i.hours=e%24,n+=v(e/24),o=v(fo(n)),t+=o,n-=uo(iu(o)),s=v(t/12),t%=12,i.days=n,i.months=t,i.years=s,this}function fo(n){return n*4800/146097}function iu(n){return n*146097/4800}function ha(n){var t,r,i=this._milliseconds;if(n=p(n),n===\"month\"||n===\"year\")return t=this._days+i/864e5,r=this._months+fo(t),n===\"month\"?r:r/12;t=this._days+Math.round(iu(this._months));switch(n){case\"week\":return t/7+i/6048e5;case\"day\":return t+i/864e5;case\"hour\":return t*24+i/36e5;case\"minute\":return t*1440+i/6e4;case\"second\":return t*86400+i/1e3;case\"millisecond\":return Math.floor(t*864e5)+i;default:throw new Error(\"Unknown unit \"+n);}}function ca(){return this._milliseconds+this._days*864e5+this._months%12*2592e6+s(this._months/12)*31536e6}function ut(n){return function(){return this.as(n)}}function da(n){return n=p(n),this[n+\"s\"]()}function vt(n){return function(){return this._data[n]}}function ev(){return v(this.days()/7)}function ov(n,t,i,r,u){return u.relativeTime(t||1,!!i,n,r)}function sv(n,t,i){var r=it(n).abs(),h=yt(r.as(\"s\")),f=yt(r.as(\"m\")),e=yt(r.as(\"h\")),o=yt(r.as(\"d\")),s=yt(r.as(\"M\")),c=yt(r.as(\"y\")),u=h0,u[4]=i,ov.apply(null,u)}function hv(n,t){return nt[n]===undefined?!1:t===undefined?nt[n]:(nt[n]=t,!0)}function cv(n){var t=this.localeData(),i=sv(this,!n,t);return n&&(i=t.pastFuture(+this,i)),t.postformat(i)}function ki(){var t=bi(this._milliseconds)/1e3,a=bi(this._days),i=bi(this._months),n,e,o;n=v(t/60);e=v(n/60);t%=60;n%=60;o=v(i/12);i%=12;var s=o,h=i,c=a,r=e,u=n,f=t,l=this.asSeconds();return l?(l<0?\"-\":\"\")+\"P\"+(s?s+\"Y\":\"\")+(h?h+\"M\":\"\")+(c?c+\"D\":\"\")+(r||u||f?\"T\":\"\")+(r?r+\"H\":\"\")+(u?u+\"M\":\"\")+(f?f+\"S\":\"\"):\"P0D\"}var ru,di=i.momentProperties=[],nr=!1,et={},oi,ni={},yu=/(\\[[^\\[]*\\])|(\\\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,hi=/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,ir={},wt={},wu=/\\d/,y=/\\d\\d/,bu=/\\d{3}/,ur=/\\d{4}/,ci=/[+-]?\\d{6}/,h=/\\d\\d?/,li=/\\d{1,3}/,fr=/\\d{1,4}/,ai=/[+-]?\\d{1,6}/,vi=/[+-]?\\d+/,yi=/Z|[+-]\\d\\d:?\\d\\d/gi,ti=/[0-9]*['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+|[\\u0600-\\u06FF\\/]+(\\s*?[\\u0600-\\u06FF]+){1,2}/i,er={},or={},b=0,g=1,k=2,a=3,st=4,ht=5,ct=6,ku,du,cr,yr,ef,hf,cf,vf,pf,wf,gf,ne,nu,tu,fe,ee,oe,ce,le,ae,ve,rt,ye,n,pe,we,be,ke,de,ge,to,u,d,yt,nt,bi,f;r(\"M\",[\"MM\",2],\"Mo\",function(){return this.month()+1});r(\"MMM\",0,0,function(n){return this.localeData().monthsShort(this,n)});r(\"MMMM\",0,0,function(n){return this.localeData().months(this,n)});l(\"month\",\"M\");t(\"M\",h);t(\"MM\",h,y);t(\"MMM\",ti);t(\"MMMM\",ti);c([\"M\",\"MM\"],function(n,t){t[g]=s(n)-1});c([\"MMM\",\"MMMM\"],function(n,t,i,r){var u=i._locale.monthsParse(n,r,i._strict);u!=null?t[g]=u:e(i).invalidMonth=n});ku=\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\");du=\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\");cr={};i.suppressDeprecationWarnings=!1;var ts=/^\\s*(?:[+-]\\d{6}|\\d{4})-(?:(\\d\\d-\\d\\d)|(W\\d\\d$)|(W\\d\\d-\\d)|(\\d\\d\\d))((T| )(\\d\\d(:\\d\\d(:\\d\\d(\\.\\d+)?)?)?)?([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,lr=[[\"YYYYYY-MM-DD\",/[+-]\\d{6}-\\d{2}-\\d{2}/],[\"YYYY-MM-DD\",/\\d{4}-\\d{2}-\\d{2}/],[\"GGGG-[W]WW-E\",/\\d{4}-W\\d{2}-\\d/],[\"GGGG-[W]WW\",/\\d{4}-W\\d{2}/],[\"YYYY-DDD\",/\\d{4}-\\d{3}/]],ar=[[\"HH:mm:ss.SSSS\",/(T| )\\d\\d:\\d\\d:\\d\\d\\.\\d+/],[\"HH:mm:ss\",/(T| )\\d\\d:\\d\\d:\\d\\d/],[\"HH:mm\",/(T| )\\d\\d:\\d\\d/],[\"HH\",/(T| )\\d\\d/]],is=/^\\/?Date\\((\\-?\\d+)/i;for(i.createFromInputFallback=w(\"moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.\",function(n){n._d=new Date(n._i+(n._useUTC?\" UTC\":\"\"))}),r(0,[\"YY\",2],0,function(){return this.year()%100}),r(0,[\"YYYY\",4],0,\"year\"),r(0,[\"YYYYY\",5],0,\"year\"),r(0,[\"YYYYYY\",6,!0],0,\"year\"),l(\"year\",\"y\"),t(\"Y\",vi),t(\"YY\",h,y),t(\"YYYY\",fr,ur),t(\"YYYYY\",ai,ci),t(\"YYYYYY\",ai,ci),c([\"YYYYY\",\"YYYYYY\"],b),c(\"YYYY\",function(n,t){t[b]=n.length===2?i.parseTwoDigitYear(n):s(n)}),c(\"YY\",function(n,t){t[b]=i.parseTwoDigitYear(n)}),i.parseTwoDigitYear=function(n){return s(n)+(s(n)>68?1900:2e3)},yr=pt(\"FullYear\",!1),r(\"w\",[\"ww\",2],\"wo\",\"week\"),r(\"W\",[\"WW\",2],\"Wo\",\"isoWeek\"),l(\"week\",\"w\"),l(\"isoWeek\",\"W\"),t(\"w\",h),t(\"ww\",h,y),t(\"W\",h),t(\"WW\",h,y),ii([\"w\",\"ww\",\"W\",\"WW\"],function(n,t,i,r){t[r.substr(0,1)]=s(n)}),ef={dow:0,doy:6},r(\"DDD\",[\"DDDD\",3],\"DDDo\",\"dayOfYear\"),l(\"dayOfYear\",\"DDD\"),t(\"DDD\",li),t(\"DDDD\",bu),c([\"DDD\",\"DDDD\"],function(n,t,i){i._dayOfYear=s(n)}),i.ISO_8601=function(){},hf=w(\"moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548\",function(){var n=o.apply(null,arguments);return nthis?this:n}),af(\"Z\",\":\"),af(\"ZZ\",\"\"),t(\"Z\",yi),t(\"ZZ\",yi),c([\"Z\",\"ZZ\"],function(n,t,i){i._useUTC=!0;i._tzm=kr(n)}),vf=/([\\+\\-]|\\d\\d)/gi,i.updateOffset=function(){},pf=/(\\-)?(?:(\\d*)\\.)?(\\d+)\\:(\\d+)(?:\\:(\\d+)\\.?(\\d{3})?)?/,wf=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,it.fn=pi.prototype,gf=kf(1,\"add\"),ne=kf(-1,\"subtract\"),i.defaultFormat=\"YYYY-MM-DDTHH:mm:ssZ\",nu=w(\"moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.\",function(n){return n===undefined?this.localeData():this.locale(n)}),r(0,[\"gg\",2],0,function(){return this.weekYear()%100}),r(0,[\"GG\",2],0,function(){return this.isoWeekYear()%100}),wi(\"gggg\",\"weekYear\"),wi(\"ggggg\",\"weekYear\"),wi(\"GGGG\",\"isoWeekYear\"),wi(\"GGGGG\",\"isoWeekYear\"),l(\"weekYear\",\"gg\"),l(\"isoWeekYear\",\"GG\"),t(\"G\",vi),t(\"g\",vi),t(\"GG\",h,y),t(\"gg\",h,y),t(\"GGGG\",fr,ur),t(\"gggg\",fr,ur),t(\"GGGGG\",ai,ci),t(\"ggggg\",ai,ci),ii([\"gggg\",\"ggggg\",\"GGGG\",\"GGGGG\"],function(n,t,i,r){t[r.substr(0,2)]=s(n)}),ii([\"gg\",\"GG\"],function(n,t,r,u){t[u]=i.parseTwoDigitYear(n)}),r(\"Q\",0,0,\"quarter\"),l(\"quarter\",\"Q\"),t(\"Q\",wu),c(\"Q\",function(n,t){t[g]=(s(n)-1)*3}),r(\"D\",[\"DD\",2],\"Do\",\"date\"),l(\"date\",\"D\"),t(\"D\",h),t(\"DD\",h,y),t(\"Do\",function(n,t){return n?t._ordinalParse:t._ordinalParseLenient}),c([\"D\",\"DD\"],k),c(\"Do\",function(n,t){t[k]=s(n.match(h)[0],10)}),tu=pt(\"Date\",!0),r(\"d\",0,\"do\",\"day\"),r(\"dd\",0,0,function(n){return this.localeData().weekdaysMin(this,n)}),r(\"ddd\",0,0,function(n){return this.localeData().weekdaysShort(this,n)}),r(\"dddd\",0,0,function(n){return this.localeData().weekdays(this,n)}),r(\"e\",0,0,\"weekday\"),r(\"E\",0,0,\"isoWeekday\"),l(\"day\",\"d\"),l(\"weekday\",\"e\"),l(\"isoWeekday\",\"E\"),t(\"d\",h),t(\"e\",h),t(\"E\",h),t(\"dd\",ti),t(\"ddd\",ti),t(\"dddd\",ti),ii([\"dd\",\"ddd\",\"dddd\"],function(n,t,i){var r=i._locale.weekdaysParse(n);r!=null?t.d=r:e(i).invalidWeekday=n}),ii([\"d\",\"e\",\"E\"],function(n,t,i,r){t[r]=s(n)}),fe=\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),ee=\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),oe=\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),r(\"H\",[\"HH\",2],0,\"hour\"),r(\"h\",[\"hh\",2],0,function(){return this.hours()%12||12}),se(\"a\",!0),se(\"A\",!1),l(\"hour\",\"h\"),t(\"a\",he),t(\"A\",he),t(\"H\",h),t(\"h\",h),t(\"HH\",h,y),t(\"hh\",h,y),c([\"H\",\"HH\"],a),c([\"a\",\"A\"],function(n,t,i){i._isPm=i._locale.isPM(n);i._meridiem=n}),c([\"h\",\"hh\"],function(n,t,i){t[a]=s(n);e(i).bigHour=!0}),ce=/[ap]\\.?m?\\.?/i,le=pt(\"Hours\",!0),r(\"m\",[\"mm\",2],0,\"minute\"),l(\"minute\",\"m\"),t(\"m\",h),t(\"mm\",h,y),c([\"m\",\"mm\"],st),ae=pt(\"Minutes\",!1),r(\"s\",[\"ss\",2],0,\"second\"),l(\"second\",\"s\"),t(\"s\",h),t(\"ss\",h,y),c([\"s\",\"ss\"],ht),ve=pt(\"Seconds\",!1),r(\"S\",0,0,function(){return~~(this.millisecond()/100)}),r(0,[\"SS\",2],0,function(){return~~(this.millisecond()/10)}),r(0,[\"SSS\",3],0,\"millisecond\"),r(0,[\"SSSS\",4],0,function(){return this.millisecond()*10}),r(0,[\"SSSSS\",5],0,function(){return this.millisecond()*100}),r(0,[\"SSSSSS\",6],0,function(){return this.millisecond()*1e3}),r(0,[\"SSSSSSS\",7],0,function(){return this.millisecond()*1e4}),r(0,[\"SSSSSSSS\",8],0,function(){return this.millisecond()*1e5}),r(0,[\"SSSSSSSSS\",9],0,function(){return this.millisecond()*1e6}),l(\"millisecond\",\"ms\"),t(\"S\",li,wu),t(\"SS\",li,y),t(\"SSS\",li,bu),rt=\"SSSS\";rt.length<=9;rt+=\"S\")t(rt,/\\d+/);for(rt=\"S\";rt.length<=9;rt+=\"S\")c(rt,hl);ye=pt(\"Milliseconds\",!1);r(\"z\",0,0,\"zoneAbbr\");r(\"zz\",0,0,\"zoneName\");n=dt.prototype;n.add=gf;n.calendar=ah;n.clone=vh;n.diff=kh;n.endOf=ec;n.format=nc;n.from=tc;n.fromNow=ic;n.to=rc;n.toNow=uc;n.get=vu;n.invalidAt=yc;n.isAfter=yh;n.isBefore=ph;n.isBetween=wh;n.isSame=bh;n.isValid=ac;n.lang=nu;n.locale=ie;n.localeData=re;n.max=cf;n.min=hf;n.parsingFlags=vc;n.set=vu;n.startOf=fc;n.subtract=ne;n.toArray=cc;n.toObject=lc;n.toDate=hc;n.toISOString=te;n.toJSON=te;n.toString=gh;n.unix=sc;n.valueOf=oc;n.year=yr;n.isLeapYear=fs;n.weekYear=pc;n.isoWeekYear=wc;n.quarter=n.quarters=dc;n.month=nf;n.daysInMonth=go;n.week=n.weeks=hs;n.isoWeek=n.isoWeeks=cs;n.weeksInYear=kc;n.isoWeeksInYear=bc;n.date=tu;n.day=n.days=ul;n.weekday=fl;n.isoWeekday=el;n.dayOfYear=as;n.hour=n.hours=le;n.minute=n.minutes=ae;n.second=n.seconds=ve;n.millisecond=n.milliseconds=ye;n.utcOffset=th;n.utc=rh;n.local=uh;n.parseZone=fh;n.hasAlignedHourOffset=eh;n.isDST=oh;n.isDSTShifted=sh;n.isLocal=hh;n.isUtcOffset=ch;n.isUtc=yf;n.isUTC=yf;n.zoneAbbr=cl;n.zoneName=ll;n.dates=w(\"dates accessor is deprecated. Use date instead.\",tu);n.months=w(\"months accessor is deprecated. Use month instead\",nf);n.years=w(\"years accessor is deprecated. Use year instead\",yr);n.zone=w(\"moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779\",ih);pe=n;we={sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"};be={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"};ke=\"Invalid date\";de=\"%d\";ge=/\\d{1,2}/;to={future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"};u=ou.prototype;u._calendar=we;u.calendar=yl;u._longDateFormat=be;u.longDateFormat=pl;u._invalidDate=ke;u.invalidDate=wl;u._ordinal=de;u.ordinal=bl;u._ordinalParse=ge;u.preparse=no;u.postformat=no;u._relativeTime=to;u.relativeTime=kl;u.pastFuture=dl;u.set=gl;u.months=wo;u._months=ku;u.monthsShort=bo;u._monthsShort=du;u.monthsParse=ko;u.week=es;u._week=ef;u.firstDayOfYear=ss;u.firstDayOfWeek=os;u.weekdays=nl;u._weekdays=fe;u.weekdaysMin=il;u._weekdaysMin=oe;u.weekdaysShort=tl;u._weekdaysShort=ee;u.weekdaysParse=rl;u.isPM=ol;u._meridiemParse=ce;u.meridiem=sl;gt(\"en\",{ordinalParse:/\\d{1,2}(th|st|nd|rd)/,ordinal:function(n){var t=n%10,i=s(n%100/10)===1?\"th\":t===1?\"st\":t===2?\"nd\":t===3?\"rd\":\"th\";return n+i}});i.lang=w(\"moment.lang is deprecated. Use moment.locale instead.\",gt);i.langData=w(\"moment.langData is deprecated. Use moment.localeData instead.\",ot);d=Math.abs;var la=ut(\"ms\"),aa=ut(\"s\"),va=ut(\"m\"),ya=ut(\"h\"),pa=ut(\"d\"),wa=ut(\"w\"),ba=ut(\"M\"),ka=ut(\"y\");var ga=vt(\"milliseconds\"),nv=vt(\"seconds\"),tv=vt(\"minutes\"),iv=vt(\"hours\"),rv=vt(\"days\"),uv=vt(\"months\"),fv=vt(\"years\");return yt=Math.round,nt={s:45,m:45,h:22,d:26,M:11},bi=Math.abs,f=pi.prototype,f.abs=fa,f.add=ea,f.subtract=oa,f.as=ha,f.asMilliseconds=la,f.asSeconds=aa,f.asMinutes=va,f.asHours=ya,f.asDays=pa,f.asWeeks=wa,f.asMonths=ba,f.asYears=ka,f.valueOf=ca,f._bubble=sa,f.get=da,f.milliseconds=ga,f.seconds=nv,f.minutes=tv,f.hours=iv,f.days=rv,f.weeks=ev,f.months=uv,f.years=fv,f.humanize=cv,f.toISOString=ki,f.toString=ki,f.toJSON=ki,f.locale=ie,f.localeData=re,f.toIsoString=w(\"toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)\",ki),f.lang=nu,r(\"X\",0,0,\"unix\"),r(\"x\",0,0,\"valueOf\"),t(\"x\",vi),t(\"X\",/[+-]?\\d+(\\.\\d{1,3})?/),c(\"X\",function(n,t,i){i._d=new Date(parseFloat(n,10)*1e3)}),c(\"x\",function(n,t,i){i._d=new Date(s(n))}),i.version=\"2.10.6\",eo(o),i.fn=pe,i.min=gs,i.max=nh,i.utc=kt,i.unix=al,i.months=na,i.isDate=fi,i.locale=gt,i.invalid=fu,i.duration=it,i.isMoment=tt,i.weekdays=ia,i.parseZone=vl,i.localeData=ot,i.isDuration=br,i.monthsShort=ta,i.weekdaysMin=ua,i.defineLocale=cu,i.weekdaysShort=ra,i.normalizeUnits=p,i.relativeTimeThreshold=hv,i});\r\n//# sourceMappingURL=moment.min.js.map\r\n","/*! version : 4.17.37 - custom for JQuery 3.x\r\n =========================================================\r\n bootstrap-datetimejs\r\n https://github.com/Eonasdan/bootstrap-datetimepicker\r\n Copyright (c) 2015 Jonathan Peterson\r\n =========================================================\r\n */\r\n/*\r\n The MIT License (MIT)\r\n\r\n Copyright (c) 2015 Jonathan Peterson\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining a copy\r\n of this software and associated documentation files (the \"Software\"), to deal\r\n in the Software without restriction, including without limitation the rights\r\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n copies of the Software, and to permit persons to whom the Software is\r\n furnished to do so, subject to the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be included in\r\n all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n THE SOFTWARE.\r\n */\r\n/*global define:false */\r\n/*global exports:false */\r\n/*global require:false */\r\n/*global jQuery:false */\r\n/*global moment:false */\r\n(function (factory) {\r\n 'use strict';\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD is used - Register as an anonymous module.\r\n define(['jquery', 'moment'], factory);\r\n } else if (typeof exports === 'object') {\r\n factory(require('jquery'), require('moment'));\r\n } else {\r\n // Neither AMD nor CommonJS used. Use global variables.\r\n if (typeof jQuery === 'undefined') {\r\n throw 'bootstrap-datetimepicker requires jQuery to be loaded first';\r\n }\r\n if (typeof moment === 'undefined') {\r\n throw 'bootstrap-datetimepicker requires Moment.js to be loaded first';\r\n }\r\n factory(jQuery, moment);\r\n }\r\n}(function ($, moment) {\r\n 'use strict';\r\n if (!moment) {\r\n throw new Error('bootstrap-datetimepicker requires Moment.js to be loaded first');\r\n }\r\n\r\n var dateTimePicker = function (element, options) {\r\n var picker = {},\r\n date,\r\n viewDate,\r\n unset = true,\r\n input,\r\n component = false,\r\n widget = false,\r\n use24Hours,\r\n minViewModeNumber = 0,\r\n actualFormat,\r\n parseFormats,\r\n currentViewMode,\r\n datePickerModes = [\r\n {\r\n clsName: 'days',\r\n navFnc: 'M',\r\n navStep: 1\r\n },\r\n {\r\n clsName: 'months',\r\n navFnc: 'y',\r\n navStep: 1\r\n },\r\n {\r\n clsName: 'years',\r\n navFnc: 'y',\r\n navStep: 10\r\n },\r\n {\r\n clsName: 'decades',\r\n navFnc: 'y',\r\n navStep: 100\r\n }\r\n ],\r\n viewModes = ['days', 'months', 'years', 'decades'],\r\n verticalModes = ['top', 'bottom', 'auto'],\r\n horizontalModes = ['left', 'right', 'auto'],\r\n toolbarPlacements = ['default', 'top', 'bottom'],\r\n keyMap = {\r\n 'up': 38,\r\n 38: 'up',\r\n 'down': 40,\r\n 40: 'down',\r\n 'left': 37,\r\n 37: 'left',\r\n 'right': 39,\r\n 39: 'right',\r\n 'tab': 9,\r\n 9: 'tab',\r\n 'escape': 27,\r\n 27: 'escape',\r\n 'enter': 13,\r\n 13: 'enter',\r\n 'pageUp': 33,\r\n 33: 'pageUp',\r\n 'pageDown': 34,\r\n 34: 'pageDown',\r\n 'shift': 16,\r\n 16: 'shift',\r\n 'control': 17,\r\n 17: 'control',\r\n 'space': 32,\r\n 32: 'space',\r\n 't': 84,\r\n 84: 't',\r\n 'delete': 46,\r\n 46: 'delete'\r\n },\r\n keyState = {},\r\n\r\n /********************************************************************************\r\n *\r\n * Private functions\r\n *\r\n ********************************************************************************/\r\n getMoment = function (d) {\r\n var tzEnabled = false,\r\n returnMoment,\r\n currentZoneOffset,\r\n incomingZoneOffset,\r\n timeZoneIndicator,\r\n dateWithTimeZoneInfo;\r\n\r\n if (moment.tz !== undefined && options.timeZone !== undefined && options.timeZone !== null && options.timeZone !== '') {\r\n tzEnabled = true;\r\n }\r\n if (d === undefined || d === null) {\r\n if (tzEnabled) {\r\n returnMoment = moment().tz(options.timeZone).startOf('d');\r\n } else {\r\n returnMoment = moment().startOf('d');\r\n }\r\n } else {\r\n if (tzEnabled) {\r\n currentZoneOffset = moment().tz(options.timeZone).utcOffset();\r\n incomingZoneOffset = moment(d, parseFormats, options.useStrict).utcOffset();\r\n if (incomingZoneOffset !== currentZoneOffset) {\r\n timeZoneIndicator = moment().tz(options.timeZone).format('Z');\r\n dateWithTimeZoneInfo = moment(d, parseFormats, options.useStrict).format('YYYY-MM-DD[T]HH:mm:ss') + timeZoneIndicator;\r\n returnMoment = moment(dateWithTimeZoneInfo, parseFormats, options.useStrict).tz(options.timeZone);\r\n } else {\r\n returnMoment = moment(d, parseFormats, options.useStrict).tz(options.timeZone);\r\n }\r\n } else {\r\n returnMoment = moment(d, parseFormats, options.useStrict);\r\n }\r\n }\r\n return returnMoment;\r\n },\r\n isEnabled = function (granularity) {\r\n if (typeof granularity !== 'string' || granularity.length > 1) {\r\n throw new TypeError('isEnabled expects a single character string parameter');\r\n }\r\n switch (granularity) {\r\n case 'y':\r\n return actualFormat.indexOf('Y') !== -1;\r\n case 'M':\r\n return actualFormat.indexOf('M') !== -1;\r\n case 'd':\r\n return actualFormat.toLowerCase().indexOf('d') !== -1;\r\n case 'h':\r\n case 'H':\r\n return actualFormat.toLowerCase().indexOf('h') !== -1;\r\n case 'm':\r\n return actualFormat.indexOf('m') !== -1;\r\n case 's':\r\n return actualFormat.indexOf('s') !== -1;\r\n default:\r\n return false;\r\n }\r\n },\r\n hasTime = function () {\r\n return (isEnabled('h') || isEnabled('m') || isEnabled('s'));\r\n },\r\n\r\n hasDate = function () {\r\n return (isEnabled('y') || isEnabled('M') || isEnabled('d'));\r\n },\r\n\r\n getDatePickerTemplate = function () {\r\n var headTemplate = $('')\r\n .append($('')\r\n .append($('').addClass('prev').attr('data-action', 'previous')\r\n .append($('').addClass(options.icons.previous))\r\n )\r\n .append($('').addClass('picker-switch').attr('data-action', 'pickerSwitch').attr('colspan', (options.calendarWeeks ? '6' : '5')))\r\n .append($('').addClass('next').attr('data-action', 'next')\r\n .append($('').addClass(options.icons.next))\r\n )\r\n ),\r\n contTemplate = $('')\r\n .append($('')\r\n .append($('').attr('colspan', (options.calendarWeeks ? '8' : '7')))\r\n );\r\n\r\n return [\r\n $('
    ').addClass('datepicker-days').addClass('display-none')\r\n .append($('').addClass('table-condensed')\r\n .append(headTemplate)\r\n .append($(''))\r\n ),\r\n $('
    ').addClass('datepicker-months').addClass('display-none')\r\n .append($('
    ').addClass('table-condensed')\r\n .append(headTemplate.clone())\r\n .append(contTemplate.clone())\r\n ),\r\n $('
    ').addClass('datepicker-years').addClass('display-none')\r\n .append($('
    ').addClass('table-condensed')\r\n .append(headTemplate.clone())\r\n .append(contTemplate.clone())\r\n ),\r\n $('
    ').addClass('datepicker-decades').addClass('display-none')\r\n .append($('
    ').addClass('table-condensed')\r\n .append(headTemplate.clone())\r\n .append(contTemplate.clone())\r\n )\r\n ];\r\n },\r\n\r\n getTimePickerMainTemplate = function () {\r\n var topRow = $(''),\r\n middleRow = $(''),\r\n bottomRow = $('');\r\n\r\n if (isEnabled('h')) {\r\n topRow.append($('
    ')\r\n .append($('').attr({href: '#', tabindex: '-1', 'title': options.tooltips.incrementHour}).addClass('btn').attr('data-action', 'incrementHours')\r\n .append($('').addClass(options.icons.up))));\r\n middleRow.append($('')\r\n .append($('').addClass('timepicker-hour').attr({'data-time-component':'hours', 'title': options.tooltips.pickHour}).attr('data-action', 'showHours')));\r\n bottomRow.append($('')\r\n .append($('').attr({href: '#', tabindex: '-1', 'title': options.tooltips.decrementHour}).addClass('btn').attr('data-action', 'decrementHours')\r\n .append($('').addClass(options.icons.down))));\r\n }\r\n if (isEnabled('m')) {\r\n if (isEnabled('h')) {\r\n topRow.append($('').addClass('separator'));\r\n middleRow.append($('').addClass('separator').html(':'));\r\n bottomRow.append($('').addClass('separator'));\r\n }\r\n topRow.append($('')\r\n .append($('').attr({href: '#', tabindex: '-1', 'title': options.tooltips.incrementMinute}).addClass('btn').attr('data-action', 'incrementMinutes')\r\n .append($('').addClass(options.icons.up))));\r\n middleRow.append($('')\r\n .append($('').addClass('timepicker-minute').attr({'data-time-component': 'minutes', 'title': options.tooltips.pickMinute}).attr('data-action', 'showMinutes')));\r\n bottomRow.append($('')\r\n .append($('').attr({href: '#', tabindex: '-1', 'title': options.tooltips.decrementMinute}).addClass('btn').attr('data-action', 'decrementMinutes')\r\n .append($('').addClass(options.icons.down))));\r\n }\r\n if (isEnabled('s')) {\r\n if (isEnabled('m')) {\r\n topRow.append($('').addClass('separator'));\r\n middleRow.append($('').addClass('separator').html(':'));\r\n bottomRow.append($('').addClass('separator'));\r\n }\r\n topRow.append($('')\r\n .append($('').attr({href: '#', tabindex: '-1', 'title': options.tooltips.incrementSecond}).addClass('btn').attr('data-action', 'incrementSeconds')\r\n .append($('').addClass(options.icons.up))));\r\n middleRow.append($('')\r\n .append($('').addClass('timepicker-second').attr({'data-time-component': 'seconds', 'title': options.tooltips.pickSecond}).attr('data-action', 'showSeconds')));\r\n bottomRow.append($('')\r\n .append($('').attr({href: '#', tabindex: '-1', 'title': options.tooltips.decrementSecond}).addClass('btn').attr('data-action', 'decrementSeconds')\r\n .append($('').addClass(options.icons.down))));\r\n }\r\n\r\n if (!use24Hours) {\r\n topRow.append($('').addClass('separator'));\r\n middleRow.append($('')\r\n .append($('').addClass('separator'));\r\n }\r\n\r\n return $('
    ').addClass('timepicker-picker')\r\n .append($('').addClass('table-condensed')\r\n .append([topRow, middleRow, bottomRow]));\r\n },\r\n\r\n getTimePickerTemplate = function () {\r\n var hoursView = $('
    ').addClass('timepicker-hours')\r\n .append($('
    ').addClass('table-condensed')),\r\n minutesView = $('
    ').addClass('timepicker-minutes')\r\n .append($('
    ').addClass('table-condensed')),\r\n secondsView = $('
    ').addClass('timepicker-seconds')\r\n .append($('
    ').addClass('table-condensed')),\r\n ret = [getTimePickerMainTemplate()];\r\n\r\n if (isEnabled('h')) {\r\n ret.push(hoursView);\r\n }\r\n if (isEnabled('m')) {\r\n ret.push(minutesView);\r\n }\r\n if (isEnabled('s')) {\r\n ret.push(secondsView);\r\n }\r\n\r\n return ret;\r\n },\r\n\r\n getToolbar = function () {\r\n var row = [];\r\n if (options.showTodayButton) {\r\n row.push($('
    ').append($('').attr({'data-action':'today', 'title': options.tooltips.today}).append($('').addClass(options.icons.today))));\r\n }\r\n if (!options.sideBySide && hasDate() && hasTime()) {\r\n row.push($('').append($('').attr({'data-action':'togglePicker', 'title': options.tooltips.selectTime}).append($('').addClass(options.icons.time))));\r\n }\r\n if (options.showClear) {\r\n row.push($('').append($('').attr({'data-action':'clear', 'title': options.tooltips.clear}).append($('').addClass(options.icons.clear))));\r\n }\r\n if (options.showClose) {\r\n row.push($('').append($('').attr({'data-action':'close', 'title': options.tooltips.close}).append($('').addClass(options.icons.close))));\r\n }\r\n return $('').addClass('table-condensed').append($('').append($('').append(row)));\r\n },\r\n\r\n getTemplate = function () {\r\n var template = $('
    ').addClass('bootstrap-datetimepicker-widget dropdown-menu').addClass('display-none'),\r\n dateView = $('
    ').addClass('datepicker').append(getDatePickerTemplate()),\r\n timeView = $('
    ').addClass('timepicker').append(getTimePickerTemplate()),\r\n content = $('
      ').addClass('list-unstyled'),\r\n toolbar = $('
    • ').addClass('picker-switch' + (options.collapse ? ' accordion-toggle' : '')).append(getToolbar());\r\n\r\n if (options.inline) {\r\n template.removeClass('dropdown-menu');\r\n }\r\n\r\n if (use24Hours) {\r\n template.addClass('usetwentyfour');\r\n }\r\n if (isEnabled('s') && !use24Hours) {\r\n template.addClass('wider');\r\n }\r\n\r\n if (options.sideBySide && hasDate() && hasTime()) {\r\n template.addClass('timepicker-sbs');\r\n if (options.toolbarPlacement === 'top') {\r\n template.append(toolbar);\r\n }\r\n template.append(\r\n $('
      ').addClass('row')\r\n .append(dateView.addClass('col-md-6'))\r\n .append(timeView.addClass('col-md-6'))\r\n );\r\n if (options.toolbarPlacement === 'bottom') {\r\n template.append(toolbar);\r\n }\r\n return template;\r\n }\r\n\r\n if (options.toolbarPlacement === 'top') {\r\n content.append(toolbar);\r\n }\r\n if (hasDate()) {\r\n content.append($('
    • ').addClass((options.collapse && hasTime() ? 'collapse in' : '')).append(dateView));\r\n }\r\n if (options.toolbarPlacement === 'default') {\r\n content.append(toolbar);\r\n }\r\n if (hasTime()) {\r\n content.append($('
    • ').addClass((options.collapse && hasDate() ? 'collapse' : '')).append(timeView));\r\n }\r\n if (options.toolbarPlacement === 'bottom') {\r\n content.append(toolbar);\r\n }\r\n return template.append(content);\r\n },\r\n\r\n dataToOptions = function () {\r\n var eData,\r\n dataOptions = {};\r\n\r\n if (element.is('input') || options.inline) {\r\n eData = element.data();\r\n } else {\r\n eData = element.find('input').data();\r\n }\r\n\r\n if (eData.dateOptions && eData.dateOptions instanceof Object) {\r\n dataOptions = $.extend(true, dataOptions, eData.dateOptions);\r\n }\r\n\r\n $.each(options, function (key) {\r\n var attributeName = 'date' + key.charAt(0).toUpperCase() + key.slice(1);\r\n if (eData[attributeName] !== undefined) {\r\n dataOptions[key] = eData[attributeName];\r\n }\r\n });\r\n return dataOptions;\r\n },\r\n\r\n place = function () {\r\n var position = (component || element).position(),\r\n offset = (component || element).offset(),\r\n vertical = options.widgetPositioning.vertical,\r\n horizontal = options.widgetPositioning.horizontal,\r\n parent;\r\n\r\n if (options.widgetParent) {\r\n parent = options.widgetParent.append(widget);\r\n } else if (element.is('input')) {\r\n parent = element.after(widget).parent();\r\n } else if (options.inline) {\r\n parent = element.append(widget);\r\n return;\r\n } else {\r\n parent = element;\r\n element.children().first().after(widget);\r\n }\r\n\r\n // Top and bottom logic\r\n if (vertical === 'auto') {\r\n if (offset.top + widget.height() * 1.5 >= $(window).height() + $(window).scrollTop() &&\r\n widget.height() + element.outerHeight() < offset.top) {\r\n vertical = 'top';\r\n } else {\r\n vertical = 'bottom';\r\n }\r\n }\r\n\r\n // Left and right logic\r\n if (horizontal === 'auto') {\r\n if (parent.width() < offset.left + widget.outerWidth() / 2 &&\r\n offset.left + widget.outerWidth() > $(window).width()) {\r\n horizontal = 'right';\r\n } else {\r\n horizontal = 'left';\r\n }\r\n }\r\n\r\n if (vertical === 'top') {\r\n widget.addClass('top').removeClass('bottom');\r\n } else {\r\n widget.addClass('bottom').removeClass('top');\r\n }\r\n\r\n if (horizontal === 'right') {\r\n widget.addClass('pull-right');\r\n } else {\r\n widget.removeClass('pull-right');\r\n }\r\n\r\n // find the first parent element that has a relative css positioning\r\n if (parent.css('position') !== 'relative') {\r\n parent = parent.parents().filter(function () {\r\n return $(this).css('position') === 'relative';\r\n }).first();\r\n }\r\n\r\n if (parent.length === 0) {\r\n throw new Error('datetimepicker component should be placed within a relative positioned container');\r\n }\r\n\r\n widget.css({\r\n top: vertical === 'top' ? 'auto' : position.top + element.outerHeight(),\r\n bottom: vertical === 'top' ? position.top + element.outerHeight() : 'auto',\r\n left: horizontal === 'left' ? (parent === element ? 0 : position.left) : 'auto',\r\n right: horizontal === 'left' ? 'auto' : parent.outerWidth() - element.outerWidth() - (parent === element ? 0 : position.left)\r\n });\r\n },\r\n\r\n notifyEvent = function (e) {\r\n if (e.type === 'dp.change' && ((e.date && e.date.isSame(e.oldDate)) || (!e.date && !e.oldDate))) {\r\n return;\r\n }\r\n element.trigger(e);\r\n },\r\n\r\n viewUpdate = function (e) {\r\n if (e === 'y') {\r\n e = 'YYYY';\r\n }\r\n notifyEvent({\r\n type: 'dp.update',\r\n change: e,\r\n viewDate: viewDate.clone()\r\n });\r\n },\r\n\r\n showMode = function (dir) {\r\n if (!widget) {\r\n return;\r\n }\r\n if (dir) {\r\n currentViewMode = Math.max(minViewModeNumber, Math.min(3, currentViewMode + dir));\r\n }\r\n widget.find('.datepicker > div').addClass('display-none').hide().filter('.datepicker-' + datePickerModes[currentViewMode].clsName).removeClass('display-none').show();\r\n },\r\n\r\n fillDow = function () {\r\n var row = $('
    '),\r\n currentDate = viewDate.clone().startOf('w').startOf('d');\r\n\r\n if (options.calendarWeeks === true) {\r\n row.append($('');\r\n if (options.calendarWeeks) {\r\n row.append('');\r\n }\r\n html.push(row);\r\n }\r\n clsName = '';\r\n if (currentDate.isBefore(viewDate, 'M')) {\r\n clsName += ' old';\r\n }\r\n if (currentDate.isAfter(viewDate, 'M')) {\r\n clsName += ' new';\r\n }\r\n if (currentDate.isSame(date, 'd') && !unset) {\r\n clsName += ' active';\r\n }\r\n if (!isValid(currentDate, 'd')) {\r\n clsName += ' disabled';\r\n }\r\n if (currentDate.isSame(getMoment(), 'd')) {\r\n clsName += ' today';\r\n }\r\n if (currentDate.day() === 0 || currentDate.day() === 6) {\r\n clsName += ' weekend';\r\n }\r\n row.append('');\r\n currentDate.add(1, 'd');\r\n }\r\n\r\n daysView.find('tbody').empty().append(html);\r\n\r\n updateMonths();\r\n\r\n updateYears();\r\n\r\n updateDecades();\r\n },\r\n\r\n fillHours = function () {\r\n var table = widget.find('.timepicker-hours table'),\r\n currentHour = viewDate.clone().startOf('d'),\r\n html = [],\r\n row = $('');\r\n\r\n if (viewDate.hour() > 11 && !use24Hours) {\r\n currentHour.hour(12);\r\n }\r\n while (currentHour.isSame(viewDate, 'd') && (use24Hours || (viewDate.hour() < 12 && currentHour.hour() < 12) || viewDate.hour() > 11)) {\r\n if (currentHour.hour() % 4 === 0) {\r\n row = $('');\r\n html.push(row);\r\n }\r\n row.append('');\r\n currentHour.add(1, 'h');\r\n }\r\n table.empty().append(html);\r\n },\r\n\r\n fillMinutes = function () {\r\n var table = widget.find('.timepicker-minutes table'),\r\n currentMinute = viewDate.clone().startOf('h'),\r\n html = [],\r\n row = $(''),\r\n step = options.stepping === 1 ? 5 : options.stepping;\r\n\r\n while (viewDate.isSame(currentMinute, 'h')) {\r\n if (currentMinute.minute() % (step * 4) === 0) {\r\n row = $('');\r\n html.push(row);\r\n }\r\n row.append('');\r\n currentMinute.add(step, 'm');\r\n }\r\n table.empty().append(html);\r\n },\r\n\r\n fillSeconds = function () {\r\n var table = widget.find('.timepicker-seconds table'),\r\n currentSecond = viewDate.clone().startOf('m'),\r\n html = [],\r\n row = $('');\r\n\r\n while (viewDate.isSame(currentSecond, 'm')) {\r\n if (currentSecond.second() % 20 === 0) {\r\n row = $('');\r\n html.push(row);\r\n }\r\n row.append('');\r\n currentSecond.add(5, 's');\r\n }\r\n\r\n table.empty().append(html);\r\n },\r\n\r\n fillTime = function () {\r\n var toggle, newDate, timeComponents = widget.find('.timepicker span[data-time-component]');\r\n\r\n if (!use24Hours) {\r\n toggle = widget.find('.timepicker [data-action=togglePeriod]');\r\n newDate = date.clone().add((date.hours() >= 12) ? -12 : 12, 'h');\r\n\r\n toggle.text(date.format('A'));\r\n\r\n if (isValid(newDate, 'h')) {\r\n toggle.removeClass('disabled');\r\n } else {\r\n toggle.addClass('disabled');\r\n }\r\n }\r\n timeComponents.filter('[data-time-component=hours]').text(date.format(use24Hours ? 'HH' : 'hh'));\r\n timeComponents.filter('[data-time-component=minutes]').text(date.format('mm'));\r\n timeComponents.filter('[data-time-component=seconds]').text(date.format('ss'));\r\n\r\n fillHours();\r\n fillMinutes();\r\n fillSeconds();\r\n },\r\n\r\n update = function () {\r\n if (!widget) {\r\n return;\r\n }\r\n fillDate();\r\n fillTime();\r\n },\r\n\r\n setValue = function (targetMoment) {\r\n var oldDate = unset ? null : date;\r\n\r\n // case of calling setValue(null or false)\r\n if (!targetMoment) {\r\n unset = true;\r\n input.val('');\r\n element.data('date', '');\r\n notifyEvent({\r\n type: 'dp.change',\r\n date: false,\r\n oldDate: oldDate\r\n });\r\n update();\r\n return;\r\n }\r\n\r\n targetMoment = targetMoment.clone().locale(options.locale);\r\n\r\n if (options.stepping !== 1) {\r\n targetMoment.minutes((Math.round(targetMoment.minutes() / options.stepping) * options.stepping) % 60).seconds(0);\r\n }\r\n\r\n if (isValid(targetMoment)) {\r\n date = targetMoment;\r\n viewDate = date.clone();\r\n input.val(date.format(actualFormat));\r\n element.data('date', date.format(actualFormat));\r\n unset = false;\r\n update();\r\n notifyEvent({\r\n type: 'dp.change',\r\n date: date.clone(),\r\n oldDate: oldDate\r\n });\r\n } else {\r\n if (!options.keepInvalid) {\r\n input.val(unset ? '' : date.format(actualFormat));\r\n }\r\n notifyEvent({\r\n type: 'dp.error',\r\n date: targetMoment\r\n });\r\n }\r\n },\r\n\r\n hide = function () {\r\n ///Hides the widget. Possibly will emit dp.hide\r\n var transitioning = false;\r\n if (!widget) {\r\n return picker;\r\n }\r\n // Ignore event if in the middle of a picker transition\r\n widget.find('.collapse').each(function () {\r\n var collapseData = $(this).data('collapse');\r\n if (collapseData && collapseData.transitioning) {\r\n transitioning = true;\r\n return false;\r\n }\r\n return true;\r\n });\r\n if (transitioning) {\r\n return picker;\r\n }\r\n if (component && component.hasClass('btn')) {\r\n component.toggleClass('active');\r\n }\r\n widget.addClass('display-none').hide();\r\n\r\n $(window).off('resize', place);\r\n widget.off('click', '[data-action]');\r\n widget.off('mousedown', false);\r\n\r\n widget.remove();\r\n widget = false;\r\n\r\n notifyEvent({\r\n type: 'dp.hide',\r\n date: date.clone()\r\n });\r\n\r\n input.blur();\r\n\r\n return picker;\r\n },\r\n\r\n clear = function () {\r\n setValue(null);\r\n },\r\n\r\n /********************************************************************************\r\n *\r\n * Widget UI interaction functions\r\n *\r\n ********************************************************************************/\r\n actions = {\r\n next: function () {\r\n var navFnc = datePickerModes[currentViewMode].navFnc;\r\n viewDate.add(datePickerModes[currentViewMode].navStep, navFnc);\r\n fillDate();\r\n viewUpdate(navFnc);\r\n },\r\n\r\n previous: function () {\r\n var navFnc = datePickerModes[currentViewMode].navFnc;\r\n viewDate.subtract(datePickerModes[currentViewMode].navStep, navFnc);\r\n fillDate();\r\n viewUpdate(navFnc);\r\n },\r\n\r\n pickerSwitch: function () {\r\n showMode(1);\r\n },\r\n\r\n selectMonth: function (e) {\r\n var month = $(e.target).closest('tbody').find('span').index($(e.target));\r\n viewDate.month(month);\r\n if (currentViewMode === minViewModeNumber) {\r\n setValue(date.clone().year(viewDate.year()).month(viewDate.month()));\r\n if (!options.inline) {\r\n hide();\r\n }\r\n } else {\r\n showMode(-1);\r\n fillDate();\r\n }\r\n viewUpdate('M');\r\n },\r\n\r\n selectYear: function (e) {\r\n var year = parseInt($(e.target).text(), 10) || 0;\r\n viewDate.year(year);\r\n if (currentViewMode === minViewModeNumber) {\r\n setValue(date.clone().year(viewDate.year()));\r\n if (!options.inline) {\r\n hide();\r\n }\r\n } else {\r\n showMode(-1);\r\n fillDate();\r\n }\r\n viewUpdate('YYYY');\r\n },\r\n\r\n selectDecade: function (e) {\r\n var year = parseInt($(e.target).data('selection'), 10) || 0;\r\n viewDate.year(year);\r\n if (currentViewMode === minViewModeNumber) {\r\n setValue(date.clone().year(viewDate.year()));\r\n if (!options.inline) {\r\n hide();\r\n }\r\n } else {\r\n showMode(-1);\r\n fillDate();\r\n }\r\n viewUpdate('YYYY');\r\n },\r\n\r\n selectDay: function (e) {\r\n var day = viewDate.clone();\r\n if ($(e.target).is('.old')) {\r\n day.subtract(1, 'M');\r\n }\r\n if ($(e.target).is('.new')) {\r\n day.add(1, 'M');\r\n }\r\n setValue(day.date(parseInt($(e.target).text(), 10)));\r\n if (!hasTime() && !options.keepOpen && !options.inline) {\r\n hide();\r\n }\r\n },\r\n\r\n incrementHours: function () {\r\n var newDate = date.clone().add(1, 'h');\r\n if (isValid(newDate, 'h')) {\r\n setValue(newDate);\r\n }\r\n },\r\n\r\n incrementMinutes: function () {\r\n var newDate = date.clone().add(options.stepping, 'm');\r\n if (isValid(newDate, 'm')) {\r\n setValue(newDate);\r\n }\r\n },\r\n\r\n incrementSeconds: function () {\r\n var newDate = date.clone().add(1, 's');\r\n if (isValid(newDate, 's')) {\r\n setValue(newDate);\r\n }\r\n },\r\n\r\n decrementHours: function () {\r\n var newDate = date.clone().subtract(1, 'h');\r\n if (isValid(newDate, 'h')) {\r\n setValue(newDate);\r\n }\r\n },\r\n\r\n decrementMinutes: function () {\r\n var newDate = date.clone().subtract(options.stepping, 'm');\r\n if (isValid(newDate, 'm')) {\r\n setValue(newDate);\r\n }\r\n },\r\n\r\n decrementSeconds: function () {\r\n var newDate = date.clone().subtract(1, 's');\r\n if (isValid(newDate, 's')) {\r\n setValue(newDate);\r\n }\r\n },\r\n\r\n togglePeriod: function () {\r\n setValue(date.clone().add((date.hours() >= 12) ? -12 : 12, 'h'));\r\n },\r\n\r\n togglePicker: function (e) {\r\n var $this = $(e.target),\r\n $parent = $this.closest('ul'),\r\n expanded = $parent.find('.in'),\r\n closed = $parent.find('.collapse:not(.in)'),\r\n collapseData;\r\n\r\n if (expanded && expanded.length) {\r\n collapseData = expanded.data('collapse');\r\n if (collapseData && collapseData.transitioning) {\r\n return;\r\n }\r\n if (expanded.collapse) { // if collapse plugin is available through bootstrap.js then use it\r\n expanded.collapse('hide');\r\n closed.collapse('show');\r\n } else { // otherwise just toggle in class on the two views\r\n expanded.removeClass('in');\r\n closed.addClass('in');\r\n }\r\n if ($this.is('span')) {\r\n $this.toggleClass(options.icons.time + ' ' + options.icons.date);\r\n } else {\r\n $this.find('span').toggleClass(options.icons.time + ' ' + options.icons.date);\r\n }\r\n\r\n // NOTE: uncomment if toggled state will be restored in show()\r\n //if (component) {\r\n // component.find('span').toggleClass(options.icons.time + ' ' + options.icons.date);\r\n //}\r\n }\r\n },\r\n\r\n showPicker: function () {\r\n widget.find('.timepicker > div:not(.timepicker-picker)').addClass('display-none').hide();\r\n widget.find('.timepicker .timepicker-picker').removeClass('display-none').show();\r\n },\r\n\r\n showHours: function () {\r\n widget.find('.timepicker .timepicker-picker').addClass('display-none').hide();\r\n widget.find('.timepicker .timepicker-hours').removeClass('display-none').show();\r\n },\r\n\r\n showMinutes: function () {\r\n widget.find('.timepicker .timepicker-picker').addClass('display-none').hide();\r\n widget.find('.timepicker .timepicker-minutes').removeClass('display-none').show();\r\n },\r\n\r\n showSeconds: function () {\r\n widget.find('.timepicker .timepicker-picker').addClass('display-none').hide();\r\n widget.find('.timepicker .timepicker-seconds').removeClass('display-none').show();\r\n },\r\n\r\n selectHour: function (e) {\r\n var hour = parseInt($(e.target).text(), 10);\r\n\r\n if (!use24Hours) {\r\n if (date.hours() >= 12) {\r\n if (hour !== 12) {\r\n hour += 12;\r\n }\r\n } else {\r\n if (hour === 12) {\r\n hour = 0;\r\n }\r\n }\r\n }\r\n setValue(date.clone().hours(hour));\r\n actions.showPicker.call(picker);\r\n },\r\n\r\n selectMinute: function (e) {\r\n setValue(date.clone().minutes(parseInt($(e.target).text(), 10)));\r\n actions.showPicker.call(picker);\r\n },\r\n\r\n selectSecond: function (e) {\r\n setValue(date.clone().seconds(parseInt($(e.target).text(), 10)));\r\n actions.showPicker.call(picker);\r\n },\r\n\r\n clear: clear,\r\n\r\n today: function () {\r\n var todaysDate = getMoment();\r\n if (isValid(todaysDate, 'd')) {\r\n setValue(todaysDate);\r\n }\r\n },\r\n\r\n close: hide\r\n },\r\n\r\n doAction = function (e) {\r\n if ($(e.currentTarget).is('.disabled')) {\r\n return false;\r\n }\r\n actions[$(e.currentTarget).data('action')].apply(picker, arguments);\r\n return false;\r\n },\r\n\r\n show = function () {\r\n ///Shows the widget. Possibly will emit dp.show and dp.change\r\n var currentMoment,\r\n useCurrentGranularity = {\r\n 'year': function (m) {\r\n return m.month(0).date(1).hours(0).seconds(0).minutes(0);\r\n },\r\n 'month': function (m) {\r\n return m.date(1).hours(0).seconds(0).minutes(0);\r\n },\r\n 'day': function (m) {\r\n return m.hours(0).seconds(0).minutes(0);\r\n },\r\n 'hour': function (m) {\r\n return m.seconds(0).minutes(0);\r\n },\r\n 'minute': function (m) {\r\n return m.seconds(0);\r\n }\r\n };\r\n\r\n if (input.prop('disabled') || (!options.ignoreReadonly && input.prop('readonly')) || widget) {\r\n return picker;\r\n }\r\n if (input.val() !== undefined && input.val().trim().length !== 0) {\r\n setValue(parseInputDate(input.val().trim()));\r\n } else if (options.useCurrent && unset && ((input.is('input') && input.val().trim().length === 0) || options.inline)) {\r\n currentMoment = getMoment();\r\n if (typeof options.useCurrent === 'string') {\r\n currentMoment = useCurrentGranularity[options.useCurrent](currentMoment);\r\n }\r\n setValue(currentMoment);\r\n }\r\n\r\n widget = getTemplate();\r\n\r\n fillDow();\r\n fillMonths();\r\n\r\n widget.find('.timepicker-hours').addClass('display-none').hide();\r\n widget.find('.timepicker-minutes').addClass('display-none').hide();\r\n widget.find('.timepicker-seconds').addClass('display-none').hide();\r\n\r\n update();\r\n showMode();\r\n\r\n $(window).on('resize', place);\r\n widget.on('click', '[data-action]', doAction); // this handles clicks on the widget\r\n widget.on('mousedown', false);\r\n\r\n if (component && component.hasClass('btn')) {\r\n component.toggleClass('active');\r\n }\r\n widget.removeClass('display-none').show();\r\n place();\r\n\r\n if (options.focusOnShow && !input.is(':focus')) {\r\n input.focus();\r\n }\r\n\r\n notifyEvent({\r\n type: 'dp.show'\r\n });\r\n return picker;\r\n },\r\n\r\n toggle = function () {\r\n /// Shows or hides the widget\r\n return (widget ? hide() : show());\r\n },\r\n\r\n parseInputDate = function (inputDate) {\r\n if (options.parseInputDate === undefined) {\r\n if (moment.isMoment(inputDate) || inputDate instanceof Date) {\r\n inputDate = moment(inputDate);\r\n } else {\r\n inputDate = getMoment(inputDate);\r\n }\r\n } else {\r\n inputDate = options.parseInputDate(inputDate);\r\n }\r\n inputDate.locale(options.locale);\r\n return inputDate;\r\n },\r\n\r\n keydown = function (e) {\r\n var handler = null,\r\n index,\r\n index2,\r\n pressedKeys = [],\r\n pressedModifiers = {},\r\n currentKey = e.which,\r\n keyBindKeys,\r\n allModifiersPressed,\r\n pressed = 'p';\r\n\r\n keyState[currentKey] = pressed;\r\n\r\n for (index in keyState) {\r\n if (keyState.hasOwnProperty(index) && keyState[index] === pressed) {\r\n pressedKeys.push(index);\r\n if (parseInt(index, 10) !== currentKey) {\r\n pressedModifiers[index] = true;\r\n }\r\n }\r\n }\r\n\r\n for (index in options.keyBinds) {\r\n if (options.keyBinds.hasOwnProperty(index) && typeof (options.keyBinds[index]) === 'function') {\r\n keyBindKeys = index.split(' ');\r\n if (keyBindKeys.length === pressedKeys.length && keyMap[currentKey] === keyBindKeys[keyBindKeys.length - 1]) {\r\n allModifiersPressed = true;\r\n for (index2 = keyBindKeys.length - 2; index2 >= 0; index2--) {\r\n if (!(keyMap[keyBindKeys[index2]] in pressedModifiers)) {\r\n allModifiersPressed = false;\r\n break;\r\n }\r\n }\r\n if (allModifiersPressed) {\r\n handler = options.keyBinds[index];\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (handler) {\r\n handler.call(picker, widget);\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }\r\n },\r\n\r\n keyup = function (e) {\r\n keyState[e.which] = 'r';\r\n e.stopPropagation();\r\n e.preventDefault();\r\n },\r\n\r\n change = function (e) {\r\n var val = $(e.target).val().trim(),\r\n parsedDate = val ? parseInputDate(val) : null;\r\n setValue(parsedDate);\r\n e.stopImmediatePropagation();\r\n return false;\r\n },\r\n\r\n attachDatePickerElementEvents = function () {\r\n input.on({\r\n 'change': change,\r\n 'blur': options.debug ? '' : hide,\r\n 'keydown': keydown,\r\n 'keyup': keyup,\r\n 'focus': options.allowInputToggle ? show : ''\r\n });\r\n\r\n if (element.is('input')) {\r\n input.on({\r\n 'focus': show\r\n });\r\n } else if (component) {\r\n component.on('click', toggle);\r\n component.on('mousedown', false);\r\n }\r\n },\r\n\r\n detachDatePickerElementEvents = function () {\r\n input.off({\r\n 'change': change,\r\n 'blur': blur,\r\n 'keydown': keydown,\r\n 'keyup': keyup,\r\n 'focus': options.allowInputToggle ? hide : ''\r\n });\r\n\r\n if (element.is('input')) {\r\n input.off({\r\n 'focus': show\r\n });\r\n } else if (component) {\r\n component.off('click', toggle);\r\n component.off('mousedown', false);\r\n }\r\n },\r\n\r\n indexGivenDates = function (givenDatesArray) {\r\n // Store given enabledDates and disabledDates as keys.\r\n // This way we can check their existence in O(1) time instead of looping through whole array.\r\n // (for example: options.enabledDates['2014-02-27'] === true)\r\n var givenDatesIndexed = {};\r\n $.each(givenDatesArray, function () {\r\n var dDate = parseInputDate(this);\r\n if (dDate.isValid()) {\r\n givenDatesIndexed[dDate.format('YYYY-MM-DD')] = true;\r\n }\r\n });\r\n return (Object.keys(givenDatesIndexed).length) ? givenDatesIndexed : false;\r\n },\r\n\r\n indexGivenHours = function (givenHoursArray) {\r\n // Store given enabledHours and disabledHours as keys.\r\n // This way we can check their existence in O(1) time instead of looping through whole array.\r\n // (for example: options.enabledHours['2014-02-27'] === true)\r\n var givenHoursIndexed = {};\r\n $.each(givenHoursArray, function () {\r\n givenHoursIndexed[this] = true;\r\n });\r\n return (Object.keys(givenHoursIndexed).length) ? givenHoursIndexed : false;\r\n },\r\n\r\n initFormatting = function () {\r\n var format = options.format || 'L LT';\r\n\r\n actualFormat = format.replace(/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function (formatInput) {\r\n var newinput = date.localeData().longDateFormat(formatInput) || formatInput;\r\n return newinput.replace(/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g, function (formatInput2) { //temp fix for #740\r\n return date.localeData().longDateFormat(formatInput2) || formatInput2;\r\n });\r\n });\r\n\r\n\r\n parseFormats = options.extraFormats ? options.extraFormats.slice() : [];\r\n if (parseFormats.indexOf(format) < 0 && parseFormats.indexOf(actualFormat) < 0) {\r\n parseFormats.push(actualFormat);\r\n }\r\n\r\n use24Hours = (actualFormat.toLowerCase().indexOf('a') < 1 && actualFormat.replace(/\\[.*?\\]/g, '').indexOf('h') < 1);\r\n\r\n if (isEnabled('y')) {\r\n minViewModeNumber = 2;\r\n }\r\n if (isEnabled('M')) {\r\n minViewModeNumber = 1;\r\n }\r\n if (isEnabled('d')) {\r\n minViewModeNumber = 0;\r\n }\r\n\r\n currentViewMode = Math.max(minViewModeNumber, currentViewMode);\r\n\r\n if (!unset) {\r\n setValue(date);\r\n }\r\n };\r\n\r\n /********************************************************************************\r\n *\r\n * Public API functions\r\n * =====================\r\n *\r\n * Important: Do not expose direct references to private objects or the options\r\n * object to the outer world. Always return a clone when returning values or make\r\n * a clone when setting a private variable.\r\n *\r\n ********************************************************************************/\r\n picker.destroy = function () {\r\n ///Destroys the widget and removes all attached event listeners\r\n hide();\r\n detachDatePickerElementEvents();\r\n element.removeData('DateTimePicker');\r\n element.removeData('date');\r\n };\r\n\r\n picker.toggle = toggle;\r\n\r\n picker.show = show;\r\n\r\n picker.hide = hide;\r\n\r\n picker.disable = function () {\r\n ///Disables the input element, the component is attached to, by adding a disabled=\"true\" attribute to it.\r\n ///If the widget was visible before that call it is hidden. Possibly emits dp.hide\r\n hide();\r\n if (component && component.hasClass('btn')) {\r\n component.addClass('disabled');\r\n }\r\n input.prop('disabled', true);\r\n return picker;\r\n };\r\n\r\n picker.enable = function () {\r\n ///Enables the input element, the component is attached to, by removing disabled attribute from it.\r\n if (component && component.hasClass('btn')) {\r\n component.removeClass('disabled');\r\n }\r\n input.prop('disabled', false);\r\n return picker;\r\n };\r\n\r\n picker.ignoreReadonly = function (ignoreReadonly) {\r\n if (arguments.length === 0) {\r\n return options.ignoreReadonly;\r\n }\r\n if (typeof ignoreReadonly !== 'boolean') {\r\n throw new TypeError('ignoreReadonly () expects a boolean parameter');\r\n }\r\n options.ignoreReadonly = ignoreReadonly;\r\n return picker;\r\n };\r\n\r\n picker.options = function (newOptions) {\r\n if (arguments.length === 0) {\r\n return $.extend(true, {}, options);\r\n }\r\n\r\n if (!(newOptions instanceof Object)) {\r\n throw new TypeError('options() options parameter should be an object');\r\n }\r\n $.extend(true, options, newOptions);\r\n $.each(options, function (key, value) {\r\n if (picker[key] !== undefined) {\r\n picker[key](value);\r\n } else {\r\n throw new TypeError('option ' + key + ' is not recognized!');\r\n }\r\n });\r\n return picker;\r\n };\r\n\r\n picker.date = function (newDate) {\r\n ///\r\n ///Returns the component's model current date, a moment object or null if not set.\r\n ///date.clone()\r\n ///\r\n ///\r\n ///Sets the components model current moment to it. Passing a null value unsets the components model current moment. Parsing of the newDate parameter is made using moment library with the options.format and options.useStrict components configuration.\r\n ///Takes string, Date, moment, null parameter.\r\n ///\r\n if (arguments.length === 0) {\r\n if (unset) {\r\n return null;\r\n }\r\n return date.clone();\r\n }\r\n\r\n if (newDate !== null && typeof newDate !== 'string' && !moment.isMoment(newDate) && !(newDate instanceof Date)) {\r\n throw new TypeError('date() parameter must be one of [null, string, moment or Date]');\r\n }\r\n\r\n setValue(newDate === null ? null : parseInputDate(newDate));\r\n return picker;\r\n };\r\n\r\n picker.format = function (newFormat) {\r\n ///test su\r\n ///info about para\r\n ///returns foo\r\n if (arguments.length === 0) {\r\n return options.format;\r\n }\r\n\r\n if ((typeof newFormat !== 'string') && ((typeof newFormat !== 'boolean') || (newFormat !== false))) {\r\n throw new TypeError('format() expects a sting or boolean:false parameter ' + newFormat);\r\n }\r\n\r\n options.format = newFormat;\r\n if (actualFormat) {\r\n initFormatting(); // reinit formatting\r\n }\r\n return picker;\r\n };\r\n\r\n picker.timeZone = function (newZone) {\r\n if (arguments.length === 0) {\r\n return options.timeZone;\r\n }\r\n\r\n options.timeZone = newZone;\r\n\r\n return picker;\r\n };\r\n\r\n picker.dayViewHeaderFormat = function (newFormat) {\r\n if (arguments.length === 0) {\r\n return options.dayViewHeaderFormat;\r\n }\r\n\r\n if (typeof newFormat !== 'string') {\r\n throw new TypeError('dayViewHeaderFormat() expects a string parameter');\r\n }\r\n\r\n options.dayViewHeaderFormat = newFormat;\r\n return picker;\r\n };\r\n\r\n picker.extraFormats = function (formats) {\r\n if (arguments.length === 0) {\r\n return options.extraFormats;\r\n }\r\n\r\n if (formats !== false && !(formats instanceof Array)) {\r\n throw new TypeError('extraFormats() expects an array or false parameter');\r\n }\r\n\r\n options.extraFormats = formats;\r\n if (parseFormats) {\r\n initFormatting(); // reinit formatting\r\n }\r\n return picker;\r\n };\r\n\r\n picker.disabledDates = function (dates) {\r\n ///\r\n ///Returns an array with the currently set disabled dates on the component.\r\n ///options.disabledDates\r\n ///\r\n ///\r\n ///Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of\r\n ///options.enabledDates if such exist.\r\n ///Takes an [ string or Date or moment ] of values and allows the user to select only from those days.\r\n ///\r\n if (arguments.length === 0) {\r\n return (options.disabledDates ? $.extend({}, options.disabledDates) : options.disabledDates);\r\n }\r\n\r\n if (!dates) {\r\n options.disabledDates = false;\r\n update();\r\n return picker;\r\n }\r\n if (!(dates instanceof Array)) {\r\n throw new TypeError('disabledDates() expects an array parameter');\r\n }\r\n options.disabledDates = indexGivenDates(dates);\r\n options.enabledDates = false;\r\n update();\r\n return picker;\r\n };\r\n\r\n picker.enabledDates = function (dates) {\r\n ///\r\n ///Returns an array with the currently set enabled dates on the component.\r\n ///options.enabledDates\r\n ///\r\n ///\r\n ///Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of options.disabledDates if such exist.\r\n ///Takes an [ string or Date or moment ] of values and allows the user to select only from those days.\r\n ///\r\n if (arguments.length === 0) {\r\n return (options.enabledDates ? $.extend({}, options.enabledDates) : options.enabledDates);\r\n }\r\n\r\n if (!dates) {\r\n options.enabledDates = false;\r\n update();\r\n return picker;\r\n }\r\n if (!(dates instanceof Array)) {\r\n throw new TypeError('enabledDates() expects an array parameter');\r\n }\r\n options.enabledDates = indexGivenDates(dates);\r\n options.disabledDates = false;\r\n update();\r\n return picker;\r\n };\r\n\r\n picker.daysOfWeekDisabled = function (daysOfWeekDisabled) {\r\n if (arguments.length === 0) {\r\n return options.daysOfWeekDisabled.splice(0);\r\n }\r\n\r\n if ((typeof daysOfWeekDisabled === 'boolean') && !daysOfWeekDisabled) {\r\n options.daysOfWeekDisabled = false;\r\n update();\r\n return picker;\r\n }\r\n\r\n if (!(daysOfWeekDisabled instanceof Array)) {\r\n throw new TypeError('daysOfWeekDisabled() expects an array parameter');\r\n }\r\n options.daysOfWeekDisabled = daysOfWeekDisabled.reduce(function (previousValue, currentValue) {\r\n currentValue = parseInt(currentValue, 10);\r\n if (currentValue > 6 || currentValue < 0 || isNaN(currentValue)) {\r\n return previousValue;\r\n }\r\n if (previousValue.indexOf(currentValue) === -1) {\r\n previousValue.push(currentValue);\r\n }\r\n return previousValue;\r\n }, []).sort();\r\n if (options.useCurrent && !options.keepInvalid) {\r\n var tries = 0;\r\n while (!isValid(date, 'd')) {\r\n date.add(1, 'd');\r\n if (tries === 7) {\r\n throw 'Tried 7 times to find a valid date';\r\n }\r\n tries++;\r\n }\r\n setValue(date);\r\n }\r\n update();\r\n return picker;\r\n };\r\n\r\n picker.maxDate = function (maxDate) {\r\n if (arguments.length === 0) {\r\n return options.maxDate ? options.maxDate.clone() : options.maxDate;\r\n }\r\n\r\n if ((typeof maxDate === 'boolean') && maxDate === false) {\r\n options.maxDate = false;\r\n update();\r\n return picker;\r\n }\r\n\r\n if (typeof maxDate === 'string') {\r\n if (maxDate === 'now' || maxDate === 'moment') {\r\n maxDate = getMoment();\r\n }\r\n }\r\n\r\n var parsedDate = parseInputDate(maxDate);\r\n\r\n if (!parsedDate.isValid()) {\r\n throw new TypeError('maxDate() Could not parse date parameter: ' + maxDate);\r\n }\r\n if (options.minDate && parsedDate.isBefore(options.minDate)) {\r\n throw new TypeError('maxDate() date parameter is before options.minDate: ' + parsedDate.format(actualFormat));\r\n }\r\n options.maxDate = parsedDate;\r\n if (options.useCurrent && !options.keepInvalid && date.isAfter(maxDate)) {\r\n setValue(options.maxDate);\r\n }\r\n if (viewDate.isAfter(parsedDate)) {\r\n viewDate = parsedDate.clone().subtract(options.stepping, 'm');\r\n }\r\n update();\r\n return picker;\r\n };\r\n\r\n picker.minDate = function (minDate) {\r\n if (arguments.length === 0) {\r\n return options.minDate ? options.minDate.clone() : options.minDate;\r\n }\r\n\r\n if ((typeof minDate === 'boolean') && minDate === false) {\r\n options.minDate = false;\r\n update();\r\n return picker;\r\n }\r\n\r\n if (typeof minDate === 'string') {\r\n if (minDate === 'now' || minDate === 'moment') {\r\n minDate = getMoment();\r\n }\r\n }\r\n\r\n var parsedDate = parseInputDate(minDate);\r\n\r\n if (!parsedDate.isValid()) {\r\n throw new TypeError('minDate() Could not parse date parameter: ' + minDate);\r\n }\r\n if (options.maxDate && parsedDate.isAfter(options.maxDate)) {\r\n throw new TypeError('minDate() date parameter is after options.maxDate: ' + parsedDate.format(actualFormat));\r\n }\r\n options.minDate = parsedDate;\r\n if (options.useCurrent && !options.keepInvalid && date.isBefore(minDate)) {\r\n setValue(options.minDate);\r\n }\r\n if (viewDate.isBefore(parsedDate)) {\r\n viewDate = parsedDate.clone().add(options.stepping, 'm');\r\n }\r\n update();\r\n return picker;\r\n };\r\n\r\n picker.defaultDate = function (defaultDate) {\r\n ///\r\n ///Returns a moment with the options.defaultDate option configuration or false if not set\r\n ///date.clone()\r\n ///\r\n ///\r\n ///Will set the picker's inital date. If a boolean:false value is passed the options.defaultDate parameter is cleared.\r\n ///Takes a string, Date, moment, boolean:false\r\n ///\r\n if (arguments.length === 0) {\r\n return options.defaultDate ? options.defaultDate.clone() : options.defaultDate;\r\n }\r\n if (!defaultDate) {\r\n options.defaultDate = false;\r\n return picker;\r\n }\r\n\r\n if (typeof defaultDate === 'string') {\r\n if (defaultDate === 'now' || defaultDate === 'moment') {\r\n defaultDate = getMoment();\r\n }\r\n }\r\n\r\n var parsedDate = parseInputDate(defaultDate);\r\n if (!parsedDate.isValid()) {\r\n throw new TypeError('defaultDate() Could not parse date parameter: ' + defaultDate);\r\n }\r\n if (!isValid(parsedDate)) {\r\n throw new TypeError('defaultDate() date passed is invalid according to component setup validations');\r\n }\r\n\r\n options.defaultDate = parsedDate;\r\n\r\n if ((options.defaultDate && options.inline) || input.val().trim() === '') {\r\n setValue(options.defaultDate);\r\n }\r\n return picker;\r\n };\r\n\r\n picker.locale = function (locale) {\r\n if (arguments.length === 0) {\r\n return options.locale;\r\n }\r\n\r\n if (!moment.localeData(locale)) {\r\n throw new TypeError('locale() locale ' + locale + ' is not loaded from moment locales!');\r\n }\r\n\r\n options.locale = locale;\r\n date.locale(options.locale);\r\n viewDate.locale(options.locale);\r\n\r\n if (actualFormat) {\r\n initFormatting(); // reinit formatting\r\n }\r\n if (widget) {\r\n hide();\r\n show();\r\n }\r\n return picker;\r\n };\r\n\r\n picker.stepping = function (stepping) {\r\n if (arguments.length === 0) {\r\n return options.stepping;\r\n }\r\n\r\n stepping = parseInt(stepping, 10);\r\n if (isNaN(stepping) || stepping < 1) {\r\n stepping = 1;\r\n }\r\n options.stepping = stepping;\r\n return picker;\r\n };\r\n\r\n picker.useCurrent = function (useCurrent) {\r\n var useCurrentOptions = ['year', 'month', 'day', 'hour', 'minute'];\r\n if (arguments.length === 0) {\r\n return options.useCurrent;\r\n }\r\n\r\n if ((typeof useCurrent !== 'boolean') && (typeof useCurrent !== 'string')) {\r\n throw new TypeError('useCurrent() expects a boolean or string parameter');\r\n }\r\n if (typeof useCurrent === 'string' && useCurrentOptions.indexOf(useCurrent.toLowerCase()) === -1) {\r\n throw new TypeError('useCurrent() expects a string parameter of ' + useCurrentOptions.join(', '));\r\n }\r\n options.useCurrent = useCurrent;\r\n return picker;\r\n };\r\n\r\n picker.collapse = function (collapse) {\r\n if (arguments.length === 0) {\r\n return options.collapse;\r\n }\r\n\r\n if (typeof collapse !== 'boolean') {\r\n throw new TypeError('collapse() expects a boolean parameter');\r\n }\r\n if (options.collapse === collapse) {\r\n return picker;\r\n }\r\n options.collapse = collapse;\r\n if (widget) {\r\n hide();\r\n show();\r\n }\r\n return picker;\r\n };\r\n\r\n picker.icons = function (icons) {\r\n if (arguments.length === 0) {\r\n return $.extend({}, options.icons);\r\n }\r\n\r\n if (!(icons instanceof Object)) {\r\n throw new TypeError('icons() expects parameter to be an Object');\r\n }\r\n $.extend(options.icons, icons);\r\n if (widget) {\r\n hide();\r\n show();\r\n }\r\n return picker;\r\n };\r\n\r\n picker.tooltips = function (tooltips) {\r\n if (arguments.length === 0) {\r\n return $.extend({}, options.tooltips);\r\n }\r\n\r\n if (!(tooltips instanceof Object)) {\r\n throw new TypeError('tooltips() expects parameter to be an Object');\r\n }\r\n $.extend(options.tooltips, tooltips);\r\n if (widget) {\r\n hide();\r\n show();\r\n }\r\n return picker;\r\n };\r\n\r\n picker.useStrict = function (useStrict) {\r\n if (arguments.length === 0) {\r\n return options.useStrict;\r\n }\r\n\r\n if (typeof useStrict !== 'boolean') {\r\n throw new TypeError('useStrict() expects a boolean parameter');\r\n }\r\n options.useStrict = useStrict;\r\n return picker;\r\n };\r\n\r\n picker.sideBySide = function (sideBySide) {\r\n if (arguments.length === 0) {\r\n return options.sideBySide;\r\n }\r\n\r\n if (typeof sideBySide !== 'boolean') {\r\n throw new TypeError('sideBySide() expects a boolean parameter');\r\n }\r\n options.sideBySide = sideBySide;\r\n if (widget) {\r\n hide();\r\n show();\r\n }\r\n return picker;\r\n };\r\n\r\n picker.viewMode = function (viewMode) {\r\n if (arguments.length === 0) {\r\n return options.viewMode;\r\n }\r\n\r\n if (typeof viewMode !== 'string') {\r\n throw new TypeError('viewMode() expects a string parameter');\r\n }\r\n\r\n if (viewModes.indexOf(viewMode) === -1) {\r\n throw new TypeError('viewMode() parameter must be one of (' + viewModes.join(', ') + ') value');\r\n }\r\n\r\n options.viewMode = viewMode;\r\n currentViewMode = Math.max(viewModes.indexOf(viewMode), minViewModeNumber);\r\n\r\n showMode();\r\n return picker;\r\n };\r\n\r\n picker.toolbarPlacement = function (toolbarPlacement) {\r\n if (arguments.length === 0) {\r\n return options.toolbarPlacement;\r\n }\r\n\r\n if (typeof toolbarPlacement !== 'string') {\r\n throw new TypeError('toolbarPlacement() expects a string parameter');\r\n }\r\n if (toolbarPlacements.indexOf(toolbarPlacement) === -1) {\r\n throw new TypeError('toolbarPlacement() parameter must be one of (' + toolbarPlacements.join(', ') + ') value');\r\n }\r\n options.toolbarPlacement = toolbarPlacement;\r\n\r\n if (widget) {\r\n hide();\r\n show();\r\n }\r\n return picker;\r\n };\r\n\r\n picker.widgetPositioning = function (widgetPositioning) {\r\n if (arguments.length === 0) {\r\n return $.extend({}, options.widgetPositioning);\r\n }\r\n\r\n if (({}).toString.call(widgetPositioning) !== '[object Object]') {\r\n throw new TypeError('widgetPositioning() expects an object variable');\r\n }\r\n if (widgetPositioning.horizontal) {\r\n if (typeof widgetPositioning.horizontal !== 'string') {\r\n throw new TypeError('widgetPositioning() horizontal variable must be a string');\r\n }\r\n widgetPositioning.horizontal = widgetPositioning.horizontal.toLowerCase();\r\n if (horizontalModes.indexOf(widgetPositioning.horizontal) === -1) {\r\n throw new TypeError('widgetPositioning() expects horizontal parameter to be one of (' + horizontalModes.join(', ') + ')');\r\n }\r\n options.widgetPositioning.horizontal = widgetPositioning.horizontal;\r\n }\r\n if (widgetPositioning.vertical) {\r\n if (typeof widgetPositioning.vertical !== 'string') {\r\n throw new TypeError('widgetPositioning() vertical variable must be a string');\r\n }\r\n widgetPositioning.vertical = widgetPositioning.vertical.toLowerCase();\r\n if (verticalModes.indexOf(widgetPositioning.vertical) === -1) {\r\n throw new TypeError('widgetPositioning() expects vertical parameter to be one of (' + verticalModes.join(', ') + ')');\r\n }\r\n options.widgetPositioning.vertical = widgetPositioning.vertical;\r\n }\r\n update();\r\n return picker;\r\n };\r\n\r\n picker.calendarWeeks = function (calendarWeeks) {\r\n if (arguments.length === 0) {\r\n return options.calendarWeeks;\r\n }\r\n\r\n if (typeof calendarWeeks !== 'boolean') {\r\n throw new TypeError('calendarWeeks() expects parameter to be a boolean value');\r\n }\r\n\r\n options.calendarWeeks = calendarWeeks;\r\n update();\r\n return picker;\r\n };\r\n\r\n picker.showTodayButton = function (showTodayButton) {\r\n if (arguments.length === 0) {\r\n return options.showTodayButton;\r\n }\r\n\r\n if (typeof showTodayButton !== 'boolean') {\r\n throw new TypeError('showTodayButton() expects a boolean parameter');\r\n }\r\n\r\n options.showTodayButton = showTodayButton;\r\n if (widget) {\r\n hide();\r\n show();\r\n }\r\n return picker;\r\n };\r\n\r\n picker.showClear = function (showClear) {\r\n if (arguments.length === 0) {\r\n return options.showClear;\r\n }\r\n\r\n if (typeof showClear !== 'boolean') {\r\n throw new TypeError('showClear() expects a boolean parameter');\r\n }\r\n\r\n options.showClear = showClear;\r\n if (widget) {\r\n hide();\r\n show();\r\n }\r\n return picker;\r\n };\r\n\r\n picker.widgetParent = function (widgetParent) {\r\n if (arguments.length === 0) {\r\n return options.widgetParent;\r\n }\r\n\r\n if (typeof widgetParent === 'string') {\r\n widgetParent = $(widgetParent);\r\n }\r\n\r\n if (widgetParent !== null && (typeof widgetParent !== 'string' && !(widgetParent instanceof $))) {\r\n throw new TypeError('widgetParent() expects a string or a jQuery object parameter');\r\n }\r\n\r\n options.widgetParent = widgetParent;\r\n if (widget) {\r\n hide();\r\n show();\r\n }\r\n return picker;\r\n };\r\n\r\n picker.keepOpen = function (keepOpen) {\r\n if (arguments.length === 0) {\r\n return options.keepOpen;\r\n }\r\n\r\n if (typeof keepOpen !== 'boolean') {\r\n throw new TypeError('keepOpen() expects a boolean parameter');\r\n }\r\n\r\n options.keepOpen = keepOpen;\r\n return picker;\r\n };\r\n\r\n picker.focusOnShow = function (focusOnShow) {\r\n if (arguments.length === 0) {\r\n return options.focusOnShow;\r\n }\r\n\r\n if (typeof focusOnShow !== 'boolean') {\r\n throw new TypeError('focusOnShow() expects a boolean parameter');\r\n }\r\n\r\n options.focusOnShow = focusOnShow;\r\n return picker;\r\n };\r\n\r\n picker.inline = function (inline) {\r\n if (arguments.length === 0) {\r\n return options.inline;\r\n }\r\n\r\n if (typeof inline !== 'boolean') {\r\n throw new TypeError('inline() expects a boolean parameter');\r\n }\r\n\r\n options.inline = inline;\r\n return picker;\r\n };\r\n\r\n picker.clear = function () {\r\n clear();\r\n return picker;\r\n };\r\n\r\n picker.keyBinds = function (keyBinds) {\r\n options.keyBinds = keyBinds;\r\n return picker;\r\n };\r\n\r\n picker.getMoment = function (d) {\r\n return getMoment(d);\r\n };\r\n\r\n picker.debug = function (debug) {\r\n if (typeof debug !== 'boolean') {\r\n throw new TypeError('debug() expects a boolean parameter');\r\n }\r\n\r\n options.debug = debug;\r\n return picker;\r\n };\r\n\r\n picker.allowInputToggle = function (allowInputToggle) {\r\n if (arguments.length === 0) {\r\n return options.allowInputToggle;\r\n }\r\n\r\n if (typeof allowInputToggle !== 'boolean') {\r\n throw new TypeError('allowInputToggle() expects a boolean parameter');\r\n }\r\n\r\n options.allowInputToggle = allowInputToggle;\r\n return picker;\r\n };\r\n\r\n picker.showClose = function (showClose) {\r\n if (arguments.length === 0) {\r\n return options.showClose;\r\n }\r\n\r\n if (typeof showClose !== 'boolean') {\r\n throw new TypeError('showClose() expects a boolean parameter');\r\n }\r\n\r\n options.showClose = showClose;\r\n return picker;\r\n };\r\n\r\n picker.keepInvalid = function (keepInvalid) {\r\n if (arguments.length === 0) {\r\n return options.keepInvalid;\r\n }\r\n\r\n if (typeof keepInvalid !== 'boolean') {\r\n throw new TypeError('keepInvalid() expects a boolean parameter');\r\n }\r\n options.keepInvalid = keepInvalid;\r\n return picker;\r\n };\r\n\r\n picker.datepickerInput = function (datepickerInput) {\r\n if (arguments.length === 0) {\r\n return options.datepickerInput;\r\n }\r\n\r\n if (typeof datepickerInput !== 'string') {\r\n throw new TypeError('datepickerInput() expects a string parameter');\r\n }\r\n\r\n options.datepickerInput = datepickerInput;\r\n return picker;\r\n };\r\n\r\n picker.parseInputDate = function (parseInputDate) {\r\n if (arguments.length === 0) {\r\n return options.parseInputDate;\r\n }\r\n\r\n if (typeof parseInputDate !== 'function') {\r\n throw new TypeError('parseInputDate() sholud be as function');\r\n }\r\n\r\n options.parseInputDate = parseInputDate;\r\n\r\n return picker;\r\n };\r\n\r\n picker.disabledTimeIntervals = function (disabledTimeIntervals) {\r\n ///\r\n ///Returns an array with the currently set disabled dates on the component.\r\n ///options.disabledTimeIntervals\r\n ///\r\n ///\r\n ///Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of\r\n ///options.enabledDates if such exist.\r\n ///Takes an [ string or Date or moment ] of values and allows the user to select only from those days.\r\n ///\r\n if (arguments.length === 0) {\r\n return (options.disabledTimeIntervals ? $.extend({}, options.disabledTimeIntervals) : options.disabledTimeIntervals);\r\n }\r\n\r\n if (!disabledTimeIntervals) {\r\n options.disabledTimeIntervals = false;\r\n update();\r\n return picker;\r\n }\r\n if (!(disabledTimeIntervals instanceof Array)) {\r\n throw new TypeError('disabledTimeIntervals() expects an array parameter');\r\n }\r\n options.disabledTimeIntervals = disabledTimeIntervals;\r\n update();\r\n return picker;\r\n };\r\n\r\n picker.disabledHours = function (hours) {\r\n ///\r\n ///Returns an array with the currently set disabled hours on the component.\r\n ///options.disabledHours\r\n ///\r\n ///\r\n ///Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of\r\n ///options.enabledHours if such exist.\r\n ///Takes an [ int ] of values and disallows the user to select only from those hours.\r\n ///\r\n if (arguments.length === 0) {\r\n return (options.disabledHours ? $.extend({}, options.disabledHours) : options.disabledHours);\r\n }\r\n\r\n if (!hours) {\r\n options.disabledHours = false;\r\n update();\r\n return picker;\r\n }\r\n if (!(hours instanceof Array)) {\r\n throw new TypeError('disabledHours() expects an array parameter');\r\n }\r\n options.disabledHours = indexGivenHours(hours);\r\n options.enabledHours = false;\r\n if (options.useCurrent && !options.keepInvalid) {\r\n var tries = 0;\r\n while (!isValid(date, 'h')) {\r\n date.add(1, 'h');\r\n if (tries === 24) {\r\n throw 'Tried 24 times to find a valid date';\r\n }\r\n tries++;\r\n }\r\n setValue(date);\r\n }\r\n update();\r\n return picker;\r\n };\r\n\r\n picker.enabledHours = function (hours) {\r\n ///\r\n ///Returns an array with the currently set enabled hours on the component.\r\n ///options.enabledHours\r\n ///\r\n ///\r\n ///Setting this takes precedence over options.minDate, options.maxDate configuration. Also calling this function removes the configuration of options.disabledHours if such exist.\r\n ///Takes an [ int ] of values and allows the user to select only from those hours.\r\n ///\r\n if (arguments.length === 0) {\r\n return (options.enabledHours ? $.extend({}, options.enabledHours) : options.enabledHours);\r\n }\r\n\r\n if (!hours) {\r\n options.enabledHours = false;\r\n update();\r\n return picker;\r\n }\r\n if (!(hours instanceof Array)) {\r\n throw new TypeError('enabledHours() expects an array parameter');\r\n }\r\n options.enabledHours = indexGivenHours(hours);\r\n options.disabledHours = false;\r\n if (options.useCurrent && !options.keepInvalid) {\r\n var tries = 0;\r\n while (!isValid(date, 'h')) {\r\n date.add(1, 'h');\r\n if (tries === 24) {\r\n throw 'Tried 24 times to find a valid date';\r\n }\r\n tries++;\r\n }\r\n setValue(date);\r\n }\r\n update();\r\n return picker;\r\n };\r\n\r\n picker.viewDate = function (newDate) {\r\n ///\r\n ///Returns the component's model current viewDate, a moment object or null if not set.\r\n ///viewDate.clone()\r\n ///\r\n ///\r\n ///Sets the components model current moment to it. Passing a null value unsets the components model current moment. Parsing of the newDate parameter is made using moment library with the options.format and options.useStrict components configuration.\r\n ///Takes string, viewDate, moment, null parameter.\r\n ///\r\n if (arguments.length === 0) {\r\n return viewDate.clone();\r\n }\r\n\r\n if (!newDate) {\r\n viewDate = date.clone();\r\n return picker;\r\n }\r\n\r\n if (typeof newDate !== 'string' && !moment.isMoment(newDate) && !(newDate instanceof Date)) {\r\n throw new TypeError('viewDate() parameter must be one of [string, moment or Date]');\r\n }\r\n\r\n viewDate = parseInputDate(newDate);\r\n viewUpdate();\r\n return picker;\r\n };\r\n\r\n // initializing element and component attributes\r\n if (element.is('input')) {\r\n input = element;\r\n } else {\r\n input = element.find(options.datepickerInput);\r\n if (input.size() === 0) {\r\n input = element.find('input');\r\n } else if (!input.is('input')) {\r\n throw new Error('CSS class \"' + options.datepickerInput + '\" cannot be applied to non input element');\r\n }\r\n }\r\n\r\n if (element.hasClass('input-group')) {\r\n // in case there is more then one 'input-group-addon' Issue #48\r\n if (element.find('.datepickerbutton').size() === 0) {\r\n component = element.find('.input-group-addon');\r\n } else {\r\n component = element.find('.datepickerbutton');\r\n }\r\n }\r\n\r\n if (!options.inline && !input.is('input')) {\r\n throw new Error('Could not initialize DateTimePicker without an input element');\r\n }\r\n\r\n // Set defaults for date here now instead of in var declaration\r\n date = getMoment();\r\n viewDate = date.clone();\r\n\r\n $.extend(true, options, dataToOptions());\r\n\r\n picker.options(options);\r\n\r\n initFormatting();\r\n\r\n attachDatePickerElementEvents();\r\n\r\n if (input.prop('disabled')) {\r\n picker.disable();\r\n }\r\n if (input.is('input') && input.val().trim().length !== 0) {\r\n setValue(parseInputDate(input.val().trim()));\r\n }\r\n else if (options.defaultDate && input.attr('placeholder') === undefined) {\r\n setValue(options.defaultDate);\r\n }\r\n if (options.inline) {\r\n show();\r\n }\r\n return picker;\r\n };\r\n\r\n /********************************************************************************\r\n *\r\n * jQuery plugin constructor and defaults object\r\n *\r\n ********************************************************************************/\r\n\r\n $.fn.datetimepicker = function (options) {\r\n return this.each(function () {\r\n var $this = $(this);\r\n if (!$this.data('DateTimePicker')) {\r\n // create a private copy of the defaults object\r\n options = $.extend(true, {}, $.fn.datetimepicker.defaults, options);\r\n $this.data('DateTimePicker', dateTimePicker($this, options));\r\n }\r\n });\r\n };\r\n\r\n $.fn.datetimepicker.defaults = {\r\n timeZone: 'Etc/UTC',\r\n format: false,\r\n dayViewHeaderFormat: 'MMMM YYYY',\r\n extraFormats: false,\r\n stepping: 1,\r\n minDate: false,\r\n maxDate: false,\r\n useCurrent: true,\r\n collapse: true,\r\n locale: moment.locale(),\r\n defaultDate: false,\r\n disabledDates: false,\r\n enabledDates: false,\r\n icons: {\r\n time: 'glyphicon glyphicon-time',\r\n date: 'glyphicon glyphicon-calendar',\r\n up: 'glyphicon glyphicon-chevron-up',\r\n down: 'glyphicon glyphicon-chevron-down',\r\n previous: 'glyphicon glyphicon-chevron-left',\r\n next: 'glyphicon glyphicon-chevron-right',\r\n today: 'glyphicon glyphicon-screenshot',\r\n clear: 'glyphicon glyphicon-trash',\r\n close: 'glyphicon glyphicon-remove'\r\n },\r\n tooltips: {\r\n today: 'Go to today',\r\n clear: 'Clear selection',\r\n close: 'Close the picker',\r\n selectMonth: 'Select Month',\r\n prevMonth: 'Previous Month',\r\n nextMonth: 'Next Month',\r\n selectYear: 'Select Year',\r\n prevYear: 'Previous Year',\r\n nextYear: 'Next Year',\r\n selectDecade: 'Select Decade',\r\n prevDecade: 'Previous Decade',\r\n nextDecade: 'Next Decade',\r\n prevCentury: 'Previous Century',\r\n nextCentury: 'Next Century',\r\n pickHour: 'Pick Hour',\r\n incrementHour: 'Increment Hour',\r\n decrementHour: 'Decrement Hour',\r\n pickMinute: 'Pick Minute',\r\n incrementMinute: 'Increment Minute',\r\n decrementMinute: 'Decrement Minute',\r\n pickSecond: 'Pick Second',\r\n incrementSecond: 'Increment Second',\r\n decrementSecond: 'Decrement Second',\r\n togglePeriod: 'Toggle Period',\r\n selectTime: 'Select Time'\r\n },\r\n useStrict: false,\r\n sideBySide: false,\r\n daysOfWeekDisabled: false,\r\n calendarWeeks: false,\r\n viewMode: 'days',\r\n toolbarPlacement: 'default',\r\n showTodayButton: false,\r\n showClear: false,\r\n showClose: false,\r\n widgetPositioning: {\r\n horizontal: 'auto',\r\n vertical: 'auto'\r\n },\r\n widgetParent: null,\r\n ignoreReadonly: false,\r\n keepOpen: false,\r\n focusOnShow: true,\r\n inline: false,\r\n keepInvalid: false,\r\n datepickerInput: '.datepickerinput',\r\n keyBinds: {\r\n up: function (widget) {\r\n if (!widget) {\r\n return;\r\n }\r\n var d = this.date() || this.getMoment();\r\n if (widget.find('.datepicker').is(':visible')) {\r\n this.date(d.clone().subtract(7, 'd'));\r\n } else {\r\n this.date(d.clone().add(this.stepping(), 'm'));\r\n }\r\n },\r\n down: function (widget) {\r\n if (!widget) {\r\n this.show();\r\n return;\r\n }\r\n var d = this.date() || this.getMoment();\r\n if (widget.find('.datepicker').is(':visible')) {\r\n this.date(d.clone().add(7, 'd'));\r\n } else {\r\n this.date(d.clone().subtract(this.stepping(), 'm'));\r\n }\r\n },\r\n 'control up': function (widget) {\r\n if (!widget) {\r\n return;\r\n }\r\n var d = this.date() || this.getMoment();\r\n if (widget.find('.datepicker').is(':visible')) {\r\n this.date(d.clone().subtract(1, 'y'));\r\n } else {\r\n this.date(d.clone().add(1, 'h'));\r\n }\r\n },\r\n 'control down': function (widget) {\r\n if (!widget) {\r\n return;\r\n }\r\n var d = this.date() || this.getMoment();\r\n if (widget.find('.datepicker').is(':visible')) {\r\n this.date(d.clone().add(1, 'y'));\r\n } else {\r\n this.date(d.clone().subtract(1, 'h'));\r\n }\r\n },\r\n left: function (widget) {\r\n if (!widget) {\r\n return;\r\n }\r\n var d = this.date() || this.getMoment();\r\n if (widget.find('.datepicker').is(':visible')) {\r\n this.date(d.clone().subtract(1, 'd'));\r\n }\r\n },\r\n right: function (widget) {\r\n if (!widget) {\r\n return;\r\n }\r\n var d = this.date() || this.getMoment();\r\n if (widget.find('.datepicker').is(':visible')) {\r\n this.date(d.clone().add(1, 'd'));\r\n }\r\n },\r\n pageUp: function (widget) {\r\n if (!widget) {\r\n return;\r\n }\r\n var d = this.date() || this.getMoment();\r\n if (widget.find('.datepicker').is(':visible')) {\r\n this.date(d.clone().subtract(1, 'M'));\r\n }\r\n },\r\n pageDown: function (widget) {\r\n if (!widget) {\r\n return;\r\n }\r\n var d = this.date() || this.getMoment();\r\n if (widget.find('.datepicker').is(':visible')) {\r\n this.date(d.clone().add(1, 'M'));\r\n }\r\n },\r\n enter: function () {\r\n this.hide();\r\n },\r\n escape: function () {\r\n this.hide();\r\n },\r\n //tab: function (widget) { //this break the flow of the form. disabling for now\r\n // var toggle = widget.find('.picker-switch a[data-action=\"togglePicker\"]');\r\n // if(toggle.length > 0) toggle.click();\r\n //},\r\n 'control space': function (widget) {\r\n if (widget.find('.timepicker').is(':visible')) {\r\n widget.find('.btn[data-action=\"togglePeriod\"]').click();\r\n }\r\n },\r\n t: function () {\r\n this.date(this.getMoment());\r\n },\r\n 'delete': function () {\r\n this.clear();\r\n }\r\n },\r\n debug: false,\r\n allowInputToggle: false,\r\n disabledTimeIntervals: false,\r\n disabledHours: false,\r\n enabledHours: false,\r\n viewDate: false\r\n };\r\n}));\r\n","!function (e, t) { \"use strict\"; \"function\" == typeof define && define.amd ? define(\"stackframe\", [], t) : \"object\" == typeof exports ? module.exports = t() : e.StackFrame = t() }(this, function () { \"use strict\"; function e(e) { return !isNaN(parseFloat(e)) && isFinite(e) } function t(e, t, r, i, n, a) { void 0 !== e && this.setFunctionName(e), void 0 !== t && this.setArgs(t), void 0 !== r && this.setFileName(r), void 0 !== i && this.setLineNumber(i), void 0 !== n && this.setColumnNumber(n), void 0 !== a && this.setSource(a) } return t.prototype = { getFunctionName: function () { return this.functionName }, setFunctionName: function (e) { this.functionName = String(e) }, getArgs: function () { return this.args }, setArgs: function (e) { if (\"[object Array]\" !== Object.prototype.toString.call(e)) throw new TypeError(\"Args must be an Array\"); this.args = e }, getFileName: function () { return this.fileName }, setFileName: function (e) { this.fileName = String(e) }, getLineNumber: function () { return this.lineNumber }, setLineNumber: function (t) { if (!e(t)) throw new TypeError(\"Line Number must be a Number\"); this.lineNumber = Number(t) }, getColumnNumber: function () { return this.columnNumber }, setColumnNumber: function (t) { if (!e(t)) throw new TypeError(\"Column Number must be a Number\"); this.columnNumber = Number(t) }, getSource: function () { return this.source }, setSource: function (e) { this.source = String(e) }, toString: function () { var t = this.getFunctionName() || \"{anonymous}\", r = \"(\" + (this.getArgs() || []).join(\",\") + \")\", i = this.getFileName() ? \"@\" + this.getFileName() : \"\", n = e(this.getLineNumber()) ? \":\" + this.getLineNumber() : \"\", a = e(this.getColumnNumber()) ? \":\" + this.getColumnNumber() : \"\"; return t + r + i + n + a } }, t }), function (e, t) { \"use strict\"; \"function\" == typeof define && define.amd ? define(\"error-stack-parser\", [\"stackframe\"], t) : \"object\" == typeof exports ? module.exports = t(require(\"stackframe\")) : e.ErrorStackParser = t(e.StackFrame) }(this, function (e) { \"use strict\"; var t = /(^|@)\\S+\\:\\d+/, r = /^\\s*at .*(\\S+\\:\\d+|\\(native\\))/m, i = /^(eval@)?(\\[native code\\])?$/; return { parse: function (e) { if (\"undefined\" != typeof e.stacktrace || \"undefined\" != typeof e[\"opera#sourceloc\"]) return this.parseOpera(e); if (e.stack && e.stack.match(r)) return this.parseV8OrIE(e); if (e.stack && e.stack.match(t)) return this.parseFFOrSafari(e); throw new Error(\"Cannot parse given Error object\") }, extractLocation: function (e) { if (-1 === e.indexOf(\":\")) return [e]; var t = e.replace(/[\\(\\)\\s]/g, \"\").split(\":\"), r = t.pop(), i = t[t.length - 1]; if (!isNaN(parseFloat(i)) && isFinite(i)) { var n = t.pop(); return [t.join(\":\"), n, r] } return [t.join(\":\"), r, void 0] }, parseV8OrIE: function (t) { return t.stack.split(\"\\n\").filter(function (e) { return !!e.match(r) }, this).map(function (t) { t.indexOf(\"(eval \") > -1 && (t = t.replace(/eval code/g, \"eval\").replace(/(\\(eval at [^\\()]*)|(\\)\\,.*$)/g, \"\")); var r = t.replace(/^\\s+/, \"\").replace(/\\(eval code/g, \"(\").split(/\\s+/).slice(1), i = this.extractLocation(r.pop()), n = r.join(\" \") || void 0, a = \"eval\" === i[0] ? void 0 : i[0]; return new e(n, void 0, a, i[1], i[2], t) }, this) }, parseFFOrSafari: function (t) { return t.stack.split(\"\\n\").filter(function (e) { return !e.match(i) }, this).map(function (t) { if (t.indexOf(\" > eval\") > -1 && (t = t.replace(/ line (\\d+)(?: > eval line \\d+)* > eval\\:\\d+\\:\\d+/g, \":$1\")), -1 === t.indexOf(\"@\") && -1 === t.indexOf(\":\")) return new e(t); var r = t.split(\"@\"), i = this.extractLocation(r.pop()), n = r.shift() || void 0; return new e(n, void 0, i[0], i[1], i[2], t) }, this) }, parseOpera: function (e) { return !e.stacktrace || e.message.indexOf(\"\\n\") > -1 && e.message.split(\"\\n\").length > e.stacktrace.split(\"\\n\").length ? this.parseOpera9(e) : e.stack ? this.parseOpera11(e) : this.parseOpera10(e) }, parseOpera9: function (t) { for (var r = /Line (\\d+).*script (?:in )?(\\S+)/i, i = t.message.split(\"\\n\"), n = [], a = 2, s = i.length; s > a; a += 2) { var o = r.exec(i[a]); o && n.push(new e(void 0, void 0, o[2], o[1], void 0, i[a])) } return n }, parseOpera10: function (t) { for (var r = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i, i = t.stacktrace.split(\"\\n\"), n = [], a = 0, s = i.length; s > a; a += 2) { var o = r.exec(i[a]); o && n.push(new e(o[3] || void 0, void 0, o[2], o[1], void 0, i[a])) } return n }, parseOpera11: function (r) { return r.stack.split(\"\\n\").filter(function (e) { return !!e.match(t) && !e.match(/^Error created at/) }, this).map(function (t) { var r, i = t.split(\"@\"), n = this.extractLocation(i.pop()), a = i.shift() || \"\", s = a.replace(//, \"$2\").replace(/\\([^\\)]*\\)/g, \"\") || void 0; a.match(/\\(([^\\)]*)\\)/) && (r = a.replace(/^[^\\(]+\\(([^\\)]*)\\)$/, \"$1\")); var o = void 0 === r || \"[arguments not available]\" === r ? void 0 : r.split(\",\"); return new e(s, o, n[0], n[1], n[2], t) }, this) } } });\r\n//# sourceMappingURL=error-stack-parser.min.js.map","(function ($) {\r\n $.fn.dropDown = function () {\r\n $(this).each(function () {\r\n\r\n if ($(this).data('rustig.dropdown.isloaded'))\r\n return;\r\n $(this).data('rustig.dropdown.isloaded', true);\r\n\r\n var dropdownAttr = 'dropdown-flyout';\r\n var selectDropdownIdAttr = 'dropdown-flyout-id';\r\n\r\n var reload = function () {\r\n populateOptions();\r\n selectItem($(null));\r\n };\r\n\r\n var reset = function () {\r\n $textInput.val('');\r\n $select.empty();\r\n $flyout.empty();\r\n if (!$select.data('no-empty-option')) {\r\n $select.append(emptyOption);\r\n }\r\n\r\n clearLastValue();\r\n reload();\r\n };\r\n\r\n var clearLastValue = function () {\r\n previouslySelectedValue = null;\r\n }\r\n\r\n var $select = $(this).bind('dropdown:reload', reload)\r\n .bind('dropdown:reset', reset)\r\n .bind('dropdown:clearLastValue', clearLastValue)\r\n .bind('dropdown:ondragstart', function (e) {\r\n close();\r\n });\r\n\r\n var dropDownId = '_id_' + Math.random();\r\n var selectId = $select.attr('id');\r\n var selectTextInput = selectId + '-input';\r\n $select.attr(selectDropdownIdAttr.asData(), dropDownId);\r\n\r\n var $textInput = $('');\r\n $textInput.attr('data-filteritems', dropDownId)\r\n .attr('data-fi-selected-class', 'selected')\r\n .filteritems();\r\n\r\n //remove the dropdown button\r\n var hideButton = false;\r\n if ($select.attr(\"data-hidebutton\") != null)\r\n hideButton = true;\r\n\r\n //when an item is selected display the option value rather than the option text\r\n var displayValue = false;\r\n if ($select.attr(\"data-displayvalue\") != null)\r\n displayValue = true;\r\n\r\n //override flyout width (added by casepointe)\r\n var flyoutWidth = $select.outerWidth();\r\n var hasOverridenWidth = $select.attr(\"data-flyoutwidth\") != null;\r\n if (hasOverridenWidth) {\r\n flyoutWidth = parseInt($select.attr(\"data-flyoutwidth\"));\r\n }\r\n\r\n var $buttonHtml = $($select.data('button-html'));\r\n\r\n var $field = $('
    ').addClass('dropdown-field');\r\n\r\n let displayStyle = $select.css('display');\r\n if (displayStyle === \"none\") {\r\n $field.css('display', displayStyle);\r\n }\r\n\r\n $field.insertAfter($select);\r\n\r\n $(dropdownAttr.asDataSelector(dropDownId)).remove();\r\n\r\n var $flyout = $('
      ')\r\n .attr(dropdownAttr.asData(), dropDownId)\r\n .addClass('dropdown-flyout')\r\n .hide()\r\n .scroll(function () {\r\n $(document).unbind('click', documentClick);\r\n $(document).bind('click', documentClick);\r\n })\r\n $('body').append($flyout);\r\n\r\n var mouseInContainer = false;\r\n var mouseInField = false;\r\n var mouseInFlyout = false;\r\n\r\n var updateMouseInContainer = function () {\r\n mouseInContainer = mouseInField || mouseInFlyout;\r\n };\r\n\r\n $field.mouseenter(function () { mouseInField = true; updateMouseInContainer(); })\r\n .mouseleave(function () { mouseInField = false; updateMouseInContainer(); });\r\n $flyout.mouseenter(function () { mouseInFlyout = true; updateMouseInContainer(); })\r\n .mouseleave(function () { mouseInFlyout = false; updateMouseInContainer(); });\r\n\r\n $select.detach().appendTo($field);\r\n\r\n // Added by case pointe\r\n if ($field.parent().hasClass('dropdown-field')) {\r\n var parent = $field.parent();\r\n $field.detach().insertAfter(parent);\r\n parent.remove();\r\n }\r\n\r\n // Added by case pointe\r\n // Add relavent controls depending on what mode it's in.\r\n var allowsCustomInput = $select.is('[data-allow-custom-input]');\r\n if (allowsCustomInput) {\r\n var $input = $(''); // Copy over all the attributes\r\n $input.attr('id', selectId);\r\n $input.attr('name', $select.attr('name'));\r\n $input.attr('class', $select.attr('class'));\r\n $input.addClass('real-input');\r\n\r\n // The hidden input is going to be the primary form value to post now.\r\n selectId = selectId + '-select';\r\n $select.attr('id', selectId);\r\n $select.removeAttr('name');\r\n\r\n $input.insertBefore($select);\r\n $input.val($select.attr('data-initial-input-value'));\r\n\r\n var selectedOption = $select.find('option[value=\"' + $input.val() + '\"]');\r\n if (selectedOption && selectedOption.text()) {\r\n $textInput.data('initial-value', selectedOption.text());\r\n }\r\n }\r\n\r\n var doesSelectHaveValue = function (value) {\r\n if (!value || !value.length) {\r\n return false;\r\n }\r\n return $select.find('option[value=\"' + value + '\"]').length > 0;\r\n };\r\n var $items = function () { return $('li', $flyout); };\r\n var $selected = function () { return $('li.selected', $flyout); };\r\n var changeSupressed = false;\r\n var previouslySelectedValue = $select.val();\r\n var setValue = function (value, text) {\r\n if (allowsCustomInput)\r\n setValueForCustomInput(value, text);\r\n else\r\n setValueForSelect(value);\r\n\r\n $textInput.filteritems('emptyFilter');\r\n };\r\n\r\n var setValueForCustomInput = function (value, text) {\r\n var selectHasValue = doesSelectHaveValue(value);\r\n var selectValue = selectHasValue ? value : null;\r\n setValueForSelect(selectValue);\r\n $input.val(text).change();\r\n };\r\n var setValueForSelect = function (value) {\r\n if (previouslySelectedValue == value) {\r\n $select.val(value);\r\n return;\r\n }\r\n previouslySelectedValue = value;\r\n\r\n changeSupressed = true;\r\n $select.val(value).change();\r\n changeSupressed = false;\r\n };\r\n\r\n var documentClick = function (e) {\r\n if ($(e.target).parents().index($field) == -1) {\r\n selectItem();\r\n close();\r\n $(document).unbind('click', documentClick);\r\n }\r\n };\r\n var toListItems = function (e) {\r\n var value = e.attr('value');\r\n var isEmpty = !value;\r\n\r\n var $item = $('
    • ')\r\n .attr('data-fi', dropDownId)\r\n .attr('data-value', e.attr('value'))\r\n .attr('data-text', (e.text() || ''))\r\n .addClass('option');\r\n\r\n if (isEmpty)\r\n $item.attr('data-fi-empty', 'on')\r\n .addClass('dropdown-empty-option');\r\n\r\n if (e.text())\r\n $item.text(e.text());\r\n else\r\n $item.html(' ');\r\n\r\n return $item[0].outerHTML;\r\n };\r\n var populateOptions = function () {\r\n var html = $select.children().map(function () { return toListItems($(this)); }).get().join('');\r\n $flyout.html(html);\r\n };\r\n populateOptions();\r\n\r\n $flyout.on('click', 'li', function () {\r\n $textInput.focus();\r\n selectItem($(this));\r\n close();\r\n });\r\n\r\n var displayItem = function ($item) {\r\n $items().removeClass('selected');\r\n $item.addClass('selected');\r\n if (displayValue) {\r\n $textInput.val($item.attr(\"data-value\").trim());\r\n $textInput.attr('title', $item.text());\r\n } else {\r\n $textInput.val($item.text().trim());\r\n }\r\n };\r\n\r\n var textInputId = selectTextInput;\r\n\r\n if ($select.attr('readonly'))\r\n $textInput.attr('readonly', $select.attr('readonly'));\r\n if ($select.isDisabled())\r\n $textInput.disable();\r\n if ($select.attr('data-required'))\r\n $textInput.attr('data-required', $select.attr('data-required'));\r\n\r\n var onButtonClick = function (e) {\r\n if ($flyout.is(':visible'))\r\n close();\r\n else {\r\n open(e);\r\n }\r\n $textInput.focus();\r\n return false;\r\n }\r\n if ($select.attr(\"disabled\") != undefined) {\r\n $textInput.attr(\"disabled\", \"disabled\");\r\n }\r\n $textInput\r\n .addClass(\"dropdown-input input-field\")\r\n .attr('id', textInputId)\r\n .val(function () {\r\n //use attr instead of data since data attempts to parse valus as int which loses precision. (\"08\" => 8) See: http://bugs.jquery.com/ticket/7579\r\n var initialValue = $select.attr('data-initial-input-value');\r\n if (allowsCustomInput) {\r\n return initialValue;\r\n }\r\n else {\r\n var foundItem = $select.find('option[value=\"' + initialValue + '\"]');\r\n if (foundItem.length == 1) {\r\n if (displayValue) {\r\n $textInput.attr('title', foundItem.text());\r\n return foundItem.val();\r\n }\r\n return foundItem.text();\r\n }\r\n return null;\r\n }\r\n })\r\n .click(function (e) {\r\n onButtonClick(e);\r\n })\r\n .keydown(function (e) { keydown(e); })\r\n .keyup(function (e) { keyup(e); })\r\n .blur(function () {\r\n if (!mouseInContainer || tabKeyPressed) {\r\n selectItem();\r\n close();\r\n tabKeyPressed = false;\r\n }\r\n })\r\n .insertAfter($select);\r\n\r\n var initialTextValue = $textInput.data('initial-value');\r\n if (initialTextValue) {\r\n $textInput.val(initialTextValue);\r\n }\r\n\r\n if ($select.attr('placeholder'))\r\n $textInput.attr('placeholder', $select.attr('placeholder'));\r\n\r\n if ($select.attr('autofocus'))\r\n $textInput.attr('autofocus', 'autofocus');\r\n\r\n var $button = $(null);\r\n if (!hideButton) {\r\n $button = $('')\r\n .attr('type', 'button')\r\n .attr('tabindex', '-1')\r\n .addClass('button button-icon dropdown-button')\r\n .click(onButtonClick)\r\n .append($buttonHtml)\r\n .insertAfter($textInput);\r\n }\r\n\r\n $select.hide();\r\n\r\n $select.change(function () {\r\n if (changeSupressed) return;\r\n resetValue();\r\n })\r\n .bind('disabled', function () {\r\n $textInput.disable();\r\n $button.disable();\r\n })\r\n .bind('enabled', function () {\r\n $textInput.enable();\r\n $button.enable();\r\n })\r\n .focus(function () {\r\n $textInput.focus();\r\n });\r\n\r\n var open = function (e) {\r\n if ($flyout.is(':visible') || $textInput.isReadonly() || $textInput.isDisabled())\r\n return false;\r\n\r\n var $containerFlyout = $(e.target).closest('[class $= \"-flyout\"]');\r\n $('[class $= \"-flyout\"]').not($containerFlyout).hide();\r\n $items().show().removeHighlight();\r\n var width = hasOverridenWidth ? flyoutWidth : $textInput.outerWidth();\r\n\r\n $flyout.css('width', width);\r\n Rustig.ElementPosition.setPositionByElement($flyout, $textInput);\r\n $flyout.show();\r\n };\r\n var close = function () {\r\n $flyout.hide();\r\n };\r\n var tabKeyPressed = false;\r\n var enterPressed = false;\r\n var keydown = function (e) {\r\n var key = e.keyCode;\r\n tabKeyPressed = key == 9;\r\n enterPressed = key == 13;\r\n var upPressed = key == 38;\r\n var downPressed = key == 40;\r\n\r\n if (tabKeyPressed) {\r\n return;\r\n } else if (enterPressed) {\r\n selectItem();\r\n close();\r\n } else if (upPressed) {\r\n open(e);\r\n var $prev = $selected().prev('li');\r\n while ($prev.length > 0 && $prev.is('[data-fi-filtered]'))\r\n $prev = $prev.prev('li');\r\n if ($selected().length > 0 && $prev.length > 0) {\r\n $selected().removeClass('selected');\r\n $prev.addClass('selected');\r\n $flyout.scrollTo($prev);\r\n }\r\n } else if (downPressed) {\r\n open(e);\r\n var $next = $selected().next('li');\r\n while ($next.length > 0 && $next.is('[data-fi-filtered'))\r\n $next = $next.next('li');\r\n if ($selected().length == 0) {\r\n var $listItems = $items();\r\n var $firstItem = $listItems.filter(':visible').first();\r\n $firstItem.addClass('selected');\r\n $flyout.scrollTo($firstItem);\r\n }\r\n else if ($next.length > 0) {\r\n $selected().removeClass('selected');\r\n $next.addClass('selected');\r\n $flyout.scrollTo($next);\r\n }\r\n }\r\n };\r\n var emptyOption = '';\r\n\r\n var keyup = function (e) {\r\n var key = e.keyCode;\r\n if (key == 9 || key == 13 || key == 16 || key == 38 || key == 40)\r\n return;\r\n\r\n if (key == 27) { //esc \r\n resetValue();\r\n close();\r\n return;\r\n }\r\n\r\n open(e);\r\n\r\n $textInput.filteritems('filterItems');\r\n };\r\n\r\n $select[0].displayItem = function ($item) { displayItem($item); }; //CAN WE KILL!\r\n\r\n var selectItem = function ($item) {\r\n $item = $item || $selected();\r\n\r\n var hasSelectedItem = $item.length != 0;\r\n if (!hasSelectedItem && !allowsCustomInput)\r\n $item = $items().filter('[data-value=\"' + $select.val() + '\"]');\r\n\r\n hasSelectedItem = $item.length != 0;\r\n if (hasSelectedItem)\r\n displayItem($item);\r\n\r\n var value = !allowsCustomInput || hasSelectedItem ? $item.attr('data-value') : '';\r\n\r\n setValue(value, $textInput.val());\r\n };\r\n var resetValue = function () {\r\n var $item = $items().filter('[data-value=\"' + $select.val() + '\"]');\r\n selectItem($item);\r\n };\r\n var escapeRegExp = function (str) {\r\n return str.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\");\r\n };\r\n });\r\n\r\n var cleanUpOrphanedFlyouts = function () {\r\n $('[data-dropdown-flyout]').each(function () {\r\n var id = $(this).data('dropdown-flyout');\r\n var shouldDelete = $('dropdown-flyout-id'.asDataSelector(id)).length == 0;\r\n\r\n if (shouldDelete)\r\n $(this).remove();\r\n });\r\n }();\r\n };\r\n\r\n $(document).on('dragstart.rustig.modal', function (e) {\r\n $(e.target).find('.dropdown-field select').trigger('dropdown:ondragstart');\r\n });\r\n\r\n})(jQuery);\r\n","(function (Legacy, $) {\r\n var treeItems = function ($, $field, $flyout) {\r\n var self = this;\r\n var $input = $('.dropdowntree-realinput', $field);\r\n var $tree = $(null);\r\n var $currentItem;\r\n var changeSuppressed = false;\r\n\r\n /* initialization */\r\n $input.change(function () {\r\n if (changeSuppressed) return;\r\n self.currentItem(self.getItemByValue($input.val()));\r\n });\r\n\r\n /* eventing */\r\n var eventHandlers = {};\r\n self.on = function (eventName, handler) {\r\n var existingHandlers;\r\n if (eventHandlers.hasOwnProperty(eventName))\r\n existingHandlers = eventHandlers[eventName];\r\n else {\r\n existingHandlers = [];\r\n eventHandlers[eventName] = existingHandlers;\r\n }\r\n\r\n existingHandlers.push(handler);\r\n };\r\n var raise = function (eventName, data) {\r\n var handlers;\r\n if (eventHandlers.hasOwnProperty(eventName))\r\n handlers = eventHandlers[eventName];\r\n\r\n if (handlers) {\r\n for (var i = 0; i < handlers.length; i++) {\r\n handlers[i].call(self, data);\r\n }\r\n }\r\n };\r\n\r\n /* item accessors */\r\n var selectItem = function ($item) {\r\n $tree.jstree('deselect_all');\r\n if ($item != null)\r\n $tree.jstree('select_node', $item, true);\r\n };\r\n self.currentItem = function ($item) {\r\n if (arguments.length === 0) {\r\n if ($currentItem == null)\r\n $currentItem = self.getItemByValue($input.val());\r\n return $currentItem;\r\n }\r\n else {\r\n var value = '';\r\n if ($item.length != 0)\r\n value = $item.data('value') || '';\r\n\r\n if ($item == $currentItem) {\r\n changeSuppressed = true;\r\n $input.val(value).change();\r\n changeSuppressed = false;\r\n raise('currentItemChanged', $item);\r\n return;\r\n }\r\n\r\n $currentItem = $item;\r\n changeSuppressed = true;\r\n $input.val(value);\r\n selectItem($item);\r\n $input.change();\r\n changeSuppressed = false;\r\n raise('currentItemChanged', $item);\r\n }\r\n };\r\n self.selectedItem = function ($item) {\r\n if (arguments.length === 0) {\r\n var jstreeNode = $tree.jstree('get_selected');\r\n return jstreeNode.length != 0 ? $('#' + jstreeNode, $tree) : $();\r\n }\r\n else\r\n selectItem($item);\r\n };\r\n self.getItemByValue = function (value) {\r\n if (value === undefined)\r\n return $();\r\n if (value == '')\r\n return $('li.tree-empty-node', $tree);\r\n \r\n return $('li[data-value=\"' + value + '\"]', $tree); \r\n };\r\n self.selectNone = function () {\r\n $currentItem = $('li.tree-empty-node', $tree);\r\n self.selectedItem($currentItem);\r\n }\r\n\r\n /* item population */\r\n self.populate = function () {\r\n var $treeTarget = $('.selectTree-tree', $field);\r\n if ($flyout)\r\n $treeTarget = $treeTarget.clone().appendTo($flyout);\r\n $treeTarget.show(); \r\n\r\n $tree = $treeTarget\r\n .jstree(\r\n {\r\n 'core': {\r\n 'animation': false,\r\n 'multiple': false,\r\n 'themes': {\r\n 'dots': false,\r\n 'icons': false\r\n }\r\n },\r\n 'search': {\r\n 'search_callback': function (str, node) {\r\n var trimmedSearchText = unescape(str.toLowerCase().trim());\r\n if (node.text.toLowerCase().indexOf(trimmedSearchText) >= 0)\r\n return true;\r\n if (node.data.text.toLowerCase().indexOf(trimmedSearchText) >= 0)\r\n return true;\r\n\r\n var parentNode = node.parent != '#' ? $tree.jstree('get_node', node.parent) : null;\r\n if (parentNode) {\r\n if (parentNode.text.toLowerCase().indexOf(trimmedSearchText) >= 0)\r\n return true;\r\n if (parentNode.data.text.toLowerCase().indexOf(trimmedSearchText) >= 0)\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n 'show_only_matches': true\r\n },\r\n 'plugins': ['search']\r\n })\r\n .on('click', 'a', function () {\r\n var $listItem = $(this).parent();\r\n var itemValue = $listItem.attr('data-value');\r\n if (itemValue !== undefined || $listItem.hasClass('tree-empty-node')) {\r\n self.currentItem($listItem);\r\n }\r\n else {\r\n $tree.jstree('toggle_node', $listItem);\r\n }\r\n })\r\n .on('clear_search.jstree', function () {\r\n $('.highlight', $tree).closest('a').removeHighlight();\r\n })\r\n .on('search.jstree', function (e, args) {\r\n // these nodes are detached from rendered tree\r\n var $nodes = args.nodes; \r\n var searchtext = unescape(args.str.toLowerCase().trim());\r\n var selected = false;\r\n $nodes.each(function () {\r\n var id = $(this).attr('id');\r\n var $n = $('#' + id, $tree);\r\n $n.find('.jstree-search').highlight(searchtext);\r\n if (!selected) {\r\n selected = true;\r\n self.selectedItem($n);\r\n }\r\n });\r\n })\r\n .addClass('treeinput');\r\n\r\n $tree.jstree(true).refresh();\r\n };\r\n self.clear = function () {\r\n $currentItem = null;\r\n $flyout.html('');\r\n };\r\n\r\n /* selection navigation */\r\n self.selectNextItem = function () {\r\n var $current = this.selectedItem();\r\n var $next;\r\n if ($current.length == 0 || $current.is(':hidden'))\r\n $next = $('li:visible', $tree).first();\r\n else {\r\n $next = $current.hasClass('jstree-closed') || $current.hasClass('jstree-leaf')\r\n ? $current.nextAll('li:visible').first()\r\n : $('li', $current).filter(':visible').first();\r\n while ($next.length == 0 && $current.length > 0) {\r\n $current = $current.parentsUntil('.selectTree-tree', 'li').filter(':visible').first();\r\n $next = $current.nextAll('li:visible').first();\r\n }\r\n }\r\n \r\n if ($next.length > 0) {\r\n self.selectedItem($next);\r\n }\r\n };\r\n self.selectPreviousItem = function () {\r\n var $current = this.selectedItem();\r\n var $prev;\r\n if ($current.length == 0 || $current.is(':hidden'))\r\n $prev = $('li:visible', $tree).first();\r\n else {\r\n $prev = $current.prevAll('li:visible').first();\r\n if ($prev.length == 0)\r\n $prev = $current.parentsUntil('.selectTree-tree', 'li').filter(':visible').first();\r\n else {\r\n while (!$prev.hasClass('jstree-closed') && !$prev.hasClass('jstree-leaf')) {\r\n $prev = $prev.children('ul').first().children('li:visible').last();\r\n }\r\n }\r\n }\r\n\r\n if ($prev.length > 0) {\r\n self.selectedItem($prev);\r\n }\r\n };\r\n\r\n /* filtering */\r\n self.filterItems = function (filterText) {\r\n if (filterText && filterText != '') {\r\n $tree.jstree('search', escape(filterText));\r\n }\r\n else {\r\n $tree.jstree('clear_search');\r\n $noneItem = $('li.tree-empty-node', $tree);\r\n self.selectedItem($noneItem);\r\n $tree.jstree('open_all');\r\n }\r\n };\r\n self.clearFilter = function () {\r\n $tree.jstree('clear_search');\r\n $tree.jstree('close_all');\r\n\r\n var leafs = $tree.jstree('get_bottom_selected', true);\r\n leafs.forEach(function (item, index) {\r\n item.parents.forEach(function (parent, parentIndex) {\r\n $tree.jstree('open_node', parent);\r\n });\r\n });\r\n };\r\n };\r\n\r\n $.fn.dropdowntree = function () {\r\n $(this).each(function () {\r\n var $field = $(this);\r\n var $mainInput = $field.find('.dropdowntree-realinput');\r\n var mainInputInitialValue = $mainInput.val();\r\n\r\n // [begin]\r\n if ($field.data('is-dropdown-up')) return;\r\n $field.data('is-dropdown-up', true);\r\n\r\n var flyoutAttr = 'dropdowntree-flyout';\r\n var flyoutIdAttr = 'dropdowntree-flyout-id';\r\n var flyoutId = '_id_' + Math.random();\r\n\r\n var $textInput = $('.dropdowntree-input', $field)\r\n .attr(flyoutIdAttr.asData(), flyoutId);\r\n var $button = $('button', $field).addClass('button button-icon dropdowntree-button')\r\n .attr('type', 'button')\r\n .attr('tabindex', -1);\r\n var $flyout = $('.dropdowntree-flyout', $field)\r\n .attr(flyoutAttr.asData(), flyoutId)\r\n\r\n var items = new treeItems($, $field, $flyout);\r\n\r\n var setTextInputValue = function (val) {\r\n return $textInput.val(val).change();\r\n };\r\n\r\n // move flyout\r\n $(flyoutAttr.asDataSelector(flyoutId)).remove();\r\n $flyout.detach(); // flyout rendered server side\r\n $('body').append($flyout);\r\n\r\n var getInitialText = function () {\r\n var initialValue = mainInputInitialValue;\r\n if (initialValue == '')\r\n return initialValue;\r\n\r\n var $item = items.getItemByValue(initialValue)\r\n if ($item.length == 0)\r\n $item = $('.selectTree-tree li[data-value=\"' + initialValue + '\"]', $field);\r\n\r\n return $item.length != 0 ? $item.data('text') : initialValue;\r\n };\r\n\r\n var $input = $();\r\n\r\n var copyAttributesFromHiddenInputToUserFacingInput = function ($field, $textInput) {\r\n var $hiddenInput = $('input[type=\"hidden\"]', $field);\r\n if ($hiddenInput.attr('readonly'))\r\n $textInput.attr('readonly', $hiddenInput.attr('readonly'));\r\n if ($hiddenInput.isDisabled())\r\n $textInput.disable();\r\n if ($hiddenInput.attr('data-required'))\r\n $textInput.attr('data-required', $hiddenInput.attr('data-required'));\r\n }($field, $textInput);\r\n\r\n var populated = false;\r\n var populateOptions = function () {\r\n if (populated) return;\r\n items.populate();\r\n populated = true;\r\n };\r\n\r\n var clear = function () {\r\n items.clear();\r\n populated = false;\r\n };\r\n\r\n /* events */\r\n try {\r\n $textInput.data('r-is-constructing', true);\r\n setTextInputValue(getInitialText())\r\n .click(function () {\r\n if ($flyout.is(':hidden'))\r\n open();\r\n return false;\r\n })\r\n .keydown(function (e) { keydown(e); })\r\n .keyup(function (e) { keyup(e); })\r\n .blur(function () {\r\n if (tabKeyPressed) {\r\n setSelectedItem();\r\n close();\r\n tabKeyPressed = false;\r\n }\r\n });\r\n }\r\n finally {\r\n $textInput.data('r-is-constructing', false);\r\n }\r\n\r\n $mainInput.bind('dropdown:reload', function (e, customValue) {\r\n var lastSelectedValue = items.currentItem() ? items.currentItem().value : null;\r\n\r\n clear();\r\n populateOptions();\r\n\r\n var itemToReselect = items.getItemByValue(lastSelectedValue);\r\n\r\n if (itemToReselect)\r\n items.currentItem(itemToReselect);\r\n\r\n update();\r\n\r\n $field.trigger('dropdown:reloaded');\r\n });\r\n\r\n var documentClick = function (e) {\r\n var $targetAndParents = $(e.target).parents().add(e.target);\r\n if ($targetAndParents.index($field) == -1 && $targetAndParents.index($flyout) == -1) {\r\n setSelectedItem();\r\n close();\r\n }\r\n };\r\n var updating = false;\r\n items.on('currentItemChanged', function (item) {\r\n if (updating) return;\r\n update();\r\n close();\r\n });\r\n\r\n $button.click(function (e) {\r\n if ($flyout.is(':visible'))\r\n close();\r\n else {\r\n open();\r\n }\r\n $textInput.focus();\r\n return false;\r\n });\r\n\r\n /* todo: how do we handle these events */\r\n $mainInput.bind('disabled', function () {\r\n $textInput.disable();\r\n $button.disable();\r\n })\r\n .bind('enabled', function () {\r\n $textInput.enable();\r\n $button.enable();\r\n $mainInput.enable();\r\n })\r\n .focus(function () {\r\n $textInput.focus();\r\n });\r\n\r\n /* todo: this could probably be moved into the items but must be careful with order of operations, the bindings\r\n above must exist before invoking this (or we need to refactor the code) */\r\n if ($mainInput.is(':disabled')) {\r\n $mainInput.trigger('disabled');\r\n }\r\n\r\n /* flyout */\r\n var positionFlyout = function () {\r\n var inputOffset = $textInput.offset();\r\n $flyout.css('left', inputOffset.left);\r\n $flyout.css('top', inputOffset.top + $textInput.outerHeight());\r\n };\r\n var open = function () {\r\n if ($flyout.is(':visible') || $textInput.isReadonly() || $textInput.isDisabled())\r\n return false;\r\n\r\n populateOptions();\r\n\r\n positionFlyout();\r\n if ($flyout.find('li').length > 0)\r\n $flyout.css('width', $textInput.outerWidth()).show();\r\n $(document).bind('mouseup', documentClick);\r\n\r\n };\r\n var close = function () {\r\n $flyout.hide();\r\n items.clearFilter();\r\n $(document).unbind('mouseup', documentClick);\r\n };\r\n $(window).resize(function () {\r\n positionFlyout();\r\n });\r\n $mainInput.data(\"$flyout\", $flyout);\r\n\r\n /* keyboard input */\r\n var tabKeyPressed = false;\r\n var keys = {\r\n tab: 9,\r\n enter: 13,\r\n shift: 16,\r\n escape: 27,\r\n up: 38,\r\n down: 40,\r\n s: 83,\r\n home: 36,\r\n end: 35\r\n };\r\n var keydown = function (e) {\r\n var key = e.keyCode;\r\n tabKeyPressed = key == keys.tab;\r\n enterPressed = key == keys.enter;\r\n var upPressed = key == keys.up;\r\n var downPressed = key == keys.down;\r\n\r\n if (tabKeyPressed) {\r\n return;\r\n } else if (enterPressed) {\r\n setSelectedItem();\r\n close();\r\n } else if (upPressed) {\r\n open();\r\n items.selectPreviousItem();\r\n } else if (downPressed) {\r\n open();\r\n items.selectNextItem();\r\n }\r\n };\r\n var keyup = function (e) {\r\n var key = e.keyCode;\r\n\r\n if (key == keys.tab || key == keys.enter || key == keys.shift || key == keys.up || key == keys.down || key == keys.home || key == keys.end)\r\n return;\r\n\r\n if (key == keys.escape) {\r\n reset();\r\n close();\r\n return;\r\n }\r\n\r\n open();\r\n items.filterItems($textInput.val());\r\n };\r\n\r\n /* item selection */\r\n var getItem = function (value) {\r\n if (!populated) populateOptions();\r\n return items.getItemByValue(value);\r\n };\r\n $mainInput[0].getItem = getItem;\r\n\r\n var selectItem = function ($item) {\r\n updating = true;\r\n items.currentItem($item);\r\n updating = false;\r\n update();\r\n };\r\n $mainInput[0].selectItem = selectItem;\r\n\r\n var isUpdating = function () {\r\n return updating;\r\n };\r\n $mainInput[0].isUpdating = isUpdating;\r\n\r\n var setSelectedItem = function () {\r\n var $selectedItem = items.selectedItem();\r\n if ($selectedItem.length !== 0)\r\n selectItem($selectedItem);\r\n else {\r\n reset();\r\n }\r\n };\r\n var reset = function () {\r\n items.selectedItem(items.currentItem());\r\n update();\r\n };\r\n var update = function () {\r\n var $item = items.currentItem();\r\n if ($item.length != 0) $input.val($item.data('text') || '').change();\r\n setTextInputValue($item.length != 0 ? ($item.data('text') || '').trim() : $input.val());\r\n };\r\n\r\n var selectItemByValue = function (itemValue) {\r\n var $item = getItem(itemValue || '');\r\n selectItem($item);\r\n };\r\n $mainInput[0].selectItemByValue = selectItemByValue;\r\n\r\n $field.data(\"dropdown\", {\r\n selectItemByValue: selectItemByValue\r\n });\r\n // [end]\r\n });\r\n }\r\n})(window.Legacy = window.Legacy || {}, jQuery);","(function ($) {\r\n $.fn.fileDragAndDrop = function (options) {\r\n var $self = $(this);\r\n if ($(this).length == 0)\r\n return;\r\n\r\n var defaults = {\r\n addDropStyle: function ($dropArea) {\r\n if (!$dropArea.hasClass('over'))\r\n $dropArea.addClass('over');\r\n },\r\n removeDropStyle: function ($dropArea) {\r\n $dropArea.removeClass('over');\r\n },\r\n onDropMissed: function ($dropArea, e) {\r\n defaults.removeDropStyle($dropArea);\r\n },\r\n onFileDrop: function ($dropArea, files, e) {\r\n defaults.removeDropStyle($dropArea);\r\n },\r\n onDropIsNotFile: function ($dropArea, e) {\r\n defaults.removeDropStyle($dropArea);\r\n }\r\n };\r\n\r\n options = $.extend(defaults, options);\r\n\r\n function preventDefault(e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }\r\n\r\n function setDragEffect(e, effect) {\r\n e.originalEvent.dataTransfer.dropEffect = effect;\r\n }\r\n\r\n function isOnFileInput(e) {\r\n return e.target.tagName.toLowerCase() == \"input\" && e.target.type.toLowerCase() == \"file\";\r\n }\r\n\r\n $(document).on('dragenter dragover', function (e) {\r\n if (!isOnFileInput(e)) {\r\n preventDefault(e);\r\n setDragEffect(e, 'none');\r\n options.addDropStyle($self);\r\n }\r\n });\r\n\r\n $(document).on('dragleave', function (e) {\r\n options.removeDropStyle($self);\r\n });\r\n\r\n $(this).each(function () {\r\n var $this = $(this);\r\n\r\n if (!$this.is('.drop-area'))\r\n $this.addClass('drop-area');\r\n\r\n $this.bind('dragenter dragover', function (e) {\r\n preventDefault(e);\r\n setDragEffect(e, 'copy');\r\n options.addDropStyle($this);\r\n });\r\n\r\n $this.bind('dropmissed', function (e) {\r\n itemMissed(e);\r\n });\r\n\r\n this.addEventListener('drop', itemDropped, false);\r\n document.addEventListener('drop', itemMissed, false);\r\n\r\n function itemMissed(e) {\r\n // if dropping on a file input, we want to allow the drop\r\n if (!isOnFileInput(e)) {\r\n preventDefault(e);\r\n }\r\n\r\n options.onDropMissed($this, e);\r\n }\r\n\r\n function itemDropped(e) {\r\n preventDefault(e);\r\n $('.drop-area').not($this).trigger('dropmissed', e);\r\n\r\n var files = e.dataTransfer.files;\r\n\r\n if (files.length > 0) {\r\n options.onFileDrop($this, files, e);\r\n } else {\r\n options.onDropIsNotFile($this, e);\r\n }\r\n }\r\n });\r\n }\r\n})(jQuery);\r\n","/*\r\n * keyHandling: misc functions related to keyup, keydown, keypress\r\n */\r\n\r\nvar keyHandling = {\r\n /* \r\n * Returns true if keyCode is a non-printable key, false otherwise.\r\n * options.includeEnter will count the enter key as non printable when true.\r\n */\r\n keyIsNonPrintable: function(keyCode, options) {\r\n var nonPrintableKeyCodes = [\r\n 9, // tab\r\n 27, // esc\r\n 16, // shift\r\n 17, // control\r\n 18, // alt\r\n 20, // caps lock\r\n 144, // num lock\r\n 37, // left arrow\r\n 38, // up arrow\r\n 39, // down arrow\r\n 40, // right arrow\r\n 45, // insert\r\n 36, // home\r\n 35, // end\r\n 33, // page up\r\n 34, // page down\r\n 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123 // f keys\r\n ];\r\n\r\n if (options != null && options.includeEnter == true)\r\n nonPrintableKeyCodes.push(13); // enter\r\n\r\n return nonPrintableKeyCodes.indexOf(keyCode) != -1;\r\n }\r\n};","(function($) {\r\n $.fn.moneyField = function() {\r\n $(this).each(function () {\r\n var element = this;\r\n if (!element.closest(\".editortable table, table.editortable\")) {\r\n var symbol = element.hasAttribute('data-no-symbol') ? '' : '$';\r\n $(element).autoNumeric('init', { aSign: symbol, vMin: '-999999999.99' });\r\n }\r\n });\r\n };\r\n})(jQuery);\r\n","var Legacy = Legacy || {};\r\n\r\n(function (Legacy, $) {\r\n Legacy.NameField = { fields: {} };\r\n\r\n Legacy.NameField.getOpenFields = function () {\r\n var openFields = [];\r\n for (var fieldId in Legacy.NameField.fields) {\r\n var field = Legacy.NameField.fields[fieldId];\r\n if (field.isOpen())\r\n openFields.push(field);\r\n }\r\n return openFields;\r\n };\r\n\r\n function keepFlyoutInWindow($flyout) {\r\n $flyout.css('left', '');\r\n var flyoutLeft = $flyout.offset().left;\r\n var flyoutRight = flyoutLeft + $flyout.outerWidth();\r\n if (flyoutRight > $(window).width())\r\n $flyout.css('left', $flyout.position().left - (flyoutRight - $(window).width()));\r\n }\r\n\r\n $.fn.nameField = function () {\r\n $(this).each(function () {\r\n var $fieldContainer = $(this);\r\n\r\n if ($fieldContainer.data('rustig.namefield.isloaded'))\r\n return;\r\n\r\n var $mainInput = $('.name-full-input', $fieldContainer);\r\n $fieldContainer.copyFieldBooleanAttributes($mainInput);\r\n $mainInput.data('rustig.namefield.isloaded', true);\r\n\r\n var $flyoutButton = $('.name-dropdown-button', $fieldContainer);\r\n var $flyout = $('.name-flyout', $fieldContainer);\r\n var $prefix = function () {\r\n return $('.prefix', $fieldContainer);\r\n };\r\n\r\n var $first = $('.first', $fieldContainer);\r\n var $middle = $('.middle', $fieldContainer);\r\n var $last = $('.last', $fieldContainer);\r\n var $suffix = function () {\r\n return $('.suffix', $fieldContainer);\r\n };\r\n\r\n var sizeFlyoutToInput = function () {\r\n $flyout.outerWidth($mainInput.outerWidth());\r\n };\r\n\r\n $flyoutButton.on('click.rustig.name-field', function (e) {\r\n if ($mainInput.isReadonly() || $mainInput.isDisabled())\r\n return false;\r\n\r\n if ($flyout.is(':visible'))\r\n $flyout.hide();\r\n else {\r\n $('.flyout').hide();\r\n sizeFlyoutToInput();\r\n $flyout.show();\r\n keepFlyoutInWindow($flyout);\r\n }\r\n \r\n return false;\r\n });\r\n\r\n $flyout.hide()\r\n .focus(function () { $flyout.show() }); // open flyout if any field in the flyout gets focus\r\n\r\n var notLastClickedInDropDownFlyout = function (e) {\r\n var $target = e ? $(e.target) : $lastClicked;\r\n if (!$target) return true;\r\n return $target.closest('.dropdown-flyout').length == 0;\r\n }\r\n\r\n var documentClicked = function (e) {\r\n if ($(e.target).parents().index($fieldContainer) == -1 && notLastClickedInDropDownFlyout(e))\r\n $flyout.hide();\r\n };\r\n $(document).on('click.rustig.name-field', documentClicked);\r\n\r\n var $lastClicked;\r\n var documentMouseDown = function (e) {\r\n $lastClicked = $(e.target);\r\n };\r\n $(document).on('mousedown.rustig.name-field', documentMouseDown);\r\n\r\n var notLastClickedInFlyout = function () {\r\n if (!$lastClicked) return true;\r\n return $lastClicked.closest('.name-flyout').length == 0;\r\n }\r\n\r\n var notLastClickedFlyoutButton = function () {\r\n if (!$lastClicked) return true;\r\n return $lastClicked.closest('.name-flyout-button').length == 0;\r\n }\r\n\r\n $fieldContainer.on('blur.rustig.name-field', '.name-flyout input, .name-flyout a', function (e) {\r\n if (notLastClickedInFlyout() && notLastClickedFlyoutButton() && notLastClickedInDropDownFlyout()) {\r\n setTimeout(function () {\r\n if ($('.name-flyout :focus', $fieldContainer).length == 0)\r\n $flyout.hide();\r\n }, 100);\r\n }\r\n $lastClicked = null;\r\n });\r\n\r\n var suppressChanges = false;\r\n $mainInput.on('change.rustig.name-field', function () {\r\n if (suppressChanges) return;\r\n suppressChanges = true;\r\n\r\n var name = Rustig.PersonName.parse($(this).val());\r\n $mainInput.val(name.format()).change();\r\n $prefix().val(name.prefix).change();\r\n $first.val(name.first).change();\r\n $middle.val(name.middle).change();\r\n $last.val(name.last).change();\r\n $suffix().val(name.suffix).change();\r\n\r\n suppressChanges = false;\r\n });\r\n\r\n $mainInput[0].refreshFormattedName = function (formattedName) {\r\n $mainInput.val(formattedName);\r\n };\r\n\r\n var updateInputs = function () {\r\n suppressChanges = true;\r\n \r\n var name = new Rustig.PersonName($prefix().val(), $first.val(), $middle.val(), $last.val(), $suffix().val());\r\n\r\n $mainInput.val(name.format()).change();\r\n\r\n suppressChanges = false;\r\n }\r\n\r\n $fieldContainer[0].asAtomicChange = function (action) {\r\n suppressChanges = true;\r\n action();\r\n suppressChanges = false;\r\n updateInputs();\r\n }\r\n\r\n $fieldContainer.on('change.rustig.name-field', '.prefix, .first, .middle, .last, .suffix', function () {\r\n if (suppressChanges) return;\r\n updateInputs();\r\n });\r\n\r\n updateInputs();\r\n\r\n var fieldObject = {\r\n getValue: function () {\r\n return $mainInput.val();\r\n },\r\n setValue: function (value) {\r\n $mainInput.val(value).change();\r\n },\r\n enable: function (enable) {\r\n if (typeof enable == \"undefined\" || enable)\r\n $fieldContainer.enableChildren();\r\n else\r\n $fieldContainer.disableChildren();\r\n },\r\n disable: function () {\r\n $fieldContainer.disableChildren();\r\n },\r\n focus: function () {\r\n $mainInput.focus();\r\n },\r\n close: function () {\r\n $flyout.hide();\r\n },\r\n isOpen: function () {\r\n return $flyout.is(':visible');\r\n },\r\n resizeFlyout: function () {\r\n sizeFlyoutToInput();\r\n }\r\n };\r\n var mainId = $mainInput.attr('id');\r\n if (!mainId) {\r\n $mainInput.uniqueId();\r\n mainId = $mainInput.attr('id');\r\n }\r\n Legacy.NameField.fields[mainId] = fieldObject;\r\n\r\n function dispose() {\r\n $(document)\r\n .off('click', documentClicked)\r\n .off('mousedown', documentMouseDown);\r\n delete Legacy.NameField.fields[mainId];\r\n }\r\n\r\n $mainInput.on('remove', function () {\r\n dispose();\r\n });\r\n });\r\n };\r\n\r\n $(window).resize(function () {\r\n var openFields = Legacy.NameField.getOpenFields();\r\n openFields.forEach(function (field) {\r\n field.resizeFlyout();\r\n });\r\n });\r\n})(Legacy = Legacy || {}, jQuery);\r\n","+function ($) {\r\n var toggle = '[data-nav]'\r\n\r\n var Nav = function (element) {}\r\n\r\n Nav.prototype.toggleMenu = function (e) {\r\n var $parent = $(this).parent('li');\r\n var $targetMenu = $parent.find('> .nav-submenu');\r\n\r\n if ($targetMenu) {\r\n e.preventDefault();\r\n\r\n if ($parent.hasClass('nav-open') == false) {\r\n $targetMenu.slideDown(100, function () {\r\n $parent.addClass('nav-open');\r\n });\r\n }\r\n else {\r\n $targetMenu.slideUp(100, function () {\r\n $parent.removeClass('nav-open');\r\n });\r\n }\r\n }\r\n }\r\n\r\n Nav.selectTabs = function () {\r\n var $navs = $(toggle);\r\n\r\n $('[data-nav-selected]').each(function () {\r\n var $root = $(this);\r\n var selectedTab = $root.data('nav-selected');\r\n selectTab($root, selectedTab)\r\n });\r\n }\r\n\r\n function selectTab ($root, key){\r\n if (!key) {\r\n console.log('nav: key not found on page');\r\n return;\r\n }\r\n\r\n $root.find('.nav-open').removeClass('nav-open');\r\n $root.find('.nav-active').removeClass('nav-active');\r\n var mode = $root.closest('[data-nav-mode]').data('nav-mode') || 'ExpandActive';\r\n var indicateActive = $root.closest('[data-nav-indicate-active]').data('nav-indicate-active') || 'on';\r\n var shouldOpen = mode == 'ExpandActive';\r\n var shouldActivate = indicateActive == 'on';\r\n\r\n //activate element based on url\r\n var $targetElement = $root.find('[data-nav-key=\"' + key + '\"]');\r\n if ($targetElement.length > 0) {\r\n\r\n if(shouldActivate)\r\n $targetElement.addClass('nav-active');\r\n\r\n if(shouldOpen)\r\n openParentNav($targetElement);\r\n }\r\n else {\r\n console.log(\"nav: unable to find tab with key \" + key)\r\n }\r\n }\r\n\r\n function openParentNav($childNav) {\r\n $childNav.parents('ul.nav-submenu').each(function (index) {\r\n $(this).parent('li').addClass('nav-open');\r\n $(this).show();\r\n });\r\n }\r\n\r\n function Plugin(option) {\r\n return this.each(function () {\r\n var $this = $(this)\r\n var data = $this.data('rustig.nav')\r\n\r\n if (!data) $this.data('rustig.nav', (data = new Nav(this)))\r\n if (typeof option == 'string') data[option].call($this)\r\n })\r\n }\r\n\r\n $.fn.nav = Plugin;\r\n\r\n $(document)\r\n .on('click.rustig.nav', toggle, Nav.prototype.toggleMenu);\r\n\r\n Nav.selectTabs();\r\n}(jQuery);\r\n\r\n\r\n\r\n\r\n","(function($) {\r\n $.fn.numberField = function() {\r\n $(this).each(function () {\r\n if ($(this).closest(\".editortable table, table.editortable\").length == 0)\r\n $(this).autoNumeric('init', { aSign: '', vMin: '-999999999', mDec: 0 });\r\n });\r\n };\r\n})(jQuery);\r\n","(function($) {\r\n $.fn.percentField = function () {\r\n var $this = $(this);\r\n var decimals = parseInt($this.data('decimals') || '0');\r\n $(this).autoNumeric('init', { aSign: '%', pSign: 's', vMin: '-999999999.99', mDec: decimals });\r\n };\r\n})(jQuery);\r\n","(function (Legacy) {\r\n Legacy.PhoneNumber = function (countryCode, areaCode, number, extension) {\r\n var self = this;\r\n self.countryCode = countryCode;\r\n self.areaCode = areaCode;\r\n self.number = number;\r\n self.extension = extension;\r\n\r\n self.format = function () {\r\n var formatted = \"\";\r\n var cc = self.countryCode;\r\n var area = self.areaCode;\r\n var number = self.number;\r\n var ext = self.extension;\r\n\r\n if (!cc) cc = \"\";\r\n if (!area) area = \"\";\r\n if (!number) number = \"\";\r\n if (!ext) ext = \"\";\r\n\r\n if (cc == \"\" && area == \"\" && number == \"\" && ext == \"\")\r\n return \"\";\r\n\r\n if (!self.isAmerican()) {\r\n if (cc != \"\") formatted = \"+\" + cc + \" \";\r\n if (area != \"\") formatted += \"(\" + area + \") \";\r\n if (number != \"\") formatted += number;\r\n if (ext != \"\") formatted += \" x \" + ext;\r\n }\r\n else {\r\n if (area != \"\") formatted = \"(\" + area + \") \";\r\n if (number != \"\") formatted += number.substring(0, 3) + \"-\" + number.substring(3, 7);\r\n if (ext != \"\") formatted += \" x \" + ext;\r\n }\r\n\r\n return formatted;\r\n };\r\n\r\n self.isAmerican = function () {\r\n return self.isAmericanCountryCode() &&\r\n self.isAmericanAreaCode() &&\r\n self.isAmericanNumber()\r\n };\r\n\r\n self.isAmericanCountryCode = function () {\r\n var cc = self.countryCode;\r\n if (!cc)\r\n cc = \"\";\r\n else\r\n cc = cc.replace(\"0\", \"\");\r\n return cc == \"\" || cc == \"1\" || cc == \"11\";\r\n };\r\n\r\n self.isAmericanAreaCode = function () {\r\n var area = self.areaCode;\r\n if (!area) area = \"\";\r\n return area == \"\" || area.length == 3;\r\n };\r\n\r\n self.isAmericanNumber = function () {\r\n var number = self.number;\r\n if (!number) number = \"\";\r\n return number.length == 7;\r\n };\r\n\r\n if (self.isAmericanCountryCode()) {\r\n if (self.number != null)\r\n self.number = number.replace(/[^0-9A-Za-z]/g, '');\r\n }\r\n };\r\n\r\n Legacy.PhoneNumber.parse = function (numberToParse) {\r\n if (numberToParse == null || numberToParse == \"\")\r\n return new Legacy.PhoneNumber();\r\n\r\n var cc = null, area = null, number = null, ext = null;\r\n var phone = numberToParse;\r\n\r\n // parse out country code\r\n if (phone.charAt(0) == '+') {\r\n var ccEndsAt = phone.indexOf(\" \");\r\n if (ccEndsAt != -1) {\r\n cc = phone.substring(1, ccEndsAt);\r\n phone = phone.substring(ccEndsAt + 1, phone.length);\r\n }\r\n else {\r\n cc = phone.substring(1, 2);\r\n phone = phone.substring(2, phone.length)\r\n }\r\n }\r\n\r\n //strip out whitespace, -, ., etc.\r\n phone = phone.replace(/[^0-9A-Za-z]/g, '');\r\n\r\n // parse out extension\r\n var xAt = phone.indexOf('x');\r\n if (xAt != -1) {\r\n ext = phone.substring(xAt + 1, phone.length);\r\n phone = phone.substring(0, xAt);\r\n }\r\n\r\n // parse out area code and number\r\n if (phone.length <= 7) {\r\n number = phone;\r\n }\r\n else {\r\n area = phone.substring(0, 3);\r\n number = phone.substring(3, phone.length);\r\n }\r\n\r\n return new Legacy.PhoneNumber(cc, area, number, ext);\r\n };\r\n})(this.Legacy = this.Legacy || {});","/* ========================================================================\r\n * phoneField.js\r\n *\r\n * HTML structure:\r\n * \r\n * \r\n * \r\n *
      \r\n * \r\n * \r\n * \r\n * \r\n *
      \r\n * \r\n *\r\n * Plugin API:\r\n * $('.phone-field').phoneField();\r\n *\r\n * var api = $('.phone-field').data('phoneField');\r\n * var fullInputValue = api.getValue();\r\n * api.setValue(fullInputValue);\r\n * api.toggleEnabled(isEnabled);\r\n * ======================================================================== */\r\n\r\n(function ($) {\r\n function keepFlyoutInWindow($flyout) {\r\n $flyout.css('left', '');\r\n var flyoutLeft = $flyout.offset().left;\r\n var flyoutRight = flyoutLeft + $flyout.outerWidth();\r\n if (flyoutRight > $(window).width())\r\n $flyout.css('left', $flyout.position().left - (flyoutRight - $(window).width()));\r\n }\r\n\r\n $.fn.phoneField = function () {\r\n $(this).each(function () {\r\n var $field = $(this);\r\n\r\n var $mainInput = $('.phone-full-input', $field);\r\n $field.copyFieldBooleanAttributes($mainInput);\r\n var $flyout = $('.phone-field-flyout', $field);\r\n var $countryCode = $('.phone-field-country-code', $flyout);\r\n var $areaCode = $('.phone-field-area-code', $flyout);\r\n var $phoneNumber = $('.phone-field-phone-number', $flyout);\r\n var $extension = $('.phone-field-extension', $flyout);\r\n\r\n var $flyoutButton = $('.phone-field-flyout-button', $field)\r\n .click(function (e) {\r\n if ($mainInput.isDisabled() || $mainInput.isReadonly())\r\n return false;\r\n\r\n if ($flyout.is(':visible'))\r\n $flyout.hide();\r\n else {\r\n $flyout.outerWidth($mainInput.outerWidth());\r\n $('.flyout').hide();\r\n $flyout.show();\r\n keepFlyoutInWindow($flyout);\r\n }\r\n return false;\r\n });\r\n\r\n $flyout.hide()\r\n .focus(function () { $flyout.show() }); // open flyout if any field in the flyout gets focus\r\n\r\n $(document).click(function (e) {\r\n if ($(e.target).parents().index($field) == -1)\r\n $flyout.hide();\r\n });\r\n\r\n $('input', $flyout).on('blur', function (e) {\r\n setTimeout(function () {\r\n if ($(':focus', $flyout).length == 0)\r\n $flyout.hide();\r\n }, 200);\r\n });\r\n\r\n var settingPhone = false;\r\n var setPhone = function (phone) {\r\n settingPhone = true;\r\n try {\r\n $mainInput.val(phone.format()).change();\r\n $countryCode.val(phone.countryCode).change();\r\n $areaCode.val(phone.areaCode).change();\r\n $phoneNumber.val(phone.number).change();\r\n $extension.val(phone.extension).change();\r\n }\r\n finally {\r\n settingPhone = false;\r\n }\r\n };\r\n\r\n var updateInputs = function () {\r\n if (settingPhone)\r\n return;\r\n\r\n var phone = new Legacy.PhoneNumber($countryCode.val(),\r\n $areaCode.val(),\r\n $phoneNumber.val(),\r\n $extension.val());\r\n\r\n setPhone(phone);\r\n };\r\n\r\n $mainInput.change(function () {\r\n if (settingPhone)\r\n return;\r\n\r\n var phone = Legacy.PhoneNumber.parse($(this).val());\r\n setPhone(phone);\r\n });\r\n if ($countryCode) {\r\n $countryCode.change(updateInputs);\r\n }\r\n $areaCode.change(updateInputs);\r\n $phoneNumber.change(updateInputs);\r\n $extension.change(updateInputs);\r\n\r\n updateInputs();\r\n\r\n var fieldObject = {\r\n getValue: function () {\r\n return $mainInput.val();\r\n },\r\n setValue: function (value) {\r\n $mainInput.val(value).change();\r\n },\r\n enable: function (enable) {\r\n if (typeof enable == \"undefined\" || enable)\r\n $field.enableChildren();\r\n else\r\n $field.disableChildren();\r\n },\r\n disable: function () {\r\n $field.disableChildren();\r\n }\r\n };\r\n $field.data(\"phoneField\", fieldObject);\r\n });\r\n };\r\n})(jQuery);\r\n","var TableHelper = {};\r\nTableHelper.SetSelectAllStateForTable = function ($table) {\r\n if ($table.length == 0) return;\r\n\r\n var $selectAll = $table.find('thead > tr > th .select-all');\r\n\r\n if ($selectAll.length == 0) return;\r\n\r\n var isAllChecked = $table.find('tbody > tr:visible > .row-selector > input[type=\"checkbox\"]:not(:checked)').length == 0;\r\n $selectAll.attr('checked', isAllChecked);\r\n\r\n TableHelper.SyncSelectAllForFixedHeader($table, isAllChecked);\r\n};\r\n\r\nTableHelper.SingleSelectRow = function ($table, $siblingRows, $targetRow) {\r\n var $newSelectedRow = null;\r\n var shouldSelect = $targetRow.hasClass('selected') == false;\r\n\r\n if (shouldSelect) {\r\n $siblingRows.removeClass('selected');\r\n $targetRow.addClass('selected');\r\n $newSelectedRow = $targetRow;\r\n }\r\n else {\r\n $targetRow.removeClass('selected');\r\n }\r\n\r\n var $input = $targetRow.find('.row-selector input[type=\"radio\"]');\r\n if ($input.length == 1) {\r\n $input.attr('checked', shouldSelect);\r\n $input.change();\r\n }\r\n\r\n var event = jQuery.Event('rowselectionchanged');\r\n event.selectedRow = $newSelectedRow;\r\n $table.trigger(event);\r\n};\r\n\r\nTableHelper.HandleSingleRowVisible = function ($table) {\r\n var isSingleRowVisible = $table.find('tr:visible').length == 1;\r\n $table.toggleClass('table-single-row-visible', isSingleRowVisible);\r\n};\r\n\r\n(function ($) {\r\n $(document)\r\n .on('mousedown.rustig.table', '.table:not(.table-display):not(.multiselect) > tbody > tr:not(.tr-group)', function(e) {\r\n if ($(e.target).is('a')) return;\r\n\r\n TableHelper.SingleSelectRow($(this).closest('.table'), $(this).siblings('tr'), $(this));\r\n })\r\n .on('change.rustig.table', '.fht-thead .fht-table > thead > tr > th .select-all', function(e) {\r\n var $realTable = $(this).closest('.fht-table-wrapper').find('.fht-tbody .table:not(.table-display).multiselect');\r\n $realTable.find('thead > tr > th .select-all').click();\r\n })\r\n .on('visibilitychanged.rustig', 'tbody tr', function(e){\r\n $(this).each(function () {\r\n var $table = $(this).closest('.table');\r\n TableHelper.HandleSingleRowVisible($table);\r\n });\r\n });\r\n\r\n $('.table').each(function () {\r\n TableHelper.HandleSingleRowVisible($(this));\r\n })\r\n})(jQuery);","\r\n/*\r\n *\r\n * More info at [www.dropzonejs.com](http://www.dropzonejs.com)\r\n *\r\n * Copyright (c) 2012, Matias Meno\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n *\r\n */\r\n\r\n(function () {\r\n var Dropzone, Emitter, camelize, contentLoaded, detectVerticalSquash, drawImageIOSFix, noop, without,\r\n __slice = [].slice,\r\n __hasProp = {}.hasOwnProperty,\r\n __extends = function (child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };\r\n\r\n noop = function () { };\r\n\r\n Emitter = (function () {\r\n function Emitter() { }\r\n\r\n Emitter.prototype.addEventListener = Emitter.prototype.on;\r\n\r\n Emitter.prototype.on = function (event, fn) {\r\n this._callbacks = this._callbacks || {};\r\n if (!this._callbacks[event]) {\r\n this._callbacks[event] = [];\r\n }\r\n this._callbacks[event].push(fn);\r\n return this;\r\n };\r\n\r\n Emitter.prototype.emit = function () {\r\n var args, callback, callbacks, event, _i, _len;\r\n event = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\r\n this._callbacks = this._callbacks || {};\r\n callbacks = this._callbacks[event];\r\n if (callbacks) {\r\n for (_i = 0, _len = callbacks.length; _i < _len; _i++) {\r\n callback = callbacks[_i];\r\n callback.apply(this, args);\r\n }\r\n }\r\n return this;\r\n };\r\n\r\n Emitter.prototype.removeListener = Emitter.prototype.off;\r\n\r\n Emitter.prototype.removeAllListeners = Emitter.prototype.off;\r\n\r\n Emitter.prototype.removeEventListener = Emitter.prototype.off;\r\n\r\n Emitter.prototype.off = function (event, fn) {\r\n var callback, callbacks, i, _i, _len;\r\n if (!this._callbacks || arguments.length === 0) {\r\n this._callbacks = {};\r\n return this;\r\n }\r\n callbacks = this._callbacks[event];\r\n if (!callbacks) {\r\n return this;\r\n }\r\n if (arguments.length === 1) {\r\n delete this._callbacks[event];\r\n return this;\r\n }\r\n for (i = _i = 0, _len = callbacks.length; _i < _len; i = ++_i) {\r\n callback = callbacks[i];\r\n if (callback === fn) {\r\n callbacks.splice(i, 1);\r\n break;\r\n }\r\n }\r\n return this;\r\n };\r\n\r\n return Emitter;\r\n\r\n })();\r\n\r\n Dropzone = (function (_super) {\r\n var extend, resolveOption;\r\n\r\n __extends(Dropzone, _super);\r\n\r\n Dropzone.prototype.Emitter = Emitter;\r\n\r\n\r\n /*\r\n This is a list of all available events you can register on a dropzone object.\r\n \r\n You can register an event handler like this:\r\n \r\n dropzone.on(\"dragEnter\", function() { });\r\n */\r\n\r\n Dropzone.prototype.events = [\"drop\", \"dragstart\", \"dragend\", \"dragenter\", \"dragover\", \"dragleave\", \"addedfile\", \"addedfiles\", \"removedfile\", \"thumbnail\", \"error\", \"errormultiple\", \"processing\", \"processingmultiple\", \"uploadprogress\", \"totaluploadprogress\", \"sending\", \"sendingmultiple\", \"success\", \"successmultiple\", \"canceled\", \"canceledmultiple\", \"complete\", \"completemultiple\", \"reset\", \"maxfilesexceeded\", \"maxfilesreached\", \"queuecomplete\"];\r\n\r\n Dropzone.prototype.defaultOptions = {\r\n url: null,\r\n method: \"post\",\r\n withCredentials: false,\r\n parallelUploads: 2,\r\n uploadMultiple: false,\r\n maxFilesize: 256,\r\n paramName: \"file\",\r\n createImageThumbnails: true,\r\n maxThumbnailFilesize: 10,\r\n thumbnailWidth: 120,\r\n thumbnailHeight: 120,\r\n thumbnailSquare: false,\r\n confirm: function (text, callback) { Dropzone.confirm(text, callback); },\r\n filesizeBase: 1000,\r\n maxFiles: null,\r\n params: {},\r\n clickable: true,\r\n clickableElements: null,\r\n ignoreHiddenFiles: true,\r\n acceptedFiles: null,\r\n acceptedMimeTypes: null,\r\n autoProcessQueue: true,\r\n autoQueue: true,\r\n addRemoveLinks: false,\r\n previewsContainer: null,\r\n previewsContainerPrepend: null,\r\n hiddenInputContainer: \"body\",\r\n capture: null,\r\n renameFilename: null,\r\n dictDefaultMessage: \"Drop files here to upload\",\r\n dictFallbackMessage: \"Your browser does not support drag'n'drop file uploads.\",\r\n dictFallbackText: \"Please use the fallback form below to upload your files like in the olden days.\",\r\n dictFileTooBig: \"File is too big ({{filesize}}MB). Max filesize: {{maxFilesize}}MB.\",\r\n dictInvalidFileType: \"You can't upload files of this type.\",\r\n dictResponseError: \"Server responded with {{statusCode}} code.\",\r\n dictCancelUpload: \"Cancel upload\",\r\n dictCancelUploadConfirmation: \"Are you sure you want to cancel this upload?\",\r\n dictRemoveFile: \"Remove file\",\r\n dictRemoveFileConfirmation: null,\r\n dictMaxFilesExceeded: \"You can not upload any more files.\",\r\n accept: function (file, done) {\r\n return done();\r\n },\r\n init: function () {\r\n return noop;\r\n },\r\n forceFallback: false,\r\n fallback: function () {\r\n var child, messageElement, span, _i, _len, _ref;\r\n this.element.className = \"\" + this.element.className + \" dz-browser-not-supported\";\r\n _ref = this.element.getElementsByTagName(\"div\");\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n child = _ref[_i];\r\n if (/(^| )dz-message($| )/.test(child.className)) {\r\n messageElement = child;\r\n child.className = \"dz-message\";\r\n continue;\r\n }\r\n }\r\n if (!messageElement) {\r\n messageElement = Dropzone.createElement(\"
      \");\r\n this.element.appendChild(messageElement);\r\n }\r\n span = messageElement.getElementsByTagName(\"span\")[0];\r\n if (span) {\r\n if (span.textContent != null) {\r\n span.textContent = this.options.dictFallbackMessage;\r\n } else if (span.innerText != null) {\r\n span.innerText = this.options.dictFallbackMessage;\r\n }\r\n }\r\n return this.element.appendChild(this.getFallbackForm());\r\n },\r\n resize: function (file) {\r\n var info, srcRatio, trgRatio;\r\n info = {\r\n srcX: 0,\r\n srcY: 0,\r\n srcWidth: file.width,\r\n srcHeight: file.height\r\n };\r\n srcRatio = file.width / file.height;\r\n info.optWidth = this.options.thumbnailWidth;\r\n info.optHeight = this.options.thumbnailHeight;\r\n if (this.options.thumbnailSquare) {\r\n var max = Math.max(info.srcHeight, info.srcWidth);\r\n var ratio = info.optHeight / max;\r\n info.optHeight = ratio * info.srcHeight;\r\n info.optWidth = ratio * info.srcWidth;\r\n } else if ((info.optWidth == null) && (info.optHeight == null)) {\r\n info.optWidth = info.srcWidth;\r\n info.optHeight = info.srcHeight;\r\n } else if (info.optWidth == null) {\r\n info.optWidth = srcRatio * info.optHeight;\r\n } else if (info.optHeight == null) {\r\n info.optHeight = (1 / srcRatio) * info.optWidth;\r\n }\r\n trgRatio = info.optWidth / info.optHeight;\r\n if (file.height < info.optHeight || file.width < info.optWidth) {\r\n info.trgHeight = info.srcHeight;\r\n info.trgWidth = info.srcWidth;\r\n } else {\r\n if (srcRatio > trgRatio) {\r\n info.srcHeight = file.height;\r\n info.srcWidth = info.srcHeight * trgRatio;\r\n } else {\r\n info.srcWidth = file.width;\r\n info.srcHeight = info.srcWidth / trgRatio;\r\n }\r\n }\r\n info.srcX = (file.width - info.srcWidth) / 2;\r\n info.srcY = (file.height - info.srcHeight) / 2;\r\n return info;\r\n },\r\n\r\n /*\r\n Those functions register themselves to the events on init and handle all\r\n the user interface specific stuff. Overwriting them won't break the upload\r\n but can break the way it's displayed.\r\n You can overwrite them if you don't like the default behavior. If you just\r\n want to add an additional event handler, register it on the dropzone object\r\n and don't overwrite those options.\r\n */\r\n drop: function (e) {\r\n for (var i = 0; i < this.clickableElements.length; i++) {\r\n this.clickableElements[i].classList.remove(\"dz-drag-hover\")\r\n }\r\n return this.element.classList.remove(\"dz-drag-hover\");\r\n },\r\n dragstart: noop,\r\n dragend: function (e) {\r\n for (var i = 0; i < this.clickableElements.length; i++) {\r\n this.clickableElements[i].classList.remove(\"dz-drag-hover\");\r\n }\r\n return this.element.classList.remove(\"dz-drag-hover\");\r\n },\r\n dragenter: function (e) {\r\n for (var i = 0; i < this.clickableElements.length; i++) {\r\n this.clickableElements[i].classList.add(\"dz-drag-hover\");\r\n }\r\n return this.element.classList.add(\"dz-drag-hover\");\r\n },\r\n dragover: function (e) {\r\n for (var i = 0; i < this.clickableElements.length; i++) {\r\n this.clickableElements[i].classList.add(\"dz-drag-hover\");\r\n }\r\n return this.element.classList.add(\"dz-drag-hover\");\r\n },\r\n dragleave: function (e) {\r\n for (var i = 0; i < this.clickableElements.length; i++) {\r\n this.clickableElements[i].classList.remove(\"dz-drag-hover\");\r\n }\r\n return this.element.classList.remove(\"dz-drag-hover\");\r\n },\r\n paste: noop,\r\n reset: function () {\r\n return this.element.classList.remove(\"dz-started\");\r\n },\r\n addedfile: function (file) {\r\n var node, removeFileEvent, removeLink, _i, _j, _k, _len, _len1, _len2, _ref, _ref1, _ref2, _results;\r\n if (this.element === this.previewsContainer) {\r\n this.element.classList.add(\"dz-started\");\r\n }\r\n if (this.previewsContainer) {\r\n file.previewElement = Dropzone.createElement(this.options.previewTemplate.trim());\r\n file.previewTemplate = file.previewElement;\r\n if (this.previewsContainerPrepend)\r\n $(file.previewElement).insertBefore($(this.previewsContainerPrepend));\r\n else\r\n this.previewsContainer.appendChild(file.previewElement);\r\n _ref = file.previewElement.querySelectorAll(\"[data-dz-name]\");\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n node = _ref[_i];\r\n node.textContent = this._renameFilename(file.name);\r\n node.setAttribute('title', this._renameFilename(file.name));\r\n node.setAttribute('value', this._renameFilename(file.name));\r\n }\r\n _ref1 = file.previewElement.querySelectorAll(\"[data-dz-size]\");\r\n for (_j = 0, _len1 = _ref1.length; _j < _len1; _j++) {\r\n node = _ref1[_j];\r\n node.innerHTML = this.filesize(file.size);\r\n }\r\n if (this.options.addRemoveLinks) {\r\n file._removeLink = Dropzone.createElement(\"\" + this.options.dictRemoveFile + \"\");\r\n file.previewElement.appendChild(file._removeLink);\r\n }\r\n removeFileEvent = (function (_this) {\r\n return function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (file.status === Dropzone.UPLOADING) {\r\n _this.options.confirm(_this.options.dictCancelUploadConfirmation, function () {\r\n return _this.removeFile(file);\r\n });\r\n } else {\r\n if (_this.options.dictRemoveFileConfirmation) {\r\n this.options.confirm(_this.options.dictRemoveFileConfirmation, function () {\r\n return _this.removeFile(file);\r\n });\r\n } else {\r\n return _this.removeFile(file);\r\n }\r\n }\r\n };\r\n })(this);\r\n _ref2 = file.previewElement.querySelectorAll(\"[data-dz-remove]\");\r\n _results = [];\r\n for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {\r\n removeLink = _ref2[_k];\r\n _results.push(removeLink.addEventListener(\"click\", removeFileEvent));\r\n }\r\n return _results;\r\n }\r\n },\r\n removedfile: function (file) {\r\n var _ref;\r\n if (file.previewElement) {\r\n if ((_ref = file.previewElement) != null) {\r\n _ref.parentNode.removeChild(file.previewElement);\r\n }\r\n }\r\n return this._updateMaxFilesReachedClass();\r\n },\r\n thumbnail: function (file, dataUrl) {\r\n var thumbnailElement, _i, _len, _ref;\r\n if (file.previewElement) {\r\n file.previewElement.classList.remove(\"dz-file-preview\");\r\n _ref = file.previewElement.querySelectorAll(\"[data-dz-thumbnail]\");\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n thumbnailElement = _ref[_i];\r\n thumbnailElement.alt = file.name;\r\n thumbnailElement.src = dataUrl;\r\n }\r\n return setTimeout(((function (_this) {\r\n return function () {\r\n return file.previewElement.classList.add(\"dz-image-preview\");\r\n };\r\n })(this)), 1);\r\n }\r\n },\r\n error: function (file, message) {\r\n var node, _i, _len, _ref, _results;\r\n if (file.previewElement) {\r\n file.previewElement.classList.add(\"dz-error\");\r\n if (typeof message !== \"String\" && message.error) {\r\n message = message.error;\r\n }\r\n _ref = file.previewElement.querySelectorAll(\"[data-dz-errormessage]\");\r\n _results = [];\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n node = _ref[_i];\r\n _results.push(node.textContent = message);\r\n }\r\n return _results;\r\n }\r\n },\r\n errormultiple: noop,\r\n processing: function (file) {\r\n if (file.previewElement) {\r\n file.previewElement.classList.add(\"dz-processing\");\r\n if (file._removeLink) {\r\n return file._removeLink.textContent = this.options.dictCancelUpload;\r\n }\r\n }\r\n },\r\n processingmultiple: noop,\r\n uploadprogress: function (file, progress, bytesSent) {\r\n var node, _i, _len, _ref, _results;\r\n if (file.previewElement) {\r\n _ref = file.previewElement.querySelectorAll(\"[data-dz-uploadprogress]\");\r\n _results = [];\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n node = _ref[_i];\r\n if (node.nodeName === 'PROGRESS') {\r\n _results.push(node.value = progress);\r\n } else {\r\n _results.push(node.style.width = \"\" + progress + \"%\");\r\n }\r\n }\r\n return _results;\r\n }\r\n },\r\n totaluploadprogress: noop,\r\n sending: noop,\r\n sendingmultiple: noop,\r\n success: function (file) {\r\n if (file.previewElement) {\r\n return file.previewElement.classList.add(\"dz-success\");\r\n }\r\n },\r\n successmultiple: noop,\r\n canceled: function (file) {\r\n // return this.emit(\"error\", file, \"Upload canceled.\");\r\n },\r\n canceledmultiple: noop,\r\n complete: function (file) {\r\n if (file._removeLink) {\r\n file._removeLink.textContent = this.options.dictRemoveFile;\r\n }\r\n if (file.previewElement) {\r\n return file.previewElement.classList.add(\"dz-complete\");\r\n }\r\n },\r\n completemultiple: noop,\r\n maxfilesexceeded: noop,\r\n maxfilesreached: noop,\r\n queuecomplete: noop,\r\n addedfiles: noop,\r\n previewTemplate: \"
      \\n
      \\n
      \\n
      \\n
      \\n
      \\n
      \\n
      \\n
      \\n \\n Check\\n \\n \\n \\n \\n \\n
      \\n
      \\n \\n Error\\n \\n \\n \\n \\n \\n \\n \\n
      \\n
      \"\r\n };\r\n\r\n extend = function () {\r\n var key, object, objects, target, val, _i, _len;\r\n target = arguments[0], objects = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\r\n for (_i = 0, _len = objects.length; _i < _len; _i++) {\r\n object = objects[_i];\r\n for (key in object) {\r\n val = object[key];\r\n target[key] = val;\r\n }\r\n }\r\n return target;\r\n };\r\n\r\n function Dropzone(element, options) {\r\n var elementOptions, fallback, _ref;\r\n this.element = element;\r\n this.version = Dropzone.version;\r\n this.defaultOptions.previewTemplate = this.defaultOptions.previewTemplate.replace(/\\n*/g, \"\");\r\n this.clickableElements = [];\r\n this.listeners = [];\r\n this.files = [];\r\n if (typeof this.element === \"string\") {\r\n this.element = document.querySelector(this.element);\r\n }\r\n if (!(this.element && (this.element.nodeType != null))) {\r\n throw new Error(\"Invalid dropzone element.\");\r\n }\r\n if (this.element.dropzone) {\r\n throw new Error(\"Dropzone already attached.\");\r\n }\r\n Dropzone.instances.push(this);\r\n this.element.dropzone = this;\r\n elementOptions = (_ref = Dropzone.optionsForElement(this.element)) != null ? _ref : {};\r\n this.options = extend({}, this.defaultOptions, elementOptions, options != null ? options : {});\r\n if (this.options.forceFallback || !Dropzone.isBrowserSupported()) {\r\n return this.options.fallback.call(this);\r\n }\r\n if (this.options.url == null) {\r\n this.options.url = this.element.getAttribute(\"action\");\r\n }\r\n if (!this.options.url) {\r\n throw new Error(\"No URL provided.\");\r\n }\r\n if (this.options.acceptedFiles && this.options.acceptedMimeTypes) {\r\n throw new Error(\"You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated.\");\r\n }\r\n if (this.options.acceptedMimeTypes) {\r\n this.options.acceptedFiles = this.options.acceptedMimeTypes;\r\n delete this.options.acceptedMimeTypes;\r\n }\r\n this.options.method = this.options.method.toUpperCase();\r\n if ((fallback = this.getExistingFallback()) && fallback.parentNode) {\r\n fallback.parentNode.removeChild(fallback);\r\n }\r\n if (this.options.previewsContainer !== false) {\r\n if (this.options.previewsContainer) {\r\n this.previewsContainer = Dropzone.getElement(this.options.previewsContainer, \"previewsContainer\");\r\n } else {\r\n this.previewsContainer = this.element;\r\n }\r\n }\r\n if (this.options.previewsContainerPrepend !== false) {\r\n this.previewsContainerPrepend = this.options.previewsContainerPrepend;\r\n }\r\n if (this.options.clickable) {\r\n if (this.options.clickable === true) {\r\n this.clickableElements = [this.element];\r\n } else {\r\n this.clickableElements = Dropzone.getElements(this.options.clickable, \"clickable\");\r\n }\r\n }\r\n if (this.options.clickableElements) {\r\n this.clickableElements = this.options.clickableElements;\r\n }\r\n this.init();\r\n }\r\n\r\n Dropzone.prototype.getAcceptedFiles = function () {\r\n var file, _i, _len, _ref, _results;\r\n _ref = this.files;\r\n _results = [];\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n file = _ref[_i];\r\n if (file.accepted) {\r\n _results.push(file);\r\n }\r\n }\r\n return _results;\r\n };\r\n\r\n Dropzone.prototype.getRejectedFiles = function () {\r\n var file, _i, _len, _ref, _results;\r\n _ref = this.files;\r\n _results = [];\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n file = _ref[_i];\r\n if (!file.accepted) {\r\n _results.push(file);\r\n }\r\n }\r\n return _results;\r\n };\r\n\r\n Dropzone.prototype.getFilesWithStatus = function (status) {\r\n var file, _i, _len, _ref, _results;\r\n _ref = this.files;\r\n _results = [];\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n file = _ref[_i];\r\n if (file.status === status) {\r\n _results.push(file);\r\n }\r\n }\r\n return _results;\r\n };\r\n\r\n Dropzone.prototype.getQueuedFiles = function () {\r\n return this.getFilesWithStatus(Dropzone.QUEUED);\r\n };\r\n\r\n Dropzone.prototype.getUploadingFiles = function () {\r\n return this.getFilesWithStatus(Dropzone.UPLOADING);\r\n };\r\n\r\n Dropzone.prototype.getAddedFiles = function () {\r\n return this.getFilesWithStatus(Dropzone.ADDED);\r\n };\r\n\r\n Dropzone.prototype.getActiveFiles = function () {\r\n var file, _i, _len, _ref, _results;\r\n _ref = this.files;\r\n _results = [];\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n file = _ref[_i];\r\n if (file.status === Dropzone.UPLOADING || file.status === Dropzone.QUEUED) {\r\n _results.push(file);\r\n }\r\n }\r\n return _results;\r\n };\r\n\r\n Dropzone.prototype.init = function () {\r\n var eventName, noPropagation, setupHiddenFileInput, _i, _len, _ref, _ref1;\r\n if (this.element.tagName === \"form\") {\r\n this.element.setAttribute(\"enctype\", \"multipart/form-data\");\r\n }\r\n if (this.element.classList.contains(\"dropzone\") && !this.element.querySelector(\".dz-message\")) {\r\n this.element.appendChild(Dropzone.createElement(\"
      \" + this.options.dictDefaultMessage + \"
      \"));\r\n }\r\n if (this.clickableElements.length) {\r\n setupHiddenFileInput = (function (_this) {\r\n return function () {\r\n if (_this.hiddenFileInput) {\r\n _this.hiddenFileInput.parentNode.removeChild(_this.hiddenFileInput);\r\n }\r\n _this.hiddenFileInput = document.createElement(\"input\");\r\n _this.hiddenFileInput.setAttribute(\"type\", \"file\");\r\n if ((_this.options.maxFiles == null) || _this.options.maxFiles > 1) {\r\n _this.hiddenFileInput.setAttribute(\"multiple\", \"multiple\");\r\n }\r\n _this.hiddenFileInput.className = \"dz-hidden-input\";\r\n if (_this.options.acceptedFiles != null) {\r\n _this.hiddenFileInput.setAttribute(\"accept\", _this.options.acceptedFiles);\r\n }\r\n if (_this.options.capture != null) {\r\n _this.hiddenFileInput.setAttribute(\"capture\", _this.options.capture);\r\n }\r\n _this.hiddenFileInput.style.visibility = \"hidden\";\r\n _this.hiddenFileInput.style.position = \"absolute\";\r\n _this.hiddenFileInput.style.top = \"0\";\r\n _this.hiddenFileInput.style.left = \"0\";\r\n _this.hiddenFileInput.style.height = \"0\";\r\n _this.hiddenFileInput.style.width = \"0\";\r\n document.querySelector(_this.options.hiddenInputContainer).appendChild(_this.hiddenFileInput);\r\n return _this.hiddenFileInput.addEventListener(\"change\", function () {\r\n var file, files, _i, _len;\r\n files = _this.hiddenFileInput.files;\r\n if (files.length) {\r\n for (_i = 0, _len = files.length; _i < _len; _i++) {\r\n file = files[_i];\r\n _this.addFile(file);\r\n }\r\n }\r\n _this.emit(\"addedfiles\", files);\r\n return setupHiddenFileInput();\r\n });\r\n };\r\n })(this);\r\n setupHiddenFileInput();\r\n }\r\n this.URL = (_ref = window.URL) != null ? _ref : window.webkitURL;\r\n _ref1 = this.events;\r\n for (_i = 0, _len = _ref1.length; _i < _len; _i++) {\r\n eventName = _ref1[_i];\r\n this.on(eventName, this.options[eventName]);\r\n }\r\n this.on(\"uploadprogress\", (function (_this) {\r\n return function () {\r\n return _this.updateTotalUploadProgress();\r\n };\r\n })(this));\r\n this.on(\"removedfile\", (function (_this) {\r\n return function () {\r\n return _this.updateTotalUploadProgress();\r\n };\r\n })(this));\r\n this.on(\"canceled\", (function (_this) {\r\n return function (file) {\r\n return _this.emit(\"complete\", file);\r\n };\r\n })(this));\r\n this.on(\"complete\", (function (_this) {\r\n return function (file) {\r\n if (_this.getAddedFiles().length === 0 && _this.getUploadingFiles().length === 0 && _this.getQueuedFiles().length === 0) {\r\n return setTimeout((function () {\r\n return _this.emit(\"queuecomplete\");\r\n }), 0);\r\n }\r\n };\r\n })(this));\r\n noPropagation = function (e) {\r\n e.stopPropagation();\r\n if (e.preventDefault) {\r\n return e.preventDefault();\r\n } else {\r\n return e.returnValue = false;\r\n }\r\n };\r\n this.listeners = [\r\n {\r\n element: this.element,\r\n events: {\r\n \"dragstart\": (function (_this) {\r\n return function (e) {\r\n return _this.emit(\"dragstart\", e);\r\n };\r\n })(this),\r\n \"dragenter\": (function (_this) {\r\n return function (e) {\r\n noPropagation(e);\r\n return _this.emit(\"dragenter\", e);\r\n };\r\n })(this),\r\n \"dragover\": (function (_this) {\r\n return function (e) {\r\n var efct;\r\n try {\r\n efct = e.dataTransfer.effectAllowed;\r\n } catch (_error) { }\r\n e.dataTransfer.dropEffect = 'move' === efct || 'linkMove' === efct ? 'move' : 'copy';\r\n noPropagation(e);\r\n return _this.emit(\"dragover\", e);\r\n };\r\n })(this),\r\n \"dragleave\": (function (_this) {\r\n return function (e) {\r\n return _this.emit(\"dragleave\", e);\r\n };\r\n })(this),\r\n \"drop\": (function (_this) {\r\n return function (e) {\r\n noPropagation(e);\r\n return _this.drop(e);\r\n };\r\n })(this),\r\n \"dragend\": (function (_this) {\r\n return function (e) {\r\n return _this.emit(\"dragend\", e);\r\n };\r\n })(this)\r\n }\r\n }\r\n ];\r\n this.clickableElements.forEach((function (_this) {\r\n return function (clickableElement) {\r\n return _this.listeners.push({\r\n element: clickableElement,\r\n events: {\r\n \"click\": function (evt) {\r\n if ((clickableElement !== _this.element) || (evt.target === _this.element || Dropzone.elementInside(evt.target, _this.element.querySelector(\".dz-message\")))) {\r\n _this.hiddenFileInput.click();\r\n }\r\n return true;\r\n },\r\n \"dragstart\":\r\n function (e) {\r\n return _this.emit(\"dragstart\", e);\r\n },\r\n \"dragenter\": function (e) {\r\n noPropagation(e);\r\n return _this.emit(\"dragenter\", e);\r\n },\r\n \"dragover\": function (e) {\r\n var efct;\r\n try {\r\n efct = e.dataTransfer.effectAllowed;\r\n } catch (_error) { }\r\n e.dataTransfer.dropEffect = 'move' === efct || 'linkMove' === efct ? 'move' : 'copy';\r\n noPropagation(e);\r\n return _this.emit(\"dragover\", e);\r\n },\r\n \"dragleave\": function (e) {\r\n return _this.emit(\"dragleave\", e);\r\n },\r\n \"drop\": function (e) {\r\n noPropagation(e);\r\n return _this.drop(e);\r\n },\r\n \"dragend\": function (e) {\r\n return _this.emit(\"dragend\", e);\r\n }\r\n }\r\n });\r\n };\r\n })(this));\r\n this.enable();\r\n return this.options.init.call(this);\r\n };\r\n\r\n Dropzone.prototype.updatePreviewContainer = function (previewContainer, prepend) {\r\n this.previewsContainer = previewContainer;\r\n this.previewsContainerPrepend = prepend;\r\n }\r\n\r\n\r\n Dropzone.prototype.addClickableElement = function (clickableElement, dropzone) {\r\n dropzone.clickableElements.push(clickableElement);\r\n clickableElement.classList.add(\"dz-clickable\");\r\n var noPropagation = function (e) {\r\n e.stopPropagation();\r\n if (e.preventDefault) {\r\n return e.preventDefault();\r\n } else {\r\n return e.returnValue = false;\r\n }\r\n };\r\n\r\n var onclick = function (evt) {\r\n if ((clickableElement !== dropzone.element) || (evt.target === dropzone.element || Dropzone.elementInside(evt.target, dropzone.dropzone.querySelector(\".dz-message\")))) {\r\n dropzone.hiddenFileInput.click();\r\n }\r\n return true;\r\n }\r\n\r\n clickableElement.addEventListener('click', onclick, false);\r\n clickableElement.addEventListener('dragstart', function (e) { dropzone.emit(\"dragstart\", e); }, false);\r\n clickableElement.addEventListener('dragenter', function (e) { noPropagation(e); dropzone.emit(\"dragenter\", e); }, false);\r\n clickableElement.addEventListener('dragover', function (e) {\r\n var effect;\r\n try {\r\n effect = e.dataTransfer.effectAllowed;\r\n } catch (_error) { }\r\n e.dataTransfer.dropEffect = 'move' === effect || 'linkMove' === effect ? 'move' : 'copy';\r\n noPropagation(e);\r\n return dropzone.emit(\"dragover\", e);\r\n }, false);\r\n clickableElement.addEventListener('dragleave', function (e) { dropzone.emit(\"dragleave\", e); }, false);\r\n clickableElement.addEventListener('drop', function (e) { noPropagation(e); dropzone.drop(e); }, false);\r\n clickableElement.addEventListener('dragend', function (e) { dropzone.emit(\"dragend\", e); }, false);\r\n }\r\n\r\n Dropzone.prototype.addElementAsDragAndDropArea = function (element, dropzone, dragDropClass) {\r\n dragDropClass = dragDropClass || 'dz-drag-hover';\r\n var noPropagation = function (e) {\r\n e.stopPropagation();\r\n if (e.preventDefault) {\r\n return e.preventDefault();\r\n } else {\r\n return e.returnValue = false;\r\n }\r\n };\r\n element.addEventListener('dragenter', function (e) { noPropagation(e); element.classList.add(dragDropClass); }, false);\r\n element.addEventListener('dragover', function (e) {\r\n var effect;\r\n try {\r\n effect = e.dataTransfer.effectAllowed;\r\n } catch (_error) { }\r\n e.dataTransfer.dropEffect = 'move' === effect || 'linkMove' === effect ? 'move' : 'copy';\r\n noPropagation(e);\r\n return element.classList.add(dragDropClass);\r\n }, false);\r\n element.addEventListener('dragleave', function (e) { element.classList.remove(dragDropClass); }, false);\r\n element.addEventListener('drop', function (e) { noPropagation(e); dropzone.drop(e); element.classList.remove(dragDropClass); }, false);\r\n }\r\n\r\n Dropzone.prototype.destroy = function () {\r\n var _ref;\r\n this.disable();\r\n this.removeAllFiles(true);\r\n if ((_ref = this.hiddenFileInput) != null ? _ref.parentNode : void 0) {\r\n this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput);\r\n this.hiddenFileInput = null;\r\n }\r\n delete this.element.dropzone;\r\n return Dropzone.instances.splice(Dropzone.instances.indexOf(this), 1);\r\n };\r\n\r\n Dropzone.prototype.updateTotalUploadProgress = function () {\r\n var activeFiles, file, totalBytes, totalBytesSent, totalUploadProgress, _i, _len, _ref;\r\n totalBytesSent = 0;\r\n totalBytes = 0;\r\n activeFiles = this.getActiveFiles();\r\n if (activeFiles.length) {\r\n _ref = this.getActiveFiles();\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n file = _ref[_i];\r\n totalBytesSent += file.upload.bytesSent;\r\n totalBytes += file.upload.total;\r\n }\r\n totalUploadProgress = 100 * totalBytesSent / totalBytes;\r\n } else {\r\n totalUploadProgress = 100;\r\n }\r\n return this.emit(\"totaluploadprogress\", totalUploadProgress, totalBytes, totalBytesSent);\r\n };\r\n\r\n Dropzone.prototype._getParamName = function (n) {\r\n if (typeof this.options.paramName === \"function\") {\r\n return this.options.paramName(n);\r\n } else {\r\n return \"\" + this.options.paramName + (this.options.uploadMultiple ? \"[\" + n + \"]\" : \"\");\r\n }\r\n };\r\n\r\n Dropzone.prototype._renameFilename = function (name) {\r\n if (typeof this.options.renameFilename !== \"function\") {\r\n return name;\r\n }\r\n return this.options.renameFilename(name);\r\n };\r\n\r\n Dropzone.prototype.getFallbackForm = function () {\r\n var existingFallback, fields, fieldsString, form;\r\n if (existingFallback = this.getExistingFallback()) {\r\n return existingFallback;\r\n }\r\n fieldsString = \"
      \";\r\n if (this.options.dictFallbackText) {\r\n fieldsString += \"

      \" + this.options.dictFallbackText + \"

      \";\r\n }\r\n fieldsString += \"
      \";\r\n fields = Dropzone.createElement(fieldsString);\r\n if (this.element.tagName !== \"FORM\") {\r\n form = Dropzone.createElement(\"
      \");\r\n form.appendChild(fields);\r\n } else {\r\n this.element.setAttribute(\"enctype\", \"multipart/form-data\");\r\n this.element.setAttribute(\"method\", this.options.method);\r\n }\r\n return form != null ? form : fields;\r\n };\r\n\r\n Dropzone.prototype.getExistingFallback = function () {\r\n var fallback, getFallback, tagName, _i, _len, _ref;\r\n getFallback = function (elements) {\r\n var el, _i, _len;\r\n for (_i = 0, _len = elements.length; _i < _len; _i++) {\r\n el = elements[_i];\r\n if (/(^| )fallback($| )/.test(el.className)) {\r\n return el;\r\n }\r\n }\r\n };\r\n _ref = [\"div\", \"form\"];\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n tagName = _ref[_i];\r\n if (fallback = getFallback(this.element.getElementsByTagName(tagName))) {\r\n return fallback;\r\n }\r\n }\r\n };\r\n\r\n Dropzone.prototype.setupEventListeners = function () {\r\n var elementListeners, event, listener, _i, _len, _ref, _results;\r\n _ref = this.listeners;\r\n _results = [];\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n elementListeners = _ref[_i];\r\n _results.push((function () {\r\n var _ref1, _results1;\r\n _ref1 = elementListeners.events;\r\n _results1 = [];\r\n for (event in _ref1) {\r\n listener = _ref1[event];\r\n _results1.push(elementListeners.element.addEventListener(event, listener, false));\r\n }\r\n return _results1;\r\n })());\r\n }\r\n return _results;\r\n };\r\n\r\n Dropzone.prototype.removeEventListeners = function () {\r\n var elementListeners, event, listener, _i, _len, _ref, _results;\r\n _ref = this.listeners;\r\n _results = [];\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n elementListeners = _ref[_i];\r\n _results.push((function () {\r\n var _ref1, _results1;\r\n _ref1 = elementListeners.events;\r\n _results1 = [];\r\n for (event in _ref1) {\r\n listener = _ref1[event];\r\n _results1.push(elementListeners.element.removeEventListener(event, listener, false));\r\n }\r\n return _results1;\r\n })());\r\n }\r\n return _results;\r\n };\r\n\r\n Dropzone.prototype.disable = function () {\r\n var file, _i, _len, _ref, _results;\r\n this.clickableElements.forEach(function (element) {\r\n return element.classList.remove(\"dz-clickable\");\r\n });\r\n this.removeEventListeners();\r\n _ref = this.files;\r\n _results = [];\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n file = _ref[_i];\r\n _results.push(this.cancelUpload(file));\r\n }\r\n return _results;\r\n };\r\n\r\n Dropzone.prototype.enable = function () {\r\n this.clickableElements.forEach(function (element) {\r\n return element.classList.add(\"dz-clickable\");\r\n });\r\n return this.setupEventListeners();\r\n };\r\n\r\n Dropzone.prototype.filesize = function (size) {\r\n var cutoff, i, selectedSize, selectedUnit, unit, units, _i, _len;\r\n selectedSize = 0;\r\n selectedUnit = \"b\";\r\n if (size > 0) {\r\n units = ['TB', 'GB', 'MB', 'KB', 'b'];\r\n for (i = _i = 0, _len = units.length; _i < _len; i = ++_i) {\r\n unit = units[i];\r\n cutoff = Math.pow(this.options.filesizeBase, 4 - i) / 10;\r\n if (size >= cutoff) {\r\n selectedSize = size / Math.pow(this.options.filesizeBase, 4 - i);\r\n selectedUnit = unit;\r\n break;\r\n }\r\n }\r\n selectedSize = Math.round(10 * selectedSize) / 10;\r\n }\r\n return \"\" + selectedSize + \" \" + selectedUnit;\r\n };\r\n\r\n Dropzone.prototype._updateMaxFilesReachedClass = function () {\r\n if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) {\r\n if (this.getAcceptedFiles().length === this.options.maxFiles) {\r\n this.emit('maxfilesreached', this.files);\r\n }\r\n return this.element.classList.add(\"dz-max-files-reached\");\r\n } else {\r\n return this.element.classList.remove(\"dz-max-files-reached\");\r\n }\r\n };\r\n\r\n Dropzone.prototype.drop = function (e) {\r\n var files, items;\r\n if (!e.dataTransfer) {\r\n return;\r\n }\r\n this.emit(\"drop\", e);\r\n files = e.dataTransfer.files;\r\n this.emit(\"addedfiles\", files);\r\n for (var i = 0; i < files.length; i++) {\r\n this.addFile(files[i]);\r\n }\r\n };\r\n\r\n Dropzone.prototype.paste = function (e) {\r\n var items, _ref;\r\n if ((e != null ? (_ref = e.clipboardData) != null ? _ref.items : void 0 : void 0) == null) {\r\n return;\r\n }\r\n this.emit(\"paste\", e);\r\n items = e.clipboardData.items;\r\n if (items.length) {\r\n return this._addFilesFromItems(items);\r\n }\r\n };\r\n\r\n Dropzone.prototype.handleFiles = function (files) {\r\n var file, _i, _len, _results;\r\n _results = [];\r\n for (_i = 0, _len = files.length; _i < _len; _i++) {\r\n file = files[_i];\r\n _results.push(this.addFile(file));\r\n }\r\n return _results;\r\n };\r\n\r\n Dropzone.prototype._addFilesFromItems = function (items) {\r\n var entry, item, _i, _len, _results;\r\n _results = [];\r\n for (_i = 0, _len = items.length; _i < _len; _i++) {\r\n item = items[_i];\r\n if ((item.webkitGetAsEntry != null) && (entry = item.webkitGetAsEntry())) {\r\n if (entry.isFile) {\r\n _results.push(this.addFile(item.getAsFile()));\r\n } else if (entry.isDirectory) {\r\n _results.push(this._addFilesFromDirectory(entry, entry.name));\r\n } else {\r\n _results.push(void 0);\r\n }\r\n } else if (item.getAsFile != null) {\r\n if ((item.kind == null) || item.kind === \"file\") {\r\n _results.push(this.addFile(item.getAsFile()));\r\n } else {\r\n _results.push(void 0);\r\n }\r\n } else {\r\n _results.push(void 0);\r\n }\r\n }\r\n return _results;\r\n };\r\n\r\n Dropzone.prototype._addFilesFromDirectory = function (directory, path) {\r\n var dirReader, errorHandler, readEntries;\r\n dirReader = directory.createReader();\r\n errorHandler = function (error) {\r\n return typeof console !== \"undefined\" && console !== null ? typeof console.log === \"function\" ? console.log(error) : void 0 : void 0;\r\n };\r\n readEntries = (function (_this) {\r\n return function () {\r\n return dirReader.readEntries(function (entries) {\r\n var entry, _i, _len;\r\n if (entries.length > 0) {\r\n for (_i = 0, _len = entries.length; _i < _len; _i++) {\r\n entry = entries[_i];\r\n if (entry.isFile) {\r\n entry.file(function (file) {\r\n if (_this.options.ignoreHiddenFiles && file.name.substring(0, 1) === '.') {\r\n return;\r\n }\r\n file.fullPath = \"\" + path + \"/\" + file.name;\r\n return _this.addFile(file);\r\n });\r\n } else if (entry.isDirectory) {\r\n _this._addFilesFromDirectory(entry, \"\" + path + \"/\" + entry.name);\r\n }\r\n }\r\n readEntries();\r\n }\r\n return null;\r\n }, errorHandler);\r\n };\r\n })(this);\r\n return readEntries();\r\n };\r\n\r\n Dropzone.prototype.accept = function (file, done) {\r\n if (file.size > this.options.maxFilesize * 1024 * 1024) {\r\n return done(this.options.dictFileTooBig.replace(\"{{filesize}}\", Math.round(file.size / 1024 / 10.24) / 100).replace(\"{{maxFilesize}}\", this.options.maxFilesize));\r\n } else if (!Dropzone.isValidFile(file, this.options.acceptedFiles)) {\r\n $(file.previewElement).remove();\r\n return done(this.options.dictInvalidFileType);\r\n } else if ((this.options.maxFiles != null) && this.getAcceptedFiles().length >= this.options.maxFiles) {\r\n done(this.options.dictMaxFilesExceeded.replace(\"{{maxFiles}}\", this.options.maxFiles));\r\n return this.emit(\"maxfilesexceeded\", file);\r\n } else {\r\n return this.options.accept.call(this, file, done);\r\n }\r\n };\r\n\r\n Dropzone.prototype.addFile = function (file) {\r\n file.upload = {\r\n progress: 0,\r\n total: file.size,\r\n bytesSent: 0\r\n };\r\n this.files.push(file);\r\n file.status = Dropzone.ADDED;\r\n this.emit(\"addedfile\", file);\r\n this._enqueueThumbnail(file);\r\n return this.accept(file, (function (_this) {\r\n return function (error) {\r\n if (error) {\r\n file.accepted = false;\r\n _this._errorProcessing([file], error);\r\n } else {\r\n file.accepted = true;\r\n if (_this.options.autoQueue) {\r\n _this.enqueueFile(file);\r\n }\r\n }\r\n return _this._updateMaxFilesReachedClass();\r\n };\r\n })(this));\r\n };\r\n\r\n Dropzone.prototype.initExistingFile = function (file) {\r\n file.upload = {\r\n progress: 100,\r\n total: file.size,\r\n bytesSent: 0\r\n };\r\n this.files.push(file);\r\n file.status = Dropzone.SUCCESS;\r\n file.accepted = true;\r\n return this;\r\n };\r\n\r\n Dropzone.prototype.enqueueFiles = function (files) {\r\n var file, _i, _len;\r\n for (_i = 0, _len = files.length; _i < _len; _i++) {\r\n file = files[_i];\r\n this.enqueueFile(file);\r\n }\r\n return null;\r\n };\r\n\r\n Dropzone.prototype.enqueueFile = function (file) {\r\n if (file.status === Dropzone.ADDED && file.accepted === true) {\r\n file.status = Dropzone.QUEUED;\r\n if (this.options.autoProcessQueue) {\r\n return setTimeout(((function (_this) {\r\n return function () {\r\n return _this.processQueue();\r\n };\r\n })(this)), 0);\r\n }\r\n } else {\r\n throw new Error(\"This file can't be queued because it has already been processed or was rejected.\");\r\n }\r\n };\r\n\r\n Dropzone.prototype._thumbnailQueue = [];\r\n\r\n Dropzone.prototype._processingThumbnail = false;\r\n\r\n Dropzone.prototype._enqueueThumbnail = function (file) {\r\n if (this.options.createImageThumbnails && file.type.match(/image.*/) && file.size <= this.options.maxThumbnailFilesize * 1024 * 1024) {\r\n this._thumbnailQueue.push(file);\r\n return setTimeout(((function (_this) {\r\n return function () {\r\n return _this._processThumbnailQueue();\r\n };\r\n })(this)), 0);\r\n }\r\n };\r\n\r\n Dropzone.prototype._processThumbnailQueue = function () {\r\n if (this._processingThumbnail || this._thumbnailQueue.length === 0) {\r\n return;\r\n }\r\n this._processingThumbnail = true;\r\n return this.createThumbnail(this._thumbnailQueue.shift(), (function (_this) {\r\n return function () {\r\n _this._processingThumbnail = false;\r\n return _this._processThumbnailQueue();\r\n };\r\n })(this));\r\n };\r\n\r\n Dropzone.prototype.removeFile = function (file) {\r\n if (file.status === Dropzone.UPLOADING) {\r\n this.cancelUpload(file);\r\n }\r\n if (file.status === Dropzone.QUEUED) {\r\n $(file.previewElement).remove();\r\n }\r\n this.files = without(this.files, file);\r\n this.emit(\"removedfile\", file);\r\n if (this.files.length === 0) {\r\n return this.emit(\"reset\");\r\n }\r\n };\r\n\r\n Dropzone.prototype.removeAllFiles = function (cancelIfNecessary) {\r\n var file, _i, _len, _ref;\r\n if (cancelIfNecessary == null) {\r\n cancelIfNecessary = false;\r\n }\r\n _ref = this.files.slice();\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n file = _ref[_i];\r\n if (file.status !== Dropzone.UPLOADING || cancelIfNecessary) {\r\n this.removeFile(file);\r\n }\r\n }\r\n return null;\r\n };\r\n\r\n Dropzone.prototype.createThumbnail = function (file, callback) {\r\n var fileReader;\r\n fileReader = new FileReader;\r\n fileReader.onload = (function (_this) {\r\n return function () {\r\n if (file.type === \"image/svg+xml\") {\r\n _this.emit(\"thumbnail\", file, fileReader.result);\r\n if (callback != null) {\r\n callback();\r\n }\r\n return;\r\n }\r\n return _this.createThumbnailFromUrl(file, fileReader.result, callback);\r\n };\r\n })(this);\r\n return fileReader.readAsDataURL(file);\r\n };\r\n\r\n Dropzone.prototype.createThumbnailFromUrl = function (file, imageUrl, callback, crossOrigin) {\r\n var img;\r\n img = document.createElement(\"img\");\r\n if (crossOrigin) {\r\n img.crossOrigin = crossOrigin;\r\n }\r\n img.onload = (function (_this) {\r\n return function () {\r\n var canvas, ctx, resizeInfo, thumbnail, _ref, _ref1, _ref2, _ref3;\r\n file.width = img.width;\r\n file.height = img.height;\r\n resizeInfo = _this.options.resize.call(_this, file);\r\n if (resizeInfo.trgWidth == null) {\r\n resizeInfo.trgWidth = resizeInfo.optWidth;\r\n }\r\n if (resizeInfo.trgHeight == null) {\r\n resizeInfo.trgHeight = resizeInfo.optHeight;\r\n }\r\n canvas = document.createElement(\"canvas\");\r\n ctx = canvas.getContext(\"2d\");\r\n canvas.width = resizeInfo.trgWidth;\r\n canvas.height = resizeInfo.trgHeight;\r\n drawImageIOSFix(ctx, img, (_ref = resizeInfo.srcX) != null ? _ref : 0, (_ref1 = resizeInfo.srcY) != null ? _ref1 : 0, resizeInfo.srcWidth, resizeInfo.srcHeight, (_ref2 = resizeInfo.trgX) != null ? _ref2 : 0, (_ref3 = resizeInfo.trgY) != null ? _ref3 : 0, resizeInfo.trgWidth, resizeInfo.trgHeight);\r\n thumbnail = canvas.toDataURL(\"image/png\");\r\n _this.emit(\"thumbnail\", file, thumbnail);\r\n if (callback != null) {\r\n return callback();\r\n }\r\n };\r\n })(this);\r\n if (callback != null) {\r\n img.onerror = callback;\r\n }\r\n return img.src = imageUrl;\r\n };\r\n\r\n Dropzone.prototype.processQueue = function () {\r\n var i, parallelUploads, processingLength, queuedFiles;\r\n parallelUploads = this.options.parallelUploads;\r\n processingLength = this.getUploadingFiles().length;\r\n i = processingLength;\r\n if (processingLength >= parallelUploads) {\r\n return;\r\n }\r\n queuedFiles = this.getQueuedFiles();\r\n if (!(queuedFiles.length > 0)) {\r\n return;\r\n }\r\n if (this.options.uploadMultiple) {\r\n return this.processFiles(queuedFiles.slice(0, parallelUploads - processingLength));\r\n } else {\r\n while (i < parallelUploads) {\r\n if (!queuedFiles.length) {\r\n return;\r\n }\r\n this.processFile(queuedFiles.shift());\r\n i++;\r\n }\r\n }\r\n };\r\n\r\n Dropzone.prototype.processFile = function (file) {\r\n return this.processFiles([file]);\r\n };\r\n\r\n Dropzone.prototype.processFiles = function (files) {\r\n var file, _i, _len;\r\n for (_i = 0, _len = files.length; _i < _len; _i++) {\r\n file = files[_i];\r\n file.processing = true;\r\n file.status = Dropzone.UPLOADING;\r\n this.emit(\"processing\", file);\r\n }\r\n if (this.options.uploadMultiple) {\r\n this.emit(\"processingmultiple\", files);\r\n }\r\n return this.uploadFiles(files);\r\n };\r\n\r\n Dropzone.prototype._getFilesWithXhr = function (xhr) {\r\n var file, files;\r\n return files = (function () {\r\n var _i, _len, _ref, _results;\r\n _ref = this.files;\r\n _results = [];\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n file = _ref[_i];\r\n if (file.xhr === xhr) {\r\n _results.push(file);\r\n }\r\n }\r\n return _results;\r\n }).call(this);\r\n };\r\n\r\n Dropzone.prototype.cancelUpload = function (file) {\r\n var groupedFile, groupedFiles, _i, _j, _len, _len1, _ref;\r\n if (file.status === Dropzone.UPLOADING) {\r\n groupedFiles = this._getFilesWithXhr(file.xhr);\r\n for (_i = 0, _len = groupedFiles.length; _i < _len; _i++) {\r\n groupedFile = groupedFiles[_i];\r\n groupedFile.status = Dropzone.CANCELED;\r\n }\r\n file.xhr.abort();\r\n for (_j = 0, _len1 = groupedFiles.length; _j < _len1; _j++) {\r\n groupedFile = groupedFiles[_j];\r\n this.emit(\"canceled\", groupedFile);\r\n }\r\n if (this.options.uploadMultiple) {\r\n this.emit(\"canceledmultiple\", groupedFiles);\r\n }\r\n } else if ((_ref = file.status) === Dropzone.ADDED || _ref === Dropzone.QUEUED) {\r\n file.status = Dropzone.CANCELED;\r\n this.emit(\"canceled\", file);\r\n if (this.options.uploadMultiple) {\r\n this.emit(\"canceledmultiple\", [file]);\r\n }\r\n }\r\n if (this.options.autoProcessQueue) {\r\n return this.processQueue();\r\n }\r\n };\r\n\r\n resolveOption = function () {\r\n var args, option;\r\n option = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];\r\n if (typeof option === 'function') {\r\n return option.apply(this, args);\r\n }\r\n return option;\r\n };\r\n\r\n Dropzone.prototype.uploadFile = function (file) {\r\n return this.uploadFiles([file]);\r\n };\r\n\r\n Dropzone.prototype.uploadFiles = function (files) {\r\n var file, formData, handleError, headerName, headerValue, headers, i, input, inputName, inputType, key, method, option, progressObj, response, updateProgress, url, value, xhr, _i, _j, _k, _l, _len, _len1, _len2, _len3, _m, _ref, _ref1, _ref2, _ref3, _ref4, _ref5;\r\n xhr = new XMLHttpRequest();\r\n for (_i = 0, _len = files.length; _i < _len; _i++) {\r\n file = files[_i];\r\n file.xhr = xhr;\r\n }\r\n method = resolveOption(this.options.method, files);\r\n url = resolveOption(this.options.url, files);\r\n xhr.open(method, url, true);\r\n xhr.withCredentials = !!this.options.withCredentials;\r\n response = null;\r\n handleError = (function (_this) {\r\n return function () {\r\n var _j, _len1, _results;\r\n _results = [];\r\n for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\r\n file = files[_j];\r\n _results.push(_this._errorProcessing(files, response || _this.options.dictResponseError.replace(\"{{statusCode}}\", xhr.status), xhr));\r\n }\r\n return _results;\r\n };\r\n })(this);\r\n updateProgress = (function (_this) {\r\n return function (e) {\r\n var allFilesFinished, progress, _j, _k, _l, _len1, _len2, _len3, _results;\r\n if (e != null) {\r\n progress = 100 * e.loaded / e.total;\r\n for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\r\n file = files[_j];\r\n file.upload = {\r\n progress: progress,\r\n total: e.total,\r\n bytesSent: e.loaded\r\n };\r\n }\r\n } else {\r\n allFilesFinished = true;\r\n progress = 100;\r\n for (_k = 0, _len2 = files.length; _k < _len2; _k++) {\r\n file = files[_k];\r\n if (!(file.upload.progress === 100 && file.upload.bytesSent === file.upload.total)) {\r\n allFilesFinished = false;\r\n }\r\n file.upload.progress = progress;\r\n file.upload.bytesSent = file.upload.total;\r\n }\r\n if (allFilesFinished) {\r\n return;\r\n }\r\n }\r\n _results = [];\r\n for (_l = 0, _len3 = files.length; _l < _len3; _l++) {\r\n file = files[_l];\r\n _results.push(_this.emit(\"uploadprogress\", file, progress, file.upload.bytesSent));\r\n }\r\n return _results;\r\n };\r\n })(this);\r\n xhr.onload = (function (_this) {\r\n return function (e) {\r\n var _ref;\r\n if (files[0].status === Dropzone.CANCELED) {\r\n return;\r\n }\r\n if (xhr.readyState !== 4) {\r\n return;\r\n }\r\n response = xhr.responseText;\r\n if (xhr.getResponseHeader(\"content-type\") && ~xhr.getResponseHeader(\"content-type\").indexOf(\"application/json\")) {\r\n try {\r\n response = JSON.parse(response);\r\n } catch (_error) {\r\n e = _error;\r\n response = \"Invalid JSON response from server.\";\r\n }\r\n }\r\n updateProgress();\r\n if (!((200 <= (_ref = xhr.status) && _ref < 300))) {\r\n return handleError();\r\n } else {\r\n return _this._finished(files, response, e);\r\n }\r\n };\r\n })(this);\r\n xhr.onerror = (function (_this) {\r\n return function () {\r\n if (files[0].status === Dropzone.CANCELED) {\r\n return;\r\n }\r\n return handleError();\r\n };\r\n })(this);\r\n progressObj = (_ref = xhr.upload) != null ? _ref : xhr;\r\n progressObj.onprogress = updateProgress;\r\n headers = {\r\n \"Accept\": \"application/json\",\r\n \"Cache-Control\": \"no-cache\",\r\n \"X-Requested-With\": \"XMLHttpRequest\"\r\n };\r\n if (this.options.headers) {\r\n extend(headers, this.options.headers);\r\n }\r\n for (headerName in headers) {\r\n headerValue = headers[headerName];\r\n if (headerValue) {\r\n xhr.setRequestHeader(headerName, headerValue);\r\n }\r\n }\r\n formData = new FormData();\r\n if (this.options.params) {\r\n _ref1 = this.options.params;\r\n for (key in _ref1) {\r\n value = _ref1[key];\r\n formData.append(key, value);\r\n }\r\n }\r\n if (this.options.uploadMultiple) {\r\n this.emit(\"sendingmultiple\", files, xhr, formData);\r\n }\r\n for (_j = 0, _len1 = files.length; _j < _len1; _j++) {\r\n file = files[_j];\r\n this.emit(\"sending\", file, xhr, formData);\r\n }\r\n if (this.element.tagName === \"FORM\") {\r\n _ref2 = this.element.querySelectorAll(\"input, textarea, select, button\");\r\n for (_k = 0, _len2 = _ref2.length; _k < _len2; _k++) {\r\n input = _ref2[_k];\r\n inputName = input.getAttribute(\"name\");\r\n inputType = input.getAttribute(\"type\");\r\n if (input.tagName === \"SELECT\" && input.hasAttribute(\"multiple\")) {\r\n _ref3 = input.options;\r\n for (_l = 0, _len3 = _ref3.length; _l < _len3; _l++) {\r\n option = _ref3[_l];\r\n if (option.selected) {\r\n formData.append(inputName, option.value);\r\n }\r\n }\r\n } else if (!inputType || ((_ref4 = inputType.toLowerCase()) !== \"checkbox\" && _ref4 !== \"radio\") || input.checked) {\r\n formData.append(inputName, input.value);\r\n }\r\n }\r\n }\r\n for (i = _m = 0, _ref5 = files.length - 1; 0 <= _ref5 ? _m <= _ref5 : _m >= _ref5; i = 0 <= _ref5 ? ++_m : --_m) {\r\n formData.append(this._getParamName(i), files[i], this._renameFilename(files[i].name));\r\n }\r\n return this.submitRequest(xhr, formData, files);\r\n };\r\n\r\n Dropzone.prototype.submitRequest = function (xhr, formData, files) {\r\n return xhr.send(formData);\r\n };\r\n\r\n Dropzone.prototype._finished = function (files, responseText, e) {\r\n var file, _i, _len;\r\n for (_i = 0, _len = files.length; _i < _len; _i++) {\r\n file = files[_i];\r\n file.status = Dropzone.SUCCESS;\r\n this.emit(\"success\", file, responseText, e);\r\n this.emit(\"complete\", file);\r\n }\r\n if (this.options.uploadMultiple) {\r\n this.emit(\"successmultiple\", files, responseText, e);\r\n this.emit(\"completemultiple\", files);\r\n }\r\n if (this.options.autoProcessQueue) {\r\n return this.processQueue();\r\n }\r\n };\r\n\r\n Dropzone.prototype._errorProcessing = function (files, message, xhr) {\r\n var file, _i, _len;\r\n for (_i = 0, _len = files.length; _i < _len; _i++) {\r\n file = files[_i];\r\n file.status = Dropzone.ERROR;\r\n this.emit(\"error\", file, message, xhr);\r\n this.emit(\"complete\", file);\r\n }\r\n if (this.options.uploadMultiple) {\r\n this.emit(\"errormultiple\", files, message, xhr);\r\n this.emit(\"completemultiple\", files);\r\n }\r\n if (this.options.autoProcessQueue) {\r\n return this.processQueue();\r\n }\r\n };\r\n\r\n return Dropzone;\r\n\r\n })(Emitter);\r\n\r\n Dropzone.version = \"4.3.0\";\r\n\r\n Dropzone.options = {};\r\n\r\n Dropzone.optionsForElement = function (element) {\r\n if (element.getAttribute(\"id\")) {\r\n return Dropzone.options[camelize(element.getAttribute(\"id\"))];\r\n } else {\r\n return void 0;\r\n }\r\n };\r\n\r\n Dropzone.instances = [];\r\n\r\n Dropzone.forElement = function (element) {\r\n if (typeof element === \"string\") {\r\n element = document.querySelector(element);\r\n }\r\n if ((element != null ? element.dropzone : void 0) == null) {\r\n throw new Error(\"No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.\");\r\n }\r\n return element.dropzone;\r\n };\r\n\r\n Dropzone.autoDiscover = false;\r\n\r\n Dropzone.discover = function () {\r\n var checkElements, dropzone, dropzones, _i, _len, _results;\r\n if (document.querySelectorAll) {\r\n dropzones = document.querySelectorAll(\".dropzone\");\r\n } else {\r\n dropzones = [];\r\n checkElements = function (elements) {\r\n var el, _i, _len, _results;\r\n _results = [];\r\n for (_i = 0, _len = elements.length; _i < _len; _i++) {\r\n el = elements[_i];\r\n if (/(^| )dropzone($| )/.test(el.className)) {\r\n _results.push(dropzones.push(el));\r\n } else {\r\n _results.push(void 0);\r\n }\r\n }\r\n return _results;\r\n };\r\n checkElements(document.getElementsByTagName(\"div\"));\r\n checkElements(document.getElementsByTagName(\"form\"));\r\n }\r\n _results = [];\r\n for (_i = 0, _len = dropzones.length; _i < _len; _i++) {\r\n dropzone = dropzones[_i];\r\n if (Dropzone.optionsForElement(dropzone) !== false) {\r\n _results.push(new Dropzone(dropzone));\r\n } else {\r\n _results.push(void 0);\r\n }\r\n }\r\n return _results;\r\n };\r\n\r\n Dropzone.blacklistedBrowsers = [/opera.*Macintosh.*version\\/12/i];\r\n\r\n Dropzone.isBrowserSupported = function () {\r\n var capableBrowser, regex, _i, _len, _ref;\r\n capableBrowser = true;\r\n if (window.File && window.FileReader && window.FileList && window.Blob && window.FormData && document.querySelector) {\r\n if (!(\"classList\" in document.createElement(\"a\"))) {\r\n capableBrowser = false;\r\n } else {\r\n _ref = Dropzone.blacklistedBrowsers;\r\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\r\n regex = _ref[_i];\r\n if (regex.test(navigator.userAgent)) {\r\n capableBrowser = false;\r\n continue;\r\n }\r\n }\r\n }\r\n } else {\r\n capableBrowser = false;\r\n }\r\n return capableBrowser;\r\n };\r\n\r\n without = function (list, rejectedItem) {\r\n var item, _i, _len, _results;\r\n _results = [];\r\n for (_i = 0, _len = list.length; _i < _len; _i++) {\r\n item = list[_i];\r\n if (item !== rejectedItem) {\r\n _results.push(item);\r\n }\r\n }\r\n return _results;\r\n };\r\n\r\n camelize = function (str) {\r\n return str.replace(/[\\-_](\\w)/g, function (match) {\r\n return match.charAt(1).toUpperCase();\r\n });\r\n };\r\n\r\n Dropzone.createElement = function (string) {\r\n var div;\r\n div = document.createElement(\"div\");\r\n div.innerHTML = string;\r\n return div.childNodes[0];\r\n };\r\n\r\n Dropzone.elementInside = function (element, container) {\r\n if (element === container) {\r\n return true;\r\n }\r\n while (element = element.parentNode) {\r\n if (element === container) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n Dropzone.getElement = function (el, name) {\r\n var element;\r\n if (typeof el === \"string\") {\r\n element = document.querySelector(el);\r\n } else if (el.nodeType != null) {\r\n element = el;\r\n }\r\n if (element == null) {\r\n throw new Error(\"Invalid `\" + name + \"` option provided. Please provide a CSS selector or a plain HTML element.\");\r\n }\r\n return element;\r\n };\r\n\r\n Dropzone.getElements = function (els, name) {\r\n var e, el, elements, _i, _j, _len, _len1, _ref;\r\n if (els instanceof Array) {\r\n elements = [];\r\n try {\r\n for (_i = 0, _len = els.length; _i < _len; _i++) {\r\n el = els[_i];\r\n elements.push(this.getElement(el, name));\r\n }\r\n } catch (_error) {\r\n e = _error;\r\n elements = null;\r\n }\r\n } else if (typeof els === \"string\") {\r\n elements = [];\r\n _ref = document.querySelectorAll(els);\r\n for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {\r\n el = _ref[_j];\r\n elements.push(el);\r\n }\r\n } else if (els.nodeType != null) {\r\n elements = [els];\r\n }\r\n if (!((elements != null) && elements.length)) {\r\n throw new Error(\"Invalid `\" + name + \"` option provided. Please provide a CSS selector, a plain HTML element or a list of those.\");\r\n }\r\n return elements;\r\n };\r\n\r\n Dropzone.confirm = function (question, accepted, rejected) {\r\n if (window.confirm(question)) {\r\n return accepted();\r\n } else if (rejected != null) {\r\n return rejected();\r\n }\r\n };\r\n\r\n Dropzone.isValidFile = function (file, acceptedFiles) {\r\n var baseMimeType, mimeType, validType, _i, _len;\r\n if (!acceptedFiles) {\r\n return true;\r\n }\r\n acceptedFiles = acceptedFiles.split(\",\");\r\n mimeType = file.type;\r\n baseMimeType = mimeType.replace(/\\/.*$/, \"\");\r\n for (_i = 0, _len = acceptedFiles.length; _i < _len; _i++) {\r\n validType = acceptedFiles[_i];\r\n validType = validType.trim();\r\n if (validType.charAt(0) === \".\") {\r\n if (file.name.toLowerCase().indexOf(validType.toLowerCase(), file.name.length - validType.length) !== -1) {\r\n return true;\r\n }\r\n } else if (/\\/\\*$/.test(validType)) {\r\n if (baseMimeType === validType.replace(/\\/.*$/, \"\")) {\r\n return true;\r\n }\r\n } else {\r\n if (mimeType === validType) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n if (typeof jQuery !== \"undefined\" && jQuery !== null) {\r\n jQuery.fn.dropzone = function (options) {\r\n return this.each(function () {\r\n return new Dropzone(this, options);\r\n });\r\n };\r\n }\r\n\r\n if (typeof module !== \"undefined\" && module !== null) {\r\n module.exports = Dropzone;\r\n } else {\r\n window.Dropzone = Dropzone;\r\n }\r\n\r\n Dropzone.ADDED = \"added\";\r\n\r\n Dropzone.QUEUED = \"queued\";\r\n\r\n Dropzone.ACCEPTED = Dropzone.QUEUED;\r\n\r\n Dropzone.UPLOADING = \"uploading\";\r\n\r\n Dropzone.PROCESSING = Dropzone.UPLOADING;\r\n\r\n Dropzone.CANCELED = \"canceled\";\r\n\r\n Dropzone.ERROR = \"error\";\r\n\r\n Dropzone.SUCCESS = \"success\";\r\n\r\n\r\n /*\r\n \r\n Bugfix for iOS 6 and 7\r\n Source: http://stackoverflow.com/questions/11929099/html5-canvas-drawimage-ratio-bug-ios\r\n based on the work of https://github.com/stomita/ios-imagefile-megapixel\r\n */\r\n\r\n detectVerticalSquash = function (img) {\r\n var alpha, canvas, ctx, data, ey, ih, iw, py, ratio, sy;\r\n iw = img.naturalWidth;\r\n ih = img.naturalHeight;\r\n canvas = document.createElement(\"canvas\");\r\n canvas.width = 1;\r\n canvas.height = ih;\r\n ctx = canvas.getContext(\"2d\");\r\n ctx.drawImage(img, 0, 0);\r\n data = ctx.getImageData(0, 0, 1, ih).data;\r\n sy = 0;\r\n ey = ih;\r\n py = ih;\r\n while (py > sy) {\r\n alpha = data[(py - 1) * 4 + 3];\r\n if (alpha === 0) {\r\n ey = py;\r\n } else {\r\n sy = py;\r\n }\r\n py = (ey + sy) >> 1;\r\n }\r\n ratio = py / ih;\r\n if (ratio === 0) {\r\n return 1;\r\n } else {\r\n return ratio;\r\n }\r\n };\r\n\r\n drawImageIOSFix = function (ctx, img, sx, sy, sw, sh, dx, dy, dw, dh) {\r\n var vertSquashRatio;\r\n vertSquashRatio = detectVerticalSquash(img);\r\n return ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh / vertSquashRatio);\r\n };\r\n\r\n\r\n /*\r\n * contentloaded.js\r\n *\r\n * Author: Diego Perini (diego.perini at gmail.com)\r\n * Summary: cross-browser wrapper for DOMContentLoaded\r\n * Updated: 20101020\r\n * License: MIT\r\n * Version: 1.2\r\n *\r\n * URL:\r\n * http://javascript.nwbox.com/ContentLoaded/\r\n * http://javascript.nwbox.com/ContentLoaded/MIT-LICENSE\r\n */\r\n\r\n contentLoaded = function (win, fn) {\r\n var add, doc, done, init, poll, pre, rem, root, top;\r\n done = false;\r\n top = true;\r\n doc = win.document;\r\n root = doc.documentElement;\r\n add = (doc.addEventListener ? \"addEventListener\" : \"attachEvent\");\r\n rem = (doc.addEventListener ? \"removeEventListener\" : \"detachEvent\");\r\n pre = (doc.addEventListener ? \"\" : \"on\");\r\n init = function (e) {\r\n if (e.type === \"readystatechange\" && doc.readyState !== \"complete\") {\r\n return;\r\n }\r\n (e.type === \"load\" ? win : doc)[rem](pre + e.type, init, false);\r\n if (!done && (done = true)) {\r\n return fn.call(win, e.type || e);\r\n }\r\n };\r\n poll = function () {\r\n var e;\r\n try {\r\n root.doScroll(\"left\");\r\n } catch (_error) {\r\n e = _error;\r\n setTimeout(poll, 50);\r\n return;\r\n }\r\n return init(\"poll\");\r\n };\r\n if (doc.readyState !== \"complete\") {\r\n if (doc.createEventObject && root.doScroll) {\r\n try {\r\n top = !win.frameElement;\r\n } catch (_error) { }\r\n if (top) {\r\n poll();\r\n }\r\n }\r\n doc[add](pre + \"DOMContentLoaded\", init, false);\r\n doc[add](pre + \"readystatechange\", init, false);\r\n return win[add](pre + \"load\", init, false);\r\n }\r\n };\r\n\r\n Dropzone._autoDiscoverFunction = function () {\r\n if (Dropzone.autoDiscover) {\r\n return Dropzone.discover();\r\n }\r\n };\r\n\r\n contentLoaded(window, Dropzone._autoDiscoverFunction);\r\n\r\n}).call(this);\r\n","/*!\r\n Knockout pre-rendered binding handlers v0.5.0\r\n By: Erik Schierboom (C) 2015\r\n License: Apache 2\r\n\r\n Adds binding handlers that can be populated based on existing HTML.\r\n\r\n The foreach code is adapted from:\r\n\r\n Knockout Fast Foreach v0.3.1 (2015-03-18T15:15:11.505Z)\r\n By: Brian M Hunt (C) 2015\r\n License: MIT\r\n URL: https://github.com/brianmhunt/knockout-fast-foreach\r\n*/\r\n$(function (root, factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n define(['knockout'], factory);\r\n } else if (typeof exports === 'object') {\r\n module.exports = factory(require('knockout'));\r\n } else {\r\n root.KnockoutElse = factory(root.ko);\r\n }\r\n}(this, function (ko) {\r\n // index.js\r\n // --------\r\n // Pre-rendered binding handlers. \r\n // --------\r\n \"use strict\";\r\n\r\n // Utilities\r\n\r\n // from https://github.com/jonschlinkert/is-plain-object\r\n function isPlainObject(o) {\r\n return !!o && typeof o === 'object' && o.constructor === Object;\r\n }\r\n\r\n // From knockout/src/virtualElements.js\r\n var commentNodesHaveTextProperty = document && document.createComment(\"test\").text === \"\";\r\n var startCommentRegex = commentNodesHaveTextProperty ? /^$/ : /^\\s*ko(?:\\s+([\\s\\S]+))?\\s*$/;\r\n function isVirtualNode(node) {\r\n return (node.nodeType == 8) && startCommentRegex.test(commentNodesHaveTextProperty ? node.text : node.nodeValue);\r\n }\r\n\r\n // Find the first children of the specified parent node. If the attribute is defined, the child\r\n // also need to have that attribute\r\n function findFirstChild(parentNode, attribute) {\r\n return ko.utils.arrayFirst(ko.virtualElements.childNodes(parentNode), function (child) {\r\n if (typeof (attribute) === 'string') {\r\n return child && child.attributes && child.attributes[attribute];\r\n }\r\n\r\n return child;\r\n });\r\n }\r\n\r\n // Find children of the specified parent node. If the attribute is defined, the children\r\n // also need to have that attribute\r\n function findChildren(parentNode, attribute) {\r\n return ko.utils.arrayFilter(ko.virtualElements.childNodes(parentNode), function (child) {\r\n if (typeof (attribute) === 'string') {\r\n return child && child.attributes && child.attributes[attribute];\r\n }\r\n\r\n return child;\r\n });\r\n }\r\n\r\n // Get a copy of the template node of the given element,\r\n // put them into a container, then remove the template node.\r\n function makeTemplateNode(sourceNode, namedTemplate) {\r\n var container = document.createElement('div');\r\n var parentNode;\r\n var namedTemplate;\r\n\r\n if (sourceNode.content) {\r\n // For e.g.
    • ').addClass('cw').text('#'));\r\n }\r\n\r\n while (currentDate.isBefore(viewDate.clone().endOf('w'))) {\r\n row.append($('').addClass('dow').text(currentDate.format('dd')));\r\n currentDate.add(1, 'd');\r\n }\r\n widget.find('.datepicker-days thead').append(row);\r\n },\r\n\r\n isInDisabledDates = function (testDate) {\r\n return options.disabledDates[testDate.format('YYYY-MM-DD')] === true;\r\n },\r\n\r\n isInEnabledDates = function (testDate) {\r\n return options.enabledDates[testDate.format('YYYY-MM-DD')] === true;\r\n },\r\n\r\n isInDisabledHours = function (testDate) {\r\n return options.disabledHours[testDate.format('H')] === true;\r\n },\r\n\r\n isInEnabledHours = function (testDate) {\r\n return options.enabledHours[testDate.format('H')] === true;\r\n },\r\n\r\n isValid = function (targetMoment, granularity) {\r\n if (!targetMoment.isValid()) {\r\n return false;\r\n }\r\n if (options.disabledDates && granularity === 'd' && isInDisabledDates(targetMoment)) {\r\n return false;\r\n }\r\n if (options.enabledDates && granularity === 'd' && !isInEnabledDates(targetMoment)) {\r\n return false;\r\n }\r\n if (options.minDate && targetMoment.isBefore(options.minDate, granularity)) {\r\n return false;\r\n }\r\n if (options.maxDate && targetMoment.isAfter(options.maxDate, granularity)) {\r\n return false;\r\n }\r\n if (options.daysOfWeekDisabled && granularity === 'd' && options.daysOfWeekDisabled.indexOf(targetMoment.day()) !== -1) {\r\n return false;\r\n }\r\n if (options.disabledHours && (granularity === 'h' || granularity === 'm' || granularity === 's') && isInDisabledHours(targetMoment)) {\r\n return false;\r\n }\r\n if (options.enabledHours && (granularity === 'h' || granularity === 'm' || granularity === 's') && !isInEnabledHours(targetMoment)) {\r\n return false;\r\n }\r\n if (options.disabledTimeIntervals && (granularity === 'h' || granularity === 'm' || granularity === 's')) {\r\n var found = false;\r\n $.each(options.disabledTimeIntervals, function () {\r\n if (targetMoment.isBetween(this[0], this[1])) {\r\n found = true;\r\n return false;\r\n }\r\n });\r\n if (found) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n },\r\n\r\n fillMonths = function () {\r\n var spans = [],\r\n monthsShort = viewDate.clone().startOf('y').startOf('d');\r\n while (monthsShort.isSame(viewDate, 'y')) {\r\n spans.push($('').attr('data-action', 'selectMonth').addClass('month').text(monthsShort.format('MMM')));\r\n monthsShort.add(1, 'M');\r\n }\r\n widget.find('.datepicker-months td').empty().append(spans);\r\n },\r\n\r\n updateMonths = function () {\r\n var monthsView = widget.find('.datepicker-months'),\r\n monthsViewHeader = monthsView.find('th'),\r\n months = monthsView.find('tbody').find('span');\r\n\r\n monthsViewHeader.eq(0).find('span').attr('title', options.tooltips.prevYear);\r\n monthsViewHeader.eq(1).attr('title', options.tooltips.selectYear);\r\n monthsViewHeader.eq(2).find('span').attr('title', options.tooltips.nextYear);\r\n\r\n monthsView.find('.disabled').removeClass('disabled');\r\n\r\n if (!isValid(viewDate.clone().subtract(1, 'y'), 'y')) {\r\n monthsViewHeader.eq(0).addClass('disabled');\r\n }\r\n\r\n monthsViewHeader.eq(1).text(viewDate.year());\r\n\r\n if (!isValid(viewDate.clone().add(1, 'y'), 'y')) {\r\n monthsViewHeader.eq(2).addClass('disabled');\r\n }\r\n\r\n months.removeClass('active');\r\n if (date.isSame(viewDate, 'y') && !unset) {\r\n months.eq(date.month()).addClass('active');\r\n }\r\n\r\n months.each(function (index) {\r\n if (!isValid(viewDate.clone().month(index), 'M')) {\r\n $(this).addClass('disabled');\r\n }\r\n });\r\n },\r\n\r\n updateYears = function () {\r\n var yearsView = widget.find('.datepicker-years'),\r\n yearsViewHeader = yearsView.find('th'),\r\n startYear = viewDate.clone().subtract(5, 'y'),\r\n endYear = viewDate.clone().add(6, 'y'),\r\n html = '';\r\n\r\n yearsViewHeader.eq(0).find('span').attr('title', options.tooltips.prevDecade);\r\n yearsViewHeader.eq(1).attr('title', options.tooltips.selectDecade);\r\n yearsViewHeader.eq(2).find('span').attr('title', options.tooltips.nextDecade);\r\n\r\n yearsView.find('.disabled').removeClass('disabled');\r\n\r\n if (options.minDate && options.minDate.isAfter(startYear, 'y')) {\r\n yearsViewHeader.eq(0).addClass('disabled');\r\n }\r\n\r\n yearsViewHeader.eq(1).text(startYear.year() + '-' + endYear.year());\r\n\r\n if (options.maxDate && options.maxDate.isBefore(endYear, 'y')) {\r\n yearsViewHeader.eq(2).addClass('disabled');\r\n }\r\n\r\n while (!startYear.isAfter(endYear, 'y')) {\r\n html += '' + startYear.year() + '';\r\n startYear.add(1, 'y');\r\n }\r\n\r\n yearsView.find('td').html(html);\r\n },\r\n\r\n updateDecades = function () {\r\n var decadesView = widget.find('.datepicker-decades'),\r\n decadesViewHeader = decadesView.find('th'),\r\n startDecade = moment({y: viewDate.year() - (viewDate.year() % 100) - 1}),\r\n endDecade = startDecade.clone().add(100, 'y'),\r\n startedAt = startDecade.clone(),\r\n html = '';\r\n\r\n decadesViewHeader.eq(0).find('span').attr('title', options.tooltips.prevCentury);\r\n decadesViewHeader.eq(2).find('span').attr('title', options.tooltips.nextCentury);\r\n\r\n decadesView.find('.disabled').removeClass('disabled');\r\n\r\n if (startDecade.isSame(moment({y: 1900})) || (options.minDate && options.minDate.isAfter(startDecade, 'y'))) {\r\n decadesViewHeader.eq(0).addClass('disabled');\r\n }\r\n\r\n decadesViewHeader.eq(1).text(startDecade.year() + '-' + endDecade.year());\r\n\r\n if (startDecade.isSame(moment({y: 2000})) || (options.maxDate && options.maxDate.isBefore(endDecade, 'y'))) {\r\n decadesViewHeader.eq(2).addClass('disabled');\r\n }\r\n\r\n while (!startDecade.isAfter(endDecade, 'y')) {\r\n html += '' + (startDecade.year() + 1) + ' - ' + (startDecade.year() + 12) + '';\r\n startDecade.add(12, 'y');\r\n }\r\n html += ''; //push the dangling block over, at least this way it's even\r\n\r\n decadesView.find('td').html(html);\r\n decadesViewHeader.eq(1).text((startedAt.year() + 1) + '-' + (startDecade.year()));\r\n },\r\n\r\n fillDate = function () {\r\n var daysView = widget.find('.datepicker-days'),\r\n daysViewHeader = daysView.find('th'),\r\n currentDate,\r\n html = [],\r\n row,\r\n clsName,\r\n i;\r\n\r\n if (!hasDate()) {\r\n return;\r\n }\r\n\r\n daysViewHeader.eq(0).find('span').attr('title', options.tooltips.prevMonth);\r\n daysViewHeader.eq(1).attr('title', options.tooltips.selectMonth);\r\n daysViewHeader.eq(2).find('span').attr('title', options.tooltips.nextMonth);\r\n\r\n daysView.find('.disabled').removeClass('disabled');\r\n daysViewHeader.eq(1).text(viewDate.format(options.dayViewHeaderFormat));\r\n\r\n if (!isValid(viewDate.clone().subtract(1, 'M'), 'M')) {\r\n daysViewHeader.eq(0).addClass('disabled');\r\n }\r\n if (!isValid(viewDate.clone().add(1, 'M'), 'M')) {\r\n daysViewHeader.eq(2).addClass('disabled');\r\n }\r\n\r\n currentDate = viewDate.clone().startOf('M').startOf('w').startOf('d');\r\n\r\n for (i = 0; i < 42; i++) { //always display 42 days (should show 6 weeks)\r\n if (currentDate.weekday() === 0) {\r\n row = $('
      ' + currentDate.week() + '' + currentDate.date() + '
      ' + currentHour.format(use24Hours ? 'HH' : 'hh') + '
      ' + currentMinute.format('mm') + '
      ' + currentSecond.format('ss') + '