{"version":3,"sources":["jsviews.js"],"names":["factory","global","$","jQuery","exports","module","define","amd","getDerivedMethod","baseMethod","method","ret","tag","this","prevBase","base","apply","arguments","getMethod","$isFunction","_d","noop","tagHandlersFromProps","tagCtx","prop","props","rHasHandlers","test","fix","constructor","prototype","retVal","val","dbgBreak","console","log","e","baseApply","JsViewsError","message","name","link","$extend","target","source","$viewsDelimiters","openChars","closeChars","$isArray","$views","linkChar","error","delimOpenChar0","delimOpenChar1","delimCloseChar0","delimCloseChar1","$subSettings","delimiters","rTag","$sub","RegExp","rTmpl","$viewsSettings","getView","inner","type","undefined","views","i","l","found","view","root","_","useKey","get","length","parent","getNestedIndex","index","getIndex","getPathObject","ob","path","ltOb","fn","prevOb","tokens","split","lt","contextParameter","key","value","wrapped","deps","res","obsCtxPrm","tagElse","callView","newRes","storeView","isUpdate","isRenderCall","store","ctx","hasOwnProperty","$helpers","linked","_cxp","scope","isTop","_ocps","_ocp","_vw","_key","ind","updateValue","observable","setProperty","_ceo","unshift","cvtArgs","data","_ucp","getTemplate","tmpl","getRsc","$templates","convertVal","converter","onError","linkCtx","argsLen","bindTo","boundTag","bnds","_lr","args","_bd","_lc","_tg","bnd","unlinked","inline","tagName","convert","onArrayChange","flow","tagCtxs","_is","extendCtx","_er","onRender","convertArgs","bound","boundArgs","bindFrom","STRING","slice","argOrProp","arg0","context","convertBoundArgs","getResource","resourceType","itemName","renderTag","parentView","bindToOrBindFrom","bindArray","m","isNaN","parseInt","topView","tagDef","template","tags","attr","parentTag","n","itemRet","tagCtxCtx","ctxPrm","initVal","content","callInit","mapDef","thisMap","bdArgs","tagDataMap","contentCtx","bindFromLength","bindToLength","linkedElement","defaultCtx","parentTmpl","lateRender","params","tmpls","render","renderContent","bndArgs","_getTmpl","init","_ctr","ths","arrVws","dataBoundOnly","dataMap","map","parents","parentTags","rendering","rndr","argDefault","linkedCtxParam","fromIndex","toIndex","_dfAt","noVws","HTML","_cp","cvt","src","unmap","tgt","rWrappedInViewMarker","links","renderWithViews","$converters","html","View","contentTmpl","parentView_","self_","self","isArray","id","viewId","cache","_ct","_cchCt","scp","indexStr","push","splice","compileChildResources","storeName","storeNames","resources","jsvStores","compileTag","Tag","baseTag","compiledDef","depends","$tags","_parentTmpl","compileTmpl","options","lookupTemplate","currentName","nodeType","elem","document","getElementById","charAt","innerHTML","getAttribute","tmplAttr","jsvTmpl","tmplName","setAttribute","compiledTmpl","tmplOrMarkup","_html","markup","tmplObject","tmplFn","replace","rEscapeQuotes","getDefaultVal","defaultVal","call","addParentRef","ref","Object","defineProperty","configurable","compileViewModel","JsvVm","vm","iterate","action","getterType","parentRef","j","getterCount","getters","getter","viewModels","JSON","parse","childOb","arr","merge","viewModel","$expando","getterNames","mod","assigned","newModArr","k","model","$observable","refresh","concat","unmapArray","modelArr","extend","proto","cnstr","privField","set","Function","htmlTag","wrapMap","$subSettingsAdvanced","_wm","rFirstElem","exec","toLowerCase","div","trim","registerStore","storeSettings","theStore","item","compile","thisStore","onStore","OBJECT","getTgt","addSetting","st","Map","baseMap","noIteration","isTopRenderCall","prevData","prevIndex","result","useViews","newView","childView","itemResult","swapContent","outerOnRender","itemVar","newCtx","noLinking","_wrp","nl","syntaxError","helpers","contentView","onRenderError","fallback","Err","isLinkExpr","convertBack","hasElse","pushprecedingContent","shift","loc","substr","rNewLine","blockTagCheck","block","parseTag","all","bind","colon","codeTag","slash","bind2","closeBlock","late","openTagName","isLateOb","pathBindings","ctxProps","paramsArgs","paramsProps","paramsCtxProps","useTrigger","allowCode","rUnescapeQuotes","rTestElseIf","current","substring","stack","pop","parseParams","rBuildHash","onerror","isCtxPrm","keyToken","keyValue","arg","param","hasHandlers","newNode","parsedParam","bindings","astTop","buildCode","setPaths","pathsArr","paths","skp","paramStructure","paramCode","paramVals","parseTokens","lftPrn0","lftPrn","operator","err","eq","path2","prn","comma","lftPrn2","apos","quot","rtPrn","rtPrnDot","prn2","space","full","parsePath","allPath","not","object","helper","viewProperty","pathTokens","leafToken","subPath","binds","named","bindto","_jsvto","bndCtx","bd","theOb","_cpfn","sb","prm","pathStart","fnDp","compiledPathStart","compiledPath","join","expr","newOb","lftPrnFCall","aposed","quoted","bndStack","_cpPthSt","_cpKey","cpFnStore","fnCall","prnDp","indexOf","prnStack","prnInd","paramIndex","boundName","rPath","prnStart","0","rBracketQuote","rPrm","ast","node","hasTag","hasEncoder","getsVal","hasCnvt","useCnvt","tmplBindings","boundOnErrStart","boundOnErrEnd","tagRender","nestedTmpls","nestedTmpl","tagAndElses","nextIsElse","oldCode","isElse","isGetVal","tagCtxFn","tagStart","trigger","retStrOpen","retStrClose","tmplBindingKey","templates","converters","code","tmplOptions","debug","debugMode","_tag","parentContext","getTargetProps","propsArr","noFunctions","isFunction","getTargetSorted","mapped","start","end","propParams","filter","sort","directSort","step","reverse","v","a","b","onFilter","sorted","paged","$fnRender","tmplElem","jquery","getCharEntity","ch","charEntities","charCodeAt","getCharFromEntity","match","token","charsFromEntities","htmlEncode","text","rIsHtml","rHtmlEncode","dataEncode","rDataEncode","dataUnencode","rDataUnencode","updateValues","sourceValues","async","bindId","ev","cvtBack","cnvtName","binding","sourceValue","origVals","sourceElem","sourceEl","tos","to","tcpTag","exprOb","contextCb","vals","_tgId","defineBindToDataTargets","bindingStore","chg","nodeName","multiple","_jsvSel","$inArray","checked","onBeforeUpdateVal","change","setValue","_jsvInd","_jsvLkEl","_jsvElse","_ctxCb","_cpCtx","isCpfn","onElemChange","fromAttr","defaultAttr","setter","fnSetters","_jsvTr","delegateTarget","activeBody","_jsvChg","rSplitBindings","lastIndex","_jsvBnd","onDataLinkedTagChange","eventArgs","noUpdate","forceUpdate","hasError","bindEarly","linkFn","parentElem","parentNode","oldLinkCtx","onEvent","changeHandler","onBeforeChangeStr","_toLk","VALUE","CHECKBOX","CHECKED","onUpdate","mergeCtxs","NONE","callAfterLink","observeAndBind","onAfterChangeStr","onUnbind","linkedElems","linkedElem","mainElem","displayElem","_cnvt","TRUE","addLinkMethods","updateContent","_noUpd","setDefer","_df","deferAttr","prevNode","nextNode","nodesToRemove","useProp","openIndex","closeIndex","testElem","cStyle","jsvSel","renders","targetParent","$target","targetVal","_val","_elCnt","_prv","_nxt","currentStyle","getComputedStyle","display","_jsvd","displayStyles","createElement","body","appendChild","removeChild","style","RADIO","nodes","transferViewTokens","jsvAttrStr","disposeTokens","previousSibling","lastChild","remove","empty","children","TEXTCONTENT","selected","lateLink","arrayChangeHandler","onBeforeChange","onAfterChange","items","srt","addViews","_dly","removeViews","moveViews","oldIndex","fixIndex","setArrayChangeLink","handler","arrayBinding","bndArr","off","arrayChangeStr","on","linkGetVal","_fe","contentEditable","from","renderAndLink","linkToNode","prevView","elCnt","removeViewBinding","nextSibling","addBindingMarkers","bindingKey","viewStore","exprFnDeps","propDeps","tagDepends","allowArray","cvtBk","_hdl","_dp","_depends","bdId","_apply","boundProps","_bndId","bindLinkedElChange","lnkCtx","tmplLink","$link","tmplOrLinkExpr","useInput","elementChangeStr","vwInfos","placeholderParent","targetEl","prntView","replaceMode","$view","addDataBinding","cleanData","lnk","viewInfos","rOpenViewMarkers","viewLink","outerData","validateOnly","convertMarkers","preceding","selfClose","closeTag","spaceBefore","boundId","spaceAfter","tag1","tag2","closeTag2","spaceAfterClose","selfClose2","endOpenTag","errorMsg","bndId","endOfElCnt","inTag","isVoid","tagStack","validate","voidElems","prevElCnt","elContent","defer","ids","openScript","closeScript","deferStack","badParent","processViewInfos","deferPath","deferChar","bindChar","onAftCr","deep","addedBindEls","_tkns","len","vwInfo","previousElementSibling","lastElementChild","open","removeSubStr","onAfterCreateStr","onAfterCreate","bindEls","getViewInfos","level","tagDepth","dataLink","wrap","selector","linkViewsSel","elems","qsa","querySelectorAll","prevNodes","markerNodeInfo","contains","isLink","rViewMarkers","skip","processInfos","$viewsLinkAttr","rOpenTagMarkers","unmarkPrevOrNextNode","prevIds","linkInfo","nextView","depth","fragment","copiedNode","firstTag","wrapper","thisId","noValidate","markPrevOrNextNode","namespaceURI","rConvertMarkers","safeFragment","createDocumentFragment","firstChild","insertBefore","linkMarkup","currentView","boundTagId","tagExpr","rTagIndex","linkExpressions","bindDataLinkTarget","normalizeLinkTag","rTagDatalink","linkExprStore","linkCtxType","_gccb","$elem","str","SCRIPT","isVal","rBinding","getInfos","close","elPath","infos","rMarkerTokens","removeAttribute","marker","twoway","copyFromTagCtxToTag","linkedElements","$linkCtxElem","linkCtxElem","linkedEl","linkedTag","tagCtxElse","oldVal","indexTo","mapDeps","tagCtxslength","mainElement","displayElement","Array","contents","onBind","mapProps","mapDepends","observe","setSize","height","width","className","_jsvCl","hasClass","removeClass","addClass","onAfterLink","asyncOnElemChange","which","setTimeout","bindTriggerEvent","trig","onoff","isIE","$linkedElem","newTrig","oldTrig","pathIndex","lastPath","bindtoOb","targetPaths","bindTos","targetPathsElses","resolveDataTargetPath","targetPath","topCp","newCtxs","newTagCtx","_thp","clean","elemArray","linkedElemTag","objId","obsId","allLinkedElems","cbId","propertyChangeStr","onDispose","cbBindingsStore","$unlink","each","innerView","getElementsByTagName","inputAttrib","viewOrTagChar","viewOrTag","precedingLength","emptyView","vwItem","rOpenMarkers","values","setValues","tagOrView","theTag","theView","select","filtered","add","find","withMarkers","prevIsFirstNode","lastSibling","childTags","_gm","indexFrom","newVal","_bdArgs","_bdVals","inArray","extra","domChange","hasListener","_data","events","domChangeNotification","triggerHandler","dataItems","delayed","viewsCount","itemsCount","keepNodes","removeView","viewToRemove","parts","itemView","setPrv","prv","rTagMarkers","selfNxt","backwards","firstChange","lastChange","movedNodes","viewsToMove","appendTo","afterParts","endChange","startView","endView","afterView","startParts","endParts","observeProps","updatePropsArr","update","insert","observeMappedProps","removeProperty","oldValue","shallowArrayFilter","rShallowArrayPath","setGlobals","jsvStoreName","$observe","setting","versionNumber","rAttrEncode","&","<",">","\u0000","'","\"","`","=","amp","gt","$render","jsr","jsrender","jsrToJq","jsviews","sub","syntaxErr","settings","advSet","_err","_sq","advanced","Error","_getOb","getCache","expando","renderFile","__express","obj","_jq","jq","_clFns","_jsv","if","done","for","sortDataMap","cloned","setDataMap","range","include","*",":*","dbg","encode","unencode","url","encodeURI","$eventSpecial","event","special","PARSEINT","rNotWhite","rShallowPath","propChng","arrChng","observeStr","observeObjKey","observeCbKey","observeInnerCbKey","$data","asyncBatch","getCbKey","cb","_cId","ObjectObservable","ns","_ns","ArrayObservable","wrapArray","dependsPaths","callback","rt","nextObj","out","_ar","onDataChange","isOb","noArray","parentObs","observeAll","_arOk","array","_path","observe_apply","$observeAll","unobserve","$unobserveAll","namespace","objMap","observeArrayItems","unobs","newAllPath","filterAndObserveAll","nestedArray","newObject","newParentObs","_fltr","nextParentObs","updatedTgt","wrappedCb","isObject","obId","notRemoving","un","hasData","shallowFilter","$unobserve","batchTrigger","batch","_go","_trigger","innerObserve","unobserveBinding","observeOnOff","fullPath","pathStr","isArrayBinding","evData","dataOb","boundObOrArr","prntObs","allPth","initialNs","el","cbBindings","unbind","relPath","prevAllPath","observeObjects","observeObjectPaths","pths","getInnerCb","newObj","observePath","prts","obArrAddRemove","arrIndex","dep","obArr","prt","fnProp","isGet","_inId","pth","innerCb","p","inId","initNsArr","initNsArrLen","lastArg","wait","delay","asyncObserve","_batch","unobserveAll","nonStrict","pair","tempBatch","multi","_setProperty","leaf","removeProp","property","Date","force","previous","_insert","oldLength","numToRemove","_remove","move","newIndex","numToMove","_move","excess","newItems","insertAdded","addedItems","dataLength","newItem","num","oldItems","newLength","_srt","handleObj","oldMapOrTarget","unbound","changing","updatedMap","obsSrc","obs","srcFlt","obsTgt","obt","_updt","tgtFlt","oldMap","newMap","obmp","_def","_gck","_obs","oldAdvSet","window","navigator","userAgent","textContent","RADIOINPUT","CHECKBOXINPUT","bindElsSel","input","valueBinding","isCleanCall","oldCleanData","oldJsvDelimiters","querySelector","ol","ul","table","tbody","thead","tfoot","tr","colgroup","dl","optgroup","svg","svg_ns","br","img","hr","area","col","meta","command","embed","keygen","track","wbr","rViewPath","requiresStr","regularExpression","currentValue","toggle","_hi","activeElem","contextOb","_sel","_evs","_hlr","oldIsCleanCall","radiogroup","Math","random","domChngCntnr","useDisable","disabled","_dmChg","forOrIfTagCtx","checkboxgroup","tgCtxProps","linkExpr","arrayView","targetLength","arrayBindings","_ars","tagCt","newTagCtxs","prevArg","different","tci","getInnerView","nd","isVl","unlink","oldFn","_glt","regEx","linkCtxs","last","nextPath","addedTagCpDep","paramVal","paramExpr","tagCtxPrm","cloneExprObjects","clones","linkAttr","option","caption","th","td","legend","support","htmlSerialize","textarea"],"mappings":"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","file":"jsviews.min.js","sourcesContent":["/*! jsviews.js v1.0.13 single-file version: http://jsviews.com/ */\n/*! includes JsRender, JsObservable and JsViews - see: http://jsviews.com/#download */\n\n/* Interactive data-driven views using JsRender templates */\n\n//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< JsRender >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n/* JsRender:\n * See http://jsviews.com/#jsrender and http://github.com/BorisMoore/jsrender\n * Copyright 2023, Boris Moore\n * Released under the MIT License.\n */\n\n//jshint -W018, -W041, -W120\n\n(function(factory, global) {\n\t// global var is the this object, which is window when running in the usual browser environment\n\tvar $ = global.jQuery;\n\n\tif (typeof exports === \"object\") { // CommonJS e.g. Browserify\n\t\tmodule.exports = $\n\t\t\t? factory(global, $)\n\t\t\t: function($) { // If no global jQuery, take jQuery passed as parameter: require(\"jsviews\")(jQuery)\n\t\t\t\treturn factory(global, $);\n\t\t\t};\n\t} else if (typeof define === \"function\" && define.amd) { // AMD script loader, e.g. RequireJS\n\t\tdefine([\"jquery\"], function($) {\n\t\t\treturn factory(global, $);\n\t\t}); // Require jQuery\n\t} else { // Browser using plain ',\n\topenScript = ' - data-linked tag, close marker\n\t\t\t// We validate with inTag so no script markers are inserted in attribute context e.g. for:\n\t\t\t// \"\" or \"
...{{/if}}...\"\n\t\t\tpreceding = id\n\t\t\t\t? (preceding + endOfElCnt + spaceBefore + (inTag ? \"\" : openScript + id + closeScript)+ spaceAfter + tag)\n\t\t\t\t: endOfElCnt || all;\n\t\t}\n\n\t\tif (validate && boundId) {\n\t\t\tif (inTag) {\n\t\t\t\t// JsViews data-linking tags are not allowed within element markup.\n\t\t\t\t// See jsviews/issues/303\n\t\t\t\tsyntaxError('{^{ within elem markup (' + inTag + ' ). Use data-link=\"...\"');\n\t\t\t}\n\t\t\tif (id.charAt(0) === \"#\") {\n\t\t\t\ttagStack.unshift(id.slice(1));\n\t\t\t} else if (id.slice(1) !== (bndId = tagStack.shift())) {\n\t\t\t\t// See jsviews/issues/213\n\t\t\t\tsyntaxError('Closing tag for {^{...}} under different elem: <' + bndId + '>');\n\t\t\t}\n\t\t}\n\t\tif (tag) {\n\t\t\tinTag = tag;\n\t\t\t// If there are ids (markers since the last tag), move them to the defer string\n\t\t\ttagStack.unshift(parentTag);\n\t\t\tparentTag = tag.slice(1);\n\t\t\tif (validate && tagStack[0] && tagStack[0] === badParent[parentTag]) {\n\t\t\t\t// Missing \n\t\t\t\t// TODO: replace this by smart insertion of tags\n\t\t\t\terror('Parent of must be ');\n\t\t\t}\n\t\t\tisVoid = voidElems[parentTag];\n\t\t\tif ((elCnt = elContent[parentTag]) && !prevElCnt) {\n\t\t\t\tdeferStack.unshift(defer);\n\t\t\t\tdefer = \"\";\n\t\t\t}\n\t\t\tprevElCnt = elCnt;\n//TODO Consider providing validation which throws if you place as child of , etc. - since if not caught,\n//this can cause errors subsequently which are difficult to debug.\n//\t\t\t\tif (elContent[tagStack[0]]>2 && !elCnt) {\n//\t\t\t\t\terror(parentTag + \" in \" + tagStack[0]);\n//\t\t\t\t}\n\t\t\tif (defer && elCnt) {\n\t\t\t\tdefer += \"+\"; // Will be used for stepping back through deferred tokens\n\t\t\t}\n\t\t}\n\t\treturn preceding;\n\t}\n\n\tfunction processViewInfos(vwInfos, targetParent) {\n\t\t// If targetParent, we are processing viewInfos (which may include navigation through '+-' paths) and hooking up to the right parentElem etc.\n\t\t// (and elem may also be defined - the next node)\n\t\t// If no targetParent, then we are processing viewInfos on newly inserted content\n\t\tvar deferPath, deferChar, bindChar, parentElem, id, onAftCr, deep,\n\t\t\taddedBindEls = [];\n\n\t\t// In elCnt context (element-only content model), prevNode is the first node after the open, nextNode is the first node after the close.\n\t\t// If both are null/undefined, then open and close are at end of parent content, so the view is empty, and its placeholder is the\n\t\t// 'lastChild' of the parentNode. If there is a prevNode, then it is either the first node in the view, or the view is empty and\n\t\t// its placeholder is the 'previousSibling' of the prevNode, which is also the nextNode.\n\t\tif (vwInfos) {\n\t\t\tif (vwInfos._tkns.charAt(0) === \"@\") {\n\t\t\t\t// We are processing newly inserted content. This is a special script element that was created in convertMarkers() to process deferred bindings,\n\t\t\t\t// and inserted following the target parent element - because no element tags (outside elCnt) were encountered to carry those binding tokens.\n\t\t\t\t// We will step back from the preceding sibling of this element, looking at targetParent elements until we find the one that the current binding\n\t\t\t\t// token belongs to. Set elem to null (the special script element), and remove it from the DOM.\n\t\t\t\ttargetParent = elem.previousSibling;\n\t\t\t\telem.parentNode.removeChild(elem);\n\t\t\t\telem = undefined;\n\t\t\t}\n\t\t\tlen = vwInfos.length;\n\t\t\twhile (len--) {\n\t\t\t\tvwInfo = vwInfos[len];\n//if (prevIds.indexOf(vwInfo.token) < 0) { // This token is a newly created view or tag binding\n\t\t\t\tbindChar = vwInfo.ch;\n\t\t\t\tif (deferPath = vwInfo.path) {\n\t\t\t\t\t// We have a 'deferred path'\n\t\t\t\t\tj = deferPath.length - 1;\n\t\t\t\t\twhile (deferChar = deferPath.charAt(j--)) {\n\t\t\t\t\t\t// Use the \"+\" and\"-\" characters to navigate the path back to the original parent node where the deferred bindings ocurred\n\t\t\t\t\t\tif (deferChar === \"+\") {\n\t\t\t\t\t\t\tif (deferPath.charAt(j) === \"-\") {\n\t\t\t\t\t\t\t\tj--;\n\t\t\t\t\t\t\t\ttargetParent = targetParent.previousElementSibling; // IE9 or later only\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttargetParent = targetParent.parentNode;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttargetParent = targetParent.lastElementChild; // IE9 or later only\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (bindChar === \"^\") {\n\t\t\t\t\tif (tag = bindingStore[id = vwInfo.id]) {\n\t\t\t\t\t\t// The binding may have been deleted, for example in a different handler to an array collectionChange event\n\t\t\t\t\t\t// This is a tag binding\n\t\t\t\t\t\tdeep = targetParent && (!elem || elem.parentNode !== targetParent); // We are stepping back looking for the right targetParent,\n\t\t\t\t\t\t// or we are linking existing content and this element is in elCnt, not an immediate child of the targetParent.\n\t\t\t\t\t\tif (!elem || deep) {\n\t\t\t\t\t\t\ttag.parentElem = targetParent;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (vwInfo.elCnt && deep) {\n\t\t\t\t\t\t\t// With element only content, if there is no following element, or if the binding is deeper than the following element\n\t\t\t\t\t\t\t// then we need to set the open or close token as a deferred binding annotation on the parent\n\t\t\t\t\t\t\tsetDefer(targetParent, (vwInfo.open ? \"#\" : \"/\") + id + bindChar + (targetParent._df || \"\"));\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// This is an open or close marker for a data-linked tag {^{...}}. Add it to bindEls.\n\t\t\t\t\t\taddedBindEls.push([deep ? null : elem, vwInfo]);\n\t\t\t\t\t}\n\t\t\t\t} else if (view = viewStore[id = vwInfo.id]) {\n\t\t\t\t\t// The view may have been deleted, for example in a different handler to an array collectionChange event\n\t\t\t\t\tif (!view.parentElem) {\n\t\t\t\t\t\t// If view is not already extended for JsViews, extend and initialize the view object created in JsRender, as a JsViews view\n\t\t\t\t\t\tview.parentElem = targetParent || elem && elem.parentNode || parentNode;\n\t\t\t\t\t\tview._.onRender = addBindingMarkers;\n\t\t\t\t\t\tview._.onArrayChange = arrayChangeHandler;\n\t\t\t\t\t\tsetArrayChangeLink(view);\n\t\t\t\t\t}\n\t\t\t\t\tparentElem = view.parentElem;\n\t\t\t\t\tif (vwInfo.open) {\n\t\t\t\t\t\t// This is an 'open view' node (preceding script marker node,\n\t\t\t\t\t\t// or if elCnt, the first element in the view, with a data-jsv annotation) for binding\n\t\t\t\t\t\tview._elCnt = vwInfo.elCnt;\n\t\t\t\t\t\tif (targetParent && !elem) {\n\t\t\t\t\t\t\tsetDefer(targetParent, \"#\" + id + bindChar + (targetParent._df || \"\"));\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// No targetParent, so there is a ._nxt elem (and this is processing tokens on the elem)\n\t\t\t\t\t\t\tif (!view._prv) {\n\t\t\t\t\t\t\t\tsetDefer(parentElem, removeSubStr(parentElem._df, \"#\" + id + bindChar));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tview._prv = elem;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// This is a 'close view' marker node for binding\n\t\t\t\t\t\tif (targetParent && (!elem || elem.parentNode !== targetParent)) {\n\t\t\t\t\t\t\t// There is no ._nxt so add token to _df. It is deferred.\n\t\t\t\t\t\t\tsetDefer(targetParent, \"/\" + id + bindChar + (targetParent._df || \"\"));\n\t\t\t\t\t\t\tview._nxt = undefined;\n\t\t\t\t\t\t} else if (elem) {\n\t\t\t\t\t\t\t// This view did not have a ._nxt, but has one now, so token may be in _df, and must be removed. (No longer deferred)\n\t\t\t\t\t\t\tif (!view._nxt) {\n\t\t\t\t\t\t\t\tsetDefer(parentElem, removeSubStr(parentElem._df, \"/\" + id + bindChar));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tview._nxt = elem;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (onAftCr = changeHandler(view, onAfterCreateStr) || onAfterCreate) {\n\t\t\t\t\t\t\tonAftCr.call(view.ctx.tag, view);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n//}\n\t\t\t\t}\n\t\t\t}\n\t\t\tlen = addedBindEls.length;\n\t\t\twhile (len--) {\n\t\t\t\t// These were added in reverse order to addedBindEls. We push them in BindEls in the correct order.\n\t\t\t\tbindEls.push(addedBindEls[len]);\n\t\t\t}\n\t\t}\n\t\treturn !vwInfos || vwInfos.elCnt;\n\t}\n\n\tfunction getViewInfos(vwInfos) {\n\t\t// Used by view.childTags() and tag.childTags()\n\t\t// Similar to processViewInfos in how it steps through bindings to find tags. Only finds data-linked tags.\n\t\tvar level, parentTag, named;\n\n\t\tif (vwInfos) {\n\t\t\tlen = vwInfos.length;\n\t\t\tfor (j = 0; j < len; j++) {\n\t\t\t\tvwInfo = vwInfos[j];\n\t\t\t\t// This is an open marker for a data-linked tag {^{...}}, within the content of the tag whose id is get.id. Add it to bindEls.\n\t\t\t\t// Note - if bindingStore[vwInfo.id]._is === \"tag\" then getViewInfos is being called too soon - during first linking pass\n\t\t\t\ttag = bindingStore[vwInfo.id];\n\t\t\t\tif (!tag._is && tag.linkCtx) {\n\t\t\t\t\tparentTag = tag = tag.linkCtx.tag;\n\t\t\t\t\tnamed = tag.tagName === tagName;\n\t\t\t\t\tif (!tag.flow || named) {\n\t\t\t\t\t\tif (!deep) {\n\t\t\t\t\t\t\tlevel = 1;\n\t\t\t\t\t\t\twhile (parentTag = parentTag.parent) {\n\t\t\t\t\t\t\t\tlevel++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttagDepth = tagDepth || level; // The level of the first tag encountered.\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ((deep || level === tagDepth) && (!tagName || named)) {\n\t\t\t\t\t\t\t// Filter on top-level or tagName as appropriate\n\t\t\t\t\t\t\ttags.push(tag);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction dataLink() {\n\t\t//================ Data-link and fixup of data-jsv annotations ================\n\t\tvar j, index,\n\t\t\ttokens = \"\",\n\t\t\twrap = {},\n\t\t\tselector = linkViewsSel + (get ? \",[\" + deferAttr + \"]\" : \"\");\n\t\t\t// If a childTags() call, get = \",[\" + deferAttr + \"]\" - since we need to include elements that have a ._df expando for deferred tokens\n\n\t\telems = qsa ? parentNode.querySelectorAll(selector) : $(selector, parentNode).get();\n\t\tl = elems.length;\n\n\t\t// The prevNode will be in the returned query, since we called markPrevOrNextNode() on it.\n\t\t// But it may have contained nodes that satisfy the selector also.\n\t\tif (prevNode && prevNode.innerHTML) {\n\t\t\t// Find the last contained node of prevNode, to use as the prevNode - so we only link subsequent elems in the query\n\t\t\tprevNodes = qsa ? prevNode.querySelectorAll(selector) : $(selector, prevNode).get();\n\t\t\tprevNode = prevNodes.length ? prevNodes[prevNodes.length - 1] : prevNode;\n\t\t}\n\n\t\ttagDepth = 0;\n\t\tfor (i = 0; i < l; i++) {\n\t\t\telem = elems[i];\n\t\t\tif (prevNode && !found) {\n\t\t\t\t// If prevNode is set, not false, skip linking. If this element is the prevNode, set to false so subsequent elements will link.\n\t\t\t\tfound = (elem === prevNode);\n\t\t\t} else if (nextNode && elem === nextNode) {\n\t\t\t\t// If nextNode is set then break when we get to nextNode\n\t\t\t\tif (get) {\n\t\t\t\t\ttokens += markerNodeInfo(elem);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t} else if (elem.parentNode) {\n\t\t\t\t// elem has not been removed from DOM\n\t\t\t\tif (get) {\n\t\t\t\t\ttokens += markerNodeInfo(elem);\n\t\t\t\t\tif (elem._df) {\n\t\t\t\t\t\tj = i + 1;\n\t\t\t\t\t\twhile (j < l && elem.contains(elems[j])) {\n\t\t\t\t\t\t\tj++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Add deferred tokens after any tokens on descendant elements of this one\n\t\t\t\t\t\twrap[j-1] = elem._df;\n\t\t\t\t\t}\n\t\t\t\t\tif (wrap[i]) {\n\t\t\t\t\t\ttokens += wrap[i] || \"\";\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (isLink && (vwInfo = viewInfos(elem, undefined, rViewMarkers)) && (vwInfo = vwInfo[0])) {\n\t\t\t\t\t\t// If this is a link(trueOrString ...) call we will avoid re-binding to elems that are within template-rendered views\n\t\t\t\t\t\tskip = skip ? (vwInfo.id !== skip && skip) : vwInfo.open && vwInfo.id;\n\t\t\t\t\t}\n\t\t\t\t\tif (!skip && processInfos(viewInfos(elem))\n\t\t\t\t\t\t// If a link() call, processViewInfos() adds bindings to bindEls, and returns true for non-script nodes, for adding data-link bindings\n\t\t\t\t\t\t// If a childTags() call, getViewInfos returns array of tag bindings.\n\t\t\t\t\t\t\t&& elem.getAttribute($viewsLinkAttr)) {\n\t\t\t\t\t\tbindEls.push([elem]); // A data-linked element so add to bindEls too\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (get) {\n\t\t\ttokens += parentNode._df || \"\";\n\t\t\tif (index = tokens.indexOf(\"#\" + get.id) + 1) {\n\t\t\t\t// We are looking for view.childTags() or tag.childTags() - so start after the open token of the parent view or tag.\n\t\t\t\ttokens = tokens.slice(index + get.id.length);\n\t\t\t}\n\t\t\tindex = tokens.indexOf(\"/\" + get.id);\n\t\t\tif (index + 1) {\n\t\t\t\t// We are looking for view.childTags() or tag.childTags() - so don't look beyond the close token of the parent view or tag.\n\t\t\t\ttokens = tokens.slice(0, index);\n\t\t\t}\n\t\t\t// Call getViewInfos to add the found childTags to the tags array\n\t\t\tgetViewInfos(viewInfos(tokens, undefined, rOpenTagMarkers));\n\t\t}\n\n\t\tif (html === undefined && parentNode.getAttribute($viewsLinkAttr)) {\n\t\t\tbindEls.push([parentNode]); // Support data-linking top-level element directly (not within a data-linked container)\n\t\t}\n\n\t\t// Remove temporary marker script nodes they were added by markPrevOrNextNode\n\t\tunmarkPrevOrNextNode(prevNode, elCnt);\n\t\tunmarkPrevOrNextNode(nextNode, elCnt);\n\n\t\tif (get) {\n\t\t\treturn; // We have added childTags to the tags array, so we are done\n\t\t}\n\n\t\tif (elCnt && defer + ids) {\n\t\t\t// There are some views with elCnt, for which the open or close did not precede any HTML tag - so they have not been processed yet\n\t\t\telem = nextNode;\n\t\t\tif (defer) {\n\t\t\t\tif (nextNode) {\n\t\t\t\t\tprocessViewInfos(viewInfos(defer + \"+\", true), nextNode);\n\t\t\t\t} else {\n\t\t\t\t\tprocessViewInfos(viewInfos(defer, true), parentNode);\n\t\t\t\t}\n\t\t\t}\n\t\t\tprocessViewInfos(viewInfos(ids, true), parentNode);\n\t\t\t// If there were any tokens on nextNode which have now been associated with inserted HTML tags, remove them from nextNode\n\t\t\tif (nextNode) {\n\t\t\t\ttokens = nextNode.getAttribute(jsvAttrStr);\n\t\t\t\tif (l = tokens.indexOf(prevIds) + 1) {\n\t\t\t\t\ttokens = tokens.slice(l + prevIds.length - 1);\n\t\t\t\t}\n\t\t\t\tnextNode.setAttribute(jsvAttrStr, ids + tokens);\n\t\t\t}\n\t\t}\n\n// if (context.lazyLink) {\n// setTimeout(doLinking) (doLinking is function wrapper of following lines)\n// See Future tasks, and https://github.com/BorisMoore/jsviews/issues/368.\n// Could call context.lazyLink as callback, on async completion - or return promise.\n\t\t//================ Bind the data-linked elements and tags ================\n\t\tl = bindEls.length;\n\t\tfor (i = 0; i < l; i++) {\n\t\t\telem = bindEls[i];\n\t\t\tlinkInfo = elem[1];\n\t\t\telem = elem[0];\n\t\t\tif (linkInfo) {\n\t\t\t\tif (tag = bindingStore[linkInfo.id]) {\n\t\t\t\t\tif (linkCtx = tag.linkCtx) {\n\t\t\t\t\t\t// The tag may have been stored temporarily on the bindingStore - or may have already been replaced by the actual binding\n\t\t\t\t\t\ttag = linkCtx.tag;\n\t\t\t\t\t\ttag.linkCtx = linkCtx;\n\t\t\t\t\t}\n\t\t\t\t\tif (linkInfo.open) {\n\t\t\t\t\t\t// This is an 'open linked tag' binding annotation for a data-linked tag {^{...}}\n\t\t\t\t\t\tif (elem) {\n\t\t\t\t\t\t\ttag.parentElem = elem.parentNode;\n\t\t\t\t\t\t\ttag._prv = elem;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttag._elCnt = linkInfo.elCnt;\n\t\t\t\t\t\t// We data-link depth-first (\"on the way in\"), which is better for perf - and allows setting parent tags etc.\n\t\t\t\t\t\tview = tag.tagCtx.view;\n\n\t\t\t\t\t\t// Add data binding (unless skipped due to lateRender)\n\t\t\t\t\t\taddDataBinding(late, undefined, tag._prv, view, linkInfo.id);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttag._nxt = elem;\n\t\t\t\t\t\tif (tag._.unlinked && !tag._toLk) {\n\t\t\t\t\t\t\t// This is a 'close linked tag' binding annotation (and data-binding was not skipped due to lateRender)\n\t\t\t\t\t\t\ttagCtx = tag.tagCtx;\n\t\t\t\t\t\t\tview = tagCtx.view;\n\t\t\t\t\t\t\tcallAfterLink(tag);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Add data binding for a data-linked element (with data-link attribute)\n\t\t\t\taddDataBinding(late, elem.getAttribute($viewsLinkAttr), elem, $view(elem), undefined, isLink, outerData, context);\n\t\t\t}\n\t\t}\n//});\n\t}\n\t//==== /end of nested functions ====\n\n\tvar inTag, linkCtx, tag, i, l, j, len, elems, elem, view, vwInfo, linkInfo, prevNodes, token, prevView, nextView,\n\t\tnode, tags, deep, tagName, tagCtx, validate, tagDepth, depth, fragment, copiedNode, firstTag, parentTag,\n\t\tisVoid, wrapper, div, tokens, elCnt, prevElCnt, htmlTag, ids, prevIds, found, skip, isLink, get,\n\t\tself = this,\n\t\tthisId = self._.id + \"_\",\n\t\tdefer = \"\",\n\t\t// The marker ids for which no tag was encountered (empty views or final closing markers) which we carry over to container tag\n\t\tbindEls = [],\n\t\ttagStack = [],\n\t\tdeferStack = [],\n\t\tlate = [],\n\t\tonAfterCreate = changeHandler(self, onAfterCreateStr),\n\t\tprocessInfos = processViewInfos;\n\n\tif (refresh) {\n\t\tif (refresh.tmpl) {\n\t\t\t// refresh is the prevView, passed in from addViews()\n\t\t\tprevView = \"/\" + refresh._.id + \"_\";\n\t\t} else {\n\t\t\tisLink = refresh.lnk; // Top-level linking\n\t\t\tif (refresh.tag) {\n\t\t\t\tthisId = refresh.tag + \"^\";\n\t\t\t\trefresh = true;\n\t\t\t}\n\t\t\tif (get = refresh.get) {\n\t\t\t\tprocessInfos = getViewInfos;\n\t\t\t\ttags = get.tags;\n\t\t\t\tdeep = get.deep;\n\t\t\t\ttagName = get.name;\n\t\t\t}\n\t\t}\n\t\trefresh = refresh === true;\n\t}\n\n\tparentNode = parentNode\n\t\t? (typeof parentNode === STRING\n\t\t\t? $(parentNode)[0] // It is a string, so treat as selector\n\t\t\t: parentNode.jquery\n\t\t\t\t? parentNode[0] // A jQuery object - take first element.\n\t\t\t\t: parentNode)\n\t\t: (self.parentElem // view.link()\n\t\t\t|| document.body); // link(null, data) to link the whole document\n\n\tvalidate = !$subSettingsAdvanced.noValidate && parentNode.contentEditable !== TRUE;\n\tparentTag = parentNode.tagName.toLowerCase();\n\telCnt = !!elContent[parentTag];\n\n\tprevNode = prevNode && markPrevOrNextNode(prevNode, elCnt);\n\tnextNode = nextNode && markPrevOrNextNode(nextNode, elCnt) || null;\n\n\tif (html != undefined) {\n\t\t//================ Insert html into DOM using documentFragments (and wrapping HTML appropriately). ================\n\t\t// Also convert markers to DOM annotations, based on content model.\n\t\t// Corresponds to nextNode ? $(nextNode).before(html) : $(parentNode).html(html);\n\t\t// but allows insertion to wrap correctly even with inserted script nodes. jQuery version will fail e.g. under tbody or select.\n\t\t// This version should also be slightly faster\n\t\tdiv = document.createElement(\"div\");\n\t\twrapper = div;\n\t\tprevIds = ids = \"\";\n\t\thtmlTag = parentNode.namespaceURI === \"http://www.w3.org/2000/svg\" ? \"svg_ns\" : (firstTag = rFirstElem.exec(html)) && firstTag[1] || \"\";\n\t\tif (elCnt) {\n\t\t\t// Now look for following view, and find its tokens, or if not found, get the parentNode._df tokens\n\t\t\tnode = nextNode;\n\t\t\twhile (node && !(nextView = viewInfos(node))) {\n\t\t\t\tnode = node.nextSibling;\n\t\t\t}\n\t\t\tif (tokens = nextView ? nextView._tkns : parentNode._df) {\n\t\t\t\ttoken = prevView || \"\";\n\t\t\t\tif (refresh || !prevView) {\n\t\t\t\t\ttoken += \"#\" + thisId;\n\t\t\t\t}\n\t\t\t\tj = tokens.indexOf(token);\n\t\t\t\tif (j + 1) {\n\t\t\t\t\tj += token.length;\n\t\t\t\t\t// Transfer the initial tokens to inserted nodes, by setting them as the ids variable, picked up in convertMarkers\n\t\t\t\t\tprevIds = ids = tokens.slice(0, j);\n\t\t\t\t\ttokens = tokens.slice(j);\n\t\t\t\t\tif (nextView) {\n\t\t\t\t\t\tnode.setAttribute(jsvAttrStr, tokens);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetDefer(parentNode, tokens);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t//================ Convert the markers to DOM annotations, based on content model. ================\n//\t\t\toldElCnt = elCnt;\n\t\tisVoid = undefined;\n\t\thtml = (\"\" + html).replace(rConvertMarkers, convertMarkers);\n//\t\t\tif (!!oldElCnt !== !!elCnt) {\n//\t\t\t\terror(\"Parse: \" + html); // Parse error. Content not well-formed?\n//\t\t\t}\n\t\tif (validate && tagStack.length) {\n\t\t\tsyntaxError(\"Mismatched '<\" + parentTag + \"...>' in:\\n\" + html); // Unmatched tag\n\t\t}\n\t\tif (validateOnly) {\n\t\t\treturn;\n\t\t}\n\t\t// Append wrapper element to doc fragment\n\t\tsafeFragment.appendChild(div);\n\n\t\t// Go to html and back, then peel off extra wrappers\n\t\t// Corresponds to jQuery $(nextNode).before(html) or $(parentNode).html(html);\n\t\t// but supports svg elements, and other features missing from jQuery version (and this version should also be slightly faster)\n\t\thtmlTag = wrapMap[htmlTag] || wrapMap.div;\n\t\tdepth = htmlTag[0];\n\t\twrapper.innerHTML = htmlTag[1] + html + htmlTag[2];\n\t\twhile (depth--) {\n\t\t\twrapper = wrapper.lastChild;\n\t\t}\n\t\tsafeFragment.removeChild(div);\n\t\tfragment = document.createDocumentFragment();\n\t\twhile (copiedNode = wrapper.firstChild) {\n\t\t\tfragment.appendChild(copiedNode);\n\t\t}\n\t\t// Insert into the DOM\n\t\tparentNode.insertBefore(fragment, nextNode);\n\t}\n\tdataLink();\n\n\treturn late;\n}\n\nfunction addDataBinding(late, linkMarkup, node, currentView, boundTagId, isLink, data, context) {\n\t// Add data binding for data-linked elements or {^{...}} data-linked tags\n\tvar tmpl, tokens, attr, convertBack, tagExpr, linkFn, linkCtx, tag, rTagIndex, hasElse, lastIndex,\n\t\tlinkExpressions = [];\n\n\tif (boundTagId) {\n\t\t// boundTagId is a string for {^{...}} data-linked tag. So only one linkTag in linkMarkup\n\t\t// data and context arguments are undefined\n\t\ttag = bindingStore[boundTagId];\n\t\ttag = tag.linkCtx ? tag.linkCtx.tag : tag;\n\n\t\tlinkCtx = tag.linkCtx || {\n\t\t\ttype: \"inline\",\n\t\t\tdata: currentView.data, // source\n\t\t\telem: tag._elCnt ? tag.parentElem : node, // target\n\t\t\tview: currentView,\n\t\t\tctx: currentView.ctx,\n\t\t\tattr: HTML, // Script marker nodes are associated with {^{ and always target HTML.\n\t\t\tfn: tag._.bnd,\n\t\t\ttag: tag,\n\t\t\t// Pass the boundTagId in the linkCtx, so that it can be picked up in observeAndBind\n\t\t\t_bndId: boundTagId\n\t\t};\n\t\ttag.linkCtx = linkCtx;\n\t\tbindDataLinkTarget(linkCtx, late);\n\t\ttag._toLk = linkCtx._bndId; // If data binding happened, remove _toLk flag from tag\n\t} else if (linkMarkup && node) {\n\t\t// Data-linked element\n\n\t\t// If isLink then this is a top-level linking: .link(expression, target, data, ....) or\n\t\t// .link(true, target, data, ....) scenario - and data and context are passed in separately from the view\n\t\tdata = isLink ? data : currentView.data;\n\t\ttmpl = currentView.tmpl;\n\t\tlinkMarkup = normalizeLinkTag(linkMarkup, defaultAttr(node));\n\t\tlastIndex = rTagDatalink.lastIndex = 0;\n\t\twhile (tokens = rTagDatalink.exec(linkMarkup)) { // TODO require } to be followed by whitespace or $, and remove the \\}(!\\}) option.\n\t\t\tlinkExpressions.push(tokens);\n\t\t\tlastIndex = rTagDatalink.lastIndex;\n\t\t}\n\t\tif (lastIndex < linkMarkup.length) {\n\t\t\tsyntaxError(linkMarkup);\n\t\t}\n\t\twhile (tokens = linkExpressions.shift()) {\n\t\t\t// Iterate over the data-link expressions, for different target attrs,\n\t\t\t// e.g. ~description(firstName, lastName)}\"\n\t\t\t// tokens: [all, attr, bindOnly, tagExpr, tagName, converter, colon, html, comment, code, params]\n\t\t\trTagIndex = rTagDatalink.lastIndex;\n\t\t\tattr = tokens[1];\n\t\t\ttagExpr = tokens[3];\n\t\t\twhile (linkExpressions[0] && linkExpressions[0][4] === \"else\") { // If this is {sometag...} and is followed by an {else...} add to tagExpr\n\t\t\t\ttagExpr += delimCloseChar1 + delimOpenChar0 + linkExpressions.shift()[3];\n\t\t\t\thasElse = true;\n\t\t\t}\n\t\t\tif (hasElse) { // If an {else} has been added, need also to add closing {{/sometag}}\n\t\t\t\ttagExpr += delimCloseChar1 + delimOpenChar0 + delimOpenChar1 + \"/\" + tokens[4] + delimCloseChar0;\n\t\t\t}\n\t\t\tlinkCtx = {\n\t\t\t\ttype: isLink || \"link\",\n\t\t\t\tdata: data, // source\n\t\t\t\telem: node, // target\n\t\t\t\tview: currentView,\n\t\t\t\tctx: context,\n\t\t\t\tattr: attr,\n\t\t\t\t_toLk : 1, // Flag to data-link on initial data-link call rendering call\n\t\t\t\t_noUpd : tokens[2] // Flag for data-link=\"^{...}\" so on initial data-link call will bind, but not render)\n\t\t\t};\n\n\t\t\tconvertBack = undefined;\n\t\t\tif (tokens[6]) {\n\t\t\t\tconvertBack = tokens[10] || undefined;\n\t\t\t\tlinkCtx.convert = tokens[5] || \"\";\n\t\t\t\tif (convertBack !== undefined && defaultAttr(node)) {\n\t\t\t\t\tif (attr) {\n\t\t\t\t\t\tsyntaxError(tagExpr + \"- Remove target: \" + attr);\n\t\t\t\t\t}\n\t\t\t\t\t// Default target, so allow 2 way binding\n\t\t\t\t\tlinkCtx.convertBack = convertBack = convertBack.slice(1);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Compile the linkFn expression which evaluates and binds a data-link expression\n\t\t\t// TODO - optimize for the case of simple data path with no conversion, helpers, etc.:\n\t\t\t// i.e. data-link=\"a.b.c\". Avoid creating new instances of Function every time. Can use a default function for all of these...\n\n\t\t\tlinkCtx.expr = attr + tagExpr;\n\t\t\tlinkFn = linkExprStore[tagExpr];\n\t\t\tif (!linkFn) {\n\t\t\t\tlinkExprStore[tagExpr] = linkFn = $sub.tmplFn(tagExpr.replace(rEscapeQuotes, \"\\\\$&\"), tmpl, true, convertBack, hasElse);\n\t\t\t}\n\t\t\tlinkCtx.fn = linkFn;\n\t\t\tbindDataLinkTarget(linkCtx, late);\n\t\t\t// We store rTagIndex in local scope, since this addDataBinding method can sometimes be called recursively,\n\t\t\t// and each is using the same rTagDatalink instance.\n\t\t\trTagDatalink.lastIndex = rTagIndex;\n\t\t}\n//\t\t}\n\t}\n}\n\nfunction bindDataLinkTarget(linkCtx, late) {\n\t// Add data link bindings for a link expression in data-link attribute markup, or for a linkedElement\n\tfunction handler(ev, eventArgs) {\n\t\t// If the link expression uses a custom tag, the onDataLinkedTagChange call will call renderTag, which will set tagCtx on linkCtx\n\t\tif (!eventArgs || !eventArgs.refresh) {\n\t\t\tonDataLinkedTagChange.call(linkCtx, ev, eventArgs);\n\t\t}\n\t}\n\n\tvar view,\n\t\tlinkCtxType = linkCtx.type;\n\tif (linkCtxType === \"top\" || linkCtxType === \"expr\") {\n\t\t// Top-level linking: .link(expressionOrTrue, data, context) - so we need to create a view for the linking, with the data and ctx\n\t\t// which may be different than the current context of the target. Note that this view is not a standard data-linked view, so it will\n\t\t// be disposed only when its parent view is disposed.\n\t\tlinkCtx.view = new $sub.View(\n\t\t\t$sub.extendCtx(linkCtx.ctx, linkCtx.view.ctx),\n\t\t\t\"link\", linkCtx.view, linkCtx.data, linkCtx.expr, undefined, addBindingMarkers);\n\t}\n\tlinkCtx._ctxCb = $sub._gccb(view = linkCtx.view); // getContextCallback: _ctxCb, for filtering/appending to dependency paths: function(path, object) { return [(object|path)*]}\n\tlinkCtx._hdl = handler;\n\t// handler._ctx = linkCtx; Could pass linkCtx for use in a depends = function() {} call, so depends is different for different linkCtx's\n\n\tif (linkCtx.elem.nodeName === \"SELECT\"\n\t\t&& (linkCtx.elem._jsvLkEl // A SELECT which is a linkedElement\n\t\t|| (linkCtxType === \"link\" && !linkCtx.attr && linkCtx.convert !== undefined))) { // A SELECT with a data-link binding (the assign tag {:...}, not another expression such as {on ...} (See https://github.com/BorisMoore/jsviews/issues/444))\n\t\t\tvar source,\n\t\t\t\telem = linkCtx.elem,\n\t\t\t\t$elem = $(elem);\n\t\t\t$elem.on(\"jsv-domchange\", function() {\n\t\t\t\t// If the options have changed dynamically under the select, we need to refresh the data-linked selection, using the new options\n\t\t\t\tif (!arguments[3].refresh) { // eventArgs.refresh !== true - so a refresh action will only set the selection once\n\t\t\t\t\tif (elem._jsvLkEl) {\n\t\t\t\t\t\t$elem.val(elem._jsvLkEl.cvtArgs(elem._jsvElse, 1)[elem._jsvInd]); // SELECT is a linkedElement, so set to value of bndArgs(elseIndex)[bindToIndex]\n\t\t\t\t\t} else if (linkCtx.tag) {\n\t\t\t\t\t\t$elem.val(linkCtx.tag.cvtArgs(0,1)); // SELECT with data-link expression with convert=... convertBack=...\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsource = linkCtx.fn(view.data, view, $sub); // SELECT with data-link expression (either data-link='expression', or data-link='{cvt:expression:cvtBk}')\n\t\t\t\t\t\t$elem.val(linkCtx.convert || linkCtx.convertBack ? $sub._cnvt(linkCtx.convert, view, source) : source);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tif (linkCtx.fn._lr) {\n\t\tlinkCtx._toLk = 1;\n\t\tlate.push(linkCtx); // lateRender - defer rendering and linking (sync but after first linking pass)\n\t} else {\n\t\thandler(true);\n\t}\n}\n\n//=====================\n// Data-linking helpers\n//=====================\n\nfunction removeSubStr(str, substr) {\n\tvar k;\n\treturn str\n\t\t? (k = str.indexOf(substr),\n\t\t\t(k + 1\n\t\t\t\t? str.slice(0, k) + str.slice(k + substr.length)\n\t\t\t\t: str))\n\t\t: \"\";\n}\n\nfunction markerNodeInfo(node) {\n\treturn node &&\n\t\t(typeof node === STRING\n\t\t\t? node\n\t\t\t: node.tagName === SCRIPT\n\t\t\t\t? node.type.slice(3)\n\t\t\t\t: node.nodeType === 1 && node.getAttribute(jsvAttrStr) || \"\");\n}\n\nfunction viewInfos(node, isVal, rBinding) {\n\t// Test whether node is a script marker node, and if so, return metadata\n\tfunction getInfos(all, open, close, id, ch, elPath) {\n\t\tinfos.push({\n\t\t\telCnt: elCnt,\n\t\t\tid: id,\n\t\t\tch: ch,\n\t\t\topen: open,\n\t\t\tclose: close,\n\t\t\tpath: elPath,\n\t\t\ttoken: all\n\t\t});\n\t}\n\tvar elCnt, tokens,\n\t\tinfos = [];\n\tif (tokens = isVal ? node : markerNodeInfo(node)) {\n\t\telCnt = infos.elCnt = node.tagName !== SCRIPT;\n\t\telCnt = tokens.charAt(0) === \"@\" || elCnt;\n\t\tinfos._tkns = tokens;\n\t\t// rMarkerTokens = /(?:(#)|(\\/))(\\d+)([_^])([-+@\\d]+)?/g;\n\t\ttokens.replace(rBinding || rMarkerTokens, getInfos);\n\t\treturn infos;\n\t}\n}\n\nfunction unmarkPrevOrNextNode(node, elCnt) {\n\tif (node) {\n\t\tif (node.type === \"jsv\") {\n\t\t\tnode.parentNode.removeChild(node);\n\t\t} else if (elCnt && node.getAttribute($viewsLinkAttr) === \"\") {\n\t\t\tnode.removeAttribute($viewsLinkAttr);\n\t\t}\n\t}\n}\n\nfunction markPrevOrNextNode(node, elCnt) {\n\tvar marker = node;\n\twhile (elCnt && marker && marker.nodeType !== 1) {\n\t\tmarker = marker.previousSibling;\n\t}\n\tif (marker) {\n\t\tif (marker.nodeType !== 1) {\n\t\t\t// For text nodes, we will add a script node before\n\t\t\tmarker = document.createElement(SCRIPT);\n\t\t\tmarker.type = \"jsv\";\n\t\t\tnode.parentNode.insertBefore(marker, node);\n\t\t} else if (!markerNodeInfo(marker) && !marker.getAttribute($viewsLinkAttr)) {\n\t\t\t// For element nodes, we will add a data-link attribute (unless there is already one)\n\t\t\t// so that this node gets included in the node linking process.\n\t\t\tmarker.setAttribute($viewsLinkAttr, \"\");\n\t\t}\n\t}\n\treturn marker;\n}\n\nfunction normalizeLinkTag(linkMarkup, twoway) {\n\tlinkMarkup = $.trim(linkMarkup);\n\treturn linkMarkup.slice(-1) !== delimCloseChar0\n\t// If simplified syntax is used: data-link=\"expression\", convert to data-link=\"{:expression}\",\n\t// or for inputs, data-link=\"{:expression:}\" for (default) two-way binding\n\t\t? linkMarkup = delimOpenChar1 + \":\" + linkMarkup + (twoway ? \":\" : \"\") + delimCloseChar0\n\t\t: linkMarkup;\n}\n\n//===========================\n// Methods for views and tags\n//===========================\n\nfunction callAfterLink(tag, ev, eventArgs) {\n\tfunction copyFromTagCtxToTag() {\n\t\tlinkedElems = tagCtx.linkedElems || tag.linkedElems || tag.linkedElem && [tag.linkedElem];\n\t\tif (linkedElems) {\n\t\t\ttag.linkedElems = tagCtx.linkedElems = linkedElems;\n\t\t\ttag.linkedElem = linkedElems[0] = tag.linkedElem || linkedElems[0];\n\t\t}\n\t\tif (linkedElem = tagCtx.mainElem || tag.mainElem) {\n\t\t\ttagCtx.mainElem = tag.mainElem = linkedElem;\n\t\t}\n\t\tif (linkedElem = tagCtx.displayElem || tag.displayElem) {\n\t\t\ttagCtx.displayElem = tag.displayElem = linkedElem;\n\t\t}\n\t}\n\n\tvar linkedElems, linkedElements, linkedElem, l, m, $linkCtxElem, linkCtxElem, linkedEl, linkedTag,\n\t\ttagCtxElse, props, val, oldVal, indexTo, i, mapDeps, propDeps,\n\t\ttagCtx = tag.tagCtx,\n\t\ttagCtxs = tag.tagCtxs,\n\t\ttagCtxslength = tagCtxs && tagCtxs.length,\n\t\tlinkCtx = tag.linkCtx,\n\t\tbindTo = tag.bindTo || {};\n\n\tif (tag._.unlinked) { // First call to onAfterLink, or first call after onUpdate: updateContent. Initialize and call onBind and set properties\n\t\t$linkCtxElem = $(linkCtx.elem);\n\t\tif (tag.linkedElement || tag.mainElement || tag.displayElement) {\n\t\t\tif (linkedElements = tag.linkedElement) {\n\t\t\t\t// tag.linkedElement: - selector, or array of selectors, for identifying linked elements in template/rendered content.\n\t\t\t\t// (But for tag bindings on data-linked elements, defaults to data-linked element)\n\t\t\t\ttag.linkedElem = undefined;\n\t\t\t\tl = linkedElements.length;\n\t\t\t\twhile (l--) {\n\t\t\t\t\tif (linkedElements[l]) {\n\t\t\t\t\t\tlinkCtxElem = !tag.inline && $linkCtxElem.filter(linkedElements[l]);\n\t\t\t\t\t\tm = tagCtxslength;\n\t\t\t\t\t\twhile (m--) {\n\t\t\t\t\t\t\ttagCtxElse = tagCtxs[m];\n\t\t\t\t\t\t\tlinkedElems = tagCtxElse.linkedElems = tagCtxElse.linkedElems || new Array(l);\n\t\t\t\t\t\t\tlinkedElem = linkCtxElem[0] ? linkCtxElem : tagCtxElse.contents(true, linkedElements[l]);\n\t\t\t\t\t\t\tif (linkedElem[0] && linkedElem[0].type !== RADIO) {\n\t\t\t\t\t\t\t\tlinkedElems[l] = linkedElem.eq(0);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (linkedElements = tag.mainElement) {\n\t\t\t\t// tag.mainElement: - selector for identifying mainElem in template/rendered content\n\t\t\t\t// (But for tag bindings on data-linked elements, defaults to data-linked element)\n\t\t\t\tlinkCtxElem = !tag.inline && $linkCtxElem.filter(linkedElements);\n\t\t\t\tm = tagCtxslength;\n\t\t\t\twhile (m--) {\n\t\t\t\t\ttagCtxElse = tagCtxs[m];\n\t\t\t\t\tlinkedElem = linkCtxElem[0] ? linkCtxElem : tagCtxElse.contents(true, linkedElements).eq(0);\n\t\t\t\t\tif (linkedElem[0]) {\n\t\t\t\t\t\ttagCtxElse.mainElem = linkedElem;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (linkedElements = tag.displayElement) {\n\t\t\t\t// tag.displayElement: - selector for identifying displayElem in template/rendered content\n\t\t\t\t// (But for tag bindings on data-linked elements, defaults to data-linked element)\n\t\t\t\tlinkCtxElem = !tag.inline && $linkCtxElem.filter(linkedElements);\n\t\t\t\tm = tagCtxslength;\n\t\t\t\twhile (m--) {\n\t\t\t\t\ttagCtxElse = tagCtxs[m];\n\t\t\t\t\tlinkedElem = linkCtxElem[0] ? linkCtxElem : tagCtxElse.contents(true, linkedElements).eq(0);\n\t\t\t\t\tif (linkedElem[0]) {\n\t\t\t\t\t\ttagCtxElse.displayElem = linkedElem;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tcopyFromTagCtxToTag();\n\t\t}\n\t\tif (tag.onBind) {\n\t\t\ttag.onBind(tagCtx, linkCtx, tag.ctx, ev, eventArgs);\n\t\t\tcopyFromTagCtxToTag();\n\t\t}\n\t}\n\n\tm = tagCtxslength;\n\twhile (m--) {\n\t\ttagCtxElse = tagCtxs[m];\n\t\tprops = tagCtxElse.props;\n\n\t\tif (tag._.unlinked && tagCtxElse.map && tag.mapProps) {\n\t\t\t// Compile the dependency paths for observable changes in mapProps (e.g. start, end, filter)\n\t\t\ti = tag.mapProps.length;\n\t\t\tmapDeps = props.mapDepends || tag.mapDepends || []; // dependency paths\n\t\t\tmapDeps = $isArray(mapDeps) ? mapDeps : [mapDeps];\n\t\t\twhile (i--) { // Iterate through mapProps\n\t\t\t\tvar prop = tag.mapProps[i];\n\t\t\t\tpropDeps = tag._.bnd.paths[m][\"_\" + prop]; // paths for mapProps on this tagCtx\n\t\t\t\tif (propDeps && propDeps.length && propDeps.skp) { // Not already a bound prop ^prop=expression;\n\t\t\t\t\tmapDeps = mapDeps.concat(propDeps); // Add dependencies for this prop expression\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (mapDeps.length) {\n\t\t\t\ttagCtxElse.map.observe(mapDeps, linkCtx); // Listen to observable changes of mapProps, and call map.update when change happens\n\t\t\t}\n\t\t}\n\t\tif (linkedElem = tagCtxElse.mainElem || !tag.mainElement && tagCtxElse.linkedElems && tagCtxElse.linkedElems[0]) {\n\t\t\t// linkedElem is the mainElem (defaulting to linkedElem)\n\t\t\tif (linkedElem[0] && props.id && !linkedElem[0].id) {\n\t\t\t\tlinkedElem[0].id = props.id;\n\t\t\t}\n\t\t\tif (tag.setSize) {\n\t\t\t\tif (val = !bindTo.height && props.height || tag.height) {\n\t\t\t\t\tlinkedElem.height(val);\n\t\t\t\t}\n\t\t\t\tif (val = !bindTo.width && props.width || tag.width) {\n\t\t\t\t\tlinkedElem.width(val);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (val = (linkedElem = tagCtxElse.displayElem || linkedElem) && (!bindTo[\"class\"] && props[\"class\"] || tag.className)) {\n\t\t\t// This code supports dynamic binding to class - where it adds the class if absent, and removes/adds if a previous value is present\n\t\t\toldVal = linkedElem[0]._jsvCl;\n\t\t\tif (val !== oldVal) {\n\t\t\t\tif (linkedElem.hasClass(oldVal)) {\n\t\t\t\t\tlinkedElem.removeClass(oldVal);\n\t\t\t\t}\n\t\t\t\tlinkedElem.addClass(val);\n\t\t\t\tlinkedElem[0]._jsvCl = val;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (tag.onAfterLink) {\n\t\ttag.onAfterLink(tagCtx, linkCtx, tag.ctx, ev, eventArgs);\n\t\tcopyFromTagCtxToTag();\n\t}\n\n\tif (!tag.flow && !tag._.chg) {\n\t\tif (tag._tgId && tag._.unlinked && (tag.linkedElems || tag.bindTo)) {\n\t\t\tdefineBindToDataTargets(bindingStore[tag._tgId], tag);\n\t\t}\n\t\tm = tagCtxs.length;\n\t\twhile (m--) {\n\t\t\tprops = tag.cvtArgs(m, 1); // array of bindFrom args/props\n\t\t\tl = props.length;\n\t\t\twhile (l--) {\n\t\t\t\t// If the bound property or arg has not yet been set (e.g. during initial rendering),\n\t\t\t\t// or has been unset, because onUpdate is set to true, or if onUpdate is false,\n\t\t\t\t// but this particular bound arg/prop is being changed observably: call setValue()\n\t\t\t\ttag.setValue(props[l], l, m, ev, eventArgs);\n\t\t\t}\n\t\t\tif (tag._.unlinked) {\n\t\t\t\ttagCtx = tagCtxs[m];\n\t\t\t\tlinkedElems = tagCtx.linkedElems || !m && tag.linkedElem && [tag.linkedElem];\n\t\t\t\tindexTo = (tag.bindTo || [0]).length;\n\t\t\t\twhile (indexTo--) {\n\t\t\t\t\tif ((linkedElem = linkedElems && linkedElems[indexTo]) && (l = linkedElem.length)) {\n\t\t\t\t\t\twhile (l--) {\n\t\t\t\t\t\t\tlinkedEl = linkedElem[l];\n\t\t\t\t\t\t\tlinkedTag = linkedEl._jsvLkEl;\n\t\t\t\t\t\t\tif (!linkedTag || linkedTag !== tag) {\n\t\t\t\t\t\t\t\t// For data-linked tags, identify the linkedEl with the tag, for \"to\" binding\n\t\t\t\t\t\t\t\t// (For data-linked elements, if not yet bound, we identify later when the linkCtx.elem is bound)\n\t\t\t\t\t\t\t\tlinkedEl._jsvLkEl = tag;\n\t\t\t\t\t\t\t\tlinkedEl._jsvInd = indexTo;\n\t\t\t\t\t\t\t\tlinkedEl._jsvElse = m;\n\t\t\t\t\t\t\t\tbindLinkedElChange(tag, linkedEl);\n\t\t\t\t\t\t\t\tif (tag._tgId) {\n\t\t\t\t\t\t\t\t\tlinkedEl._jsvBnd = \"&\" + tag._tgId + \"+\"; // Add a \"+\" for cloned binding - so removing\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// elems with cloned bindings will not remove the 'parent' binding from the bindingStore.\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\ttag._.unlinked = undefined;\n\tif (tag._.lt) { // Late tag: Late path: @some.path had not returned @some object, so try again with refresh\n\t\ttag.refresh();\n\t}\n}\n\nfunction asyncOnElemChange(ev) {\n\tvar which = ev.which;\n\tif (!(which > 15 && which < 21 || which > 32 && which < 41 || which > 111 && which < 131 || which === 27 || which === 144)) {\n\t\t// Shift, Ctrl, Alt, Pause, Caplock, Page up/down End, Home, Left, Up, Right, Down, Function keys, Escape, Numlock\n\t\tsetTimeout(function() {\n\t\t\tonElemChange(ev);\n\t\t});\n\t}\n}\n\nfunction bindTriggerEvent($elem, trig, onoff) {\n\t// Bind keydown, or other trigger - (rather than use the default change event bubbled to activeBody)\n\tif (trig === true && useInput && (!isIE || $elem[0].contentEditable !== TRUE)) { // IE oninput event is not raised for contenteditable changes\n\t\t$elem[onoff](\"input.jsv\", onElemChange); // For HTML5 browser with \"oninput\" support - for mouse editing of text\n\t} else {\n\t\ttrig = typeof trig === STRING ? trig : \"keydown.jsv\"; // Set trigger to (true || truey non-string (e.g. 1) || 'keydown')\n\t\t$elem[onoff](trig, trig.indexOf(\"keydown\") >= 0 ? asyncOnElemChange : onElemChange); // Get 'keydown' with async\n\t}\n}\n\nfunction bindLinkedElChange(tag, linkedElem) {\n\t// Two-way binding for linkedElem - in the case of input, textarea or contentEditable elements.\n\t// Trigger setting may have changed. Unbind previous trigger binding (if any) and bind new one.\n\n\tvar $linkedElem, newTrig,\n\t\toldTrig = linkedElem._jsvTr || false;\n\n\tif (tag) {\n\t\tnewTrig = tag.tagCtx.props.trigger;\n\t\tif (newTrig === undefined) {\n\t\t\tnewTrig = tag.trigger;\n\t\t}\n\t}\n\tif (newTrig === undefined) {\n\t\tnewTrig = $subSettings.trigger;\n\t}\n\t// Trigger is noop except for text box, textarea, contenteditable...\n\tnewTrig = newTrig && (linkedElem.tagName === \"INPUT\" && linkedElem.type !== CHECKBOX && linkedElem.type !== RADIO\n\t\t|| linkedElem.type === \"textarea\" || linkedElem.contentEditable === TRUE) && newTrig || false;\n\n\tif (oldTrig !== newTrig) {\n\t\t$linkedElem = $(linkedElem);\n\t\tbindTriggerEvent($linkedElem, oldTrig, \"off\");\n\t\tbindTriggerEvent($linkedElem, linkedElem._jsvTr = newTrig, \"on\");\n\t}\n}\n\nfunction defineBindToDataTargets(binding, tag, cvtBk) {\n\t// Two-way binding.\n\t// We set the binding.to[1] to be the cvtBack, and binding.to[0] to be either the path to the target, or [object, path] where the target is the\n\t// path on the provided object. So for a computed path with an object call: a.b.getObject().d.e, we set to[0] to be [exprOb, \"d.e\"], and\n\t// we bind to the path on the returned object, exprOb.ob, as target. Otherwise our target is the first path, paths[0], which we will convert\n\t// with contextCb() for paths like ~a.b.c or #x.y.z\n\n\tvar pathIndex, path, lastPath, bindtoOb, to, bindTo, paths, k, obsCtxPrm, linkedCtxParam, contextCb, targetPaths, bindTos, fromIndex, isCpfn,\n\t\ttagElse = 1,\n\t\ttos = [],\n\t\tlinkCtx = binding.linkCtx,\n\t\tsource = linkCtx.data,\n\t\ttargetPathsElses = linkCtx.fn.paths;\n\n\tif (binding && !binding.to) {\n\t\tif (tag) {\n\t\t\tif (!tag.convertBack) {\n\t\t\t\ttag.convertBack = cvtBk;\n\t\t\t}\n\t\t\tbindTo = tag.bindTo;\n\t\t\ttagElse = tag.tagCtxs ? tag.tagCtxs.length : 1;\n\t\t}\n\t\twhile (tagElse--) {\n\t\t\tbindTos = [];\n\t\t\tif (targetPaths = targetPathsElses[tagElse]) {\n\t\t\t\tbindTo = targetPaths._jsvto ? [\"jsvto\"] : (bindTo || [0]);\n\t\t\t\tif (!tagElse && tag && tag._.ths) {\n\t\t\t\t\t// Tag has a this=expr bindign for which we will create an additional 'to' target (at index bindTo.length)\n\t\t\t\t\tbindTo = bindTo.concat(\"this\");\n\t\t\t\t}\n\t\t\t\tk = bindTo.length;\n\t\t\t\twhile (k--) {\n\t\t\t\t\tpath = \"\";\n\t\t\t\t\tcontextCb = linkCtx._ctxCb;\n\t\t\t\t\tpaths = bindTo[k];\n\t\t\t\t\tpaths = targetPaths[+paths === paths ? paths : \"_\" + paths]; // If path is a string, prepend \"_\" to avoid collision (e.g. with array.length if path is \"length\")\n\t\t\t\t\tif (pathIndex = paths && paths.length) {\n\t\t\t\t\t\tlastPath = paths[pathIndex - 1];\n\t\t\t\t\t\tif (lastPath._cpfn) { // Computed property exprOb\n\n\t\t\t\t\t\t\tbindtoOb = lastPath;\n\t\t\t\t\t\t\twhile (lastPath.sb && lastPath.sb._cpfn) {\n\t\t\t\t\t\t\t\tpath = lastPath = lastPath.sb;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tpath = lastPath.sb || path && path.path;\n\t\t\t\t\t\t\tisCpfn = lastPath._cpfn && !lastPath.sb; // leaf binding to computed property/function \"a.b.c()\"\n\t\t\t\t\t\t\tlastPath = path ? path.slice(1) : bindtoOb.path;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tto = path\n\t\t\t\t\t\t\t? [bindtoOb, // 'exprOb' for this expression and view-binding. So bindtoOb.ob is current object returned by expression.\n\t\t\t\t\t\t\t\tlastPath]\n\t\t\t\t\t\t\t: resolveDataTargetPath(lastPath, source, contextCb); // Get 'to' for target path: lastPath\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Contextual parameter ~foo with no external binding - has ctx.foo = [{_ocp: xxx}] and binds to ctx.foo._ocp\n\t\t\t\t\t\tlinkedCtxParam = tag.linkedCtxParam;\n\t\t\t\t\t\tto = [];\n\t\t\t\t\t\tfromIndex = tag._.fromIndex;\n\t\t\t\t\t\tif (fromIndex && linkedCtxParam && linkedCtxParam[fromIndex[k]]) {\n\t\t\t\t\t\t\t// This is a tag binding, with linked tag contextual parameters\n\t\t\t\t\t\t\tto = [tag.tagCtxs[tagElse].ctx[linkedCtxParam[fromIndex[k]]][0], _ocp];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ((obsCtxPrm = to._cxp) && obsCtxPrm.tag && lastPath.indexOf(\".\")<0) {\n\t\t\t\t\t\t// This is a binding for a tag contextual parameter (e.g. within a tag block content\n\t\t\t\t\t\tto = obsCtxPrm;\n\t\t\t\t\t}\n\t\t\t\t\tto.isCpfn = isCpfn;\n\t\t\t\t\tbindTos.unshift(to);\n\t\t\t\t}\n\t\t\t}\n\t\t\ttos.unshift(bindTos);\n\t\t}\n\t\tbinding.to = tos;\n\t}\n}\n\nfunction resolveDataTargetPath(targetPath, source, contextCb) {\n\t// Iteratively process targetPath, resolving ~a.b.c paths for contextual parameters\n\tvar path, bindtoOb, to, l, obsCtxPrm, view, topCp, data;\n\n\twhile (targetPath && targetPath !== _ocp && (to = contextCb(path = targetPath.split(\"^\").join(\".\"))) && (l = to.length)) {\n\t\tif (obsCtxPrm = to[0]._cxp) { // Two-way binding to a contextual parameter reference, ~foo (declared as ~foo=expr on a parent tag)\n\t\t\ttopCp = topCp || obsCtxPrm;\n\t\t\tview = to[0][0];\n\t\t\tif (_ocp in view) {\n\t\t\t\tdata = view;\n\t\t\t\tview = view._vw;\n\t\t\t} else {\n\t\t\t\tdata = view.data;\n\t\t\t}\n\t\t\ttopCp.path = targetPath = to[0][1];\n\t\t\tto = [topCp.data = data, targetPath];\n\t\t\t\tcontextCb = $sub._gccb(view);\n\t\t\t\tif (targetPath._cpfn) { // computed property\n\t\t\t\t\tbindtoOb = targetPath;\n\t\t\t\t\tbindtoOb.data = to[0];\n\t\t\t\t\tbindtoOb._cpCtx = contextCb;\n\t\t\t\t\twhile (targetPath.sb && targetPath.sb._cpfn) {\n\t\t\t\t\t\tpath = targetPath = targetPath.sb;\n\t\t\t\t\t}\n\t\t\t\t\tpath = targetPath.sb || path && path.path;\n\t\t\t\t\ttargetPath = path ? path.slice(1) : bindtoOb.path;\n\t\t\t\t\tto = [\n\t\t\t\t\t\tbindtoOb, // 'exprOb' for this expression and view-binding. So bindtoOb.ob is current object returned by expression.\n\t\t\t\t\t\ttargetPath\n\t\t\t\t\t];\n\t\t\t\t} else if (obsCtxPrm.tag && obsCtxPrm.path === _ocp) {\n\t\t\t\t\tto = obsCtxPrm;\n\t\t\t\t}\n\t\t} else { // Two-way binding to a helper - e.g. ~address.street, or computed, e.g. ~fullName(), or view property e.g. #data.foo\n\t\t\tto = l>1\n\t\t\t\t? [to[l-2], to[l-1]] // With path: [object, path]\n\t\t\t\t: [to[l-1]]; // No path, (e.g. [function] for computed with setter)\n\t\t}\n\t\tsource = to[0];\n\t\ttargetPath = to[1];\n\t}\n\tto = to || [source, path];\n\tto._cxp = topCp;\n\treturn to;\n}\n\nfunction mergeCtxs(tag, newCtxs, replace) { // Merge updated tagCtxs into tag.tagCtxs\n\tvar tagCtx, newTagCtx, latePath,\n\t\tview = tag.tagCtx.view,\n\t\ttagCtxs = tag.tagCtxs || [tag.tagCtx],\n\t\tl = tagCtxs.length,\n\t\trefresh = !newCtxs;\n\n\tif (refresh) {\n\t\tnewCtxs = tag._.bnd.call(view.tmpl, (tag.linkCtx || view).data, view, $sub);\n\t\tif (newCtxs.lt) {\n\t\t\treturn; // We are calling tag.refresh() but a late path (@a.b.c) has not yet returned an object (@a) so cancel the refresh()\n\t\t}\n\t\ttag._.lt = undefined; // All late paths are now resolved, so this is no longer a late tag\n\t\tnewCtxs = $isArray(newCtxs) ? newCtxs : [newCtxs];\n\t}\n\n\tif (replace) {\n\t\t// Replace previous tagCtxs by new ones, rather than merging\n\t\ttagCtxs = tag.tagCtxs = newCtxs;\n\t\ttag.tagCtx = tagCtxs[0];\n\t\taddLinkMethods(tag);\n\t} else {\n\t\twhile (l--) {\n\t\t\ttagCtx = tagCtxs[l];\n\t\t\tnewTagCtx = newCtxs[l];\n\t\t\t$extend(tagCtx.ctx, newTagCtx.ctx); // We don't support propagating ctx variables, ~foo, observably, to nested views. So extend, not setProperty...\n\t\t\ttagCtx.args = newTagCtx.args;\n\t\t\tif (refresh) {\n\t\t\t\ttagCtx.tmpl = newTagCtx.tmpl;\n\t\t\t}\n\t\t\t$observable(tagCtx.props).setProperty(newTagCtx.props);\n\t\t}\n\t}\n\t$sub._thp(tag, tagCtxs[0]); // tagHandlersFromProps\n\treturn tagCtxs;\n}\n\n//=========\n// Disposal\n//=========\n\nfunction clean(elems) {\n\t// Remove data-link bindings, or contained views\n\tvar l, elem, bindings,\n\t\telemArray = [],\n\t\tlen = elems.length,\n\t\ti = len;\n\twhile (i--) {\n\t\t// Copy into an array, so that deletion of nodes from DOM will not cause our 'i' counter to get shifted\n\t\t// (Note: This seems as fast or faster than elemArray = [].slice.call(elems); ...)\n\t\telemArray.push(elems[i]);\n\t}\n\ti = len;\n\twhile (i--) {\n\t\telem = elemArray[i];\n\t\tif (elem.parentNode) {\n\t\t\t// Has not already been removed from the DOM\n\t\t\tif (bindings = elem._jsvBnd) {\n\t\t\t\t// Get propertyChange bindings for this element\n\t\t\t\t// This may be an element with data-link, or the opening script marker node for a data-linked tag {^{...}}\n\t\t\t\t// bindings is a string with the syntax: \"(&bindingId)*\"\n\t\t\t\tbindings = bindings.slice(1).split(\"&\");\n\t\t\t\telem._jsvBnd = \"\";\n\t\t\t\tl = bindings.length;\n\t\t\t\twhile (l--) {\n\t\t\t\t\t// Remove associated bindings\n\t\t\t\t\tremoveViewBinding(bindings[l], elem._jsvLkEl, elem); // unbind bindings with this bindingId on this view\n\t\t\t\t}\n\t\t\t}\n\t\t\tdisposeTokens(markerNodeInfo(elem) + (elem._df || \"\"), elem);\n\t\t}\n\t}\n}\n\nfunction removeViewBinding(bindId, linkedElemTag, elem) {\n\t// Unbind\n\tvar objId, linkCtx, tag, object, obsId, tagCtxs, l, map, linkedElem, trigger, view, tagCtx, linkedElems, allLinkedElems,\n\t\tbinding = bindingStore[bindId];\n\n\tif (linkedElemTag) {\n\t\telem._jsvLkEl = undefined;\n\t} else if (binding && (!elem || elem === binding.elem)) { // Test that elem is actually binding.elem, since cloned elements can have inappropriate markerNode info\n\t\tdelete bindingStore[bindId]; // Delete already, so call to onDispose handler below cannot trigger recursive deletion (through recursive call to jQuery cleanData)\n\t\tfor (objId in binding.bnd) {\n\t\t\tif (object = binding.bnd[objId]) {\n\t\t\t\tobsId = binding.cbId;\n\t\t\t\tif ($isArray(object)) {\n\t\t\t\t\t$([object]).off(arrayChangeStr + obsId).off(propertyChangeStr + obsId); // There may be either or both of arrayChange and propertyChange\n\t\t\t\t} else {\n\t\t\t\t\t$(object).off(propertyChangeStr + obsId);\n\t\t\t\t}\n\t\t\t\tdelete binding.bnd[objId];\n\t\t\t}\n\t\t}\n\n\t\tif (linkCtx = binding.linkCtx) {\n\t\t\tif (tag = linkCtx.tag) {\n\t\t\t\tif (tagCtxs = tag.tagCtxs) {\n\t\t\t\t\tl = tagCtxs.length;\n\t\t\t\t\twhile (l--) {\n\t\t\t\t\t\ttagCtx = tagCtxs[l];\n\t\t\t\t\t\tif (map = tagCtx.map) {\n\t\t\t\t\t\t\tmap.unmap(); //unobserve\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Copy linkedElems in case tag.linkedElem or tag.linkedElems are undefined in onUnbind\n\t\t\t\t\t\tif (linkedElems = tagCtx.linkedElems) {\n\t\t\t\t\t\t\tallLinkedElems = (allLinkedElems || []).concat(linkedElems);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (tag.onUnbind) {\n\t\t\t\t\ttag.onUnbind(tag.tagCtx, linkCtx, tag.ctx);\n\t\t\t\t}\n\t\t\t\tif (tag.onDispose) {\n\t\t\t\t\ttag.onDispose();\n\t\t\t\t}\n\n\t\t\t\tif (!tag._elCnt) {\n\t\t\t\t\tif (tag._prv) {\n\t\t\t\t\t\ttag._prv.parentNode.removeChild(tag._prv);\n\t\t\t\t\t}\n\t\t\t\t\tif (tag._nxt) {\n\t\t\t\t\t\ttag._nxt.parentNode.removeChild(tag._nxt);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlinkedElems = allLinkedElems || [$(linkCtx.elem)];\n\t\t\tl = linkedElems.length;\n\t\t\twhile (l--) {\n\t\t\t\tlinkedElem = linkedElems[l];\n\t\t\t\tif (trigger = linkedElem && linkedElem[0] && linkedElem[0]._jsvTr) {\n\t\t\t\t\tbindTriggerEvent(linkedElem, trigger, \"off\");\n\t\t\t\t\tlinkedElem[0]._jsvTr = undefined;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tview = linkCtx.view;\n\t\t\tif (view.type === \"link\") {\n\t\t\t\tview.parent.removeViews(view._.key, undefined, true); // A \"link\" view is associated with the binding, so should be disposed with binding.\n\t\t\t} else {\n\t\t\t\tdelete view._.bnds[bindId];\n\t\t\t}\n\t\t}\n\t\tdelete cbBindingsStore[binding.cbId];\n\t}\n}\n\nfunction $unlink(to) {\n\tif (to) {\n\t\tto = to.jquery ? to : $(to);\n\t\tto.each(function() {\n\t\t\tvar innerView;\n\t\t\t//TODO fix this for better perf. Rather that calling inner view multiple times which does querySelectorAll each time, consider a single querySelectorAll\n\t\t\t// or simply call view.removeViews() on the top-level views under the target 'to' node, then clean(...)\n\t\t\t// And/or replace each() by for() or while()\n\t\t\twhile ((innerView = $view(this, true)) && innerView.parent) {\n\t\t\t\tinnerView.parent.removeViews(innerView._.key, undefined, true);\n\t\t\t}\n\t\t\tclean(this.getElementsByTagName(\"*\"));\n\t\t});\n\t\tclean(to);\n\t} else {\n\t\t// Call to $.unlink() is equivalent to $.unlink(true, \"body\")\n\t\tif (activeBody) {\n\t\t\t$(activeBody)\n\t\t\t\t.off(elementChangeStr, onElemChange)\n\t\t\t\t.off('blur.jsv', '[contenteditable]', onElemChange);\n\t\t\tactiveBody = undefined;\n\t\t}\n\t\ttopView.removeViews();\n\t\tclean(document.body.getElementsByTagName(\"*\"));\n\t}\n}\n\n//========\n// Helpers\n//========\n\nfunction inputAttrib(elem) {\n\treturn elem.type === CHECKBOX ? elem[CHECKED] : elem.value;\n}\n\nfunction changeHandler(view, name, tag) {\n\t// Get onBeforeChange, onAfterChange, onAfterCreate handler - if there is one;\n\treturn tag && tag[name] || view.ctx[name] && view.ctxPrm(name) || $views.helpers[name];\n}\n\n//========================== Initialize ==========================\n\n//=====================\n// JsRender integration\n//=====================\n\naddLinkMethods($sub.View.prototype); // Modify the View prototype to include link methods\n\n$sub.onStore.template = function(name, item, parentTmpl) {\n\tif (item === null) {\n\t\tdelete $.link[name];\n\t\tdelete $.render[name];\n\t} else {\n\t\titem.link = tmplLink;\n\n\t\tif (name && !parentTmpl && name !== \"jsvTmpl\") {\n\t\t\t$.render[name] = item;\n\t\t\t$.link[name] = function() {\n\t\t\t\treturn tmplLink.apply(item, arguments);\n\t\t\t};\n\t\t}\n\t}\n};\n\n$sub.viewInfos = viewInfos; // Expose viewInfos() as public helper method\n\n// Define JsViews version of delimiters(), and initialize\n($viewsSettings.delimiters = function() {\n\t// Run delimiters initialization in context of jsrender.js\n\tvar ret = oldJsvDelimiters.apply(0, arguments);\n\n\tif (oldJsvDelimiters !== $viewsDelimiters) {\n\t\t// If JsRender was loaded before JsViews, then need also to initialize and set globals in that JsRender instance\n\t\tret = $viewsDelimiters.apply(0, arguments);\n\t}\n\n\t// Data-linking must use new delimiters\n\trTagDatalink = new RegExp(\"(?:^|\\\\s*)([\\\\w-]*)(\\\\\" + linkChar + \")?(\\\\\" + delimOpenChar1 + $sub.rTag + \"(:\\\\w*)?\\\\\" + delimCloseChar0 + \")\", \"g\");\n\treturn ret;\n})(); // jshint ignore:line\n\n$sub.addSetting(\"trigger\");\n\n//====================================\n// Additional members for linked views\n//====================================\n\nfunction transferViewTokens(prevNode, nextNode, parentElem, id, viewOrTagChar, refresh) {\n\t// Transfer tokens on prevNode of viewToRemove/viewToRefresh to nextNode or parentElem._df\n\t// view marker tokens: #m_...VIEW.../m_\n\t// tag marker tokens: #m^...TAG..../m^\n\n\tvar i, l, vwInfos, vwInfo, viewOrTag, viewId, tokens,\n\t\tprecedingLength = 0,\n\t\temptyView = prevNode === nextNode;\n\n\tif (prevNode) {\n\t\t// prevNode is either the first node in the viewOrTag, or has been replaced by the vwInfos tokens string\n\t\tvwInfos = viewInfos(prevNode) || [];\n\t\tfor (i = 0, l = vwInfos.length; i < l; i++) {\n\t\t\t// Step through views or tags on the prevNode\n\t\t\tvwInfo = vwInfos[i];\n\t\t\tviewId = vwInfo.id;\n\t\t\tif (viewId === id && vwInfo.ch === viewOrTagChar) {\n\t\t\t\tif (refresh) {\n\t\t\t\t\t// This is viewOrTagToRefresh, this is the last viewOrTag to process...\n\t\t\t\t\tl = 0;\n\t\t\t\t} else {\n\t\t\t\t\t// This is viewOrTagToRemove, so we are done...\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!emptyView) {\n\t\t\t\tviewOrTag = vwInfo.ch === \"_\"\n\t\t\t\t\t? viewStore[viewId] // A view: \"#m_\" or \"/m_\"\n\t\t\t\t\t: bindingStore[viewId].linkCtx.tag; // A tag \"#m^\" or \"/m^\"\n\t\t\t\tif (viewOrTag) {\n\t\t\t\t\tif (vwInfo.open) { // A \"#m_\" or \"#m^\" token\n\t\t\t\t\t\tviewOrTag._prv = nextNode;\n\t\t\t\t\t} else if (vwInfo.close) { // A \"/m_\" or \"/m^\" token\n\t\t\t\t\t\tviewOrTag._nxt = nextNode;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tprecedingLength += viewId.length + 2;\n\t\t}\n\n\t\tif (precedingLength) {\n\t\t\tprevNode.setAttribute(jsvAttrStr, prevNode.getAttribute(jsvAttrStr).slice(precedingLength));\n\t\t}\n\t\ttokens = nextNode ? nextNode.getAttribute(jsvAttrStr) : parentElem._df;\n\t\tif (l = tokens.indexOf(\"/\" + id + viewOrTagChar) + 1) {\n\t\t\ttokens = vwInfos._tkns.slice(0, precedingLength) + tokens.slice(l + (refresh ? -1 : id.length + 1));\n\t\t}\n\t\tif (tokens) {\n\t\t\tif (nextNode) {\n\t\t\t\t// If viewOrTagToRemove was an empty viewOrTag, we will remove both #n and /n\n\t\t\t\t// (and any intervening tokens) from the nextNode (=== prevNode)\n\t\t\t\t// If viewOrTagToRemove was not empty, we will take tokens preceding #n from prevNode,\n\t\t\t\t// and concatenate with tokens following /n on nextNode\n\t\t\t\tnextNode.setAttribute(jsvAttrStr, tokens);\n\t\t\t} else {\n\t\t\t\tsetDefer(parentElem, tokens);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// !prevNode, so there may be a deferred nodes token on the parentElem. Remove it.\n\t\tsetDefer(parentElem, removeSubStr(parentElem._df, \"#\" + id + viewOrTagChar));\n\t\tif (!refresh && !nextNode) {\n\t\t\t// If this viewOrTag is being removed, and there was no .nxt, remove closing token from deferred tokens\n\t\t\tsetDefer(parentElem, removeSubStr(parentElem._df, \"/\" + id + viewOrTagChar));\n\t\t}\n\t}\n}\n\nfunction disposeTokens(tokens, elem) {\n\tvar i, l, vwItem, vwInfos;\n\tif (vwInfos = viewInfos(tokens, true, rOpenMarkers)) {\n\t\tfor (i = 0, l = vwInfos.length; i < l; i++) {\n\t\t\tvwItem = vwInfos[i];\n\t\t\tif (vwItem.ch === \"_\") {\n\t\t\t\tif ((vwItem = viewStore[vwItem.id]) && vwItem.type && (!elem || vwItem._prv === elem || vwItem.parentElem === elem )) {\n\t\t\t\t\t// If this is the _prv (prevNode) for a view, remove the view\n\t\t\t\t\t// - unless view.type is undefined, in which case it is already being removed\n\t\t\t\t\t// (or unless the elem is not related - e.g. a cloned element which 'accidentally' picked up the data-jsv atttribute of the ._df expando)\n\t\t\t\t\tvwItem.parent.removeViews(vwItem._.key, undefined, true);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tremoveViewBinding(vwItem.id, undefined, elem); // unbind bindings with this bindingId on this view\n\t\t\t}\n\t\t}\n\t}\n}\n\n//============================================\n// Add link methods to data-linked view or tag\n//============================================\n\nfunction updateValue(val, index, tagElse, async, bindId, ev) {\n// async, bindId and ev not documented - used internally, e.g. for paged and sorted arrays on tags with dataMap, such as {{for}}\n// Observably update a data value targeted by the binding.to binding of a 2way data-link binding. Called when elem changes\n// Called when linkedElem of a tag control changes: as updateValue(val, index, tagElse, bindId, ev) - this: undefined\n// Called directly as tag.updateValue(val, index, tagElse) - this: tag\n\tvar self = this,\n\t\tvalues = [];\n\tif (self && self._tgId) {\n\t\tbindId = self;\n\t}\n\tif (arguments.length < 4) {\n\t\tif (+index !== index) {\n\t\t\tasync = index;\n\t\t\ttagElse = index = 0;\n\t\t} else if (+tagElse !== tagElse) {\n\t\t\tasync = tagElse;\n\t\t\ttagElse = 0;\n\t\t}\n\t}\n\tvalues[index||0] = val;\n\tupdateValues(values, tagElse, async, bindId, ev);\n\treturn self;\n}\n\nfunction setValues() {\n\t// tagCtx.setValues() calls tag.setValue() on that tagCtx for each bindTo target\n\tvar m = this.tag.bindTo.length,\n\t\tev = arguments[m],\n\t\teventArgs = arguments[m+1];\n\twhile (m--) {\n\t\tthis.tag.setValue(arguments[m], m, this.index, ev, eventArgs);\n\t}\n}\n\nfunction addLinkMethods(tagOrView) { // tagOrView is View prototype or tag instance\n\n\tvar l, m, tagCtx, boundProps, bindFrom, key, theTag, theView;\n\n\ttagOrView.contents = function(deep, select) {\n\t\t// For a view, a tag or a tagCtx, return jQuery object with the content nodes,\n\t\tif (deep !== !!deep) {\n\t\t\t// deep not boolean, so this is contents(selector)\n\t\t\tselect = deep;\n\t\t\tdeep = undefined;\n\t\t}\n\t\tvar filtered,\n\t\t\tnodes = $(this.nodes());\n\t\tif (nodes[0]) {\n\t\t\tselect = deep ? select || \"*\" : select;\n\t\t\tfiltered = select ? nodes.filter(select) : nodes;\n\t\t\tnodes = deep ? filtered.add(nodes.find(select)) : filtered;\n\t\t}\n\t\treturn nodes;\n\t};\n\n\ttagOrView.nodes = function(withMarkers, prevNode, nextNode) {\n\t\t// For a view, a tag or a tagCtx, return top-level nodes\n\t\t// Do not return any script marker nodes, unless withMarkers is true\n\t\t// Optionally limit range, by passing in prevNode or nextNode parameters\n\n\t\tvar node,\n\t\t\tself = this.contentView || this, // If tagCtx, use tagCtx.contentView\n\t\t\telCnt = self._elCnt,\n\t\t\tprevIsFirstNode = !prevNode && elCnt,\n\t\t\tnodes = [];\n\n\t\tif (!self.args) { // If tagCtx with no content (so no contentView) self is tagCtx: return empty [];\n\t\t\tprevNode = prevNode || self._prv;\n\t\t\tnextNode = nextNode || self._nxt;\n\n\t\t\tnode = prevIsFirstNode\n\t\t\t\t? (prevNode === self._nxt\n\t\t\t\t\t? self.parentElem.lastSibling\n\t\t\t\t\t: prevNode)\n\t\t\t\t: (self.inline === false\n\t\t\t\t\t? prevNode || self.linkCtx.elem.firstChild\n\t\t\t\t\t: prevNode && prevNode.nextSibling);\n\n\t\t\twhile (node && (!nextNode || node !== nextNode)) {\n\t\t\t\tif (withMarkers || elCnt || node.tagName !== SCRIPT) {\n\t\t\t\t\t// All the top-level nodes in the view\n\t\t\t\t\t// (except script marker nodes, unless withMarkers = true)\n\t\t\t\t\t// (Note: If a script marker node, viewInfo.elCnt undefined)\n\t\t\t\t\tnodes.push(node);\n\t\t\t\t}\n\t\t\t\tnode = node.nextSibling;\n\t\t\t}\n\t\t}\n\t\treturn nodes;\n\t};\n\n\ttagOrView.childTags = function(deep, tagName) {\n\t\t// For a view, a tag or a tagCtx, return child tags - at any depth, or as immediate children only.\n\t\tif (deep !== !!deep) {\n\t\t\t// deep not boolean, so this is childTags(tagName) - which looks for top-level tags of given tagName\n\t\t\ttagName = deep;\n\t\t\tdeep = undefined;\n\t\t}\n\n\t\tvar self = this.contentView || this, // If tagCtx, use tagCtx.contentView\n\t\t\tview = self.link ? self : self.tagCtx.view, // This may be a view or a tag. If a tag, get the view from tag.tagCtx.view\n\t\t\tprevNode = self._prv,\n\t\t\telCnt = self._elCnt,\n\t\t\ttags = [];\n\n\t\tif (!self.args) { // If tagCtx with no content (so no contentView) self is tagCtx: return empty [];\n\t\t\tview.link(\n\t\t\t\tundefined,\n\t\t\t\tself.parentElem,\n\t\t\t\telCnt ? prevNode && prevNode.previousSibling : prevNode,\n\t\t\t\tself._nxt,\n\t\t\t\tundefined,\n\t\t\t\t{get:{\n\t\t\t\t\ttags: tags,\n\t\t\t\t\tdeep: deep,\n\t\t\t\t\tname: tagName,\n\t\t\t\t\tid: self.link ? self._.id + \"_\" : self._tgId + \"^\"\n\t\t\t\t}}\n\t\t\t);\n\t\t}\n\t\treturn tags;\n\t};\n\n\tif (tagOrView._is === \"tag\") {\n\t\t//=======================\n\t\t// This is a TAG instance\n\t\t//=======================\n\n\t\ttheTag = tagOrView;\n\n\t\tm = theTag.tagCtxs.length;\n\t\twhile (m--) {\n\t\t\ttagCtx = theTag.tagCtxs[m];\n\n\t\t\ttagCtx.setValues = setValues;\n\t\t\ttagCtx.contents = tagOrView.contents;\n\t\t\ttagCtx.childTags = tagOrView.childTags;\n\t\t\ttagCtx.nodes = tagOrView.nodes;\n\t\t}\n\n\t\tboundProps = theTag.boundProps = theTag.boundProps || [];\n\t\tif (bindFrom = theTag.bindFrom) {\n\t\t\tl = bindFrom.length;\n\t\t\twhile (l--) {\n\t\t\t\tkey = bindFrom[l];\n\t\t\t\tif (typeof key === STRING) {\n\t\t\t\t\tbindFrom[key] = 1;\n\t\t\t\t\tif ($inArray(key, boundProps) < 0) {\n\t\t\t\t\t\tboundProps.push(key); // Add any 'bindFrom' props to boundProps array. (So two-way binding works without writing ^foo=expression)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\ttheTag.setValue = $sub._gm( // getMethod\n\t\t\ttheTag.constructor.prototype.setValue || function(val) { // base method\n\t\t\t\treturn val;\n\t\t\t},\n\t\t\tfunction(val, indexFrom, tagElse, ev, eventArgs) {\n\t\t\t\tindexFrom = indexFrom || 0;\n\t\t\t\ttagElse = tagElse || 0;\n\n\t\t\t\tvar linkedElem, linkedEl, linkedCtxParam, indexTo, linkedElems, newVal,\n\t\t\t\t\ttagCtx = theTag.tagCtxs[tagElse];\n\n\t\t\t\tif (tagCtx._bdArgs && (eventArgs || val !== undefined) && tagCtx._bdArgs[indexFrom]===val\n\t\t\t\t\t&& (!eventArgs || eventArgs.change !== \"set\" || ev.target !== val && eventArgs.value !== val)) {\n\n\t\t\t\t\tif (tagCtx._bdVals) { // If val is not undefined (or is coming from an observable change event), and is a value that was already returned, use stored value and don't call tag.setValue()\n\t\t\t\t\t\tval = tagCtx._bdVals[indexFrom];\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Call tag method tag.setValue(), if implemented\n\t\t\t\t\ttagCtx._bdArgs = tagCtx._bdArgs || [];\n\t\t\t\t\ttagCtx._bdArgs[indexFrom] = val;\n\t\t\t\t\tnewVal = theTag.base.call(theTag, val, indexFrom, tagElse, ev, eventArgs);\n\t\t\t\t\tif (newVal !== undefined) {\n\t\t\t\t\t\ttagCtx._bdVals = tagCtx._bdVals || [];\n\t\t\t\t\t\ttagCtx._bdVals[indexFrom] = newVal; // store value, so that if same value is called later we'll use the stored value, and won't call tag.setValue()\n\t\t\t\t\t\tval = newVal;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (val !== undefined && (linkedCtxParam = theTag.linkedCtxParam) && linkedCtxParam[indexFrom]) {\n\t\t\t\t\t\t// If this setValue call corresponds to a tag contextual parameter and the tag has a converter, then we need to set the\n\t\t\t\t\t\t// value of this contextual parameter (since it is not directly bound to the tag argument/property when there is a converter).\n\t\t\t\t\ttagCtx.ctxPrm(linkedCtxParam[indexFrom], val);\n\t\t\t\t}\n\t\t\t\tindexTo = theTag._.toIndex[indexFrom];\n\t\t\t\tif (indexTo !== undefined) {\n\t\t\t\t\tif (linkedElems = tagCtx.linkedElems || theTag.linkedElem && [theTag.linkedElem]) {\n\t\t\t\t\t\tif ((linkedElem = linkedElems[indexTo]) && (l = linkedElem.length)) {\n\t\t\t\t\t\t\twhile (l--) {\n\t\t\t\t\t\t\t\tlinkedEl = linkedElem[l];\n\t\t\t\t\t\t\t\tif (val !== undefined && !linkedEl._jsvChg && theTag.linkCtx._val !== val) {\n\t\t\t\t\t\t\t\t\tif (linkedEl.value !== undefined) {\n\t\t\t\t\t\t\t\t\t\tif (linkedEl.type === CHECKBOX) {\n\t\t\t\t\t\t\t\t\t\t\tlinkedEl[CHECKED] = $.isArray(val)\n\t\t\t\t\t\t\t\t\t\t\t\t? $.inArray(linkedEl.value, val) > -1\n\t\t\t\t\t\t\t\t\t\t\t\t: val && val !== \"false\";\n\t\t\t\t\t\t\t\t\t\t} else if (linkedEl.type === RADIO) {\n\t\t\t\t\t\t\t\t\t\t\tlinkedEl[CHECKED] = (linkedEl.value === val);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\t$(linkedEl).val(val); // Use jQuery for attrHooks - can't just set value (on select, for example)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tlinkedEl[linkedEl.contentEditable === TRUE ? \"innerHTML\" : TEXTCONTENT] = val;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (tagCtx.props.name) {\n\t\t\t\t\t\t\t\t\tlinkedEl.name = linkedEl.name || tagCtx.props.name;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn theTag;\n\t\t\t}\n\t\t);\n\t\ttheTag.updateValue = updateValue;\n\n\t\ttheTag.updateValues = function() {\n\t\t\tvar tagElse, async,\n\t\t\t\ttag = this,\n\t\t\t\tbindToLength = tag.bindTo ? tag.bindTo.length : 1,\n\t\t\t\textra = arguments.length - bindToLength;\n\n\t\t\tif (extra) {\n\t\t\t\ttagElse = arguments[bindToLength];\n\t\t\t\tif (extra > 1) {\n\t\t\t\t\tasync = extra > 1 ? arguments[bindToLength + 1] : undefined;\n\t\t\t\t} else if (+tagElse !== tagElse) {\n\t\t\t\t\tasync = tagElse;\n\t\t\t\t\ttagElse = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn updateValues(arguments, tagElse, async, this);\n\t\t};\n\n\t\ttheTag.setValues = function() {\n\t\t// tag.setValues(a, b, c) calls tagCtx.setValues(a, b, c) on the first tagCtx\n\t\t\tsetValues.apply(theTag.tagCtx, arguments);\n\t\t\treturn theTag;\n\t\t};\n\n\t\ttheTag.refresh = function() {\n\t\t\tvar attr, sourceValue,\n\t\t\t\tlinkCtx = theTag.linkCtx,\n\t\t\t\tview = theTag.tagCtx.view;\n\n\t\t\tif (!(sourceValue = mergeCtxs(theTag))) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (theTag.onUnbind) {\n\t\t\t\ttheTag.onUnbind(theTag.tagCtx, linkCtx, theTag.ctx);\n\t\t\t\ttheTag._.unlinked = true;\n\t\t\t}\n\t\t\tattr = theTag.inline ? HTML : (linkCtx.attr || defaultAttr(theTag.parentElem, true));\n\t\t\tsourceValue = theTag.tagName === \":\"\n\t\t\t\t? $sub._cnvt(theTag.convert, view, theTag.tagCtx)\n\t\t\t\t: $sub._tag(theTag, view, view.tmpl, sourceValue, true); // Get rendered HTML for tag, based on refreshed tagCtxs\n\n\t\t\tobserveAndBind(linkCtx, linkCtx.data, linkCtx.elem);\n\t\t\tupdateContent(sourceValue, linkCtx, attr, theTag);\n\t\t\tcallAfterLink(theTag);\n\t\t\treturn theTag;\n\t\t};\n\n\t\ttheTag.domChange = function() { // domChange notification support\n\t\t\tvar elem = this.parentElem,\n\t\t\t\thasListener = $._data(elem).events,\n\t\t\t\tdomChangeNotification = \"jsv-domchange\";\n\n\t\t\tif (hasListener && hasListener[domChangeNotification]) {\n\t\t\t\t// Only trigger handler if there is a handler listening for this event. (Note using triggerHandler - so no event bubbling.)\n\t\t\t\t$(elem).triggerHandler(domChangeNotification, arguments);\n\t\t\t}\n\t\t};\n\n\t\t//====================================\n\t\t// End of added link methods for TAG\n\t\t//====================================\n\t} else {\n\t\t//=========================\n\t\t// This is a VIEW prototype\n\t\t//=========================\n\n\t\ttheView = tagOrView;\n\n\t\t// Note: a linked view will also, after linking have nodes[], _prv (prevNode), _nxt (nextNode) ...\n\t\ttheView.addViews = function(index, dataItems, delayed) {\n\t\t\t// if view is not an array view, do nothing\n\t\t\tvar i, viewsCount,\n\t\t\t\tview = this,\n\t\t\t\titemsCount = dataItems.length,\n\t\t\t\tviews = view.views;\n\n\t\t\tif (!view._.useKey && itemsCount) {\n\t\t\t\t// view is of type \"array\"\n\t\t\t\tviewsCount = views.length + itemsCount;\n\n\t\t\t\tif ((delayed || viewsCount === view.data.length) // If delayed or if views not already synced to array (e.g. triggered by array.length propertyChange - jsviews/issues/301)\n\t\t\t\t\t&& renderAndLink(view, index, view.tmpl, views, dataItems, view.ctx) !== false\n\t\t\t\t\t&& !view._.srt) { // Not part of a 'sort' on refresh\n\t\t\t\t\tview.fixIndex(index + itemsCount);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\ttheView.removeViews = function(index, itemsCount, keepNodes, delayed) {\n\t\t\t// view.removeViews() removes all the child views\n\t\t\t// view.removeViews(index) removes the child view with specified index or key\n\t\t\t// view.removeViews(index, count) removes the specified nummber of child views, starting with the specified index\n\t\t\tfunction removeView(index) {\n\t\t\t\tvar id, bindId, parentElem, prevNode, nextNode, nodesToRemove,\n\t\t\t\t\tviewToRemove = views[index];\n\n\t\t\t\tif (viewToRemove && viewToRemove.link) {\n\t\t\t\t\tid = viewToRemove._.id;\n\t\t\t\t\tif (!keepNodes) {\n\t\t\t\t\t\t// Remove the HTML nodes from the DOM, unless they have already been removed, including nodes of child views\n\t\t\t\t\t\tnodesToRemove = viewToRemove.nodes();\n\t\t\t\t\t}\n\n\t\t\t\t\t// Remove child views, without removing nodes\n\t\t\t\t\tviewToRemove.removeViews(undefined, undefined, true);\n\n\t\t\t\t\tviewToRemove.type = undefined; // Set type to undefined: used as a flag that this view is being removed\n\t\t\t\t\tprevNode = viewToRemove._prv;\n\t\t\t\t\tnextNode = viewToRemove._nxt;\n\t\t\t\t\tparentElem = viewToRemove.parentElem;\n\t\t\t\t\t// If prevNode and nextNode are the same, the view is empty\n\t\t\t\t\tif (!keepNodes) {\n\t\t\t\t\t\t// Remove the HTML nodes from the DOM, unless they have already been removed, including nodes of child views\n\t\t\t\t\t\tif (viewToRemove._elCnt) {\n\t\t\t\t\t\t\t// if keepNodes is false (and transferring of tokens has not already been done at a higher level)\n\t\t\t\t\t\t\t// then transfer tokens from prevNode which is being removed, to nextNode.\n\t\t\t\t\t\t\ttransferViewTokens(prevNode, nextNode, parentElem, id, \"_\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\t$(nodesToRemove).remove();\n\t\t\t\t\t}\n\t\t\t\t\tif (!viewToRemove._elCnt && prevNode) {\n\t\t\t\t\t\tprevNode.parentNode.removeChild(prevNode); // (prevNode.parentNode is parentElem, except if jQuery Mobile or similar has inserted an intermediate wrapper\n\t\t\t\t\t\tnextNode.parentNode.removeChild(nextNode);\n\t\t\t\t\t}\n\t\t\t\t\tsetArrayChangeLink(viewToRemove);\n\t\t\t\t\tfor (bindId in viewToRemove._.bnds) {\n\t\t\t\t\t\tremoveViewBinding(bindId);\n\t\t\t\t\t}\n\t\t\t\t\tdelete viewStore[id];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar current, childView, viewsCount,\n\t\t\t\tview = this,\n\t\t\t\tisArray = !view._.useKey,\n\t\t\t\tviews = view.views;\n\n\t\t\tif (isArray) {\n\t\t\t\tviewsCount = views.length;\n\t\t\t}\n\t\t\tif (index === undefined) {\n\t\t\t\t// Remove all child views\n\t\t\t\tif (isArray) {\n\t\t\t\t\t// views and data are arrays\n\t\t\t\t\tcurrent = viewsCount;\n\t\t\t\t\twhile (current--) {\n\t\t\t\t\t\tremoveView(current);\n\t\t\t\t\t}\n\t\t\t\t\tview.views = [];\n\t\t\t\t} else {\n\t\t\t\t\t// views and data are objects\n\t\t\t\t\tfor (childView in views) {\n\t\t\t\t\t\t// Remove by key\n\t\t\t\t\t\tremoveView(childView);\n\t\t\t\t\t}\n\t\t\t\t\tview.views = {};\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (itemsCount === undefined) {\n\t\t\t\t\tif (isArray) {\n\t\t\t\t\t\t// The parentView is data array view.\n\t\t\t\t\t\t// Set itemsCount to 1, to remove this item\n\t\t\t\t\t\titemsCount = 1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Remove child view with key 'index'\n\t\t\t\t\t\tremoveView(index);\n\t\t\t\t\t\tdelete views[index];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (isArray && itemsCount\n\t\t\t\t\t&& (delayed || viewsCount - itemsCount === view.data.length)) { // If views not already synced to array (e.g. triggered by array.length propertyChange - jsviews/issues/301)\n\t\t\t\t\tcurrent = index + itemsCount;\n\t\t\t\t\t// Remove indexed items (parentView is data array view);\n\t\t\t\t\twhile (current-- > index) {\n\t\t\t\t\t\tremoveView(current);\n\t\t\t\t\t}\n\t\t\t\t\tviews.splice(index, itemsCount);\n\t\t\t\t\tif (!view._.srt) {\n\t\t\t\t\t\tview.fixIndex(index);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\ttheView.moveViews = function(oldIndex, index, itemsCount) {\n\t\t\tfunction parts(itemView, str) { // Get the totkens preceding the 'open' token for this view, #n_, and the tokens following (and including) the 'open' token\n\t\t\t\treturn RegExp(\"^(.*)(\" + (str ? \"\\\\/\" : \"#\") + itemView._.id + \"_.*)$\").exec(str || itemView._prv.getAttribute(jsvAttrStr));\n\t\t\t}\n\t\t\tfunction setPrv(itemView, tokens) {\n\t\t\t\tvar tag,\n\t\t\t\t\tprv = itemView._prv;\n\t\t\t\tprv.setAttribute(jsvAttrStr, tokens);\n\t\t\t\ttokens.replace(rTagMarkers, function(all, open, close, id) {\n\t\t\t\t\ttag = bindingStore[id].linkCtx.tag;\n\t\t\t\t\tif (tag.inline) {\n\t\t\t\t\t\ttag[open ? \"_prv\" : \"_nxt\"] = prv;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\ttokens.replace(rViewMarkers, function(all, open, close, id) {\n\t\t\t\t\tviewStore[id][open ? \"_prv\" : \"_nxt\"] = prv;\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar nodes, childView, nxtView, insertBefore, viewId,\n\t\t\t\tview = this,\n\t\t\t\tselfNxt = view._nxt,\n\t\t\t\tviews = view.views,\n\t\t\t\tbackwards = index < oldIndex,\n\t\t\t\tfirstChange = backwards ? index : oldIndex,\n\t\t\t\tlastChange = backwards ? oldIndex : index,\n\t\t\t\ti = index,\n\t\t\t\tmovedNodes = [],\n\n\t\t\t\tviewsToMove = views.splice(oldIndex, itemsCount); // remove\n\n\t\t\tif (index > views.length) {\n\t\t\t\tindex = views.length;\n\t\t\t}\n\t\t\tviews.splice.apply(views, [index, 0].concat(viewsToMove)); //re-insert\n\n\t\t\titemsCount = viewsToMove.length;\n\t\t\tinsertBefore = index + itemsCount;\n\t\t\tlastChange += itemsCount;\n\n\t\t\tfor (i; i < insertBefore; i++) {\n\t\t\t\tchildView = views[i];\n\t\t\t\tnodes = childView.nodes(true);\n\t\t\t\tmovedNodes = view._elCnt ? movedNodes.concat(nodes) : movedNodes.concat(childView._prv, nodes, childView._nxt);\n\t\t\t}\n\t\t\tmovedNodes = $(movedNodes);\n\n\t\t\tif (insertBefore < views.length) {\n\t\t\t\tmovedNodes.insertBefore(views[insertBefore]._prv);\n\t\t\t} else if (selfNxt) {\n\t\t\t\tmovedNodes.insertBefore(selfNxt);\n\t\t\t} else {\n\t\t\t\tmovedNodes.appendTo(view.parentElem);\n\t\t\t}\n\n\t\t\tif (view._elCnt) {\n\t\t\t\tvar afterParts,\n\t\t\t\t\tendChange = backwards ? firstChange + itemsCount : lastChange - itemsCount,\n\t\t\t\t\tbeforeView = views[firstChange-1],\n\t\t\t\t\tstartView = views[firstChange],\n\t\t\t\t\tendView = views[endChange],\n\t\t\t\t\tafterView = views[lastChange],\n\t\t\t\t\tstartParts = parts(startView),\n\t\t\t\t\tendParts = parts(endView);\n\n\t\t\t\tsetPrv(startView, endParts[1] + startParts[2]);\n\t\t\t\tif (afterView) {\n\t\t\t\t\tafterParts = parts(afterView);\n\t\t\t\t\tsetPrv(afterView, startParts[1] + afterParts[2]);\n\t\t\t\t} else {\n\t\t\t\t\tviews[lastChange-1]._nxt = selfNxt;\n\t\t\t\t\tif (selfNxt) {\n\t\t\t\t\t\tafterParts = parts(view, selfNxt.getAttribute(jsvAttrStr));\n\t\t\t\t\t\tselfNxt.setAttribute(jsvAttrStr, startParts[1] + afterParts[2]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tafterParts = parts(view, view.parentElem._df);\n\n\t\t\t\t\t\tsetDefer(view.parentElem, startParts[1] + afterParts[2]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tsetPrv(endView, afterParts[1] + endParts[2]);\n\t\t\t}\n\t\t\tview.fixIndex(firstChange);\n\t\t};\n\n\t\ttheView.refresh = function() {\n\t\t\tvar view = this,\n\t\t\t\tparent = view.parent;\n\n\t\t\tif (parent) {\n\t\t\t\trenderAndLink(view, view.index, view.tmpl, parent.views, view.data, undefined, true);\n\t\t\t\tsetArrayChangeLink(view);\n\t\t\t}\n\t\t\treturn view;\n\t\t};\n\n\t\ttheView.fixIndex = function(fromIndex) {\n\t\t\t// Fixup index on following view items...\n\t\t\tvar views = this.views,\n\t\t\t\tindex = views.length;\n\t\t\twhile (fromIndex < index--) {\n\t\t\t\tif (views[index].index !== index) {\n\t\t\t\t\t$observable(views[index]).setProperty(\"index\", index);\n\t\t\t\t\t// This is fixing up index, but not key, and not index on child views. From child views, use view.getIndex()\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\ttheView.link = viewLink;\n\n\t\t//====================================\n\t\t// End of added link methods for VIEW\n\t\t//====================================\n\t}\n}\n\n//========================\n// JsViews-specific converters\n//========================\n\n$converters.merge = function(val) {\n\t// Special converter used in data-linking to space-separated lists, such as className:\n\t// Currently only supports toggle semantics - and has no effect if toggle string is not specified\n\t// data-link=\"class{merge:boolExpr toggle=className}\"\n\tvar regularExpression,\n\t\tcurrentValue = this.linkCtx.elem.className,\n\t\ttoggle = this.tagCtx.props.toggle;\n\n\tif (toggle) {\n\t\t// We are toggling the class specified by the toggle property,\n\t\t// and the boolean val binding is driving the insert/remove toggle\n\n\t\tregularExpression = toggle.replace(/[\\\\^$.|?*+()[{]/g, \"\\\\$&\");\n\t\t// Escape any regular expression special characters (metacharacters) within the toggle string\n\t\tregularExpression = \"(\\\\s(?=\" + regularExpression + \"$)|(\\\\s)|^)(\" + regularExpression + \"(\\\\s|$))\";\n\t\t// Example: /(\\s(?=myclass$)|(\\s)|^)?(myclass(\\s|$))/ - so matches (\" myclass\" or \" \" or ^ ) followed by (\"myclass \" or \"myclass$\") where ^/$ are beginning/end of string\n\t\tcurrentValue = currentValue.replace(new RegExp(regularExpression), \"$2\");\n\t\tval = currentValue + (val ? (currentValue && \" \") + toggle : \"\");\n\t}\n\treturn val;\n};\n\n//========================\n// JsViews-specific tags\n//========================\n\n$tags({\n\ton: {\n\t\tattr: NONE,\n\t\tbindTo: [], // Don't need to bind to first arg, so prevent the default [0] binding\n\t\tinit: function(tagCtx) {\n\t\t\tvar content,\n\t\t\t\ttag = this,\n\t\t\t\ti = 0,\n\t\t\t\targs = tagCtx.args, // [events,] [selector,] handler\n\t\t\t\tl = args.length;\n\n\t\t\tfor (; ii && i+1; // handler index\n\t\t\tif (tag.inline) {\n\t\t\t\tif (!$sub.rTmpl.exec(content = $.trim(tagCtx.tmpl.markup))) {\n\t\t\t\t\t// Inline {^{on}} tag with no content (or external template content) or with content containing\n\t\t\t\t\t// no HTML or JsRender tags: We will wrap the (text) content, or the operation name in a \";\n\t\t\t\t}\n\t\t\t\ttag.attr = HTML;\n\t\t\t}\n\t\t},\n\t\tonBind: function() {\n\t\t\tif (this.template) { // {^{on/}} with no content has template rendering
\", \"
\"],\n\t\ttr: [2, \"\", \"
\"],\n\t\ttd: [3, \"\", \"
\"],\n\t\tcol: [2, \"\", \"
\"],\n\t\tsvg_ns: [1, \"\", \"\"],\n\t\t// IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags,\n\t\t// unless wrapped in a div with non-breaking characters in front of it.\n\t\tdiv: $.support.htmlSerialize ? [0, \"\", \"\"] : [1, \"X
\", \"
\"]\n\t},\n\t_fe: {\n\t\tinput: {\n\t\t\tfrom: inputAttrib, to: VALUE\n\t\t},\n\t\ttextarea: valueBinding,\n\t\tselect: valueBinding,\n\t\toptgroup: {\n\t\t\tto: \"label\"\n\t\t}\n\t}\n});\n\nreturn $;\n}, window));"]}