PageSourceSearch

https://localenergycodes.com/site/cache/public/js/658e9ae11b22498ed97c545f342442f8.js

js localenergycodes.com collected 2026-10-01 15:20:53 UTC 1,131,947 bytes, 4,550 lines download raw bytes

vendor: 93,689 bytes, lines 1-399
1(function(global,factory){if(typeof module==="object"&&typeof module.exports==="object"){module.exports=global.document?factory(global,true):function(w){if(!w.document){throw new Error("jQuery requires a window with a document");}
2return factory(w);};}else{factory(global);}}(typeof window!=="undefined"?window:this,function(window,noGlobal){var arr=[];var slice=arr.slice;var concat=arr.concat;var push=arr.push;var indexOf=arr.indexOf;var class2type={};var toString=class2type.toString;var hasOwn=class2type.hasOwnProperty;var support={};var
3document=window.document,version="2.1.4",jQuery=function(selector,context){return new jQuery.fn.init(selector,context);},rtrim=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,rmsPrefix=/^-ms-/,rdashAlpha=/-([\da-z])/gi,fcamelCase=function(all,letter){return letter.toUpperCase();};jQuery.fn=jQuery.prototype={jquery:version,constructor:jQuery,selector:"",length:0,toArray:function(){return slice.call(this);},get:function(num){return num!=null?(num<0?this[num+this.length]:this[num]):slice.call(this);},pushStack:function(elems){var ret=jQuery.merge(this.constructor(),elems);ret.prevObject=this;ret.context=this.context;return ret;},each:function(callback,args){return jQuery.each(this,callback,args);},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},slice:function(){return this.pushStack(slice.apply(this,arguments));},first:function(){return this.eq(0);},last:function(){return this.eq(-1);},eq:function(i){var len=this.length,j=+i+(i<0?len:0);return this.pushStack(j>=0&&j<len?[this[j]]:[]);},end:function(){return this.prevObject||this.constructor(null);},push:push,sort:arr.sort,splice:arr.splice};jQuery.extend=jQuery.fn.extend=function(){var options,name,src,copy,copyIsArray,clone,target=arguments[0]||{},i=1,length=arguments.length,deep=false;if(typeof target==="boolean"){deep=target;target=arguments[i]||{};i++;}
4if(typeof target!=="object"&&!jQuery.isFunction(target)){target={};}
5if(i===length){target=this;i--;}
6for(;i<length;i++){if((options=arguments[i])!=null){for(name in options){src=target[name];copy=options[name];if(target===copy){continue;}
7if(deep&&copy&&(jQuery.isPlainObject(copy)||(copyIsArray=jQuery.isArray(copy)))){if(copyIsArray){copyIsArray=false;clone=src&&jQuery.isArray(src)?src:[];}else{clone=src&&jQuery.isPlainObject(src)?src:{};}
8target[name]=jQuery.extend(deep,clone,copy);}else if(copy!==undefined){target[name]=copy;}}}}
9return target;};jQuery.extend({expando:"jQuery"+(version+Math.random()).replace(/\D/g,""),isReady:true,error:function(msg){throw new Error(msg);},noop:function(){},isFunction:function(obj){return jQuery.type(obj)==="function";},isArray:Array.isArray,isWindow:function(obj){return obj!=null&&obj===obj.window;},isNumeric:function(obj){return!jQuery.isArray(obj)&&(obj-parseFloat(obj)+1)>=0;},isPlainObject:function(obj){if(jQuery.type(obj)!=="object"||obj.nodeType||jQuery.isWindow(obj)){return false;}
10if(obj.constructor&&!hasOwn.call(obj.constructor.prototype,"isPrototypeOf")){return false;}
11return true;},isEmptyObject:function(obj){var name;for(name in obj){return false;}
12return true;},type:function(obj){if(obj==null){return obj+"";}
13return typeof obj==="object"||typeof obj==="function"?class2type[toString.call(obj)]||"object":typeof obj;},globalEval:function(code){var script,indirect=eval;code=jQuery.trim(code);if(code){if(code.indexOf("use strict")===1){script=document.createElement("script");script.text=code;document.head.appendChild(script).parentNode.removeChild(script);}else{indirect(code);}}},camelCase:function(string){return string.replace(rmsPrefix,"ms-").replace(rdashAlpha,fcamelCase);},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toLowerCase()===name.toLowerCase();},each:function(obj,callback,args){var value,i=0,length=obj.length,isArray=isArraylike(obj);if(args){if(isArray){for(;i<length;i++){value=callback.apply(obj[i],args);if(value===false){break;}}}else{for(i in obj){value=callback.apply(obj[i],args);if(value===false){break;}}}}else{if(isArray){for(;i<length;i++){value=callback.call(obj[i],i,obj[i]);if(value===false){break;}}}else{for(i in obj){value=callback.call(obj[i],i,obj[i]);if(value===false){break;}}}}
14return obj;},trim:function(text){return text==null?"":(text+"").replace(rtrim,"");},makeArray:function(arr,results){var ret=results||[];if(arr!=null){if(isArraylike(Object(arr))){jQuery.merge(ret,typeof arr==="string"?[arr]:arr);}else{push.call(ret,arr);}}
15return ret;},inArray:function(elem,arr,i){return arr==null?-1:indexOf.call(arr,elem,i);},merge:function(first,second){var len=+second.length,j=0,i=first.length;for(;j<len;j++){first[i++]=second[j];}
16first.length=i;return first;},grep:function(elems,callback,invert){var callbackInverse,matches=[],i=0,length=elems.length,callbackExpect=!invert;for(;i<length;i++){callbackInverse=!callback(elems[i],i);if(callbackInverse!==callbackExpect){matches.push(elems[i]);}}
17return matches;},map:function(elems,callback,arg){var value,i=0,length=elems.length,isArray=isArraylike(elems),ret=[];if(isArray){for(;i<length;i++){value=callback(elems[i],i,arg);if(value!=null){ret.push(value);}}}else{for(i in elems){value=callback(elems[i],i,arg);if(value!=null){ret.push(value);}}}
18return concat.apply([],ret);},guid:1,proxy:function(fn,context){var tmp,args,proxy;if(typeof context==="string"){tmp=fn[context];context=fn;fn=tmp;}
19if(!jQuery.isFunction(fn)){return undefined;}
20args=slice.call(arguments,2);proxy=function(){return fn.apply(context||this,args.concat(slice.call(arguments)));};proxy.guid=fn.guid=fn.guid||jQuery.guid++;return proxy;},now:Date.now,support:support});jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(i,name){class2type["[object "+name+"]"]=name.toLowerCase();});function isArraylike(obj){var length="length"in obj&&obj.length,type=jQuery.type(obj);if(type==="function"||jQuery.isWindow(obj)){return false;}
21if(obj.nodeType===1&&length){return true;}
22return type==="array"||length===0||typeof length==="number"&&length>0&&(length-1)in obj;}
23var Sizzle=(function(window){var i,support,Expr,getText,isXML,tokenize,compile,select,outermostContext,sortInput,hasDuplicate,setDocument,document,docElem,documentIsHTML,rbuggyQSA,rbuggyMatches,matches,contains,expando="sizzle"+1*new Date(),preferredDoc=window.document,dirruns=0,done=0,classCache=createCache(),tokenCache=createCache(),compilerCache=createCache(),sortOrder=function(a,b){if(a===b){hasDuplicate=true;}
24return 0;},MAX_NEGATIVE=1<<31,hasOwn=({}).hasOwnProperty,arr=[],pop=arr.pop,push_native=arr.push,push=arr.push,slice=arr.slice,indexOf=function(list,elem){var i=0,len=list.length;for(;i<len;i++){if(list[i]===elem){return i;}}
25return-1;},booleans="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",whitespace="[\\x20\\t\\r\\n\\f]",characterEncoding="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",identifier=characterEncoding.replace("w","w#"),attributes="\\["+whitespace+"*("+characterEncoding+")(?:"+whitespace+"*([*^$|!~]?=)"+whitespace+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+identifier+"))|)"+whitespace+"*\\]",pseudos=":("+characterEncoding+")(?:\\(("+"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|"+"((?:\\\\.|[^\\\\()[\\]]|"+attributes+")*)|"+".*"+")\\)|)",rwhitespace=new RegExp(whitespace+"+","g"),rtrim=new RegExp("^"+whitespace+"+|((?:^|[^\\\\])(?:\\\\.)*)"+whitespace+"+$","g"),rcomma=new RegExp("^"+whitespace+"*,"+whitespace+"*"),rcombinators=new RegExp("^"+whitespace+"*([>+~]|"+whitespace+")"+whitespace+"*"),rattributeQuotes=new RegExp("="+whitespace+"*([^\\]'\"]*?)"+whitespace+"*\\]","g"),rpseudo=new RegExp(pseudos),ridentifier=new RegExp("^"+identifier+"$"),matchExpr={"ID":new RegExp("^#("+characterEncoding+")"),"CLASS":new RegExp("^\\.("+characterEncoding+")"),"TAG":new RegExp("^("+characterEncoding.replace("w","w*")+")"),"ATTR":new RegExp("^"+attributes),"PSEUDO":new RegExp("^"+pseudos),"CHILD":new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+whitespace+"*(even|odd|(([+-]|)(\\d*)n|)"+whitespace+"*(?:([+-]|)"+whitespace+"*(\\d+)|))"+whitespace+"*\\)|)","i"),"bool":new RegExp("^(?:"+booleans+")$","i"),"needsContext":new RegExp("^"+whitespace+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+
26whitespace+"*((?:-\\d)?\\d*)"+whitespace+"*\\)|)(?=[^-]|$)","i")},rinputs=/^(?:input|select|textarea|button)$/i,rheader=/^h\d$/i,rnative=/^[^{]+\{\s*\[native \w/,rquickExpr=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,rsibling=/[+~]/,rescape=/'|\\/g,runescape=new RegExp("\\\\([\\da-f]{1,6}"+whitespace+"?|("+whitespace+")|.)","ig"),funescape=function(_,escaped,escapedWhitespace){var high="0x"+escaped-0x10000;return high!==high||escapedWhitespace?escaped:high<0?String.fromCharCode(high+0x10000):String.fromCharCode(high>>10|0xD800,high&0x3FF|0xDC00);},unloadHandler=function(){setDocument();};try{push.apply((arr=slice.call(preferredDoc.childNodes)),preferredDoc.childNodes);arr[preferredDoc.childNodes.length].nodeType;}catch(e){push={apply:arr.length?function(target,els){push_native.apply(target,slice.call(els));}:function(target,els){var j=target.length,i=0;while((target[j++]=els[i++])){}
27target.length=j-1;}};}
28function Sizzle(selector,context,results,seed){var match,elem,m,nodeType,i,groups,old,nid,newContext,newSelector;if((context?context.ownerDocument||context:preferredDoc)!==document){setDocument(context);}
29context=context||document;results=results||[];nodeType=context.nodeType;if(typeof selector!=="string"||!selector||nodeType!==1&&nodeType!==9&&nodeType!==11){return results;}
30if(!seed&&documentIsHTML){if(nodeType!==11&&(match=rquickExpr.exec(selector))){if((m=match[1])){if(nodeType===9){elem=context.getElementById(m);if(elem&&elem.parentNode){if(elem.id===m){results.push(elem);return results;}}else{return results;}}else{if(context.ownerDocument&&(elem=context.ownerDocument.getElementById(m))&&contains(context,elem)&&elem.id===m){results.push(elem);return results;}}}else if(match[2]){push.apply(results,context.getElementsByTagName(selector));return results;}else if((m=match[3])&&support.getElementsByClassName){push.apply(results,context.getElementsByClassName(m));return results;}}
31if(support.qsa&&(!rbuggyQSA||!rbuggyQSA.test(selector))){nid=old=expando;newContext=context;newSelector=nodeType!==1&&selector;if(nodeType===1&&context.nodeName.toLowerCase()!=="object"){groups=tokenize(selector);if((old=context.getAttribute("id"))){nid=old.replace(rescape,"\\$&");}else{context.setAttribute("id",nid);}
32nid="[id='"+nid+"'] ";i=groups.length;while(i--){groups[i]=nid+toSelector(groups[i]);}
33newContext=rsibling.test(selector)&&testContext(context.parentNode)||context;newSelector=groups.join(",");}
34if(newSelector){try{push.apply(results,newContext.querySelectorAll(newSelector));return results;}catch(qsaError){}finally{if(!old){context.removeAttribute("id");}}}}}
35return select(selector.replace(rtrim,"$1"),context,results,seed);}
36function createCache(){var keys=[];function cache(key,value){if(keys.push(key+" ")>Expr.cacheLength){delete cache[keys.shift()];}
37return(cache[key+" "]=value);}
38return cache;}
39function markFunction(fn){fn[expando]=true;return fn;}
40function assert(fn){var div=document.createElement("div");try{return!!fn(div);}catch(e){return false;}finally{if(div.parentNode){div.parentNode.removeChild(div);}
41div=null;}}
42function addHandle(attrs,handler){var arr=attrs.split("|"),i=attrs.length;while(i--){Expr.attrHandle[arr[i]]=handler;}}
43function siblingCheck(a,b){var cur=b&&a,diff=cur&&a.nodeType===1&&b.nodeType===1&&(~b.sourceIndex||MAX_NEGATIVE)-
44(~a.sourceIndex||MAX_NEGATIVE);if(diff){return diff;}
45if(cur){while((cur=cur.nextSibling)){if(cur===b){return-1;}}}
46return a?1:-1;}
47function createInputPseudo(type){return function(elem){var name=elem.nodeName.toLowerCase();return name==="input"&&elem.type===type;};}
48function createButtonPseudo(type){return function(elem){var name=elem.nodeName.toLowerCase();return(name==="input"||name==="button")&&elem.type===type;};}
49function createPositionalPseudo(fn){return markFunction(function(argument){argument=+argument;return markFunction(function(seed,matches){var j,matchIndexes=fn([],seed.length,argument),i=matchIndexes.length;while(i--){if(seed[(j=matchIndexes[i])]){seed[j]=!(matches[j]=seed[j]);}}});});}
50function testContext(context){return context&&typeof context.getElementsByTagName!=="undefined"&&context;}
51support=Sizzle.support={};isXML=Sizzle.isXML=function(elem){var documentElement=elem&&(elem.ownerDocument||elem).documentElement;return documentElement?documentElement.nodeName!=="HTML":false;};setDocument=Sizzle.setDocument=function(node){var hasCompare,parent,doc=node?node.ownerDocument||node:preferredDoc;if(doc===document||doc.nodeType!==9||!doc.documentElement){return document;}
52document=doc;docElem=doc.documentElement;parent=doc.defaultView;if(parent&&parent!==parent.top){if(parent.addEventListener){parent.addEventListener("unload",unloadHandler,false);}else if(parent.attachEvent){parent.attachEvent("onunload",unloadHandler);}}
53documentIsHTML=!isXML(doc);support.attributes=assert(function(div){div.className="i";return!div.getAttribute("className");});support.getElementsByTagName=assert(function(div){div.appendChild(doc.createComment(""));return!div.getElementsByTagName("*").length;});support.getElementsByClassName=rnative.test(doc.getElementsByClassName);support.getById=assert(function(div){docElem.appendChild(div).id=expando;return!doc.getElementsByName||!doc.getElementsByName(expando).length;});if(support.getById){Expr.find["ID"]=function(id,context){if(typeof context.getElementById!=="undefined"&&documentIsHTML){var m=context.getElementById(id);return m&&m.parentNode?[m]:[];}};Expr.filter["ID"]=function(id){var attrId=id.replace(runescape,funescape);return function(elem){return elem.getAttribute("id")===attrId;};};}else{delete Expr.find["ID"];Expr.filter["ID"]=function(id){var attrId=id.replace(runescape,funescape);return function(elem){var node=typeof elem.getAttributeNode!=="undefined"&&elem.getAttributeNode("id");return node&&node.value===attrId;};};}
54Expr.find["TAG"]=support.getElementsByTagName?function(tag,context){if(typeof context.getElementsByTagName!=="undefined"){return context.getElementsByTagName(tag);}else if(support.qsa){return context.querySelectorAll(tag);}}:function(tag,context){var elem,tmp=[],i=0,results=context.getElementsByTagName(tag);if(tag==="*"){while((elem=results[i++])){if(elem.nodeType===1){tmp.push(elem);}}
55return tmp;}
56return results;};Expr.find["CLASS"]=support.getElementsByClassName&&function(className,context){if(documentIsHTML){return context.getElementsByClassName(className);}};rbuggyMatches=[];rbuggyQSA=[];if((support.qsa=rnative.test(doc.querySelectorAll))){assert(function(div){docElem.appendChild(div).innerHTML="<a id='"+expando+"'></a>"+"<select id='"+expando+"-\f]' msallowcapture=''>"+"<option selected=''></option></select>";if(div.querySelectorAll("[msallowcapture^='']").length){rbuggyQSA.push("[*^$]="+whitespace+"*(?:''|\"\")");}
57if(!div.querySelectorAll("[selected]").length){rbuggyQSA.push("\\["+whitespace+"*(?:value|"+booleans+")");}
58if(!div.querySelectorAll("[id~="+expando+"-]").length){rbuggyQSA.push("~=");}
59if(!div.querySelectorAll(":checked").length){rbuggyQSA.push(":checked");}
60if(!div.querySelectorAll("a#"+expando+"+*").length){rbuggyQSA.push(".#.+[+~]");}});assert(function(div){var input=doc.createElement("input");input.setAttribute("type","hidden");div.appendChild(input).setAttribute("name","D");if(div.querySelectorAll("[name=d]").length){rbuggyQSA.push("name"+whitespace+"*[*^$|!~]?=");}
61if(!div.querySelectorAll(":enabled").length){rbuggyQSA.push(":enabled",":disabled");}
62div.querySelectorAll("*,:x");rbuggyQSA.push(",.*:");});}
63if((support.matchesSelector=rnative.test((matches=docElem.matches||docElem.webkitMatchesSelector||docElem.mozMatchesSelector||docElem.oMatchesSelector||docElem.msMatchesSelector)))){assert(function(div){support.disconnectedMatch=matches.call(div,"div");matches.call(div,"[s!='']:x");rbuggyMatches.push("!=",pseudos);});}
64rbuggyQSA=rbuggyQSA.length&&new RegExp(rbuggyQSA.join("|"));rbuggyMatches=rbuggyMatches.length&&new RegExp(rbuggyMatches.join("|"));hasCompare=rnative.test(docElem.compareDocumentPosition);contains=hasCompare||rnative.test(docElem.contains)?function(a,b){var adown=a.nodeType===9?a.documentElement:a,bup=b&&b.parentNode;return a===bup||!!(bup&&bup.nodeType===1&&(adown.contains?adown.contains(bup):a.compareDocumentPosition&&a.compareDocumentPosition(bup)&16));}:function(a,b){if(b){while((b=b.parentNode)){if(b===a){return true;}}}
65return false;};sortOrder=hasCompare?function(a,b){if(a===b){hasDuplicate=true;return 0;}
66var compare=!a.compareDocumentPosition-!b.compareDocumentPosition;if(compare){return compare;}
67compare=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1;if(compare&1||(!support.sortDetached&&b.compareDocumentPosition(a)===compare)){if(a===doc||a.ownerDocument===preferredDoc&&contains(preferredDoc,a)){return-1;}
68if(b===doc||b.ownerDocument===preferredDoc&&contains(preferredDoc,b)){return 1;}
69return sortInput?(indexOf(sortInput,a)-indexOf(sortInput,b)):0;}
70return compare&4?-1:1;}:function(a,b){if(a===b){hasDuplicate=true;return 0;}
71var cur,i=0,aup=a.parentNode,bup=b.parentNode,ap=[a],bp=[b];if(!aup||!bup){return a===doc?-1:b===doc?1:aup?-1:bup?1:sortInput?(indexOf(sortInput,a)-indexOf(sortInput,b)):0;}else if(aup===bup){return siblingCheck(a,b);}
72cur=a;while((cur=cur.parentNode)){ap.unshift(cur);}
73cur=b;while((cur=cur.parentNode)){bp.unshift(cur);}
74while(ap[i]===bp[i]){i++;}
75return i?siblingCheck(ap[i],bp[i]):ap[i]===preferredDoc?-1:bp[i]===preferredDoc?1:0;};return doc;};Sizzle.matches=function(expr,elements){return Sizzle(expr,null,null,elements);};Sizzle.matchesSelector=function(elem,expr){if((elem.ownerDocument||elem)!==document){setDocument(elem);}
76expr=expr.replace(rattributeQuotes,"='$1']");if(support.matchesSelector&&documentIsHTML&&(!rbuggyMatches||!rbuggyMatches.test(expr))&&(!rbuggyQSA||!rbuggyQSA.test(expr))){try{var ret=matches.call(elem,expr);if(ret||support.disconnectedMatch||elem.document&&elem.document.nodeType!==11){return ret;}}catch(e){}}
77return Sizzle(expr,document,null,[elem]).length>0;};Sizzle.contains=function(context,elem){if((context.ownerDocument||context)!==document){setDocument(context);}
78return contains(context,elem);};Sizzle.attr=function(elem,name){if((elem.ownerDocument||elem)!==document){setDocument(elem);}
79var fn=Expr.attrHandle[name.toLowerCase()],val=fn&&hasOwn.call(Expr.attrHandle,name.toLowerCase())?fn(elem,name,!documentIsHTML):undefined;return val!==undefined?val:support.attributes||!documentIsHTML?elem.getAttribute(name):(val=elem.getAttributeNode(name))&&val.specified?val.value:null;};Sizzle.error=function(msg){throw new Error("Syntax error, unrecognized expression: "+msg);};Sizzle.uniqueSort=function(results){var elem,duplicates=[],j=0,i=0;hasDuplicate=!support.detectDuplicates;sortInput=!support.sortStable&&results.slice(0);results.sort(sortOrder);if(hasDuplicate){while((elem=results[i++])){if(elem===results[i]){j=duplicates.push(i);}}
80while(j--){results.splice(duplicates[j],1);}}
81sortInput=null;return results;};getText=Sizzle.getText=function(elem){var node,ret="",i=0,nodeType=elem.nodeType;if(!nodeType){while((node=elem[i++])){ret+=getText(node);}}else if(nodeType===1||nodeType===9||nodeType===11){if(typeof elem.textContent==="string"){return elem.textContent;}else{for(elem=elem.firstChild;elem;elem=elem.nextSibling){ret+=getText(elem);}}}else if(nodeType===3||nodeType===4){return elem.nodeValue;}
82return ret;};Expr=Sizzle.selectors={cacheLength:50,createPseudo:markFunction,match:matchExpr,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:true}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:true},"~":{dir:"previousSibling"}},preFilter:{"ATTR":function(match){match[1]=match[1].replace(runescape,funescape);match[3]=(match[3]||match[4]||match[5]||"").replace(runescape,funescape);if(match[2]==="~="){match[3]=" "+match[3]+" ";}
83return match.slice(0,4);},"CHILD":function(match){match[1]=match[1].toLowerCase();if(match[1].slice(0,3)==="nth"){if(!match[3]){Sizzle.error(match[0]);}
84match[4]=+(match[4]?match[5]+(match[6]||1):2*(match[3]==="even"||match[3]==="odd"));match[5]=+((match[7]+match[8])||match[3]==="odd");}else if(match[3]){Sizzle.error(match[0]);}
85return match;},"PSEUDO":function(match){var excess,unquoted=!match[6]&&match[2];if(matchExpr["CHILD"].test(match[0])){return null;}
86if(match[3]){match[2]=match[4]||match[5]||"";}else if(unquoted&&rpseudo.test(unquoted)&&(excess=tokenize(unquoted,true))&&(excess=unquoted.indexOf(")",unquoted.length-excess)-unquoted.length)){match[0]=match[0].slice(0,excess);match[2]=unquoted.slice(0,excess);}
87return match.slice(0,3);}},filter:{"TAG":function(nodeNameSelector){var nodeName=nodeNameSelector.replace(runescape,funescape).toLowerCase();return nodeNameSelector==="*"?function(){return true;}:function(elem){return elem.nodeName&&elem.nodeName.toLowerCase()===nodeName;};},"CLASS":function(className){var pattern=classCache[className+" "];return pattern||(pattern=new RegExp("(^|"+whitespace+")"+className+"("+whitespace+"|$)"))&&classCache(className,function(elem){return pattern.test(typeof elem.className==="string"&&elem.className||typeof elem.getAttribute!=="undefined"&&elem.getAttribute("class")||"");});},"ATTR":function(name,operator,check){return function(elem){var result=Sizzle.attr(elem,name);if(result==null){return operator==="!=";}
88if(!operator){return true;}
89result+="";return operator==="="?result===check:operator==="!="?result!==check:operator==="^="?check&&result.indexOf(check)===0:operator==="*="?check&&result.indexOf(check)>-1:operator==="$="?check&&result.slice(-check.length)===check:operator==="~="?(" "+result.replace(rwhitespace," ")+" ").indexOf(check)>-1:operator==="|="?result===check||result.slice(0,check.length+1)===check+"-":false;};},"CHILD":function(type,what,argument,first,last){var simple=type.slice(0,3)!=="nth",forward=type.slice(-4)!=="last",ofType=what==="of-type";return first===1&&last===0?function(elem){return!!elem.parentNode;}:function(elem,context,xml){var cache,outerCache,node,diff,nodeIndex,start,dir=simple!==forward?"nextSibling":"previousSibling",parent=elem.parentNode,name=ofType&&elem.nodeName.toLowerCase(),useCache=!xml&&!ofType;if(parent){if(simple){while(dir){node=elem;while((node=node[dir])){if(ofType?node.nodeName.toLowerCase()===name:node.nodeType===1){return false;}}
90start=dir=type==="only"&&!start&&"nextSibling";}
91return true;}
92start=[forward?parent.firstChild:parent.lastChild];if(forward&&useCache){outerCache=parent[expando]||(parent[expando]={});cache=outerCache[type]||[];nodeIndex=cache[0]===dirruns&&cache[1];diff=cache[0]===dirruns&&cache[2];node=nodeIndex&&parent.childNodes[nodeIndex];while((node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop())){if(node.nodeType===1&&++diff&&node===elem){outerCache[type]=[dirruns,nodeIndex,diff];break;}}}else if(useCache&&(cache=(elem[expando]||(elem[expando]={}))[type])&&cache[0]===dirruns){diff=cache[1];}else{while((node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop())){if((ofType?node.nodeName.toLowerCase()===name:node.nodeType===1)&&++diff){if(useCache){(node[expando]||(node[expando]={}))[type]=[dirruns,diff];}
93if(node===elem){break;}}}}
94diff-=last;return diff===first||(diff%first===0&&diff / first>=0);}};},"PSEUDO":function(pseudo,argument){var args,fn=Expr.pseudos[pseudo]||Expr.setFilters[pseudo.toLowerCase()]||Sizzle.error("unsupported pseudo: "+pseudo);if(fn[expando]){return fn(argument);}
95if(fn.length>1){args=[pseudo,pseudo,"",argument];return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase())?markFunction(function(seed,matches){var idx,matched=fn(seed,argument),i=matched.length;while(i--){idx=indexOf(seed,matched[i]);seed[idx]=!(matches[idx]=matched[i]);}}):function(elem){return fn(elem,0,args);};}
96return fn;}},pseudos:{"not":markFunction(function(selector){var input=[],results=[],matcher=compile(selector.replace(rtrim,"$1"));return matcher[expando]?markFunction(function(seed,matches,context,xml){var elem,unmatched=matcher(seed,null,xml,[]),i=seed.length;while(i--){if((elem=unmatched[i])){seed[i]=!(matches[i]=elem);}}}):function(elem,context,xml){input[0]=elem;matcher(input,null,xml,results);input[0]=null;return!results.pop();};}),"has":markFunction(function(selector){return function(elem){return Sizzle(selector,elem).length>0;};}),"contains":markFunction(function(text){text=text.replace(runescape,funescape);return function(elem){return(elem.textContent||elem.innerText||getText(elem)).indexOf(text)>-1;};}),"lang":markFunction(function(lang){if(!ridentifier.test(lang||"")){Sizzle.error("unsupported lang: "+lang);}
97lang=lang.replace(runescape,funescape).toLowerCase();return function(elem){var elemLang;do{if((elemLang=documentIsHTML?elem.lang:elem.getAttribute("xml:lang")||elem.getAttribute("lang"))){elemLang=elemLang.toLowerCase();return elemLang===lang||elemLang.indexOf(lang+"-")===0;}}while((elem=elem.parentNode)&&elem.nodeType===1);return false;};}),"target":function(elem){var hash=window.location&&window.location.hash;return hash&&hash.slice(1)===elem.id;},"root":function(elem){return elem===docElem;},"focus":function(elem){return elem===document.activeElement&&(!document.hasFocus||document.hasFocus())&&!!(elem.type||elem.href||~elem.tabIndex);},"enabled":function(elem){return elem.disabled===false;},"disabled":function(elem){return elem.disabled===true;},"checked":function(elem){var nodeName=elem.nodeName.toLowerCase();return(nodeName==="input"&&!!elem.checked)||(nodeName==="option"&&!!elem.selected);},"selected":function(elem){if(elem.parentNode){elem.parentNode.selectedIndex;}
98return elem.selected===true;},"empty":function(elem){for(elem=elem.firstChild;elem;elem=elem.nextSibling){if(elem.nodeType<6){return false;}}
99return true;},"parent":function(elem){return!Expr.pseudos["empty"](elem);},"header":function(elem){return rheader.test(elem.nodeName);},"input":function(elem){return rinputs.test(elem.nodeName);},"button":function(elem){var name=elem.nodeName.toLowerCase();return name==="input"&&elem.type==="button"||name==="button";},"text":function(elem){var attr;return elem.nodeName.toLowerCase()==="input"&&elem.type==="text"&&((attr=elem.getAttribute("type"))==null||attr.toLowerCase()==="text");},"first":createPositionalPseudo(function(){return[0];}),"last":createPositionalPseudo(function(matchIndexes,length){return[length-1];}),"eq":createPositionalPseudo(function(matchIndexes,length,argument){return[argument<0?argument+length:argument];}),"even":createPositionalPseudo(function(matchIndexes,length){var i=0;for(;i<length;i+=2){matchIndexes.push(i);}
100return matchIndexes;}),"odd":createPositionalPseudo(function(matchIndexes,length){var i=1;for(;i<length;i+=2){matchIndexes.push(i);}
101return matchIndexes;}),"lt":createPositionalPseudo(function(matchIndexes,length,argument){var i=argument<0?argument+length:argument;for(;--i>=0;){matchIndexes.push(i);}
102return matchIndexes;}),"gt":createPositionalPseudo(function(matchIndexes,length,argument){var i=argument<0?argument+length:argument;for(;++i<length;){matchIndexes.push(i);}
103return matchIndexes;})}};Expr.pseudos["nth"]=Expr.pseudos["eq"];for(i in{radio:true,checkbox:true,file:true,password:true,image:true}){Expr.pseudos[i]=createInputPseudo(i);}
104for(i in{submit:true,reset:true}){Expr.pseudos[i]=createButtonPseudo(i);}
105function setFilters(){}
106setFilters.prototype=Expr.filters=Expr.pseudos;Expr.setFilters=new setFilters();tokenize=Sizzle.tokenize=function(selector,parseOnly){var matched,match,tokens,type,soFar,groups,preFilters,cached=tokenCache[selector+" "];if(cached){return parseOnly?0:cached.slice(0);}
107soFar=selector;groups=[];preFilters=Expr.preFilter;while(soFar){if(!matched||(match=rcomma.exec(soFar))){if(match){soFar=soFar.slice(match[0].length)||soFar;}
108groups.push((tokens=[]));}
109matched=false;if((match=rcombinators.exec(soFar))){matched=match.shift();tokens.push({value:matched,type:match[0].replace(rtrim," ")});soFar=soFar.slice(matched.length);}
110for(type in Expr.filter){if((match=matchExpr[type].exec(soFar))&&(!preFilters[type]||(match=preFilters[type](match)))){matched=match.shift();tokens.push({value:matched,type:type,matches:match});soFar=soFar.slice(matched.length);}}
111if(!matched){break;}}
112return parseOnly?soFar.length:soFar?Sizzle.error(selector):tokenCache(selector,groups).slice(0);};function toSelector(tokens){var i=0,len=tokens.length,selector="";for(;i<len;i++){selector+=tokens[i].value;}
113return selector;}
114function addCombinator(matcher,combinator,base){var dir=combinator.dir,checkNonElements=base&&dir==="parentNode",doneName=done++;return combinator.first?function(elem,context,xml){while((elem=elem[dir])){if(elem.nodeType===1||checkNonElements){return matcher(elem,context,xml);}}}:function(elem,context,xml){var oldCache,outerCache,newCache=[dirruns,doneName];if(xml){while((elem=elem[dir])){if(elem.nodeType===1||checkNonElements){if(matcher(elem,context,xml)){return true;}}}}else{while((elem=elem[dir])){if(elem.nodeType===1||checkNonElements){outerCache=elem[expando]||(elem[expando]={});if((oldCache=outerCache[dir])&&oldCache[0]===dirruns&&oldCache[1]===doneName){return(newCache[2]=oldCache[2]);}else{outerCache[dir]=newCache;if((newCache[2]=matcher(elem,context,xml))){return true;}}}}}};}
115function elementMatcher(matchers){return matchers.length>1?function(elem,context,xml){var i=matchers.length;while(i--){if(!matchers[i](elem,context,xml)){return false;}}
116return true;}:matchers[0];}
117function multipleContexts(selector,contexts,results){var i=0,len=contexts.length;for(;i<len;i++){Sizzle(selector,contexts[i],results);}
118return results;}
119function condense(unmatched,map,filter,context,xml){var elem,newUnmatched=[],i=0,len=unmatched.length,mapped=map!=null;for(;i<len;i++){if((elem=unmatched[i])){if(!filter||filter(elem,context,xml)){newUnmatched.push(elem);if(mapped){map.push(i);}}}}
120return newUnmatched;}
121function setMatcher(preFilter,selector,matcher,postFilter,postFinder,postSelector){if(postFilter&&!postFilter[expando]){postFilter=setMatcher(postFilter);}
122if(postFinder&&!postFinder[expando]){postFinder=setMatcher(postFinder,postSelector);}
123return markFunction(function(seed,results,context,xml){var temp,i,elem,preMap=[],postMap=[],preexisting=results.length,elems=seed||multipleContexts(selector||"*",context.nodeType?[context]:context,[]),matcherIn=preFilter&&(seed||!selector)?condense(elems,preMap,preFilter,context,xml):elems,matcherOut=matcher?postFinder||(seed?preFilter:preexisting||postFilter)?[]:results:matcherIn;if(matcher){matcher(matcherIn,matcherOut,context,xml);}
124if(postFilter){temp=condense(matcherOut,postMap);postFilter(temp,[],context,xml);i=temp.length;while(i--){if((elem=temp[i])){matcherOut[postMap[i]]=!(matcherIn[postMap[i]]=elem);}}}
125if(seed){if(postFinder||preFilter){if(postFinder){temp=[];i=matcherOut.length;while(i--){if((elem=matcherOut[i])){temp.push((matcherIn[i]=elem));}}
126postFinder(null,(matcherOut=[]),temp,xml);}
127i=matcherOut.length;while(i--){if((elem=matcherOut[i])&&(temp=postFinder?indexOf(seed,elem):preMap[i])>-1){seed[temp]=!(results[temp]=elem);}}}}else{matcherOut=condense(matcherOut===results?matcherOut.splice(preexisting,matcherOut.length):matcherOut);if(postFinder){postFinder(null,results,matcherOut,xml);}else{push.apply(results,matcherOut);}}});}
128function matcherFromTokens(tokens){var checkContext,matcher,j,len=tokens.length,leadingRelative=Expr.relative[tokens[0].type],implicitRelative=leadingRelative||Expr.relative[" "],i=leadingRelative?1:0,matchContext=addCombinator(function(elem){return elem===checkContext;},implicitRelative,true),matchAnyContext=addCombinator(function(elem){return indexOf(checkContext,elem)>-1;},implicitRelative,true),matchers=[function(elem,context,xml){var ret=(!leadingRelative&&(xml||context!==outermostContext))||((checkContext=context).nodeType?matchContext(elem,context,xml):matchAnyContext(elem,context,xml));checkContext=null;return ret;}];for(;i<len;i++){if((matcher=Expr.relative[tokens[i].type])){matchers=[addCombinator(elementMatcher(matchers),matcher)];}else{matcher=Expr.filter[tokens[i].type].apply(null,tokens[i].matches);if(matcher[expando]){j=++i;for(;j<len;j++){if(Expr.relative[tokens[j].type]){break;}}
129return setMatcher(i>1&&elementMatcher(matchers),i>1&&toSelector(tokens.slice(0,i-1).concat({value:tokens[i-2].type===" "?"*":""})).replace(rtrim,"$1"),matcher,i<j&&matcherFromTokens(tokens.slice(i,j)),j<len&&matcherFromTokens((tokens=tokens.slice(j))),j<len&&toSelector(tokens));}
130matchers.push(matcher);}}
131return elementMatcher(matchers);}
132function matcherFromGroupMatchers(elementMatchers,setMatchers){var bySet=setMatchers.length>0,byElement=elementMatchers.length>0,superMatcher=function(seed,context,xml,results,outermost){var elem,j,matcher,matchedCount=0,i="0",unmatched=seed&&[],setMatched=[],contextBackup=outermostContext,elems=seed||byElement&&Expr.find["TAG"]("*",outermost),dirrunsUnique=(dirruns+=contextBackup==null?1:Math.random()||0.1),len=elems.length;if(outermost){outermostContext=context!==document&&context;}
133for(;i!==len&&(elem=elems[i])!=null;i++){if(byElement&&elem){j=0;while((matcher=elementMatchers[j++])){if(matcher(elem,context,xml)){results.push(elem);break;}}
134if(outermost){dirruns=dirrunsUnique;}}
135if(bySet){if((elem=!matcher&&elem)){matchedCount--;}
136if(seed){unmatched.push(elem);}}}
137matchedCount+=i;if(bySet&&i!==matchedCount){j=0;while((matcher=setMatchers[j++])){matcher(unmatched,setMatched,context,xml);}
138if(seed){if(matchedCount>0){while(i--){if(!(unmatched[i]||setMatched[i])){setMatched[i]=pop.call(results);}}}
139setMatched=condense(setMatched);}
140push.apply(results,setMatched);if(outermost&&!seed&&setMatched.length>0&&(matchedCount+setMatchers.length)>1){Sizzle.uniqueSort(results);}}
141if(outermost){dirruns=dirrunsUnique;outermostContext=contextBackup;}
142return unmatched;};return bySet?markFunction(superMatcher):superMatcher;}
143compile=Sizzle.compile=function(selector,match){var i,setMatchers=[],elementMatchers=[],cached=compilerCache[selector+" "];if(!cached){if(!match){match=tokenize(selector);}
144i=match.length;while(i--){cached=matcherFromTokens(match[i]);if(cached[expando]){setMatchers.push(cached);}else{elementMatchers.push(cached);}}
145cached=compilerCache(selector,matcherFromGroupMatchers(elementMatchers,setMatchers));cached.selector=selector;}
146return cached;};select=Sizzle.select=function(selector,context,results,seed){var i,tokens,token,type,find,compiled=typeof selector==="function"&&selector,match=!seed&&tokenize((selector=compiled.selector||selector));results=results||[];if(match.length===1){tokens=match[0]=match[0].slice(0);if(tokens.length>2&&(token=tokens[0]).type==="ID"&&support.getById&&context.nodeType===9&&documentIsHTML&&Expr.relative[tokens[1].type]){context=(Expr.find["ID"](token.matches[0].replace(runescape,funescape),context)||[])[0];if(!context){return results;}else if(compiled){context=context.parentNode;}
147selector=selector.slice(tokens.shift().value.length);}
148i=matchExpr["needsContext"].test(selector)?0:tokens.length;while(i--){token=tokens[i];if(Expr.relative[(type=token.type)]){break;}
149if((find=Expr.find[type])){if((seed=find(token.matches[0].replace(runescape,funescape),rsibling.test(tokens[0].type)&&testContext(context.parentNode)||context))){tokens.splice(i,1);selector=seed.length&&toSelector(tokens);if(!selector){push.apply(results,seed);return results;}
150break;}}}}
151(compiled||compile(selector,match))(seed,context,!documentIsHTML,results,rsibling.test(selector)&&testContext(context.parentNode)||context);return results;};support.sortStable=expando.split("").sort(sortOrder).join("")===expando;support.detectDuplicates=!!hasDuplicate;setDocument();support.sortDetached=assert(function(div1){return div1.compareDocumentPosition(document.createElement("div"))&1;});if(!assert(function(div){div.innerHTML="<a href='#'></a>";return div.firstChild.getAttribute("href")==="#";})){addHandle("type|href|height|width",function(elem,name,isXML){if(!isXML){return elem.getAttribute(name,name.toLowerCase()==="type"?1:2);}});}
152if(!support.attributes||!assert(function(div){div.innerHTML="<input/>";div.firstChild.setAttribute("value","");return div.firstChild.getAttribute("value")==="";})){addHandle("value",function(elem,name,isXML){if(!isXML&&elem.nodeName.toLowerCase()==="input"){return elem.defaultValue;}});}
153if(!assert(function(div){return div.getAttribute("disabled")==null;})){addHandle(booleans,function(elem,name,isXML){var val;if(!isXML){return elem[name]===true?name.toLowerCase():(val=elem.getAttributeNode(name))&&val.specified?val.value:null;}});}
154return Sizzle;})(window);jQuery.find=Sizzle;jQuery.expr=Sizzle.selectors;jQuery.expr[":"]=jQuery.expr.pseudos;jQuery.unique=Sizzle.uniqueSort;jQuery.text=Sizzle.getText;jQuery.isXMLDoc=Sizzle.isXML;jQuery.contains=Sizzle.contains;var rneedsContext=jQuery.expr.match.needsContext;var rsingleTag=(/^<(\w+)\s*\/?>(?:<\/\1>|)$/);var risSimple=/^.[^:#\[\.,]*$/;function winnow(elements,qualifier,not){if(jQuery.isFunction(qualifier)){return jQuery.grep(elements,function(elem,i){return!!qualifier.call(elem,i,elem)!==not;});}
155if(qualifier.nodeType){return jQuery.grep(elements,function(elem){return(elem===qualifier)!==not;});}
156if(typeof qualifier==="string"){if(risSimple.test(qualifier)){return jQuery.filter(qualifier,elements,not);}
157qualifier=jQuery.filter(qualifier,elements);}
158return jQuery.grep(elements,function(elem){return(indexOf.call(qualifier,elem)>=0)!==not;});}
159jQuery.filter=function(expr,elems,not){var elem=elems[0];if(not){expr=":not("+expr+")";}
160return elems.length===1&&elem.nodeType===1?jQuery.find.matchesSelector(elem,expr)?[elem]:[]:jQuery.find.matches(expr,jQuery.grep(elems,function(elem){return elem.nodeType===1;}));};jQuery.fn.extend({find:function(selector){var i,len=this.length,ret=[],self=this;if(typeof selector!=="string"){return this.pushStack(jQuery(selector).filter(function(){for(i=0;i<len;i++){if(jQuery.contains(self[i],this)){return true;}}}));}
161for(i=0;i<len;i++){jQuery.find(selector,self[i],ret);}
162ret=this.pushStack(len>1?jQuery.unique(ret):ret);ret.selector=this.selector?this.selector+" "+selector:selector;return ret;},filter:function(selector){return this.pushStack(winnow(this,selector||[],false));},not:function(selector){return this.pushStack(winnow(this,selector||[],true));},is:function(selector){return!!winnow(this,typeof selector==="string"&&rneedsContext.test(selector)?jQuery(selector):selector||[],false).length;}});var rootjQuery,rquickExpr=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,init=jQuery.fn.init=function(selector,context){var match,elem;if(!selector){return this;}
163if(typeof selector==="string"){if(selector[0]==="<"&&selector[selector.length-1]===">"&&selector.length>=3){match=[null,selector,null];}else{match=rquickExpr.exec(selector);}
164if(match&&(match[1]||!context)){if(match[1]){context=context instanceof jQuery?context[0]:context;jQuery.merge(this,jQuery.parseHTML(match[1],context&&context.nodeType?context.ownerDocument||context:document,true));if(rsingleTag.test(match[1])&&jQuery.isPlainObject(context)){for(match in context){if(jQuery.isFunction(this[match])){this[match](context[match]);}else{this.attr(match,context[match]);}}}
165return this;}else{elem=document.getElementById(match[2]);if(elem&&elem.parentNode){this.length=1;this[0]=elem;}
166this.context=document;this.selector=selector;return this;}}else if(!context||context.jquery){return(context||rootjQuery).find(selector);}else{return this.constructor(context).find(selector);}}else if(selector.nodeType){this.context=this[0]=selector;this.length=1;return this;}else if(jQuery.isFunction(selector)){return typeof rootjQuery.ready!=="undefined"?rootjQuery.ready(selector):selector(jQuery);}
167if(selector.selector!==undefined){this.selector=selector.selector;this.context=selector.context;}
168return jQuery.makeArray(selector,this);};init.prototype=jQuery.fn;rootjQuery=jQuery(document);var rparentsprev=/^(?:parents|prev(?:Until|All))/,guaranteedUnique={children:true,contents:true,next:true,prev:true};jQuery.extend({dir:function(elem,dir,until){var matched=[],truncate=until!==undefined;while((elem=elem[dir])&&elem.nodeType!==9){if(elem.nodeType===1){if(truncate&&jQuery(elem).is(until)){break;}
169matched.push(elem);}}
170return matched;},sibling:function(n,elem){var matched=[];for(;n;n=n.nextSibling){if(n.nodeType===1&&n!==elem){matched.push(n);}}
171return matched;}});jQuery.fn.extend({has:function(target){var targets=jQuery(target,this),l=targets.length;return this.filter(function(){var i=0;for(;i<l;i++){if(jQuery.contains(this,targets[i])){return true;}}});},closest:function(selectors,context){var cur,i=0,l=this.length,matched=[],pos=rneedsContext.test(selectors)||typeof selectors!=="string"?jQuery(selectors,context||this.context):0;for(;i<l;i++){for(cur=this[i];cur&&cur!==context;cur=cur.parentNode){if(cur.nodeType<11&&(pos?pos.index(cur)>-1:cur.nodeType===1&&jQuery.find.matchesSelector(cur,selectors))){matched.push(cur);break;}}}
172return this.pushStack(matched.length>1?jQuery.unique(matched):matched);},index:function(elem){if(!elem){return(this[0]&&this[0].parentNode)?this.first().prevAll().length:-1;}
173if(typeof elem==="string"){return indexOf.call(jQuery(elem),this[0]);}
174return indexOf.call(this,elem.jquery?elem[0]:elem);},add:function(selector,context){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),jQuery(selector,context))));},addBack:function(selector){return this.add(selector==null?this.prevObject:this.prevObject.filter(selector));}});function sibling(cur,dir){while((cur=cur[dir])&&cur.nodeType!==1){}
175return cur;}
176jQuery.each({parent:function(elem){var parent=elem.parentNode;return parent&&parent.nodeType!==11?parent:null;},parents:function(elem){return jQuery.dir(elem,"parentNode");},parentsUntil:function(elem,i,until){return jQuery.dir(elem,"parentNode",until);},next:function(elem){return sibling(elem,"nextSibling");},prev:function(elem){return sibling(elem,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");},nextUntil:function(elem,i,until){return jQuery.dir(elem,"nextSibling",until);},prevUntil:function(elem,i,until){return jQuery.dir(elem,"previousSibling",until);},siblings:function(elem){return jQuery.sibling((elem.parentNode||{}).firstChild,elem);},children:function(elem){return jQuery.sibling(elem.firstChild);},contents:function(elem){return elem.contentDocument||jQuery.merge([],elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(until,selector){var matched=jQuery.map(this,fn,until);if(name.slice(-5)!=="Until"){selector=until;}
177if(selector&&typeof selector==="string"){matched=jQuery.filter(selector,matched);}
178if(this.length>1){if(!guaranteedUnique[name]){jQuery.unique(matched);}
179if(rparentsprev.test(name)){matched.reverse();}}
180return this.pushStack(matched);};});var rnotwhite=(/\S+/g);var optionsCache={};function createOptions(options){var object=optionsCache[options]={};jQuery.each(options.match(rnotwhite)||[],function(_,flag){object[flag]=true;});return object;}
181jQuery.Callbacks=function(options){options=typeof options==="string"?(optionsCache[options]||createOptions(options)):jQuery.extend({},options);var
182memory,fired,firing,firingStart,firingLength,firingIndex,list=[],stack=!options.once&&[],fire=function(data){memory=options.memory&&data;fired=true;firingIndex=firingStart||0;firingStart=0;firingLength=list.length;firing=true;for(;list&&firingIndex<firingLength;firingIndex++){if(list[firingIndex].apply(data[0],data[1])===false&&options.stopOnFalse){memory=false;break;}}
183firing=false;if(list){if(stack){if(stack.length){fire(stack.shift());}}else if(memory){list=[];}else{self.disable();}}},self={add:function(){if(list){var start=list.length;(function add(args){jQuery.each(args,function(_,arg){var type=jQuery.type(arg);if(type==="function"){if(!options.unique||!self.has(arg)){list.push(arg);}}else if(arg&&arg.length&&type!=="string"){add(arg);}});})(arguments);if(firing){firingLength=list.length;}else if(memory){firingStart=start;fire(memory);}}
184return this;},remove:function(){if(list){jQuery.each(arguments,function(_,arg){var index;while((index=jQuery.inArray(arg,list,index))>-1){list.splice(index,1);if(firing){if(index<=firingLength){firingLength--;}
185if(index<=firingIndex){firingIndex--;}}}});}
186return this;},has:function(fn){return fn?jQuery.inArray(fn,list)>-1:!!(list&&list.length);},empty:function(){list=[];firingLength=0;return this;},disable:function(){list=stack=memory=undefined;return this;},disabled:function(){return!list;},lock:function(){stack=undefined;if(!memory){self.disable();}
187return this;},locked:function(){return!stack;},fireWith:function(context,args){if(list&&(!fired||stack)){args=args||[];args=[context,args.slice?args.slice():args];if(firing){stack.push(args);}else{fire(args);}}
188return this;},fire:function(){self.fireWith(this,arguments);return this;},fired:function(){return!!fired;}};return self;};jQuery.extend({Deferred:function(func){var tuples=[["resolve","done",jQuery.Callbacks("once memory"),"resolved"],["reject","fail",jQuery.Callbacks("once memory"),"rejected"],["notify","progress",jQuery.Callbacks("memory")]],state="pending",promise={state:function(){return state;},always:function(){deferred.done(arguments).fail(arguments);return this;},then:function(){var fns=arguments;return jQuery.Deferred(function(newDefer){jQuery.each(tuples,function(i,tuple){var fn=jQuery.isFunction(fns[i])&&fns[i];deferred[tuple[1]](function(){var returned=fn&&fn.apply(this,arguments);if(returned&&jQuery.isFunction(returned.promise)){returned.promise().done(newDefer.resolve).fail(newDefer.reject).progress(newDefer.notify);}else{newDefer[tuple[0]+"With"](this===promise?newDefer.promise():this,fn?[returned]:arguments);}});});fns=null;}).promise();},promise:function(obj){return obj!=null?jQuery.extend(obj,promise):promise;}},deferred={};promise.pipe=promise.then;jQuery.each(tuples,function(i,tuple){var list=tuple[2],stateString=tuple[3];promise[tuple[1]]=list.add;if(stateString){list.add(function(){state=stateString;},tuples[i^1][2].disable,tuples[2][2].lock);}
189deferred[tuple[0]]=function(){deferred[tuple[0]+"With"](this===deferred?promise:this,arguments);return this;};deferred[tuple[0]+"With"]=list.fireWith;});promise.promise(deferred);if(func){func.call(deferred,deferred);}
190return deferred;},when:function(subordinate){var i=0,resolveValues=slice.call(arguments),length=resolveValues.length,remaining=length!==1||(subordinate&&jQuery.isFunction(subordinate.promise))?length:0,deferred=remaining===1?subordinate:jQuery.Deferred(),updateFunc=function(i,contexts,values){return function(value){contexts[i]=this;values[i]=arguments.length>1?slice.call(arguments):value;if(values===progressValues){deferred.notifyWith(contexts,values);}else if(!(--remaining)){deferred.resolveWith(contexts,values);}};},progressValues,progressContexts,resolveContexts;if(length>1){progressValues=new Array(length);progressContexts=new Array(length);resolveContexts=new Array(length);for(;i<length;i++){if(resolveValues[i]&&jQuery.isFunction(resolveValues[i].promise)){resolveValues[i].promise().done(updateFunc(i,resolveContexts,resolveValues)).fail(deferred.reject).progress(updateFunc(i,progressContexts,progressValues));}else{--remaining;}}}
191if(!remaining){deferred.resolveWith(resolveContexts,resolveValues);}
192return deferred.promise();}});var readyList;jQuery.fn.ready=function(fn){jQuery.ready.promise().done(fn);return this;};jQuery.extend({isReady:false,readyWait:1,holdReady:function(hold){if(hold){jQuery.readyWait++;}else{jQuery.ready(true);}},ready:function(wait){if(wait===true?--jQuery.readyWait:jQuery.isReady){return;}
193jQuery.isReady=true;if(wait!==true&&--jQuery.readyWait>0){return;}
194readyList.resolveWith(document,[jQuery]);if(jQuery.fn.triggerHandler){jQuery(document).triggerHandler("ready");jQuery(document).off("ready");}}});function completed(){document.removeEventListener("DOMContentLoaded",completed,false);window.removeEventListener("load",completed,false);jQuery.ready();}
195jQuery.ready.promise=function(obj){if(!readyList){readyList=jQuery.Deferred();if(document.readyState==="complete"){setTimeout(jQuery.ready);}else{document.addEventListener("DOMContentLoaded",completed,false);window.addEventListener("load",completed,false);}}
196return readyList.promise(obj);};jQuery.ready.promise();var access=jQuery.access=function(elems,fn,key,value,chainable,emptyGet,raw){var i=0,len=elems.length,bulk=key==null;if(jQuery.type(key)==="object"){chainable=true;for(i in key){jQuery.access(elems,fn,i,key[i],true,emptyGet,raw);}}else if(value!==undefined){chainable=true;if(!jQuery.isFunction(value)){raw=true;}
197if(bulk){if(raw){fn.call(elems,value);fn=null;}else{bulk=fn;fn=function(elem,key,value){return bulk.call(jQuery(elem),value);};}}
198if(fn){for(;i<len;i++){fn(elems[i],key,raw?value:value.call(elems[i],i,fn(elems[i],key)));}}}
199return chainable?elems:bulk?fn.call(elems):len?fn(elems[0],key):emptyGet;};jQuery.acceptData=function(owner){return owner.nodeType===1||owner.nodeType===9||!(+owner.nodeType);};function Data(){Object.defineProperty(this.cache={},0,{get:function(){return{};}});this.expando=jQuery.expando+Data.uid++;}
200Data.uid=1;Data.accepts=jQuery.acceptData;Data.prototype={key:function(owner){if(!Data.accepts(owner)){return 0;}
201var descriptor={},unlock=owner[this.expando];if(!unlock){unlock=Data.uid++;try{descriptor[this.expando]={value:unlock};Object.defineProperties(owner,descriptor);}catch(e){descriptor[this.expando]=unlock;jQuery.extend(owner,descriptor);}}
202if(!this.cache[unlock]){this.cache[unlock]={};}
203return unlock;},set:function(owner,data,value){var prop,unlock=this.key(owner),cache=this.cache[unlock];if(typeof data==="string"){cache[data]=value;}else{if(jQuery.isEmptyObject(cache)){jQuery.extend(this.cache[unlock],data);}else{for(prop in data){cache[prop]=data[prop];}}}
204return cache;},get:function(owner,key){var cache=this.cache[this.key(owner)];return key===undefined?cache:cache[key];},access:function(owner,key,value){var stored;if(key===undefined||((key&&typeof key==="string")&&value===undefined)){stored=this.get(owner,key);return stored!==undefined?stored:this.get(owner,jQuery.camelCase(key));}
205this.set(owner,key,value);return value!==undefined?value:key;},remove:function(owner,key){var i,name,camel,unlock=this.key(owner),cache=this.cache[unlock];if(key===undefined){this.cache[unlock]={};}else{if(jQuery.isArray(key)){name=key.concat(key.map(jQuery.camelCase));}else{camel=jQuery.camelCase(key);if(key in cache){name=[key,camel];}else{name=camel;name=name in cache?[name]:(name.match(rnotwhite)||[]);}}
206i=name.length;while(i--){delete cache[name[i]];}}},hasData:function(owner){return!jQuery.isEmptyObject(this.cache[owner[this.expando]]||{});},discard:function(owner){if(owner[this.expando]){delete this.cache[owner[this.expando]];}}};var data_priv=new Data();var data_user=new Data();var rbrace=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,rmultiDash=/([A-Z])/g;function dataAttr(elem,key,data){var name;if(data===undefined&&elem.nodeType===1){name="data-"+key.replace(rmultiDash,"-$1").toLowerCase();data=elem.getAttribute(name);if(typeof data==="string"){try{data=data==="true"?true:data==="false"?false:data==="null"?null:+data+""===data?+data:rbrace.test(data)?jQuery.parseJSON(data):data;}catch(e){}
207data_user.set(elem,key,data);}else{data=undefined;}}
208return data;}
209jQuery.extend({hasData:function(elem){return data_user.hasData(elem)||data_priv.hasData(elem);},data:function(elem,name,data){return data_user.access(elem,name,data);},removeData:function(elem,name){data_user.remove(elem,name);},_data:function(elem,name,data){return data_priv.access(elem,name,data);},_removeData:function(elem,name){data_priv.remove(elem,name);}});jQuery.fn.extend({data:function(key,value){var i,name,data,elem=this[0],attrs=elem&&elem.attributes;if(key===undefined){if(this.length){data=data_user.get(elem);if(elem.nodeType===1&&!data_priv.get(elem,"hasDataAttrs")){i=attrs.length;while(i--){if(attrs[i]){name=attrs[i].name;if(name.indexOf("data-")===0){name=jQuery.camelCase(name.slice(5));dataAttr(elem,name,data[name]);}}}
210data_priv.set(elem,"hasDataAttrs",true);}}
211return data;}
212if(typeof key==="object"){return this.each(function(){data_user.set(this,key);});}
213return access(this,function(value){var data,camelKey=jQuery.camelCase(key);if(elem&&value===undefined){data=data_user.get(elem,key);if(data!==undefined){return data;}
214data=data_user.get(elem,camelKey);if(data!==undefined){return data;}
215data=dataAttr(elem,camelKey,undefined);if(data!==undefined){return data;}
216return;}
217this.each(function(){var data=data_user.get(this,camelKey);data_user.set(this,camelKey,value);if(key.indexOf("-")!==-1&&data!==undefined){data_user.set(this,key,value);}});},null,value,arguments.length>1,null,true);},removeData:function(key){return this.each(function(){data_user.remove(this,key);});}});jQuery.extend({queue:function(elem,type,data){var queue;if(elem){type=(type||"fx")+"queue";queue=data_priv.get(elem,type);if(data){if(!queue||jQuery.isArray(data)){queue=data_priv.access(elem,type,jQuery.makeArray(data));}else{queue.push(data);}}
218return queue||[];}},dequeue:function(elem,type){type=type||"fx";var queue=jQuery.queue(elem,type),startLength=queue.length,fn=queue.shift(),hooks=jQuery._queueHooks(elem,type),next=function(){jQuery.dequeue(elem,type);};if(fn==="inprogress"){fn=queue.shift();startLength--;}
219if(fn){if(type==="fx"){queue.unshift("inprogress");}
220delete hooks.stop;fn.call(elem,next,hooks);}
221if(!startLength&&hooks){hooks.empty.fire();}},_queueHooks:function(elem,type){var key=type+"queueHooks";return data_priv.get(elem,key)||data_priv.access(elem,key,{empty:jQuery.Callbacks("once memory").add(function(){data_priv.remove(elem,[type+"queue",key]);})});}});jQuery.fn.extend({queue:function(type,data){var setter=2;if(typeof type!=="string"){data=type;type="fx";setter--;}
222if(arguments.length<setter){return jQuery.queue(this[0],type);}
223return data===undefined?this:this.each(function(){var queue=jQuery.queue(this,type,data);jQuery._queueHooks(this,type);if(type==="fx"&&queue[0]!=="inprogress"){jQuery.dequeue(this,type);}});},dequeue:function(type){return this.each(function(){jQuery.dequeue(this,type);});},clearQueue:function(type){return this.queue(type||"fx",[]);},promise:function(type,obj){var tmp,count=1,defer=jQuery.Deferred(),elements=this,i=this.length,resolve=function(){if(!(--count)){defer.resolveWith(elements,[elements]);}};if(typeof type!=="string"){obj=type;type=undefined;}
224type=type||"fx";while(i--){tmp=data_priv.get(elements[i],type+"queueHooks");if(tmp&&tmp.empty){count++;tmp.empty.add(resolve);}}
225resolve();return defer.promise(obj);}});var pnum=(/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source;var cssExpand=["Top","Right","Bottom","Left"];var isHidden=function(elem,el){elem=el||elem;return jQuery.css(elem,"display")==="none"||!jQuery.contains(elem.ownerDocument,elem);};var rcheckableType=(/^(?:checkbox|radio)$/i);(function(){var fragment=document.createDocumentFragment(),div=fragment.appendChild(document.createElement("div")),input=document.createElement("input");input.setAttribute("type","radio");input.setAttribute("checked","checked");input.setAttribute("name","t");div.appendChild(input);support.checkClone=div.cloneNode(true).cloneNode(true).lastChild.checked;div.innerHTML="<textarea>x</textarea>";support.noCloneChecked=!!div.cloneNode(true).lastChild.defaultValue;})();var strundefined=typeof undefined;support.focusinBubbles="onfocusin"in window;var
226rkeyEvent=/^key/,rmouseEvent=/^(?:mouse|pointer|contextmenu)|click/,rfocusMorph=/^(?:focusinfocus|focusoutblur)$/,rtypenamespace=/^([^.]*)(?:\.(.+)|)$/;function returnTrue(){return true;}
227function returnFalse(){return false;}
228function safeActiveElement(){try{return document.activeElement;}catch(err){}}
229jQuery.event={global:{},add:function(elem,types,handler,data,selector){var handleObjIn,eventHandle,tmp,events,t,handleObj,special,handlers,type,namespaces,origType,elemData=data_priv.get(elem);if(!elemData){return;}
230if(handler.handler){handleObjIn=handler;handler=handleObjIn.handler;selector=handleObjIn.selector;}
231if(!handler.guid){handler.guid=jQuery.guid++;}
232if(!(events=elemData.events)){events=elemData.events={};}
233if(!(eventHandle=elemData.handle)){eventHandle=elemData.handle=function(e){return typeof jQuery!==strundefined&&jQuery.event.triggered!==e.type?jQuery.event.dispatch.apply(elem,arguments):undefined;};}
234types=(types||"").match(rnotwhite)||[""];t=types.length;while(t--){tmp=rtypenamespace.exec(types[t])||[];type=origType=tmp[1];namespaces=(tmp[2]||"").split(".").sort();if(!type){continue;}
235special=jQuery.event.special[type]||{};type=(selector?special.delegateType:special.bindType)||type;special=jQuery.event.special[type]||{};handleObj=jQuery.extend({type:type,origType:origType,data:data,handler:handler,guid:handler.guid,selector:selector,needsContext:selector&&jQuery.expr.match.needsContext.test(selector),namespace:namespaces.join(".")},handleObjIn);if(!(handlers=events[type])){handlers=events[type]=[];handlers.delegateCount=0;if(!special.setup||special.setup.call(elem,data,namespaces,eventHandle)===false){if(elem.addEventListener){elem.addEventListener(type,eventHandle,false);}}}
236if(special.add){special.add.call(elem,handleObj);if(!handleObj.handler.guid){handleObj.handler.guid=handler.guid;}}
237if(selector){handlers.splice(handlers.delegateCount++,0,handleObj);}else{handlers.push(handleObj);}
238jQuery.event.global[type]=true;}},remove:function(elem,types,handler,selector,mappedTypes){var j,origCount,tmp,events,t,handleObj,special,handlers,type,namespaces,origType,elemData=data_priv.hasData(elem)&&data_priv.get(elem);if(!elemData||!(events=elemData.events)){return;}
239types=(types||"").match(rnotwhite)||[""];t=types.length;while(t--){tmp=rtypenamespace.exec(types[t])||[];type=origType=tmp[1];namespaces=(tmp[2]||"").split(".").sort();if(!type){for(type in events){jQuery.event.remove(elem,type+types[t],handler,selector,true);}
240continue;}
241special=jQuery.event.special[type]||{};type=(selector?special.delegateType:special.bindType)||type;handlers=events[type]||[];tmp=tmp[2]&&new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)");origCount=j=handlers.length;while(j--){handleObj=handlers[j];if((mappedTypes||origType===handleObj.origType)&&(!handler||handler.guid===handleObj.guid)&&(!tmp||tmp.test(handleObj.namespace))&&(!selector||selector===handleObj.selector||selector==="**"&&handleObj.selector)){handlers.splice(j,1);if(handleObj.selector){handlers.delegateCount--;}
242if(special.remove){special.remove.call(elem,handleObj);}}}
243if(origCount&&!handlers.length){if(!special.teardown||special.teardown.call(elem,namespaces,elemData.handle)===false){jQuery.removeEvent(elem,type,elemData.handle);}
244delete events[type];}}
245if(jQuery.isEmptyObject(events)){delete elemData.handle;data_priv.remove(elem,"events");}},trigger:function(event,data,elem,onlyHandlers){var i,cur,tmp,bubbleType,ontype,handle,special,eventPath=[elem||document],type=hasOwn.call(event,"type")?event.type:event,namespaces=hasOwn.call(event,"namespace")?event.namespace.split("."):[];cur=tmp=elem=elem||document;if(elem.nodeType===3||elem.nodeType===8){return;}
246if(rfocusMorph.test(type+jQuery.event.triggered)){return;}
247if(type.indexOf(".")>=0){namespaces=type.split(".");type=namespaces.shift();namespaces.sort();}
248ontype=type.indexOf(":")<0&&"on"+type;event=event[jQuery.expando]?event:new jQuery.Event(type,typeof event==="object"&&event);event.isTrigger=onlyHandlers?2:3;event.namespace=namespaces.join(".");event.namespace_re=event.namespace?new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)"):null;event.result=undefined;if(!event.target){event.target=elem;}
249data=data==null?[event]:jQuery.makeArray(data,[event]);special=jQuery.event.special[type]||{};if(!onlyHandlers&&special.trigger&&special.trigger.apply(elem,data)===false){return;}
250if(!onlyHandlers&&!special.noBubble&&!jQuery.isWindow(elem)){bubbleType=special.delegateType||type;if(!rfocusMorph.test(bubbleType+type)){cur=cur.parentNode;}
251for(;cur;cur=cur.parentNode){eventPath.push(cur);tmp=cur;}
252if(tmp===(elem.ownerDocument||document)){eventPath.push(tmp.defaultView||tmp.parentWindow||window);}}
253i=0;while((cur=eventPath[i++])&&!event.isPropagationStopped()){event.type=i>1?bubbleType:special.bindType||type;handle=(data_priv.get(cur,"events")||{})[event.type]&&data_priv.get(cur,"handle");if(handle){handle.apply(cur,data);}
254handle=ontype&&cur[ontype];if(handle&&handle.apply&&jQuery.acceptData(cur)){event.result=handle.apply(cur,data);if(event.result===false){event.preventDefault();}}}
255event.type=type;if(!onlyHandlers&&!event.isDefaultPrevented()){if((!special._default||special._default.apply(eventPath.pop(),data)===false)&&jQuery.acceptData(elem)){if(ontype&&jQuery.isFunction(elem[type])&&!jQuery.isWindow(elem)){tmp=elem[ontype];if(tmp){elem[ontype]=null;}
256jQuery.event.triggered=type;elem[type]();jQuery.event.triggered=undefined;if(tmp){elem[ontype]=tmp;}}}}
257return event.result;},dispatch:function(event){event=jQuery.event.fix(event);var i,j,ret,matched,handleObj,handlerQueue=[],args=slice.call(arguments),handlers=(data_priv.get(this,"events")||{})[event.type]||[],special=jQuery.event.special[event.type]||{};args[0]=event;event.delegateTarget=this;if(special.preDispatch&&special.preDispatch.call(this,event)===false){return;}
258handlerQueue=jQuery.event.handlers.call(this,event,handlers);i=0;while((matched=handlerQueue[i++])&&!event.isPropagationStopped()){event.currentTarget=matched.elem;j=0;while((handleObj=matched.handlers[j++])&&!event.isImmediatePropagationStopped()){if(!event.namespace_re||event.namespace_re.test(handleObj.namespace)){event.handleObj=handleObj;event.data=handleObj.data;ret=((jQuery.event.special[handleObj.origType]||{}).handle||handleObj.handler).apply(matched.elem,args);if(ret!==undefined){if((event.result=ret)===false){event.preventDefault();event.stopPropagation();}}}}}
259if(special.postDispatch){special.postDispatch.call(this,event);}
260return event.result;},handlers:function(event,handlers){var i,matches,sel,handleObj,handlerQueue=[],delegateCount=handlers.delegateCount,cur=event.target;if(delegateCount&&cur.nodeType&&(!event.button||event.type!=="click")){for(;cur!==this;cur=cur.parentNode||this){if(cur.disabled!==true||event.type!=="click"){matches=[];for(i=0;i<delegateCount;i++){handleObj=handlers[i];sel=handleObj.selector+" ";if(matches[sel]===undefined){matches[sel]=handleObj.needsContext?jQuery(sel,this).index(cur)>=0:jQuery.find(sel,this,null,[cur]).length;}
261if(matches[sel]){matches.push(handleObj);}}
262if(matches.length){handlerQueue.push({elem:cur,handlers:matches});}}}}
263if(delegateCount<handlers.length){handlerQueue.push({elem:this,handlers:handlers.slice(delegateCount)});}
264return handlerQueue;},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(event,original){if(event.which==null){event.which=original.charCode!=null?original.charCode:original.keyCode;}
265return event;}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(event,original){var eventDoc,doc,body,button=original.button;if(event.pageX==null&&original.clientX!=null){eventDoc=event.target.ownerDocument||document;doc=eventDoc.documentElement;body=eventDoc.body;event.pageX=original.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc&&doc.clientLeft||body&&body.clientLeft||0);event.pageY=original.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc&&doc.clientTop||body&&body.clientTop||0);}
266if(!event.which&&button!==undefined){event.which=(button&1?1:(button&2?3:(button&4?2:0)));}
267return event;}},fix:function(event){if(event[jQuery.expando]){return event;}
268var i,prop,copy,type=event.type,originalEvent=event,fixHook=this.fixHooks[type];if(!fixHook){this.fixHooks[type]=fixHook=rmouseEvent.test(type)?this.mouseHooks:rkeyEvent.test(type)?this.keyHooks:{};}
269copy=fixHook.props?this.props.concat(fixHook.props):this.props;event=new jQuery.Event(originalEvent);i=copy.length;while(i--){prop=copy[i];event[prop]=originalEvent[prop];}
270if(!event.target){event.target=document;}
271if(event.target.nodeType===3){event.target=event.target.parentNode;}
272return fixHook.filter?fixHook.filter(event,originalEvent):event;},special:{load:{noBubble:true},focus:{trigger:function(){if(this!==safeActiveElement()&&this.focus){this.focus();return false;}},delegateType:"focusin"},blur:{trigger:function(){if(this===safeActiveElement()&&this.blur){this.blur();return false;}},delegateType:"focusout"},click:{trigger:function(){if(this.type==="checkbox"&&this.click&&jQuery.nodeName(this,"input")){this.click();return false;}},_default:function(event){return jQuery.nodeName(event.target,"a");}},beforeunload:{postDispatch:function(event){if(event.result!==undefined&&event.originalEvent){event.originalEvent.returnValue=event.result;}}}},simulate:function(type,elem,event,bubble){var e=jQuery.extend(new jQuery.Event(),event,{type:type,isSimulated:true,originalEvent:{}});if(bubble){jQuery.event.trigger(e,null,elem);}else{jQuery.event.dispatch.call(elem,e);}
273if(e.isDefaultPrevented()){event.preventDefault();}}};jQuery.removeEvent=function(elem,type,handle){if(elem.removeEventListener){elem.removeEventListener(type,handle,false);}};jQuery.Event=function(src,props){if(!(this instanceof jQuery.Event)){return new jQuery.Event(src,props);}
274if(src&&src.type){this.originalEvent=src;this.type=src.type;this.isDefaultPrevented=src.defaultPrevented||src.defaultPrevented===undefined&&src.returnValue===false?returnTrue:returnFalse;}else{this.type=src;}
275if(props){jQuery.extend(this,props);}
276this.timeStamp=src&&src.timeStamp||jQuery.now();this[jQuery.expando]=true;};jQuery.Event.prototype={isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=returnTrue;if(e&&e.preventDefault){e.preventDefault();}},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=returnTrue;if(e&&e.stopPropagation){e.stopPropagation();}},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=returnTrue;if(e&&e.stopImmediatePropagation){e.stopImmediatePropagation();}
277this.stopPropagation();}};jQuery.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(orig,fix){jQuery.event.special[orig]={delegateType:fix,bindType:fix,handle:function(event){var ret,target=this,related=event.relatedTarget,handleObj=event.handleObj;if(!related||(related!==target&&!jQuery.contains(target,related))){event.type=handleObj.origType;ret=handleObj.handler.apply(this,arguments);event.type=fix;}
278return ret;}};});if(!support.focusinBubbles){jQuery.each({focus:"focusin",blur:"focusout"},function(orig,fix){var handler=function(event){jQuery.event.simulate(fix,event.target,jQuery.event.fix(event),true);};jQuery.event.special[fix]={setup:function(){var doc=this.ownerDocument||this,attaches=data_priv.access(doc,fix);if(!attaches){doc.addEventListener(orig,handler,true);}
279data_priv.access(doc,fix,(attaches||0)+1);},teardown:function(){var doc=this.ownerDocument||this,attaches=data_priv.access(doc,fix)-1;if(!attaches){doc.removeEventListener(orig,handler,true);data_priv.remove(doc,fix);}else{data_priv.access(doc,fix,attaches);}}};});}
280jQuery.fn.extend({on:function(types,selector,data,fn,one){var origFn,type;if(typeof types==="object"){if(typeof selector!=="string"){data=data||selector;selector=undefined;}
281for(type in types){this.on(type,selector,data,types[type],one);}
282return this;}
283if(data==null&&fn==null){fn=selector;data=selector=undefined;}else if(fn==null){if(typeof selector==="string"){fn=data;data=undefined;}else{fn=data;data=selector;selector=undefined;}}
284if(fn===false){fn=returnFalse;}else if(!fn){return this;}
285if(one===1){origFn=fn;fn=function(event){jQuery().off(event);return origFn.apply(this,arguments);};fn.guid=origFn.guid||(origFn.guid=jQuery.guid++);}
286return this.each(function(){jQuery.event.add(this,types,fn,data,selector);});},one:function(types,selector,data,fn){return this.on(types,selector,data,fn,1);},off:function(types,selector,fn){var handleObj,type;if(types&&types.preventDefault&&types.handleObj){handleObj=types.handleObj;jQuery(types.delegateTarget).off(handleObj.namespace?handleObj.origType+"."+handleObj.namespace:handleObj.origType,handleObj.selector,handleObj.handler);return this;}
287if(typeof types==="object"){for(type in types){this.off(type,selector,types[type]);}
288return this;}
289if(selector===false||typeof selector==="function"){fn=selector;selector=undefined;}
290if(fn===false){fn=returnFalse;}
291return this.each(function(){jQuery.event.remove(this,types,fn,selector);});},trigger:function(type,data){return this.each(function(){jQuery.event.trigger(type,data,this);});},triggerHandler:function(type,data){var elem=this[0];if(elem){return jQuery.event.trigger(type,data,elem,true);}}});var
292rxhtmlTag=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,rtagName=/<([\w:]+)/,rhtml=/<|&#?\w+;/,rnoInnerhtml=/<(?:script|style|link)/i,rchecked=/checked\s*(?:[^=]|=\s*.checked.)/i,rscriptType=/^$|\/(?:java|ecma)script/i,rscriptTypeMasked=/^true\/(.*)/,rcleanScript=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,wrapMap={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};wrapMap.optgroup=wrapMap.option;wrapMap.tbody=wrapMap.tfoot=wrapMap.colgroup=wrapMap.caption=wrapMap.thead;wrapMap.th=wrapMap.td;function manipulationTarget(elem,content){return jQuery.nodeName(elem,"table")&&jQuery.nodeName(content.nodeType!==11?content:content.firstChild,"tr")?elem.getElementsByTagName("tbody")[0]||elem.appendChild(elem.ownerDocument.createElement("tbody")):elem;}
293function disableScript(elem){elem.type=(elem.getAttribute("type")!==null)+"/"+elem.type;return elem;}
294function restoreScript(elem){var match=rscriptTypeMasked.exec(elem.type);if(match){elem.type=match[1];}else{elem.removeAttribute("type");}
295return elem;}
296function setGlobalEval(elems,refElements){var i=0,l=elems.length;for(;i<l;i++){data_priv.set(elems[i],"globalEval",!refElements||data_priv.get(refElements[i],"globalEval"));}}
297function cloneCopyEvent(src,dest){var i,l,type,pdataOld,pdataCur,udataOld,udataCur,events;if(dest.nodeType!==1){return;}
298if(data_priv.hasData(src)){pdataOld=data_priv.access(src);pdataCur=data_priv.set(dest,pdataOld);events=pdataOld.events;if(events){delete pdataCur.handle;pdataCur.events={};for(type in events){for(i=0,l=events[type].length;i<l;i++){jQuery.event.add(dest,type,events[type][i]);}}}}
299if(data_user.hasData(src)){udataOld=data_user.access(src);udataCur=jQuery.extend({},udataOld);data_user.set(dest,udataCur);}}
300function getAll(context,tag){var ret=context.getElementsByTagName?context.getElementsByTagName(tag||"*"):context.querySelectorAll?context.querySelectorAll(tag||"*"):[];return tag===undefined||tag&&jQuery.nodeName(context,tag)?jQuery.merge([context],ret):ret;}
301function fixInput(src,dest){var nodeName=dest.nodeName.toLowerCase();if(nodeName==="input"&&rcheckableType.test(src.type)){dest.checked=src.checked;}else if(nodeName==="input"||nodeName==="textarea"){dest.defaultValue=src.defaultValue;}}
302jQuery.extend({clone:function(elem,dataAndEvents,deepDataAndEvents){var i,l,srcElements,destElements,clone=elem.cloneNode(true),inPage=jQuery.contains(elem.ownerDocument,elem);if(!support.noCloneChecked&&(elem.nodeType===1||elem.nodeType===11)&&!jQuery.isXMLDoc(elem)){destElements=getAll(clone);srcElements=getAll(elem);for(i=0,l=srcElements.length;i<l;i++){fixInput(srcElements[i],destElements[i]);}}
303if(dataAndEvents){if(deepDataAndEvents){srcElements=srcElements||getAll(elem);destElements=destElements||getAll(clone);for(i=0,l=srcElements.length;i<l;i++){cloneCopyEvent(srcElements[i],destElements[i]);}}else{cloneCopyEvent(elem,clone);}}
304destElements=getAll(clone,"script");if(destElements.length>0){setGlobalEval(destElements,!inPage&&getAll(elem,"script"));}
305return clone;},buildFragment:function(elems,context,scripts,selection){var elem,tmp,tag,wrap,contains,j,fragment=context.createDocumentFragment(),nodes=[],i=0,l=elems.length;for(;i<l;i++){elem=elems[i];if(elem||elem===0){if(jQuery.type(elem)==="object"){jQuery.merge(nodes,elem.nodeType?[elem]:elem);}else if(!rhtml.test(elem)){nodes.push(context.createTextNode(elem));}else{tmp=tmp||fragment.appendChild(context.createElement("div"));tag=(rtagName.exec(elem)||["",""])[1].toLowerCase();wrap=wrapMap[tag]||wrapMap._default;tmp.innerHTML=wrap[1]+elem.replace(rxhtmlTag,"<$1></$2>")+wrap[2];j=wrap[0];while(j--){tmp=tmp.lastChild;}
306jQuery.merge(nodes,tmp.childNodes);tmp=fragment.firstChild;tmp.textContent="";}}}
307fragment.textContent="";i=0;while((elem=nodes[i++])){if(selection&&jQuery.inArray(elem,selection)!==-1){continue;}
308contains=jQuery.contains(elem.ownerDocument,elem);tmp=getAll(fragment.appendChild(elem),"script");if(contains){setGlobalEval(tmp);}
309if(scripts){j=0;while((elem=tmp[j++])){if(rscriptType.test(elem.type||"")){scripts.push(elem);}}}}
310return fragment;},cleanData:function(elems){var data,elem,type,key,special=jQuery.event.special,i=0;for(;(elem=elems[i])!==undefined;i++){if(jQuery.acceptData(elem)){key=elem[data_priv.expando];if(key&&(data=data_priv.cache[key])){if(data.events){for(type in data.events){if(special[type]){jQuery.event.remove(elem,type);}else{jQuery.removeEvent(elem,type,data.handle);}}}
311if(data_priv.cache[key]){delete data_priv.cache[key];}}}
312delete data_user.cache[elem[data_user.expando]];}}});jQuery.fn.extend({text:function(value){return access(this,function(value){return value===undefined?jQuery.text(this):this.empty().each(function(){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){this.textContent=value;}});},null,value,arguments.length);},append:function(){return this.domManip(arguments,function(elem){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var target=manipulationTarget(this,elem);target.appendChild(elem);}});},prepend:function(){return this.domManip(arguments,function(elem){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var target=manipulationTarget(this,elem);target.insertBefore(elem,target.firstChild);}});},before:function(){return this.domManip(arguments,function(elem){if(this.parentNode){this.parentNode.insertBefore(elem,this);}});},after:function(){return this.domManip(arguments,function(elem){if(this.parentNode){this.parentNode.insertBefore(elem,this.nextSibling);}});},remove:function(selector,keepData){var elem,elems=selector?jQuery.filter(selector,this):this,i=0;for(;(elem=elems[i])!=null;i++){if(!keepData&&elem.nodeType===1){jQuery.cleanData(getAll(elem));}
313if(elem.parentNode){if(keepData&&jQuery.contains(elem.ownerDocument,elem)){setGlobalEval(getAll(elem,"script"));}
314elem.parentNode.removeChild(elem);}}
315return this;},empty:function(){var elem,i=0;for(;(elem=this[i])!=null;i++){if(elem.nodeType===1){jQuery.cleanData(getAll(elem,false));elem.textContent="";}}
316return this;},clone:function(dataAndEvents,deepDataAndEvents){dataAndEvents=dataAndEvents==null?false:dataAndEvents;deepDataAndEvents=deepDataAndEvents==null?dataAndEvents:deepDataAndEvents;return this.map(function(){return jQuery.clone(this,dataAndEvents,deepDataAndEvents);});},html:function(value){return access(this,function(value){var elem=this[0]||{},i=0,l=this.length;if(value===undefined&&elem.nodeType===1){return elem.innerHTML;}
317if(typeof value==="string"&&!rnoInnerhtml.test(value)&&!wrapMap[(rtagName.exec(value)||["",""])[1].toLowerCase()]){value=value.replace(rxhtmlTag,"<$1></$2>");try{for(;i<l;i++){elem=this[i]||{};if(elem.nodeType===1){jQuery.cleanData(getAll(elem,false));elem.innerHTML=value;}}
318elem=0;}catch(e){}}
319if(elem){this.empty().append(value);}},null,value,arguments.length);},replaceWith:function(){var arg=arguments[0];this.domManip(arguments,function(elem){arg=this.parentNode;jQuery.cleanData(getAll(this));if(arg){arg.replaceChild(elem,this);}});return arg&&(arg.length||arg.nodeType)?this:this.remove();},detach:function(selector){return this.remove(selector,true);},domManip:function(args,callback){args=concat.apply([],args);var fragment,first,scripts,hasScripts,node,doc,i=0,l=this.length,set=this,iNoClone=l-1,value=args[0],isFunction=jQuery.isFunction(value);if(isFunction||(l>1&&typeof value==="string"&&!support.checkClone&&rchecked.test(value))){return this.each(function(index){var self=set.eq(index);if(isFunction){args[0]=value.call(this,index,self.html());}
320self.domManip(args,callback);});}
321if(l){fragment=jQuery.buildFragment(args,this[0].ownerDocument,false,this);first=fragment.firstChild;if(fragment.childNodes.length===1){fragment=first;}
322if(first){scripts=jQuery.map(getAll(fragment,"script"),disableScript);hasScripts=scripts.length;for(;i<l;i++){node=fragment;if(i!==iNoClone){node=jQuery.clone(node,true,true);if(hasScripts){jQuery.merge(scripts,getAll(node,"script"));}}
323callback.call(this[i],node,i);}
324if(hasScripts){doc=scripts[scripts.length-1].ownerDocument;jQuery.map(scripts,restoreScript);for(i=0;i<hasScripts;i++){node=scripts[i];if(rscriptType.test(node.type||"")&&!data_priv.access(node,"globalEval")&&jQuery.contains(doc,node)){if(node.src){if(jQuery._evalUrl){jQuery._evalUrl(node.src);}}else{jQuery.globalEval(node.textContent.replace(rcleanScript,""));}}}}}}
325return this;}});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(selector){var elems,ret=[],insert=jQuery(selector),last=insert.length-1,i=0;for(;i<=last;i++){elems=i===last?this:this.clone(true);jQuery(insert[i])[original](elems);push.apply(ret,elems.get());}
326return this.pushStack(ret);};});var iframe,elemdisplay={};function actualDisplay(name,doc){var style,elem=jQuery(doc.createElement(name)).appendTo(doc.body),display=window.getDefaultComputedStyle&&(style=window.getDefaultComputedStyle(elem[0]))?style.display:jQuery.css(elem[0],"display");elem.detach();return display;}
327function defaultDisplay(nodeName){var doc=document,display=elemdisplay[nodeName];if(!display){display=actualDisplay(nodeName,doc);if(display==="none"||!display){iframe=(iframe||jQuery("<iframe frameborder='0' width='0' height='0'/>")).appendTo(doc.documentElement);doc=iframe[0].contentDocument;doc.write();doc.close();display=actualDisplay(nodeName,doc);iframe.detach();}
328elemdisplay[nodeName]=display;}
329return display;}
330var rmargin=(/^margin/);var rnumnonpx=new RegExp("^("+pnum+")(?!px)[a-z%]+$","i");var getStyles=function(elem){if(elem.ownerDocument.defaultView.opener){return elem.ownerDocument.defaultView.getComputedStyle(elem,null);}
331return window.getComputedStyle(elem,null);};function curCSS(elem,name,computed){var width,minWidth,maxWidth,ret,style=elem.style;computed=computed||getStyles(elem);if(computed){ret=computed.getPropertyValue(name)||computed[name];}
332if(computed){if(ret===""&&!jQuery.contains(elem.ownerDocument,elem)){ret=jQuery.style(elem,name);}
333if(rnumnonpx.test(ret)&&rmargin.test(name)){width=style.width;minWidth=style.minWidth;maxWidth=style.maxWidth;style.minWidth=style.maxWidth=style.width=ret;ret=computed.width;style.width=width;style.minWidth=minWidth;style.maxWidth=maxWidth;}}
334return ret!==undefined?ret+"":ret;}
335function addGetHookIf(conditionFn,hookFn){return{get:function(){if(conditionFn()){delete this.get;return;}
336return(this.get=hookFn).apply(this,arguments);}};}
337(function(){var pixelPositionVal,boxSizingReliableVal,docElem=document.documentElement,container=document.createElement("div"),div=document.createElement("div");if(!div.style){return;}
338div.style.backgroundClip="content-box";div.cloneNode(true).style.backgroundClip="";support.clearCloneStyle=div.style.backgroundClip==="content-box";container.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;"+"position:absolute";container.appendChild(div);function computePixelPositionAndBoxSizingReliable(){div.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;"+"box-sizing:border-box;display:block;margin-top:1%;top:1%;"+"border:1px;padding:1px;width:4px;position:absolute";div.innerHTML="";docElem.appendChild(container);var divStyle=window.getComputedStyle(div,null);pixelPositionVal=divStyle.top!=="1%";boxSizingReliableVal=divStyle.width==="4px";docElem.removeChild(container);}
339if(window.getComputedStyle){jQuery.extend(support,{pixelPosition:function(){computePixelPositionAndBoxSizingReliable();return pixelPositionVal;},boxSizingReliable:function(){if(boxSizingReliableVal==null){computePixelPositionAndBoxSizingReliable();}
340return boxSizingReliableVal;},reliableMarginRight:function(){var ret,marginDiv=div.appendChild(document.createElement("div"));marginDiv.style.cssText=div.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;"+"box-sizing:content-box;display:block;margin:0;border:0;padding:0";marginDiv.style.marginRight=marginDiv.style.width="0";div.style.width="1px";docElem.appendChild(container);ret=!parseFloat(window.getComputedStyle(marginDiv,null).marginRight);docElem.removeChild(container);div.removeChild(marginDiv);return ret;}});}})();jQuery.swap=function(elem,options,callback,args){var ret,name,old={};for(name in options){old[name]=elem.style[name];elem.style[name]=options[name];}
341ret=callback.apply(elem,args||[]);for(name in options){elem.style[name]=old[name];}
342return ret;};var
343rdisplayswap=/^(none|table(?!-c[ea]).+)/,rnumsplit=new RegExp("^("+pnum+")(.*)$","i"),rrelNum=new RegExp("^([+-])=("+pnum+")","i"),cssShow={position:"absolute",visibility:"hidden",display:"block"},cssNormalTransform={letterSpacing:"0",fontWeight:"400"},cssPrefixes=["Webkit","O","Moz","ms"];function vendorPropName(style,name){if(name in style){return name;}
344var capName=name[0].toUpperCase()+name.slice(1),origName=name,i=cssPrefixes.length;while(i--){name=cssPrefixes[i]+capName;if(name in style){return name;}}
345return origName;}
346function setPositiveNumber(elem,value,subtract){var matches=rnumsplit.exec(value);return matches?Math.max(0,matches[1]-(subtract||0))+(matches[2]||"px"):value;}
347function augmentWidthOrHeight(elem,name,extra,isBorderBox,styles){var i=extra===(isBorderBox?"border":"content")?4:name==="width"?1:0,val=0;for(;i<4;i+=2){if(extra==="margin"){val+=jQuery.css(elem,extra+cssExpand[i],true,styles);}
348if(isBorderBox){if(extra==="content"){val-=jQuery.css(elem,"padding"+cssExpand[i],true,styles);}
349if(extra!=="margin"){val-=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles);}}else{val+=jQuery.css(elem,"padding"+cssExpand[i],true,styles);if(extra!=="padding"){val+=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles);}}}
350return val;}
351function getWidthOrHeight(elem,name,extra){var valueIsBorderBox=true,val=name==="width"?elem.offsetWidth:elem.offsetHeight,styles=getStyles(elem),isBorderBox=jQuery.css(elem,"boxSizing",false,styles)==="border-box";if(val<=0||val==null){val=curCSS(elem,name,styles);if(val<0||val==null){val=elem.style[name];}
352if(rnumnonpx.test(val)){return val;}
353valueIsBorderBox=isBorderBox&&(support.boxSizingReliable()||val===elem.style[name]);val=parseFloat(val)||0;}
354return(val+
355augmentWidthOrHeight(elem,name,extra||(isBorderBox?"border":"content"),valueIsBorderBox,styles))+"px";}
356function showHide(elements,show){var display,elem,hidden,values=[],index=0,length=elements.length;for(;index<length;index++){elem=elements[index];if(!elem.style){continue;}
357values[index]=data_priv.get(elem,"olddisplay");display=elem.style.display;if(show){if(!values[index]&&display==="none"){elem.style.display="";}
358if(elem.style.display===""&&isHidden(elem)){values[index]=data_priv.access(elem,"olddisplay",defaultDisplay(elem.nodeName));}}else{hidden=isHidden(elem);if(display!=="none"||!hidden){data_priv.set(elem,"olddisplay",hidden?display:jQuery.css(elem,"display"));}}}
359for(index=0;index<length;index++){elem=elements[index];if(!elem.style){continue;}
360if(!show||elem.style.display==="none"||elem.style.display===""){elem.style.display=show?values[index]||"":"none";}}
361return elements;}
362jQuery.extend({cssHooks:{opacity:{get:function(elem,computed){if(computed){var ret=curCSS(elem,"opacity");return ret===""?"1":ret;}}}},cssNumber:{"columnCount":true,"fillOpacity":true,"flexGrow":true,"flexShrink":true,"fontWeight":true,"lineHeight":true,"opacity":true,"order":true,"orphans":true,"widows":true,"zIndex":true,"zoom":true},cssProps:{"float":"cssFloat"},style:function(elem,name,value,extra){if(!elem||elem.nodeType===3||elem.nodeType===8||!elem.style){return;}
363var ret,type,hooks,origName=jQuery.camelCase(name),style=elem.style;name=jQuery.cssProps[origName]||(jQuery.cssProps[origName]=vendorPropName(style,origName));hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName];if(value!==undefined){type=typeof value;if(type==="string"&&(ret=rrelNum.exec(value))){value=(ret[1]+1)*ret[2]+parseFloat(jQuery.css(elem,name));type="number";}
364if(value==null||value!==value){return;}
365if(type==="number"&&!jQuery.cssNumber[origName]){value+="px";}
366if(!support.clearCloneStyle&&value===""&&name.indexOf("background")===0){style[name]="inherit";}
367if(!hooks||!("set"in hooks)||(value=hooks.set(elem,value,extra))!==undefined){style[name]=value;}}else{if(hooks&&"get"in hooks&&(ret=hooks.get(elem,false,extra))!==undefined){return ret;}
368return style[name];}},css:function(elem,name,extra,styles){var val,num,hooks,origName=jQuery.camelCase(name);name=jQuery.cssProps[origName]||(jQuery.cssProps[origName]=vendorPropName(elem.style,origName));hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName];if(hooks&&"get"in hooks){val=hooks.get(elem,true,extra);}
369if(val===undefined){val=curCSS(elem,name,styles);}
370if(val==="normal"&&name in cssNormalTransform){val=cssNormalTransform[name];}
371if(extra===""||extra){num=parseFloat(val);return extra===true||jQuery.isNumeric(num)?num||0:val;}
372return val;}});jQuery.each(["height","width"],function(i,name){jQuery.cssHooks[name]={get:function(elem,computed,extra){if(computed){return rdisplayswap.test(jQuery.css(elem,"display"))&&elem.offsetWidth===0?jQuery.swap(elem,cssShow,function(){return getWidthOrHeight(elem,name,extra);}):getWidthOrHeight(elem,name,extra);}},set:function(elem,value,extra){var styles=extra&&getStyles(elem);return setPositiveNumber(elem,value,extra?augmentWidthOrHeight(elem,name,extra,jQuery.css(elem,"boxSizing",false,styles)==="border-box",styles):0);}};});jQuery.cssHooks.marginRight=addGetHookIf(support.reliableMarginRight,function(elem,computed){if(computed){return jQuery.swap(elem,{"display":"inline-block"},curCSS,[elem,"marginRight"]);}});jQuery.each({margin:"",padding:"",border:"Width"},function(prefix,suffix){jQuery.cssHooks[prefix+suffix]={expand:function(value){var i=0,expanded={},parts=typeof value==="string"?value.split(" "):[value];for(;i<4;i++){expanded[prefix+cssExpand[i]+suffix]=parts[i]||parts[i-2]||parts[0];}
373return expanded;}};if(!rmargin.test(prefix)){jQuery.cssHooks[prefix+suffix].set=setPositiveNumber;}});jQuery.fn.extend({css:function(name,value){return access(this,function(elem,name,value){var styles,len,map={},i=0;if(jQuery.isArray(name)){styles=getStyles(elem);len=name.length;for(;i<len;i++){map[name[i]]=jQuery.css(elem,name[i],false,styles);}
374return map;}
375return value!==undefined?jQuery.style(elem,name,value):jQuery.css(elem,name);},name,value,arguments.length>1);},show:function(){return showHide(this,true);},hide:function(){return showHide(this);},toggle:function(state){if(typeof state==="boolean"){return state?this.show():this.hide();}
376return this.each(function(){if(isHidden(this)){jQuery(this).show();}else{jQuery(this).hide();}});}});function Tween(elem,options,prop,end,easing){return new Tween.prototype.init(elem,options,prop,end,easing);}
377jQuery.Tween=Tween;Tween.prototype={constructor:Tween,init:function(elem,options,prop,end,easing,unit){this.elem=elem;this.prop=prop;this.easing=easing||"swing";this.options=options;this.start=this.now=this.cur();this.end=end;this.unit=unit||(jQuery.cssNumber[prop]?"":"px");},cur:function(){var hooks=Tween.propHooks[this.prop];return hooks&&hooks.get?hooks.get(this):Tween.propHooks._default.get(this);},run:function(percent){var eased,hooks=Tween.propHooks[this.prop];if(this.options.duration){this.pos=eased=jQuery.easing[this.easing](percent,this.options.duration*percent,0,1,this.options.duration);}else{this.pos=eased=percent;}
378this.now=(this.end-this.start)*eased+this.start;if(this.options.step){this.options.step.call(this.elem,this.now,this);}
379if(hooks&&hooks.set){hooks.set(this);}else{Tween.propHooks._default.set(this);}
380return this;}};Tween.prototype.init.prototype=Tween.prototype;Tween.propHooks={_default:{get:function(tween){var result;if(tween.elem[tween.prop]!=null&&(!tween.elem.style||tween.elem.style[tween.prop]==null)){return tween.elem[tween.prop];}
381result=jQuery.css(tween.elem,tween.prop,"");return!result||result==="auto"?0:result;},set:function(tween){if(jQuery.fx.step[tween.prop]){jQuery.fx.step[tween.prop](tween);}else if(tween.elem.style&&(tween.elem.style[jQuery.cssProps[tween.prop]]!=null||jQuery.cssHooks[tween.prop])){jQuery.style(tween.elem,tween.prop,tween.now+tween.unit);}else{tween.elem[tween.prop]=tween.now;}}}};Tween.propHooks.scrollTop=Tween.propHooks.scrollLeft={set:function(tween){if(tween.elem.nodeType&&tween.elem.parentNode){tween.elem[tween.prop]=tween.now;}}};jQuery.easing={linear:function(p){return p;},swing:function(p){return 0.5-Math.cos(p*Math.PI)/ 2;}};jQuery.fx=Tween.prototype.init;jQuery.fx.step={};var
382fxNow,timerId,rfxtypes=/^(?:toggle|show|hide)$/,rfxnum=new RegExp("^(?:([+-])=|)("+pnum+")([a-z%]*)$","i"),rrun=/queueHooks$/,animationPrefilters=[defaultPrefilter],tweeners={"*":[function(prop,value){var tween=this.createTween(prop,value),target=tween.cur(),parts=rfxnum.exec(value),unit=parts&&parts[3]||(jQuery.cssNumber[prop]?"":"px"),start=(jQuery.cssNumber[prop]||unit!=="px"&&+target)&&rfxnum.exec(jQuery.css(tween.elem,prop)),scale=1,maxIterations=20;if(start&&start[3]!==unit){unit=unit||start[3];parts=parts||[];start=+target||1;do{scale=scale||".5";start=start / scale;jQuery.style(tween.elem,prop,start+unit);}while(scale!==(scale=tween.cur()/ target)&&scale!==1&&--maxIterations);}
383if(parts){start=tween.start=+start||+target||0;tween.unit=unit;tween.end=parts[1]?start+(parts[1]+1)*parts[2]:+parts[2];}
384return tween;}]};function createFxNow(){setTimeout(function(){fxNow=undefined;});return(fxNow=jQuery.now());}
385function genFx(type,includeWidth){var which,i=0,attrs={height:type};includeWidth=includeWidth?1:0;for(;i<4;i+=2-includeWidth){which=cssExpand[i];attrs["margin"+which]=attrs["padding"+which]=type;}
386if(includeWidth){attrs.opacity=attrs.width=type;}
387return attrs;}
388function createTween(value,prop,animation){var tween,collection=(tweeners[prop]||[]).concat(tweeners["*"]),index=0,length=collection.length;for(;index<length;index++){if((tween=collection[index].call(animation,prop,value))){return tween;}}}
389function defaultPrefilter(elem,props,opts){var prop,value,toggle,tween,hooks,oldfire,display,checkDisplay,anim=this,orig={},style=elem.style,hidden=elem.nodeType&&isHidden(elem),dataShow=data_priv.get(elem,"fxshow");if(!opts.queue){hooks=jQuery._queueHooks(elem,"fx");if(hooks.unqueued==null){hooks.unqueued=0;oldfire=hooks.empty.fire;hooks.empty.fire=function(){if(!hooks.unqueued){oldfire();}};}
390hooks.unqueued++;anim.always(function(){anim.always(function(){hooks.unqueued--;if(!jQuery.queue(elem,"fx").length){hooks.empty.fire();}});});}
391if(elem.nodeType===1&&("height"in props||"width"in props)){opts.overflow=[style.overflow,style.overflowX,style.overflowY];display=jQuery.css(elem,"display");checkDisplay=display==="none"?data_priv.get(elem,"olddisplay")||defaultDisplay(elem.nodeName):display;if(checkDisplay==="inline"&&jQuery.css(elem,"float")==="none"){style.display="inline-block";}}
392if(opts.overflow){style.overflow="hidden";anim.always(function(){style.overflow=opts.overflow[0];style.overflowX=opts.overflow[1];style.overflowY=opts.overflow[2];});}
393for(prop in props){value=props[prop];if(rfxtypes.exec(value)){delete props[prop];toggle=toggle||value==="toggle";if(value===(hidden?"hide":"show")){if(value==="show"&&dataShow&&dataShow[prop]!==undefined){hidden=true;}else{continue;}}
394orig[prop]=dataShow&&dataShow[prop]||jQuery.style(elem,prop);}else{display=undefined;}}
395if(!jQuery.isEmptyObject(orig)){if(dataShow){if("hidden"in dataShow){hidden=dataShow.hidden;}}else{dataShow=data_priv.access(elem,"fxshow",{});}
396if(toggle){dataShow.hidden=!hidden;}
397if(hidden){jQuery(elem).show();}else{anim.done(function(){jQuery(elem).hide();});}
398anim.done(function(){var prop;data_priv.remove(elem,"fxshow");for(prop in orig){jQuery.style(elem,prop,orig[prop]);}});for(prop in orig){tween=createTween(hidden?dataShow[prop]:0,prop,anim);if(!(prop in dataShow)){dataShow[prop]=tween.start;if(hidden){tween.end=tween.start;tween.start=prop==="width"||prop==="height"?1:0;}}}}else if((display==="none"?defaultDisplay(elem.nodeName):display)==="inline"){style.display=display;}}
399function propFilter(props,specialEasing){var index,name,easing,value,hooks;for(index in props){name=jQuery.camelCase(index);
vendor: 4,165 bytes, lines 399-413
399easing=specialEasing[name];value=props[index];if(jQuery.isArray(value)){easing=value[1];value=props[index]=value[0];}
400if(index!==name){props[name]=value;delete props[index];}
401hooks=jQuery.cssHooks[name];if(hooks&&"expand"in hooks){value=hooks.expand(value);delete props[name];for(index in value){if(!(index in props)){props[index]=value[index];specialEasing[index]=easing;}}}else{specialEasing[name]=easing;}}}
402function Animation(elem,properties,options){var result,stopped,index=0,length=animationPrefilters.length,deferred=jQuery.Deferred().always(function(){delete tick.elem;}),tick=function(){if(stopped){return false;}
403var currentTime=fxNow||createFxNow(),remaining=Math.max(0,animation.startTime+animation.duration-currentTime),temp=remaining / animation.duration||0,percent=1-temp,index=0,length=animation.tweens.length;for(;index<length;index++){animation.tweens[index].run(percent);}
404deferred.notifyWith(elem,[animation,percent,remaining]);if(percent<1&&length){return remaining;}else{deferred.resolveWith(elem,[animation]);return false;}},animation=deferred.promise({elem:elem,props:jQuery.extend({},properties),opts:jQuery.extend(true,{specialEasing:{}},options),originalProperties:properties,originalOptions:options,startTime:fxNow||createFxNow(),duration:options.duration,tweens:[],createTween:function(prop,end){var tween=jQuery.Tween(elem,animation.opts,prop,end,animation.opts.specialEasing[prop]||animation.opts.easing);animation.tweens.push(tween);return tween;},stop:function(gotoEnd){var index=0,length=gotoEnd?animation.tweens.length:0;if(stopped){return this;}
405stopped=true;for(;index<length;index++){animation.tweens[index].run(1);}
406if(gotoEnd){deferred.resolveWith(elem,[animation,gotoEnd]);}else{deferred.rejectWith(elem,[animation,gotoEnd]);}
407return this;}}),props=animation.props;propFilter(props,animation.opts.specialEasing);for(;index<length;index++){result=animationPrefilters[index].call(animation,elem,props,animation.opts);if(result){return result;}}
408jQuery.map(props,createTween,animation);if(jQuery.isFunction(animation.opts.start)){animation.opts.start.call(elem,animation);}
409jQuery.fx.timer(jQuery.extend(tick,{elem:elem,anim:animation,queue:animation.opts.queue}));return animation.progress(animation.opts.progress).done(animation.opts.done,animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);}
410jQuery.Animation=jQuery.extend(Animation,{tweener:function(props,callback){if(jQuery.isFunction(props)){callback=props;props=["*"];}else{props=props.split(" ");}
411var prop,index=0,length=props.length;for(;index<length;index++){prop=props[index];tweeners[prop]=tweeners[prop]||[];tweeners[prop].unshift(callback);}},prefilter:function(callback,prepend){if(prepend){animationPrefilters.unshift(callback);}else{animationPrefilters.push(callback);}}});jQuery.speed=function(speed,easing,fn){var opt=speed&&typeof speed==="object"?jQuery.extend({},speed):{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&!jQuery.isFunction(easing)&&easing};opt.duration=jQuery.fx.off?0:typeof opt.duration==="number"?opt.duration:opt.duration in jQuery.fx.speeds?jQuery.fx.speeds[opt.duration]:jQuery.fx.speeds._default;if(opt.queue==null||opt.queue===true){opt.queue="fx";}
412opt.old=opt.complete;opt.complete=function(){if(jQuery.isFunction(opt.old)){opt.old.call(this);}
413if(opt.queue){jQuery.dequeue(this,opt.queue);}};return opt;};jQuery.fn.extend({fadeTo:function(speed,to,easing,callback){return this.filter(isHidden).css("opacity",0).show().end().animate({opacity:to},speed,easing,callback);},animate:function(prop,speed,easing,callback){var empty=jQuery.isEmptyObject(prop),optall=jQuery.speed(speed,easing,callback),doAnimation=function(){var anim=Animation(this,jQuery.extend({},prop),optall);if(empty||data_priv.get(this,"finish")){anim.stop(true);}};doAnimation.finish=doAnimation;return empty||optall.queue===false?this.each(doAnimation):this.queue(optall.queue,doAnimation);},stop:function(type,clearQueue,gotoEnd){var stopQueue=function(hooks){var stop=hooks.stop;delete hooks.stop;stop(gotoEnd);};if(typeof type!=="string"){gotoEnd=clearQueue;clearQueue=type;
vendor: 10,773 bytes, lines 413-454
413type=undefined;}
414if(clearQueue&&type!==false){this.queue(type||"fx",[]);}
415return this.each(function(){var dequeue=true,index=type!=null&&type+"queueHooks",timers=jQuery.timers,data=data_priv.get(this);if(index){if(data[index]&&data[index].stop){stopQueue(data[index]);}}else{for(index in data){if(data[index]&&data[index].stop&&rrun.test(index)){stopQueue(data[index]);}}}
416for(index=timers.length;index--;){if(timers[index].elem===this&&(type==null||timers[index].queue===type)){timers[index].anim.stop(gotoEnd);dequeue=false;timers.splice(index,1);}}
417if(dequeue||!gotoEnd){jQuery.dequeue(this,type);}});},finish:function(type){if(type!==false){type=type||"fx";}
418return this.each(function(){var index,data=data_priv.get(this),queue=data[type+"queue"],hooks=data[type+"queueHooks"],timers=jQuery.timers,length=queue?queue.length:0;data.finish=true;jQuery.queue(this,type,[]);if(hooks&&hooks.stop){hooks.stop.call(this,true);}
419for(index=timers.length;index--;){if(timers[index].elem===this&&timers[index].queue===type){timers[index].anim.stop(true);timers.splice(index,1);}}
420for(index=0;index<length;index++){if(queue[index]&&queue[index].finish){queue[index].finish.call(this);}}
421delete data.finish;});}});jQuery.each(["toggle","show","hide"],function(i,name){var cssFn=jQuery.fn[name];jQuery.fn[name]=function(speed,easing,callback){return speed==null||typeof speed==="boolean"?cssFn.apply(this,arguments):this.animate(genFx(name,true),speed,easing,callback);};});jQuery.each({slideDown:genFx("show"),slideUp:genFx("hide"),slideToggle:genFx("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(name,props){jQuery.fn[name]=function(speed,easing,callback){return this.animate(props,speed,easing,callback);};});jQuery.timers=[];jQuery.fx.tick=function(){var timer,i=0,timers=jQuery.timers;fxNow=jQuery.now();for(;i<timers.length;i++){timer=timers[i];if(!timer()&&timers[i]===timer){timers.splice(i--,1);}}
422if(!timers.length){jQuery.fx.stop();}
423fxNow=undefined;};jQuery.fx.timer=function(timer){jQuery.timers.push(timer);if(timer()){jQuery.fx.start();}else{jQuery.timers.pop();}};jQuery.fx.interval=13;jQuery.fx.start=function(){if(!timerId){timerId=setInterval(jQuery.fx.tick,jQuery.fx.interval);}};jQuery.fx.stop=function(){clearInterval(timerId);timerId=null;};jQuery.fx.speeds={slow:600,fast:200,_default:400};jQuery.fn.delay=function(time,type){time=jQuery.fx?jQuery.fx.speeds[time]||time:time;type=type||"fx";return this.queue(type,function(next,hooks){var timeout=setTimeout(next,time);hooks.stop=function(){clearTimeout(timeout);};});};(function(){var input=document.createElement("input"),select=document.createElement("select"),opt=select.appendChild(document.createElement("option"));input.type="checkbox";support.checkOn=input.value!=="";support.optSelected=opt.selected;select.disabled=true;support.optDisabled=!opt.disabled;input=document.createElement("input");input.value="t";input.type="radio";support.radioValue=input.value==="t";})();var nodeHook,boolHook,attrHandle=jQuery.expr.attrHandle;jQuery.fn.extend({attr:function(name,value){return access(this,jQuery.attr,name,value,arguments.length>1);},removeAttr:function(name){return this.each(function(){jQuery.removeAttr(this,name);});}});jQuery.extend({attr:function(elem,name,value){var hooks,ret,nType=elem.nodeType;if(!elem||nType===3||nType===8||nType===2){return;}
424if(typeof elem.getAttribute===strundefined){return jQuery.prop(elem,name,value);}
425if(nType!==1||!jQuery.isXMLDoc(elem)){name=name.toLowerCase();hooks=jQuery.attrHooks[name]||(jQuery.expr.match.bool.test(name)?boolHook:nodeHook);}
426if(value!==undefined){if(value===null){jQuery.removeAttr(elem,name);}else if(hooks&&"set"in hooks&&(ret=hooks.set(elem,value,name))!==undefined){return ret;}else{elem.setAttribute(name,value+"");return value;}}else if(hooks&&"get"in hooks&&(ret=hooks.get(elem,name))!==null){return ret;}else{ret=jQuery.find.attr(elem,name);return ret==null?undefined:ret;}},removeAttr:function(elem,value){var name,propName,i=0,attrNames=value&&value.match(rnotwhite);if(attrNames&&elem.nodeType===1){while((name=attrNames[i++])){propName=jQuery.propFix[name]||name;if(jQuery.expr.match.bool.test(name)){elem[propName]=false;}
427elem.removeAttribute(name);}}},attrHooks:{type:{set:function(elem,value){if(!support.radioValue&&value==="radio"&&jQuery.nodeName(elem,"input")){var val=elem.value;elem.setAttribute("type",value);if(val){elem.value=val;}
428return value;}}}}});boolHook={set:function(elem,value,name){if(value===false){jQuery.removeAttr(elem,name);}else{elem.setAttribute(name,name);}
429return name;}};jQuery.each(jQuery.expr.match.bool.source.match(/\w+/g),function(i,name){var getter=attrHandle[name]||jQuery.find.attr;attrHandle[name]=function(elem,name,isXML){var ret,handle;if(!isXML){handle=attrHandle[name];attrHandle[name]=ret;ret=getter(elem,name,isXML)!=null?name.toLowerCase():null;attrHandle[name]=handle;}
430return ret;};});var rfocusable=/^(?:input|select|textarea|button)$/i;jQuery.fn.extend({prop:function(name,value){return access(this,jQuery.prop,name,value,arguments.length>1);},removeProp:function(name){return this.each(function(){delete this[jQuery.propFix[name]||name];});}});jQuery.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(elem,name,value){var ret,hooks,notxml,nType=elem.nodeType;if(!elem||nType===3||nType===8||nType===2){return;}
431notxml=nType!==1||!jQuery.isXMLDoc(elem);if(notxml){name=jQuery.propFix[name]||name;hooks=jQuery.propHooks[name];}
432if(value!==undefined){return hooks&&"set"in hooks&&(ret=hooks.set(elem,value,name))!==undefined?ret:(elem[name]=value);}else{return hooks&&"get"in hooks&&(ret=hooks.get(elem,name))!==null?ret:elem[name];}},propHooks:{tabIndex:{get:function(elem){return elem.hasAttribute("tabindex")||rfocusable.test(elem.nodeName)||elem.href?elem.tabIndex:-1;}}}});if(!support.optSelected){jQuery.propHooks.selected={get:function(elem){var parent=elem.parentNode;if(parent&&parent.parentNode){parent.parentNode.selectedIndex;}
433return null;}};}
434jQuery.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){jQuery.propFix[this.toLowerCase()]=this;});var rclass=/[\t\r\n\f]/g;jQuery.fn.extend({addClass:function(value){var classes,elem,cur,clazz,j,finalValue,proceed=typeof value==="string"&&value,i=0,len=this.length;if(jQuery.isFunction(value)){return this.each(function(j){jQuery(this).addClass(value.call(this,j,this.className));});}
435if(proceed){classes=(value||"").match(rnotwhite)||[];for(;i<len;i++){elem=this[i];cur=elem.nodeType===1&&(elem.className?(" "+elem.className+" ").replace(rclass," "):" ");if(cur){j=0;while((clazz=classes[j++])){if(cur.indexOf(" "+clazz+" ")<0){cur+=clazz+" ";}}
436finalValue=jQuery.trim(cur);if(elem.className!==finalValue){elem.className=finalValue;}}}}
437return this;},removeClass:function(value){var classes,elem,cur,clazz,j,finalValue,proceed=arguments.length===0||typeof value==="string"&&value,i=0,len=this.length;if(jQuery.isFunction(value)){return this.each(function(j){jQuery(this).removeClass(value.call(this,j,this.className));});}
438if(proceed){classes=(value||"").match(rnotwhite)||[];for(;i<len;i++){elem=this[i];cur=elem.nodeType===1&&(elem.className?(" "+elem.className+" ").replace(rclass," "):"");if(cur){j=0;while((clazz=classes[j++])){while(cur.indexOf(" "+clazz+" ")>=0){cur=cur.replace(" "+clazz+" "," ");}}
439finalValue=value?jQuery.trim(cur):"";if(elem.className!==finalValue){elem.className=finalValue;}}}}
440return this;},toggleClass:function(value,stateVal){var type=typeof value;if(typeof stateVal==="boolean"&&type==="string"){return stateVal?this.addClass(value):this.removeClass(value);}
441if(jQuery.isFunction(value)){return this.each(function(i){jQuery(this).toggleClass(value.call(this,i,this.className,stateVal),stateVal);});}
442return this.each(function(){if(type==="string"){var className,i=0,self=jQuery(this),classNames=value.match(rnotwhite)||[];while((className=classNames[i++])){if(self.hasClass(className)){self.removeClass(className);}else{self.addClass(className);}}}else if(type===strundefined||type==="boolean"){if(this.className){data_priv.set(this,"__className__",this.className);}
443this.className=this.className||value===false?"":data_priv.get(this,"__className__")||"";}});},hasClass:function(selector){var className=" "+selector+" ",i=0,l=this.length;for(;i<l;i++){if(this[i].nodeType===1&&(" "+this[i].className+" ").replace(rclass," ").indexOf(className)>=0){return true;}}
444return false;}});var rreturn=/\r/g;jQuery.fn.extend({val:function(value){var hooks,ret,isFunction,elem=this[0];if(!arguments.length){if(elem){hooks=jQuery.valHooks[elem.type]||jQuery.valHooks[elem.nodeName.toLowerCase()];if(hooks&&"get"in hooks&&(ret=hooks.get(elem,"value"))!==undefined){return ret;}
445ret=elem.value;return typeof ret==="string"?ret.replace(rreturn,""):ret==null?"":ret;}
446return;}
447isFunction=jQuery.isFunction(value);return this.each(function(i){var val;if(this.nodeType!==1){return;}
448if(isFunction){val=value.call(this,i,jQuery(this).val());}else{val=value;}
449if(val==null){val="";}else if(typeof val==="number"){val+="";}else if(jQuery.isArray(val)){val=jQuery.map(val,function(value){return value==null?"":value+"";});}
450hooks=jQuery.valHooks[this.type]||jQuery.valHooks[this.nodeName.toLowerCase()];if(!hooks||!("set"in hooks)||hooks.set(this,val,"value")===undefined){this.value=val;}});}});jQuery.extend({valHooks:{option:{get:function(elem){var val=jQuery.find.attr(elem,"value");return val!=null?val:jQuery.trim(jQuery.text(elem));}},select:{get:function(elem){var value,option,options=elem.options,index=elem.selectedIndex,one=elem.type==="select-one"||index<0,values=one?null:[],max=one?index+1:options.length,i=index<0?max:one?index:0;for(;i<max;i++){option=options[i];if((option.selected||i===index)&&(support.optDisabled?!option.disabled:option.getAttribute("disabled")===null)&&(!option.parentNode.disabled||!jQuery.nodeName(option.parentNode,"optgroup"))){value=jQuery(option).val();if(one){return value;}
451values.push(value);}}
452return values;},set:function(elem,value){var optionSet,option,options=elem.options,values=jQuery.makeArray(value),i=options.length;while(i--){option=options[i];if((option.selected=jQuery.inArray(option.value,values)>=0)){optionSet=true;}}
453if(!optionSet){elem.selectedIndex=-1;}
454return values;}}}});jQuery.each(["radio","checkbox"],function(){jQuery.valHooks[this]={set:function(elem,value){if(jQuery.isArray(value)){return(elem.checked=jQuery.inArray(jQuery(elem).val(),value)>=0);}}};if(!support.checkOn){jQuery.valHooks[this].get=function(elem){return elem.getAttribute("value")===null?"on":elem.value;};}});jQuery.each(("blur focus focusin focusout load resize scroll unload click dblclick "+"mou
454sedown mouseup mousemove mouseover mouseout mouseenter mouseleave "+"change select submit keydown keypress keyup error contextmenu").split(" "),function(i,name){jQuery.fn[name]=function(data,fn){return arguments.length>0?this.on(name,null,data,fn):this.trigger(name);};});jQuery.fn.extend({hover:function(fnOver,fnOut){return this.mouseenter(fnOver).mouseleave(fnOut||fnOver);},bind:function(types,data,fn){return this.on(types,null,data,fn);},unbind:function(types,fn){return this.off(types,null,fn);},delegate:function(selector,types,data,fn){return this.on(types,selector,data,fn);},undelegate:function(selector,types,fn){return arguments.length===1?this.off(selector,"**"):this.off(types,selector||"**",fn);}});var nonce=jQuery.now();var rquery=(/\?/);jQuery.parseJSON=function(data){return JSON.parse(data+"");};jQuery.parseXML=function(data){var xml,tmp;if(!data||typeof data!=="string"){return null;}
455try{tmp=new DOMParser();xml=tmp.parseFromString(data,"text/xml");}catch(e){xml=undefined;}
456if(!xml||xml.getElementsByTagName("parsererror").length){jQuery.error("Invalid XML: "+data);}
457return xml;};var
458rhash=/#.*$/,rts=/([?&])_=[^&]*/,rheaders=/^(.*?):[ \t]*([^\r\n]*)$/mg,rlocalProtocol=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,rnoContent=/^(?:GET|HEAD)$/,rprotocol=/^\/\//,rurl=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,prefilters={},transports={},allTypes="*/".concat("*"),ajaxLocation=window.location.href,ajaxLocParts=rurl.exec(ajaxLocation.toLowerCase())||[];function addToPrefiltersOrTransports(structure){return function(dataTypeExpression,func){if(typeof dataTypeExpression!=="str
vendor: 21,697 bytes, lines 458-552
458ing"){func=dataTypeExpression;dataTypeExpression="*";}
459var dataType,i=0,dataTypes=dataTypeExpression.toLowerCase().match(rnotwhite)||[];if(jQuery.isFunction(func)){while((dataType=dataTypes[i++])){if(dataType[0]==="+"){dataType=dataType.slice(1)||"*";(structure[dataType]=structure[dataType]||[]).unshift(func);}else{(structure[dataType]=structure[dataType]||[]).push(func);}}}};}
460function inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR){var inspected={},seekingTransport=(structure===transports);function inspect(dataType){var selected;inspected[dataType]=true;jQuery.each(structure[dataType]||[],function(_,prefilterOrFactory){var dataTypeOrTransport=prefilterOrFactory(options,originalOptions,jqXHR);if(typeof dataTypeOrTransport==="string"&&!seekingTransport&&!inspected[dataTypeOrTransport]){options.dataTypes.unshift(dataTypeOrTransport);inspect(dataTypeOrTransport);return false;}else if(seekingTransport){return!(selected=dataTypeOrTransport);}});return selected;}
461return inspect(options.dataTypes[0])||!inspected["*"]&&inspect("*");}
462function ajaxExtend(target,src){var key,deep,flatOptions=jQuery.ajaxSettings.flatOptions||{};for(key in src){if(src[key]!==undefined){(flatOptions[key]?target:(deep||(deep={})))[key]=src[key];}}
463if(deep){jQuery.extend(true,target,deep);}
464return target;}
465function ajaxHandleResponses(s,jqXHR,responses){var ct,type,finalDataType,firstDataType,contents=s.contents,dataTypes=s.dataTypes;while(dataTypes[0]==="*"){dataTypes.shift();if(ct===undefined){ct=s.mimeType||jqXHR.getResponseHeader("Content-Type");}}
466if(ct){for(type in contents){if(contents[type]&&contents[type].test(ct)){dataTypes.unshift(type);break;}}}
467if(dataTypes[0]in responses){finalDataType=dataTypes[0];}else{for(type in responses){if(!dataTypes[0]||s.converters[type+" "+dataTypes[0]]){finalDataType=type;break;}
468if(!firstDataType){firstDataType=type;}}
469finalDataType=finalDataType||firstDataType;}
470if(finalDataType){if(finalDataType!==dataTypes[0]){dataTypes.unshift(finalDataType);}
471return responses[finalDataType];}}
472function ajaxConvert(s,response,jqXHR,isSuccess){var conv2,current,conv,tmp,prev,converters={},dataTypes=s.dataTypes.slice();if(dataTypes[1]){for(conv in s.converters){converters[conv.toLowerCase()]=s.converters[conv];}}
473current=dataTypes.shift();while(current){if(s.responseFields[current]){jqXHR[s.responseFields[current]]=response;}
474if(!prev&&isSuccess&&s.dataFilter){response=s.dataFilter(response,s.dataType);}
475prev=current;current=dataTypes.shift();if(current){if(current==="*"){current=prev;}else if(prev!=="*"&&prev!==current){conv=converters[prev+" "+current]||converters["* "+current];if(!conv){for(conv2 in converters){tmp=conv2.split(" ");if(tmp[1]===current){conv=converters[prev+" "+tmp[0]]||converters["* "+tmp[0]];if(conv){if(conv===true){conv=converters[conv2];}else if(converters[conv2]!==true){current=tmp[0];dataTypes.unshift(tmp[1]);}
476break;}}}}
477if(conv!==true){if(conv&&s["throws"]){response=conv(response);}else{try{response=conv(response);}catch(e){return{state:"parsererror",error:conv?e:"No conversion from "+prev+" to "+current};}}}}}}
478return{state:"success",data:response};}
479jQuery.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ajaxLocation,type:"GET",isLocal:rlocalProtocol.test(ajaxLocParts[1]),global:true,processData:true,async:true,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":allTypes,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":true,"text json":jQuery.parseJSON,"text xml":jQuery.parseXML},flatOptions:{url:true,context:true}},ajaxSetup:function(target,settings){return settings?ajaxExtend(ajaxExtend(target,jQuery.ajaxSettings),settings):ajaxExtend(jQuery.ajaxSettings,target);},ajaxPrefilter:addToPrefiltersOrTransports(prefilters),ajaxTransport:addToPrefiltersOrTransports(transports),ajax:function(url,options){if(typeof url==="object"){options=url;url=undefined;}
480options=options||{};var transport,cacheURL,responseHeadersString,responseHeaders,timeoutTimer,parts,fireGlobals,i,s=jQuery.ajaxSetup({},options),callbackContext=s.context||s,globalEventContext=s.context&&(callbackContext.nodeType||callbackContext.jquery)?jQuery(callbackContext):jQuery.event,deferred=jQuery.Deferred(),completeDeferred=jQuery.Callbacks("once memory"),statusCode=s.statusCode||{},requestHeaders={},requestHeadersNames={},state=0,strAbort="canceled",jqXHR={readyState:0,getResponseHeader:function(key){var match;if(state===2){if(!responseHeaders){responseHeaders={};while((match=rheaders.exec(responseHeadersString))){responseHeaders[match[1].toLowerCase()]=match[2];}}
481match=responseHeaders[key.toLowerCase()];}
482return match==null?null:match;},getAllResponseHeaders:function(){return state===2?responseHeadersString:null;},setRequestHeader:function(name,value){var lname=name.toLowerCase();if(!state){name=requestHeadersNames[lname]=requestHeadersNames[lname]||name;requestHeaders[name]=value;}
483return this;},overrideMimeType:function(type){if(!state){s.mimeType=type;}
484return this;},statusCode:function(map){var code;if(map){if(state<2){for(code in map){statusCode[code]=[statusCode[code],map[code]];}}else{jqXHR.always(map[jqXHR.status]);}}
485return this;},abort:function(statusText){var finalText=statusText||strAbort;if(transport){transport.abort(finalText);}
486done(0,finalText);return this;}};deferred.promise(jqXHR).complete=completeDeferred.add;jqXHR.success=jqXHR.done;jqXHR.error=jqXHR.fail;s.url=((url||s.url||ajaxLocation)+"").replace(rhash,"").replace(rprotocol,ajaxLocParts[1]+"//");s.type=options.method||options.type||s.method||s.type;s.dataTypes=jQuery.trim(s.dataType||"*").toLowerCase().match(rnotwhite)||[""];if(s.crossDomain==null){parts=rurl.exec(s.url.toLowerCase());s.crossDomain=!!(parts&&(parts[1]!==ajaxLocParts[1]||parts[2]!==ajaxLocParts[2]||(parts[3]||(parts[1]==="http:"?"80":"443"))!==(ajaxLocParts[3]||(ajaxLocParts[1]==="http:"?"80":"443"))));}
487if(s.data&&s.processData&&typeof s.data!=="string"){s.data=jQuery.param(s.data,s.traditional);}
488inspectPrefiltersOrTransports(prefilters,s,options,jqXHR);if(state===2){return jqXHR;}
489fireGlobals=jQuery.event&&s.global;if(fireGlobals&&jQuery.active++===0){jQuery.event.trigger("ajaxStart");}
490s.type=s.type.toUpperCase();s.hasContent=!rnoContent.test(s.type);cacheURL=s.url;if(!s.hasContent){if(s.data){cacheURL=(s.url+=(rquery.test(cacheURL)?"&":"?")+s.data);delete s.data;}
491if(s.cache===false){s.url=rts.test(cacheURL)?cacheURL.replace(rts,"$1_="+nonce++):cacheURL+(rquery.test(cacheURL)?"&":"?")+"_="+nonce++;}}
492if(s.ifModified){if(jQuery.lastModified[cacheURL]){jqXHR.setRequestHeader("If-Modified-Since",jQuery.lastModified[cacheURL]);}
493if(jQuery.etag[cacheURL]){jqXHR.setRequestHeader("If-None-Match",jQuery.etag[cacheURL]);}}
494if(s.data&&s.hasContent&&s.contentType!==false||options.contentType){jqXHR.setRequestHeader("Content-Type",s.contentType);}
495jqXHR.setRequestHeader("Accept",s.dataTypes[0]&&s.accepts[s.dataTypes[0]]?s.accepts[s.dataTypes[0]]+(s.dataTypes[0]!=="*"?", "+allTypes+"; q=0.01":""):s.accepts["*"]);for(i in s.headers){jqXHR.setRequestHeader(i,s.headers[i]);}
496if(s.beforeSend&&(s.beforeSend.call(callbackContext,jqXHR,s)===false||state===2)){return jqXHR.abort();}
497strAbort="abort";for(i in{success:1,error:1,complete:1}){jqXHR[i](s[i]);}
498transport=inspectPrefiltersOrTransports(transports,s,options,jqXHR);if(!transport){done(-1,"No Transport");}else{jqXHR.readyState=1;if(fireGlobals){globalEventContext.trigger("ajaxSend",[jqXHR,s]);}
499if(s.async&&s.timeout>0){timeoutTimer=setTimeout(function(){jqXHR.abort("timeout");},s.timeout);}
500try{state=1;transport.send(requestHeaders,done);}catch(e){if(state<2){done(-1,e);}else{throw e;}}}
501function done(status,nativeStatusText,responses,headers){var isSuccess,success,error,response,modified,statusText=nativeStatusText;if(state===2){return;}
502state=2;if(timeoutTimer){clearTimeout(timeoutTimer);}
503transport=undefined;responseHeadersString=headers||"";jqXHR.readyState=status>0?4:0;isSuccess=status>=200&&status<300||status===304;if(responses){response=ajaxHandleResponses(s,jqXHR,responses);}
504response=ajaxConvert(s,response,jqXHR,isSuccess);if(isSuccess){if(s.ifModified){modified=jqXHR.getResponseHeader("Last-Modified");if(modified){jQuery.lastModified[cacheURL]=modified;}
505modified=jqXHR.getResponseHeader("etag");if(modified){jQuery.etag[cacheURL]=modified;}}
506if(status===204||s.type==="HEAD"){statusText="nocontent";}else if(status===304){statusText="notmodified";}else{statusText=response.state;success=response.data;error=response.error;isSuccess=!error;}}else{error=statusText;if(status||!statusText){statusText="error";if(status<0){status=0;}}}
507jqXHR.status=status;jqXHR.statusText=(nativeStatusText||statusText)+"";if(isSuccess){deferred.resolveWith(callbackContext,[success,statusText,jqXHR]);}else{deferred.rejectWith(callbackContext,[jqXHR,statusText,error]);}
508jqXHR.statusCode(statusCode);statusCode=undefined;if(fireGlobals){globalEventContext.trigger(isSuccess?"ajaxSuccess":"ajaxError",[jqXHR,s,isSuccess?success:error]);}
509completeDeferred.fireWith(callbackContext,[jqXHR,statusText]);if(fireGlobals){globalEventContext.trigger("ajaxComplete",[jqXHR,s]);if(!(--jQuery.active)){jQuery.event.trigger("ajaxStop");}}}
510return jqXHR;},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},getScript:function(url,callback){return jQuery.get(url,undefined,callback,"script");}});jQuery.each(["get","post"],function(i,method){jQuery[method]=function(url,data,callback,type){if(jQuery.isFunction(data)){type=type||callback;callback=data;data=undefined;}
511return jQuery.ajax({url:url,type:method,dataType:type,data:data,success:callback});};});jQuery._evalUrl=function(url){return jQuery.ajax({url:url,type:"GET",dataType:"script",async:false,global:false,"throws":true});};jQuery.fn.extend({wrapAll:function(html){var wrap;if(jQuery.isFunction(html)){return this.each(function(i){jQuery(this).wrapAll(html.call(this,i));});}
512if(this[0]){wrap=jQuery(html,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){wrap.insertBefore(this[0]);}
513wrap.map(function(){var elem=this;while(elem.firstElementChild){elem=elem.firstElementChild;}
514return elem;}).append(this);}
515return this;},wrapInner:function(html){if(jQuery.isFunction(html)){return this.each(function(i){jQuery(this).wrapInner(html.call(this,i));});}
516return this.each(function(){var self=jQuery(this),contents=self.contents();if(contents.length){contents.wrapAll(html);}else{self.append(html);}});},wrap:function(html){var isFunction=jQuery.isFunction(html);return this.each(function(i){jQuery(this).wrapAll(isFunction?html.call(this,i):html);});},unwrap:function(){return this.parent().each(function(){if(!jQuery.nodeName(this,"body")){jQuery(this).replaceWith(this.childNodes);}}).end();}});jQuery.expr.filters.hidden=function(elem){return elem.offsetWidth<=0&&elem.offsetHeight<=0;};jQuery.expr.filters.visible=function(elem){return!jQuery.expr.filters.hidden(elem);};var r20=/%20/g,rbracket=/\[\]$/,rCRLF=/\r?\n/g,rsubmitterTypes=/^(?:submit|button|image|reset|file)$/i,rsubmittable=/^(?:input|select|textarea|keygen)/i;function buildParams(prefix,obj,traditional,add){var name;if(jQuery.isArray(obj)){jQuery.each(obj,function(i,v){if(traditional||rbracket.test(prefix)){add(prefix,v);}else{buildParams(prefix+"["+(typeof v==="object"?i:"")+"]",v,traditional,add);}});}else if(!traditional&&jQuery.type(obj)==="object"){for(name in obj){buildParams(prefix+"["+name+"]",obj[name],traditional,add);}}else{add(prefix,obj);}}
517jQuery.param=function(a,traditional){var prefix,s=[],add=function(key,value){value=jQuery.isFunction(value)?value():(value==null?"":value);s[s.length]=encodeURIComponent(key)+"="+encodeURIComponent(value);};if(traditional===undefined){traditional=jQuery.ajaxSettings&&jQuery.ajaxSettings.traditional;}
518if(jQuery.isArray(a)||(a.jquery&&!jQuery.isPlainObject(a))){jQuery.each(a,function(){add(this.name,this.value);});}else{for(prefix in a){buildParams(prefix,a[prefix],traditional,add);}}
519return s.join("&").replace(r20,"+");};jQuery.fn.extend({serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){var elements=jQuery.prop(this,"elements");return elements?jQuery.makeArray(elements):this;}).filter(function(){var type=this.type;return this.name&&!jQuery(this).is(":disabled")&&rsubmittable.test(this.nodeName)&&!rsubmitterTypes.test(type)&&(this.checked||!rcheckableType.test(type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:jQuery.isArray(val)?jQuery.map(val,function(val){return{name:elem.name,value:val.replace(rCRLF,"\r\n")};}):{name:elem.name,value:val.replace(rCRLF,"\r\n")};}).get();}});jQuery.ajaxSettings.xhr=function(){try{return new XMLHttpRequest();}catch(e){}};var xhrId=0,xhrCallbacks={},xhrSuccessStatus={0:200,1223:204},xhrSupported=jQuery.ajaxSettings.xhr();if(window.attachEvent){window.attachEvent("onunload",function(){for(var key in xhrCallbacks){xhrCallbacks[key]();}});}
520support.cors=!!xhrSupported&&("withCredentials"in xhrSupported);support.ajax=xhrSupported=!!xhrSupported;jQuery.ajaxTransport(function(options){var callback;if(support.cors||xhrSupported&&!options.crossDomain){return{send:function(headers,complete){var i,xhr=options.xhr(),id=++xhrId;xhr.open(options.type,options.url,options.async,options.username,options.password);if(options.xhrFields){for(i in options.xhrFields){xhr[i]=options.xhrFields[i];}}
521if(options.mimeType&&xhr.overrideMimeType){xhr.overrideMimeType(options.mimeType);}
522if(!options.crossDomain&&!headers["X-Requested-With"]){headers["X-Requested-With"]="XMLHttpRequest";}
523for(i in headers){xhr.setRequestHeader(i,headers[i]);}
524callback=function(type){return function(){if(callback){delete xhrCallbacks[id];callback=xhr.onload=xhr.onerror=null;if(type==="abort"){xhr.abort();}else if(type==="error"){complete(xhr.status,xhr.statusText);}else{complete(xhrSuccessStatus[xhr.status]||xhr.status,xhr.statusText,typeof xhr.responseText==="string"?{text:xhr.responseText}:undefined,xhr.getAllResponseHeaders());}}};};xhr.onload=callback();xhr.onerror=callback("error");callback=xhrCallbacks[id]=callback("abort");try{xhr.send(options.hasContent&&options.data||null);}catch(e){if(callback){throw e;}}},abort:function(){if(callback){callback();}}};}});jQuery.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(text){jQuery.globalEval(text);return text;}}});jQuery.ajaxPrefilter("script",function(s){if(s.cache===undefined){s.cache=false;}
525if(s.crossDomain){s.type="GET";}});jQuery.ajaxTransport("script",function(s){if(s.crossDomain){var script,callback;return{send:function(_,complete){script=jQuery("<script>").prop({async:true,charset:s.scriptCharset,src:s.url}).on("load error",callback=function(evt){script.remove();callback=null;if(evt){complete(evt.type==="error"?404:200,evt.type);}});document.head.appendChild(script[0]);},abort:function(){if(callback){callback();}}};}});var oldCallbacks=[],rjsonp=/(=)\?(?=&|$)|\?\?/;jQuery.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var callback=oldCallbacks.pop()||(jQuery.expando+"_"+(nonce++));this[callback]=true;return callback;}});jQuery.ajaxPrefilter("json jsonp",function(s,originalSettings,jqXHR){var callbackName,overwritten,responseContainer,jsonProp=s.jsonp!==false&&(rjsonp.test(s.url)?"url":typeof s.data==="string"&&!(s.contentType||"").indexOf("application/x-www-form-urlencoded")&&rjsonp.test(s.data)&&"data");if(jsonProp||s.dataTypes[0]==="jsonp"){callbackName=s.jsonpCallback=jQuery.isFunction(s.jsonpCallback)?s.jsonpCallback():s.jsonpCallback;if(jsonProp){s[jsonProp]=s[jsonProp].replace(rjsonp,"$1"+callbackName);}else if(s.jsonp!==false){s.url+=(rquery.test(s.url)?"&":"?")+s.jsonp+"="+callbackName;}
526s.converters["script json"]=function(){if(!responseContainer){jQuery.error(callbackName+" was not called");}
527return responseContainer[0];};s.dataTypes[0]="json";overwritten=window[callbackName];window[callbackName]=function(){responseContainer=arguments;};jqXHR.always(function(){window[callbackName]=overwritten;if(s[callbackName]){s.jsonpCallback=originalSettings.jsonpCallback;oldCallbacks.push(callbackName);}
528if(responseContainer&&jQuery.isFunction(overwritten)){overwritten(responseContainer[0]);}
529responseContainer=overwritten=undefined;});return"script";}});jQuery.parseHTML=function(data,context,keepScripts){if(!data||typeof data!=="string"){return null;}
530if(typeof context==="boolean"){keepScripts=context;context=false;}
531context=context||document;var parsed=rsingleTag.exec(data),scripts=!keepScripts&&[];if(parsed){return[context.createElement(parsed[1])];}
532parsed=jQuery.buildFragment([data],context,scripts);if(scripts&&scripts.length){jQuery(scripts).remove();}
533return jQuery.merge([],parsed.childNodes);};var _load=jQuery.fn.load;jQuery.fn.load=function(url,params,callback){if(typeof url!=="string"&&_load){return _load.apply(this,arguments);}
534var selector,type,response,self=this,off=url.indexOf(" ");if(off>=0){selector=jQuery.trim(url.slice(off));url=url.slice(0,off);}
535if(jQuery.isFunction(params)){callback=params;params=undefined;}else if(params&&typeof params==="object"){type="POST";}
536if(self.length>0){jQuery.ajax({url:url,type:type,dataType:"html",data:params}).done(function(responseText){response=arguments;self.html(selector?jQuery("<div>").append(jQuery.parseHTML(responseText)).find(selector):responseText);}).complete(callback&&function(jqXHR,status){self.each(callback,response||[jqXHR.responseText,status,jqXHR]);});}
537return this;};jQuery.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(i,type){jQuery.fn[type]=function(fn){return this.on(type,fn);};});jQuery.expr.filters.animated=function(elem){return jQuery.grep(jQuery.timers,function(fn){return elem===fn.elem;}).length;};var docElem=window.document.documentElement;function getWindow(elem){return jQuery.isWindow(elem)?elem:elem.nodeType===9&&elem.defaultView;}
538jQuery.offset={setOffset:function(elem,options,i){var curPosition,curLeft,curCSSTop,curTop,curOffset,curCSSLeft,calculatePosition,position=jQuery.css(elem,"position"),curElem=jQuery(elem),props={};if(position==="static"){elem.style.position="relative";}
539curOffset=curElem.offset();curCSSTop=jQuery.css(elem,"top");curCSSLeft=jQuery.css(elem,"left");calculatePosition=(position==="absolute"||position==="fixed")&&(curCSSTop+curCSSLeft).indexOf("auto")>-1;if(calculatePosition){curPosition=curElem.position();curTop=curPosition.top;curLeft=curPosition.left;}else{curTop=parseFloat(curCSSTop)||0;curLeft=parseFloat(curCSSLeft)||0;}
540if(jQuery.isFunction(options)){options=options.call(elem,i,curOffset);}
541if(options.top!=null){props.top=(options.top-curOffset.top)+curTop;}
542if(options.left!=null){props.left=(options.left-curOffset.left)+curLeft;}
543if("using"in options){options.using.call(elem,props);}else{curElem.css(props);}}};jQuery.fn.extend({offset:function(options){if(arguments.length){return options===undefined?this:this.each(function(i){jQuery.offset.setOffset(this,options,i);});}
544var docElem,win,elem=this[0],box={top:0,left:0},doc=elem&&elem.ownerDocument;if(!doc){return;}
545docElem=doc.documentElement;if(!jQuery.contains(docElem,elem)){return box;}
546if(typeof elem.getBoundingClientRect!==strundefined){box=elem.getBoundingClientRect();}
547win=getWindow(doc);return{top:box.top+win.pageYOffset-docElem.clientTop,left:box.left+win.pageXOffset-docElem.clientLeft};},position:function(){if(!this[0]){return;}
548var offsetParent,offset,elem=this[0],parentOffset={top:0,left:0};if(jQuery.css(elem,"position")==="fixed"){offset=elem.getBoundingClientRect();}else{offsetParent=this.offsetParent();offset=this.offset();if(!jQuery.nodeName(offsetParent[0],"html")){parentOffset=offsetParent.offset();}
549parentOffset.top+=jQuery.css(offsetParent[0],"borderTopWidth",true);parentOffset.left+=jQuery.css(offsetParent[0],"borderLeftWidth",true);}
550return{top:offset.top-parentOffset.top-jQuery.css(elem,"marginTop",true),left:offset.left-parentOffset.left-jQuery.css(elem,"marginLeft",true)};},offsetParent:function(){return this.map(function(){var offsetParent=this.offsetParent||docElem;while(offsetParent&&(!jQuery.nodeName(offsetParent,"html")&&jQuery.css(offsetParent,"position")==="static")){offsetParent=offsetParent.offsetParent;}
551return offsetParent||docElem;});}});jQuery.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(method,prop){var top="pageYOffset"===prop;jQuery.fn[method]=function(val){return access(this,function(elem,method,val){var win=getWindow(elem);if(val===undefined){return win?win[prop]:elem[method];}
552if(win){win.scrollTo(!top?val:window.pageXOffset,top?val:window.pageYOffset);}else{elem[method]=val;}},method,val,arguments.length,null);};});jQuery.each(["top","left"],function(i,prop){jQuery.cssHooks[prop]=addGetHookIf(support.pixelPosition,function(elem,computed){if(computed){computed=curCSS(elem,prop);return rnumnonpx.test(computed)?jQuery(elem).position()[prop]+"px":computed;}});});jQuery.each({Height:"height",Width:"width"},function(name,type){jQuery.each({padding:"inner"+name,content:type,"":"outer"+name},function(defaultExtra,funcName){jQuery.fn[funcName]=function(margin,value){var chainable=arguments.length&&(defaultExtra||typeof margin!=="boolean"),extra=defaultExtra||(margin===true||value===true?"margin":"border");return access(this,function(elem,type,value){var doc;
552if(jQuery.isWindow(elem)){return elem.document.documentElement["client"+name];}
553if(elem.nodeType===9){doc=elem.documentElement;return Math.max(elem.body["scroll"+name],doc["scroll"+name],elem.body["offset"+name],doc["offset"+name],doc["client"+name]);}
554return value===undefined?jQuery.css(elem,type,extra):jQuery.style(elem,type,value,extra);},type,chainable?margin:undefined,chainable,null);};});});jQuery.fn.size=function(){return this.length;};jQuery.fn.andSelf=jQuery.fn.addBack;if(typeof define==="function"&&define.amd){define("jquery",[],function(){return jQuery;});}
555var
556_jQuery=window.jQuery,_$=window.$;jQuery.noConflict=function(deep){if(window.$===jQuery){window.$=_$;}
557if(deep&&window.jQuery===jQuery){window.jQuery=_jQuery;}
558return jQuery;};if(typeof noGlobal===strundefined){window.jQuery=window.$=jQuery;}
559return jQuery;}));
560(function($){var jQversion=jQuery.fn.jquery.split(".");jQuery.browser={};jQuery.browser.mozilla=false;jQuery.browser.webkit=false;jQuery.browser.opera=false;jQuery.browser.msie=false;var nAgt=navigator.userAgent;jQuery.browser.name=navigator.appName;jQuery.browser.fullVersion=''+parseFloat(navigator.appVersion);jQuery.browser.majorVersion=parseInt(navigator.appVersion,10);var nameOffset,verOffset,ix;if((verOffset=nAgt.indexOf("Opera"))!=-1){jQuery.browser.opera=true;jQuery.browser.name="Opera";jQuery.browser.fullVersion=nAgt.substring(verOffset+6);if((verOffset=nAgt.indexOf("Version"))!=-1)
561jQuery.browser.fullVersion=nAgt.substring(verOffset+8);}
562else if((verOffset=nAgt.indexOf("MSIE"))!=-1){jQuery.browser.msie=true;jQuery.browser.name="Microsoft Internet Explorer";jQuery.browser.fullVersion=nAgt.substring(verOffset+5);}
563else if((verOffset=nAgt.indexOf("Chrome"))!=-1){jQuery.browser.webkit=true;jQuery.browser.name="Chrome";jQuery.browser.fullVersion=nAgt.substring(verOffset+7);}
564else if((verOffset=nAgt.indexOf("Safari"))!=-1){jQuery.browser.webkit=true;jQuery.browser.name="Safari";jQuery.browser.fullVersion=nAgt.substring(verOffset+7);if((verOffset=nAgt.indexOf("Version"))!=-1)
565jQuery.browser.fullVersion=nAgt.substring(verOffset+8);}
566else if((verOffset=nAgt.indexOf("Firefox"))!=-1){jQuery.browser.mozilla=true;jQuery.browser.name="Firefox";jQuery.browser.fullVersion=nAgt.substring(verOffset+8);}
567else if((nameOffset=nAgt.lastIndexOf(' ')+1)<(verOffset=nAgt.lastIndexOf('/'))){jQuery.browser.name=nAgt.substring(nameOffset,verOffset);jQuery.browser.fullVersion=nAgt.substring(verOffset+1);if(jQuery.browser.name.toLowerCase()==jQuery.browser.name.toUpperCase()){jQuery.browser.name=navigator.appName;}}
568if((ix=jQuery.browser.fullVersion.indexOf(";"))!=-1)
569jQuery.browser.fullVersion=jQuery.browser.fullVersion.substring(0,ix);if((ix=jQuery.browser.fullVersion.indexOf(" "))!=-1)
570jQuery.browser.fullVersion=jQuery.browser.fullVersion.substring(0,ix);jQuery.browser.majorVersion=parseInt(''+jQuery.browser.fullVersion,10);if(isNaN(jQuery.browser.majorVersion)){jQuery.browser.fullVersion=''+parseFloat(navigator.appVersion);jQuery.browser.majorVersion=parseInt(navigator.appVersion,10);}
571jQuery.browser.version=jQuery.browser.majorVersion;})(jQuery);
572(function($){var pluginName='ecoData';$.fn[pluginName]=function(){var args=Array.prototype.slice.call(arguments);var jqel=jQuery(this);var data;var parents;var returnJqel=false;if(args.length===2&&args[0]===true){returnJqel=true;}
573data=jQuery.extend({},jqel.data());if(returnJqel&&data.hasOwnProperty(args[1])){return jqel;}
574parents=jqel.parents();var jqel_ancestor=null;parents.each(function(index,ancestorDomElement){jqel_ancestor=jQuery(ancestorDomElement);var ancestorData=jQuery.extend({},jqel_ancestor.data());if(returnJqel){if(ancestorData.hasOwnProperty(args[1])){return false;}}else{data=jQuery.extend(ancestorData,data);}});if(returnJqel){return jQuery(jqel_ancestor);}
575switch(args.length){case 0:return data;break;case 1:return data[args[0]];break;case 2:var targetData=jqel.data();var locatedKey=false;if(targetData!=null&&targetData.hasOwnProperty(args[0])){jqel.data(args[0],args[1]);locatedKey=true;}else{parents.each(function(index,ancestorDomElement){var jqel_ancestor=jQuery(ancestorDomElement);var ancestorData=jqel_ancestor.data();if(ancestorData.hasOwnProperty(args[0])){jqel_ancestor.data(args[0],args[1]);locatedKey=true;return false;}});}
576if(!locatedKey){jqel.data(args[0],args[1]);}
577break;}
578return jqel;};})(jQuery);
579if(typeof(Eco)=='undefined'||!jQuery.isPlainObject(Eco)){Eco={};}
580(function(){Eco.BaseClass=function(){};Eco.BaseClass.__constructing=false;var _callToParentTest=/abc_eco/.test(function(){var abc_eco;})?/\b_parent\b/:/.*/;Eco.BaseClass.extend=function extender(){var _parentInstance=this.prototype;Eco.BaseClass.__constructing=true;var prototype=new this();Eco.BaseClass.__constructing=false;var parentProxyClosure=function(name,originalMethod){return function(){var tmpFn=this._parent;this._parent=_parentInstance[name];var result=originalMethod.apply(this,arguments);this._parent=tmpFn;return result;};};for(var i=0;i<arguments.length;i++){var classObject=arguments[i];for(var propertyName in classObject){if(classObject.hasOwnProperty(propertyName)){var isValidMethod=(typeof(classObject[propertyName])=='function');var parentHasSameMethod=(typeof(_parentInstance[propertyName])=='function');var hasCallToParentMethod=isValidMethod&&parentHasSameMethod&&_callToParentTest.test(classObject[propertyName]);prototype[propertyName]=hasCallToParentMethod?parentProxyClosure(propertyName,classObject[propertyName]):classObject[propertyName];}}}
581var BaseClass=function(){if(!Eco.BaseClass.__constructing&&this.__construct){this.__construct.apply(this,arguments);}};BaseClass.prototype=prototype;BaseClass.constructor=BaseClass;BaseClass.extend=extender;return BaseClass;};})();
582if(typeof(Eco)=='undefined'||!jQuery.isPlainObject(Eco)){Eco={};}
583Eco.Util={_scrollTimer:null,_jqel_scrollTarget:null,initializeNamespace:function(){var context=window;for(var argIndex=0;argIndex<arguments.length;argIndex++){var arg=arguments[argIndex];if(typeof(arg)=='object'&&arg!==null){context=arg;continue;}
584if(typeof(arg)!='string'){continue;}
585var namespaceComponents=arg.split('.');var sourceObject=context[namespaceComponents[0]]=context[namespaceComponents[0]]||{};var childNamespaceComponents=namespaceComponents.slice(1);for(var childNamespaceName in childNamespaceComponents){if(childNamespaceComponents.hasOwnProperty(childNamespaceName)){var childNamespace=childNamespaceComponents[childNamespaceName];sourceObject=sourceObject[childNamespace]=sourceObject[childNamespace]||{};}}}},getNamespace:function(){var scope=window;var loopRestrictor=1;for(var argIndex=0;argIndex<loopRestrictor;argIndex++){var arg=arguments[argIndex];if(argIndex<1&&typeof(arg)=='object'&&arg!==null){scope=arg;loopRestrictor=2;continue;}
586if(typeof(arg)!='string'){return{};}
587var namespaceComponents=arg.split('.');var sourceObject=scope[namespaceComponents[0]]=scope[namespaceComponents[0]]||{};var childNamespaceComponents=namespaceComponents.slice(1);
587for(var childNamespaceName in childNamespaceComponents){if(childNamespaceComponents.hasOwnProperty(childNamespaceName)){var nextChildNamespaceName=childNamespaceComponents[childNamespaceName];sourceObject=sourceObject[nextChildNamespaceName]=sourceObject[nextChildNamespaceName]||{};}}}
588return sourceObject;},setNestedKey:function(context,propertyName,value){var namespaceParts=(''+propertyName).split('.');propertyName=namespaceParts.pop();var namespaceName=namespaceParts.join('.');var deepContext=context;if(namespaceName!==''){deepContext=this.getNamespace(context,namespaceName);}
589deepContext[propertyName]=value;},getNestedKey:function(context,propertyName,defaultValue){var namespaceParts=(''+propertyName).split('.');propertyName=namespaceParts.pop();var namespaceName=namespaceParts.join('.');var deepContext=context;if(namespaceName!==''){deepContext=this.getNamespace(context,namespaceName);}
590if(!deepContext.hasOwnProperty(propertyName)){deepContext[propertyName]=defaultValue;}
591return deepContext[propertyName];},removeNestedKey:function(context,propertyName){var namespaceParts=(''+propertyName).split('.');propertyName=namespaceParts.pop();var namespaceName=namespaceParts.join('.');var deepContext=context;if(namespaceName!==''){deepContext=this.getNamespace(context,namespaceName);}
592delete deepContext[propertyName];},convertNestedObjectToFlatObject:function(o,newObj,baseKey){if(typeof(newObj)!=='object'){newObj={};}
593if(typeof(baseKey)!=='string'){baseKey='';}else{baseKey+='.';}
594for(var key in o){if(!o.hasOwnProperty(key)){continue;}
595var combinedKey=baseKey+key;if(typeof(o[key])==='object'){if(o[key]instanceof Array){newObj[combinedKey]=Basix.extend(Basix.EXTEND_RECURSIVE,{tmp:[]},{tmp:o[key]}).tmp;}else{this.convertNestedObjectToFlatObject(o[key],newObj,combinedKey);}}else{newObj[combinedKey]=o[key];}}
596return newObj;},namespaceExists:function(){var scope=window;var loopRestrictor=1;for(var argIndex=0;argIndex<loopRestrictor;argIndex++){var arg=arguments[argIndex];if(argIndex<1&&typeof(arg)=='object'&&arg!==null){scope=arg;loopRestrictor=2;continue;}
597if(typeof(arg)!='string'){return false;}
598var namespaceComponents=arg.split('.');var sourceObject=scope[namespaceComponents[0]]=scope[namespaceComponents[0]]||{};var childNamespaceComponents=namespaceComponents.slice(1);for(var childNamespaceName in childNamespaceComponents){if(childNamespaceComponents.hasOwnProperty(childNamespaceName)){var nextChildNamespaceName=childNamespaceComponents[childNamespaceName];if(!sourceObject.hasOwnProperty(nextChildNamespaceName)){return false;}
599sourceObject=sourceObject[nextChildNamespaceName];}}}
600return true;},getRandomString:function(length){var chars="ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";var stringLength=(typeof(length)!='undefined')?length:8;var randomString='';for(var i=0;i<stringLength;i++){var rNum=Math.floor(Math.random()*chars.length);randomString+=chars.substring(rNum,rNum+1);}
601return randomString;},capitalizeWords:function(string,o){var self=this;string=self.toWords(string,o);var parts=string.split(' ');parts.forEach(function(part,index){parts[index]=self.capitalizeFirstWord(part,o);});return parts.join(' ');},capitalizeFirstWord:function(string,o){string=this.toWords(string,o);return string.substr(0,1).toUpperCase()+string.substr(1);},toCamelCase:function(string,o){string=this.toWords(string,o);return string.replace(/(\s[a-z])/g,function(match){return match.toUpperCase().replace('_','').replace(' ','');});},toPascalCase:function(string,o){string=this.toCamelCase(string,o);return string.substr(0,1).toUpperCase()+string.substr(1);},toUnderscore:function(string,o){return this.toSnakeCase(string,o);},toSnakeCase:function(string,o){string=this.toWords(string,o);return string.replace(/\s+/g,'_');},toHyphenCase:function(string,o){string=this.toWords(string,o);return string.replace(/\s+/g,'-');},toHyphen:function(string,o){return this.toHyphenCase(string,o);},toDotCase:function(string,o){string=this.capitalizeWords(string,o);return string.replace(/\s+/g,'.');},toDotted:function(string,o){return this.toDotCase(string,o);},toHumanReadableFileSize:function(bytes,si){var thresh=si?1000:1024;var units=si?['KB','MB','GB','TB','PB','EB','ZB','YB']:['KiB','MiB','GiB','TiB','PiB','EiB','ZiB','YiB'];if(Math.abs(bytes)<thresh){return(bytes / thresh).toFixed(2)+' '+units[0];}
602var u=-1;do{bytes /=thresh;++u;}while(Math.abs(bytes)>=thresh&&u<units.length-1);return bytes.toFixed(1)+' '+units[u];},toWords:function(string,o){var defaults={splitOnUpperCase:true};o=jQuery.extend(defaults,o);if(o.splitOnUpperCase){string=string.replace(/([A-Z]{1,})/g,function(match){return' '+match.toLowerCase();});}
603return jQuery.trim(string.replace(/[_-]/g,' ').replace(/\s{2,}/g,' '));},_getClogs:function(args){var clogs=[];var argsLength=args.length;if(argsLength&&['function','object'].indexOf(typeof(console.log))>=0){var scalarTypes=['string','boolean','number','undefined'];var previousClogItemType='';for(var i=argsLength;i>=1;i--){var clogItem=args[argsLength-i];var clogItemType=typeof(clogItem);if(scalarTypes.indexOf(clogItemType)>=0&&scalarTypes.indexOf(previousClogItemType)>=0){if(clogItemType=='boolean'){clogItem='('+(clogItem?'true':'false')+')';}else if(clogItemType=='undefined'){clogItem='(undefined)';}
604clogs[clogs.length-1]+=': '+clogItem;}else{clogs.push(clogItem);}
605previousClogItemType=clogItemType;}}
606return clogs;},clog:function(){var args=Array.prototype.slice.call(arguments);var clogs=Eco.Util._getClogs(args);for(var i in clogs){if(clogs.hasOwnProperty(i)){var clogItem=clogs[i];console.log(clogItem);}}},cwarn:function(){var args=Array.prototype.slice.call(arguments);var clogs=Eco.Util._getClogs(args);jQuery.each(clogs,function(index,clogItem){console.warn(clogItem);});},getUniversalDate:function(dateOrTimestamp){var date;if(dateOrTimestamp instanceof Date){date=dateOrTimestamp;}else if(!isNaN(parseInt(dateOrTimestamp,10))){date=new Date(parseInt(dateOrTimestamp,10)*1000);}else{date=new Date();}
607var universalDate=new Date();universalDate.setSeconds(0);universalDate.setMilliseconds(0);universalDate.setUTCHours(23);universalDate.setUTCMinutes(59);universalDate.setUTCFullYear(date.getFullYear());universalDate.setUTCDate(1);universalDate.setUTCMonth(date.getMonth());universalDate.setUTCDate(date.getDate());return universalDate;},isAndroid:function(){return navigator.userAgent.match(/Android/i);},isBlackBerry:function(){return navigator.userAgent.match(/BlackBerry/i);},isIos:function(){return navigator.userAgent.match(/iPhone|iPad|iPod/i);},isOpera:function(){return navigator.userAgent.match(/Opera Mini/i);},isIeMobile:function(){return navigator.userAgent.match(/IEMobile/i);},isMobileDevice:function(){return(this.isAndroid()||this.isIos()||this.isIeMobile()||this.isBlackBerry()||this.isOpera());},getIeVersion:function(){var ua=window.navigator.userAgent;var msie=ua.indexOf('MSIE ');if(msie>0){return parseInt(ua.substring(msie+5,ua.indexOf('.',msie)),10);}
608var trident=ua.indexOf('Trident/');if(trident>0){var rv=ua.indexOf('rv:');return parseInt(ua.substring(rv+3,ua.indexOf('.',rv)),10);}
609var edge=ua.indexOf('Edge/');if(edge>0){return parseInt(ua.substring(edge+5,ua.indexOf('.',edge)),10);}
610return false;},scrollElementIntoView:function(jqel,options={}){var element=null;if(jqel instanceof jQuery){element=jqel.get(0);}else if(jqel instanceof Element){element=jqel;}
611if(!(element instanceof Element)){return false;}
612if(!(element.scrollIntoView instanceof Function)){return false;}
613element.scrollIntoView({behavior:'smooth',block:'center',inline:'nearest'});return true;},encodeHtmlAttribute:function(value){if(typeof(value)==='object'){value=JSON.stringify(value);}
614value=value.replace(/[\u00A0-\u9999<>&]/gim,function(i){return'&#'+i.charCodeAt(0)+';';});value=value.replaceAll('"','&quot;');return value;},debounce:function debounce(func,wait,immediate){var timeout;return function(){var context=this,args=arguments;var later=function(){timeout=null;if(!immediate)func.apply(context,args);};var callNow=immediate&&!timeout;clearTimeout(timeout);timeout=setTimeout(later,wait);if(callNow)func.apply(context,args);};},Timer:function(callback,delay){var timerId,start,remaining=delay;this.pause=function(){window.clearTimeout(timerId);remaining-=Date.now()-start;};this.resume=function(){start=Date.now();window.clearTimeout(timerId);timerId=window.setTimeout(callback,remaining);};this.resume();},delay:async function(delayMs){let resolve;const p=new Promise(resolveFn=>{resolve=resolveFn;});setTimeout(()=>{resolve();},delayMs);return p;},stringToHtmlDoc:function(htmlString){const parser=new DOMParser();return parser.parseFromString(htmlString,'text/html');},stringToHtmlElement:function(htmlString){const doc=Eco.Util.stringToHtmlDoc(htmlString);if(doc?.body?.firstChild&&doc.body.firstChild instanceof HTMLElement){return doc.body.firstChild;}
615return null;}};if(!window.clog){window.clog=Eco.Util.clog;}
616if(!window.permaclog){window.permaclog=Eco.Util.clog;}
617if(!window.cwarn){window.cwarn=Eco.Util.cwarn;}
618Eco.Value=Eco.BaseClass.extend({_rawValue:null,_cleanValue:null,__c
618onstruct:function(rawValue,cleanValue){this._rawValue=rawValue;this._cleanValue=cleanValue;},getRawValue:function(){return this._rawValue;},getCleanValue:function(){return this._cleanValue;}});
619Eco.Util.Cleaning={float:function(value){if(!value){return 0;}
620if(typeof(value)=='string'){value=value.replace(',','');}
621if(value===''){return'';}
622return parseFloat(value);},int:function(value){if(!value){return 0;}
623if(typeof(value)=='string'){value=value.replace(',','');}
624return parseInt(value,10);},mmDdYyyy:function(value,options){let numericValue=parseInt(value);if(String(numericValue)===value){return numericValue;}
625if(typeof(value)!=='string'){return value;}
626let cleanInput=value.replace(/[^\d/-]/g,'');let parts=[];let segmentRegex=/[\d]+/;while(cleanInput.length){let match=cleanInput.match(segmentRegex);if(!match){break;}
627parts.push(parseInt(match[0]));if(parts.length===3){break;}
628cleanInput=cleanInput.replace(segmentRegex,'').replace(/[^\d]/,'');}
629if(parts.length<3){for(let i=parts.length;i<3;i++){parts.push(null);}}
630if(parts[0]>12&&parts[1]<12){let day=parts[0];parts[0]=parts[1];parts[1]=day;}
631let cleanedRawInput=String(parts[0]).padStart(2,'0')+'/'+String(parts[1]).padStart(2,'0')+'/'+parts[2];Eco.Util.setNestedKey(options,'_ecoFormattingDetails.mmDdYyyy.cleanedRawInput',cleanedRawInput);let date=new Date(parts[2],parts[0]-1,parts[1]);return date.getTime()/ 1000;},money:function(value,options){if(typeof(value)!='string'){return value;}
632if(!jQuery.isPlainObject(options)){options={};}
633var allOptions=jQuery.extend({currencySign:'$',thousandsSeparator:',',decimal:'.'},options);jQuery.extend(options,allOptions);var regex=new RegExp('([^\\d'+options.decimal+'])','g');var money=value.replace(regex,'');if(typeof(money)!='string'){money='0';}
634return money;},numbers:function(value){if(typeof(value)==='number'){return value;}
635if(typeof(value)!=='string'){return'';}
636return value.replace(/[^\d]/g,'');},trim:function(value){if(typeof(value)!=='string'){return value;}
637return value.replace(/^\s*(.*?)\s*$/,'$1');},timecode:function(value){if(!value){return 0;}
638var minutes=0;var hours=0;var parts=(''+value).split(':');if(parts.length>1){var seconds=Math.abs(parts.pop());if(parts.length){minutes=Math.abs(parts.pop());}
639if(parts.length){hours=Math.abs(parts.pop());}}else{value=parseInt(value,10);seconds=Math.abs(value);}
640return seconds+(minutes*60)+(hours*3600);},cssSizeUnitValue:function(value){if(typeof(value)!=='string'){return'';}
641value=jQuery.trim(value);if(!value){return'';}
642let parts=value.match(/[\s]*(-)?[\s]*([\d]+)?[\s]*(px|em|%|cm|mm|in|pt|pc|ex|ch|rem|vw|vh|vmin|vmax)?[\s]*[;]?[\s]*/);if(!parts){return value;}
643if(!parts[1]){parts[1]='';}
644if(!parts[2]){parts[2]='';}
645if(!parts[3]){parts[3]='';}
646value=''+parts[1]+parts[2]+parts[3];return value;},textToArray:function(value){if(jQuery.isArray(value)){return value;}
647if(!value){value='';}
648var splitValue=value.split(/\n|\r/);var cleanedList=[];jQuery.each(splitValue,function(n,v){var cleanValue=v.trim();if(cleanValue){cleanedList.push(cleanValue);}});return cleanedList;},toUpperCase:function(value){if(typeof(value)==='string'){return value.toUpperCase();}
649return'';},toLowerCase:function(value){if(typeof(value)==='string'){return value.toLowerCase();}
650return'';},blacklist:function(value,data){if(data.blacklist&&data.blacklist.includes(value)){return'';}
651return value;}};
652/**
653 * Methods in this class must contain
654 */
655Eco.Util.Validation = {
656    /**
657     * A list of validation method names for methods that are determined to run too slowly to be used in real time validation (on keyup for example).
658     */
659    SlowValidationMethods: ['emailMx', 'emailUnique', 'usernameUnique', 'foreignIdUnique'],
660    Messages: {
661        required: {
662            1: 'This field is required.'
663        },
664        requiredNoBlank: {
665            1: 'This field is required.'
666        },
667        stringLength: function (statusCode, options) {
668            clog(`status code: ${statusCode}`, options);
669            const INVALID_VALUE = 1;
670            const STRING_TOO_SHORT = 2;
671            const STRING_TOO_LONG = 3;
672
673            switch (statusCode) {
674                case STRING_TOO_SHORT:
675                    return `Entry is too short. Enter at least ${options.minimum} characters.`;
676                case STRING_TOO_LONG:
677                    return `Entry is too long. Maximum length is ${options.maximum} characters.`;
678                case INVALID_VALUE:
679                default:
680                    return 'Please enter a valid value.';
681
682            }
683        },
684        cssSizeUnitValue: {
685            1: 'Please enter a valid CSS number and unit.',
686            2: 'Please enter a valid CSS number and unit.',
687            3: 'You must enter a valid positive integer.',
688            4: 'Please enter a number before the unit.',
689            5: 'Please enter a valid CSS unit after the number.',
690        },
691        number: {
692            1: 'Please enter a number.'
693        },
694        numberInRange: {
695            1: 'Please enter a number.',
696            2: 'Please enter a number.',
697            3: 'This number is too low.',
698            4: 'This number is too high.'
699        },
700        email: {
701            1: 'Please enter a valid email address.',
702            2: 'Please enter a valid email address.'
703        },
704        emailMx: {
705            1: 'Please enter a valid email address.'
706        },
707        emailUnique: {
708            1: 'That email address is already in use.'
709        },
710        usernameUnique: {
711            1: 'That username is already in use.'
712        },
713        foreignIdUnique: {
714            1: 'That code is already in use.'
715        },
716        url: {
717            1: 'Please enter a valid URL.',
718            2: 'Please enter a valid URL.'
719        },
720        urlWithSiteRoot: {
721            1: 'Please enter a valid URL.',
722            2: 'Please enter a valid URL.'
723        },
724        phone: {
725            1: 'Please enter a valid phone number.',
726            2: 'Please enter a valid phone number.'
727        },
728        /**
729         * @deprecated Use mmDdYyyy instead.
730         * @param statusCode
731         * @param options
732         * @returns {number|number}
733         */
734        isMmDdYyyy: function (statusCode, options) {
735            return Eco.Util.Validation.mmDdYyyy(statusCode, options);
736        },
737        mmDdYyyy: function (statusCode, options) {
738            const YEAR_TOO_SHORT = 1;
739            const YEAR_TOO_LONG = 2;
740            const MONTH_TOO_LOW = 3;
741            const MONTH_TOO_HIGH = 4;
742            const DAY_TOO_LOW = 5;
743            const DAY_EXCEEDS_LEAP_MONTH_DAYS_IN_NON_LEAP_YEAR = 6;
744            const DAY_EXCEEDS_LEAP_MONTH_DAYS_IN_LEAP_YEAR = 7;
745            const DAY_EXCEEDS_MONTH_DAYS = 8;
746            const INVALID_DATE = 9;
747
748            let maxDays = Eco.Util.getNestedKey(options, '_ecoValidationErrorDetails.mmDdYyyy.maximumDays');
749            let month = Eco.Util.getNestedKey(options, '_ecoValidationErrorDetails.mmDdYyyy.month');
750            // 2021-08-24 - Not current needed : let day = Eco.Util.getNestedKey(options, '_ecoValidationErrorDetails.mmDdYyyy.day');
751            let year = Eco.Util.getNestedKey(options, '_ecoValidationErrorDetails.mmDdYyyy.year');
752
753            switch (statusCode) {
754                case YEAR_TOO_SHORT:
755                case YEAR_TOO_LONG:
756                    return 'Please enter a 4-digit year.';
757                case MONTH_TOO_LOW:
758                case MONTH_TOO_HIGH:
759                    return 'Please enter a valid month.';
760                case DAY_TOO_LOW:
761                    return 'Please enter a valid day (from 1 - ' + maxDays + ').';
762                case DAY_EXCEEDS_LEAP_MONTH_DAYS_IN_NON_LEAP_YEAR:
763                case DAY_EXCEEDS_LEAP_MONTH_DAYS_IN_LEAP_YEAR:
764                case DAY_EXCEEDS_MONTH_DAYS:
765                    const formatter = new Intl.DateTimeFormat('en-us', {month: 'long'});
766                    const monthName = formatter.format(new Date(2000, month - 1, 1));
767                    return Eco.Util.capitalizeWords(monthName) + ' ' + year + ' has only ' + maxDays + ' days.';
768                case INVALID_DATE:
769                default:
770                    return 'Please enter a valid date in mm/dd/yyyy format.';
771
772            }
773
774        },
775        zipCode: {
776            1: 'Please enter a valid zip code. e.g. 12345 or 12345-1234'
777        },
778        sameValue: {
779            1: 'This value does not match.'
780        },
781        text: {
782            1: 'This value is not text'
783        },
784        password: function (statusCode) {
785            var message = '';
786            switch (statusCode) {
787                case 1:
788                case 2:
789                    return 'Passwords cannot be blank.';
790                    break;
791                case 3:
792                    return 'Minimum 8 characters with one letter and one number.';
793                    break;
794            }
795            return message;
796        },
797        containsAlphabetic: function (statusCode, options) {
798            var message = '';
799            switch (statusCode) {
800                case 1:
801                case 2:
802                    message = 'This value must contain at least ' + options.minimum + ' alphabetic character' + ((options.minimum > 1) ? 's' : '') + '.';
803                    break;
804                case 3:
805                    message = 'This value cannot contain more than ' + options.maximum + ' alphabetic character' + ((options.maximum > 1) ? 's' : '') + '.';
806                    break;
807                default:
808                    throw Error('Unspecified validation error for `containsAlphabetic`.');
809            }
810            return message;
811        }
812    },
813
814    /**
815     * Validate the value is present BUT allow completely blank/empty values.
816     *
817     * Also allows all-whitespace values IF the clean value is not trimmed of whitespace. This can be done externally to
818     * prevent all-whitespace values.
819     *
820     * Designed for nearly any field type.
821     *
822     * @param {Eco.Value<*>} value
823     * @returns {Number} The success or error code. 0 = success. Error codes are positive integers.
824     */
825    required: function (value) {
826
827        // Required just means a value is present - it does NOT mean that value is actually valid for that field type!
828        var result = true;
829        // This is a rare place where force-cleaning the raw value is necessary to ensure a value is not all whitespace.
830        // This still allows all-whitespace values IF the clean value is not also trimmed. This allows either behavior just by setting the trim cleaner on a field or not.
831        var rawValue = Eco.Util.Cleaning.trim(value.getRawValue());
832        var cleanValue = value.getCleanValue();
833
834        // Argument 2 is typically the data for the organism
835        var passedData = arguments[1];
836        // if this is an option box then we need to allow 'false' as a value' but a blank string is not an option
837        let optionFieldTypes = ['option', 'radio-list', 'radio-button-list'];
838        if(passedData && optionFieldTypes.indexOf(passedData.ecoFieldType) > -1) {
839            if(rawValue === '' && cleanValue === '') {
840                // there is no recorded value/option for this drop down
841                return 1;
842            } else {
843                return 0;
844            }
845        } else if(passedData && passedData.ecoFieldType === 'option_dataset') {
846            if(typeof(cleanValue) === 'object' && JSON.stringify(cleanValue) === '{}') {
847                return 1;
848            } else {
849                return 0;
850            }
851        } else {
852
853            if (!rawValue) {
854                result = !(cleanValue === false || cleanValue === '' || cleanValue === null || isNaN(cleanValue) || (cleanValue instanceof Array && cleanValue.length == 0));
855            } else if (rawValue instanceof Array) {
856                result = (rawValue.length >= 1);
857            }
858        }
859        return (result ? 0 : 1);
860    },
861
862    /**
863     * Override for 'required' that does not allow white space values
864     * @param value
865     * @param options
866     * @returns {Number}
867     */
868    requiredNoBlank(value, options){
869        var rawValue = Eco.Util.Cleaning.trim(value.getRawValue());
870        var cleanValue = Eco.Util.Cleaning.trim(value.getCleanValue());
871        const v = new Eco.Value(rawValue, cleanValue);
872        // trim both
873        return Eco.Util.Validation.required(v);
874    },
875
876    stringLength: function(value, options) {
877        var allOptions = jQuery.extend({minimum: null, maximum: null}, options);
878        jQuery.extend(options, allOptions); // MODIFY options BY REFERENCE
879        var cleanValue = value.getCleanValue();
880
881        if (cleanValue === '') {
882            return 0; // Empty values are valid - use required validator to prevent blank values
883        }
884
885        if (typeof (cleanValue) !== 'string' && typeof (cleanValue) !== 'number') {
886            return 1; // Value is not a string or number, invalid
887        }
888
889        var minimum = options.minimum;
890        if (typeof (minimum) === 'undefined') {
891            minimum = null;
892        }
893
894        var maximum = options.maximum;
895        if (typeof (maximum) === 'undefined') {
896            maximum = null;
897        }
898
899        if (minimum !== null && cleanValue.length < minimum) {
900            return 2; // Value too short
901        }
902
903        if (maximum !== null && cleanValue.length > maximum) {
904            return 3; // Value too long
905        }
906
907        return 0; // The value is in the allowed length range (inclusive of min/max)
908    },
909
910    /**
911     * Determine if the value is in the format of {int}{unit} where {unit} is a valid CSS unit.
912     * @param value
913     * @returns {number|*}
914     */
915    cssSizeUnitValue: function(value) {
916        let cleanValue = value.getCleanValue();
917        if(typeof(cleanValue) !== 'string') {
918            // Invalid value; not a string
919            return 1;
920        }
921
922        if(!cleanValue) {
923            // An empty value is valid
924            return 0;
925        }
926
927        // Parse the value to extract the parts independently so we can stitch them back together
928        let parts = cleanValue.match(/[\s]*(-)?[\s]*([\d]+)?[\s]*(px|em|%|cm|mm|in|pt|pc|ex|ch|rem|vw|vh|vmin|vmax)?[\s]*[;]?[\s]*/);
929        if(!parts) {
930            // Invalid value; the expression did not even match
931            return 2;
932        }
933        if(parts[1]) {
934            // Invalid value; the number entered must be positive
935            return 3;
936        }
937        if(!parts[2]) {
938            // Invalid value; missing the number
939            return 4;
940        }
941        if(!parts[3]) {
942            // Invalid value; missing the unit
943            return 5;
944        }
945
946        clog(parts);
947
948        return 0;
949    },
950
951    /**
952     * Validate the clean value is a number.
953     *
954     * @param {Eco.Value<scalar>} value
955     * @returns {Number} The success or error code. 0 = success. Error codes are positive integers.
956     */
957    number: function (value) {
958        return (isNaN(value.getCleanValue()) ? 1 : 0); // Anything isNaN() considers as a number is valid. Otherwise invalid.
959    },
960
961    /**
962     * Validate the clean value is an email.
963     *
964     * @param {Eco.Value<String>} value
965     * @returns {Number} The success or error code. 0 = success. Error codes are positive integers.
966     */
967    email: function (value) {
968        var email = value.getCleanValue();
969        if (typeof (email) != 'string') {
970            return 1; // Invalid
971        }
972        if (email == '') {
973            return 0; // Valid
974        }
975        email = email.toLowerCase();
976        var emailPattern = /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/;
977        return (emailPattern.test(email) ? 0 : 2);
978    },
979
980    /**
981     * Check that the domain for the email address is using has valid MX records assigned.
982     *
983     * SERVER SIDE VALIDATION
984     *
985     * @param {Eco.Value} value
986     * @returns {Number}
987     */
988    emailMx: function (value) {
989        var cleanValue = value.getCleanValue();
990        if (!cleanValue) {
991            return 0; // This is not a required field validator - do not run a server side comparison.
992        }
993
994        var resultCode = 0; // Presume the domain is valid unless we can prove it is not val
994id. Innocent until proven guilty mindset.
995        jQuery.ajax({
996            async: false,
997            timeout: 1.5 * 1000, // Longer than 1.5 seconds and we should bail
998            url: '/site/core/public/remote-helpers/dns-check/api.php', // Directly access a dns-check api that we created
999            type: 'POST',
1000            data: {
1001                command: 'verify-email-domain',
1002                email: cleanValue
1003            },
1004            success: function (json, status, jqXhr) {
1005                if (json.result) {
1006                    // Success! The email's domain was verified as having valid MX records.
1007                    // Nothing to do here
1008                } else {
1009                    // Uh-oh, the email's domain appears to target a server that lacks valid MX records.
1010                    resultCode = 1;
1011                }
1012            },
1013            error: function () {
1014                // Could not verify domain, but neither can we deny it
1015                cinfo('The `dns-check` verification service timed out or reported an error.');
1016            }
1017        });
1018        return resultCode;
1019    },
1020
1021    /**
1022     * Check that the email address is not already used for by another user in the Genome database.
1023     *
1024     * SERVER SIDE VALIDATION
1025     *
1026     * @param {Eco.Value} value
1027     * @param {Object} options
1028     * @returns {Number}
1029     */
1030    emailUnique: function (value, options) {
1031        var allOptions = jQuery.extend({profileId: 0}, options);
1032        jQuery.extend(options, allOptions); // MODIFY options BY REFERENCE
1033
1034        var cleanValue = value.getCleanValue();
1035        if (!cleanValue) {
1036            return 0; // This is not a required field validator - do not run a server side comparison.
1037        }
1038
1039        var resultCode = 0; // Presume the email address is unique unless we can prove it is not in use. Innocent until proven guilty mindset.
1040        jQuery.ajax({
1041            async: false,
1042            timeout: 1.5 * 1000, // Longer than 1.5 seconds and we should bail
1043            url: '/site/core/public/remote-helpers/profile-availability/api.php',
1044            type: 'POST',
1045            data: {
1046                command: 'is-email-registered',
1047                email: cleanValue,
1048                item_id: options.profileId
1049            },
1050            success: function (json, status, jqXhr) {
1051                if (json.result === true) {
1052                    // Uh-oh, the email appears to be registered to an existing user account.
1053                    resultCode = 1;
1054                } else {
1055                    // The email appears to be unique within the system.
1056                    // Nothing to do here
1057                }
1058            },
1059            error: function () {
1060                // Could not verify domain, but neither can we deny it
1061                cinfo('The `profile-availability` verification service timed out or reported an error.');
1062            }
1063        });
1064        return resultCode;
1065    },
1066
1067    /**
1068     * Check that the username is not already used for by another user in the Genome database.
1069     *
1070     * SERVER SIDE VALIDATION
1071     *
1072     * @param {Eco.Value} value
1073     * @param {Object} options
1074     * @returns {Number}
1075     */
1076    usernameUnique: function (value, options) {
1077        var allOptions = jQuery.extend({profileId: 0}, options);
1078        jQuery.extend(options, allOptions); // MODIFY options BY REFERENCE
1079
1080        var cleanValue = value.getCleanValue();
1081        if (!cleanValue) {
1082            return 0; // This is not a required field validator - do not run a server side comparison.
1083        }
1084
1085        var resultCode = 0; // Presume the username is unique unless we can prove it is not in use. Innocent until proven guilty mindset.
1086        jQuery.ajax({
1087            async: false,
1088            timeout: 1.5 * 1000, // Longer than 1.5 seconds and we should bail
1089            url: '/site/core/public/remote-helpers/profile-availability/api.php',
1090            type: 'POST',
1091            data: {
1092                command: 'is-username-registered',
1093                username: cleanValue,
1094                item_id: options.profileId
1095            },
1096            success: function (json, status, jqXhr) {
1097                if (json.result === true) {
1098                    // Uh-oh, the username appears to be registered to an existing user account.
1099                    resultCode = 1;
1100                } else {
1101                    // The username appears to be unique within the system.
1102                    // Nothing to do here
1103                }
1104            },
1105            error: function () {
1106                // Could not verify username is unique due to error with service.
1107                cinfo('The `profile-availability` verification service timed out or reported an error.');
1108            }
1109        });
1110        return resultCode;
1111    },
1112
1113    /**
1114     * Check that the foreign id is not already used for by another item in the Genome database.
1115     *
1116     * SERVER SIDE VALIDATION
1117     *
1118     * @param {Eco.Value} value
1119     * @param {Object} options
1120     * @returns {Number}
1121     */
1122    foreignIdUnique: function (value, options) {
1123        var allOptions = jQuery.extend({itemId: 0, itemTypes: []}, options);
1124        jQuery.extend(options, allOptions); // MODIFY options BY REFERENCE
1125
1126        var resultCode = 0; // Presume the foreign id is unique unless we can prove it is not in use. Innocent until proven guilty mindset.
1127        jQuery.ajax({
1128            async: false,
1129            timeout: 1.5 * 1000, // Longer than 1.5 seconds and we should bail
1130            url: '/site/core/public/remote-helpers/item-generics/api.php',
1131            type: 'POST',
1132            data: {
1133                command: 'is-foreign-id-unique',
1134                foreignId: value.getCleanValue(),
1135                item_id: options.itemId,
1136                itemTypes: options.itemTypes
1137            },
1138            success: function (json, status, jqXhr) {
1139                if (json.result === true) {
1140                    // Uh-oh, the email appears to be registered to an existing user account.
1141                    resultCode = 1;
1142                } else {
1143                    // The email appears to be unique within the system.
1144                    // Nothing to do here
1145                }
1146            },
1147            error: function () {
1148                // Could not verify domain, but neither can we deny it
1149                cinfo('The `item-generics` verification service timed out or reported an error.');
1150            }
1151        });
1152        return resultCode;
1153    },
1154
1155    /**
1156     * Validate the clean value is a URL.
1157     *
1158     * @param {Eco.Value<String>} value
1159     * @returns {Number} The success or error code. 0 = success. Error codes are positive integers.
1160     */
1161    url: function (value) {
1162        var url = value.getCleanValue();
1163        if (typeof (url) != 'string') {
1164            return 1; // Invalid
1165        }
1166        if (url == '' && value.getRawValue() == '') {
1167            return 0; // Empty string is valid
1168        }
1169        url = url.toLowerCase();
1170        var urlPattern = /^(http|https):\/\/(([a-zA-Z0-9$\-_.+!*'(),;:&=]|%[0-9a-fA-F]{2})+@)?(((25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|[1-9][0-9]|[0-9])(\.(25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|[1-9][0-9]|[0-9])){3}
1170)|localhost|([a-zA-Z0-9\-\u00C0-\u017F]+\.)+([a-zA-Z]{2,}))(:[0-9]+)?(\/(([a-zA-Z0-9$\-_.+!*'(),;:@&=]|\#!|%[0-9a-fA-F]{2})*(\/([a-zA-Z0-9$\-_.+!*'(),;:@&=]|\#!|%[0-9a-fA-F]{2})*)*)?(\?([a-zA-Z0-9$\-_.+!*'(),;:@&=\/?]|\#!|%[0-9a-fA-F]{2})*)?(\#([a-zA-Z0-9$\-_.+!*'(),;:@&=\/?]|%[0-9a-fA-F]{2})*)?)?$/;
1171        return (urlPattern.test(url) ? 0 : 2);
1172    },
1173
1174    /**
1175     * Validate the clean value is a URL but allow for site root relative, ie. /content/about-us
1176     * If it's not determined to be relative it falls back to normal url
1177     *
1178     * allows: /adfs #adfs and /?asdf
1179     *
1180     * @param value
1181     * @returns {number|*}
1182     */
1183    urlWithSiteRoot: function (value) {
1184        var url = value.getCleanValue();
1185        if (typeof (url) != 'string') {
1186            return 1; // Invalid
1187        }
1188        if (url == '' && value.getRawValue() == '') {
1189            return 0; // Empty string is valid
1190        }
1191        url = url.toLowerCase();
1192        var siteRootPattern = /^[\/#]{1}\??\w/;
1193        return (siteRootPattern.test(url) ? 0 : Eco.Util.Validation.url(value));
1194    },
1195
1196    /**
1197     * Validate the clean value is a phone number.
1198     *
1199     * @param {Eco.Value<String>} value
1200     * @returns {Number} The success or error code. 0 = success. Error codes are positive integers.
1201     */
1202    phone: function (value) {
1203        var phone = value.getCleanValue();
1204        if (typeof (phone) != 'string') {
1205            return 1; // Invalid
1206        }
1207        if (phone == '' && value.getRawValue() == '') {
1208            return 0; // Empty string is valid
1209        }
1210        return (/[\d]{10,15}/.test(phone) ? 0 : 2); // Is the phone number between 10 and 15 digits long (phone number max length is officially 15 digits: https://en.wikipedia.org/wiki/Telephone_numbering_plan)
1211    },
1212
1213    password: function (value) {
1214        var password = value.getCleanValue();
1215        if (typeof (password) != 'string') {
1216            return 1; // Invalid
1217        }
1218
1219        if (password == '' && value.getRawValue() == '') {
1220            return 0; // Password is blank - considered valid - use required validation too if you need non-blank passwords
1221        }
1222
1223        var passwordPattern = /^(?=.*\d)(?=.*[a-zA-Z]).{8,}$/;
1224        return passwordPattern.test(password) ? 0 : 3;
1225    },
1226
1227    /*
1228     /!**
1229     *
1230     * @param {Eco.Value} value
1231     * @param {Object} options
1232     *
1233     * @return {Number}
1234     *!/
1235     positiveInt: function(value, options) {
1236     var cleanValue = value.getCleanValue();
1237     if(cleanValue == '') {
1238     return 0; // Blank is considered valid - use required validator if you need non-blank values
1239     }
1240
1241     var int = parseInt(cleanValue, 10);
1242     return (int > 0) ? 0 : 1; // Int > 0 are positive, anything else is non-positive (does not mean negative b/c 0 is neither!)
1243     },*/
1244
1245    /**
1246     *
1247     * @param {Eco.Value} value
1248     * @param {Object} options
1249     * @returns {Number}
1250     */
1251    containsAlphabetic: function (value, options) {
1252        var allOptions = jQuery.extend({minimum: 0, maximum: -1}, options);
1253        jQuery.extend(options, allOptions); // MODIFY options BY REFERENCE
1254
1255        var cleanValue = value.getCleanValue();
1256
1257        if (typeof (cleanValue) != 'string') {
1258            return 1; // Value is not a string, invalid
1259        }
1260
1261        // Strip the value of all non-alphabetic characters
1262        cleanValue = cleanValue.replace(/[^a-zA-Z]/g, '');
1263
1264        if (cleanValue.length < options.minimum) {
1265            return 2; // Not enough alphabetic characters
1266        }
1267
1268        if (options.maximum !== -1 && cleanValue.length > options.maximum) {
1269            return 3; // Too many alphabetic characters!
1270        }
1271
1272        return 0; // The number of alphabetic characters is within the allowed range
1273    },
1274
1275    /**
1276     * Validate whether a value is a number and falls within the provided range of min/max values, inclusive.
1277     *
1278     * By default the range is infinite.
1279     *
1280     * @param {Eco.Value} value
1281     * @param {{
1282     *     minimum?: int|false,
1283     *     maximum?: int|false,
1284     * }} options
1285     * @returns {Number}
1286     */
1287    numberInRange: function (value, options) {
1288        var allOptions = jQuery.extend({minimum: 0, maximum: false}, options);
1289        jQuery.extend(options, allOptions); // MODIFY options BY REFERENCE
1290        var cleanValue = value.getCleanValue();
1291
1292        if (cleanValue === '') {
1293            return 0; // Empty values are valid - use required validator to prevent blank values
1294        }
1295
1296        // Convert to number
1297        cleanValue = +cleanValue;
1298
1299        if (typeof (cleanValue) !== 'string' && typeof (cleanValue) !== 'number') {
1300            return 1; // Value is not a string or number, invalid
1301        }
1302
1303        if (isNaN(cleanValue)) {
1304            return 2; // Value is not numeric
1305        }
1306
1307        var minimum = options.minimum;
1308        if (typeof (minimum) === 'undefined') {
1309            minimum = options.min;
1310        }
1311
1312        var maximum = options.maximum;
1313        if (typeof (maximum) === 'undefined') {
1314            maximum = options.max;
1315        }
1316
1317        if (minimum !== false && cleanValue < minimum) {
1318            return 3; // Value too low
1319        }
1320
1321        if (maximum !== false && cleanValue > maximum) {
1322            return 4; // Value too high
1323        }
1324
1325        return 0; // The value is numeric and is in the allowed numeric range (inclusive of min/max)
1326    },
1327    /**
1328     * @deprecated Use mmDdYyyy instead.
1329     * @param value
1330     * @param options
1331     * @returns {number}
1332     */
1333    isMmDdYyyy: function (value, options) {
1334        return Eco.Util.Validation.mmDdYyyy(value, options);
1335    },
1336    /**
1337     * Verifies if a string is in mm/dd/yyyy structure
1338     * Validates the digits and the allowed date/year
1339     * @param value
1340     * @param options
1341     */
1342    mmDdYyyy: function (value, options) {
1343        const LEAP_MONTH = 2;
1344
1345        const YEAR_TOO_SHORT = 1;
1346        const YEAR_TOO_LONG = 2;
1347        const MONTH_TOO_LOW = 3;
1348        const MONTH_TOO_HIGH = 4;
1349        const DAY_TOO_LOW = 5;
1350        const DAY_EXCEEDS_LEAP_MONTH_DAYS_IN_NON_LEAP_YEAR = 6;
1351        const DAY_EXCEEDS_LEAP_MONTH_DAYS_IN_LEAP_YEAR = 7;
1352        const DAY_EXCEEDS_MONTH_DAYS = 8;
1353        const INVALID_DATE = 9;
1354
1355        //let cleanValue = String(value.getCleanValue());
1356        // DO NOT USE THE ABOVE APPROACH TO GET THE VALUE - The clean value stored there is a numeric timestamp value
1357        // and hides some valuable information from our validation process that we can instead obtain from the raw
1358        // cleaned string input. To obtain that, we must manually run the desired mmDdYyyy cleaner here as the cleaned
1359        // input value a string is unobtainable otherwise.
1360        let rawValue = value.getRawValue();
1361        let cleanerOptions = jQuery.extend({}, options);
1362        Eco.Util.Cleaning.mmDdYyyy(rawValue, cleanerOptions);
1363        let cleanedRawValue = Eco.Util.getNestedKey(cleanerOptions, '_ecoFormattingDetails.mmDdYyyy.cleanedRawInput');
1364
1365        // Unable to validate
1366        if (!cleanedRawValue) {
1367            return INVALID_DATE;
1368        }
1369
1370        let parts = cleanedRawValue.match(/([\d]{2})\/([\d]{2})\/([\d]+)/);
1371
1372        if (parts === null) {
1373            return INVALID_DATE;
1374        }
1375
1376        let month = parseInt(parts[1], 10);
1377        let day = parseInt(parts[2], 10);
1378        let year = parseInt(parts[3], 10);
1379
1380        // This makes certain details available in the validation error message handler by modifying the options object
1381        // by reference as the same object is later passed through to the error message generator callback.
1382        Eco.Util.setNestedKey(options, '_ecoValidationErrorDetails.mmDdYyyy', {
1383            day: day,
1384            month: month,
1385            year: year,
1386            maximumDays: null
1387        });
1388
1389        let yearStringLength = String(year).length;
1390        if (yearStringLength < 4) {
1391            return YEAR_TOO_SHORT;
1392        } else if (yearStringLength > 4) {
1393            return YEAR_TOO_LONG;
1394        }
1395
1396        // Are first and second parts swapped?
1397        if (month > 12 && day <= 12) {
1398            let tmpDay = month;
1399            month = day;
1400            day = tmpDay;
1401            Eco.Util.setNestedKey(options, '_ecoValidationErrorDetails.mmDdYyyy.day', day);
1402            Eco.Util.setNestedKey(options, '_ecoValidationErrorDetails.mmDdYyyy.month', month);
1403        }
1404
1405        if (month < 1) {
1406            return MONTH_TOO_LOW;
1407        } else if (month > 12) {
1408            return MONTH_TOO_HIGH;
1409        }
1410
1411        // Is it a leap year? Must be non-null, divisible by 4, and if it's divisible by 100, also be divisible by 400
1412        // REFERENCE: https://docs.microsoft.com/en-us/office/troubleshoot/excel/determine-a-leap-year
1413        let isLeapYear = year !== null && year % 4 === 0 && (year % 100 === 0 ? year % 400 === 0 : true);
1414        let days30 = [4, 6, 9, 11];
1415        let maxDays;
1416        if (month === LEAP_MONTH) {
1417            // Set the number of days in the month of February
1418            maxDays = isLeapYear ? 29 : 28;
1419        } else {
1420            // Set the number of days in any other month
1421            maxDays = days30.indexOf(month) !== -1 ? 30 : 31;
1422        }
1423
1424        Eco.Util.setNestedKey(options, '_ecoValidationErrorDetails.mmDdYyyy.maximumDays', maxDays);
1425
1426        if (day < 1) {
1427            return DAY_TOO_LOW;
1428        }
1429
1430        if (day > maxDays) {
1431            // Are max days in February exceeded for the defined year?
1432            if (month === LEAP_MONTH) {
1433                return isLeapYear ? DAY_EXCEEDS_LEAP_MONTH_DAYS_IN_LEAP_YEAR : DAY_EXCEEDS_LEAP_MONTH_DAYS_IN_NON_LEAP_YEAR;
1434            } else {
1435                return DAY_EXCEEDS_MONTH_DAYS;
1436            }
1437        }
1438
1439        return 0;
1440    },
1441    /**
1442     * Verify if a string is a valid zip code in either xxxxx or xxxxx-xxxx formats.
1443     * @param value
1444     * @param options
1445     * @param {bool} options.allowBlank - default = false - allows an empty field to pass validation, so it is not required if this is set 
1446     */
1447    zipCode: function (value, options) {
1448        var cleanValue = value.getCleanValue();
1449        if(options.allowBlank){
1450            if(cleanValue===''){
1451                return 0;
1452            }
1453        }
1454        var zipCodePattern = /^\d{5}(?:[-\s]\d{4})?$/;
1455        if (!(zipCodePattern.test(cleanValue))) {
1456            return 1;
1457        }
1458        return 0;
1459    },
1460
1461    /**
1462     *
1463     * @param {Eco.Value} value
1464     * @param {object} options
1465     */
1466    sameValue: function (value, options) {
1467        var cleanValue = value.getCleanValue();
1468        if (cleanValue === '') {
1469            return 0; // Perfectly valid to not be filled in yet
1470        }
1471        var organism = options.organism;
1472        if (!options.field) {
1473            permaclog(organism);
1474            throw Error('You must define a field property in the sameValue validator options for this ^^^ organism.');
1475        }
1476
1477        var form = organism.getTopLevelDataStore();
1478        if (!(form instanceof Eco.Organism.Form)) {
1479            permaclog(organism);
1480            throw Error('Unable to locate the form organism for running the sameValue validator for this ^^^ organism. The sameValue validator can only be used inside of a form at this time as that provides a known container within which to locate the target field to compare to.');
1481        }
1482
1483        var field = form.getChildOrganismByName(options.field);
1484
1485        if (!field) {
1486            permaclog(organism, form);
1487            throw Error('Unable to locate the field ' + options.field + ' in this ^ form on this ^^ organism. The sameValue validator must have a target field to compare to in the same form at this time.');
1488        }
1489        if (field.val() === cleanValue) {
1490            return 0; // matched
1491        } else {
1492            return 1; // not a match
1493        }
1494    },
1495    /**
1496     * Mostly a utilitiy for converted fields that bring in a text validation with them
1497     * @param value
1498     * @param options
1499     * @returns {boolean}
1500     */
1501    text: function (value, options) {
1502        if (typeof (value) === 'string') {
1503            return 0;
1504        }
1505        return 1;
1506    }
1507};
1508Eco.Util.Formatting={cleaned:function(value){return value;},mmDdYyyy:function(value,options){if(!value){return'';}
1509if(typeof(value)!=='number'&&isNaN(parseInt(value,10))){cwarn('The value provided to the Eco.Util.Formatting.mmDdYyyy() was not cleaned properly first. Be sure the field is also using the mmDdYyyy cleaner. Provided Value',value);}
1510let date=new Date();date.setTime(value*1000);return String(date.getUTCMonth()+1).padStart(2,'0')+'/'+String(date.getUTCDate()).padStart(2,'0')+'/'+date.getUTCFullYear();},money:function(value,options){if(!jQuery.isPlainObject(options)){options={};}
1511var sanityCheck=value.toString().match(/[\d.]*/);if(sanityCheck[0].toString()!=value.toString()){cwarn('The value provided to the Eco.Util.Formatting.money() was not cleaned properly first. Be sure the field is also using the money cleaner. Provided Value',value);}
1512var allOptions=jQuery.extend({currencySign:'$',thousandsSeparator:',',decimal:'.'},options);jQuery.extend(options,allOptions);var regex=new RegExp('([\\d'+options.decimal+']+)');if(typeof(value)==='number'){value=value.toString();}
1513if(typeof(value)!=='string'){value='';}
1514var matches=value.match(regex);if(!(matches instanceof Array)){return'';}
1515var money=parseFloat(matches[0]);var decimalParts=(money+'').split(options.decimal);var numbers=decimalParts[0].split('').reverse();var invertedFormattedValue=[];if(decimalParts.length>1){invertedFormattedValue.unshift(options.decimal);var pennies=decimalParts[1];if(pennies.length==1){pennies+='0';}
1516pennies=pennies.substring(0,2);invertedFormattedValue.unshift(pennies+'');}
1517var k=0;for(var i=0;i<numbers.length;i++){k++;if(k==3&&i<numbers.length-1){k=0;invertedFormattedValue.push(numbers[i]);invertedFormattedValue.push(options.thousandsSeparator);}else{invertedFormattedValue.push(numbers[i]);}}
1518invertedFormattedValue.push(options.currencySign);return invertedFormattedValue.reverse().join('');},integer:function(value,options){if(value===''&&options.number_allow_blank){return'';}
1519value=(''+value).replace(/,/g,'');if(isNaN(Number(value))){return'0';}
1520var num=''+Math.round(Number(value));if(options.commaSeparateNumbers){num=num.replace(/\B(?=(\d{3})+(?!\d))/g,",");}
1521return num;},decimal:function(value,options){var commas=false;if((''+value).indexOf(',')>-1){commas=true;}
1522value=(''+value).replace(/,/g,'');var num=Number(value);if(value===''&&options.number_allow_blank){return'';}
1523if(isNaN(Number(value))){if(options.number_allow_blank){return'';}
1524return'0';}
1525var decimalLength=options.decimalLength;if(!decimalLength){decimalLength=10;}
1526if(window.math){var num;if(decimalLength||decimalLength===0){num=math.round(value,decimalLength);}else{num=math.number(value);}
1527if(options.commaSeparateNumbers||commas){var parts=num.toString().split('.');parts[0]=parts[0].replace(/\B(?=(\d{3})+(?!\d))/g,",");num=parts.join('.');}
1528return num;}else{var num=value;if(isNaN(num)){num='0';}else{num=''+parseFloat(value).toFixed(decimalLength);}
1529var parts=num.split('.');if(options.commaSeparateNumbers||commas){parts[0]=parts[0].replace(/\B(?=(\d{3})+(?!\d))/g,",");}
1530return parts.join('.');}},phone:function(value){if(!value){return'';}
1531var parts=value.match(/([\d]{0,5})([\d]{3})([\d]{3})([\d]{4})$/);if(!parts||!parts.length){return value;}
1532var phone=parts[1]?'+'+parts[1]+' ':'';phone+='('+parts[2]+') '+parts[3]+'-'+parts[4];return phone;},timecode:function(value){if(!value){return'00:00:00';}
1533var seconds=value%60;value=value-seconds;var minutes=Math.round((value%3600)/ 60);value=value-(minutes*60);var hours=value / 3600;seconds=''+seconds;if(seconds.length<2){seconds='0'+seconds;}
1534minutes=''+minutes;if(minutes.length<2){minutes='0'+minutes;}
1535hours=''+hours;if(hours.length<2){hours='0'+hours;}
1536return hours+':'+minutes+':'+seconds;},arrayToText:function(value){if(!jQuery(value)){return value;}
1537if(typeof(value)=='string'){return value;}
1538if(jQuery.isArray(value)&&value.length){return value.join('\n');}
1539return'';},arrayAsString:function(value){if(Array.isArray(value)){return value.join(', ');}
1540return value;},toUpperCase:function(value){if(typeof(value)==='string'){return value.toUpperCase();}
1541return'';},toLowerCase:function(value){if(typeof(value)==='string'){return value.toLowerCase();}
1542return'';},text:function(value){return''+value;}};
1543Eco.Util.Formatting.getDisplayValue=function(value,options){var localValues=options.fieldDisplayValues;if(localValues){if(localValues['data']&&localValues['sort']){var newFormValues={};jQuery.each(localValues['data'],function(r,valueData){newFormValues[valueData['key']]=valueData['value'];});localValues=newFormValues;}
1544if(localValues[value]){return localValues[value];}}
1545var formValues=options.item_form_display_values;if(formValues){if(formValues['data']&&formValues['sort']){var newFormValues={};jQuery.each(formValues['data'],function(r,valueData){newFormValues[valueData['key']]=valueData['value'];});formValues=newFormValues;}
1546if(formValues[value]){return formValues[value];}}
1547return value;};
1548if(!Eco.Traits){Eco.Traits={};}
1549Eco.Traits.EventSystem={_eventStack:{},bindEvent:function(eventName,callback){if(!eventName||!callback){console.warn("You must supply an eventName and a callback function");return false;}
1550if(typeof(callback)!='function'){console.warn("This callback is not a function",callback);return false;}
1551eventName=eventName.toLowerCase();if(!this._eventStack.hasOwnProperty(eventName)){this._eventStack[eventName]=[];}
1552if(this._eventStack[eventName].indexOf(callback)==-1){this._eventStack[eventName].push(callback);}},unbindEvent:function(eventName,callback){if(!eventName||!callback){console.warn("You must supply an eventName and a callback function");return false;}
1553if(typeof(callback)!='function'){console.warn("This callback is not a function",callback);return false;}
1554eventName=eventName.toLowerCase();if(!this._eventStack.hasOwnProperty(eventName)){var self=this;jQuery.each(this._eventStack[eventName],function(n,functionInstance){if(functionInstance==callback){delete self._eventStack[eventName][n];return false;}});}},triggerEvent:function(eventName,args){if(!eventName){return false;}
1555eventName=eventName.toLowerCase();var self=this;if(this._eventStack.hasOwnProperty(eventName)&&this._eventStack[eventName].length){jQuery.each(this._eventStack[eventName],function(n,functionInstance){if(typeof(functionInstance)=='function'){functionInstance.apply(self,args);}});}
1556return true;},getCallbacksForEvent:function(eventName){if(!eventName){return false;}
1557eventName=eventName.toLowerCase();if(this._eventStack.hasOwnProperty(eventName)){return this._eventStack[eventName]}
1558return false;},unbindAllEvents:function(eventName){if(!eventName){return false;}
1559eventName=eventName.toLowerCase();delete this._eventStack[eventName];}};
1560Eco.OrganismController=(function(){var OrganismController=Eco.BaseClass.extend({_initTimeWarningThreshold:250,_isScanning:0,_scannerInstances:new Set(),_fullScanDone:false,_organisms:[],_scanCompleteQueue:[],_jqel_purgatory:null,_scanCompleteTimeout:null,__c
1560onstruct:function(){},getScanProgress(){if(!this.isScanning()){return 100;}
1561let total=0;let remaining=0;for(const scanner of this._scannerInstances){total+=scanner.getTotal();remaining+=scanner.getRemaining();}
1562console.log(`Total: ${total} :: Remaining: ${remaining}`);if(!remaining){if(!total){return 0;}else{return 100;}}
1563const diff=total-remaining;const progress=Math.round((diff / total)*100);return progress;},create:function(organismClassName,jqel,data){if(!(typeof(organismClassName)==='string')){console.log(organismClassName);throw'Unable to create organism from a non-string class name ^^^. We have to know the class name.';}
1564if(!(jqel instanceof jQuery)){if(jqel instanceof Object&&typeof(data)==='undefined'){data=jqel;}
1565if(typeof(jqel)==='string'&&jqel!==''){jqel=jQuery(jqel);}else{jqel=jQuery('<div></div>');}
1566if(!(this._jqel_purgatory instanceof jQuery)){this._jqel_purgatory=jQuery('<div id="EcoOrganismPurgatory" style="height: 0; overflow: hidden; position: fixed; top: -1px;"></div>');this._jqel_purgatory.appendTo('body');}
1567this._jqel_purgatory.append(jqel);}
1568var selector=this._convertClassNameToOrganismSelector(organismClassName);jqel.addClass(selector);if(data instanceof Object){jQuery.each(data,function(key,value){jqel.data(key,value);});}
1569return this.scanSync(jqel);},scanSync:function(context){this._isScanning++;context=jQuery(context);if(context.size()!==1){throw`Scan sync called with ${context.size()} elements. You must provide exactly one element to the Eco.OrganismController.scanSync() method. If you need to scan multiple elements, create a loop in your code and call this method with the elements individually.`;}
1570const contextElement=context.get(0);let organisms=[];try{const os=new EcoOrganismScanner(contextElement);organisms=os.runSync();}catch(e){this._isScanning--;throw e;}
1571this._isScanning--;this._processScanCompleteQueue();return organisms;},scan:async function(context){this._isScanning++;context=jQuery(context);if(context.size()!==1){throw`Scan called with ${context.size()} elements. You must provide exactly one element to the Eco.OrganismController.scan() method. If you need to scan multiple elements, create a loop in your code and call this method with the elements individually.`;}
1572const contextElement=context.get(0);let scanner;let scanPromise;try{scanner=new EcoOrganismScanner(contextElement);this._scannerInstances.add(scanner);scanPromise=scanner.run();}catch(e){this._isScanning--;throw e;}
1573return scanPromise.then(organisms=>{this._scannerInstances.delete(scanner);this._isScanning--;this._processScanCompleteQueue();return organisms;});},_processScanCompleteQueue:function(){if(this._isScanning>0){return;}
1574while(this._scanCompleteQueue.length){var item=this._scanCompleteQueue.shift();item.fn();}
1575Eco.OrganismDataStore.processUpdateDisplayValueQueue();Eco.OrganismDataStore.enableUpdateDisplayValueTimer();},isFullScanDone:function(){return this._fullScanDone;},setFullScanDone:function(done){this._fullScanDone=done;},isScanning:function(){return this._isScanning>0;},initialize:function(jqel_organism){const start=Date.now();if(!(jqel_organism instanceof jQuery)){console.log(jqel_organism);throw Error('Invalid jQuery object provided to Eco.Organism.initialize() ^^^');}
1576const name=this._getName(jqel_organism);if(!name){console.log(jqel_organism);throw Error('The element provided ^^^ to Eco.Organism.initialize() is not an identifiable organism container. Be sure to put an organism_* class on that element.');}
1577const className='Eco.'+this._convertNameToClassName(name);const organismClass=className.split('.').reduce(function(obj,value,index,sourceArray){const result=obj[value];if((result instanceof Object)||(index===sourceArray.length-1)){return result;}
1578return{};},window);if(typeof(organismClass)==='undefined'||!(organismClass instanceof Object)){console.log(jqel_organism);console.warn('Invalid Organism class: '+className+'. Derived from: '+name+' on this ^^^ element. Verify that the file containing the '+className+' class is loading.');return{organism:null,className,time:0};}else{if(jQuery.isEmptyObject(organismClass)){console.log(jqel_organism);throw Error('Could not initialize new organism '+className+' because it is an empty object. Make sure you are using the eco organism extending system properly. Also verify that all the dependencies for your organism are loaded.');}
1579const startDate=new Date();organismClass.prototype.__cssSelector=name;organismClass.prototype.__dataName=name;organismClass.prototype.__jsName=className;const organism=new organismClass(jqel_organism);if(organism instanceof Eco.OrganismDataStore){if(organism.initializeOwnEntityName()!==true){return{organism:false,className,time:0};}}
1580const endDate=new Date();const totalTime=endDate-startDate;if(totalTime>this._initTimeWarningThreshold){console.log(organism);console.warn('Organism initialization threshold exceeded for ^^^ ('+className+'). Time: '+(totalTime / 1000)+' seconds');}
1581this._organisms.push(organism);jqel_organism.trigger('eco_initialized_organism',organism);return{organism,className,time:Date.now()-start};}},getAllOrganisms:function(){return this._organisms;},_convertNameToClassName:function(name){return Eco.Util.toDotCase(name,{splitOnUpperCase:false});},_convertClassNameToOrganismSelector:function(className){return'organism_'+className.replace(/\.([A-Z])/g,function(match,p1){return'-'+p1.toLowerCase();}).replace('Eco-organism-','');},onScanComplete:function(name,callback,priority){if(!name){throw Error('You MUST provide a name when using the Eco.OrganismController.onScanComplete(name, callback, priority) method.');}
1582if(!callback){throw Error('You MUST provide a callback when using the Eco.OrganismController.onScanComplete(name, callback, priority) method.');}
1583if(priority===false){if(this._scanCompleteQueue.length){priority=this._scanCompleteQueue[this._scanCompleteQueue.length-1]+1;}else{priority=-1;}}
1584if(!priority){throw Error('You MUST provide a priority when using the Eco.OrganismController.onScanComplete(name, callback, priority) method. You can provide boolean false to just use the next lowest priority (which is actually a higher number than last used priority).');}
1585if(priority>0){priority=-priority;}
1586this._scanCompleteQueue.push({name:name,priority:priority,fn:callback});this._scanCompleteQueue.sort(function(a,b){return b.priority-a.priority;});if(this._isScanning===0){clearTimeout(this._scanCompleteTimeout);var self=this;this._scanCompleteTimeout=setTimeout(function(){self._processScanCompleteQueue();},50);}},_getName:function(jqel_organism){var classString=jqel_organism.attr('class');var matches=classString.match(/organism_[\d\w-_]*/);if(!matches.length){return'';}
1587return matches[0];},getOrganismByUniqueInternalId:function(id){for(var organismKey in this._organisms){if(!this._organisms.hasOwnProperty(organismKey)){continue;}
1588var organism=this._organisms[organismKey];if(id==organism.getUniqueInternalId()){return organism;}}
1589return false;}});return new OrganismController();})();class EcoOrganismScanner{static#batchThreshold=2500;#p;#resolve;#reject;#contextElement;#elements=new Set();#organisms=[];#dataStores=[];#total=0;#organismStatMap=new Map();constructor(contextElement){this.#p=new Promise((resolve,reject)=>{this.#resolve=resolve;this.#reject=reject;});this.#contextElement=contextElement;this.#elements=this.#selectForScan();this.#total=this.#elements.size;}
1590run(){this.#queueBatch();return this.#p;}
1591runSync(){return this.#runBatch(true);}
1592getTotal(){return this.#total;}
1593getRemaining(){return this.#elements.size;}#queueBatch(){setTimeout(()=>{this.#runBatch();},1);}#runBatch(runSync=false){const batchStart=Date.now();const max=batchStart+EcoOrganismScanner.#batchThreshold;let initCount=0;for(const el of this.#elements){if(!runSync&&Date.now()>=max){this.#queueBatch();return;}
1594const{organism,className,time}=Eco.OrganismController.initialize(jQuery(el));if(organism===false){el.remove();}else if(organism===null){el.classList.add('mod_organismInitialized');}else{if(!this.#organismStatMap.has(className)){this.#organismStatMap.set(className,{count:0,time:0});}
1595const organismStat=this.#organismStatMap.get(className);this.#organismStatMap.set(className,{count:organismStat.count+1,time:organismStat.time+time});this.#organisms.push(organism);if(organism instanceof Eco.OrganismDataStore&&organism.isTopLevelDataStore()){this.#dataStores.push(organism);}}
1596initCount++;this.#elements.delete(el);}
1597this.#elements=this.#selectForScan();this.#total+=this.#elements.size;if(this.#elements.size){if(runSync){return this.#runBatch(runSync);}else{this.#queueBatch();return;}}
1598this.#locateDataStores();this.#initDataStoreValuesAndDisplay();this.#flagDisabledOrganisms();this.#flagReadOnlyOrganisms();for(const value of this.#organismStatMap.values()){value.average=value.time / value.count;}
1599if(runSync){return this.#organisms;}else{this.#resolve(this.#organisms);}}#locateDataStores(){const jqel=jQuery(this.#contextElement);const organism=jqel.data('organism');if(!organism||!(organism instanceof Eco.OrganismDataStore)){return;}
1600var organismDataStore=jqel.ecoData('ecoOrganismDataStore');var hasDataStoreAlready=false;if(organismDataStore){for(var i=0;i<this.#dataStores.length;i++){if(organismDataStore===this.#dataStores[i]){hasDataStoreAlready=true;break;}}
1601if(!hasDataStoreAlready){this.#dataStores.unshift(organismDataStore);}}}#initDataStoreValuesAndDisplay(){for(const organismDataStore of this.#dataStores){var emptyObjectForValues={};organismDataStore.initializeValue(emptyObjectForValues,true);organismDataStore.initializeDisplay();}}#flagDisabledOrganisms(){var jqel_disabled=jQuery(this.#contextElement).find('.mod_disabled[class*=organism_]').addBack('.mod_disabled[class*=organism_]');jqel_disabled.each(function(){var jqel=jQuery(this);var organism=jqel.data('organism');if(organism&&organism.disable){organism.disable();}});}#flagReadOnlyOrganisms(){var jqel_readOnly=jQuery(this.#contextElement).find('.mod_readOnly[class*=organism_]').addBack('.mod_readOnly[class*=organism_]');jqel_readOnly.each(function(){var jqel=jQuery(this);var organism=jqel.data('organism');if(organism&&organism.setReadOnly){organism.setReadOnly(true);}});}#selectForScan(){const selector=`[class*='organism_']:not(.mod_organismInitialized)`;let elements=this.#contextElement?.querySelectorAll?this.#contextElement.querySelectorAll(selector):false;if(elements){elements=[...elements];}else{elements=[];}
1602if(this.#contextElement?.matches?this.#contextElement.matches(selector):false){elements.unshift(this.#contextElement);}
1603return new Set(elements);}}
1604Eco.Traits=Eco.Util.getNamespace('Eco.Traits');Eco.Traits.DataStore={_ownEntityName:null,_values:null,_initializeOwnEntityName:function(){console.log(this);throw Error('_initializeOwnEntityName() is not yet implemented in your class ^^^.');},_setOwnEntityName:function(name){this._ownEntityName=name;this._addChildEntityName(name);},_setValue:function(value,name){if(!name){name=this.getOwnEntityName();}
1605if(!this._values){this._values={};}
1606if(name){Eco.Util.setNestedKey(this._values,name,value);}},_removeValue:function(name){if(this.hasValueByName(name)){this._childEntityNames.splice(this._childEntityNames.indexOf(name),1);Eco.Util.removeNestedKey(this._values,name);console.warn('UNTESTED removed value '+name,this._childEntityNames,this._values);}},removeEntityByName:function(name){var dataStore=this.getParentDataStore();var locationIndex=dataStore._childEntityNames.indexOf(name);if(locationIndex>-1){dataStore._childEntityNames.splice(locationIndex,1);if(dataStore._values&&dataStore._values.hasOwnProperty(name)){delete dataStore._values[name];Eco.Util.removeNestedKey(dataStore._values,name);}}},_getValue:function(name){if(!name){name=this.getOwnEntityName();}
1607if(!this._values){this._values={};}
1608return Eco.Util.getNestedKey(this._values,name,undefined);},_getChildEntityNames:function(){return this._childEntityNames;},_getAllValues:function(){return Basix.extend(Basix.EXTEND_RECURSIVE,{},this._values);},_getAllValuesByReference:function(){return this._values;},_getAllChangedValues:function(){var values={};for(var i=0;i<this._changedEntityNames.length;i++){var fieldName=this._changedEntityNames[i];if(this._values.hasOwnProperty(fieldName)){var value=this._values[fieldName];values[fieldName]=value;}}
1609return Basix.extend(Basix.EXTEND_RECURSIVE,{},values);},_isSameValue:function(value,name){if(!name){name=this.getOwnEntityName();}
1610var a=JSON.stringify(value);var b=JSON.stringify(this.getValue(name));return(a==b);},getOwnEntityName:function(){return this._ownEntityName;},setValue:function(value,name){this._setValue(value,name);},getValue:function(name){return this._getValue(name);},hasValueByName:function(name){return(this._childEntityNames.indexOf(name)>=0);},initializeOwnEntityName:function(){var name=""+this._initializeOwnEntityName();var oName=name;
1610if(this.checkTopLevelEntityExistsByName(name)){name=this.onDuplicateEntityName(name);}
1611if(name===false){console.warn('ENTITY EXISTS FOR NAME: '+oName);return false;}
1612this._setOwnEntityName(name);return true;},onDuplicateEntityName:function(){return false;},getChildEntityNames:function(){return this._getChildEntityNames();},getAllValues:function(){return this._getAllValues();},checkTopLevelEntityExistsByName:function(name){var dataStore=this.getTopLevelParentDataStore();var childEntityNames=dataStore.getChildEntityNames();if(childEntityNames!==null&&typeof(name)==='string'){if(this.jqel.ecoData('removeIfDuplicate')){return childEntityNames.indexOf(name)>-1;}}
1613return false;}};
1614Eco.Organism=Eco.BaseClass.extend({__cssSelector:null,__dataName:null,__jsName:null,__renderDelay:0,jqel:null,_uniqueInternalId:false,__construct:function(jqel_organism){if(!(jqel_organism instanceof jQuery)||!jqel_organism.length){console.log(this,jqel_organism);throw Error('Invalid jQuery collection provided to Eco.Organism.__construct() ^^^');}
1615this.jqel=jqel_organism;this.jqel.each((i,el)=>{el.classList.add('mod_organismInitialized');});this.jqel.data('organism',this);this._uniqueInternalId=Eco.Util.getRandomString(12);this.jqel.attr('data-unique_internal_id',this._uniqueInternalId);this.jqel.data(this.__dataName,this);},__destroy:function(){this.__destroyChildren();this.jqel.removeClass('mod_organismInitialized '+this.__cssSelector);this.jqel.data('organism',undefined);this.jqel.data(this.__dataName,undefined);},__destroyChildren:function(){var children=this.getChildOrganisms();for(var i=children.length-1;i>=0;i--){if(children.length>i&&children[i]&&children[i].destroy){children[i].destroy();}}},getUniqueInternalId:function(){return this._uniqueInternalId;},getChildOrganisms:function(jqel_parent){if(!jqel_parent){jqel_parent=this.jqel;}
1616var jqel_organisms=jqel_parent.find('[class*=organism_]');var organisms=[];jqel_organisms.each(function(index,element){const organism=jQuery(element).data('organism');if(!(organism instanceof Eco.Organism)){console.warn('Uninitialized child organism detected. Unable to obtain an organism instance from this element.',element);return;}
1617organisms.push(organism);});return organisms;},getImmediateChildOrganisms:function(jqel_parent){if(!jqel_parent){jqel_parent=this.jqel;}
1618var jqel_exclusionList=jqel_parent.find('[class*=organism_] [class*=organism_]');var jqel_organisms=jqel_parent.find('[class*=organism_]').not(jqel_exclusionList);var organisms=[];jqel_organisms.each(function(index,element){const organism=jQuery(element).data('organism');if(!(organism instanceof Eco.Organism)){console.warn('Uninitialized immediate child organism detected. Unable to obtain an organism instance from this element.',element);return;}
1619organisms.push(organism);});return organisms;},getImmediateChildOrganismDataStores:function(jqel_parent){if(!jqel_parent){jqel_parent=this.jqel;}
1620var jqel_exclusionList=jqel_parent.find('.molecule_dataStore .molecule_dataStore');var jqel_allImmediateChildOrganisms=jqel_parent.find('.molecule_dataStore').not(jqel_exclusionList);var filteredImmediateChildOrganisms=[];var self=this;jQuery.each(jqel_allImmediateChildOrganisms,function(){var jqel=jQuery(this);var organism=jqel.data('organism');if(typeof(organism)==='undefined'){console.log(self,jqel);console.warn('Eco.Organism.Form.getImmediateChildOrganismDataStores() There is no organism instance available on this ^^^ element which has the molecule_dataStore class on it. molecule_dataStore is VERY special and should NEVER EVER EVER be used except by the organism data store system.');}
1621if(organism instanceof Eco.OrganismDataStore){filteredImmediateChildOrganisms.push(organism);}});return filteredImmediateChildOrganisms;},getChildOrganismByName:function(name){if(!name){console.log(this,this.jqel);throw Error('Eco.Organism.Form.getChildOrganismByName() received an invalid name.');}
1622var jqel_target=this.jqel.find('[name="'+name+'"]');if(!jqel_target.size()){jqel_target=this.jqel.find('[data-name="'+name+'"]');}
1623if(!jqel_target.size()){return false;}
1624var childOrganism=jqel_target.ecoData('organism');if(!childOrganism||childOrganism.getOwnEntityName()!==name){return false;}
1625return childOrganism;},destroy:function(){var result=this.jqel.trigger('eco_destroy_organism',[this]);if(result!==false){this.__destroy();}},_missingElementError:function(className,elementPurpose,hintMessage){console.log(this,this.jqel);throw Error('Missing '+elementPurpose+' element in the organism ^^^ for '+className+'. '+hintMessage);},_canShowWarnings:function(){if(this.jqel instanceof jQuery&&this.jqel.data('ecoSuppressWarnings')===true){return false;}
1626return true;},_warn:function(message,data){if(this._canShowWarnings()){console.log(this,this.jqel);console.warn(message);if(typeof data!=='undefined'){console.warn(data);}
1627console.log('- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -');}},_error:function(message,data){console.log(this,this.jqel);if(typeof data!=='undefined'){console.warn(data);}
1628throw Error(message);},_organismMetaData:null,_parentDataStore:null,_initializeMetaData:function(){if(this._organismMetaData===null){this._organismMetaData={};}},getOwnMetaData:function(propertyName){if(this._organismMetaData instanceof Object&&this._organismMetaData.hasOwnProperty(propertyName)){return this._organismMetaData[propertyName];}
1629return null;},_topLevel_parentGetMetaData:function(propertyName){return this.getOwnMetaData(propertyName);},parentGetMetaData:function(propertyName){var dataStore=this._parentDataStore;if(!dataStore){dataStore=this.jqel.ecoData('ecoOrganismDataStore');}
1630if(!dataStore){return null;}
1631return dataStore.getMetaData(propertyName);},_topLevel_getMetaData:function(propertyName){return this.getOwnMetaData(propertyName);},getMetaData:function(propertyName){var value=this.getOwnMetaData(propertyName);if(value===null){value=this.parentGetMetaData(propertyName);}
1632return value;},removeOwnMetaData:function(propertyName){if(this._organismMetaData instanceof Object&&this._organismMetaData.hasOwnProperty(propertyName)){delete this._organismMetaData[propertyName];}},setOwnMetaData:function(propertyName,value){this._initializeMetaData();this._organismMetaData[propertyName]=value;},enable:function(){this.jqel.data('disabled',false);this.jqel.removeClass('mod_disabled');this.jqel.find('select,input,textarea,button').not(this.jqel.find('.mod_disabled select, .mod_disabled input, .mod_disabled textarea')).prop('disabled',false);},disable:function(){this.jqel.data('disabled',true);this.jqel.addClass('mod_disabled');this.jqel.find('select,input,textarea,button').prop('disabled',true);},isDisabled:function(){var disabled=this.jqel.ecoData('disabled');
1632if(disabled===true){return true;}else{return false;}},setReadOnly:function(onOff){if(!onOff){onOff=false;}
1633this.jqel.data('readOnly',onOff);if(onOff){this.jqel.addClass('mod_readOnly');this.jqel.find('select,input,textarea').attr('readonly',true);}else{this.jqel.removeClass('mod_readOnly');this.jqel.find('select,input,textarea').not(this.jqel.find('.mod_readOnly select, .mod_readOnly input, .mod_readOnly textarea')).attr('readonly',false);}},isReadOnly:function(){var readOnly=this.jqel.ecoData('readOnly');if(readOnly===true){return true;}else{return false;}},addModifier:function(mod){this.jqel.addClass(mod);return this;},removeModifier:function(mod){this.jqel.removeClass(mod);return this;},toggleModifier:function(mod){this.jqel.toggleClass(mod);return this;},hasModifier:function(mod){return this.jqel.hasClass(mod);},hasFocus:function(){return this.jqel[0].contains(document.activeElement);}});Eco.Organism.resizeWindow=function(jqel_window){if(!Eco.Organism.resizeTimer){if(!jqel_window){jqel_window=jQuery(window);}
1634Eco.Organism.resizeTimer=setTimeout(function(){Eco.Organism.resizeTimer=false;jqel_window.trigger('resize');},100);}};
1635Eco.OrganismError=Eco.BaseClass.extend({_organismType:Eco.Organism,_code:null,_message:null,_organism:null,_category:null,__construct:function(code,message,organism,category){if(!(organism instanceof this._organismType)){console.log(this);throw Error('Eco.Organism.__construct(): The organism provided must be an instance of Eco.Organism. Triggered by: ^^^');}
1636code=parseInt(code,10);if(isNaN(code)||code<1){console.log(organism);throw Error('Eco.Organism.__construct(): The error code must be a valid number greater than 0. Triggered by: ^^^');}
1637if(!message||typeof(message)!='string'){console.log(organism);throw Error('Eco.Organism.__construct(): The error message must be a non-empty string. Triggered by: ^^^');}
1638if(typeof(category)!='string'){console.log(organism);throw Error('Eco.Organism.__construct(): The category must be a string. Triggered by: ^^^');}
1639this._code=code;this._message=message;this._organism=organism;this._category=category;},getCode:function(){return this._code;},getMessage:function(){return this._message;},getOrganism:function(){return this._organism;},getCategory:function(){return this._category;}});
1640Eco.OrganismValue=Eco.Value.extend({});
1641window._VALIDATION_ERRORS_DISABLED_DEVELOPER_MESSAGE_COUNT=100;window._VALIDATION_ERRORS_SKIPPED_DEVELOPER_MESSAGE_COUNT=100;Eco.OrganismDataStore=(function(){let OrganismDataStore={_parentDataStore:null,_isTopLevelDataStore:false,_isInitialValueSet:false,_initialCleanValue:null,_initialRawValue:null,_previousCleanValue:null,_previousRawValue:null,_changedEntityNames:null,_cleaners:null,_validators:null,_formatters:null,_cleaningEnabled:true,_validationEnabled:true,_formattingEnabled:true,_errors:null,_isValidated:false,_validationErrorsEnabled:false,_slowValidationEnabled:true,_processingErrorsDuringValidation:false,_hasInitializedValue:false,_hasInitializedDisplay:false,_hasInitializedDom:false,_maskData:false,_valueUpdateCallbacks:false,_isPristine:true,_allowChangeEventTrigger:false,_validationErrorsWarningMessageEnabled:false,_validationSkippedWarningMessageEnabled:false,_valueChangeNeedsBroadcast:false,VALIDATION_ERRORS_DISABLED_DEVELOPER_MESSAGE:'Validation errors are currently disabled (but the validation process will still run). This means the onValueError() methods will not be called at this time (which means error messages will not be displayed). Use organism.enableValidationErrors() to re-enable that call.',VALIDATION_ERRORS_SKIPPED_DEVELOPER_MESSAGE:'Validation is currently skipped due to the meta-data on the data store instance. Use organism.setOwnMetaData("skipValidation", false) to re-enable it.',__construct:function(jqel_organism){this._changedEntityNames=[];this._childEntityNames=[];this._errors=[];this._cleaners=[];this._validators=[];this._formatters=[];this._parent(jqel_organism);this._findParentDataStore();this._initializeCleaners();this._initializeValidators();this._initializeFormatters();this.jqel.data('ecoOrganismDataStore',this);this.jqel.addClass('molecule_dataStore');},_topLevel_parentDisableCleaning:function(){this._cleaningEnabled=false;},parentDisableCleaning:function(){if(this._isTopLevelDataStore){this._topLevel_parentDisableCleaning();return;}
1642this._parentDataStore.disableCleaning();},disableCleaning:function(){this.parentDisableCleaning();},_topLevel_parentEnableCleaning:function(){this._cleaningEnabled=true;},parentEnableCleaning:function(){if(this._isTopLevelDataStore){this._topLevel_parentEnableCleaning();return;}
1643this._parentDataStore.enableCleaning();},enableCleaning:function(){this.parentEnableCleaning();},_topLevel_parentIsCleaningEnabled:function(){return this._cleaningEnabled;},parentIsCleaningEnabled:function(){return this._topLevel_parentIsCleaningEnabled();},isCleaningEnabled:function(){return this.parentIsCleaningEnabled();}
1643,_topLevel_parentDisableValidation:function(){this._validationEnabled=false;},parentDisableValidation:function(){if(this._isTopLevelDataStore){this._topLevel_parentDisableValidation();return;}
1644this._parentDataStore.disableValidation();},disableValidation:function(){this.parentDisableValidation();},_topLevel_parentEnableValidation:function(){this._validationEnabled=true;},parentEnableValidation:function(){if(this._isTopLevelDataStore){this._topLevel_parentEnableValidation();return;}
1645this._parentDataStore.enableValidation();},enableValidation:function(){this.parentEnableValidation();},_topLevel_parentIsValidationEnabled:function(){return this._validationEnabled;},parentIsValidationEnabled:function(){if(this._isTopLevelDataStore){return this._topLevel_parentIsValidationEnabled();}
1646return this._parentDataStore.isValidationEnabled();},isValidationEnabled:function(){return this.parentIsValidationEnabled();},_topLevel_parentDisableFormatting:function(){this._formattingEnabled=false;},parentDisableFormatting:function(){if(this._isTopLevelDataStore){this._topLevel_parentDisableFormatting();return;}
1647this._parentDataStore.disableFormatting();},disableFormatting:function(){this.parentDisableFormatting();},_topLevel_parentEnableFormatting:function(){this._formattingEnabled=true;},parentEnableFormatting:function(){if(this._isTopLevelDataStore){this._topLevel_parentEnableFormatting();return;}
1648this._parentDataStore.enableFormatting();},enableFormatting:function(){this.parentEnableFormatting();},_topLevel_parentIsFormattingEnabled:function(){return this._formattingEnabled;},parentIsFormattingEnabled:function(){if(this._isTopLevelDataStore){return this._topLevel_parentIsFormattingEnabled();}
1649return this._parentDataStore.isFormattingEnabled();},isFormattingEnabled:function(){return this._formattingEnabled;},_topLevel_parentEnableValidationErrors:function(){this._validationErrorsEnabled=true;},_topLevel_parentDisableValidationErrors:function(){this._validationErrorsEnabled=false;},_topLevel_parentDisableSlowValidation:function(){this._slowValidationEnabled=false;},_topLevel_parentEnableSlowValidation:function(){this._slowValidationEnabled=true;},_topLevel_parentIsSlowValidationEnabled:function(){return this._slowValidationEnabled;},parentEnableValidationErrors:function(){if(this._isTopLevelDataStore){this._topLevel_parentEnableValidationErrors();return;}
1650this._parentDataStore.enableValidationErrors();},enableValidationErrors:function(){this.parentEnableValidationErrors();},parentDisableValidationErrors:function(){if(this._isTopLevelDataStore){this._topLevel_parentDisableValidationErrors();return;}
1651this._parentDataStore.disableValidationErrors();},disableValidationErrors:function(){this.parentDisableValidationErrors();},parentDisableSlowValidation:function(){if(this._isTopLevelDataStore){this._topLevel_parentDisableSlowValidation();return;}
1652this._parentDataStore.disableSlowValidation();},disableSlowValidation:function(){this.parentDisableSlowValidation();},parentEnableSlowValidation:function(){if(this._isTopLevelDataStore){this._topLevel_parentEnableSlowValidation();return;}
1653this._parentDataStore.enableSlowValidation();},enableSlowValidation:function(){this.parentEnableSlowValidation();},parentIsSlowValidationEnabled:function(){if(this._isTopLevelDataStore){return this._topLevel_parentIsSlowValidationEnabled();}
1654return this._parentDataStore.isSlowValidationEnabled();},isSlowValidationEnabled:function(){return this.parentIsSlowValidationEnabled();},setDataMask:function(setting){this._maskData=setting===true;},isDataMask:function(){return this._maskData;},_topLevel_parentGetDataMask:function(){return this;},parentGetDataMask:function(){if(this._isTopLevelDataStore){return this._topLevel_parentGetDataMask();}
1655return this._parentDataStore.getDataMask();},getDataMask:function(){if(this.isDataMask()){return this;}
1656return this.parentGetDataMask();},getParentDataMask:function(){this.parentGetDataMask();},initializeValue:function(values,isRootNodeOfInitializationCall){if(this._hasInitializedValue!==true){const rawValue=this.readDomValue();const hasValue=typeof rawValue!=='undefined';const value=new Eco.OrganismValue(rawValue,this.cleanValue(rawValue));if(hasValue){Eco.Util.setNestedKey(values,this.getOwnEntityName(),value.getCleanValue());}
1657this._initializeValueForChildren(values);if(this.isTopLevelDataStore()){this._values=values;}
1658if(hasValue){this._setInitialValue(value);}
1659this._hasInitializedValue=true;}else if(isRootNodeOfInitializationCall===true){const targetMaskedDataStore=this.getDataMask();if(targetMaskedDataStore!==this){targetMaskedDataStore.initializeValue(values,true);}else{const value=this.getValue();if(jQuery.isPlainObject(value)){this._initializeValueForChildren(value);this.onNewChildDataStoresInitialized(value);}}}},reInitializeTopLevelDataStore:function(){const ds=this.getTopLevelDataStore();ds._hasInitializedValue=false;ds._hasInitializedDisplay=false;const newValues={};const flatValues=Eco.Util.convertNestedObjectToFlatObject(ds.getAllValues());for(const fieldName in flatValues){if(!flatValues.hasOwnProperty(fieldName)){continue;}
1660const field=ds.getChildOrganismByName(fieldName);if(!(field instanceof Eco.OrganismDataStore)||field.isTopLevelDataStore()){continue;}
1661Eco.Util.setNestedKey(newValues,fieldName,field.getValue());}
1662this.initializeValue(newValues,true);this.initializeDisplay();},onNewChildDataStoresInitialized:function(value){const organismValue=new Eco.OrganismValue(value,this.cleanValue(value));this.setValueFromInput(organismValue,this);},_setInitialValue:function(value){if(!this._isInitialValueSet&&this.getOwnEntityName()!==''){const rawValue=value.getRawValue();const cleanValue=value.getCleanValue();this._initialCleanValue=JSON.stringify(cleanValue);this._initialRawValue=JSON.stringify(rawValue);this._previousCleanValue=JSON.stringify(cleanValue);this._previousRawValue=JSON.stringify(rawValue);this._isInitialValueSet=true;}},_initializeValueForChildren:function(values){const children=this.getImmediateChildOrganismDataStores();for(const i in children){if(!children.hasOwnProperty(i)){continue;}
1663const child=children[i];child.initializeValue(values);}},initializeDisplay:function(){const children=this.getImmediateChildOrganismDataStores();for(const i in children){if(!children.hasOwnProperty(i)){continue;}
1664const child=children[i];child.initializeDisplay();}},_validate:function(){return[];},validate:function(){if(!this.isValidationEnabled()){console.log('Validation is currently disabled. Use organism.enableValidation() to re-enable it.',this);return null;}
1665if(this.getMetaData('skipValidation')===true){this.displayValidationSkippedWarningMessage();return null;}
1666if(this.isValidated()){if(this.areValidationErrorsEnabled()){this._processingErrorsDuringValidation=true;jQuery.each(this._errors,function(index,error){if(!(error instanceof Eco.OrganismDataStoreError)){console.log(error);console.error('Invalid error object ^^^ at index: '+index);return;}
1667const organism=error.getOrganism();organism.onValueError([error],organism.readValue(),organism);});this._processingErrorsDuringValidation=false;}else{this.displayValidationErrorsWarningMessage();}
1668if(this._errors.length){return this._errors;}
1669return null;}
1670const errors=this._validate();if(errors instanceof Array){this._errors=errors;}else{console.log(this);throw Error('The _validate() method in this ^^^ organism must return an array.');}
1671this._isValidated=true;if(this._errors.length){return this._errors;}
1672return null;},getErrors:function(){if(this.getMetaData('skipValidation')===true){return[];}
1673return this._errors;},_topLevel_parentResetErrorsForEntityByName:function(entityName){if(this._processingErrorsDuringValidation===true){return;}
1674for(let i=this._errors.length-1;i>=0;i--){if(this._errors[i].getOrganism().getOwnEntityName()===entityName){this._errors.splice(i,1);}}},parentResetErrorsForEntityByName:function(entityName){if(this._isTopLevelDataStore){this._topLevel_parentResetErrorsForEntityByName(entityName);return;}
1675this._parentDataStore.resetErrorsForEntityByName(entityName);},resetErrorsForEntityByName:function(entityName){this.parentResetErrorsForEntityByName(entityName);},_topLevel_parentResetValidation:function(){this._isValidated=false;},parentResetValidation:function(){if(this._isTopLevelDataStore){this._topLevel_parentResetValidation();return;}
1676this._parentDataStore.resetValidation();},resetValidation:function(){this.parentResetValidation();},resetOwnValidation:function(){this._isValidated=false;},_topLevel_parentResetErrors:function(){this._errors=[];},parentResetErrors:function(){if(this._isTopLevelDataStore){this._topLevel_parentResetErrors();return;}
1677this._parentDataStore.resetErrors();},resetErrors:function(){this.parentResetErrors();},resetOwnErrors:function(){if(this.isTopLevelDataStore()){this._errors=[];}else{this.resetErrorsForEntityByName(this.getOwnEntityName());}},isValidated:function(){return this._isValidated;},markAsValidated:function(){this._isValidated=true;},_initializeFormatters:function(){const self=this;this._formatters=[];const formatterNames=this.jqel.data('formatters');if(formatterNames instanceof Array){jQuery.each(formatterNames,function(index,formatterName){if(Eco.Util.Formatting[formatterName]instanceof Function){self._formatters.push(Eco.Util.Formatting[formatterName]);}else{console.log(self.jqel);throw Error('Invalid formatter name: \''+formatterName+'\' on that ^^^ element.');}});}},_initializeCleaners:function(){const self=this;this._cleaners=[];const cleanerNames=this.jqel.data('cleaners');if(cleanerNames instanceof Array){jQuery.each(cleanerNames,function(index,cleanerName){if(Eco.Util.Cleaning[cleanerName]instanceof Function){self._cleaners.push(Eco.Util.Cleaning[cleanerName]);}else{console.log(self.jqel);throw Error('Invalid cleaner name: \''+cleanerName+'\' on that ^^^ element.');}});}},_initializeValidators:function(){const self=this;this._validators=[];const validatorNames=this.jqel.data('validators');if(typeof(validatorNames)==='string'&&validatorNames!==''){console.log(this.jqel);throw Error('Array of validators expected. You passed a string of "'+validatorNames+'" for the validators on this ^^^ this field.');}
1678if(validatorNames instanceof Array){jQuery.each(validatorNames,function(index,validator){let validatorName='';let validatorOptions={};let validatorMessage=false;let validatorMessages={};if(validator instanceof Object){validatorName=validator.name;validatorMessage=validator.message;validatorMessages=validator.messages;validatorOptions=validator.options;}else if(typeof(validator)=='string'){validatorName=validator;}else{console.log(self.jqel);throw Error('Invalid validator defined for this ^^^ organism.');}
1679if(Eco.Util.Validation[validatorName]instanceof Function){if(!(validatorMessages instanceof Object)){validatorMessages={};}
1680if(!validatorMessage){validatorMessage=false;}
1681const options={name:validatorName,message:validatorMessage,messages:validatorMessages,options:jQuery.extend({organism:self},validatorOptions),callback:Eco.Util.Validation[validatorName],isSlow:(Eco.Util.Validation.SlowValidationMethods.indexOf(validatorName)>-1)};if(validatorName){self._validators.push(options);}}else{console.log(self.jqel);throw Error('Invalid validator name: \''+validatorName+'\' of type '+typeof(validatorName)+' on that ^^^ element.');}});}},_topLevel_parentGetTopLevelDataStore:function(){return this;},parentGetTopLevelDataStore:function(){if(this._isTopLevelDataStore){return this._topLevel_parentGetTopLevelDataStore();}
1682return this._parentDataStore.getTopLevelDataStore();},getTopLevelDataStore:function(){return this.parentGetTopLevelDataStore();},_childEntityNames:null,_findParentDataStore:function(){const dataStore=this.jqel.ecoData('ecoOrganismDataStore');
1682if(typeof(dataStore)=='object'){this._parentDataStore=dataStore;}else{this._parentDataStore=this;this._isTopLevelDataStore=true;this._maskData=true;this.jqel.addClass('molecule_topLevelDataStore');this.getMetaData=this._topLevel_getMetaData;this.parentGetMetaData=this._topLevel_parentGetMetaData;}},_topLevel_parentAddChildEntityName:function(name){if(name!==this.getOwnEntityName()){if(this._childEntityNames.indexOf(name)<0){this._childEntityNames.push(name);}}},_parentAddChildEntityName:function(name){if(this._isTopLevelDataStore){this._topLevel_parentAddChildEntityName(name);return;}
1683this._parentDataStore._addChildEntityName(name);},_addChildEntityName:function(name){const isMe=name===this.getOwnEntityName();if(!isMe){if(this._childEntityNames.indexOf(name)<0){this._childEntityNames.push(name);}
1684if(!this.isDataMask()){this._parentAddChildEntityName(name);}}else{this._parentAddChildEntityName(name);}},_topLevel_parentAreValidationErrorsEnabled:function(){return this._validationErrorsEnabled;},parentAreValidationErrorsEnabled:function(){if(this._isTopLevelDataStore){return this._topLevel_parentAreValidationErrorsEnabled();}
1685return this._parentDataStore.areValidationErrorsEnabled();},areValidationErrorsEnabled:function(){return this.parentAreValidationErrorsEnabled();},_topLevel_parentAddChangedEntityName:function(name){if(this._changedEntityNames.indexOf(name)<0){this._changedEntityNames.push(name);}},_topLevel_parentRemoveChangedEntityName:function(name){const index=this._changedEntityNames.indexOf(name);if(index>=0){this._changedEntityNames.splice(index,1);}},_topLevel_parentSetValueFromInput:function(value,sourceOrganism,name,originalSourceOrganism,inputSourceOrganism){if(!name){name=this.getOwnEntityName();}
1686if(!(value instanceof Eco.OrganismValue)){console.log(sourceOrganism);throw Error('The value supplied by the source organism ^^^ for entity name \''+name+'\' is not an instance of Eco.OrganismValue.');}
1687if(sourceOrganism){if(sourceOrganism.setValue){sourceOrganism.setValue(value.getCleanValue(),name);}
1688let broadcastTargetOrganism;if(originalSourceOrganism){broadcastTargetOrganism=originalSourceOrganism;}else{broadcastTargetOrganism=sourceOrganism;}
1689let needsBroadcast=broadcastTargetOrganism._valueChangeNeedsBroadcast&&!broadcastTargetOrganism._isPristine;if(sourceOrganism.onValueUpdate&&needsBroadcast){broadcastTargetOrganism._valueChangeNeedsBroadcast=false;sourceOrganism.onValueUpdate(value,sourceOrganism,originalSourceOrganism,inputSourceOrganism);}
1690if(inputSourceOrganism&&inputSourceOrganism.getOwnEntityName()!==sourceOrganism.getOwnEntityName()){inputSourceOrganism.onValueUpdate(value,sourceOrganism,originalSourceOrganism,inputSourceOrganism);}
1691if(sourceOrganism.getOwnEntityName){if(!needsBroadcast){return;}
1692this.triggerEvent('valueUpdate',[sourceOrganism.getOwnEntityName(),value._cleanValue,sourceOrganism,originalSourceOrganism,inputSourceOrganism]);this.valueUpdateCallback([sourceOrganism.getOwnEntityName(),value._cleanValue,sourceOrganism,originalSourceOrganism,inputSourceOrganism]);}else{console.log('sourceOrganism does not have function getOwnEntityName',sourceOrganism);}}},canTriggerChangeEvents:function(){return this._allowChangeEventTrigger;},isValidationErrorsWarningMessageEnabled:function(){return this._validationErrorsWarningMessageEnabled&&window._VALIDATION_ERRORS_DISABLED_DEVELOPER_MESSAGE_COUNT<10;},displayValidationErrorsWarningMessage:function(){if(!this.isValidationErrorsWarningMessageEnabled()){return false;}
1693console.log(this.VALIDATION_ERRORS_DISABLED_DEVELOPER_MESSAGE,this);window._VALIDATION_ERRORS_DISABLED_DEVELOPER_MESSAGE_COUNT++;return true;},displayValidationSkippedWarningMessage:function(){if(!this.isValidationSkippedWarningMessageEnabled()){return;}
1694console.log(this.VALIDATION_ERRORS_SKIPPED_DEVELOPER_MESSAGE,this);window._VALIDATION_ERRORS_SKIPPED_DEVELOPER_MESSAGE_COUNT++;},enableValidationErrorsWarningMessage:function(){this._validationErrorsWarningMessageEnabled=true;},disableValidationErrorsWarningMessage:function(){this._validationErrorsWarningMessageEnabled=false;},isValidationSkippedWarningMessageEnabled:function(){return this._val
1694idationSkippedWarningMessageEnabled&&window._VALIDATION_ERRORS_SKIPPED_DEVELOPER_MESSAGE_COUNT<10;},enableValidationSkippedWarningMessage:function(){this._validationSkippedWarningMessageEnabled=true;},disableValidationSkippedWarningMessage:function(){this._validationSkippedWarningMessageEnabled=false;},registerValueUpdateCallback:function(id,callback,target){if(!this._valueUpdateCallbacks){this._valueUpdateCallbacks={};}
1695this._valueUpdateCallbacks[id]={callback:callback,target:target};},removeValueUpdateCallback:function(id){delete this._valueUpdateCallbacks[id];},valueUpdateCallback:function(params){if(this._valueUpdateCallbacks){jQuery.each(this._valueUpdateCallbacks,function(id,data){data.callback.apply(data.target,params);});}},_topLevel_parentOnValueUpdate:function(value,sourceOrganism,originalSourceOrganism){},_topLevel_parentOnValueError:function(errors,value,sourceOrganism){sourceOrganism.resetOwnErrors();for(let i=0;i<errors.length;i++){if(!(errors[i]instanceof Eco.OrganismDataStoreError)){console.log(value,sourceOrganism,errors[i]);console.error('Invalid error object for (value, sourceOrganism, error) ^^^.');}else{this._errors.push(errors[i]);}}},_topLevel_parentSetValue:function(value,name){if(!name){name=this.getOwnEntityName();}
1696this._setValue(value,name);},_topLevel_parentGetValue:function(name){if(!name){name=this.getOwnEntityName();}
1697return this._getValue(name);},_topLevel_parentGetAllValues:function(){return this._getAllValues();},_topLevel_parentGetAllValuesByReference:function(){return this._getAllValuesByReference();},_topLevel_parentGetAllChangedValues:function(){return this._getAllChangedValues();},isTopLevelDataStore:function(){return this._isTopLevelDataStore;},getTopLevelParentDataStore:function(){let dataStore=this.getParentDataStore();let limiter=100;while(!dataStore.isTopLevelDataStore()&&limiter>0){dataStore=dataStore.getParentDataStore();limiter--;}
1698return dataStore;},getParentDataStore:function(){return this._parentDataStore;},parentSetValue:function(value,name){if(this._isTopLevelDataStore){this._topLevel_parentSetValue(value,name);return;}
1699if(!name){name=this.getOwnEntityName();if(name===''){return;}}
1700this._addChildEntityName(name);this._parentDataStore.setValue(value,name);},parentGetValue:function(name=undefined){if(this._isTopLevelDataStore){return this._topLevel_parentGetValue(name);}
1701if(!name){name=this.getOwnEntityName();}
1702return this._parentDataStore.getValue(name);},parentGetAllValues:function(){if(this._isTopLevelDataStore){return this._topLevel_parentGetAllValues();}
1703return this._parentDataStore.getAllValues();},parentGetAllValuesByReference:function(){if(this._isTopLevelDataStore){return this._topLevel_parentGetAllValuesByReference();}
1704return this._parentDataStore.getAllValuesByReference();},parentGetAllChangedValues:function(){if(this._isTopLevelDataStore){return this._topLevel_parentGetAllChangedValues();}
1705return this._parentDataStore.getAllChangedValues();},_compareToPreviousValue:function(value){let a=JSON.stringify(value.getCleanValue());let b=this._previousCleanValue;if(a!=b){return 1;}
1706a=JSON.stringify(value.getRawValue());b=this._previousRawValue;return(a==b)?0:2;},_compareToInitialValue:function(value){let a=JSON.stringify(value.getCleanValue());let b=this._initialCleanValue;if(a!=b){return 1;}
1707a=JSON.stringify(value.getRawValue());b=this._initialRawValue;return(a==b)?0:2;},addChangedEntityName:function(name){this.parentAddChangedEntityName(name);},removeChangedEntityName:function(name){this.parentRemoveChangedEntityName(name);},hasChangedValues:function(){return(this._changedEntityNames.length>0);},isPristine:function(){return this._isPristine;},getChangedEntityNames:function(){if(this._changedEntityNames.length>0){return this._changedEntityNames.slice(0);}else{return[];}},removeAllChangedEntityNames:function(){this._changedEntityNames=[];},parentAddChangedEntityName:function(name){if(this._isTopLevelDataStore){this._topLevel_parentAddChangedEntityName(name);return;}
1708if(this._changedEntityNames.indexOf(name)<0){this._changedEntityNames.push(name);}
1709this._parentDataStore.addChangedEntityName(name);},parentRemoveChangedEntityName:function(name){if(this._isTopLevelDataStore){this._topLevel_parentRemoveChangedEntityName(name);return;}
1710const index=this._changedEntityNames.indexOf(name);if(index>=0){this._changedEntityNames.splice(index,1);}
1711this._parentDataStore.removeChangedEntityName(name);},triggerValueChangeFromExternalSystem:function(name){this.addChangedEntityName(name);},triggerValueResetFromExternalSystem:function(name){this.removeChangedEntityName(name);},parentSetValueFromInput:function(value,sourceOrganism,name,originalSourceOrganism,inputSourceOrganism){let parentSetValueFromInputFn;let thisArg;if(this._isTopLevelDataStore){thisArg=this;parentSetValueFromInputFn=this._topLevel_parentSetValueFromInput;}else{thisArg=this._parentDataStore;parentSetValueFromInputFn=this._parentDataStore.setValueFromInput;}
1712if(!name){name=this.getOwnEntityName();}
1713if(!sourceOrganism){sourceOrganism=this;}
1714if(name===this.getOwnEntityName()){let markFieldChanged=true;let markFieldReset=false;if(!this._isInitialValueSet){this._initialCleanValue=JSON.stringify(value.getCleanValue());this._initialRawValue=JSON.stringify(value.getRawValue());this._isInitialValueSet=true;markFieldChanged=false;this.resetOwnErrors();this.resetOwnValidation();}else{let broadcastTargetOrganism;if(originalSourceOrganism){broadcastTargetOrganism=originalSourceOrganism;}else{broadcastTargetOrganism=sourceOrganism;}
1715const isValueDifferentFromPrevious=this._compareToPreviousValue(value);if(!isValueDifferentFromPrevious){broadcastTargetOrganism._valueChangeNeedsBroadcast=false;return;}
1716broadcastTargetOrganism._valueChangeNeedsBroadcast=true;this.resetOwnErrors();this.resetOwnValidation();const valueDifference=this._compareToInitialValue(value);if(valueDifference===0){this.removeChangedEntityName(name);markFieldChanged=false;markFieldReset=true;}else if(valueDifference===1){}else if(valueDifference===2){markFieldReset=true;}}
1717this._previousCleanValue=JSON.stringify(value.getCleanValue());this._previousRawValue=JSON.stringify(value.getRawValue());if(sourceOrganism.isValidationEnabled()){let errors=[];if(sourceOrganism&&sourceOrganism.isValidated&&sourceOrganism.isValidated()){errors=sourceOrganism.getErrors();}else{if(sourceOrganism&&sourceOrganism.validateValue){errors=sourceOrganism.validateValue(value);}}
1718if(errors.length){this.removeChangedEntityName(name);if(this.areValidationErrorsEnabled()){sourceOrganism.onValueError(errors,value,sourceOrganism);}else{this.displayValidationErrorsWarningMessage();}
1719parentSetValueFromInputFn.apply(thisArg,[value,sourceOrganism,name,originalSourceOrganism,inputSourceOrganism]);return;}}
1720if(markFieldChanged&&!this._isSameValue(value.getCleanValue(),name)){this.addChangedEntityName(name);this.__depristinify();}else if(markFieldReset===true){this.removeChangedEntityName(name);}}
1721parentSetValueFromInputFn.apply(thisArg,[value,sourceOrganism,name,originalSourceOrganism,inputSourceOrganism]);},__depristinify:function(){this._isPristine=false;if(!this.isTopLevelDataStore()){this._parentDataStore.__depristinify();}},parentOnValueUpdate:function(value,sourceOrganism,originalSourceOrganism){if(this._isTopLevelDataStore){this._topLevel_parentOnValueUpdate(value,sourceOrganism,originalSourceOrganism);return;}
1722this._parentDataStore.onValueUpdate(value,sourceOrganism,originalSourceOrganism);},parentOnValueError:function(errors,value,sourceOrganism){if(this._isTopLevelDataStore){this._topLevel_parentOnValueError(errors,value,sourceOrganism);return;}
1723this._parentDataStore.onValueError(errors,value,sourceOrganism);},formatValue:function(cleanValue){if(!this.isFormattingEnabled()){return cleanValue;}
1724let formattedValue=cleanValue;jQuery.each(this._formatters,(index,formatterFunction)=>{let ecoData={};if(this.jqel){ecoData=this.jqel.ecoData();}
1725if(formatterFunction&&typeof(formatterFunction)=='function'){formattedValue=formatterFunction(formattedValue,ecoData);}});return formattedValue;},cleanValue:function(rawValue){if(!this.isCleaningEnabled()){return rawValue;}
1726let cleanValue=rawValue;jQuery.each(this._cleaners,(index,cleanerFunction)=>{cleanValue=cleanerFunction(cleanValue,this.jqel.ecoData());});return cleanValue;},validateValue:function(value){const errors=[];if(!this.isValidationEnabled()){return errors;}
1727const self=this;
1727jQuery.each(this._validators,(index,validator)=>{if(validator.isSlow===true&&!self.isSlowValidationEnabled()){return;}
1728const options=jQuery.extend(validator.options,self.jqel.ecoData());const statusCode=validator.callback(value,options);if(isNaN(statusCode)||statusCode<0){console.log(self);throw Error('Invalid status code reported by a validator. Status codes must be boolean or non-negative numeric values. Use 0 for success. Validator Name: '+validator.name);}
1729if(statusCode>0){let message='';if(validator.messages.hasOwnProperty(statusCode)){message=validator.messages[statusCode];}else if(validator.message!==false){message=validator.message;}else{if(Eco.Util.Validation.Messages[validator.name]instanceof Function){message=Eco.Util.Validation.Messages[validator.name](statusCode,validator.options);}else if((Eco.Util.Validation.Messages[validator.name]instanceof Object)&&Eco.Util.Validation.Messages[validator.name].hasOwnProperty(statusCode)){message=Eco.Util.Validation.Messages[validator.name][statusCode];}}
1730if(!message){console.log(this,self.jqel);console.warn('Hey there developer! You should put in a validation error message for the error of status code: '+statusCode+' on the '+validator.name+' validator. The validation error was triggered on this ^^^.');message='This value is not valid. ['+statusCode+']';}
1731const error=new Eco.OrganismDataStoreError(statusCode,message,self,'validation.'+validator.name);errors.push(error);}});this._isValidated=true;this._errors=errors;return errors;},setValueFromInput:function(value,sourceOrganism=undefined,name=undefined,originalSourceOrganism=undefined,inputSourceOrganism=undefined){this.parentSetValueFromInput(value,sourceOrganism,name,originalSourceOrganism,inputSourceOrganism);},onValueUpdate:function(value,sourceOrganism,originalSourceOrganism){this.parentOnValueUpdate(value,sourceOrganism,originalSourceOrganism);},onValueError:function(errors,value,sourceOrganism){this.parentOnValueError(errors,value,sourceOrganism);},setValue:function(value,name){this.parentSetValue(value,name);},resetValue:function(){this.unsetOwnValue();},unsetOwnValue:function(){this.resetOwnValidation();this.resetOwnErrors();const isValidationEnabled=this.isValidationEnabled();this.disableValidation();this.setValueFromInput(new Eco.OrganismValue(null,null));if(isValidationEnabled){this.enableValidation();}},getValue:function(name=undefined){return this.parentGetValue(name);},getAllValues:function(){return this.parentGetAllValues();},getAllValuesByReference:function(){return this.parentGetAllValuesByReference();},getAllChangedValues:function(){return this.parentGetAllChangedValues();},_readValue:function(){return this.readDomValue();},readValue:function(){const rawValue=this._readValue();return new Eco.OrganismValue(rawValue,this.cleanValue(rawValue));},readDomValue:function(){console.log(this,this.jqel);throw Error('readDomValue() must be implemented in your field organism class ^^^.');},updateDisplayValue:function(){let uniqueId=this._uniqueInternalId;if(!uniqueId){console.warn('trying to queue a redraw but this item does not have a _uniqueInternalId',uniqueId);return;}
1732if(Eco.OrganismDataStore.updateDisplayValueTimer){clearTimeout(Eco.OrganismDataStore.updateDisplayValueTimer);}
1733Eco.OrganismDataStore.updateDisplayValueQueue[uniqueId]=this;if(!Eco.OrganismDataStore.updateDisplayValueTimerDisabled){Eco.OrganismDataStore.updateDisplayValueTimer=setTimeout(function(){Eco.OrganismDataStore.processUpdateDisplayValueQueue();},Eco.OrganismDataStore.updateDisplayValueDelay);}},updateDisplayValueRender:function(){},initializeDomDisplay:function(){this.jqel.removeClass("hasIntersectionObserver");this._hasInitializedDom=true;},initializeDomDisplayFromParent:function(){if(this.jqel.hasClass('hasIntersectionObserver')){return;}
1734clog('init dom display from parent calling init dom display on self');this.initializeDomDisplay();},_initializeElementVisibilityWatcher:function(){const classString=this.jqel.attr('class');const matches=classString.match(/organism_[\w-_]*/);if(!matches.length){console.warn("_initializeElementVisibilityWatcher called but somehow this element does not have a class for an organism",classString);return;}
1735let name=matches[0];if(name.indexOf("form")>-1){return;}
1736if(!this.jqel.hasClass('atom_tabContent')){if(name.indexOf("container-repeat")===-1){if(this.jqel.parents(".hasIntersectionObserver").not(".organism_form").length>0){return;}}else{if(this.jqel.parents(".organism_container-repeat").length>0){return;}}}else{}
1737if(!Eco.OrganismDataStore.visibilityIbserver){const callback=function(entries,observer){entries.forEac
1737h(function(entry,index,arr){if(jQuery(entry.target).is(":visible")){const jqel_element=jQuery(entry.target);const organism=jqel_element.data('organism');if(organism){organism.initializeDomDisplay();Eco.OrganismDataStore.visibilityIbserver.unobserve(jqel_element.get(0))}else{console.log("Can not find organism",jqel_element);}}});};Eco.OrganismDataStore.visibilityIbserver=new IntersectionObserver(callback,{trackVisibility:true,delay:500,threshold:0});}
1738this.jqel.addClass("hasIntersectionObserver");Eco.OrganismDataStore.visibilityIbserver.observe(this.jqel.get(0));}};OrganismDataStore=jQuery.extend(true,{},Eco.Traits.DataStore,OrganismDataStore,Eco.Traits.EventSystem);return Eco.Organism.extend(OrganismDataStore);})();Eco.OrganismDataStore.updateDisplayValueTimer=0;Eco.OrganismDataStore.updateDisplayValueQueue={};Eco.OrganismDataStore.updateDisplayValueTimerDisabled=false;Eco.OrganismDataStore.updateDisplayValueDelay=100;Eco.OrganismDataStore.enableUpdateDisplayValueTimer=function(){Eco.OrganismDataStore.updateDisplayValueTimerDisabled=false;if(!Eco.OrganismDataStore.updateDisplayValueTimer&&Object.keys(Eco.OrganismDataStore.updateDisplayValueQueue).length){Eco.OrganismDataStore.updateDisplayValueTimer=setTimeout(function(){Eco.OrganismDataStore.processUpdateDisplayValueQueue();},Eco.OrganismDataStore.updateDisplayValueDelay);}};Eco.OrganismDataStore.processUpdateDisplayValueQueue=function(){clearTimeout(Eco.OrganismDataStore.updateDisplayValueTimer);Eco.OrganismDataStore.updateDisplayValueTimer=0;let queue=Eco.OrganismDataStore.updateDisplayValueQueue;Object.values(queue).forEach(organism=>{if(organism.updateDisplayValueRender){organism.updateDisplayValueRender();}else{console.warn('Unable to run updateDisplayValueRender on an object without its required function',organism);}});Eco.OrganismDataStore.updateDisplayValueQueue={};};Eco.OrganismDataStore.disableUpdateDisplayValueTimer=function(){Eco.OrganismDataStore.updateDisplayValueTimerDisabled=false;if(Eco.OrganismDataStore.updateDisplayValueTimer){clearTimeout(Eco.OrganismDataStore.updateDisplayValueTimer);Eco.OrganismDataStore.updateDisplayValueTimer=0;}};
1739Eco.OrganismDataStoreError=Eco.OrganismError.extend({_organismType:Eco.OrganismDataStore,_organism:null,__construct:function(code,message,organism,debug){this._parent(code,message,organism,debug);},getOrganism:function(){return this._organism;}});
1740jQuery(document).ready(async function(){var jqel_body=jQuery('body');MMI.Debug.timer('Scan','start',true);await Eco.OrganismController.scan(jqel_body);MMI.Debug.timer('Scan','afterControllerScan');Eco.OrganismController.setFullScanDone(true);});
1741Eco.Util.initializeNamespace('Eco.Organism.Content');Eco.Organism.Content=Eco.OrganismDataStore.extend({__construct:function(jqel_organism){this._parent(jqel_organism);},_initializeOwnEntityName:function(){var name=this.jqel.data('name');if(!name){permaclog(this.jqel);throw Error('Invalid or missing content name `'+name+'` for the ^^^ content organism.');}
1742return name;},initializeValue:function(values,isRootNodeOfInitializationCall){},readDomValue:function(){return'';}});
1743Eco.Organism.FieldAdvanced=Eco.OrganismDataStore.extend({jqel_label:null,jqel_window:null,_allowChangeEventTrigger:true,__construct:function(jqel_organism){this._parent(jqel_organism);this.jqel_label=this._getLabelElement();this.jqel_window=jQuery(window);if(this.jqel.ecoData('disableChangeEvent')===true){this._allowChangeEventTrigger=false;}},initializeDomDisplay:function(){this._parent();this._initializeCssClasses();},_initializeCssClasses:function(){if(this.jqel.find('> .atom_fieldIcon, > .molecule_input > .atom_fieldIcon').size()){this.jqel.addClass('molecule_fieldIcon');if(this.jqel.find('> .atom_fieldIcon:first-child, > label + .atom_fieldIcon').length){this.jqel.addClass('molecule_fieldIcon--pre');}}
1744let placeholderText=jQuery.trim(this.jqel.data('placeholder'));let helpText=jQuery.trim(this.jqel.data('help_text'));let labelText=this.jqel_label?jQuery.trim(this.jqel_label.text()):'';const labelMatches=labelText.toLowerCase()!=placeholderText.toLowerCase();let forceShowLabelAsPlaceholder=this.jqel.data('forceShowPlaceholder');if(helpText||(placeholderText&&labelMatches)||forceShowLabelAsPlaceholder){this.jqel.addClass('mod_uses-placeholder');}},_initializeOwnEntityName:function(){var fieldName=this.jqel.data('name');if(!fieldName){permaclog(this,this.jqel);throw Error('This advanced field ^^^ is missing the "data-name" attribute or has an empty field name value.');}
1745return fieldName;},_getLabelElement:function(){var jqel=this.jqel.find('label').first();if(!jqel.size()){this._missingElementError('Eco.Organism.Field','label','A common error is trying to use a div with a class of atom_label. Use a real <label> tag instead.');}
1746return jqel;},_updateFieldToFocusedStatus:function(){if(this.isReadOnly()||this.isDisabled()){this.removeModifier('mod_focused');return;}
1747this.addModifier('mod_focused');},_updateFieldToUnfocusedStatus:function(){this.removeModifier('mod_focused');},_validate:function(){const domEl=this.jqel.get(0);if(this.getMetaData('skipValidation')===true){this.hideErrors();domEl.setAttribute('data-validation-skipped-on-previous-try',true);return[];}
1748domEl.setAttribute('data-validation-skipped-on-previous-try',false);var value=this.readValue();var errors=this.validateValue(value);if(this.areValidationErrorsEnabled()&&errors.length){domEl.setAttribute('data-validation-passed',fal
1748se);domEl.setAttribute('data-validation-errors-enabled-on-previous-try',true);this.onValueError(errors,value,this);}else if(errors.length){domEl.setAttribute('data-validation-passed',false);domEl.setAttribute('data-validation-errors-enabled-on-previous-try',false);this.displayValidationErrorsWarningMessage();}else{domEl.setAttribute('data-validation-passed',true);domEl.removeAttribute('data-validation-errors-enabled-on-previous-try');}
1749return errors;},initializeDisplay:function(){this._parent();this.hideErrors();this.updateDisplayValue();},onValueError:function(errors,value,sourceOrganism){this._parent(errors,value,sourceOrganism);var messages=[];jQuery.each(errors,function(index,error){if(error.getMessage()){messages.push(error.getMessage());}});this.showErrors({messages:messages});},onValueUpdate:function(value,sourceOrganism,originalSourceOrganism){this.hideErrors();this._parent(value,sourceOrganism,originalSourceOrganism);if(sourceOrganism.canTriggerChangeEvents()===true){const isOwnEvent=sourceOrganism===originalSourceOrganism;sourceOrganism.jqel.trigger('change',[value,sourceOrganism,originalSourceOrganism,{isOwnEvent}]);}
1750this.updateDisplayValue();},updateDisplayValueRender:function(){permaclog(this);throw Error('Your field organism ^^^ must implement the updateDisplayValueRender() method.');},showErrors:function(options){this.addModifier('mod_error');var jqel_error=this.jqel.find('.atom_error');if(!jqel_error.size()){jqel_error=jQuery('<div class="atom_error"></div>');this.jqel_label.after(jqel_error);}
1751jqel_error.html(options.messages[0]);Eco.Organism.resizeWindow(this.jqel_window);},hideErrors:function(){this.removeModifier('mod_error');Eco.Organism.resizeWindow(this.jqel_window);},val:function(value){if(typeof(value)==='undefined'){return this.getValue();}else{var organismValue=new Eco.OrganismValue(value,this.cleanValue(value));var output=this.setValueFromInput(organismValue,this);this.updateDisplayValue();return output;}},getValueDuringChangeEvent:function(){return this._readValue();},setValueFromInput:function(value,sourceOrganism,name,originalSourceOrganism,inputSourceOrganism){if(!this.isValidationEnabled()){this.hideErrors();}
1752this._parent(value,sourceOrganism,name,originalSourceOrganism,this);},getFormOrganism:function(){var topLevelDataStore=this.getTopLevelDataStore();if(Eco&&Eco.Organism&&Eco.Organism.Form&&topLevelDataStore instanceof Eco.Organism.Form){return topLevelDataStore;}
1753return null;},lockSmartButton:function(){this.jqel.trigger('eco_form_lock_smart_button',[this.getFormOrganism(),this,this._uniqueInternalId,true]);},unlockSmartButton:function(){this.jqel.trigger('eco_form_lock_smart_button',[this.getFormOrganism(),this,this._uniqueInternalId,false]);}});
1754Eco.Organism.Field=Eco.Organism.FieldAdvanced.extend({jqel_field:null,__construct:function(jqel_organism){this._parent(jqel_organism);this.jqel_field=this._getFieldElement();this.initializeDomDisplay();if(jqel_organism.data().focus){var self=this;setTimeout(function(){self.jqel_field.trigger('focus');},10);}},initializeDomDisplay:function(){this._parent();this._setTitleText(this.jqel_label.text());this._setForOnLabel();},_initializeOwnEntityName:function(){var fieldName=this.jqel_field.attr('name');if(!fieldName){permaclog(this,this.jqel_field,this.jqel_field.attr('name'),this.jqel_field.data());throw Error('This field ^^^ is missing the "name" attribute or has an empty name.');}
1755return fieldName;},updateDisplayValueRender:function(){var formattedValue=this.formatValue(this.getValue());if(this.jqel_field.val()!==formattedValue){this.jqel_field.val(formattedValue);}},_getFieldElement:function(){permaclog(this,this.jqel);throw Error('Each field organism ^^^ must provide its own _getFieldElement() method.');},_getFieldIcon:function(){var jqel_fieldIcon=this.jqel.find('.atom_fieldIcon');if(!jqel_fieldIcon.size()){permaclog(this,this.jqel);throw Error('This field organism ^^^ is missing a field icon. Add the molecule_fieldIcon class to the organism and add an element with a class of atom_fieldIcon somewhere inside the organism (location is usually after the input).');}
1756return jqel_fieldIcon;},_setTitleText:function(text){if(!this.jqel_field.attr('title')){this.jqel_field.attr('title',text);}},_getFieldForLabel:function(){return this.jqel_field;},_setForOnLabel:function(text){const jqel_field=this._getFieldForLabel();let fieldId=jqel_field.attr('id');if(!fieldId){fieldId=Eco.Util.getRandomString(12);jqel_field.attr('id',fieldId);}
1757const labelFor=this.jqel_label.attr('for');if(labelFor!=fieldId){this.jqel_label.attr('for',fieldId);}
1758return fieldId;},focus:function(){if(this.jqel_field){this.jqel_field.trigger('focus');}}});
1759Eco.Organism.Field.Hidden=Eco.Organism.Field.extend({__construct:function(jqel_organism){this._parent(jqel_organism);var self=this;this.jqel_field.on('input',function(){self.setValueFromInput(self.readValue(),self,null);});},readDomValue:function(){return this.jqel_field.val();},_getFieldElement:function(){var jqel=this.jqel.find('input[type=hidden]').addBack('input[type=hidden]').first();if(!jqel.size()){this._missingElementError('Eco.Organism.Field.Hidden','field','A common error is not setting the type="hidden" attribute on the input element.');}
1760return jqel;},_getLabelElement:function(){return jQuery();},_setForOnLabel:function(){}});
1761Eco.Organism.Form=Eco.OrganismDataStore.extend({jqel_form:null,_htmlOfInitialFormOrganism:false,_maxPollForFormIntervalChecks:100,_pollForFormIntervalCount:0,_pollForFormInitializationInterval:null,_scrollToFirstErrorEnabled:true,_submitWhenUnchanged:true,_fieldWithInProgressChanges:null,__c
1761onstruct:function(jqel_organism){jqel_organism.addClass('molecule_form');if(jqel_organism.find('.molecule_spinner').size()){jqel_organism.addClass('mod_spinnerForm');}
1762this._htmlOfInitialFormOrganism=jqel_organism.get(0).outerHTML;this._parent(jqel_organism);this.jqel_form=this._getFormElement();var self=this;this.jqel_form.on('reset',function(event,customType){event.preventDefault();event.stopPropagation();event.stopImmediatePropagation();self.reset();});var defaultOptions={submitWhenUnchanged:true};var options=this.jqel_form.ecoData('formOptions');options=Basix.extend(Basix.EXTEND_RECURSIVE,defaultOptions,options);this._submitWhenUnchanged=options.submitWhenUnchanged?true:false;},setFieldWithInProgressChanges:function(fieldOrganism){this._fieldWithInProgressChanges=fieldOrganism;},clearFieldWithInProgressChanges:function(fieldOrganism){if(this._fieldWithInProgressChanges instanceof Eco.Organism.FieldAdvanced&&fieldOrganism.getOwnEntityName()==this._fieldWithInProgressChanges.getOwnEntityName()){this._fieldWithInProgressChanges=null;}else{}},hasFieldWithInProgressChanges:function(){return!(this._fieldWithInProgressChanges===null);},getFormElement:function(){return this.jqel_form;},getHtmlForClone:function(){return this._htmlOfInitialFormOrganism;},initializeDisplay:function(){this._parent();this.onFormInitialized();},setValueFromInput:function(value,sourceOrganism,name,originalSourceOrganism,inputSourceOrganism){if(!name){console.log(sourceOrganism);throw Error('Calling Eco.Organism.Form.setValueFromInput() without a field name is not allowed. ^^^');}
1763this._parent(value,sourceOrganism,name,originalSourceOrganism,inputSourceOrganism);},triggerValueChangeFromExternalSystem:function(name){this._parent(name);if(this.hasChangedValues()){this.onFormChanged(this);}else if(!this.isPristine()){this.onFormReverted(this);}},triggerValueResetFromExternalSystem:function(name){this._parent(name);if(this.hasChangedValues()){this.onFormChanged(this);}else if(!this.isPristine()){this.onFormReverted(this);}},onValueUpdate:function(value,sourceOrganism,originalSourceOrganism){this._parent(value,sourceOrganism,originalSourceOrganism);if(this.hasChangedValues()){this.onFormChanged(sourceOrganism,originalSourceOrganism);}else if(!this.isPristine()){this.onFormChanged(sourceOrganism,originalSourceOrganism);this.onFormReverted(sourceOrganism,originalSourceOrganism);}},setValue:function(value,name){if(!name){console.log(this);throw Error('Calling Eco.Organism.Form.setValue() without a field name is not allowed. ^^^');}
1764this._parent(value,name);},getValue:function(name){if(!name){console.log(this);throw Error('Calling Eco.Organism.Form.getValue() without a field name is not allowed. ^^^');}
1765return this._parent(name);},_initializeOwnEntityName:function(){return'';},_validate:function(){var allErrors=[];var organisms=this.getChildOrganisms();var self=this;jQuery.each(organisms,function(index,organism){if(!(organism instanceof Eco.OrganismDataStore)){return;}
1766var errors=organism.getErrors();if(!organism.isValidated()){organism.validate();errors=organism.getErrors();}else{if(self.areValidationErrorsEnabled()&&errors.length){organism.onValueError(errors,organism.readValue(),organism);}else if(window._VALIDATION_ERRORS_DISABLED_DEVELOPER_MESSAGE_COUNT<10){console.log(this.VALIDATION_ERRORS_DISABLED_DEVELOPER_MESSAGE,this);window._VALIDATION_ERRORS_DISABLED_DEVELOPER_MESSAGE_COUNT++;}}
1767if(errors.length>0){allErrors=allErrors.concat(errors);}});return allErrors;},_getFormElement:function(){var jqel=this.jqel.find('form').addBack().filter('form');if(!jqel.size()){this._missingElementError('Eco.Organism.Form','form');}else if(jqel.size()>1){console.log(jqel);console.warn('Your form organism has '+jqel.size()+' form elements in it ^^^^! Generally this is a mistake and can cause problems. We are only selecting the first form found for this form organisms event handling.');jqel=jqel.first();}
1768return jqel;},resetFormState:function(){this.jqel.removeClass('mod_submitting mod_submit-success mod_submit-error');},onFormChanged:function(sourceOrganism,originalSourceOrganism){this.jqel.addClass('mod_hasChanges');this.jqel.trigger('eco_form_changed',[this,sourceOrganism,originalSourceOrganism]);},onFormInitialized:function(){this.removeAllChangedEntityNames();this.jqel.trigger('eco_form_initialized',[this]);},enableScrollToFirstError:function(){this._scrollToFirstErrorEnabled=true;},disableScrollToFirstError:function(){this._scrollToFirstErrorEnabled=false;},isScrollToFirstErrorEnabled:function(){return this._scrollToFirstErrorEnabled;},enableSubmitWhenUnchanged:function(){this._submitWhenUnchanged=true;},disableSubmitWhenUnchanged:function(){this._submitWhenUnchanged=false;},isSubmitWhenUnchangedEnabled:function(){return this._submitWhenUnchanged;},onValueError:function(errors,value,sourceOrganism){this._parent(errors,value,sourceOrganism);this.jqel.trigger('eco_form_value_error',[this,sourceOrganism]);this.scrollToFirstError();},scrollToFirstError:function(){if(this.isScrollToFirstErrorEnabled()!==true){return;}
1769var errors=this.getErrors();if(!errors.length){return;}
1770var error=errors[0];Eco.Util.scrollElementIntoView(error.getOrganism().jqel);},reset:function(resetComplete){const jqel=jQuery(this._htmlOfInitialFormOrganism);this.jqel.replaceWith(jqel);const self=this;setTimeout(async function(){self._isPristine=true;const organisms=await Eco.OrganismController.scan(jqel);if(typeof(resetComplete)==='function'){var formOrganism=organisms[0];resetComplete(formOrganism,organisms);}},10);},areDependencyChecksComplete:function(){if(Eco.Util.namespaceExists('Be.Genome.Item.Layout.Dependencies')){console.log('Be.Genome.Item.Layout.Dependencies._checksToDo',Be.Genome.Item.Layout.Dependencies._checksToDo);if(!Be.Genome.Item.Layout.Dependencies._checksToDo){return true;}
1771return Be.Genome.Item.Layout.Dependencies._checksToDo===0;}
1772return true;},onFormReverted:function(sourceOrganism,originalSourceOrganism){this.jqel.removeClass('mod_hasChanges');this.jqel_form.trigger('eco_form_reverted',[this,sourceOrganism,originalSourceOrganism]);console.warn('The eco_form_reset event is deprecated as of 2019-12-02. Do not continue to use it, use eco_form_reverted instead.');this.jqel_form.trigger('eco_form_reset',[this,sourceOrganism,originalSourceOrganism]);},onFormReset:function(sourceOrganism,originalSourceOrganism){this.onFormReverted();},onSubmitStart:function(data){this.jqel.addClass('mod_submitting');this.jqel.removeClass('mod_submit-error mod_submit-success');this.hideErrors();this.jqel_form.trigger('eco_form_submit_start',[this,data]);},hideErrors:function(){this._hideErrors();},_hideErrors:function(){var organisms=this.getChildOrganisms();for(var i=0;i<organisms.length;i++){var organism=organisms[i];if(organism instanceof Eco.Organism.FieldAdvanced){organism.hideErrors();}}},onSubmitSuccess:function(data){this.jqel.removeClass('mod_submitting');this.jqel.removeClass('mod_submit-error');this.jqel.addClass('mod_submit-success');this.jqel_form.trigger('eco_form_submit_success',[this,data]);},onSubmitError:function(data){this.jqel.removeClass('mod_submitting');this.jqel.removeClass('mod_submit-success');this.jqel.addClass('mod_submit-error');this.jqel_form.trigger('eco_form_submit_error',[this,data]);},onSubmitComplete:function(data){this.jqel.removeClass('mod_submitting');this.jqel_form.trigger('eco_form_submit_complete',[this,data]);},readDomValue:function(){return undefined;},setValues:function(values){for(var fieldName in values){if(!values.hasOwnProperty(fieldName)){continue;}
1773var field=this.getChildOrganismByName(fieldName);if(field instanceof Eco.Organism.FieldAdvanced){field.val(values[fieldName]);}else{console.warn('Attempted to set value on form for a field that could not be found: '+fieldName);}}}});
1774if(!window.console||typeof(window.console)!=='object'){window.console={};}
1775var functionList=['warn','log','info','error','assert','dir','table','group','groupEnd','time','timeEnd','timeLog','trace','clear','count','debug','dirxml','groupCollapsed',];jQuery.each(functionList,function(n,func){if(typeof(window.console[func])!=='function'){window.console[func]=function(){return this;}}});
1776(function($){var pluginName='basixData';$.fn[pluginName]=function(){var args=Array.prototype.slice.call(arguments);var jqel=jQuery(this);var data;var parents;var returnJqel=false;var fullPropertyName=args[0];var basePropertyName='';if(args.length===2&&args[0]===true){fullPropertyName=args[1];returnJqel=true;}
1777if(Basix.isString(fullPropertyName)){basePropertyName=fullPropertyName.split('.')[0];}
1778data=jQuery.extend({},jqel.data());if(returnJqel&&data.hasOwnProperty(basePropertyName)){return jqel;}
1779parents=jqel.parents();var jqel_ancestor=null;parents.each(function(index,ancestorDomElement){jqel_ancestor=jQuery(ancestorDomElement);var ancestorData=jQuery.extend({},jqel_ancestor.data());if(returnJqel){if(ancestorData.hasOwnProperty(basePropertyName)){return false;}}else{data=jQuery.extend(ancestorData,data);}});if(returnJqel){return jQuery(jqel_ancestor);}
1780switch(args.length){case 0:return data;break;case 1:return Basix.getValue(data,fullPropertyName);break;case 2:var targetData=jqel.data();var locatedKey=false;if(targetData!=null&&targetData.hasOwnProperty(basePropertyName)){Basix.setValue(jqel.data(),fullPropertyName,args[1]);locatedKey=true;}else{parents.each(function(index,ancestorDomElement){var jqel_ancestor=jQuery(ancestorDomElement);var ancestorData=jqel_ancestor.data();if(ancestorData.hasOwnProperty(basePropertyName)){Basix.setValue(jqel_ancestor.data(),fullPropertyName,args[1]);locatedKey=true;return false;}});}
1781if(!locatedKey){Basix.setValue(jqel.data(),fullPropertyName,args[1]);}
1782break;}
1783return jqel;};})(jQuery);(function($){var pluginName='basixRemoveData';$.fn[pluginName]=function(){var args=Array.prototype.slice.call(arguments);var jqel=jQuery(this);if(!args.length){jqel.removeData();return jqel;}
1784var jqel_parents=jqel.parents();var removeFromAllParents=false;if(typeof(args[0])=='boolean'&&args[0]===true){removeFromAllParents=true;}
1785jQuery.each(args,function(index,arg){var targetData=jqel.data();var foundKey=false;if(targetData!=null&&targetData.hasOwnProperty(args)){jqel.removeData(arg);
1785foundKey=true;}
1786if(!foundKey||removeFromAllParents){jqel_parents.each(function(index,ancestorDomElement){var jqel_ancestor=jQuery(ancestorDomElement);var ancestorData=jqel_ancestor.data();if(ancestorData.hasOwnProperty(args)){jqel_ancestor.removeData(args);if(!removeFromAllParents){return false;}}});}});return jqel;};})(jQuery);
1787Basix={OVERRIDE_SHALLOW:1,OVERRIDE_RECURSIVE:2,EXTEND_RECURSIVE:3,ARRAYS_OVERRIDE:1,ARRAYS_MERGE:2,_basixInitializationInProgress:false,namespace:function(){var scope=window;for(var argIndex=0;argIndex<arguments.length;argIndex++){var arg=arguments[argIndex];if(typeof(arg)=='object'&&arg!==null){scope=arg;continue;}
1788if(typeof(arg)!='string'){continue;}
1789var namespaceComponents=arg.split('.');var sourceObject=scope[namespaceComponents[0]]=scope[namespaceComponents[0]]||{};var childNamespaceComponents=namespaceComponents.slice(1);for(var childNamespaceName in childNamespaceComponents){if(childNamespaceComponents.hasOwnProperty(childNamespaceName)){var childNamespace=childNamespaceComponents[childNamespaceName];sourceObject=sourceObject[childNamespace]=sourceObject[childNamespace]||{};}}}},namespaceExists:function(){var scope=window;var loopRestrictor=1;for(var argIndex=0;argIndex<loopRestrictor;argIndex++){var arg=arguments[argIndex];if(argIndex<1&&typeof(arg)=='object'&&arg!==null){scope=arg;loopRestrictor=2;continue;}
1790if(typeof(arg)!='string'){return false;}
1791var namespaceComponents=arg.split('.');var sourceObject=scope[namespaceComponents[0]]=scope[namespaceComponents[0]]||{};var childNamespaceComponents=namespaceComponents.slice(1);for(var childNamespaceName in childNamespaceComponents){if(childNamespaceComponents.hasOwnProperty(childNamespaceName)){var nextChildNamespaceName=childNamespaceComponents[childNamespaceName];if(!sourceObject.hasOwnProperty(nextChildNamespaceName)){return false;}
1792sourceObject=sourceObject[nextChildNamespaceName];}}}
1793return true;},getNamespace:function(){var args=Basix.getArgsList(arguments);if(!args.length){return{};}
1794var scope=window;if(args.length>1){if(this.isPlainObject(args[0])){scope=args.shift();}else{args.shift();}}
1795var path=args.shift();var namespaceComponents=null;if(this.isString(path)){namespaceComponents=path.split('.');}else if(this.isArray(path)||this.isList(path)){namespaceComponents=path;}else{return scope;}
1796var subScope=scope;for(var namespaceName in namespaceComponents){if(namespaceComponents.hasOwnProperty(namespaceName)){var nextSubNamespaceName=namespaceComponents[namespaceName];if(this.isObject(subScope[nextSubNamespaceName])){subScope=subScope[nextSubNamespaceName];}else if(subScope[nextSubNamespaceName]===undefined){subScope=subScope[nextSubNamespaceName]={};}else{return{};}}}
1797return subScope;},getValue:function(scope,path,defaultValue){if(!this.isPlainObject(scope)||!this.isString(path)){return undefined;}
1798var namespaceComponents=path.split('.');var propertyName=namespaceComponents.pop();var subScope=scope;for(var namespaceName in namespaceComponents){if(namespaceComponents.hasOwnProperty(namespaceName)){var nextSubNamespaceName=namespaceComponents[namespaceName];var subScopePropertyValue=subScope[nextSubNamespaceName];if(this._getValue_isValidSubScope(subScopePropertyValue)){subScope=subScopePropertyValue;}else if(subScopePropertyValue===undefined){subScope=subScopePropertyValue={};}else{return undefined;}}}
1799if(!this._getValue_isValidSubScope(subScope)){return undefined;}
1800if(!subScope.hasOwnProperty(propertyName)){subScope[propertyName]=defaultValue;}
1801return subScope[propertyName];},_getValue_isValidSubScope:function(scope){return(this.isPlainObject(scope)||this.isArray(scope)||this.isList(scope));},setValue:function(scope,fullPath,value){var namespaceComponents=fullPath.split('.');var propertyName=namespaceComponents.pop();var subScope=this.getNamespace(scope,namespaceComponents);subScope[propertyName]=value;},getArgsList:function(rawArguments){return new Basix.List(Array.prototype.slice.call(rawArguments));},extend:function(){var args=Array.prototype.slice.call(arguments);if(!args.length){return{};}
1802var deep=Basix.OVERRIDE_SHALLOW;var mergeArrays=Basix.ARRAYS_OVERRIDE;if(args.length>1){if(args[0]===true){args[0]=Basix.EXTEND_RECURSIVE;}else if(args[0]===false){args[0]=Basix.OVERRIDE_RECURSIVE;}
1803switch(args[0]){case Basix.EXTEND_RECURSIVE:deep=Basix.EXTEND_RECURSIVE;args.shift();break;case Basix.OVERRIDE_RECURSIVE:deep=Basix.EXTEND_RECURSIVE;args.shift();break;case Basix.OVERRIDE_SHALLOW:args.shift();break;default:break;}
1804if(args.length>1){if(args[0]===true){args[0]=Basix.ARRAYS_MERGE;}else if(args[0]===false){args[0]=Basix.ARRAYS_OVERRIDE;}
1805switch(args[0]){case Basix.ARRAYS_MERGE:mergeArrays=Basix.ARRAYS_MERGE;args.shift();break;case Basix.ARRAYS_OVERRIDE:break;default:break;}}}
1806var baseObject=false;for(var index in args){if(!args.hasOwnProperty(index)){continue;}
1807var arg=args[index];if(!this.isPlainObject(arg)){continue;}
1808if(!baseObject){baseObject=arg;continue;}
1809for(var property in arg){if(!arg.hasOwnProperty(property)){continue;}
1810if(this.isExtendable(arg[property])){if(this.isPlainObject(arg[property])&&!this.isPlainObject(baseObject[property])){baseObject[property]={};}else if(this.isArray(arg[property])&&!this.isArray(baseObject[property])){baseObject[property]=[];}else if(this.isList(arg[property])&&!this.isList(baseObject[property])){baseObject[property]=new Basix.List();}
1811if(this.isArray(arg[property])||this.isList(arg[property])){switch(mergeArrays){case Basix.ARRAYS_MERGE:if(this.isList(arg[property])){baseObject[property]=this.merge(deep,mergeArrays,new Basix.List(),baseObject[property],arg[property]);}else{baseObject[property]=this.merge(deep,mergeArrays,[],baseObject[property],arg[property]);}
1812break;case Basix.ARRAYS_OVERRIDE:default:switch(deep){case Basix.EXTEND_RECURSIVE:case Basix.OVERRIDE_RECURSIVE:if(this.isList(arg[property])){baseObject[property]=this.merge(deep,new Basix.List(),arg[property]);}else{baseObject[property]=this.merge(deep,[],arg[property]);}
1813break;case Basix.OVERRIDE_SHALLOW:default:baseObject[property]=arg[property];break;}
1814break;}}else{switch(deep){case Basix.EXTEND_RECURSIVE:baseObject[property]=this.extend(deep,mergeArrays,{},baseObject[property],arg[property]);break;case Basix.OVERRIDE_RECURSIVE:baseObject[property]=this.extend(deep,mergeArrays,{},arg[property]);break;case Basix.OVERRIDE_SHALLOW:default:baseObject[property]=arg[property];break;}}}else{baseObject[property]=arg[property];}}}
1815return baseObject?baseObject:{};},merge:function(){var args=Array.prototype.slice.call(arguments);if(!args.length){return[];}
1816var deep=Basix.OVERRIDE_SHALLOW;var mergeArrays=Basix.ARRAYS_OVERRIDE;if(args.length>1){if(args[0]===true){args[0]=Basix.EXTEND_RECURSIVE;}else if(args[0]===false){args[0]=Basix.OVERRIDE_RECURSIVE;}
1817switch(args[0]){case Basix.EXTEND_RECURSIVE:deep=Basix.EXTEND_RECURSIVE;args.shift();break;case Basix.OVERRIDE_RECURSIVE:deep=Basix.EXTEND_RECURSIVE;args.shift();break;case Basix.OVERRIDE_SHALLOW:args.shift();break;default:break;}
1818if(args.length>1){switch(args[0]){case Basix.ARRAYS_MERGE:mergeArrays=true;args.shift();break;case Basix.ARRAYS_OVERRIDE:break;default:break;}}}
1819var baseArray=false;for(var index in args){if(!args.hasOwnProperty(index)){continue;}
1820if(!this.isArray(args[index])&&!this.isList(args[index])){continue;}
1821if(!baseArray){baseArray=args[index];continue;}
1822for(var arrayIndex in args[index]){if(!args[index].hasOwnProperty(arrayIndex)){continue;}
1823var arrayElement=args[index][arrayIndex];if(this.isList(args[index])&&arrayIndex=='length'){continue;}
1824switch(deep){case Basix.EXTEND_RECURSIVE:case Basix.OVERRIDE_RECURSIVE:if(this.isPlainObject(arrayElement)){baseArray.push(this.extend(deep,mergeArrays,{},arrayElement));}else if(this.isArray(arrayElement)){baseArray.push(this.merge(deep,mergeArrays,[],arrayElement));}else if(this.isList(arrayElement)){baseArray.push(this.merge(deep,mergeArrays,new Basix.List(),arrayElement));}else{baseArray.push(arrayElement);}
1825break;case Basix.OVERRIDE_SHALLOW:default:baseArray.push(arrayElement);break;}}}
1826return baseArray;},isFunction:function(o){return(o instanceof Function);},isExtendable:function(o){if(this.isList(o)){return true;}
1827if(this.isArray(o)){return true;}
1828if(this.isFunction(o)){return false;}
1829if(this.isObject(o)){if(typeof(jQuery)=='undefined'){return true;}else if(o instanceof jQuery){return false;}
1830return true;}
1831return false;},isList:function(o){return(o instanceof Basix.List);},isArray:function(o){return((o instanceof Array)&&!(o instanceof Basix.List));},isObject:function(o){return(o instanceof Object);},isEmptyObject:function(obj){if(obj==null){return true;}
1832if(obj.length>0){return false;}
1833if(obj.length===0){return true;}
1834for(var key in obj){if(hasOwnProperty.call(obj,key)){return false;}}
1835return true;},isJqueryObject:function(o){if(!this.isPlainObject(jQuery)){return false;}
1836return(o instanceof jQuery);},isPlainObject:function(o){return(this.isObject(o)&&!this.isArray(o)&&!this.isList(o)&&!this.isFunction(o));},isString:function(o){return(typeof(o)=='string');},isBoolean:function(o){return(o===true||o===false);},isNull:function(o){return o===null;},isUndefined:function(o){return typeof(o)==='undefined';},isDefined:function(o){return!this.isUndefined(o);}
1836,isNumeric:function(o){if(this.isBoolean(o)||this.isNull()||o===''){return false;}
1837return(!isNaN(o));},inArray:function(key,targetArray){return jQuery.inArray(key,targetArray)!==-1;},getRandomString:function(length){var chars="ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";var stringLength=(typeof(length)!='undefined')?length:8;var randomString='';for(var i=0;i<stringLength;i++){var rNum=Math.floor(Math.random()*chars.length);randomString+=chars.substring(rNum,rNum+1);}
1838return randomString;},_makeApplicationBundle:function(classObject){var bundle={base:{},app:null,moduleNames:[],hasCoreConstructor:false,hasCoreDocumentReady:false,constructorMethodNames:[],documentReadyMethodNames:[]};for(var moduleName in classObject){if(classObject.hasOwnProperty(moduleName)){bundle.moduleNames.push(moduleName);var module=classObject[moduleName];var isCoreModule=(moduleName=='Core');if(module.hasOwnProperty('__construct')){if(module.hasOwnProperty(moduleName)){throw'Module: '+moduleName+' has two constructor methods: '+moduleName+'() and __construct().';}
1839module[moduleName]=module['__construct'];delete module['__construct'];if(isCoreModule){bundle.hasCoreConstructor=true;}else{bundle.constructorMethodNames.push(moduleName);}}
1840if(module.hasOwnProperty('__documentReady')){var documentReadyMethodName=moduleName+'__documentReady';if(module.hasOwnProperty(documentReadyMethodName)){throw'Module: '+moduleName+' has two document ready handler methods: '+documentReadyMethodName+'() and __documentReady().';}
1841module[documentReadyMethodName]=module['__documentReady'];delete module['__documentReady'];if(isCoreModule){bundle.hasCoreDocumentReady=true;}else{bundle.documentReadyMethodNames.push(documentReadyMethodName);}}
1842bundle.base=this.extend(bundle.base,module);}}
1843bundle.base.__moduleNames__=bundle.moduleNames;bundle.app=Basix.stdClass.extend(bundle.base);return bundle;},_instantiateFromBundle:function(bundle){this.get();var instance=new bundle.app();if(bundle.hasCoreConstructor){instance['Core']();}
1844for(var index in bundle.constructorMethodNames){if(bundle.constructorMethodNames.hasOwnProperty(index)){var constructorMethodName=bundle.constructorMethodNames[index];instance[constructorMethodName]();}}
1845jQuery(document).ready(function(event){var jqel=jQuery('body');var data=jqel.basixData();if(bundle.hasCoreDocumentReady){instance['Core__documentReady'](event,jqel,data);}
1846for(var index in bundle.documentReadyMethodNames){if(bundle.documentReadyMethodNames.hasOwnProperty(index)){var documentReadyMethodName=bundle.documentReadyMethodNames[index];instance[documentReadyMethodName](event,jqel,data);}}});return instance;},get:function(){return this.appify();},appify:function(classObject){if(this.isPlainObject(classObject)){var bundle=this._makeApplicationBundle(classObject);return this._instantiateFromBundle(bundle);}else{if(window.$basix!==undefined){return window.$basix;}else if(!this._basixInitializationInProgress){this._basixInitializationInProgress=true;window.$basix=this._instantiateFromBundle(this._makeApplicationBundle(Basix.App));this._basixInitializationInProgress=false;return window.$basix;}else{return false;}}},toHyphenatedString:function(string){return string.replace(/([a-z\d])([A-Z])/g,'$1-$2').replace(/[_\W]+/g,'-').toLowerCase();},toUnderscoredString:function(string){return string.replace(/([a-z\d])([A-Z])/g,'$1-$2').replace(/[\W]+/g,'_').toLowerCase();},toCamelCaseString:function(string){return string.replace(/[_\W]+(.)/g,function(x,chr){return chr.toUpperCase();});},toPascalCaseString:function(string){string=this.toCamelCaseString(string);return string[0].toUpperCase()+string.substring(1);},clog:function(){var args=Array.prototype.slice.call(arguments);var argsLength=args.length;for(var i=argsLength;i>=1;i--){console.log(args[argsLength-i]);}}};if(typeof(console)!='object'||typeof(console.log)!='function'){Basix.clog=function(){};}
1847(function(){Basix.stdClass=function(){};Basix.stdClass.__constructing=false;var _callToParentTest=/abc_basix/.test(function(){var abc_basix;})?/\b_parent\b/:/.*/;Basix.stdClass.extend=function(classObject){var _parentInstance=this.prototype;Basix.stdClass.__constructing=true;var prototype=new this();Basix.stdClass.__constructing=false;var parentProxyClosure=function(name,originalMethod){return function(){var tmpFn=this._parent;this._parent=_parentInstance[name];var result=originalMethod.apply(this,arguments);this._parent=tmpFn;return result;};};for(var propertyName in classObject){if(classObject.hasOwnProperty(propertyName)){var isValidMethod=(typeof(classObject[propertyName])=='function');var parentHasSameMethod=(typeof(_parentInstance[propertyName])=='function');var hasCallToParentMethod=isValidMethod&&parentHasSameMethod&&_callToParentTest.test(classObject[propertyName]);prototype[propertyName]=hasCallToParentMethod?parentProxyClosure(propertyName,classObject[propertyName]):classObject[propertyName];}}
1848var stdClass=function(){if(!Basix.stdClass.__constructing&&this.__construct){this.__construct.apply(this,arguments);}};stdClass.prototype=prototype;stdClass.constructor=stdClass;stdClass.extend=arguments.callee;return stdClass;};})();
1849Basix.namespace('Basix.List');Basix.List=(function(){var List=function(){this.from.apply(this,arguments);};List.prototype=[];var ListClass={getNativeArray:function(){var a=[];this.each(function(index,value){a.push(value);});return a;}
1849,get:function(index){if(index>=0&&index<this.length){return this[index];}
1850return undefined;},first:function(){if(this.length){return this[0];}
1851return undefined;},last:function(){if(this.length){return this[this.length-1];}
1852return undefined;},remove:function(from,to){if(!to){to=from+1;}
1853var howMany=to-from;this.splice(from,howMany);return this;},insert:function(){var args=Basix.getArgsList(arguments);var inputValue=args.first();var targetIndex=this.length;var secondArg=args.get(1);if(Basix.isNumeric(secondArg)){targetIndex=secondArg;}else if(Basix.isFunction(secondArg)){this.each(function(loopIndex,testValue){var testResult=secondArg(inputValue,testValue);if(testResult==1){targetIndex=loopIndex;return false;}});}
1854this.splice(targetIndex,0,inputValue);},binarySearch:function(inputValue,comparisonMethod,lowerBounds,upperBounds,depthLimit){Basix.clog('untested implementation');if(!depthLimit){depthLimit=100000;}else if(depthLimit<=0||!this.length){return-1;}
1855depthLimit--;if(!Basix.isNumeric(lowerBounds)){lowerBounds=0;}
1856if(!Basix.isNumeric(upperBounds)){upperBounds=this.length-1;}
1857var boundsDifference=upperBounds-lowerBounds;if(boundsDifference<0){return-1;}
1858var midPoint=Math.floor(boundsDifference / 2)+lowerBounds;var testResult=comparisonMethod(inputValue,this[midPoint]);if(testResult==0){return midPoint;}else if(testResult==1){return this.binarySearch(inputValue,comparisonMethod,midPoint+1,upperBounds,depthLimit);}else{return this.binarySearch(inputValue,comparisonMethod,lowerBounds,midPoint-1,depthLimit);}},unique:function(){this.concat();for(var i=0;i<this.length;++i){for(var j=i+1;j<this.length;++j){if(this[i]===this[j]){this.splice(j--,1);}}}
1859return this;},random:function(){if(!this.length){return undefined;}
1860var randomIndex=Math.floor(Math.random()*this.length);return this[randomIndex];},from:function(){this.length=0;return this.merge.apply(this,arguments);},prepend:function(){var args=Basix.getArgsList(arguments);args.reverse();args.each(function(argIndex,arg){if(!Basix.isArray(arg)||!arg.length){return;}
1861var spliceArgs=new Basix.List([0,0],arg);this.splice.apply(this,spliceArgs.getNativeArray());},this);return this;},append:function(){var args=Basix.getArgsList(arguments);args.each(function(argIndex,arg){if(!Basix.isArray(arg)){return;}
1862for(var index in arg){if(arg.hasOwnProperty(index)){this.push(arg[index]);}}},this);return this;},merge:function(){var values=Basix.merge.apply(Basix,arguments);for(var index in values){if(values.hasOwnProperty(index)){this.push(values[index]);}}
1863return this;},each:function(callback,scope){if(!Basix.isFunction(callback)){throw'Invalid callback for Basix.List.each(callback)';}
1864if(!scope){scope=this;}
1865for(var index in this){if(this.hasOwnProperty(index)&&index!='length'){if(callback.apply(scope,[index,this[index]])===false){break;}}}
1866return this;},reverse:function(){var tmpArray=[];for(var index=this.length-1;index>=0;index--){if(this.hasOwnProperty(index)){tmpArray.push(this[index]);}}
1867this.from(tmpArray);return this;},reverseEach:function(callback,scope){if(!Basix.isFunction(callback)){throw'Invalid callback for Basix.List.each(callback)';}
1868if(!scope){scope=this;}
1869for(var index=this.length-1;index>=0;index--){if(this.hasOwnProperty(index)){if(callback.apply(scope,[index,this[index]])===false){break;}}}},getJson:function(){return JSON.stringify(this.getNativeArray());}};for(var methodName in ListClass){if(ListClass.hasOwnProperty(methodName)){List.prototype[methodName]=ListClass[methodName];}}
1870return List;})();
1871Basix.namespace('Basix.App.Core');Basix.App.Core={_jqel_body:false,_isDocumentReady:false,_apps:[],_events:{},__construct:function(){},__documentReady:function(event,basix,jqel,data){this._jqel_body=jqel;this._isDocumentReady=true;var standardEvents=['click','hover','submit','change'];this.registerEvents(standardEvents);},registerApplication:function(application){var matched=false;for(var index in this._apps){if(this._apps.hasOwnProperty(index)){if(this._apps[index]==application){matched=true;break;}}}
1872if(!matched){this._apps.push(application);}},registerEvents:function(events){for(var eventKey in events){if(events.hasOwnProperty(eventKey)){this.registerEvent(events[eventKey]);}}},registerEvent:function(eventName){if(typeof(eventName)!='string'){throw"Invalid event name for Basix::registerEvent() ::: "+typeof(eventName);}
1873eventName=eventName.toLowerCase();if(this._events.hasOwnProperty(eventName)){return true;}
1874var jqel_target=jQuery(document);var selector='.bx-'+eventName;var self=this;if(jQuery.inArray(eventName,['hover'])==-1){jqel_target.on(eventName,selector,[],function(event){var jqel_current=jQuery(this);var jqel_original=jQuery(event.target);self.handleEvent(event,jqel_current,jqel_original);});}else{switch(eventName){case'hover':jqel_target.on('mouseenter',selector,[],function(event){var jqel=jQuery(this);self.handleHoverStartEvent(event,jqel);}).on('mouseleave',selector,[],function(event){var jqel=jQuery(this);self.handleHoverEndEvent(event,jqel);});break;}}
1875return true;},handleEvent:function(event,jqel_current,jqel_original){var currentData=jqel_current.basixData();var originalData=jqel_original.basixData();var handlerDataKey='bx'+this._capitalizeFirstWord(event.type);var handlers=currentData[handlerDataKey];if(!handlers){return;}
1876if(!jQuery.isArray(handlers)){if(typeof(handlers)=='string'){var tmpHandlers=false;try{tmpHandlers=JSON.parse(handlers);}catch(error){}
1877if(jQuery.isArray(tmpHandlers)){handlers=tmpHandlers;}else{if(handlers.indexOf(';')!=-1){handlers=handlers.split(';');}else{handlers=[handlers];}}
1878jqel_original.basixData(handlerDataKey,handlers);}else{return;}}
1879for(var index in this._apps){if(this._apps.hasOwnProperty(index)){var app=this._apps[index];for(var handlerKey in handlers){if(!handlers.hasOwnProperty(handlerKey)){break;}
1880var handlerName='event_'+handlers[handlerKey];if(typeof(app[handlerName])=='function'){app[handlerName].apply(app,[event,jqel_current,currentData,jqel_original,originalData]);}}}}},handleHoverStartEvent:function(event,jqel){},handleHoverEndEvent:function(event,jqel){},_capitalizeFirstWord:function(string){return string.charAt(0).toUpperCase()+string.slice(1);}};
1881Basix.namespace('Basix.Encoder');Basix.Encoder={EncodeType:"entity",isEmpty:function(val){if(val){return((val===null)||val.length==0||/^\s+$/.test(val));}else{return true;}},arr1:['&nbsp;','&iexcl;','&cent;','&pound;','&curren;','&yen;','&brvbar;','&sect;','&uml;','&copy;','&ordf;','&laquo;','&not;','&shy;','&reg;','&macr;','&deg;','&plusmn;','&sup2;','&sup3;','&acute;','&micro;','&para;','&middot;','&cedil;','&sup1;','&ordm;','&raquo;','&frac14;','&frac12;','&frac34;','&iquest;','&Agrave;','&Aacute;','&Acirc;','&Atilde;','&Auml;','&Aring;','&AElig;','&Ccedil;','&Egrave;','&Eacute;','&Ecirc;','&Euml;','&Igrave;','&Iacute;','&Icirc;','&Iuml;','&ETH;','&Ntilde;','&Ograve;','&Oacute;','&Ocirc;','&Otilde;','&Ouml;','&times;','&Oslash;','&Ugrave;','&Uacute;','&Ucirc;','&Uuml;','&Yacute;','&THORN;','&szlig;','&agrave;','&aacute;','&acirc;','&atilde;','&auml;','&aring;','&aelig;','&ccedil;','&egrave;','&eacute;','&ecirc;','&euml;','&igrave;','&iacute;','&icirc;','&iuml;','&eth;','&ntilde;','&ograve;','&oacute;','&ocirc;','&otilde;','&ouml;','&divide;','&oslash;','&ugrave;','&uacute;','&ucirc;','&uuml;','&yacute;','&thorn;','&yuml;','&quot;','&amp;','&lt;','&gt;','&OElig;','&oelig;','&Scaron;','&scaron;','&Yuml;','&circ;','&tilde;','&ensp;','&emsp;','&thinsp;','&zwnj;','&zwj;','&lrm;','&rlm;','&ndash;','&mdash;','&lsquo;','&rsquo;','&sbquo;','&ldquo;','&rdquo;','&bdquo;','&dagger;','&Dagger;','&permil;','&lsaquo;','&rsaquo;','&euro;','&fnof;','&Alpha;','&Beta;','&Gamma;','&Delta;','&Epsilon;','&Zeta;','&Eta;','&Theta;','&Iota;','&Kappa;','&Lambda;','&Mu;','&Nu;','&Xi;','&Omicron;','&Pi;','&Rho;','&Sigma;','&Tau;','&Upsilon;','&Phi;','&Chi;','&Psi;','&Omega;','&alpha;','&beta;','&gamma;','&delta;','&epsilon;','&zeta;','&eta;','&theta;','&iota;','&kappa;','&lambda;','&mu;','&nu;','&xi;','&omicron;','&pi;','&rho;','&sigmaf;','&sigma;','&tau;','&upsilon;','&phi;','&chi;','&psi;','&omega;','&thetasym;','&upsih;','&piv;','&bull;','&hellip;','&prime;','&Prime;','&oline;','&frasl;','&weierp;','&image;','&real;','&trade;','&alefsym;','&larr;','&uarr;','&rarr;','&darr;','&harr;','&crarr;','&lArr;','&uArr;','&rArr;','&dArr;','&hArr;','&forall;','&part;','&exist;','&empty;','&nabla;','&isin;','&notin;','&ni;','&prod;','&sum;','&minus;','&lowast;','&radic;','&prop;','&infin;','&ang;','&and;','&or;','&cap;','&cup;','&int;','&there4;','&sim;','&cong;','&asymp;','&ne;','&equiv;','&le;','&ge;','&sub;','&sup;','&nsub;','&sube;','&supe;','&oplus;','&otimes;','&perp;','&sdot;','&lceil;','&rceil;','&lfloor;','&rfloor;','&lang;','&rang;','&loz;','&spades;
1881','&clubs;','&hearts;','&diams;'],arr2:['&#160;','&#161;','&#162;','&#163;','&#164;','&#165;','&#166;','&#167;','&#168;','&#169;','&#170;','&#171;','&#172;','&#173;','&#174;','&#175;','&#176;','&#177;','&#178;','&#179;','&#180;','&#181;','&#182;','&#183;','&#184;','&#185;','&#186;','&#187;','&#188;','&#189;','&#190;','&#191;','&#192;','&#193;','&#194;','&#195;','&#196;','&#197;','&#198;','&#199;','&#200;','&#201;','&#202;','&#203;','&#204;','&#205;','&#206;','&#207;','&#208;','&#209;','&#210;','&#211;','&#212;','&#213;','&#214;','&#215;','&#216;','&#217;','&#218;','&#219;','&#220;','&#221;','&#222;','&#223;','&#224;','&#225;','&#226;','&#227;','&#228;','&#229;','&#230;','&#231;','&#232;','&#233;','&#234;','&#235;','&#236;','&#237;','&#238;','&#239;','&#240;','&#241;','&#242;','&#243;','&#244;','&#245;','&#246;','&#247;','&#248;','&#249;','&#250;','&#251;','&#252;','&#253;','&#254;','&#255;','&#34;','&#38;','&#60;','&#62;','&#338;','&#339;','&#352;','&#353;','&#376;','&#710;','&#732;','&#8194;','&#8195;','&#8201;','&#8204;','&#8205;','&#8206;','&#8207;','&#8211;','&#8212;','&#8216;','&#8217;','&#8218;','&#8220;','&#8221;','&#8222;','&#8224;','&#8225;','&#8240;','&#8249;','&#8250;','&#8364;','&#402;','&#913;','&#914;','&#915;','&#916;','&#917;','&#918;','&#919;','&#920;','&#921;','&#922;','&#923;','&#924;','&#925;','&#926;','&#927;','&#928;','&#929;','&#931;','&#932;','&#933;','&#934;','&#935;','&#936;','&#937;','&#945;','&#946;','&#947;','&#948;','&#949;','&#950;','&#951;','&#952;','&#953;','&#954;','&#955;','&#956;','&#957;','&#958;','&#959;','&#960;','&#961;','&#962;','&#963;','&#964;','&#965;','&#966;','&#967;','&#968;','&#969;','&#977;','&#978;','&#982;','&#8226;','&#8230;','&#8242;','&#8243;','&#8254;','&#8260;','&#8472;','&#8465;','&#8476;','&#8482;','&#8501;','&#8592;','&#8593;','&#8594;','&#8595;','&#8596;','&#8629;','&#8656;','&#8657;','&#8658;','&#8659;','&#8660;','&#8704;','&#8706;','&#8707;','&#8709;','&#8711;','&#8712;','&#8713;','&#8715;','&#8719;','&#8721;','&#8722;','&#8727;','&#8730;','&#8733;','&#8734;','&#8736;','&#8743;','&#8744;','&#8745;','&#8746;','&#8747;','&#8756;','&#8764;','&#8773;','&#8776;','&#8800;','&#8801;','&#8804;','&#8805;','&#8834;','&#8835;','&#8836;','&#8838;','&#8839;','&#8853;','&#8855;','&#8869;','&#8901;','&#8968;','&#8969;','&#8970;','&#8971;','&#9001;','&#9002;','&#9674;','&#9824;','&#9827;','&#9829;','&#9830;'],HTML2Numerical:function(s){return this.swapArrayVals(s,this.arr1,this.arr2);},NumericalToHTML:function(s){return this.swapArrayVals(s,this.arr2,this.arr1);},numEncode:function(s){if(this.isEmpty(s))return"";var a=[],l=s.length;for(var i=0;i<l;i++){var c=s.charAt(i);if(c<" "||c>"~"){a.push("&#");a.push(c.charCodeAt());a.push(";");}else{a.push(c);}}
1882return a.join("");},htmlDecode:function(s){var c,m,d=s;if(this.isEmpty(d))return"";d=this.HTML2Numerical(d);arr=d.match(/&#[0-9]{1,5};/g);if(arr!=null){for(var x=0;x<arr.length;x++){m=arr[x];c=m.substring(2,m.length-1);if(c>=-32768&&c<=65535){d=d.replace(m,String.fromCharCode(c));}else{d=d.replace(m,"");}}}
1883return d;},htmlEncode:function(s,dbl){if(this.isEmpty(s))return"";dbl=dbl||false;if(dbl){if(this.EncodeType=="numerical"){s=s.replace(/&/g,"&#38;");}else{s=s.replace(/&/g,"&amp;");}}
1884s=this.XSSEncode(s,false);if(this.EncodeType=="numerical"||!dbl){s=this.HTML2Numerical(s);}
1885s=this.numEncode(s);if(!dbl){s=s.replace(/&#/g,"##AMPHASH##");if(this.EncodeType=="numerical"){s=s.replace(/&/g,"&#38;");}else{s=s.replace(/&/g,"&amp;");}
1886s=s.replace(/##AMPHASH##/g,"&#");}
1887s=s.replace(/&#\d*([^\d;]|$)/g,"$1");if(!dbl){s=this.correctEncoding(s);}
1888if(this.EncodeType=="entity"){s=this.NumericalToHTML(s);}
1889return s;},XSSEncode:function(s,en){if(!this.isEmpty(s)){en=en||true;if(en){s=s.replace(/\'/g,"&#39;");s=s.replace(/\"/g,"&quot;");s=s.replace(/</g,"&lt;");s=s.replace(/>/g,"&gt;");}else{s=s.replace(/\'/g,"&#39;");s=s.replace(/\"/g,"&#34;");s=s.replace(/</g,"&#60;");s=s.replace(/>/g,"&#62;");}
1890return s;}else{return"";}},hasEncoded:function(s){if(/&#[0-9]{1,5};/g.test(s)){return true;}else if(/&[A-Z]{2,6};/gi.test(s)){return true;}else{return false;}},stripUnicode:function(s){return s.replace(/[^\x20-\x7E]/g,"");},correctEncoding:function(s){return s.replace(/(&amp;)(amp;)+/,"$1");},swapArrayVals:function(s,arr1,arr2){if(this.isEmpty(s))return"";var re;if(arr1&&arr2){if(arr1.length==arr2.length){for(var x=0,i=arr1.length;x<i;x++){re=new RegExp(arr1[x],'g');s=s.replace(re,arr2[x]);}}}
1891return s;},inArray:function(item,arr){for(var i=0,x=arr.length;i<x;i++){if(arr[i]===item){return i;}}
1892return-1;}};
1893Basix.namespace('Basix.Tag');Basix.Tag={_globalTagAttributes:['class','dir','id','lang','style','tabindex','title','xml:lang'],_html5GlobalTagAttributes:['role','contenteditable','contextmenu','draggable','dropzone','hidden','spellcheck','translate'],_selfClosingTags:['area','base','br','col','command','embed','hr','img','input','keygen','link','meta','param','source','track','wbr'],_html5Tags:['article','aside','audio','bdi','canvas','command','datalist','details','dialog','embed','figcaption','figure','footer','header','keygen','mark','meter','nav','output','progress','rp','rt','ruby','section','source','
1893summary','time','track','video','wbr'],_deprecatedTags:['acronym','applet','basefont','big','center','dir','font','frame','frameset','noframes','strike','tt'],_globalAttributeOptions:{shape:['default','rect','circle','poly'],hidden:['hidden'],open:['open'],autofocus:['autofocus'],disabled:['disabled'],checked:['checked'],selected:['selected'],novalidate:['novalidate'],autocomplete:['on','off'],formenctype:['application/x-www-form-urlencoded','multipart/form-data','text/plain'],formmethod:['get','post'],formnovalidate:['formnovalidate']},_tagAttributeOptions:{a:{rel:['alternate','author','bookmark','help','license','next','nofollow','noreferrer','prefetch','prev','search','tag']},applet:{align:['left','right','top','bottom','middle','baseline']},area:{rel:['alternate','author','bookmark','help','license','next','nofollow','noreferrer','prefetch','prev','search','tag']},audio:{autoplay:['autoplay'],controls:['controls'],loop:['loop'],muted:['muted'],preload:['auto','metadata','none']},button:{type:['button','reset','submit']},caption:{align:['left','right','top','bottom']},col:{align:['top','middle','bottom','baseline']},colgroup:{align:['top','middle','bottom','baseline']},command:{type:['checkbox','command','radio']},div:{align:['left','right','center','justify']},form:{enctype:['application/x-www-form-urlencoded','multipart/form-data','text/plain'],method:['get','post']},frame:{frameborder:['0','1'],noresize:['noresize'],scrolling:['yes','no','auto']},h1:{align:['left','center','right','justify']},h2:{align:['left','center','right','justify']},h3:{align:['left','center','right','justify']},h4:{align:['left','center','right','justify']},h5:{align:['left','center','right','justify']},h6:{align:['left','center','right','justify']},hr:{align:['left','center','right'],noshade:['noshade']},html:{xmlns:['http://www.w3.org/1999/xhtml']},iframe:{align:['left','right','top','middle','bottom'],frameborder:['0','1'],sandbox:['','allow-forms','allow-same-origin','allow-scripts','allow-top-navigation'],scrolling:['yes','no','auto'],seamless:['seamless']}
1893,img:{align:['top','bottom','middle','left','right'],crossorigin:['anonymous','use-credentials']},input:{align:['left','right','top','middle','bottom'],type:['button','checkbox','color','date','datetime','datetime-local','email','file','hidden','image','month','number','password','radio','range','reset','search','submit','tel','text','time','url','week']},keygen:{challenge:['challenge'],keytype:['rsa','dsa','ec']},legend:{align:['top','bottom','left','right']},li:{type:['1','A','a','I','i','disc','square','circle']},link:{rel:['alternative','archives','author','bookmark','external','first','help','icon','last','license','next','nofollow','noreferrer','pingback','prefetch','prev','search','sidebar','stylesheet','tag','up']},menu:{type:['context','toolbar','list']},meta:{'http-equiv':['content-type','default-style','refresh'],name:['application-name','author','description','generator','keywords']},object:{align:['top','bottom','middle','left','right'],declare:['declare']},ol:{compact:['compact'],reversed:['reversed'],type:['1','A','a','I','i']},p:{align:['left','right','center','justify']},param:{valuetype:['data','ref','object']},script:{async:['async'],defer:['defer'],'xml:space':['preserve']},style:{scoped:['scoped']},table:{align:['left','center','right'],frame:['void','above','below','hsides','lhs','rhs','vsides','box','border'],rules:['none','groups','rows','cols','all']},tbody:{align:['right','left','center','justify','char'],valign:['top','middle','bottom','baseline']},td:{align:['right','left','center','justify','char'],nowrap:['nowrap'],scope:['col','colgroup','row','rowgroup'],valign:['top','middle','bottom','baseline']},textarea:{wrap:['hard','soft']},tfoot:{align:['right','left','center','justify','char'],valign:['top','middle','bottom','baseline']},th:{align:['right','left','center','justify','char'],nowrap:['nowrap'],scope:['col','colgroup','row','rowgroup'],valign:['top','middle','bottom','baseline']},thead:{align:['right','left','center','justify','char'],valign:['top','middle','bottom','baseline']},tr:{align:['right','left','center','justify','char'],valign:['top','middle','bottom','baseline']},track:{'default':['default'],kind:['captions','chapters','descriptions','metadata','subtitles']},ul:{compact:['compact'],type:['disc','square','circle']},video:{autoplay:['autoplay'],controls:['controls'],loop:['loop'],muted:['muted'],preload:['auto','metadata','none']}},_allowedEmptyAttributes:[],_tags:{a:['charset','coords','download','href','hreflang','media','name','rel','rev','shape','target','type'],abbr:[],acronym:[],address:[],applet:['code','object','align','alt','archive','codebase','height','hspace','name','vspace','width'],area:['area','coords','download','href','hreflang','media','nohref','rel','shape','target','type'],article:[],aside:[],audio:['autoplay','controls','loop','muted','preload','src'],b:[],base:['href','target'],basefont:['color','face','size'],bdi:[],bdo:['dir'],big:[],blockquote:['cite'],body:['alink','background','bgcolor','link','text','vlink'],br:[],button:['autofocus','disabled','form','formaction','formenctype','formmethod','formnovalidate','formtarget','name','type','value'],canvas:['height','width'],caption:['align'],center:[],cite:[],code:[],col:['align','char','charoff','span','valign','width'],colgroup:['align','char','charoff','span','valign','width'],command:['checked','disabled','icon','label','radiogroup','type'],datalist:[],dd:[],del:['cite','datetime'],details:['open'],dfn:[],dialog:['open'],dir:['compact'],div:['align'],dl:[],dt:[],em:[],embed:['height','src','type','width'],fieldset:['disabled','form','name'],figcaption:[],figure:[],font:['color','face','size'],footer:[],form:['accept','accept-charset','action','autocomplete','enctype','method','name','novalidate','target'],frame:['frameborder','longdesc','marginheight','marginwidth','name','noresize','scrolling','src'],frameset:['cols','rows'],h1:['align'],h2:['align'],h3:['align'],h4:['align'],h5:['align'],h6:['align'],head:['profile'],header:[],hr:['align','noshade','size','width'],html:['manifest','xmlns'],i:[],iframe:['align','frameborder','height','longdesc','marginheight','marginwidth','name','sandbox','scrolling','seamless','src','srcdoc','
1893width'],img:['align','alt','border','crossorigin','height','hspace','ismap','longdesc','src','usemap','vspace','width'],input:['accept','align','alt','autocomplete','autofocus','checked','disabled','form','formaction','formenctype','formmethod','formnovalidate','formtarget','height','list','max','maxlength','min','multiple','name','pattern','placeholder','readonly','required','size','src','step','type','value','width'],ins:['cite','datetime'],kbd:[],keygen:['autofocus','challenge','disabled','form','keytype','name'],label:['for','form'],legend:['align'],li:['type','value'],link:['charset','href','hreflang','media','rel','rev','sizes','target','type'],map:['name'],mark:[],menu:['label','type'],meta:['charset','content','http-equiv','name','scheme'],meter:['form','high','low','max','min','optimum','value'],nav:[],noframes:[],noscript:[],object:['align','archive','border','classid','codebase','codetype','data','declare','form','height','height','hspace','name','standby','type','usemap','vspace','width'],ol:['compact','reversed','start','type'],optgroup:['disabled','label'],option:['disabled','label','selected','value'],output:['for','form','name'],p:['align'],param:['name','type','value','valuetype'],pre:['width'],progress:['max','value'],q:['cite'],rp:[],rt:[],ruby:[],s:[],samp:[],script:['async','charset','defer','src','type','xml:space'],section:[],select:['autofocus','disabled','form','multiple','name','required','size'],small:[],source:['media','src','type'],span:[],strike:[],strong:[],style:['media','scoped','type'],sub:[],summary:[],sup:[],table:['align','bgcolor','border','cellpadding','cellspacing','frame','rules','summary','width'],tbody:['align','char','charoff','valign'],td:['abbr','align','axis','bgcolor','char','charoff','colspan','headers','height','nowrap','rowspan','scope','valign','width'],textarea:['autofocus','cols','disabled','form','maxlength','name','placeholder','readonly','required','rows','wrap'],tfoot:['align','char','charoff','valign'],th:['abbr','align','axis','bgcolor','char','charoff','colspan','headers','height','nowrap','rowspan','scope','valign','width'],thead:['align','char','charoff','valign'],time:['datetime'],title:[],tr:['align','bgcolor','char','charoff','valign'],track:['default','kind','label','src','srclang'],tt:[],u:[],ul:['compact','type'],'var':[],video:['autoplay','controls','height','loop','muted','poster','preload','src','width'],wbr:[]},_tagDefinitions:{},_buildTagDefinition:function(tagName){if(this._tagDefinitions.hasOwnProperty(tagName)){return;}
1894if(!this._tags.hasOwnProperty(tagName)){throw'Invalid tag "'+tagName+'" in Basix.Tag';}
1895var d={name:tagName,html5:Basix.inArray(tagName,this._html5Tags),deprecated:Basix.inArray(tagName,this._deprecatedTags),attributes:Basix.merge([],this._globalTagAttributes,this._html5GlobalTagAttributes),attributeOptions:{}};d.attributes=Basix.merge(d.attributes,this._tags[tagName]);var attributeName;for(var index in d.attributes){if(d.attributes.hasOwnProperty(index)){attributeName=d.attributes[index];if(this._globalAttributeOptions.hasOwnProperty(attributeName)){d.attributeOptions[attributeName]=Basix.merge([],this._globalAttributeOptions[attributeName]);}}}
1896if(this._tagAttributeOptions.hasOwnProperty(tagName)){d.attributeOptions=Basix.extend(Basix.EXTEND_RECURSIVE,d.attributeOptions,this._tagAttributeOptions[tagName]);}
1897this._tagDefinitions[tagName]=d;},isValidTag:function(tagName){return this._tags.hasOwnProperty(tagName);},isValidAttribute:function(tagName,attributeName){if(this.isValidTag(tagName)){if(attributeName.startsWith('aria-')){return true;}
1898this._buildTagDefinition(tagName);if(!Basix.inArray(attributeName,this._tagDefinitions[tagName].attributes)){console.warn(`Potentially rendering an invalid HTML attribute: ${attributeName} for tag: ${tagName}`);}
1899return true;}else{console.warn(`Potentially rendering an invalid HTML tag: ${tagName}`);}
1900return true;},isValidAttributeValue:function(tagName,attributeName,attributeValue){if(this.isValidAttribute(tagName,attributeName)){if(attributeName.startsWith('aria-')||attributeName==='role'){return true;}
1901if(!this._tagDefinitions[tagName].attributeOptions.hasOwnProperty(attributeName)){return true;}
1902return Basix.inArray(attributeValue,this._tagDefinitions[tagName].attributeOptions[attributeName]);}
1903return false;},getValidAttributes:function(tagName){if(!this.isValidTag(tagName)){return[];}
1904this._buildTagDefinition(tagName);return this._tagDefinitions[tagName].attributes;},getValidAttributeValues:function(tagName,attributeName){if(!this.isValidAttribute(tagName,attributeName)){return[];}
1905if(attributeName.startsWith('aria-')){return[];}
1906return this._tagDefinitions[tagName].attributeOptions[attributeName];},html:function(options,content){var defaultOptions={tag:'div',classes:[],data:{},attributes:{},content:'',closeTag:true,selfClosing:false};options=Basix.extend(true,true,{},defaultOptions,options);options.tag=options.tag.toLowerCase();options.selfClosing=Basix.inArray(options.tag,this._selfClosingTags);this._buildTagDefinition(options.tag);var dataString='';for(var key in options.data){if(options.data.hasOwnProperty(key)){if(key.indexOf('bx-')===0){options.classes.push(key);}
1907dataString+='data-'+Basix.toHyphenatedString(key)+'="'+Basix.Encoder.htmlEncode(Basix.isString(options.data[key])?options.data[key]:JSON.stringify(options.data[key]))+'" ';}}
1908options.attributes['class']=options.classes.join(' ');var html='<'+options.tag+' ';
1908for(var attributeName in options.attributes){if(options.attributes.hasOwnProperty(attributeName)){if(!this.isValidAttribute(options.tag,attributeName)){Basix.clog('Invalid attribute: "'+attributeName+'" for tag: "'+options.tag+'" - Expected one of: ['+this.getValidAttributes(options.tag).join('", "')+'"]');continue;}
1909var attributeValue=options.attributes[attributeName];if(attributeValue===true){attributeValue=attributeName;}
1910if(!this.isValidAttributeValue(options.tag,attributeName,attributeValue)){Basix.clog('Invalid attribute value: "'+attributeValue+'" for attribute: "'+attributeName+'" on tag: "'+options.tag+'" - Expected one of: ["'+this.getValidAttributeValues(options.tag,attributeName).join('", "')+'"]');continue;}
1911if(!attributeValue){continue;}
1912html+=attributeName+'="'+attributeValue+'" ';}}
1913html+=dataString;if(options.selfClosing){html+='/>';}else{html+='>';html+=content?content:'';if(options.closeTag){html+=options.content+'</'+options.tag+'>';}}
1914return html;}};
1915(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory);}else{factory(jQuery);}}(function($){$.ui=$.ui||{};$.extend($.ui,{version:"@VERSION",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},safeActiveElement:function(document){var activeElement;try{activeElement=document.activeElement;}catch(error){activeElement=document.body;}
1916if(!activeElement){activeElement=document.body;}
1917if(!activeElement.nodeName){activeElement=document.body;}
1918return activeElement;},safeBlur:function(element){if(element&&element.nodeName.toLowerCase()!=="body"){$(element).trigger("blur");}},escapeSelector:(function(){var selectorEscape=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;
1919  return function( selector ) {
1920   return selector.replace( selectorEscape, "\\$1" );
1921  };
1922 } )()
1923} );
1924
1925// plugins
1926$.fn.extend( {
1927 scrollParent: function( includeHidden ) {
1928  var position = this.css( "position" ),
1929   excludeStaticParent = position === "absolute",
1930   overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/,
1931   scrollParent = this.parents().filter( function() {
1932    var parent = $( this );
1933    if ( excludeStaticParent && parent.css( "position" ) === "static" ) {
1934     return false;
1935    }
1936    return overflowRegex.test( parent.css( "overflow" ) + parent.css( "overflow-y" ) + parent.css( "overflow-x" ) );
1937   } ).eq( 0 );
1938
1939  return position === "fixed" || !scrollParent.length ? $( this[ 0 ].ownerDocument || document ) : scrollParent;
1940 },
1941
1942 uniqueId: ( function() {
1943  var uuid = 0;
1944
1945  return function() {
1946   return this.each( function() {
1947    if ( !this.id ) {
1948     this.id = "ui-id-" + ( ++uuid );
1949    }
1950   } );
1951  };
1952 } )(),
1953
1954 removeUniqueId: function() {
1955  return this.each( function() {
1956   if ( /^ui-id-\d+$/.test( this.id ) ) {
1957    $( this ).removeAttr( "id" );
1958   }
1959  } );
1960 },
1961
1962 // Support: IE8 Only
1963 // IE8 does not support the form attribute and when it is supplied. It overwrites the form prop
1964 // with a string, so we need to find the proper form.
1965 form: function() {
1966  return typeof this[ 0 ].form === "string" ? this.closest( "form" ) : $( this[ 0 ].form );
1967 },
1968
1969 labels: function() {
1970  var ancestor, selector, id, labels, ancestors;
1971
1972  // Check control.labels first
1973  if ( this[ 0 ].labels && this[ 0 ].labels.length ) {
1974   return this.pushStack( this[ 0 ].labels );
1975  }
1976
1977  // Support: IE <= 11, FF <= 37, Android <= 2.3 only
1978  // Above browsers do not support control.labels. Everything below is to support them
1979  // as well as document fragments. control.labels does not work on document fragments
1980  labels = this.eq( 0 ).parents( "label" );
1981
1982  // Look for the label based on the id
1983  id = this.attr( "id" );
1984  if ( id ) {
1985
1986   // We don't search against the document in case the element
1987   // is disconnected from the DOM
1988   ancestor = this.eq( 0 ).parents().last();
1989
1990   // Get a full set of top level ancestors
1991   ancestors = ancestor.add( ancestor.length ? ancestor.siblings() : this.siblings() );
1992
1993   // Create a selector for the label based on the id
1994   selector = "label[for='" + $.ui.escapeSelector( id ) + "']";
1995
1996   labels = labels.add( ancestors.find( selector ).addBack( selector ) );
1997
1998  }
1999
2000  // Return whatever we have found for labels
2001  return this.pushStack( labels );
2002 }
2003} );
2004
2005// selectors
2006function focusable( element, hasTabindex ) {
2007 var map, mapName, img,
2008  nodeName = element.nodeName.toLowerCase();
2009 if ( "area" === nodeName ) {
2010  map = element.parentNode;
2011  mapName = map.name;
2012  if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
2013   return false;
vendor: 6,824 bytes, lines 2014-2178
2014  }
2015  img = $( "img[usemap='#" + mapName + "']" )[ 0 ];
2016  return !!img && visible( img );
2017 }
2018 return ( /^(input|select|textarea|button|object)$/.test( nodeName ) ?
2019  !element.disabled :
2020  "a" === nodeName ?
2021   element.href || hasTabindex :
2022   hasTabindex ) &&
2023  // the element and all of its ancestors must be visible
2024  visible( element );
2025}
2026
2027function visible( element ) {
2028 return $.expr.filters.visible( element ) &&
2029  !$( element ).parents().addBack().filter( function() {
2030   return $.css( this, "visibility" ) === "hidden";
2031  } ).length;
2032}
2033
2034$.extend( $.expr[ ":" ], {
2035 data: $.expr.createPseudo ?
2036  $.expr.createPseudo( function( dataName ) {
2037   return function( elem ) {
2038    return !!$.data( elem, dataName );
2039   };
2040  } ) :
2041  // support: jQuery <1.8
2042  function( elem, i, match ) {
2043   return !!$.data( elem, match[ 3 ] );
2044  },
2045
2046 focusable: function( element ) {
2047  return focusable( element, $.attr( element, "tabindex" ) != null );
2048 },
2049
2050 tabbable: function( element ) {
2051  var tabIndex = $.attr( element, "tabindex" ),
2052   hasTabindex = tabIndex != null;
2053  return ( !hasTabindex || tabIndex >= 0 ) && focusable( element, hasTabindex );
2054 }
2055} );
2056
2057// support: jQuery 1.7 only
2058// Not a great way to check versions, but since we only support 1.7+ and only
2059// need to detect <1.8, this is a simple check that should suffice. Checking
2060// for "1.7." would be a bit safer, but the version string is 1.7, not 1.7.0
2061// and we'll never reach 1.70.0 (if we do, we certainly won't be supporting
2062// 1.7 anymore). See #11197 for why we're not using feature detection.
2063if ( $.fn.jquery.substring( 0, 3 ) === "1.7" ) {
2064
2065 // Setters for .innerWidth(), .innerHeight(), .outerWidth(), .outerHeight()
2066 // Unlike jQuery Core 1.8+, these only support numeric values to set the
2067 // dimensions in pixels
2068 $.each( [ "Width", "Height" ], function( i, name ) {
2069  var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],
2070   type = name.toLowerCase(),
2071   orig = {
2072    innerWidth: $.fn.innerWidth,
2073    innerHeight: $.fn.innerHeight,
2074    outerWidth: $.fn.outerWidth,
2075    outerHeight: $.fn.outerHeight
2076   };
2077
2078  function reduce( elem, size, border, margin ) {
2079   $.each( side, function() {
2080    size -= parseFloat( $.css( elem, "padding" + this ) ) || 0;
2081    if ( border ) {
2082     size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0;
2083    }
2084    if ( margin ) {
2085     size -= parseFloat( $.css( elem, "margin" + this ) ) || 0;
2086    }
2087   } );
2088   return size;
2089  }
2090
2091  $.fn[ "inner" + name ] = function( size ) {
2092   if ( size === undefined ) {
2093    return orig[ "inner" + name ].call( this );
2094   }
2095
2096   return this.each( function() {
2097    $( this ).css( type, reduce( this, size ) + "px" );
2098   } );
2099  };
2100
2101  $.fn[ "outer" + name ] = function( size, margin ) {
2102   if ( typeof size !== "number" ) {
2103    return orig[ "outer" + name ].call( this, size );
2104   }
2105
2106   return this.each( function() {
2107    $( this ).css( type, reduce( this, size, true, margin ) + "px" );
2108   } );
2109  };
2110 } );
2111
2112 $.fn.addBack = function( selector ) {
2113  return this.add( selector == null ?
2114   this.prevObject : this.prevObject.filter( selector )
2115  );
2116 };
2117}
2118
2119// deprecated
2120$.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() );
2121
2122$.fn.extend( {
2123 disableSelection: ( function() {
2124  var eventType = "onselectstart" in document.createElement( "div" ) ?
2125   "selectstart" :
2126   "mousedown";
2127
2128  return function() {
2129   return this.on( eventType + ".ui-disableSelection", function( event ) {
2130    event.preventDefault();
2131   } );
2132  };
2133 } )(),
2134
2135 enableSelection: function() {
2136  return this.off( ".ui-disableSelection" );
2137 }
2138} );
2139
2140// $.ui.plugin is deprecated. Use $.widget() extensions instead.
2141$.ui.plugin = {
2142 add: function( module, option, set ) {
2143  var i,
2144   proto = $.ui[ module ].prototype;
2145  for ( i in set ) {
2146   proto.plugins[ i ] = proto.plugins[ i ] || [];
2147   proto.plugins[ i ].push( [ option, set[ i ] ] );
2148  }
2149 },
2150 call: function( instance, name, args, allowDisconnected ) {
2151  var i,
2152   set = instance.plugins[ name ];
2153
2154  if ( !set ) {
2155   return;
2156  }
2157
2158  if ( !allowDisconnected && ( !instance.element[ 0 ].parentNode || instance.element[ 0 ].parentNode.nodeType === 11 ) ) {
2159   return;
2160  }
2161
2162  for ( i = 0; i < set.length; i++ ) {
2163   if ( instance.options[ set[ i ][ 0 ] ] ) {
2164    set[ i ][ 1 ].apply( instance.element, args );
2165   }
2166  }
2167 }
2168};
2169
2170} ) );
2171
2172(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory);}else{factory(jQuery);}}(function($){var widget_uuid=0,widget_slice=Array.prototype.slice;$.cleanData=(function(orig){return function(elems){var events,elem,i;for(i=0;(elem=elems[i])!=null;i++){try{events=$._data(elem,"events");if(events&&events.remove){$(elem).triggerHandler("remove");}}catch(e){}}
2173orig(elems);};})($.cleanData);$.widget=function(name,base,prototype){var fullName,existingConstructor,constructor,basePrototype,proxiedPrototype={},namespace=name.split(".")[0];name=name.split(".")[1];fullName=namespace+"-"+name;if(!prototype){prototype=base;base=$.Widget;}
2174if($.isArray(prototype)){prototype=$.extend.apply(null,[{}].concat(prototype));}
2175$.expr[":"][fullName.toLowerCase()]=function(elem){return!!$.data(elem,fullName);};$[namespace]=$[namespace]||{};existingConstructor=$[namespace][name];constructor=$[namespace][name]=function(options,element){if(!this._createWidget){return new constructor(options,element);}
2176if(arguments.length){this._createWidget(options,element);}};$.extend(constructor,existingConstructor,{version:prototype.version,_proto:$.extend({},prototype),_childConstructors:[]});basePrototype=new base();basePrototype.options=$.widget.extend({},basePrototype.options);$.each(prototype,function(prop,value){if(!$.isFunction(value)){proxiedPrototype[prop]=value;return;}
2177proxiedPrototype[prop]=(function(){var _super=function(){return base.prototype[prop].apply(this,arguments);},_superApply=function(args){return base.prototype[prop].apply(this,args);};return function(){var __super=this._super,__superApply=this._superApply,returnValue;this._super=_super;this._superApply=_superApply;returnValue=value.apply(this,arguments);this._super=__super;this._superApply=__superApply;return returnValue;};})();});constructor.prototype=$.widget.extend(basePrototype,{widgetEventPrefix:existingConstructor?(basePrototype.widgetEventPrefix||name):name},proxiedPrototype,{constructor:constructor,namespace:namespace,widgetName:name,widgetFullName:fullName});if(existingConstructor){$.each(existingConstructor._childConstructors,function(i,child){var childPrototype=child.prototype;$.widget(childPrototype.namespace+"."+childPrototype.widgetName,constructor,child._proto);});delete existingConstructor._childConstructors;}else{base._childConstructors.push(constructor);}
2178$.widget.bridge(name,constructor);return constructor;};$.widget.extend=function(target){var input=widget_slice.call(arguments,1
vendor: 6,666 bytes, lines 2178-2203
2178),inputIndex=0,inputLength=input.length,key,value;for(;inputIndex<inputLength;inputIndex++){for(key in input[inputIndex]){value=input[inputIndex][key];if(input[inputIndex].hasOwnProperty(key)&&value!==undefined){if($.isPlainObject(value)){target[key]=$.isPlainObject(target[key])?$.widget.extend({},target[key],value):$.widget.extend({},value);}else{target[key]=value;}}}}
2179return target;};$.widget.bridge=function(name,object){var fullName=object.prototype.widgetFullName||name;$.fn[name]=function(options){var isMethodCall=typeof options==="string",args=widget_slice.call(arguments,1),returnValue=this;if(isMethodCall){this.each(function(){var methodValue,instance=$.data(this,fullName);if(options==="instance"){returnValue=instance;return false;}
2180if(!instance){return $.error("cannot call methods on "+name+" prior to initialization; "+"attempted to call method '"+options+"'");}
2181if(!$.isFunction(instance[options])||options.charAt(0)==="_"){return $.error("no such method '"+options+"' for "+name+" widget instance");}
2182methodValue=instance[options].apply(instance,args);if(methodValue!==instance&&methodValue!==undefined){returnValue=methodValue&&methodValue.jquery?returnValue.pushStack(methodValue.get()):methodValue;return false;}});}else{if(args.length){options=$.widget.extend.apply(null,[options].concat(args));}
2183this.each(function(){var instance=$.data(this,fullName);if(instance){instance.option(options||{});if(instance._init){instance._init();}}else{$.data(this,fullName,new object(options,this));}});}
2184return returnValue;};};$.Widget=function(){};$.Widget._childConstructors=[];$.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:false,create:null},_createWidget:function(options,element){element=$(element||this.defaultElement||this)[0];this.element=$(element);this.uuid=widget_uuid++;this.eventNamespace="."+this.widgetName+this.uuid;this.bindings=$();this.hoverable=$();this.focusable=$();this.classesElementLookup={};if(element!==this){$.data(element,this.widgetFullName,this);this._on(true,this.element,{remove:function(event){if(event.target===element){this.destroy();}}});this.document=$(element.style?element.ownerDocument:element.document||element);this.window=$(this.document[0].defaultView||this.document[0].parentWindow);}
2185this.options=$.widget.extend({},this.options,this._getCreateOptions(),options);this._create();this._trigger("create",null,this._getCreateEventData());this._init();},_getCreateOptions:$.noop,_getCreateEventData:$.noop,_create:$.noop,_init:$.noop,destroy:function(){var that=this;this._destroy();$.each(this.classesElementLookup,function(key,value){that._removeClass(value,key);});this.element.off(this.eventNamespace).removeData(this.widgetFullName);this.widget().off(this.eventNamespace).removeAttr("aria-disabled");this.bindings.off(this.eventNamespace);},_destroy:$.noop,widget:function(){return this.element;},option:function(key,value){var options=key,parts,curOption,i;if(arguments.length===0){return $.widget.extend({},this.options);}
2186if(typeof key==="string"){options={};parts=key.split(".");key=parts.shift();if(parts.length){curOption=options[key]=$.widget.extend({},this.options[key]);for(i=0;i<parts.length-1;i++){curOption[parts[i]]=curOption[parts[i]]||{};curOption=curOption[parts[i]];}
2187key=parts.pop();if(arguments.length===1){return curOption[key]===undefined?null:curOption[key];}
2188curOption[key]=value;}else{if(arguments.length===1){return this.options[key]===undefined?null:this.options[key];}
2189options[key]=value;}}
2190this._setOptions(options);return this;},_setOptions:function(options){var key;for(key in options){this._setOption(key,options[key]);}
2191return this;},_setOption:function(key,value){if(key==="classes"){this._setOptionClasses(value);}
2192this.options[key]=value;if(key==="disabled"){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!value);if(value){this._removeClass(this.hoverable,null,"ui-state-hover");this._removeClass(this.focusable,null,"ui-state-focus");}}
2193return this;},_setOptionClasses:function(value){var classKey,elements,currentElements;for(classKey in value){currentElements=this.classesElementLookup[classKey];if(value[classKey]===this.options.classes[classKey]||!currentElements||!currentElements.length){continue;}
2194elements=$(currentElements.get());this._removeClass(currentElements,classKey);elements.addClass(this._classes({element:elements,keys:classKey,classes:value,add:true}));}},enable:function(){return this._setOptions({disabled:false});},disable:function(){return this._setOptions({disabled:true});},_classes:function(options){var full=[],that=this;options=$.extend({element:this.element,classes:this.options.classes||{}},options);function processClassString(classes,checkOption){var current,i;for(i=0;i<classes.length;i++){current=that.classesElementLookup[classes[i]]||$();if(options.add){current=$($.unique(current.get().concat(options.element.get())));}else{current=$(current.not(options.element).get());}
2195that.classesElementLookup[classes[i]]=current;full.push(classes[i]);if(checkOption&&options.classes[classes[i]]){full.push(options.classes[classes[i]]);}}}
2196if(options.keys){processClassString(options.keys.match(/\S+/g)||[],true);}
2197if(options.extra){processClassString(options.extra.match(/\S+/g)||[]);}
2198return full.join(" ");},_removeClass:function(element,keys,extra){return this._toggleClass(element,keys,extra,false);},_addClass:function(element,keys,extra){return this._toggleClass(element,keys,extra,true);},_toggleClass:function(element,keys,extra,add){add=(typeof add==="boolean")?add:extra;var shift=(typeof element==="string"||element===null),options={extra:shift?keys:extra,keys:shift?element:keys,element:shift?this.element:element,add:add};options.element.toggleClass(this._classes(options),add);return this;},_on:function(suppressDisabledCheck,element,handlers){var delegateElement,instance=this;if(typeof suppressDisabledCheck!=="boolean"){handlers=element;element=suppressDisabledCheck;suppressDisabledCheck=false;}
2199if(!handlers){handlers=element;element=this.element;delegateElement=this.widget();}else{element=delegateElement=$(element);this.bindings=this.bindings.add(element);}
2200$.each(handlers,function(event,handler){function handlerProxy(){if(!suppressDisabledCheck&&(instance.options.disabled===true||$(this).hasClass("ui-state-disabled"))){return;}
2201return(typeof handler==="string"?instance[handler]:handler).apply(instance,arguments);}
2202if(typeof handler!=="string"){handlerProxy.guid=handler.guid=handler.guid||handlerProxy.guid||$.guid++;}
2203var match=event.match(/^([\w:-]*)\s*(.*)$/),eventName=match[1]+instance.eventNamespace,selector=match[2];
vendor: 4,105 bytes, lines 2203-2214
2203if(selector){delegateElement.on(eventName,selector,handlerProxy);}else{element.on(eventName,handlerProxy);}});},_off:function(element,eventName){eventName=(eventName||"").split(" ").join(this.eventNamespace+" ")+
2204this.eventNamespace;element.off(eventName).off(eventName);this.bindings=$(this.bindings.not(element).get());this.focusable=$(this.focusable.not(element).get());this.hoverable=$(this.hoverable.not(element).get());},_delay:function(handler,delay){function handlerProxy(){return(typeof handler==="string"?instance[handler]:handler).apply(instance,arguments);}
2205var instance=this;return setTimeout(handlerProxy,delay||0);},_hoverable:function(element){this.hoverable=this.hoverable.add(element);this._on(element,{mouseenter:function(event){this._addClass($(event.currentTarget),null,"ui-state-hover");},mouseleave:function(event){this._removeClass($(event.currentTarget),null,"ui-state-hover");}});},_focusable:function(element){this.focusable=this.focusable.add(element);this._on(element,{focusin:function(event){this._addClass($(event.currentTarget),null,"ui-state-focus");},focusout:function(event){this._removeClass($(event.currentTarget),null,"ui-state-focus");}});},_trigger:function(type,event,data){var prop,orig,callback=this.options[type];data=data||{};event=$.Event(event);event.type=(type===this.widgetEventPrefix?type:this.widgetEventPrefix+type).toLowerCase();event.target=this.element[0];orig=event.originalEvent;if(orig){for(prop in orig){if(!(prop in event)){event[prop]=orig[prop];}}}
2206this.element.trigger(event,data);return!($.isFunction(callback)&&callback.apply(this.element[0],[event].concat(data))===false||event.isDefaultPrevented());}};$.each({show:"fadeIn",hide:"fadeOut"},function(method,defaultEffect){$.Widget.prototype["_"+method]=function(element,options,callback){if(typeof options==="string"){options={effect:options};}
2207var hasOptions,effectName=!options?method:options===true||typeof options==="number"?defaultEffect:options.effect||defaultEffect;options=options||{};if(typeof options==="number"){options={duration:options};}
2208hasOptions=!$.isEmptyObject(options);options.complete=callback;if(options.delay){element.delay(options.delay);}
2209if(hasOptions&&$.effects&&$.effects.effect[effectName]){element[method](options);}else if(effectName!==method&&element[effectName]){element[effectName](options.duration,options.easing,callback);}else{element.queue(function(next){$(this)[method]();if(callback){callback.call(element[0]);}
2210next();});}};});return $.widget;}));
2211(function(factory){if(typeof define==="function"&&define.amd){define(["jquery","./widget"],factory);}else{factory(jQuery);}}(function($){var mouseHandled=false;$(document).on("mouseup",function(){mouseHandled=false;});return $.widget("ui.mouse",{version:"@VERSION",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var that=this;this.element.on("mousedown."+this.widgetName,function(event){return that._mouseDown(event);}).on("click."+this.widgetName,function(event){if(true===$.data(event.target,that.widgetName+".preventClickEvent")){$.removeData(event.target,that.widgetName+".preventClickEvent");event.stopImmediatePropagation();return false;}});this.started=false;},_mouseDestroy:function(){this.element.off("."+this.widgetName);if(this._mouseMoveDelegate){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate);}},_mouseDown:function(event){if(mouseHandled){return;}
2212this._mouseMoved=false;(this._mouseStarted&&this._mouseUp(event));this._mouseDownEvent=event;var that=this,btnIsLeft=(event.which===1),elIsCancel=(typeof this.options.cancel==="string"&&event.target.nodeName?$(event.target).closest(this.options.cancel).length:false);if(!btnIsLeft||elIsCancel||!this._mouseCapture(event)){return true;}
2213this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){that.mouseDelayMet=true;},this.options.delay);}
2214if(this._mouseDistanceMet(event)&&this._mouseDelayMet(event)){this._mouseStarted=(this._mouseStart(event)!==false);
vendor: 6,916 bytes, lines 2214-2239
2214if(!this._mouseStarted){event.preventDefault();return true;}}
2215if(true===$.data(event.target,this.widgetName+".preventClickEvent")){$.removeData(event.target,this.widgetName+".preventClickEvent");}
2216this._mouseMoveDelegate=function(event){return that._mouseMove(event);};this._mouseUpDelegate=function(event){return that._mouseUp(event);};this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate);event.preventDefault();mouseHandled=true;return true;},_mouseMove:function(event){if(this._mouseMoved){if($.ui.ie&&(!document.documentMode||document.documentMode<9)&&!event.button){return this._mouseUp(event);}else if(!event.which){return this._mouseUp(event);}}
2217if(event.which||event.button){this._mouseMoved=true;}
2218if(this._mouseStarted){this._mouseDrag(event);return event.preventDefault();}
2219if(this._mouseDistanceMet(event)&&this._mouseDelayMet(event)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,event)!==false);(this._mouseStarted?this._mouseDrag(event):this._mouseUp(event));}
2220return!this._mouseStarted;},_mouseUp:function(event){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(event.target===this._mouseDownEvent.target){$.data(event.target,this.widgetName+".preventClickEvent",true);}
2221this._mouseStop(event);}
2222mouseHandled=false;return false;},_mouseDistanceMet:function(event){return(Math.max(Math.abs(this._mouseDownEvent.pageX-event.pageX),Math.abs(this._mouseDownEvent.pageY-event.pageY))>=this.options.distance);},_mouseDelayMet:function(){return this.mouseDelayMet;},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true;}});}));
2223(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory);}else{factory(jQuery);}}(function($){(function(){$.ui=$.ui||{};var cachedScrollbarWidth,supportsOffsetFractions,max=Math.max,abs=Math.abs,round=Math.round,rhorizontal=/left|center|right/,rvertical=/top|center|bottom/,roffset=/[\+\-]\d+(\.[\d]+)?%?/,rposition=/^\w+/,rpercent=/%$/,_position=$.fn.position;supportsOffsetFractions=function(){var element=$("<div>").css("position","absolute").appendTo("body").offset({top:1.5,left:1.5}),support=element.offset().top===1.5;element.remove();supportsOffsetFractions=function(){return support;};return support;};function getOffsets(offsets,width,height){return[parseFloat(offsets[0])*(rpercent.test(offsets[0])?width / 100:1),parseFloat(offsets[1])*(rpercent.test(offsets[1])?height / 100:1)];}
2224function parseCss(element,property){return parseInt($.css(element,property),10)||0;}
2225function getDimensions(elem){var raw=elem[0];if(raw.nodeType===9){return{width:elem.width(),height:elem.height(),offset:{top:0,left:0}};}
2226if($.isWindow(raw)){return{width:elem.width(),height:elem.height(),offset:{top:elem.scrollTop(),left:elem.scrollLeft()}};}
2227if(raw.preventDefault){return{width:0,height:0,offset:{top:raw.pageY,left:raw.pageX}};}
2228return{width:elem.outerWidth(),height:elem.outerHeight(),offset:elem.offset()};}
2229$.position={scrollbarWidth:function(){if(cachedScrollbarWidth!==undefined){return cachedScrollbarWidth;}
2230var w1,w2,div=$("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),innerDiv=div.children()[0];$("body").append(div);w1=innerDiv.offsetWidth;div.css("overflow","scroll");w2=innerDiv.offsetWidth;if(w1===w2){w2=div[0].clientWidth;}
2231div.remove();return(cachedScrollbarWidth=w1-w2);},getScrollInfo:function(within){var overflowX=within.isWindow||within.isDocument?"":within.element.css("overflow-x"),overflowY=within.isWindow||within.isDocument?"":within.element.css("overflow-y"),hasOverflowX=overflowX==="scroll"||(overflowX==="auto"&&within.width<within.element[0].scrollWidth),hasOverflowY=overflowY==="scroll"||(overflowY==="auto"&&within.height<within.element[0].scrollHeight);return{width:hasOverflowY?$.position.scrollbarWidth():0,height:hasOverflowX?$.position.scrollbarWidth():0};},getWithinInfo:function(element){var withinElement=$(element||window),isWindow=$.isWindow(withinElement[0]),isDocument=!!withinElement[0]&&withinElement[0].nodeType===9;return{element:withinElement,isWindow:isWindow,isDocument:isDocument,offset:withinElement.offset()||{left:0,top:0},scrollLeft:withinElement.scrollLeft(),scrollTop:withinElement.scrollTop(),width:withinElement.outerWidth(),height:withinElement.outerHeight()};}};$.fn.position=function(options){if(!options||!options.of){return _position.apply(this,arguments);}
2232options=$.extend({},options);var atOffset,targetWidth,targetHeight,targetOffset,basePosition,dimensions,target=$(options.of),within=$.position.getWithinInfo(options.within),scrollInfo=$.position.getScrollInfo(within),collision=(options.collision||"flip").split(" "),offsets={};dimensions=getDimensions(target);if(target[0].preventDefault){options.at="left top";}
2233targetWidth=dimensions.width;targetHeight=dimensions.height;targetOffset=dimensions.offset;basePosition=$.extend({},targetOffset);$.each(["my","at"],function(){var pos=(options[this]||"").split(" "),horizontalOffset,verticalOffset;if(pos.length===1){pos=rhorizontal.test(pos[0])?pos.concat(["center"]):rvertical.test(pos[0])?["center"].concat(pos):["center","center"];}
2234pos[0]=rhorizontal.test(pos[0])?pos[0]:"center";pos[1]=rvertical.test(pos[1])?pos[1]:"center";horizontalOffset=roffset.exec(pos[0]);verticalOffset=roffset.exec(pos[1]);offsets[this]=[horizontalOffset?horizontalOffset[0]:0,verticalOffset?verticalOffset[0]:0];options[this]=[rposition.exec(pos[0])[0],rposition.exec(pos[1])[0]];});if(collision.length===1){collision[1]=collision[0];}
2235if(options.at[0]==="right"){basePosition.left+=targetWidth;}else if(options.at[0]==="center"){basePosition.left+=targetWidth / 2;}
2236if(options.at[1]==="bottom"){basePosition.top+=targetHeight;}else if(options.at[1]==="center"){basePosition.top+=targetHeight / 2;}
2237atOffset=getOffsets(offsets.at,targetWidth,targetHeight);basePosition.left+=atOffset[0];basePosition.top+=atOffset[1];return this.each(function(){var collisionPosition,using,elem=$(this),elemWidth=elem.outerWidth(),elemHeight=elem.outerHeight(),marginLeft=parseCss(this,"marginLeft"),marginTop=parseCss(this,"marginTop"),collisionWidth=elemWidth+marginLeft+parseCss(this,"marginRight")+scrollInfo.width,collisionHeight=elemHeight+marginTop+parseCss(this,"marginBottom")+scrollInfo.height,position=$.extend({},basePosition),myOffset=getOffsets(offsets.my,elem.outerWidth(),elem.outerHeight());if(options.my[0]==="right"){position.left-=elemWidth;}else if(options.my[0]==="center"){position.left-=elemWidth / 2;}
2238if(options.my[1]==="bottom"){position.top-=elemHeight;}else if(options.my[1]==="center"){position.top-=elemHeight / 2;}
2239position.left+=myOffset[0];position.top+=myOffset[1];
vendor: 6,117 bytes, lines 2239-2248
2239if(!supportsOffsetFractions()){position.left=round(position.left);position.top=round(position.top);}
2240collisionPosition={marginLeft:marginLeft,marginTop:marginTop};$.each(["left","top"],function(i,dir){if($.ui.position[collision[i]]){$.ui.position[collision[i]][dir](position,{targetWidth:targetWidth,targetHeight:targetHeight,elemWidth:elemWidth,elemHeight:elemHeight,collisionPosition:collisionPosition,collisionWidth:collisionWidth,collisionHeight:collisionHeight,offset:[atOffset[0]+myOffset[0],atOffset[1]+myOffset[1]],my:options.my,at:options.at,within:within,elem:elem});}});if(options.using){using=function(props){var left=targetOffset.left-position.left,right=left+targetWidth-elemWidth,top=targetOffset.top-position.top,bottom=top+targetHeight-elemHeight,feedback={target:{element:target,left:targetOffset.left,top:targetOffset.top,width:targetWidth,height:targetHeight},element:{element:elem,left:position.left,top:position.top,width:elemWidth,height:elemHeight},horizontal:right<0?"left":left>0?"right":"center",vertical:bottom<0?"top":top>0?"bottom":"middle"};if(targetWidth<elemWidth&&abs(left+right)<targetWidth){feedback.horizontal="center";}
2241if(targetHeight<elemHeight&&abs(top+bottom)<targetHeight){feedback.vertical="middle";}
2242if(max(abs(left),abs(right))>max(abs(top),abs(bottom))){feedback.important="horizontal";}else{feedback.important="vertical";}
2243options.using.call(this,props,feedback);};}
2244elem.offset($.extend(position,{using:using}));});};$.ui.position={fit:{left:function(position,data){var within=data.within,withinOffset=within.isWindow?within.scrollLeft:within.offset.left,outerWidth=within.width,collisionPosLeft=position.left-data.collisionPosition.marginLeft,overLeft=withinOffset-collisionPosLeft,overRight=collisionPosLeft+data.collisionWidth-outerWidth-withinOffset,newOverRight;if(data.collisionWidth>outerWidth){if(overLeft>0&&overRight<=0){newOverRight=position.left+overLeft+data.collisionWidth-outerWidth-withinOffset;position.left+=overLeft-newOverRight;}else if(overRight>0&&overLeft<=0){position.left=withinOffset;}else{if(overLeft>overRight){position.left=withinOffset+outerWidth-data.collisionWidth;}else{position.left=withinOffset;}}}else if(overLeft>0){position.left+=overLeft;}else if(overRight>0){position.left-=overRight;}else{position.left=max(position.left-collisionPosLeft,position.left);}},top:function(position,data){var within=data.within,withinOffset=within.isWindow?within.scrollTop:within.offset.top,outerHeight=data.within.height,collisionPosTop=position.top-data.collisionPosition.marginTop,overTop=withinOffset-collisionPosTop,overBottom=collisionPosTop+data.collisionHeight-outerHeight-withinOffset,newOverBottom;if(data.collisionHeight>outerHeight){if(overTop>0&&overBottom<=0){newOverBottom=position.top+overTop+data.collisionHeight-outerHeight-withinOffset;position.top+=overTop-newOverBottom;}else if(overBottom>0&&overTop<=0){position.top=withinOffset;}else{if(overTop>overBottom){position.top=withinOffset+outerHeight-data.collisionHeight;}else{position.top=withinOffset;}}}else if(overTop>0){position.top+=overTop;}else if(overBottom>0){position.top-=overBottom;}else{position.top=max(position.top-collisionPosTop,position.top);}}},flip:{left:function(position,data){var within=data.within,withinOffset=within.offset.left+within.scrollLeft,outerWidth=within.width,offsetLeft=within.isWindow?within.scrollLeft:within.offset.left,collisionPosLeft=position.left-data.collisionPosition.marginLeft,overLeft=collisionPosLeft-offsetLeft,overRight=collisionPosLeft+data.collisionWidth-outerWidth-offsetLeft,myOffset=data.my[0]==="left"?-data.elemWidth:data.my[0]==="right"?data.elemWidth:0,atOffset=data.at[0]==="left"?data.targetWidth:data.at[0]==="right"?-data.targetWidth:0,offset=-2*data.offset[0],newOverRight,newOverLeft;if(overLeft<0){newOverRight=position.left+myOffset+atOffset+offset+data.collisionWidth-outerWidth-withinOffset;if(newOverRight<0||newOverRight<abs(overLeft)){position.left+=myOffset+atOffset+offset;}}else if(overRight>0){newOverLeft=position.left-data.collisionPosition.marginLeft+myOffset+atOffset+offset-offsetLeft;if(newOverLeft>0||abs(newOverLeft)<overRight){position.left+=myOffset+atOffset+offset;}}},top:function(position,data){var within=data.within,withinOffset=within.offset.top+within.scrollTop,outerHeight=within.height,offsetTop=within.isWindow?within.scrollTop:within.offset.top,collisionPosTop=position.top-data.collisionPosition.marginTop,overTop=collisionPosTop-offsetTop,overBottom=collisionPosTop+data.collisionHeight-outerHeight-offsetTop,top=data.my[1]==="top",myOffset=top?-data.elemHeight:data.my[1]==="bottom"?data.elemHeight:0,atOffset=data.at[1]==="top"?data.targetHeight:data.at[1]==="bottom"?-data.targetHeight:0,offset=-2*data.offset[1],newOverTop,newOverBottom;if(overTop<0){newOverBottom=position.top+myOffset+atOffset+offset+data.collisionHeight-outerHeight-withinOffset;if(newOverBottom<0||newOverBottom<abs(overTop)){position.top+=myOffset+atOffset+offset;}}else if(overBottom>0){newOverTop=position.top-data.collisionPosition.marginTop+myOffset+atOffset+offset-offsetTop;if(newOverTop>0||abs(newOverTop)<overBottom){position.top+=myOffset+atOffset+offset;}}}},flipfit:{left:function(){$.ui.position.flip.left.apply(this,arguments);$.ui.position.fit.left.apply(this,arguments);},top:function(){$.ui.position.flip.top.apply(this,arguments);$.ui.position.fit.top.apply(this,arguments);}}};})();return $.ui.position;}));
2245(function($){$.support.touch='ontouchend'in document;if(!$.support.touch){return;}
2246var mouseProto=$.ui.mouse.prototype,_mouseInit=mouseProto._mouseInit,_mouseDestroy=mouseProto._mouseDestroy,touchHandled;function simulateMouseEvent(event,simulatedType){if(event.originalEvent.touches.length>1){return;}
2247event.preventDefault();var touch=event.originalEvent.changedTouches[0],simulatedEvent=document.createEvent('MouseEvents');simulatedEvent.initMouseEvent(simulatedType,true,true,window,1,touch.screenX,touch.screenY,touch.clientX,touch.clientY,false,false,false,false,0,null);event.target.dispatchEvent(simulatedEvent);}
2248mouseProto._touchStart=function(event){var self=this;
2248if(touchHandled||!self._mouseCapture(event.originalEvent.changedTouches[0])){return;}
2249touchHandled=true;self._touchMoved=false;simulateMouseEvent(event,'mouseover');simulateMouseEvent(event,'mousemove');simulateMouseEvent(event,'mousedown');};mouseProto._touchMove=function(event){if(!touchHandled){return;}
2250this._touchMoved=true;simulateMouseEvent(event,'mousemove');};mouseProto._touchEnd=function(event){if(!touchHandled){return;}
2251simulateMouseEvent(event,'mouseup');simulateMouseEvent(event,'mouseout');if(!this._touchMoved){simulateMouseEvent(event,'click');}
2252touchHandled=false;};mouseProto._mouseInit=function(){var self=this;self.element.bind({touchstart:$.proxy(self,'_touchStart'),touchmove:$.proxy(self,'_touchMove'),touchend:$.proxy(self,'_touchEnd')});_mouseInit.call(self);};mouseProto._mouseDestroy=function(){var self=this;self.element.unbind({touchstart:$.proxy(self,'_touchStart'),touchmove:$.proxy(self,'_touchMove'),touchend:$.proxy(self,'_touchEnd')});_mouseDestroy.call(self);};})(jQuery);
2253(function(factory){if(typeof define==="function"&&define.amd){define(["jquery","./core","./mouse","./widget"],factory);}else{factory(jQuery);}}(function($){$.widget("ui.draggable",$.ui.mouse,{version:"@VERSION",widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false,drag:null,start:null,stop:null},_create:function(){if(this.options.helper==="original"){this._setPositionRelative();}
2254if(this.options.addClasses){this._addClass("ui-draggable");}
2255if(this.options.disabled){this._addClass("ui-draggable-disabled");}
2256this._setHandleClassName();this._mouseInit();},_setOption:function(key,value){this._super(key,value);if(key==="handle"){this._removeHandleClassName();this._setHandleClassName();}},_destroy:function(){if((this.helper||this.element).is(".ui-draggable-dragging")){this.destroyOnClear=true;return;}
2257this._removeHandleClassName();this._mouseDestroy();},_mouseCapture:function(event){var o=this.options;this._blurActiveElement(event);if(this.helper||o.disabled||$(event.target).closest(".ui-resizable-handle").length>0){return false;}
2258this.handle=this._getHandle(event);if(!this.handle){return false;}
2259this._blockFrames(o.iframeFix===true?"iframe":o.iframeFix);return true;},_blockFrames:function(selector){this.iframeBlocks=this.document.find(selector).map(function(){var iframe=$(this);return $("<div>").css("position","absolute").appendTo(iframe.parent()).outerWidth(iframe.outerWidth()).outerHeight(iframe.outerHeight()).offset(iframe.offset())[0];});},_unblockFrames:function(){if(this.iframeBlocks){this.iframeBlocks.remove();delete this.iframeBlocks;}},_blurActiveElement:function(event){if(!this.handleElement.is(event.target)){return;}
2260$.ui.safeBlur($.ui.safeActiveElement(this.document[0]));},_mouseStart:function(event){var o=this.options;this.helper=this._createHelper(event);this._addClass(this.helper,"ui-draggable-dragging");this._cacheHelperProportions();if($.ui.ddmanager){$.ui.ddmanager.current=this;}
2261this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent(true);this.offsetParent=this.helper.offsetParent();this.hasFixedAncestor=this.helper.parents().filter(function(){return $(this).css("position")==="fixed";}).length>0;this.positionAbs=this.element.offset();this._refreshOffsets(event);this.originalPosition=this.position=this._generatePosition(event,false);this.originalPageX=event.pageX;this.originalPageY=event.pageY;(o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt));this._setContainment();if(this._trigger("start",event)===false){this._clear();return false;}
2262this._cacheHelperProportions();if($.ui.ddmanager&&!o.dropBehaviour){$.ui.ddmanager.prepareOffsets(this,event);}
2263this._mouseDrag(event,true);if($.ui.ddmanager){$.ui.ddmanager.dragStart(this,event);}
2264return true;},_refreshOffsets:function(event){this.offset={top:this.positionAbs.top-this.margins.top,left
vendor: 5,904 bytes, lines 2264-2291
2264:this.positionAbs.left-this.margins.left,scroll:false,parent:this._getParentOffset(),relative:this._getRelativeOffset()};this.offset.click={left:event.pageX-this.offset.left,top:event.pageY-this.offset.top};},_mouseDrag:function(event,noPropagation){if(this.hasFixedAncestor){this.offset.parent=this._getParentOffset();}
2265this.position=this._generatePosition(event,true);this.positionAbs=this._convertPositionTo("absolute");if(!noPropagation){var ui=this._uiHash();if(this._trigger("drag",event,ui)===false){this._mouseUp({});return false;}
2266this.position=ui.position;}
2267this.helper[0].style.left=this.position.left+"px";this.helper[0].style.top=this.position.top+"px";if($.ui.ddmanager){$.ui.ddmanager.drag(this,event);}
2268return false;},_mouseStop:function(event){var that=this,dropped=false;if($.ui.ddmanager&&!this.options.dropBehaviour){dropped=$.ui.ddmanager.drop(this,event);}
2269if(this.dropped){dropped=this.dropped;this.dropped=false;}
2270if((this.options.revert==="invalid"&&!dropped)||(this.options.revert==="valid"&&dropped)||this.options.revert===true||($.isFunction(this.options.revert)&&this.options.revert.call(this.element,dropped))){$(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){if(that._trigger("stop",event)!==false){that._clear();}});}else{if(this._trigger("stop",event)!==false){this._clear();}}
2271return false;},_mouseUp:function(event){this._unblockFrames();if($.ui.ddmanager){$.ui.ddmanager.dragStop(this,event);}
2272if(this.handleElement.is(event.target)){this.element.trigger("focus");}
2273return $.ui.mouse.prototype._mouseUp.call(this,event);},cancel:function(){if(this.helper.is(".ui-draggable-dragging")){this._mouseUp({});}else{this._clear();}
2274return this;},_getHandle:function(event){return this.options.handle?!!$(event.target).closest(this.element.find(this.options.handle)).length:true;},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element;this._addClass(this.handleElement,"ui-draggable-handle");},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle");},_createHelper:function(event){var o=this.options,helperIsFunction=$.isFunction(o.helper),helper=helperIsFunction?$(o.helper.apply(this.element[0],[event])):(o.helper==="clone"?this.element.clone().removeAttr("id"):this.element);if(!helper.parents("body").length){helper.appendTo((o.appendTo==="parent"?this.element[0].parentNode:o.appendTo));}
2275if(helperIsFunction&&helper[0]===this.element[0]){this._setPositionRelative();}
2276if(helper[0]!==this.element[0]&&!(/(fixed|absolute)/).test(helper.css("position"))){helper.css("position","absolute");}
2277return helper;},_setPositionRelative:function(){if(!(/^(?:r|a|f)/).test(this.element.css("position"))){this.element[0].style.position="relative";}},_adjustOffsetFromHelper:function(obj){if(typeof obj==="string"){obj=obj.split(" ");}
2278if($.isArray(obj)){obj={left:+obj[0],top:+obj[1]||0};}
2279if("left"in obj){this.offset.click.left=obj.left+this.margins.left;}
2280if("right"in obj){this.offset.click.left=this.helperProportions.width-obj.right+this.margins.left;}
2281if("top"in obj){this.offset.click.top=obj.top+this.margins.top;}
2282if("bottom"in obj){this.offset.click.top=this.helperProportions.height-obj.bottom+this.margins.top;}},_isRootNode:function(element){return(/(html|body)/i).test(element.tagName)||element===this.document[0];},_getParentOffset:function(){var po=this.offsetParent.offset(),document=this.document[0];if(this.cssPosition==="absolute"&&this.scrollParent[0]!==document&&$.contains(this.scrollParent[0],this.offsetParent[0])){po.left+=this.scrollParent.scrollLeft();po.top+=this.scrollParent.scrollTop();}
2283if(this._isRootNode(this.offsetParent[0])){po={top:0,left:0};}
2284return{top:po.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:po.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)};},_getRelativeOffset:function(){if(this.cssPosition!=="relative"){return{top:0,left:0};}
2285var p=this.element.position(),scrollIsRootNode=this._isRootNode(this.scrollParent[0]);return{top:p.top-(parseInt(this.helper.css("top"),10)||0)+(!scrollIsRootNode?this.scrollParent.scrollTop():0),left:p.left-(parseInt(this.helper.css("left"),10)||0)+(!scrollIsRootNode?this.scrollParent.scrollLeft():0)};},_cacheMargins:function(){this.margins={left:(parseInt(this.element.css("marginLeft"),10)||0),top:(parseInt(this.element.css("marginTop"),10)||0),right:(parseInt(this.element.css("marginRight"),10)||0),bottom:(parseInt(this.element.css("marginBottom"),10)||0)};},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()};},_setContainment:function(){var isUserScrollable,c,ce,o=this.options,document=this.document[0];this.relativeContainer=null;if(!o.containment){this.containment=null;return;}
2286if(o.containment==="window"){this.containment=[$(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,$(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,$(window).scrollLeft()+$(window).width()-this.helperProportions.width-this.margins.left,$(window).scrollTop()+($(window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];return;}
2287if(o.containment==="document"){this.containment=[0,0,$(document).width()-this.helperProportions.width-this.margins.left,($(document).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];return;}
2288if(o.containment.constructor===Array){this.containment=o.containment;return;}
2289if(o.containment==="parent"){o.containment=this.helper[0].parentNode;}
2290c=$(o.containment);ce=c[0];if(!ce){return;}
2291isUserScrollable=/(scroll|auto)/.test(c.css("overflow"));this.containment=[(parseInt(c.css("borderLeftWidth"),10)||0)+(parseInt(c.css("paddingLeft"),10)||0),(parseInt(c.css("borderTopWidth"),
vendor: 8,057 bytes, lines 2291-2336
229110)||0)+(parseInt(c.css("paddingTop"),10)||0),(isUserScrollable?Math.max(ce.scrollWidth,ce.offsetWidth):ce.offsetWidth)-
2292(parseInt(c.css("borderRightWidth"),10)||0)-
2293(parseInt(c.css("paddingRight"),10)||0)-
2294this.helperProportions.width-
2295this.margins.left-
2296this.margins.right,(isUserScrollable?Math.max(ce.scrollHeight,ce.offsetHeight):ce.offsetHeight)-
2297(parseInt(c.css("borderBottomWidth"),10)||0)-
2298(parseInt(c.css("paddingBottom"),10)||0)-
2299this.helperProportions.height-
2300this.margins.top-
2301this.margins.bottom];this.relativeContainer=c;},_convertPositionTo:function(d,pos){if(!pos){pos=this.position;}
2302var mod=d==="absolute"?1:-1,scrollIsRootNode=this._isRootNode(this.scrollParent[0]);return{top:(pos.top+
2303this.offset.relative.top*mod+
2304this.offset.parent.top*mod-
2305((this.cssPosition==="fixed"?-this.offset.scroll.top:(scrollIsRootNode?0:this.offset.scroll.top))*mod)),left:(pos.left+
2306this.offset.relative.left*mod+
2307this.offset.parent.left*mod-
2308((this.cssPosition==="fixed"?-this.offset.scroll.left:(scrollIsRootNode?0:this.offset.scroll.left))*mod))};},_generatePosition:function(event,constrainPosition){var containment,co,top,left,o=this.options,scrollIsRootNode=this._isRootNode(this.scrollParent[0]),pageX=event.pageX,pageY=event.pageY;if(!scrollIsRootNode||!this.offset.scroll){this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()};}
2309if(constrainPosition){if(this.containment){if(this.relativeContainer){co=this.relativeContainer.offset();containment=[this.containment[0]+co.left,this.containment[1]+co.top,this.containment[2]+co.left,this.containment[3]+co.top];}else{containment=this.containment;}
2310if(event.pageX-this.offset.click.left<containment[0]){pageX=containment[0]+this.offset.click.left;}
2311if(event.pageY-this.offset.click.top<containment[1]){pageY=containment[1]+this.offset.click.top;}
2312if(event.pageX-this.offset.click.left>containment[2]){pageX=containment[2]+this.offset.click.left;}
2313if(event.pageY-this.offset.click.top>containment[3]){pageY=containment[3]+this.offset.click.top;}}
2314if(o.grid){top=o.grid[1]?this.originalPageY+Math.round((pageY-this.originalPageY)/ o.grid[1])*o.grid[1]:this.originalPageY;pageY=containment?((top-this.offset.click.top>=containment[1]||top-this.offset.click.top>containment[3])?top:((top-this.offset.click.top>=containment[1])?top-o.grid[1]:top+o.grid[1])):top;left=o.grid[0]?this.originalPageX+Math.round((pageX-this.originalPageX)/ o.grid[0])*o.grid[0]:this.originalPageX;pageX=containment?((left-this.offset.click.left>=containment[0]||left-this.offset.click.left>containment[2])?left:((left-this.offset.click.left>=containment[0])?left-o.grid[0]:left+o.grid[0])):left;}
2315if(o.axis==="y"){pageX=this.originalPageX;}
2316if(o.axis==="x"){pageY=this.originalPageY;}}
2317return{top:(pageY-
2318this.offset.click.top-
2319this.offset.relative.top-
2320this.offset.parent.top+
2321(this.cssPosition==="fixed"?-this.offset.scroll.top:(scrollIsRootNode?0:this.offset.scroll.top))),left:(pageX-
2322this.offset.click.left-
2323this.offset.relative.left-
2324this.offset.parent.left+
2325(this.cssPosition==="fixed"?-this.offset.scroll.left:(scrollIsRootNode?0:this.offset.scroll.left)))};},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging");if(this.helper[0]!==this.element[0]&&!this.cancelHelperRemoval){this.helper.remove();}
2326this.helper=null;this.cancelHelperRemoval=false;if(this.destroyOnClear){this.destroy();}},_trigger:function(type,event,ui){ui=ui||this._uiHash();$.ui.plugin.call(this,type,[event,ui,this],true);if(/^(drag|start|stop)/.test(type)){this.positionAbs=this._convertPositionTo("absolute");ui.offset=this.positionAbs;}
2327return $.Widget.prototype._trigger.call(this,type,event,ui);},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs};}});$.ui.plugin.add("draggable","connectToSortable",{start:function(event,ui,draggable){var uiSortable=$.extend({},ui,{item:draggable.element});draggable.sortables=[];$(draggable.options.connectToSortable).each(function(){var sortable=$(this).sortable("instance");if(sortable&&!sortable.options.disabled){draggable.sortables.push(sortable);sortable.refreshPositions();sortable._trigger("activate",event,uiSortable);}});},stop:function(event,ui,draggable){var uiSortable=$.extend({},ui,{item:draggable.element});draggable.cancelHelperRemoval=false;$.each(draggable.sortables,function(){var sortable=this;if(sortable.isOver){sortable.isOver=0;draggable.cancelHelperRemoval=true;sortable.cancelHelperRemoval=false;sortable._storedCSS={position:sortable.placeholder.css("position"),top:sortable.placeholder.css("top"),left:sortable.placeholder.css("left")};sortable._mouseStop(event);sortable.options.helper=sortable.options._helper;}else{sortable.cancelHelperRemoval=true;sortable._trigger("deactivate",event,uiSortable);}});},drag:function(event,ui,draggable){$.each(draggable.sortables,function(){var innermostIntersecting=false,sortable=this;sortable.positionAbs=draggable.positionAbs;sortable.helperProportions=draggable.helperProportions;sortable.offset.click=draggable.offset.click;if(sortable._intersectsWith(sortable.containerCache)){innermostIntersecting=true;$.each(draggable.sortables,function(){this.positionAbs=draggable.positionAbs;this.helperProportions=draggable.helperProportions;this.offset.click=draggable.offset.click;if(this!==sortable&&this._intersectsWith(this.containerCache)&&$.contains(sortable.element[0],this.element[0])){innermostIntersecting=false;}
2328return innermostIntersecting;});}
2329if(innermostIntersecting){if(!sortable.isOver){sortable.isOver=1;draggable._parent=ui.helper.parent();sortable.currentItem=ui.helper.appendTo(sortable.element).data("ui-sortable-item",true);sortable.options._helper=sortable.options.helper;sortable.options.helper=function(){return ui.helper[0];};event.target=sortable.currentItem[0];sortable._mouseCapture(event,true);sortable._mouseStart(event,true,true);sortable.offset.click.top=draggable.offset.click.top;sortable.offset.click.left=draggable.offset.click.left;sortable.offset.parent.left-=draggable.offset.parent.left-
2330sortable.offset.parent.left;sortable.offset.parent.top-=draggable.offset.parent.top-
2331sortable.offset.parent.top;draggable._trigger("toSortable",event);draggable.dropped=sortable.element;$.each(draggable.sortables,function(){this.refreshPositions();});draggable.currentItem=draggable.element;sortable.fromOutside=draggable;}
2332if(sortable.currentItem){sortable._mouseDrag(event);ui.position=sortable.position;}}else{if(sortable.isOver){sortable.isOver=0;sortable.cancelHelperRemoval=true;sortable.options._revert=sortable.options.revert;sortable.options.revert=false;sortable._trigger("out",event,sortable._uiHash(sortable));sortable._mouseStop(event,true);sortable.options.revert=sortable.options._revert;sortable.options.helper=sortable.options._helper;if(sortable.placeholder){sortable.placeholder.remove();}
2333ui.helper.appendTo(draggable._parent);draggable._refreshOffsets(event);ui.position=draggable._generatePosition(event,true);draggable._trigger("fromSortable",event);draggable.dropped=false;$.each(draggable.sortables,function(){this.refreshPositions();});}}});}});$.ui.plugin.add("draggable","cursor",{start:function(event,ui,instance){var t=$("body"),o=instance.options;if(t.css("cursor")){o._cursor=t.css("cursor");}
2334t.css("cursor",o.cursor);},stop:function(event,ui,instance){var o=instance.options;if(o._cursor){$("body").css("cursor",o._cursor);}}});$.ui.plugin.add("draggable","opacity",{start:function(event,ui,instance){var t=$(ui.helper),o=instance.options;if(t.css("opacity")){o._opacity=t.css("opacity");}
2335t.css("opacity",o.opacity);},stop:function(event,ui,instance){var o=instance.options;if(o._opacity){$(ui.helper).css("opacity",o._opacity);}}});$.ui.plugin.add("draggable","scroll",{start:function(event,ui,i){if(!i.scrollParentNotHidden){i.scrollParentNotHidden=i.helper.scrollParent(false);}
2336if(i.scrollParentNotHidden[0]!==i.document[0]&&i.scrollParentNotHidden[0].tagName!=="HTML"){i.overflowOffset=i.scrollParentNotHidden.offset();}}
vendor: 7,697 bytes, lines 2336-2358
2336,drag:function(event,ui,i){var o=i.options,scrolled=false,scrollParent=i.scrollParentNotHidden[0],document=i.document[0];if(scrollParent!==document&&scrollParent.tagName!=="HTML"){if(!o.axis||o.axis!=="x"){if((i.overflowOffset.top+scrollParent.offsetHeight)-event.pageY<o.scrollSensitivity){scrollParent.scrollTop=scrolled=scrollParent.scrollTop+o.scrollSpeed;}else if(event.pageY-i.overflowOffset.top<o.scrollSensitivity){scrollParent.scrollTop=scrolled=scrollParent.scrollTop-o.scrollSpeed;}}
2337if(!o.axis||o.axis!=="y"){if((i.overflowOffset.left+scrollParent.offsetWidth)-event.pageX<o.scrollSensitivity){scrollParent.scrollLeft=scrolled=scrollParent.scrollLeft+o.scrollSpeed;}else if(event.pageX-i.overflowOffset.left<o.scrollSensitivity){scrollParent.scrollLeft=scrolled=scrollParent.scrollLeft-o.scrollSpeed;}}}else{if(!o.axis||o.axis!=="x"){if(event.pageY-$(document).scrollTop()<o.scrollSensitivity){scrolled=$(document).scrollTop($(document).scrollTop()-o.scrollSpeed);}else if($(window).height()-(event.pageY-$(document).scrollTop())<o.scrollSensitivity){scrolled=$(document).scrollTop($(document).scrollTop()+o.scrollSpeed);}}
2338if(!o.axis||o.axis!=="y"){if(event.pageX-$(document).scrollLeft()<o.scrollSensitivity){scrolled=$(document).scrollLeft($(document).scrollLeft()-o.scrollSpeed);}else if($(window).width()-(event.pageX-$(document).scrollLeft())<o.scrollSensitivity){scrolled=$(document).scrollLeft($(document).scrollLeft()+o.scrollSpeed);}}}
2339if(scrolled!==false&&$.ui.ddmanager&&!o.dropBehaviour){$.ui.ddmanager.prepareOffsets(i,event);}}});$.ui.plugin.add("draggable","snap",{start:function(event,ui,i){var o=i.options;i.snapElements=[];$(o.snap.constructor!==String?(o.snap.items||":data(ui-draggable)"):o.snap).each(function(){var $t=$(this),$o=$t.offset();if(this!==i.element[0]){i.snapElements.push({item:this,width:$t.outerWidth(),height:$t.outerHeight(),top:$o.top,left:$o.left});}});},drag:function(event,ui,inst){var ts,bs,ls,rs,l,r,t,b,i,first,o=inst.options,d=o.snapTolerance,x1=ui.offset.left,x2=x1+inst.helperProportions.width,y1=ui.offset.top,y2=y1+inst.helperProportions.height;for(i=inst.snapElements.length-1;i>=0;i--){l=inst.snapElements[i].left-inst.margins.left;r=l+inst.snapElements[i].width;t=inst.snapElements[i].top-inst.margins.top;b=t+inst.snapElements[i].height;if(x2<l-d||x1>r+d||y2<t-d||y1>b+d||!$.contains(inst.snapElements[i].item.ownerDocument,inst.snapElements[i].item)){if(inst.snapElements[i].snapping){(inst.options.snap.release&&inst.options.snap.release.call(inst.element,event,$.extend(inst._uiHash(),{snapItem:inst.snapElements[i].item})));}
2340inst.snapElements[i].snapping=false;continue;}
2341if(o.snapMode!=="inner"){ts=Math.abs(t-y2)<=d;bs=Math.abs(b-y1)<=d;ls=Math.abs(l-x2)<=d;rs=Math.abs(r-x1)<=d;if(ts){ui.position.top=inst._convertPositionTo("relative",{top:t-inst.helperProportions.height,left:0}).top;}
2342if(bs){ui.position.top=inst._convertPositionTo("relative",{top:b,left:0}).top;}
2343if(ls){ui.position.left=inst._convertPositionTo("relative",{top:0,left:l-inst.helperProportions.width}).left;}
2344if(rs){ui.position.left=inst._convertPositionTo("relative",{top:0,left:r}).left;}}
2345first=(ts||bs||ls||rs);if(o.snapMode!=="outer"){ts=Math.abs(t-y1)<=d;bs=Math.abs(b-y2)<=d;ls=Math.abs(l-x1)<=d;rs=Math.abs(r-x2)<=d;if(ts){ui.position.top=inst._convertPositionTo("relative",{top:t,left:0}).top;}
2346if(bs){ui.position.top=inst._convertPositionTo("relative",{top:b-inst.helperProportions.height,left:0}).top;}
2347if(ls){ui.position.left=inst._convertPositionTo("relative",{top:0,left:l}).left;}
2348if(rs){ui.position.left=inst._convertPositionTo("relative",{top:0,left:r-inst.helperProportions.width}).left;}}
2349if(!inst.snapElements[i].snapping&&(ts||bs||ls||rs||first)){(inst.options.snap.snap&&inst.options.snap.snap.call(inst.element,event,$.extend(inst._uiHash(),{snapItem:inst.snapElements[i].item})));}
2350inst.snapElements[i].snapping=(ts||bs||ls||rs||first);}}});$.ui.plugin.add("draggable","stack",{start:function(event,ui,instance){var min,o=instance.options,group=$.makeArray($(o.stack)).sort(function(a,b){return(parseInt($(a).css("zIndex"),10)||0)-(parseInt($(b).css("zIndex"),10)||0);});if(!group.length){return;}
2351min=parseInt($(group[0]).css("zIndex"),10)||0;$(group).each(function(i){$(this).css("zIndex",min+i);});this.css("zIndex",(min+group.length));}});$.ui.plugin.add("draggable","zIndex",{start:function(event,ui,instance){var t=$(ui.helper),o=instance.options;if(t.css("zIndex")){o._zIndex=t.css("zIndex");}
2352t.css("zIndex",o.zIndex);},stop:function(event,ui,instance){var o=instance.options;if(o._zIndex){$(ui.helper).css("zIndex",o._zIndex);}}});return $.ui.draggable;}));
2353(function(factory){if(typeof define==="function"&&define.amd){define(["jquery","./core","./mouse","./widget"],factory);}else{factory(jQuery);}}(function($){$.widget("ui.resizable",$.ui.mouse,{version:"@VERSION",widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(value){return parseInt(value,10)||0;},_isNumber:function(value){return!isNaN(parseInt(value,10));},_hasScroll:function(el,a){if($(el).css("overflow")==="hidden"){return false;}
2354var scroll=(a&&a==="left")?"scrollLeft":"scrollTop",has=false;if(el[scroll]>0){return true;}
2355el[scroll]=1;has=(el[scroll]>0);el[scroll]=0;return has;},_create:function(){var n,i,handle,axis,hname,that=this,o=this.options;this._addClass("ui-resizable");$.extend(this,{_aspectRatio:!!(o.aspectRatio),aspectRatio:o.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:o.helper||o.ghost||o.animate?o.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)){this.element.wrap($("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize();}
2356this.handles=o.handles||(!$(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});this._handles=$();if(this.handles.constructor===String){if(this.handles==="all"){this.handles="n,e,s,w,se,sw,ne,nw";}
2357n=this.handles.split(",");this.handles={};for(i=0;i<n.length;i++){handle=$.trim(n[i]);hname="ui-resizable-"+handle;axis=$("<div>");this._addClass(axis,"ui-resizable-handle "+hname);axis.css({zIndex:o.zIndex});this.handles[handle]=".ui-resizable-"+handle;this.element.append(axis);}}
2358this._renderAxis=function(target){var i,axis,padPos,padWrapper;target=target||this.element;
vendor: 5,111 bytes, lines 2358-2376
2358for(i in this.handles){if(this.handles[i].constructor===String){this.handles[i]=this.element.children(this.handles[i]).first().show();}else if(this.handles[i].jquery||this.handles[i].nodeType){this.handles[i]=$(this.handles[i]);this._on(this.handles[i],{"mousedown":that._mouseDown});}
2359if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)){axis=$(this.handles[i],this.element);padWrapper=/sw|ne|nw|se|n|s/.test(i)?axis.outerHeight():axis.outerWidth();padPos=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");target.css(padPos,padWrapper);this._proportionallyResize();}
2360this._handles=this._handles.add(this.handles[i]);}};this._renderAxis(this.element);this._handles=this._handles.add(this.element.find(".ui-resizable-handle"));this._handles.disableSelection();this._handles.on("mouseover",function(){if(!that.resizing){if(this.className){axis=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);}
2361that.axis=axis&&axis[1]?axis[1]:"se";}});if(o.autoHide){this._handles.hide();this._addClass("ui-resizable-autohide");$(this.element).on("mouseenter",function(){if(o.disabled){return;}
2362that._removeClass("ui-resizable-autohide");that._handles.show();}).on("mouseleave",function(){if(o.disabled){return;}
2363if(!that.resizing){that._addClass("ui-resizable-autohide");that._handles.hide();}});}
2364this._mouseInit();},_destroy:function(){this._mouseDestroy();var wrapper,_destroy=function(exp){$(exp).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove();};if(this.elementIsWrapper){_destroy(this.element);wrapper=this.element;this.originalElement.css({position:wrapper.css("position"),width:wrapper.outerWidth(),height:wrapper.outerHeight(),top:wrapper.css("top"),left:wrapper.css("left")}).insertAfter(wrapper);wrapper.remove();}
2365this.originalElement.css("resize",this.originalResizeStyle);_destroy(this.originalElement);return this;},_mouseCapture:function(event){var i,handle,capture=false;for(i in this.handles){handle=$(this.handles[i])[0];if(handle===event.target||$.contains(handle,event.target)){capture=true;}}
2366return!this.options.disabled&&capture;},_mouseStart:function(event){var curleft,curtop,cursor,o=this.options,el=this.element;this.resizing=true;this._renderProxy();curleft=this._num(this.helper.css("left"));curtop=this._num(this.helper.css("top"));if(o.containment){curleft+=$(o.containment).scrollLeft()||0;curtop+=$(o.containment).scrollTop()||0;}
2367this.offset=this.helper.offset();this.position={left:curleft,top:curtop};this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:el.width(),height:el.height()};this.originalSize=this._helper?{width:el.outerWidth(),height:el.outerHeight()}:{width:el.width(),height:el.height()};this.sizeDiff={width:el.outerWidth()-el.width(),height:el.outerHeight()-el.height()};this.originalPosition={left:curleft,top:curtop};this.originalMousePosition={left:event.pageX,top:event.pageY};this.aspectRatio=(typeof o.aspectRatio==="number")?o.aspectRatio:((this.originalSize.width / this.originalSize.height)||1);cursor=$(".ui-resizable-"+this.axis).css("cursor");$("body").css("cursor",cursor==="auto"?this.axis+"-resize":cursor);this._addClass("ui-resizable-resizing");this._propagate("start",event);return true;},_mouseDrag:function(event){var data,props,smp=this.originalMousePosition,a=this.axis,dx=(event.pageX-smp.left)||0,dy=(event.pageY-smp.top)||0,trigger=this._change[a];this._updatePrevProperties();if(!trigger){return false;}
2368data=trigger.apply(this,[event,dx,dy]);this._updateVirtualBoundaries(event.shiftKey);if(this._aspectRatio||event.shiftKey){data=this._updateRatio(data,event);}
2369data=this._respectSize(data,event);this._updateCache(data);this._propagate("resize",event);props=this._applyChanges();if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize();}
2370if(!$.isEmptyObject(props)){this._updatePrevProperties();this._trigger("resize",event,this.ui());this._applyChanges();}
2371return false;},_mouseStop:function(event){this.resizing=false;var pr,ista,soffseth,soffsetw,s,left,top,o=this.options,that=this;if(this._helper){pr=this._proportionallyResizeElements;ista=pr.length&&(/textarea/i).test(pr[0].nodeName);soffseth=ista&&this._hasScroll(pr[0],"left")?0:that.sizeDiff.height;soffsetw=ista?0:that.sizeDiff.width;s={width:(that.helper.width()-soffsetw),height:(that.helper.height()-soffseth)};left=(parseInt(that.element.css("left"),10)+
2372(that.position.left-that.originalPosition.left))||null;top=(parseInt(that.element.css("top"),10)+
2373(that.position.top-that.originalPosition.top))||null;if(!o.animate){this.element.css($.extend(s,{top:top,left:left}));}
2374that.helper.height(that.size.height);that.helper.width(that.size.width);if(this._helper&&!o.animate){this._proportionallyResize();}}
2375$("body").css("cursor","auto");this._removeClass("ui-resizable-resizing");this._propagate("stop",event);if(this._helper){this.helper.remove();}
2376return false;},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left
vendor: 6,854 bytes, lines 2376-2405
2376:this.position.left};this.prevSize={width:this.size.width,height:this.size.height};},_applyChanges:function(){var props={};if(this.position.top!==this.prevPosition.top){props.top=this.position.top+"px";}
2377if(this.position.left!==this.prevPosition.left){props.left=this.position.left+"px";}
2378if(this.size.width!==this.prevSize.width){props.width=this.size.width+"px";}
2379if(this.size.height!==this.prevSize.height){props.height=this.size.height+"px";}
2380this.helper.css(props);return props;},_updateVirtualBoundaries:function(forceAspectRatio){var pMinWidth,pMaxWidth,pMinHeight,pMaxHeight,b,o=this.options;b={minWidth:this._isNumber(o.minWidth)?o.minWidth:0,maxWidth:this._isNumber(o.maxWidth)?o.maxWidth:Infinity,minHeight:this._isNumber(o.minHeight)?o.minHeight:0,maxHeight:this._isNumber(o.maxHeight)?o.maxHeight:Infinity};if(this._aspectRatio||forceAspectRatio){pMinWidth=b.minHeight*this.aspectRatio;pMinHeight=b.minWidth / this.aspectRatio;pMaxWidth=b.maxHeight*this.aspectRatio;pMaxHeight=b.maxWidth / this.aspectRatio;if(pMinWidth>b.minWidth){b.minWidth=pMinWidth;}
2381if(pMinHeight>b.minHeight){b.minHeight=pMinHeight;}
2382if(pMaxWidth<b.maxWidth){b.maxWidth=pMaxWidth;}
2383if(pMaxHeight<b.maxHeight){b.maxHeight=pMaxHeight;}}
2384this._vBoundaries=b;},_updateCache:function(data){this.offset=this.helper.offset();if(this._isNumber(data.left)){this.position.left=data.left;}
2385if(this._isNumber(data.top)){this.position.top=data.top;}
2386if(this._isNumber(data.height)){this.size.height=data.height;}
2387if(this._isNumber(data.width)){this.size.width=data.width;}},_updateRatio:function(data){var cpos=this.position,csize=this.size,a=this.axis;if(this._isNumber(data.height)){data.width=(data.height*this.aspectRatio);}else if(this._isNumber(data.width)){data.height=(data.width / this.aspectRatio);}
2388if(a==="sw"){data.left=cpos.left+(csize.width-data.width);data.top=null;}
2389if(a==="nw"){data.top=cpos.top+(csize.height-data.height);data.left=cpos.left+(csize.width-data.width);}
2390return data;},_respectSize:function(data){var o=this._vBoundaries,a=this.axis,ismaxw=this._isNumber(data.width)&&o.maxWidth&&(o.maxWidth<data.width),ismaxh=this._isNumber(data.height)&&o.maxHeight&&(o.maxHeight<data.height),isminw=this._isNumber(data.width)&&o.minWidth&&(o.minWidth>data.width),isminh=this._isNumber(data.height)&&o.minHeight&&(o.minHeight>data.height),dw=this.originalPosition.left+this.originalSize.width,dh=this.position.top+this.size.height,cw=/sw|nw|w/.test(a),ch=/nw|ne|n/.test(a);if(isminw){data.width=o.minWidth;}
2391if(isminh){data.height=o.minHeight;}
2392if(ismaxw){data.width=o.maxWidth;}
2393if(ismaxh){data.height=o.maxHeight;}
2394if(isminw&&cw){data.left=dw-o.minWidth;}
2395if(ismaxw&&cw){data.left=dw-o.maxWidth;}
2396if(isminh&&ch){data.top=dh-o.minHeight;}
2397if(ismaxh&&ch){data.top=dh-o.maxHeight;}
2398if(!data.width&&!data.height&&!data.left&&data.top){data.top=null;}else if(!data.width&&!data.height&&!data.top&&data.left){data.left=null;}
2399return data;},_getPaddingPlusBorderDimensions:function(element){var i=0,widths=[],borders=[element.css("borderTopWidth"),element.css("borderRightWidth"),element.css("borderBottomWidth"),element.css("borderLeftWidth")],paddings=[element.css("paddingTop"),element.css("paddingRight"),element.css("paddingBottom"),element.css("paddingLeft")];for(;i<4;i++){widths[i]=(parseInt(borders[i],10)||0);widths[i]+=(parseInt(paddings[i],10)||0);}
2400return{height:widths[0]+widths[2],width:widths[1]+widths[3]};},_proportionallyResize:function(){if(!this._proportionallyResizeElements.length){return;}
2401var prel,i=0,element=this.helper||this.element;for(;i<this._proportionallyResizeElements.length;i++){prel=this._proportionallyResizeElements[i];if(!this.outerDimensions){this.outerDimensions=this._getPaddingPlusBorderDimensions(prel);}
2402prel.css({height:(element.height()-this.outerDimensions.height)||0,width:(element.width()-this.outerDimensions.width)||0});}},_renderProxy:function(){var el=this.element,o=this.options;this.elementOffset=el.offset();if(this._helper){this.helper=this.helper||$("<div style='overflow:hidden;'></div>");this._addClass(this.helper,this._helper);this.helper.css({width:this.element.outerWidth()-1,height:this.element.outerHeight()-1,position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++o.zIndex});this.helper.appendTo("body").disableSelection();}else{this.helper=this.element;}},_change:{e:function(event,dx){return{width:this.originalSize.width+dx};},w:function(event,dx){var cs=this.originalSize,sp=this.originalPosition;return{left:sp.left+dx,width:cs.width-dx};},n:function(event,dx,dy){var cs=this.originalSize,sp=this.originalPosition;return{top:sp.top+dy,height:cs.height-dy};},s:function(event,dx,dy){return{height:this.originalSize.height+dy};},se:function(event,dx,dy){return $.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[event,dx,dy]));},sw:function(event,dx,dy){return $.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[event,dx,dy]));},ne:function(event,dx,dy){return $.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[event,dx,dy]));},nw:function(event,dx,dy){return $.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[event,dx,dy]));}},_propagate:function(n,event){$.ui.plugin.call(this,n,[event,this.ui()]);(n!=="resize"&&this._trigger(n,event,this.ui()));},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition};}});$.ui.plugin.add("resizable","animate",{stop:function(event){var that=$(this).resizable("instance"),o=that.options,pr=that._proportionallyResizeElements,ista=pr.length&&(/textarea/i).test(pr[0].nodeName),soffseth=ista&&that._hasScroll(pr[0],"left")?0:that.sizeDiff.height,soffsetw=ista?0:that.sizeDiff.width,style={width:(that.size.width-soffsetw),height:(that.size.height-soffseth)},left=(parseInt(that.element.css("left"),10)+
2403(that.position.left-that.originalPosition.left))||null,top=(parseInt(that.element.css("top"),10)+
2404(that.position.top-that.originalPosition.top))||null;that.element.animate($.extend(style,top&&left?{top:top,left:left}:{}),{duration:o.animateDuration,easing:o.animateEasing,step:function(){var data={width:parseInt(that.element.css("width"),10),height:parseInt(that.element.css("height"),10),top:parseInt(that.element.css("top"),10),left:parseInt(that.element.css("left"),10)};if(pr&&pr.length){$(pr[0]).css({width:data.width,height:data.height});}
2405that._updateCache(data);that._propagate("resize",event);}});}});$.ui.plugin.add("resizable","containment",{start:function(){var element,p,co,ch,cw,width,height,that=$(this).resizable("instance"),o=that.options,el=that.element,oc=o.containment,ce=(oc instanceof $)?oc.get(0):(/parent/.test(oc))?el.parent().get(0):oc;
vendor: 3,966 bytes, lines 2405-2419
2405if(!ce){return;}
2406that.containerElement=$(ce);if(/document/.test(oc)||oc===document){that.containerOffset={left:0,top:0};that.containerPosition={left:0,top:0};that.parentData={element:$(document),left:0,top:0,width:$(document).width(),height:$(document).height()||document.body.parentNode.scrollHeight};}else{element=$(ce);p=[];$(["Top","Right","Left","Bottom"]).each(function(i,name){p[i]=that._num(element.css("padding"+name));});that.containerOffset=element.offset();that.containerPosition=element.position();that.containerSize={height:(element.innerHeight()-p[3]),width:(element.innerWidth()-p[1])};co=that.containerOffset;ch=that.containerSize.height;cw=that.containerSize.width;width=(that._hasScroll(ce,"left")?ce.scrollWidth:cw);height=(that._hasScroll(ce)?ce.scrollHeight:ch);that.parentData={element:ce,left:co.left,top:co.top,width:width,height:height};}},resize:function(event){var woset,hoset,isParent,isOffsetRelative,that=$(this).resizable("instance"),o=that.options,co=that.containerOffset,cp=that.position,pRatio=that._aspectRatio||event.shiftKey,cop={top:0,left:0},ce=that.containerElement,continueResize=true;if(ce[0]!==document&&(/static/).test(ce.css("position"))){cop=co;}
2407if(cp.left<(that._helper?co.left:0)){that.size.width=that.size.width+
2408(that._helper?(that.position.left-co.left):(that.position.left-cop.left));if(pRatio){that.size.height=that.size.width / that.aspectRatio;continueResize=false;}
2409that.position.left=o.helper?co.left:0;}
2410if(cp.top<(that._helper?co.top:0)){that.size.height=that.size.height+
2411(that._helper?(that.position.top-co.top):that.position.top);if(pRatio){that.size.width=that.size.height*that.aspectRatio;continueResize=false;}
2412that.position.top=that._helper?co.top:0;}
2413isParent=that.containerElement.get(0)===that.element.parent().get(0);isOffsetRelative=/relative|absolute/.test(that.containerElement.css("position"));if(isParent&&isOffsetRelative){that.offset.left=that.parentData.left+that.position.left;that.offset.top=that.parentData.top+that.position.top;}else{that.offset.left=that.element.offset().left;that.offset.top=that.element.offset().top;}
2414woset=Math.abs(that.sizeDiff.width+
2415(that._helper?that.offset.left-cop.left:(that.offset.left-co.left)));hoset=Math.abs(that.sizeDiff.height+
2416(that._helper?that.offset.top-cop.top:(that.offset.top-co.top)));if(woset+that.size.width>=that.parentData.width){that.size.width=that.parentData.width-woset;if(pRatio){that.size.height=that.size.width / that.aspectRatio;continueResize=false;}}
2417if(hoset+that.size.height>=that.parentData.height){that.size.height=that.parentData.height-hoset;if(pRatio){that.size.width=that.size.height*that.aspectRatio;continueResize=false;}}
2418if(!continueResize){that.position.left=that.prevPosition.left;that.position.top=that.prevPosition.top;that.size.width=that.prevSize.width;that.size.height=that.prevSize.height;}},stop:function(){var that=$(this).resizable("instance"),o=that.options,co=that.containerOffset,cop=that.containerPosition,ce=that.containerElement,helper=$(that.helper),ho=helper.offset(),w=helper.outerWidth()-that.sizeDiff.width,h=helper.outerHeight()-that.sizeDiff.height;if(that._helper&&!o.animate&&(/relative/).test(ce.css("position"))){$(this).css({left:ho.left-cop.left-co.left,width:w,height:h});}
2419if(that._helper&&!o.animate&&(/static/).test(ce.css("position"))){$(this).css({left:ho.left-cop.left-co.left,width:w,height:h});}}});$.ui.plugin.add("resizable","alsoResize",{start:function(){var that=$(this).resizable("instance"),o=that.options;$(o.alsoResize).each(function(){var el=$(this);el.data("ui-resizable-alsoresize",{width:parseInt(el.width(),10),height:parseInt(el.height(),10),left:parseInt(el.css("left"),10),top:parseInt(el.css("top"),10)});});},resize:function(event,ui){var that=$(this).resizable("instance"),o=that.options,os=that.originalSize,op=that.originalPosition,delta={height:(that.size.height-os.height)||0,width:(that.size.width-os.width)||0,top:(that.position.top-op.top)||0,left
2419:(that.position.left-op.left)||0};$(o.alsoResize).each(function(){var el=$(this),start=$(this).data("ui-resizable-alsoresize"),style={},css=el.parents(ui.originalElement[0]).length?["width","height"]:["width","height","top","left"];$.each(css,function(i,prop){var sum=(start[prop]||0)+(delta[prop]||0);if(sum&&sum>=0){style[prop]=sum||null;}});el.css(style);});},stop:function(){$(this).removeData("resizable-alsoresize");}});$.ui.plugin.add("resizable","ghost",{start:function(){var that=$(this).resizable("instance"),cs=that.size;that.ghost=that.originalElement.clone();that.ghost.css({opacity:0.25,display:"block",position:"relative",height:cs.height,width:cs.width,margin:0,left:0,top:0});that._addClass(that.ghost,"ui-resizable-ghost");if($.uiBackCompat!==false&&typeof that.options.ghost==="string"){that.ghost.addClass(this.options.ghost);}
2420that.ghost.appendTo(that.helper);},resize:function(){var that=$(this).resizable("instance");if(that.ghost){that.ghost.css({position:"relative",height:that.size.height,width:that.size.width});}},stop:function(){var that=$(this).resizable("instance");if(that.ghost&&that.helper){that.helper.get(0).removeChild(that.ghost.get(0));}}});$.ui.plugin.add("resizable","grid",{resize:function(){var outerDimensions,that=$(this).resizable("instance"),o=that.options,cs=that.size,os=that.originalSize,op=that.originalPosition,a=that.axis,grid=typeof o.grid==="number"?[o.grid,o.grid]:o.grid,gridX=(grid[0]||1),gridY=(grid[1]||1),ox=Math.round((cs.width-os.width)/ gridX)*gridX,oy=Math.round((cs.height-os.height)/ gridY)*gridY,newWidth=os.width+ox,newHeight=os.height+oy,isMaxWidth=o.maxWidth&&(o.maxWidth<newWidth),isMaxHeight=o.maxHeight&&(o.maxHeight<newHeight),isMinWidth=o.minWidth&&(o.minWidth>newWidth),isMinHeight=o.minHeight&&(o.minHeight>newHeight);o.grid=grid;if(isMinWidth){newWidth+=gridX;}
2421if(isMinHeight){newHeight+=gridY;}
2422if(isMaxWidth){newWidth-=gridX;}
2423if(isMaxHeight){newHeight-=gridY;}
2424if(/^(se|s|e)$/.test(a)){that.size.width=newWidth;that.size.height=newHeight;}else if(/^(ne)$/.test(a)){that.size.width=newWidth;that.size.height=newHeight;that.position.top=op.top-oy;}else if(/^(sw)$/.test(a)){that.size.width=newWidth;that.size.height=newHeight;that.position.left=op.left-ox;}else{if(newHeight-gridY<=0||newWidth-gridX<=0){outerDimensions=that._getPaddingPlusBorderDimensions(this);}
2425if(newHeight-gridY>0){that.size.height=newHeight;that.position.top=op.top-oy;}else{newHeight=gridY-outerDimensions.height;that.size.height=newHeight;that.position.top=op.top+os.height-newHeight;}
2426if(newWidth-gridX>0){that.size.width=newWidth;that.position.left=op.left-ox;}else{newWidth=gridX-outerDimensions.width;that.size.width=newWidth;that.position.left=op.left+os.width-newWidth;}}}});return $.ui.resizable;}));
2427(function($){var pluginName='smartBox';var plugin={_storage:{},init:function(options){var jqel_body=jQuery('body');var jqel_collection=jQuery(this);var defaultOptions=$.fn[pluginName].defaults;var $window=jQuery(window);if(typeof(jQuery.fn.smartBox._storage)==='undefined'){jQuery.fn.smartBox._storage={_controlKeyDown:false,_shiftKeyDown:false,_altKeyDown:false,_metaKeyDown:false};}
2428jQuery(document).on('keydown keyup',function(event){var storage=jQuery.fn.smartBox._storage;storage._controlKeyDown=event.ctrlKey;storage._shiftKeyDown=event.shiftKey;storage._altKeyDown=event.altKey;storage._metaKeyDown=event.metaKey;});jqel_collection.each(function(index,element){var jqel=jQuery(element);var o=Basix.extend(Basix.EXTEND_RECURSIVE,{},defaultOptions,options);if(options.classes instanceof Array){o.classes=[];o.classes=o.classes.concat(defaultOptions.classes);o.classes=o.classes.concat(options.classes);}
2429var uniqueId=Basix.getRandomString(10);o.uid=uniqueId;if(!o.id){o.id='smartBox-'+uniqueId;}
2430var tagBase={classes:new Basix.List(),attributes:{},data:{},content:''};var wrapperTag=Basix.extend(Basix.EXTEND_RECURSIVE,Basix.ARRAYS_MERGE,{attributes:{id:o.id,role:'dialog','aria-labelledby':`${o.id}-title`,'aria-describedby':`${o.id}-content`,}},tagBase);wrapperTag.classes.from(o.classes);var overlayTag=Basix.extend(Basix.EXTEND_RECURSIVE,Basix.ARRAYS_MERGE,{id:`${o.id}-overlay`,},tagBase);overlayTag.classes.push('sb-window-overlay');var boxTag=Basix.extend(Basix.EXTEND_RECURSIVE,Basix.ARRAYS_MERGE,{id:`${o.id}-window`,},tagBase);boxTag.classes.push('sb-window-box');var contentTag=Basix.extend(Basix.EXTEND_RECURSIVE,Basix.ARRAYS_MERGE,{attributes:{id:`${o.id}-content`,}},tagBase);contentTag.classes.push('sb-window-content');if(o.titleBar===true){var titleBarTag=Basix.extend(Basix.EXTEND_RECURSIVE,Basix.ARRAYS_MERGE,{attributes:{id:`${o.id}-title-bar`,},},tagBase);titleBarTag.classes.push('sb-window-title-bar');
2430var windowControlBarTag=Basix.extend(Basix.EXTEND_RECURSIVE,Basix.ARRAYS_MERGE,{},tagBase);windowControlBarTag.classes.push('sb-window-control-bar');var titleTag=Basix.extend(Basix.EXTEND_RECURSIVE,Basix.ARRAYS_MERGE,{attributes:{id:`${o.id}-title`,},},tagBase);titleTag.classes.push('sb-title');var maximizeButtonTag=Basix.extend(Basix.EXTEND_RECURSIVE,Basix.ARRAYS_MERGE,{tag:'button',attributes:{type:'button','aria-label':'Maximize',id:`${o.id}-maximize`,},},tagBase);maximizeButtonTag.classes.merge(['sb-button','maximize']);var minimizeButtonTag=Basix.extend(Basix.EXTEND_RECURSIVE,Basix.ARRAYS_MERGE,{tag:'button',attributes:{type:'button','aria-label':'Minimize',id:`${o.id}-minimize`,},},tagBase);minimizeButtonTag.classes.merge(['sb-button','minimize']);var restoreButtonTag=Basix.extend(Basix.EXTEND_RECURSIVE,Basix.ARRAYS_MERGE,{tag:'button',attributes:{type:'button','aria-label':'Restore',id:`${o.id}-restore`,},},tagBase);restoreButtonTag.classes.merge(['sb-button','restore']);var closeButtonTag=Basix.extend(Basix.EXTEND_RECURSIVE,Basix.ARRAYS_MERGE,{tag:'button',attributes:{type:'button','aria-label':'Close',id:`${o.id}-close`,}},tagBase);closeButtonTag.classes.merge(['sb-button','close']);}
2431o.themes=new Basix.List(o.themes);let hasBaseTheme=false;o.themes.each(function(index,value){if(!hasBaseTheme&&(value==='base'||value==='flex-base')){if(value==='base'){value='flex-base';console.warn('OVERRIDING the base theme and using flex-base instead. The base theme is no longer supported as of SmartBox 2.3.0');}
2432hasBaseTheme=true;}
2433wrapperTag.classes.push('sb-theme-'+value);});if(!hasBaseTheme&&o.automaticallyApplyBaseTheme){console.warn('Automatically including the flex-base theme as no base theme defined for this dialog.');wrapperTag.classes.push('sb-theme-flex-base');}
2434if(o.modal){wrapperTag.classes.merge(['sb-modal']);}
2435if((Basix.isString(o.title)&&o.title==='')&&!Basix.isNumeric(o.title)){o.title=false;}
2436if(o.title===false&&o.close===false&&o.minimize===false&&o.maximize===false&&o.restore===false){o.titleBar=false;}
2437if(o.titleBar!==true){o.draggable=false;o.close=false;o.minimize=false;o.maximize=false;o.restore=false;}
2438if(o.draggable){wrapperTag.classes.merge(['sb-draggable']);}
2439if(o.resizable){wrapperTag.classes.merge(['sb-resizable']);}
2440o.targetElement=jQuery(o.targetElement);if(!o.targetElement.size()){o.targetElement=jqel_body;wrapperTag.classes.push('sb-attachedToBody');}else{wrapperTag.classes.push('sb-attachedToElement');}
2441if(o.titleBar===true){wrapperTag.classes.merge(['sb-title-bar']);}
2442if(!Basix.isArray(o.closeCallbacks)){o.closeCallbacks=[];}
2443var closeHandler=false;if(Basix.isFunction(o.close)||o.close===true){closeHandler=function(){jQuery(this).smartBox('close');};wrapperTag.classes.push('sb-control-close');}
2444var maximizeHandler=false;if(Basix.isFunction(o.maximize)||o.maximize===true){maximizeHandler=function(){jQuery(this).smartBox('maximize');};wrapperTag.classes.push('sb-control-maximize');}
2445var minimizeHandler=false;if(Basix.isFunction(o.minimize)||o.minimize===true){minimizeHandler=function(){jQuery(this).smartBox('minimize');};wrapperTag.classes.push('sb-control-minimize');}
2446var restoreHandler=false;if(Basix.isFunction(o.restore)||o.restore===true){restoreHandler=function(){jQuery(this).smartBox('restore');};wrapperTag.classes.push('sb-control-restore');}
2447var resizeHandlers=false;if(o.fullScreen){wrapperTag.classes.push('sb-fullScreen');}else{var tags={wrapper:wrapperTag,overlay:overlayTag,box:boxTag,content:contentTag,close:closeButtonTag};resizeHandlers=setUpPositioning(o,tags);}
2448var css={};if(o.width){css.width=o.width;}
2449if(typeof(o.height)==='string'){o.height=o.height.toLowerCase();}
2450if((o.height&&(o.height!=='css'))&&!o.fullScreen){css.height=o.height;if(o.height==='auto'){wrapperTag.classes.push('sb-variableHeight');}else{wrapperTag.classes.push('sb-fixedHeight');if(o.titleBar!==true){wrapperTag.classes.push('sb-hideTitleBar');}}}
2451var jqel_wrapper=jQuery(Basix.Tag.html(wrapperTag));var jqel_overlay=jQuery(Basix.Tag.html(overlayTag));var jqel_box=jQuery(Basix.Tag.html(boxTag));var jqel_titleBar=null;var jqel_title=null;var jqel_windowCloseButton=null;var jqel_windowMaximizeButton=null;var jqel_windowMinimizeButton=null;var jqel_windowRestoreButton=null;let jqel_header=null;let jqel_footer=null;if(o.titleBar===true){jqel_titleBar=jQuery(Basix.Tag.html(titleBarTag));jqel_title=jQuery(Basix.Tag.html(titleTag,o.title));jqel_windowCloseButton=jQuery(Basix.Tag.html(closeButtonTag,'<div class="sb-icon"></div>'));jqel_windowMaximizeButton=jQuery(Basix.Tag.html(maximizeButtonTag,'<div class="sb-icon"></div>'));jqel_windowMinimizeButton=jQuery(Basix.Tag.html(minimizeButtonTag,'<div class="sb-icon"></div>'));jqel_windowRestoreButton=jQuery(Basix.Tag.html(restoreButtonTag,'<div class="sb-icon"></div>'));}
2452if(typeof(o.header)==='string'){jqel_header=jQuery(`<header id="${o.id}-header" class="sb-window-header"></header>`);jqel_header.html(o.header);updateAriaLabelledBy(o,jqel_wrapper)}
2453if(typeof(o.footer)==='string'){jqel_footer=jQuery(`<footer id="${o.id}-footer" class="sb-window-footer"></footer>`);jqel_footer.html(o.footer);}
2454var jqel_content=jQuery(Basix.Tag.html(contentTag));var jqel_windowControlBar=jQuery(Basix.Tag.html(windowControlBarTag));jqel_overlay.appendTo(jqel_wrapper);jqel.appendTo(jqel_content);if(o.titleBar===true){jqel_title?.appendTo(jqel_titleBar);}
2455if(o.close!==false){jqel_windowCloseButton?.appendTo(jqel_windowControlBar);}
2456if(o.minimize!==false||o.maximize!==false){jqel_windowRestoreButton?.appendTo(jqel_windowControlBar);}
2457if(o.maximize!==false){jqel_windowMaximizeButton?.appendTo(jqel_windowControlBar);}
2458if(o.minimize!==false){jqel_windowMinimizeButton?.appendTo(jqel_windowControlBar);}
2459if(o.titleBar===true){jqel_windowControlBar.appendTo(jqel_titleBar);jqel_titleBar?.appendTo(jqel_box);}
2460jqel_header&&jqel_header.appendTo(jqel_box);jqel_content.appendTo(jqel_box);jqel_footer&&jqel_footer.appendTo(jqel_box);jqel_box.prepend('<div class="sb-window-processing-layer"/>');jqel_box.appendTo(jqel_wrapper);jqel_wrapper.appendTo(o.targetElement);if(closeHandler){jqel_windowCloseButton?.on('click',jQuery.proxy(closeHandler,jqel_wrapper));}
2461if(minimizeHandler){jqel_windowMinimizeButton?.on('click',jQuery.proxy(minimizeHandler,jqel_wrapper));}
2462if(maximizeHandler){jqel_windowMaximizeButton?.on('click',jQuery.proxy(maximizeHandler,jqel_wrapper));}
2463if(restoreHandler){jqel_windowRestoreButton?.on('click',jQuery.proxy(restoreHandler,jqel_wrapper));}
2464if(resizeHandlers){resizeHandlers.each(function(index,resizeHandler){$window.on('resize.'+o.uid,jQuery.proxy(resizeHandler,jqel_wrapper));});}
2465if(Basix.isFunction(o.overlayClick)){jqel_overlay.on('click',jQuery.proxy(o.overlayClick,jqel_wrapper)).on('click',jQuery.proxy(o.defaultOverlayClick,jqel_wrapper));}
2466jqel_box.css(css);function _smartBoxSetContentSize(heightOverride){if(o.height!=='auto'&&o.height!=='css'){var titleBarHeight=0;if(o.titleBar===true){titleBarHeight=jqel_titleBar.outerHeight(false);}
2467var boxHeight=jqel_box.height();var boxOuterHeight=jqel_box.outerHeight();var boxHeightDifference=boxOuterHeight-boxHeight;var newHeight=(heightOverride?(heightOverride-boxHeightDifference):boxHeight)-titleBarHeight;jqel_content.css({height:newHeight});}}
2468_smartBoxSetContentSize();var smartBoxData={realPosition:{top:0,left:0},settings:o,self:jqel_wrapper,uniqueId:o.uid};jqel_wrapper.data('smartBox',smartBoxData);jqel_wrapper.smartBox('makeActive');if(o.draggable===true){var jqel_offsetParent=jqel_box.offsetParent();var hasOffsetParentWithSize=false;var maxTries=1500;var triesCounter=0;while(!hasOffsetParentWithSize){if(triesCounter>=maxTries){break;}
2469triesCounter++;var parentWidth=jqel_offsetParent.width();var parentHeight=jqel_offsetParent.height();if(!parentWidth||!parentHeight){jqel_offsetParent=jqel_offsetParent.offsetParent();}else{hasOffsetParentWithSize=true;}}
2470if(!hasOffsetParentWithSize){jqel_offsetParent=jQuery(window);}
2471jqel_box.draggable({handle:'.sb-window-title-bar',scroll:false,drag:function(event,ui){var parentWidth=jqel_offsetParent.outerWidth(false);var parentHeight=jqel_offsetParent.outerHeight(false);var boxWidth=jqel_box.outerWidth(false);var boxHeight=jqel_box.outerHeight(false);
2471ui.position.left=Math.max(0,Math.min(parentWidth-boxWidth,ui.position.left));ui.position.top=Math.max(0,Math.min(parentHeight-boxHeight,ui.position.top));}});}
2472if(o.resizable===true){var resizableOptions={handles:'all',resize:function(event,ui){var parentWidth=jqel_offsetParent.outerWidth(false);var parentHeight=jqel_offsetParent.outerHeight(false);ui.size.width=Math.min(parentWidth-ui.position.left,ui.size.width);ui.size.height=Math.min(parentHeight-ui.position.top,ui.size.height);ui.size.width=Math.min(ui.size.width+ui.position.left,ui.size.width);ui.position.left=Math.max(0,ui.position.left);ui.size.height=Math.min(ui.size.height+ui.position.top,ui.size.height);ui.position.top=Math.max(0,ui.position.top);_smartBoxSetContentSize(ui.size.height);},start:function(event,ui){var jqel=jQuery(this).parents('.sb-window').first();jqel.addClass('sb-resize-in-progress sb-fixedHeight');jqel.removeClass('sb-variableHeight');},stop:function(event,ui){var jqel=jQuery(this).parents('.sb-window').first();jqel.removeClass('sb-resize-in-progress');}};if(o.titleBar===true&&o.minWidth==='window-control-bar'){var windowControlsWidth=0;jqel_titleBar?.find('.sb-window-control-bar .sb-button').each(function(index,element){var jqel=jQuery(element);windowControlsWidth+=jqel.width();});resizableOptions.minWidth=windowControlsWidth;}else if(Basix.isNumeric(o.minWidth)){jqel_box.css({minWidth:o.minWidth});resizableOptions.minWidth=o.minWidth;}
2473if(o.titleBar===true&&o.minHeight==='title-bar'){resizableOptions.minHeight=jqel_titleBar?.height();}else if(Basix.isNumeric(o.minHeight)){jqel_box.css({minHeight:o.minHeight});resizableOptions.minHeight=o.minHeight;}
2474jqel_box.resizable(resizableOptions);}
2475jqel_wrapper.on('mousedown',function(){jQuery(this).smartBox('makeActive');});$window.trigger('resize.'+o.uid).trigger('scroll.'+o.uid);if(o.calculateZIndex){const jqel_body=jQuery('body');var zStack=o.topOfStack?jqel_body.children():jqel_body.children().not('.molecule_notification-container,.be_siteToolsContainer,.qtip');var maxZ=Math.max.apply(null,zStack.map(function(){var z;return isNaN(z=parseInt($(this).css("z-index"),10))?0:z;}));jqel_wrapper.css({'z-index':maxZ+100});}
2476setTimeout(function(){jqel_content.find('.autofocus').focus();},10);});return jqel_collection;},maximize:function(){this.each(function(index,element){var jqel=jQuery(this);var o=jqel.basixData('smartBox.settings');var allowedToRunDefaultBehavior=true;if(Basix.isFunction(o.maximize)){allowedToRunDefaultBehavior=o.maximize.apply(jqel,[jqel,o]);if(typeof(allowedToRunDefaultBehavior)==='undefined'){allowedToRunDefaultBehavior=true;}}
2477if(allowedToRunDefaultBehavior&&Basix.isFunction(o.defaultMaximize)){o.defaultMaximize.apply(jqel,[jqel,o]);}});},restore:function(){this.each(function(index,element){var jqel=jQuery(this);var o=jqel.basixData('smartBox.settings');var allowedToRunDefaultBehavior=true;var previousWindowState=jqel.hasClass('sb-fullScreen')?'maximized':'minimized';if(Basix.isFunction(o.restore)){allowedToRunDefaultBehavior=o.restore.apply(jqel,[jqel,o,previousWindowState]);if(typeof(allowedToRunDefaultBehavior)==='undefined'){allowedToRunDefaultBehavior=true;}}
2478if(allowedToRunDefaultBehavior&&Basix.isFunction(o.defaultRestore)){o.defaultRestore.apply(jqel,[jqel,o,previousWindowState]);}});},minimize:function(){this.each(function(index,element){var jqel=jQuery(this);var o=jqel.basixData('smartBox.settings');var allowedToRunDefaultBehavior=true;if(Basix.isFunction(o.minimize)){allowedToRunDefaultBehavior=o.minimize.apply(jqel,[jqel,o]);if(typeof(allowedToRunDefaultBehavior)==='undefined'){allowedToRunDefaultBehavior=true;}}
2479if(allowedToRunDefaultBehavior&&Basix.isFunction(o.defaultMinimize)){o.defaultMinimize.apply(jqel,[jqel,o]);}});},makeActive:function(){jQuery('.sb-active-window').not(this).removeClass('sb-active-window');if(this.size()){this.addClass('sb-active-window');var jqel_body=jQuery('body');if(this.hasClass('sb-modal')){jqel_body.addClass('sb-modal-active');}else{jqel_body.removeClass('sb-modal-active');}}
2480return this;},hide:function(){this.each(function(index,element){var jqel=jQuery(this);if(!jqel.hasClass('sb-window')){var jqel_parentSmartBox=jqel.parents('.sb-window:first');if(!jqel_parentSmartBox.size()){return;}
2481jqel=jqel_parentSmartBox;}
2482if(!jqel.size()||!jqel.parents('body').size()){return;}
2483jqel.hide();});},close:async function(){var argsForClose=new Basix.getArgsList(arguments);let domElements=[];this.each((index,element)=>{domElements.push(element);});for(const element of domElements){var jqel=jQuery(element);var o=jqel.basixData('smartBox.settings');if(!jqel.hasClass('sb-window')){var jqel_parentSmartBox=jqel.parents('.sb-window:first');if(!jqel_parentSmartBox.size()){continue;}
2484jqel=jqel_parentSmartBox;}
2485if(!jqel.size()||!jqel.parents('body').size()){continue;}
2486var allowedToRunDefaultBehavior=true;var callbacksList=[];
2486if(Basix.isFunction(o.close)){callbacksList.push(o.close);}
2487callbacksList=callbacksList.concat(o.closeCallbacks);for(let closeCallback of callbacksList){if(!closeCallback){continue;}
2488let argsList=new Basix.List([jqel,o],argsForClose);allowedToRunDefaultBehavior=await closeCallback.apply(jqel,argsList.getNativeArray());if(typeof(allowedToRunDefaultBehavior)==='undefined'){allowedToRunDefaultBehavior=true;}
2489if(!allowedToRunDefaultBehavior){break;}}
2490if(allowedToRunDefaultBehavior&&Basix.isFunction(o.defaultClose)){o.defaultClose.apply(jqel,[jqel,o]);}
2491var jqel_nextActiveSmartBox=jQuery('.sb-window').last();if(jqel_nextActiveSmartBox.size()){jqel_nextActiveSmartBox.smartBox('makeActive');}else{jQuery('body').removeClass('sb-modal-active');}}
2492return this;},setCloseCallback:function(callbackFunction){var jqel=jQuery(this);if(!jqel.hasClass('sb-window')){var jqel_parentSmartBox=jqel.parents('.sb-window:first');if(!jqel_parentSmartBox.size()){return;}
2493jqel=jqel_parentSmartBox;}
2494var o=jqel.basixData('smartBox.settings');o.close=callbackFunction;jqel.basixData('smartBox.settings',o);return this;},getDialog:function(){var jqel=jQuery(this);if(!jqel.hasClass('sb-window')){var jqel_parentSmartBox=jqel.parents('.sb-window:first');if(!jqel_parentSmartBox.size()){return jQuery();}
2495jqel=jqel_parentSmartBox;}
2496return jqel;},getDialogContent:function(){var jqel_smartBox=jQuery(this)[pluginName]('getDialog');return jqel_smartBox.find('.sb-window-content:first');},getDialogHeader:function(){var jqel_smartBox=jQuery(this)[pluginName]('getDialog');return jqel_smartBox.find('header.sb-window-header:first');},getDialogFooter:function(){var jqel_smartBox=jQuery(this)[pluginName]('getDialog');return jqel_smartBox.find('footer.sb-window-footer:first');},showProcessingLayer:function(){var jqel_smartBox=jQuery(this)[pluginName]('getDialog');jqel_smartBox.addClass('sb-processing--active');},hideProcessingLayer:function(){var jqel_smartBox=jQuery(this)[pluginName]('getDialog');jqel_smartBox.removeClass('sb-processing--active');},setProcessingLayerContent:function(content){var jqel_smartBox=jQuery(this)[pluginName]('getDialog');jqel_smartBox.find('.sb-window-processing-layer').html(content);},setTitle:function(title){var jqel=jQuery(this);var jqel_dialog=jqel.smartBox('getDialog');var o=jqel.basixData('smartBox.settings');if(o){o.title=title;jqel.basixData('smartBox.settings',o);jqel_dialog.find('.sb-title').html(title);updateAriaLabelledBy(o,jqel_dialog);}},setHeader:function(header){var jqel=jQuery(this);var jqel_dialog=jqel.smartBox('getDialog');var o=jqel.basixData('smartBox.settings');if(o){o.header=header;jqel.basixData('smartBox.settings',o);let $header=jqel_dialog.find('header.sb-window-header');if(!$header.size()){jqel_dialog.find('.sb-window-content').before(`<header id="${o.id}-header" class="sb-window-header"></header>`);}
2497$header=jqel_dialog.find('header.sb-window-header:first');$header.html('');$header.append(header);updateAriaLabelledBy(o,jqel_dialog);}},setFooter:function(footer){var jqel=jQuery(this);var jqel_dialog=jqel.smartBox('getDialog');var o=jqel.basixData('smartBox.settings');if(o){o.footer=footer;jqel.basixData('smartBox.settings',o);let $footer=jqel_dialog.find('footer.sb-window-footer');if(!$footer.size()){jqel_dialog.find('.sb-window-content').after(`<footer id="${o.id}-footer" class="sb-window-footer"></footer>`);}
2498$footer=jqel_dialog.find('footer.sb-window-footer:first');$footer.html('');$footer.append(footer);}},};function updateAriaLabelledBy(options,jqel_dialog){if(hasTitle(options)){jqel_dialog.attr('aria-labelledby',`${options.id}-title`);}else{jqel_dialog.attr('aria-labelledby',`${options.id}-header`);}}
2499function hasTitle(o){return!o.titleBar||!o.title||o.title.replaceAll('&nbsp;').trim()==='';}
2500function setUpPositioning(o,tags){var $window=jQuery(window);var resizeHandlers=new Basix.List();var defaultPosition={top:0,left:0};if(!jQuery.isPlainObject(o.position)){if(typeof(o.position)==='string'){o.position=o.position.toLowerCase();if(o.position==='auto'||o.position==='css'){o.position={top:'auto',left:'auto'};}else if(o.position==='center'){o.position={top:'auto',left:'auto'};}}else{o.position=jQuery.extend({},defaultPosition);}}else{o.position=jQuery.extend({},defaultPosition,o.position);if(o.position.top==='css'){o.position.top='auto';}
2501if(o.position.left==='css'){o.position.left='auto';}}
2502var isDialogAttachedToBody=(o.targetElement.get(0).tagName.toLowerCase()==='body');if(o.position.top!=='auto'||o.position.left!=='auto'){if(o.position.top==='center'&&o.position.left==='center'){if(o.maxWidth==='window'||o.maxHeight==='window'){resizeHandlers.push(function(){var jqel_smartBox=jQuery(this);var $window=jQuery(window);var smartBoxData=jqel_smartBox.basixData('smartBox');var settings=smartBoxData.settings;var cssOptions={};if(settings.maxWidth==='window'){var newWidth=$window.width();if(!isDialogAttachedToBody){newWidth=o.targetElement.width();}
2503cssOptions.maxWidth=newWidth;}
2504if(settings.maxHeight==='window'){var newHeight=$window.height();if(!isDialogAttachedToBody){newHeight=o.targetElement.height();}
2505cssOptions.maxHeight=newHeight;}
2506var jqel_smartBoxWindow=jqel_smartBox.find('.sb-window-box').first();jqel_smartBoxWindow.css(cssOptions);});}}
2507tags.wrapper.classes.push('sb-floating');if(o.position.top!=='center'||o.position.left!=='center'){tags.wrapper.classes.merge(['sb-positioned']);}else{tags.wrapper.classes.merge(['sb-centered']);}
2508resizeHandlers.push(function(){var jqel_smartBox=jQuery(this);if(jqel_smartBox.hasClass('sb-resize-in-progress')){return;}
2509var jqel_box=jqel_smartBox.find('.sb-window-box');var smartBoxData=jqel_smartBox.basixData('smartBox');if(!smartBoxData){return;}
2510var jqel_offsetParent=jqel_smartBox.offsetParent();var $offsetParent;var isOffsetUsingWindow=false;if(Basix.inArray(jqel_offsetParent.get(0).tagName.toLowerCase(),['html','body'])||!jqel_offsetParent.height()||!jqel_offsetParent.width()){$offsetParent=$window;isOffsetUsingWindow=true;}else{$offsetParent=jqel_offsetParent;}
2511var wrapperWidth;var wrapperHeight;var offsetParentWidth;var offsetParentHeight;if(isOffsetUsingWindow){wrapperWidth=jqel_box.width();wrapperHeight=jqel_box.height();offsetParentWidth=$offsetParent.width();offsetParentHeight=$offsetParent.height();}else{wrapperWidth=jqel_box.outerWidth(false);wrapperHeight=jqel_box.outerHeight(false);offsetParentWidth=$offsetParent.outerWidth(false);offsetParentHeight=$offsetParent.outerHeight(false);}
2512var newPosition={};var setNewPosition=false;if(smartBoxData.settings.position.top!=='auto'){setNewPosition=true;if(smartBoxData.settings.position.top==='center'){newPosition.top=((offsetParentHeight / 2)-(wrapperHeight / 2))-1;}else{newPosition.top=smartBoxData.settings.position.top;}}
2513if(smartBoxData.settings.position.left!=='auto'){setNewPosition=true;if(smartBoxData.settings.position.left==='center'){newPosition.left=((offsetParentWidth / 2)-(wrapperWidth / 2))-1;}else{newPosition.left=smartBoxData.settings.position.left;}}
2514if(setNewPosition){jqel_box.css(newPosition);smartBoxData.realPosition=newPosition;}});}
2515return resizeHandlers;}
2516$.fn[pluginName]=function(method){if(!method||method instanceof Object){return plugin.init.apply(this,arguments);}else if(typeof(plugin[method])!=='undefined'){return plugin[method].apply(this,Array.prototype.slice.call(arguments,1));}else{throw'Method '+method+' does not exist in jQuery.'+pluginName;}};$.fn[pluginName].defaults={modal:false,containment:'auto',position:'center',fullScreen:false,resizable:true,draggable:true,width:'css',height:'css',maxWidth:'css',maxHeight:'css',minWidth:'window-control-bar',minHeight:'title-bar',themes:['base'],automaticallyApplyBaseTheme:true,id:false,classes:['smartBox','sb-window'],targetElement:false,titleBar:true,header:false,footer:false,title:'',closeOnOverlayClick:false,calculateZIndex:false,topOfStack:false,maximize:function(jqel_wrapper,settings){return true;},defaultMaximize:function(jqel_wrapper,settings){var jqel_box=jqel_wrapper.find('.sb-window-box');var jqel_content=jqel_box.find('.sb-window-content');var boxPosition=jqel_box.position();var wrapperClasses=new Basix.List(jqel_wrapper.attr('class').split(' '));var wrapperRestoreClasses=[];var nonFullScreenWindowClasses=new Basix.List(['sb-floating','sb-positioned','sb-centered','sb-fixedHeight']);wrapperClasses.each(function(index,value){if(Basix.inArray(value,nonFullScreenWindowClasses)){wrapperRestoreClasses.push(value);}});var wrapperPosition=jqel_wrapper.position();jqel_wrapper.basixData('smartBox.restoreWindowData',{wrapperRestoreClasses:wrapperRestoreClasses,wrapperData:{top:wrapperPosition.top,left
2516:wrapperPosition.left},boxData:{top:boxPosition.top,left:boxPosition.left,width:jqel_box.outerWidth(false),height:jqel_box.outerHeight(false)},contentData:{width:jqel_content.outerWidth(false),height:jqel_content.outerHeight(false)}});jQuery(window).off('resize.'+jqel_wrapper.basixData('smartBox.settings.uid'));jqel_wrapper.alterClass(nonFullScreenWindowClasses,'sb-fullScreen').removeAttr('style');jqel_wrapper.find('.sb-window-box').removeAttr('style').find('.sb-window-content').removeAttr('style');},minimize:function(jqel_wrapper,settings){return true;},defaultMinimize:function(jqel_wrapper,settings){alert('default minimize not yet implemented');},restore:function(jqel_wrapper,settings,previousWindowState){return true;},defaultRestore:function(jqel_wrapper,settings,previousWindowState){switch(previousWindowState){case'maximized':var restoreWindowData=jqel_wrapper.basixData('smartBox.restoreWindowData');var jqel_box=jqel_wrapper.find('.sb-window-box');var jqel_content=jqel_box.find('.sb-window-content');jqel_box.css(restoreWindowData.boxData);jqel_content.css(restoreWindowData.contentData);jqel_wrapper.css(restoreWindowData.wrapperData);jqel_wrapper.alterClass('sb-fullScreen',restoreWindowData.wrapperRestoreClasses);break;case'minimized':alert('Nothing to restore. Default minimize not yet implemented');break;default:}},close:function(jqel_wrapper,settings){return true;},closeCallbacks:[],defaultClose:function(jqel_wrapper,settings){jQuery(window).off('resize.'+settings.uid+' scroll.'+settings.uid);jQuery(this).remove();},overlayClick:function(event){return true;},defaultOverlayClick:function(event){var jqel_wrapper=jQuery(this);var o=jqel_wrapper.basixData('smartBox.settings');if(jQuery.fn.smartBox._storage._shiftKeyDown||o.closeOnOverlayClick){jQuery(event.target).smartBox('close');}},actions:{}};})(jQuery);
2517(function($){var pluginName='alterClass';$.fn[pluginName]=function(removals,additions){var jqel=jQuery(this);if(jQuery.isArray(removals)){removals=removals.join(' ');}
2518if(jQuery.isArray(additions)){additions=additions.join(' ');}
2519if(removals.indexOf('*')===-1){jqel.removeClass(removals);return!additions?jqel:jqel.addClass(additions);}
2520var removalsArray=removals.split(' ');if(removalsArray.length){var patterns=[];jQuery.each(removalsArray,function(index,removal){patterns.push(new RegExp('\\s'+removal.replace(/\*/g,'[A-Za-z0-9-_]+')+'\\s','g'));});jqel.each(function(index,element){var className=' '+element.className+' ';jQuery.each(patterns,function(index,pattern){while(pattern.test(className)){className=className.replace(pattern,' ');}});element.className=$.trim(className);});}
2521return!additions?jqel:jqel.addClass(additions);};})(jQuery);
2522(function($){var pluginName='mmiData';$.fn[pluginName]=function(){var args=Array.prototype.slice.call(arguments);var jqel=jQuery(this);var data;var parents;var returnJqel=false;if(args.length===2&&args[0]===true){returnJqel=true;}
2523data=jQuery.extend({},jqel.data());if(returnJqel&&data.hasOwnProperty(args[1])){return jqel;}
2524parents=jqel.parents();var jqel_ancestor=null;parents.each(function(index,ancestorDomElement){jqel_ancestor=jQuery(ancestorDomElement);var ancestorData=jQuery.extend({},jqel_ancestor.data());if(returnJqel){if(ancestorData.hasOwnProperty(args[1])){return false;}}else{data=jQuery.extend(ancestorData,data);}});if(returnJqel){return jQuery(jqel_ancestor);}
2525switch(args.length){case 0:return data;break;case 1:var returnValue=data[args[0]];if(returnValue===undefined||returnValue===null){if(MMI&&MMI.Settings&&args.length&&args[0]){var parts=args[0].split('__');if(parts.length==2){var settingGroup=parts[0];var settingName=parts[1];returnValue=MMI.Settings.getSetting(settingGroup,settingName,null);}}}
2526return returnValue;break;case 2:var targetData=jqel.data();var locatedKey=false;if(targetData!=null&&targetData.hasOwnProperty(args[0])){jqel.data(args[0],args[1]);locatedKey=true;}else{parents.each(function(index,ancestorDomElement){var jqel_ancestor=jQuery(ancestorDomElement);var ancestorData=jqel_ancestor.data();if(ancestorData.hasOwnProperty(args[0])){jqel_ancestor.data(args[0],args[1]);locatedKey=true;return false;}});}
2527if(!locatedKey){jqel.data(args[0],args[1]);}
2528break;}
2529return jqel;};})(jQuery);(function($){var pluginName='mmiRemoveData';$.fn[pluginName]=function(){var args=Array.prototype.slice.call(arguments);var jqel=jQuery(this);if(!args.length){jqel.removeData();return jqel;}
2530var jqel_parents=jqel.parents();var removeFromAllParents=false;if(typeof(args[0])=='boolean'&&args[0]===true){removeFromAllParents=true;}
2531jQuery.each(args,function(index,arg){var targetData=jqel.data();var foundKey=false;if(targetData!=null&&targetData.hasOwnProperty(args)){jqel.removeData(arg);foundKey=true;}
2532if(!foundKey||removeFromAllParents){jqel_parents.each(function(index,ancestorDomElement){var jqel_ancestor=jQuery(ancestorDomElement);var ancestorData=jqel_ancestor.data();if(ancestorData.hasOwnProperty(args)){jqel_ancestor.removeData(args);if(!removeFromAllParents){return false;}}});}});return jqel;};})(jQuery);
2533jQuery.fn.extend({everyTime:function(interval,label,fn,times){return this.each(function(){jQuery.timer.add(this,interval,label,fn,times);});},oneTime:function(interval,label,fn){return this.each(function(){jQuery.timer.add(this,interval,label,fn,1);});},stopTime:function(label,fn){return this.each(function(){jQuery.timer.remove(this,label,fn);});}});jQuery.extend({timer:{global:[],guid:1,dataKey:"jQuery.timer",regex:/^([0-9]+(?:\.[0-9]*)?)\s*(.*s)?$/,powers:{'ms':1,'cs':10,'ds':100,'s':1000,'das':10000,'hs':100000,'ks':1000000},timeParse:function(value){if(value==undefined||value==null)
2534return null;var result=this.regex.exec(jQuery.trim(value.toString()));if(result[2]){var num=parseFloat(result[1]);var mult=this.powers[result[2]]||1;return num*mult;}else{return value;}},add:function(element,interval,label,fn,times){var counter=0;if(jQuery.isFunction(label)){if(!times)
2535times=fn;fn=label;label=interval;}
2536interval=jQuery.timer.timeParse(interval);if(typeof interval!='number'||isNaN(interval)||interval<0)
2537return;if(typeof times!='number'||isNaN(times)||times<0)
2538times=0;times=times||0;var timers=jQuery.data(element,this.dataKey)||jQuery.data(element,this.dataKey,{});if(!timers[label])
2539timers[label]={};fn.timerID=fn.timerID||this.guid++;var handler=function(){if((++counter>times&&times!==0)||fn.call(element,counter)===false)
2540jQuery.timer.remove(element,label,fn);};handler.timerID=fn.timerID;if(!timers[label][fn.timerID])
2541timers[label][fn.timerID]=window.setInterval(handler,interval);this.global.push(element);},remove:function(element,label,fn){var timers=jQuery.data(element,this.dataKey),ret;if(timers){if(!label){for(label in timers)
2542this.remove(element,label,fn);}else if(timers[label]){if(fn){if(fn.timerID){window.clearInterval(timers[label][fn.timerID]);delete timers[label][fn.timerID];}}else{for(var fn in timers[label]){window.clearInterval(timers[label][fn]);delete timers[label][fn];}}
2543for(ret in timers[label])break;if(!ret){ret=null;delete timers[label];}}
2544for(ret in timers)break;if(!ret)
2545jQuery.removeData(element,this.dataKey);}}}});jQuery(window).bind("unload",function(){jQuery.each(jQuery.timer.global,function(index,item){jQuery.timer.remove(item);});});
2546Eco.Util.initializeNamespace('Eco.NotificationController');Eco.NotificationController=(function(){var NotificationController=Eco.BaseClass.extend({_containers:[],_messages:[],__construct:function(){},registerContainer:function(container){if(!(container instanceof Eco.Organism.Notification.Container)){this._error('Invalid notification container organism.',container);}
2547this._containers.push(container);var self=this;container.jqel.on('eco_destroy_organism',function(event){if(event.currentTarget!==event.target){return;}
2548var jqel=jQuery(this);var organism=jqel.data('organism');for(var i=0;i<self._containers.length;i++){if(self._containers[i]===organism){self._containers.splice(i,1);}}});},registerMessage:function(message){if(!(message instanceof Eco.Organism.Notification.Message)){this._error('Invalid notification message organism.',message);}
2549this._messages.push(message);var self=this;message.jqel.on('eco_destroy_organism',function(event){if(event.currentTarget!==event.target){return;}
2550var jqel=jQuery(this);var organism=jqel.data('organism');for(var i=0;i<self._messages.length;i++){if(self._messages[i]===organism){self._messages.splice(i,1);}}});},getHighestPriorityContainer:function(){if(!this._containers.length){return null;}
2551var container=this._containers[this._containers.length-1];for(var i=1;i<this._containers.length;i++){var tmpContainer=this._containers[i];if(tmpContainer.getPriority()>container.getPriority()){container=tmpContainer;}}
2552return container;},getMessageByName:function(name){if(!this._messages.length){return null;}
2553for(var i=0;i<this._messages.length;i++){var message=this._messages[i];if(message.getName()===name){return message;}}
2554return null;},getContainerByName:function(name){if(!this._containers.length){return null;}
2555for(var i=0;i<this._containers.length;i++){var container=this._containers[i];if(container.getName()===name){return container;}}
2556return null;},hideAllMessagesInContainer:function(containerName){for(var i=0;i<this._messages.length;i++){var message=this._messages[i];if(message.getContainer().getName()===containerName){message.hide();}}}});return new NotificationController();})();
2557Eco.Util.initializeNamespace('Eco.Organism.Notification.Container');Eco.Organism.Notification.Container=Eco.Organism.extend({_name:null,_priority:0,__construct:function(jqel_organism){this._parent(jqel_organism);this.jqel.addClass('molecule_notification-container mod_notification-count-0');var name=this.jqel.data('name');if(!name){name=Eco.Util.getRandomString(8);}
2558this._name=name;var priority=this.jqel.data('priority');if(!priority){priority=0;}
2559this._priority=priority;Eco.NotificationController.registerContainer(this);},getName:function(){return this._name;}
2559,getPriority:function(){return this._priority;}});
2560if(!Eco.Organism.Notification){Eco.Organism.Notification={};}
2561Eco.Organism.Notification.Message=Eco.Organism.extend({_messageName:null,_messageOptimalRenderInterval:null,_notificationTransitionTime:500,container:null,jqel_icon:null,jqel_message:null,jqel_messageContent:null,_options:null,_defaultAction:{id:null,handler:'dismiss',label:'Dismiss',url:null,time:0},_defaultOptions:{name:null,show:true,remove:true,time:0,container:null,icon:null,body:null,classes:'',actions:[{}]},_role:null,_previouslyFocusedElement:null,__construct:function(jqel_organism){this._parent(jqel_organism);this._options=jQuery.extend({},this._defaultOptions,jqel_organism.data('options'));if(!this._options.name){this._options.name=Eco.Util.getRandomString(8);}
2562this._messageName=this._options.name;this.jqel.addClass(this._messageName.replace('.','-'));this._conformMessage();this._conformIcon();this._conformActions();this._role=this._options.actions.length>0?'alertdialog':'alert';this.container=this._getContainer();this._generateButtonElements();this.jqel.detach();this.jqel.addClass(this.__cssSelector+' molecule_notification-message');this.jqel.attr('role',this._role);if(this._role==='alert'){this.jqel_message.detach();}else if(this._role==='alertdialog'){const jqel_describedBy=this.getMessageContentElement();let describedById=jqel_describedBy.attr('id');if(!describedById){describedById=`${this._uniqueInternalId}-messageContent`;jqel_describedBy.attr('id',describedById);}
2563this.jqel.attr('aria-describedby',describedById);this.jqel.attr('aria-label',this._options.name);}
2564this.container.jqel.append(this.jqel);if(this._role==='alert'){this.jqel.prepend(this.jqel_message);}
2565var self=this;for(var i=0;i<this._options.actions.length;i++){var action=this._options.actions[i];(function(action){var jqel_button=self.jqel.find('[data-action-id="'+action.id+'"]');if(typeof action.handler==='object'&&action.handler.hasOwnProperty('type')&&action.handler.type==='live_click'){jqel_button.addClass('live_click');jqel_button.data('live_click_handler',action.handler.name);}else{jqel_button.on('click',function(){if(action.handler instanceof Function){action.handler.apply(self,[action]);}else if(typeof action.handler==='string'){var handler='action_'+action.handler;if(self[handler]instanceof Function){self[handler].apply(self,[action]);}}});}
2566action.button=jqel_button;})(action);}
2567if(!this.jqel.is(':visible')){this._options.show=false;}
2568if(this._options.show===true){this._messageOptimalRenderInterval=setInterval(function(){if(!Eco.OrganismController.isScanning()){clearInterval(self._messageOptimalRenderInterval);self.show();}},20);}
2569Eco.NotificationController.registerMessage(this);},_generateMessageElement:function(){var jqel;if(!this._options.icon){jqel=jQuery('<div class="atom_message"><div class="atom_message-content">'+this._options.body+'</div></div>');}else{jqel=jQuery('<div class="atom_message"><div class="atom_icon '+this._options.icon+'"></div><div class="atom_message-content">'+this._options.body+'</div></div>');}
2570jqel.addClass(this._options.classes);return jqel;},_generateButtonElements:function(){var buttonsHtml='';var end=Math.min(2,this._options.actions.length);for(var i=0;i<end;i++){var action=this._options.actions[i];if(!action.id){if(typeof(action.handler)==='string'){action.id=action.handler;}else{action.id=Eco.Util.getRandomString(8);}}
2571if(action.label!==null){buttonsHtml+='<button data-action-id="'+action.id+'" class="atom_button">'+action.label+'</button>';}}
2572this.jqel.append('<div class="molecule_buttons mod_button-count-'+this._options.actions.length+'">'+buttonsHtml+'</div>');},_getContainer:function(){var container=null;if(this._options.container instanceof Eco.Organism.Notification.Container){return this._options.container;}else if(typeof(this._options.container)==='string'){container=Eco.NotificationController.getContainerByName(this._options.container);if(!(container instanceof Eco.Organism.Notification.Container)){this._warn('Unable to get container organism for Notification.Container named: '+this._options.container+'; will use default container behavior instead.');}else{return container;}}else if(this._options.container!==null){this._warn('Invalid Notification.Message `container` option; will use default container behavior instead.',this._options);}
2573container=Eco.NotificationController.getHighestPriorityContainer();if(container===null){container=this._generateContainer();}
2574return container;},getContainer:function(){if(this.container===null){return this._getContainer();}
2575return this.container;},getName:function(){return this._messageName;},getMessageElement:function(){return this.jqel.find('.atom_message');},getMessageContentElement:function(){return this.jqel_message.find('.atom_message-content')},getIconElement:function(){return this.jqel.find('.atom_icon');},_conformIcon:function(){this.jqel_icon=this.getIconElement();if(!this.jqel_icon.length){if(!typeof(this._options.icon)==='string'||!this._options.icon){return;}
2576this.jqel_icon=jQuery('<div class="atom_icon '+this._options.icon+'"></div>');}
2577this.jqel_icon.prependTo(this.jqel_message);},_conformMessage:function(){this.jqel_message=this.getMessageElement();if(typeof(this._options.classes)==='object'){this._options.classes=this._options.classes.join(' ');}
2578this.jqel_message.addClass(this._options.classes);this.jqel_messageContent=this.getMessageContentElement();if(this.jqel_message.length){if(this.jqel_messageContent.length<1){var html=this.jqel_message.html();this.jqel_message.html('<div class="atom_message-content">'+html+'</div>');}
2579return;}
2580if(!typeof(this._options.body)==='string'){this._error('Notification.Message `body` option must be defined or an `atom_message` element must be present inside the message organism element.');}
2581this.jqel_message=this._generateMessageElement();this.jqel_message.appendTo(this.jqel);},_conformActions:function(){if(!(this._options.actions instanceof Array)){this._error('Notification.Message `actions` option is not an array. If you intended to have no actions, use an empty array.');}
2582for(var i=0;i<this._options.actions.length;i++){var action=this._options.actions[i];if(!jQuery.isPlainObject(action)){this._error('Invalid Notification.Message action at index: '+i,this._options);}
2583this._options.actions[i]=jQuery.extend({},this._defaultAction,action);}},action_dismiss:function(action){this.hide();},action_remind:function(action){var remove=this._options.remove;this._options.remove=false;this.hide();var self=this;setTimeout(function(){self._options.remove=remove;self.show();},this._notificationTransitionTime+action.time);},action_open:function(action){var target=window.open(action.url,'_blank');this.hide();
2583setTimeout(function(){target.focus();},this._notificationTransitionTime);},show:function(){var jqel_messages=this.container.jqel.find('> .mod_visible');var jqel_lastVisible=jqel_messages.last();if(jqel_lastVisible.size()){jqel_lastVisible.after(this.jqel);}else{this.container.jqel.prepend(this.jqel);}
2584var visibleMessages=jqel_messages.size();this.container.jqel.alterClass('mod_notification-count-*','mod_notification-count-'+(visibleMessages+1));this.jqel.addClass('mod_visible');var renderBuffer=10;var self=this;setTimeout(function(){var childrenHeight=0;jQuery.each(jqel_messages,function(){var jqel=jQuery(this);childrenHeight+=jqel.outerHeight(true);});let calcedHeight=childrenHeight+self.jqel.outerHeight(true);calcedHeight+=calcedHeight?1:0;self.container.jqel.height(calcedHeight);if(self._options.time>0){self.jqel.addClass('mod_timed');self.jqel[0].style.setProperty('--time',(self._options.time-100)+'ms');setTimeout(function(){self.jqel.addClass('mod_running');},100);const timer=new Eco.Util.Timer(()=>{self.hide();},self._options.time);self.jqel.hover(()=>timer.pause(),()=>timer.resume());}
2585if(self._options.actions.length>0){self._previouslyFocusedElement=document.activeElement;const firstAction=self._options.actions[0];const jqel_firstButton=self.jqel.find('[data-action-id="'+firstAction.id+'"]');jqel_firstButton.focus();const buttonHolder=self.jqel.find('.molecule_buttons');buttonHolder.on('keydown',function(e){if(e.key==='Tab'){if(e.shiftKey&&!e.target.previousElementSibling){e.preventDefault();buttonHolder.find('button:last-child').focus();}else if(!e.target.nextElementSibling){e.preventDefault();buttonHolder.find('button:first-child').focus();}}});}},renderBuffer);},hide:function(){if(this._messageOptimalRenderInterval){clearTimeout(this._messageOptimalRenderInterval);}
2586var self=this;var jqel_messages=this.container.jqel.find('> .mod_visible');var visibleMessages=jqel_messages.size();var targetContainerHeight=this.container.jqel.height()-this.jqel.outerHeight(true);if(visibleMessages<2){targetContainerHeight=0;}else if(visibleMessages===2){jQuery.each(jqel_messages,function(){if(self.jqel.get(0)!==this){targetContainerHeight=jQuery(this).outerHeight(true);}});}
2587this.container.jqel.alterClass('mod_notification-count-*','mod_notification-count-'+Math.max(0,visibleMessages-1));this.container.jqel.height(targetContainerHeight);var newHeight=this.jqel.height();this.jqel.height(newHeight);self.jqel.alterClass('mod_visible','mod_hiding');var renderBuffer=10;setTimeout(function(){self.jqel.height(0);},renderBuffer);setTimeout(function(){self.jqel.height(0);self.jqel.removeClass('mod_hiding').height('auto');},this._notificationTransitionTime);if(this._options.remove===true){setTimeout(function(){self.destroy();self.jqel.remove();},this._notificationTransitionTime);}else{setTimeout(function(){self.jqel.detach();self.container.jqel.append(self.jqel);},this._notificationTransitionTime);}
2588this._previouslyFocusedElement&&this._previouslyFocusedElement.focus();},_generateContainer:function(){var html='<div class="organism_notification-container molecule_notification-container" data-name="default" data-priority="1"></div>';var jqel_container=jQuery(html);jQuery('body').append(jqel_container);Eco.OrganismController.scanSync(jqel_container);return Eco.NotificationController.getHighestPriorityContainer();}});
2589/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */
2590jQuery36=(()=>{
vendor: 89,411 bytes, line 2590
2590!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:y}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),j=function(e,t){return e===t&&(l=!0),0},D={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",B=new RegExp(M+"+","g"),$=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+S+"'></a><select id='"+S+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&D.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(j),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(B," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace($,"$1"));return s[S]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace($,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace($," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=S.split("").sort(j).join("")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(S(e).filter(function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var D,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&S(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},S.extend({Deferred:function(e){var o=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e})};var F=S.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),S.ready()}S.fn.ready=function(e){return F.then(e)["catch"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var $=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)$(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):$(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===S.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,"")},u=s(),l=n&&n[3]||(S.cssNumber[t]?"":"px"),c=e.nodeType&&(S.cssNumber[t]||"px"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",y.option=!!ce.lastChild;var ge={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,y.option||(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^([^.]*)(?:\.(.+)|)/;function we(){return!0}function Te(){return!1}function Ce(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ee(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ee(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Te;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Se(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n&&n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,we)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=be.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.hasData(e)&&Y.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=be.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||S.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=S.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<S(i,this).index(l):S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click",we),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Se(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?we:Te,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Te,isPropagationStopped:Te,isImmediatePropagationStopped:Te,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=we,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=we,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=we,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},S.event.addProp),S.each({focus:"focusin",blur:"focusout"},function(e,t){S.event.special[e]={setup:function(){return Se(this,e,Ce),!1},trigger:function(){return Se(this,e),!0},_default:function(){return!0},delegateType:t}}),S.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),S.fn.extend({on:function(e,t,n,r){return Ee(this,e,t,n,r)},one:function(e,t,n,r){return Ee(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Te),this.each(function(){S.event.remove(this,e,n,t)})}});var ke=/<script|<style|<link/i,Ae=/checked\s*(?:[^=]|=\s*.checked.)/i,Ne=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function He(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&Ae.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),He(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ve(e,"script"),De)).length;c<f;c++)u=e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,qe),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&S.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(Ne,""),u,l))}return n}function Oe(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ve(r)),r.parentNode&&(n&&ie(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Le(o[r],a[r]);else Le(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Oe(this,e,!0)},remove:function(e){return Oe(this,e)},text:function(e){return $(this,function(e){return void 0===e?S.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return He(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||je(this,e).appendChild(e)})},prepend:function(){return He(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=je(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return He(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return $(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!ke.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return He(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Pe=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Re=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},Me=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Ie=new RegExp(ne.join("|"),"i");function We(e,t,n){var r,i,o,a,s=e.style;return(n=n||Re(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||ie(e)||(a=S.style(e,t)),!y.pixelBoxStyles()&&Pe.test(a)&&Ie.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function Fe(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement("div"),l=E.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===l.style.backgroundClip,S.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=E.createElement("table"),t=E.createElement("tr"),n=E.createElement("div"),e.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t.style.cssText="border:1px solid",t.style.height="1px",n.style.height="9px",n.style.display="block",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=parseInt(r.height,10)+parseInt(r.borderTopWidth,10)+parseInt(r.borderBottomWidth,10)===t.offsetHeight,re.removeChild(e)),a}}))}();var Be=["Webkit","Moz","ms"],$e=E.createElement("div").style,_e={};function ze(e){var t=S.cssProps[e]||_e[e];return t||(e in $e?e:_e[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=Be.length;while(n--)if((e=Be[n]+t)in $e)return e}(e)||e)}var Ue=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ve={position:"absolute",visibility:"hidden",display:"block"},Ge={letterSpacing:"0",fontWeight:"400"};function Ye(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Qe(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=S.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=S.css(e,"border"+ne[a]+"Width",!0,i))):(u+=S.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=S.css(e,"border"+ne[a]+"Width",!0,i):s+=S.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Je(e,t,n){var r=Re(e),i=(!y.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=We(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Pe.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||!y.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Qe(e,t,n||(i?"border":"content"),o,r,a)+"px"}function Ke(e,t,n,r,i){return new Ke.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=We(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Xe.test(t),l=e.style;if(u||(t=ze(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Xe.test(t)||(t=ze(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=We(e,t,r)),"normal"===i&&t in Ge&&(i=Ge[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],function(e,u){S.cssHooks[u]={get:function(e,t,n){if(t)return!Ue.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Je(e,u,n):Me(e,Ve,function(){return Je(e,u,n)})},set:function(e,t,n){var r,i=Re(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===S.css(e,"boxSizing",!1,i),s=n?Qe(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Qe(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=S.css(e,u)),Ye(0,t,s)}}}),S.cssHooks.marginLeft=Fe(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(We(e,"marginLeft"))||e.getBoundingClientRect().left-Me(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),S.each({margin:"",padding:"",border:"Width"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(S.cssHooks[i+o].set=Ye)}),S.fn.extend({css:function(e,t){return $(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Re(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=Ke).prototype={constructor:Ke,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=Ke.propHooks[this.prop];return e&&e.get?e.get(this):Ke.propHooks._default.get(this)},run:function(e){var t,n=Ke.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Ke.propHooks._default.set(this),this}}).init.prototype=Ke.prototype,(Ke.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[ze(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=Ke.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=Ke.prototype.init,S.fx.step={};var Ze,et,tt,nt,rt=/^(?:toggle|show|hide)$/,it=/queueHooks$/;function ot(){et&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(ot):C.setTimeout(ot,S.fx.interval),S.fx.tick())}function at(){return C.setTimeout(function(){Ze=void 0}),Ze=Date.now()}function st(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ut(e,t,n){for(var r,i=(lt.tweeners[t]||[]).concat(lt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function lt(o,e,t){var n,a,r=0,i=lt.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=Ze||at(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),originalProperties:e,originalOptions:t,startTime:Ze||at(),duration:t.duration,tweens:[],createTween:function(e,t){var n=S.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=lt.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ut,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}S.Animation=S.extend(lt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],lt.tweeners[n]=lt.tweeners[n]||[],lt.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),v=Y.get(e,"fxshow");for(r in n.queue||(null==(a=S._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,S.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],rt.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Y.get(e,"display")),"none"===(c=S.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=S.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===S.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Y.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)S.style(e,r,d[r])})),u=ut(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?lt.prefilters.unshift(e):lt.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&"object"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=lt(this,S.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&it.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),S.each(["toggle","show","hide"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(st(r,!0),e,t,n)}}),S.each({slideDown:st("show"),slideUp:st("hide"),slideToggle:st("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(Ze=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),Ze=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){et||(et=!0,ot())},S.fx.stop=function(){et=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},tt=E.createElement("input"),nt=E.createElement("select").appendChild(E.createElement("option")),tt.type="checkbox",y.checkOn=""!==tt.value,y.optSelected=nt.selected,(tt=E.createElement("input")).value="t",tt.type="radio",y.radioValue="t"===tt.value;var ct,ft=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return $(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?ct:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),ct={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),function(e,t){var a=ft[t]||S.find.attr;ft[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=ft[o],ft[o]=r,r=null!=a(e,t,n)?o:null,ft[o]=i),r}});var pt=/^(?:input|select|textarea|button)$/i,dt=/^(?:a|area)$/i;function ht(e){return(e.match(P)||[]).join(" ")}function gt(e){return e.getAttribute&&e.getAttribute("class")||""}function vt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return $(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,"tabindex");return t?parseInt(t,10):pt.test(e.nodeName)||dt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).addClass(t.call(this,e,gt(this)))});if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&" "+ht(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=ht(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).removeClass(t.call(this,e,gt(this)))});if(!arguments.length)return this.attr("class","");if((e=vt(t)).length)while(n=this[u++])if(i=gt(n),r=1===n.nodeType&&" "+ht(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=ht(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){S(this).toggleClass(i.call(this,e,gt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=S(this),r=vt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=gt(this))&&Y.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Y.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+ht(gt(n))+" ").indexOf(t))return!0;return!1}});var yt=/\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?"":e+""})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(yt,""):null==e?"":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:ht(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},y.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var mt=/^(?:focusinfocus|focusoutblur)$/,xt=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!mt.test(d+S.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[S.expando]?e:new S.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,mt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,xt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,xt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),y.focusin||S.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var bt=C.location,wt={guid:Date.now()},Tt=/\?/;S.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||S.error("Invalid XML: "+(n?S.map(n.childNodes,function(e){return e.textContent}).join("\n"):e)),t};var Ct=/\[\]$/,Et=/\r?\n/g,St=/^(?:submit|button|image|reset|file)$/i,kt=/^(?:input|select|textarea|keygen)/i;function At(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||Ct.test(n)?i(n,t):At(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)At(n+"["+t+"]",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)At(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&kt.test(this.nodeName)&&!St.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(Et,"\r\n")}}):{name:t.name,value:n.replace(Et,"\r\n")}}).get()}});var Nt=/%20/g,jt=/#.*$/,Dt=/([?&])_=[^&]*/,qt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Lt=/^(?:GET|HEAD)$/,Ht=/^\/\//,Ot={},Pt={},Rt="*/".concat("*"),Mt=E.createElement("a");function It(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Wt(t,i,o,a){var s={},u=t===Pt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function Ft(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Mt.href=bt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:bt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(bt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Rt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Ft(Ft(e,S.ajaxSettings),t):Ft(S.ajaxSettings,e)},ajaxPrefilter:It(Ot),ajaxTransport:It(Pt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=S.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?S(y):S.event,x=S.Deferred(),b=S.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=qt.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||bt.href)+"").replace(Ht,bt.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(P)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Mt.protocol+"//"+Mt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=S.param(v.data,v.traditional)),Wt(Ot,v,t,T),h)return T;for(i in(g=S.event&&v.global)&&0==S.active++&&S.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Lt.test(v.type),f=v.url.replace(jt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(Nt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(Tt.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Dt,"$1"),o=(Tt.test(f)?"&":"?")+"_="+wt.guid+++o),v.url=f+o),v.ifModified&&(S.lastModified[f]&&T.setRequestHeader("If-Modified-Since",S.lastModified[f]),S.etag[f]&&T.setRequestHeader("If-None-Match",S.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+Rt+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Wt(Pt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<S.inArray("script",v.dataTypes)&&S.inArray("json",v.dataTypes)<0&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(S.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(S.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--S.active||S.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return S.get(e,t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var Bt={0:200,1223:204},$t=S.ajaxSettings.xhr();y.cors=!!$t&&"withCredentials"in $t,y.ajax=$t=!!$t,S.ajaxTransport(function(i){var o,a;if(y.cors||$t&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(Bt[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),S.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=ht(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&S.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?S("<div>").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Xt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase=X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?"":(e+"").replace(Xt,"")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return S});var Vt=C.jQuery,Gt=C.$;return S.noConflict=function(e){return C.$===S&&(C.$=Gt),e&&C.jQuery===S&&(C.jQuery=Vt),S},"undefined"==typeof e&&(C.jQuery=C.$=S),S});
2590return jQuery.noConflict(true);})();
2591class FocusTrap{#focusableElements=[];get focusableElements(){return this.#focusableElements;}#observer;setUpFocusTrap(parentEl){this.setUpFocusableElements(parentEl);}
2592tearDownFocusTrap(){this.#observer.disconnect();}
2593setUpFocusableElements(parentEl){this.#observer=new MutationObserver((_mutations)=>{this.iframeHack(parentEl);this.#focusableElements=FocusTrap.getFocusableElements(parentEl);});this.#observer.observe(parentEl,{childList:true,subtree:true,attributes:true,attributeFilter:['hidden','disabled','open','class','inert']});this.iframeHack(parentEl);this.#focusableElements=FocusTrap.getFocusableElements(parentEl);}
2594iframeHack(parentEl){const iframes=parentEl.querySelectorAll('iframe[tabindex]:not([tabindex="-1"])');iframes.forEach((el)=>{if(!(el.nextSibling instanceof HTMLButtonElement)){const btn=document.createElement('button');btn.setAttribute('aria-hidden','true');btn.classList.add('sr-only');btn.textContent='Focus trapping hack';btn.addEventListener('focus',(e)=>{debugger
2595const fakeEvent=new KeyboardEvent('keydown',{shiftKey:!!e?.relatedTarget,})
2596e.preventDefault();e.stopPropagation();e.stopImmediatePropagation();this.trapKeyboardFocus(fakeEvent,true);})
2597el.insertAdjacentElement('afterend',btn);}});}
2598trapKeyboardFocus(event,force=false){const els=this.#focusableElements;if(els.length<=1){event.preventDefault();return;}
2599const focusedIdx=els?.findIndex(el=>{return document.activeElement===el;});if(focusedIdx===els.length-1&&!event.shiftKey){this.focus(els[0]);event.preventDefault();}else if(focusedIdx===0&&event.shiftKey){this.focus(els[els.length-1]);event.preventDefault();}else if(force){event.preventDefault();if(event.shiftKey){this.focus(els[focusedIdx-1]);}else{this.focus(els[focusedIdx+1]);}}}
2600focus(el){el.focus();}
2601static getFocusableElements(parentEl){const focusableSelectors=['[autofocus]','[data-focus]','a[href]','area[href]','input:not([disabled])','select:not([disabled])','textarea:not([disabled])','button:not([disabled])','[tabindex]:not([tabindex="-1"])','summary',];return[...parentEl.querySelectorAll(focusableSelectors.join(', '))].filter((el)=>{return el.tabIndex>=0&&el.checkVisibility()&&!el.closest('[inert]');}).sort((el1,el2)=>{const a=parseInt(el1.tabIndex,10);const b=parseInt(el2.tabIndex,10);if(a===0&&b!==0){return 1;}
2602if(a!==0&&b===0){return-1;}
2603return a-b;});}}
2604class HelixWrappedDialogContentData{title=null;header=null;content=null;footer=null;dialog=null;constructor(contentObject){if(typeof(contentObject)==='string'||contentObject instanceof jQuery){contentObject={content:contentObject,};}
2605if(contentObject.hasOwnProperty('title')){this.title=contentObject.title;}
2606if(contentObject.hasOwnProperty('header')){this.header=contentObject.header;}
2607if(contentObject.hasOwnProperty('content')){this.content=contentObject.content;}
2608if(contentObject.hasOwnProperty('footer')){this.footer=contentObject.footer;}
2609if(contentObject.hasOwnProperty('dialog')){this.dialog=contentObject.dialog;}}}
2610class HelixWrappedDialog extends FocusTrap{app;options;smartBox;dialogPromise;contentPromise=null;headerPromise;footerPromise;elementInFocusOnDialogOpen=null;elementInFocusInDialog=null;#isOpen=false;#openPromise;#openResolve;#closeResolve;#closeReject;#swallowCloseRejection=true;#bypassConfirmOnClose=false;#confirmOnClose=async()=>{return false;};#confirmOnCloseMessage='';#confirmOnCloseAffirmLabel='Close';#confirmOnClosePreventLabel='Cancel';#confirmOnCloseTitle='Confirm';#confirmOnCloseDialogOptions={};data={};static OPTIONS_DEFAULTS=100;#common={options:{defaults:{modal:true,themes:['flex-base','helix-wrapped-dialog--base'],classes:[],position:'css',width:'css',height:'css',close:true,minimize:false,maximize:false,restore:false,resizable:false,draggable:false}}};constructor(options){super();this.app=MMI.App.get();this.options={...options};if(!this.options.title){this.options.title='&nbsp;';}
2611this.#openPromise=new Promise((resolve,reject)=>{this.#openResolve=resolve;});this.dialogPromise=new Promise((resolve,reject)=>{this.#closeResolve=resolve;this.#closeReject=reject;}).then(result=>{this.reFocusElementInFocusOnDialogOpen();result.dialog.closeImmediately();return result;},info=>{this.reFocusElementInFocusOnDialogOpen();if(!this.#swallowCloseRejection){throw info;}});}
2612applyOptionsSet(optionsSetId){let options={};switch(optionsSetId){case HelixWrappedDialog.OPTIONS_DEFAULTS:options=this.#common.options.defaults;break;default:throw`Invalid options set id for HelixWrappedDialog: ${optionsSetId}`;}
2613this.options={...this.options,...options};return this;}
2614getOptionsSet(optionsSetId){let options={};switch(optionsSetId){case HelixWrappedDialog.OPTIONS_DEFAULTS:options=this.#common.options.defaults;break;default:throw`Invalid options set id for HelixWrappedDialog: ${optionsSetId}`;}
2615return options;}
2616applyOptions(options){this.options={...this.options,...options};return this;}
2617removeTheme(themeName){if(!this.options||!this.options.themes||!Array.isArray(this.options.themes)){return this;}
2618const themeIdx=this.options.themes.indexOf(themeName);if(themeIdx>-1){this.options.themes.splice(themeIdx,1);}
2619return this;}
2620addTheme(themeName){if(!this.options||!this.options.themes||!Array.isArray(this.options.themes)){this.options.themes=[];}
2621this.options.themes.push(themeName);return this;}
2622closeImmediately(){this.#openPromise.then(dialog=>{this.smartBox.smartBox('close');});return this;}
2623close(){let el=this.smartBox.get(0);
2623let e=new CustomEvent('dialog.close',{bubbles:true,detail:{}});el.dispatchEvent(e);}
2624resolve(detail={}){let el=this.smartBox.get(0);let e=new CustomEvent('dialog.resolve',{bubbles:true,detail,});el.dispatchEvent(e);}
2625confirmOnClose(message,title=this.#confirmOnCloseTitle,affirmCloseLabel=this.#confirmOnCloseAffirmLabel,preventCloseLabel=this.#confirmOnClosePreventLabel,dialogOptions={},needsConfirmPrompt=async()=>{return true;}){this.#confirmOnCloseMessage=message;this.#confirmOnCloseTitle=title;this.#confirmOnCloseAffirmLabel=affirmCloseLabel;this.#confirmOnClosePreventLabel=preventCloseLabel;this.#confirmOnClose=needsConfirmPrompt;this.#confirmOnCloseDialogOptions=dialogOptions;return this;}
2626open(){if(this.#isOpen){return this;}
2627this.elementInFocusOnDialogOpen=document.activeElement;this.smartBox=jQuery('<div/>').smartBox(this.options).smartBox('getDialog');this.smartBox.get(0).addEventListener('keydown',event=>{this.onKeyDown(event);});this.smartBox.data('dialog',this);this.smartBox.smartBox('setCloseCallback',async()=>{let allow=true;if(this.#bypassConfirmOnClose===false&&await this.#confirmOnClose()===true){const confirmDialogHtml=`
2628<div class="be-confirm-prompt--message">
2629    ${this.#confirmOnCloseMessage}                
2630</div>
2631                `;let classes=new Set();if(this.options.classes){if(typeof(this.options.classes)==='string'){classes=new Set(this.options.classes.split(' '));}else{classes=new Set(this.options.classes);}
2632const baseClasses=[...classes.values()];for(const className of baseClasses){classes.add(className+'--be-confirm-prompt');}}
2633classes.add('be-confirm-prompt');let themes=new Set();if(this.options.themes){if(typeof(this.options.themes)==='string'){themes=new Set(this.options.themes.split(' '));}else{themes=new Set(this.options.themes);}
2634const baseThemes=[...themes.values()];for(const className of baseThemes){themes.add(className+'--be-confirm-prompt');}}
2635themes.add('be-confirm-prompt');const options={modal:true,close:false,classes:[...classes.values()],themes:[...themes.values()]};const confirmDialog=new this.constructor({...options,...this.#confirmOnCloseDialogOptions});confirmDialog.content(confirmDialogHtml).footer(`
2636                        <button class="atom_button live_click" data-live_click_handler="closeWrappedDialog">${this.#confirmOnClosePreventLabel}</button>
2637                        <button class="atom_button live_click" data-live_click_handler="resolveWrappedDialog">${this.#confirmOnCloseAffirmLabel}</button>
2638                    `).open();allow=await confirmDialog.then(()=>{return true},()=>{return false});}
2639if(allow){allow=this.#onClose();}
2640return allow;});const dialogEl=this.smartBox.get(0);this.setUpFocusTrap(dialogEl)
2641dialogEl.addEventListener('dialog.close',async(event)=>{let allow=true;if(await this.#confirmOnClose()===true){allow=confirm(this.#confirmOnCloseMessage);}
2642if(allow){this.tearDownFocusTrap();this.#bypassConfirmOnClose=true;this.closeImmediately();this.#onClose();}});dialogEl.addEventListener('dialog.resolve',(event)=>{this.#bypassConfirmOnClose=true;this.#onResolve(event);});dialogEl.addEventListener('dialog.resolveWithValues',(event)=>{this.#bypassConfirmOnClose=true;this.#onResolve(event);});this.#openResolve({dialog:this});this.#isOpen=true;return this;}
2643isOpen(){return this.#isOpen;}
2644focus(element){if(!element){element=this.getFirstFocusableElement();}
2645element?.focus();this.elementInFocusInDialog=element;}
2646onKeyDown(event){switch(event.key){case'Tab':this.trapKeyboardFocus(event);break;case'Escape':if(this.isClosable()){this.close();}
2647break;}}
2648isClosable(){const settings=this.smartBox?.basixData('smartBox.settings');const isModal=settings?.modal??false;const hasCloseButton=!!settings?.close;return!isModal||hasCloseButton;}
2649then(resolve=()=>{},reject=undefined){this.#swallowCloseRejection=false;this.dialogPromise=this.dialogPromise.then(resolve,reject);return this;}
2650catch(reject){this.#swallowCloseRejection=false;this.dialogPromise=this.dialogPromise.catch(reject);return this;}
2651finally(method){this.dialogPromise=this.dialogPromise.finally(method);return this;}
2652content(rawContent){this.contentPromise=this.#openPromise.then(dialog=>{return Promise.resolve(rawContent).then((content)=>{const contentData=new HelixWrappedDialogContentData(content);const contentEl=this.smartBox.smartBox('getDialogContent');contentEl.html(contentData.content);this.app.initializeNewContent(contentEl);if(contentData.title!==null){this.title(contentData.title);}
2653if(contentData.header!==null){this.header(contentData.header);}
2654if(contentData.footer!==null){this.footer(contentData.footer);}
2655contentData.dialog=this;return contentData;}).then(contentData=>{this.focus();return contentData;});});return this;}
2656getElementInFocusOnDialogOpen(){return this.elementInFocusOnDialogOpen;}
2657reFocusElementInFocusOnDialogOpen(){this.elementInFocusOnDialogOpen?.focus();}
2658getFirstFocusableElement(){const els=this.focusableElements;switch(els.length){case 0:return this.smartBox?.get(0);case 1:return els[0];default:return els.find(el=>el.autofocus)??(els[0].matches('.sb-button.close')?els[1]:els[0])}}
2659header(headerContent){this.headerPromise=this.#openPromise.then(dialog=>{return Promise.resolve(headerContent).then(html=>{this.smartBox.smartBox('setHeader',html);return this.smartBox.get(0).querySelector('header.sb-window-header');});});return this;}
2660footer(footerContent){this.footerPromise=this.#openPromise.then(dialog=>{return Promise.resolve(footerContent).then(html=>{this.smartBox.smartBox('setFooter',html);return this.smartBox.get(0).querySelector('footer.sb-window-footer');});});return this;}
2661set options(options){if(this.smartBox){throw new Error('Unable to set options after the dialog is open.');}}
2662title(title){this.#openPromise.then(dialog=>{this.smartBox.smartBox('setTitle',title);});return this;}
2663spin(spinnerOptions={}){spinnerOptions={...{resolution:'high',autoCenter:true},...spinnerOptions,...{returnAsHtml:true}};const spinnerHtml=Be.Fancy.generateSpinner(spinnerOptions);this.content(spinnerHtml);return this;}
2664block(htmlContentOrSpinnerOptions={}){this.#openPromise.then(dialog=>{if(htmlContentOrSpinnerOptions!==null){let html;if(typeof htmlContentOrSpinnerOptions==='string'){html=htmlContentOrSpinnerOptions;}else{let spinnerOptions={...{resolution:'high',autoCenter:true},...htmlContentOrSpinnerOptions,...{returnAsHtml:true}};html=Be.Fancy.generateSpinner(spinnerOptions);}
2665this.smartBox.smartBox('setProcessingLayerContent',html);}
2666this.smartBox.smartBox('showProcessingLayer');});return this;}
2667unblock(){this.#openPromise.then(dialog=>{this.smartBox.smartBox('hideProcessingLayer');});return this;}
2668getContentPromise(){return this.contentPromise||Promise.reject();}
2669getHeaderPromise(){return this.headerPromise||Promise.reject();}
2670getFooterPromise(){return this.footerPromise||Promise.reject();}
2671getDialogOpenPromise(){return this.#openPromise||Promise.reject();}
2672getDialogPromise(){return this.dialogPromise;}
2673async getElement(){return await this.#openPromise.then(dialog=>{return this.smartBox.get(0);},err=>null);}
2674async getContentElement(){return await this.#openPromise.then(dialog=>{return this.smartBox.smartBox('getDialogContent').get(0);});}#onClose(error){return this.#closeReject({dialog:this,error});}#onResolve(event){this.#closeResolve({dialog:this,event});}}
2675class HelixDialogAlert extends HelixWrappedDialog{static DIALOG_SIZE_CUSTOM='custom';static DIALOG_SIZE_SMALL='small';static DIALOG_SIZE_MEDIUM='medium';static DIALOG_SIZE_LARGE='large';uiLabels={buttons:{affirm:'OK',deny:'Cancel',},};constructor(options,size=HelixDialogAlert.DIALOG_SIZE_CUSTOM){options={...options,};super(options);this.hook_setUpResolve();this.hook_setUpReject();this.hook_setUpOptions(options);this.hook_setUpHeader();this.hook_setUpFooter();}
2676hook_setUpResolve(){this.dialogPromise=this.dialogPromise.then(r=>{return undefined;});}
2677hook_setUpReject(){this.dialogPromise=this.dialogPromise.catch(e=>{return undefined;});}
2678hook_setUpOptions(options,size=HelixDialogAlert.DIALOG_SIZE_CUSTOM){this.addTheme('helix-wrapped-dialog--alert-confirm-prompt');if(!(this.options.classes instanceof Array)){this.options.classes=[];}
2679this.options.classes.push('helix-dialog');this.options.classes.push(`helix-dialog--${this.getMethodId()}`);switch(size){case HelixDialogAlert.DIALOG_SIZE_CUSTOM:this.options.classes.push('--size-custom');break;case HelixDialogAlert.DIALOG_SIZE_LARGE:this.options.classes.push('--size-large');break;case HelixDialogAlert.DIALOG_SIZE_MEDIUM:this.options.classes.push('--size-medium');break;case HelixDialogAlert.DIALOG_SIZE_SMALL:this.options.classes.push('--size-small');break;default:}
2680const optionsSet=this.getOptionsSet(HelixWrappedDialog.OPTIONS_DEFAULTS);this.options.classes=[...optionsSet.classes,...this.options.classes];this.options.themes=[...optionsSet.themes,...this.options.themes];this.options={...optionsSet,...this.options};if(this.options.uiLabels){this.uiLabels=Basix.extend(true,{},this.uiLabels,this.options.uiLabels);}
2681return this;}
2682hook_setUpHeader(){return this;}
2683hook_setUpFooter(){this.useButtonBarStyle();this.footer(`<button class="atom_button live_click --btn --affirm" data-live_click_handler="resolveWrappedDialog"><span class="--btn-label --affirm">${this.getUiLabelButtonAffirm()}</span></button>`);return this;}
2684getUiLabelButtonAffirm(){return this.uiLabels.buttons.affirm;}
2685getUiLabelButtonDeny(){return this.uiLabels.buttons.deny;}
2686async setUiLabelButtonAffirm(label){return this.setUiLabelButtonGeneric(label,'affirm');}
2687async setUiLabelButtonDeny(label){return this.setUiLabelButtonGeneric(label,'deny');}
2688async setUiLabelButtonGeneric(label,buttonType){this.uiLabels.buttons[buttonType]=label;const $dialog=await this.getElement();const $labels=$dialog.querySelectorAll(`.--btn-label.--${buttonType}`);for(const $label of $labels){$label.innerHTML=label;}
2689return $labels;}
2690useButtonBarStyle(){this.addTheme('helix-wrapped-dialog--button-bar-footer');return this;}
2691getThemes(){return['flex-base','helix-wrapped-dialog--base'];}
2692getMethodId(){return'alert';}
2693content(content){const defaultContent=this.getDefaultContent(content);if(content instanceof Object&&!(content instanceof Promise)&&defaultContent instanceof Object&&!(defaultContent instanceof Promise)){content={...defaultContent,...content,};}
2694if(content instanceof Object&&!(content instanceof Promise)){if(!content.mode&&!content.id&&!content.type){content.mode='ui';}
2695content=MMI.App.get().ajaxUsingPromise(content).then(json=>{if(json.result){return json.result;}
2696throw'Invalid response from server when loading dialog content.';});}
2697return super.content(content);}
2698getDefaultContent(){return'<!-- Default Alert Content - No Content Provided -->';}}
2699class HelixDialogConfirm extends HelixDialogAlert{getMethodId(){return'confirm';}
2700hook_setUpResolve(){this.dialogPromise=this.dialogPromise.then(r=>{return true;});}
2701hook_setUpReject(){this.dialogPromise=this.dialogPromise.catch(e=>{throw false;});}
2702hook_setUpFooter(){this.useButtonBarStyle();this.footer(`<button class="atom_button mod_inverse live_click --btn --deny" data-live_click_handler="closeWrappedDialog"><span class="--btn-label --deny">${this.getUiLabelButtonDeny()}</span></button><button class="atom_button live_click --btn --affirm" data-live_click_handler="resolveWrappedDialog"><span class="--btn-label --affirm">${this.getUiLabelButtonAffirm()}</span></button>`);return this;}
2703getDefaultContent(){return'<!-- Default Confirm Content - No Content Provided -->';}}
2704class HelixDialogPrompt extends HelixDialogConfirm{uiLabels={buttons:{affirm:'Submit',deny:'Cancel',},};open(){super.open();this.contentPromise=this.getContentPromise().then(result=>{const organismTargetClass=`--${Eco.Util.getRandomString(9)}`;const $smartBox=this.smartBox.get(0);$smartBox.querySelector('.organism_form')?.classList.add(organismTargetClass);const $affirmBtn=$smartBox.querySelector('.--btn.--affirm');
2704if($affirmBtn){$affirmBtn.dataset.valuesTarget=`.${organismTargetClass}`;}
2705return result;},()=>{});}
2706hook_setUpResolve(){this.dialogPromise=this.dialogPromise.then(r=>{if(r?.event?.detail!==null){return r.event.detail;}else{throw'Invalid details object.';}});}
2707hook_setUpReject(){this.dialogPromise=this.dialogPromise.catch(e=>{throw null;});}
2708hook_setUpFooter(){this.useButtonBarStyle();this.footer(`<button class="atom_button live_click --btn --deny" data-live_click_handler="closeWrappedDialog"><span class="--btn-label --deny">${this.getUiLabelButtonDeny()}</span></button><button class="atom_button live_click --btn --affirm" data-live_click_handler="resolveWrappedDialogWithValues"><span class="--btn-label --affirm">${this.getUiLabelButtonAffirm()}</span></button>`);return this;}
2709getMethodId(){return'prompt';}
2710content(content){super.content(content);}
2711getDefaultContent(content){return{promptLabel:'Enter a Value',view:'helix_dialog_prompt',};}}
2712if(typeof(window['MMI'])=='undefined'){window.MMI={};}
2713MMI.Debug={_attemptsToFindConsole:0,_maximumAttemptsToFindConsole:3,_millisecondsBetweenAttemptsToFindConsole:1000,_timers:{},_serverDebugHistory:[],config:{log:true,error:true,warn:true,info:true,hasConsole:false,hasConsoleLog:false,hasConsoleClear:false,hasConsoleError:false,hasConsoleWarn:false,hasConsoleInfo:false,defaultArgumentDetailLevel:2},init:function(){MMI.Debug.config.hasConsole=(typeof(window.console)=='object'&&window.console!=null);if(MMI.Debug.config.hasConsole){MMI.Debug.config.hasConsoleLog=(jQuery.inArray(typeof(window.console.log),['function','object'])>-1);MMI.Debug.config.hasConsoleClear=(jQuery.inArray(typeof(window.console.clear),['function','object'])>-1);MMI.Debug.config.hasConsoleError=(jQuery.inArray(typeof(window.console.error),['function','object'])>-1);MMI.Debug.config.hasConsoleWarn=(jQuery.inArray(typeof(window.console.warn),['function','object'])>-1);MMI.Debug.config.hasConsoleInfo=(jQuery.inArray(typeof(window.console.info),['function','object'])>-1);}else if(MMI.Debug._attemptsToFindConsole<MMI.Debug._maximumAttemptsToFindConsole){MMI.Debug._attemptsToFindConsole++;setTimeout(MMI.Debug.init,MMI.Debug._millisecondsBetweenAttemptsToFindConsole);}
2714window.clog=MMI.Debug.log;window.clarg=MMI.Debug.logArgs;window.cclear=MMI.Debug.clear;window.cerror=MMI.Debug.error;window.cwarn=MMI.Debug.warn;window.cinfo=MMI.Debug.info;},_hasConsole:function(){return MMI.Debug.config.hasConsole;},_hasConsoleLog:function(){return MMI.Debug.config.hasConsoleLog;},_hasConsoleClear:function(){return MMI.Debug.config.hasConsoleClear;},_hasConsoleError:function(){return MMI.Debug.config.hasConsoleError;},_hasConsoleWarn:function(){return MMI.Debug.config.hasConsoleWarn;},_hasConsoleInfo:function(){return MMI.Debug.config.hasConsoleInfo;},_getDefaultArgumentDetailLevel:function(){return MMI.Debug.config.defaultArgumentDetailLevel;},_getConsoleActionMode:function(argLen,outputType){if(argLen&&MMI.Debug.config[outputType]&&MMI.Debug._hasConsole()){return 1;}
2715return false;},_getClogs:function(args){var clogs=[];var argsLength=args.length;if(argsLength&&['function','object'].indexOf(typeof(window.console.log))>=0){var scalarTypes=['string','boolean','number','undefined'];var previousClogItemType='';for(var i=argsLength;i>=1;i--){var clogItem=args[argsLength-i];var clogItemType=typeof(clogItem);if(scalarTypes.indexOf(clogItemType)>=0&&scalarTypes.indexOf(previousClogItemType)>=0){if(clogItemType=='boolean'){clogItem='('+(clogItem?'true':'false')+')';}else if(clogItemType=='undefined'){clogItem='(undefined)';}
2716clogs[clogs.length-1]+=': '+clogItem;}else{clogs.push(clogItem);}
2717previousClogItemType=clogItemType;}}
2718return clogs;},log:function(){var args=Array.prototype.slice.call(arguments);var clogs=MMI.Debug._getClogs(args);var argsLength=clogs.length;var mode=MMI.Debug._getConsoleActionMode(argsLength,'log');if(mode>0){if(MMI.Debug._hasConsoleLog()&&argsLength){try{console.log.apply(window,args);}catch(e){for(var i=0;i<args.length;i++){console.log(args[i]);}}}}},logFn:function(methodName,argsArray){var args=Array.prototype.slice.call(arguments);var argsLength=args.length;var mode=MMI.Debug._getConsoleActionMode(argsLength,'log');
2718if(mode>0){if(MMI.Debug._hasConsoleLog()){if(argsLength==2){clog(methodName+'() =>',argsArray);}else{clog(methodName+'();');}}}},clear:function(){if(MMI.Debug._hasConsoleClear()){console.clear();}},logArgs:function(args,detailLevel,methodName){var mode=MMI.Debug._getConsoleActionMode(arguments.length,'log');if(mode>0){if(MMI.Debug._hasConsoleLog()&&typeof(args)!='undefined'&&typeof(args['callee'])!='undefined'&&typeof(args['length'])!='undefined'){methodName=methodName?methodName:'unknown';var callee=args.callee.toString();detailLevel=(typeof(detailLevel)=='number')?detailLevel:MMI.Debug._getDefaultArgumentDetailLevel();if(detailLevel>0){console.log(methodName+callee.slice(9,callee.indexOf(')')+1)+' :: Received ['+args.length+'] Arguments');if(detailLevel>1){console.log(args);}}else{console.log(methodName+callee.slice(9,callee.indexOf('('))+' :: Received ['+args.length+'] Arguments');}}}},error:function(){var args=Array.prototype.slice.call(arguments);var argsLength=args.length;var mode=MMI.Debug._getConsoleActionMode(argsLength,'error');if(mode>0){if(MMI.Debug._hasConsoleError()&&argsLength){for(var i=argsLength;i>=1;i--){console.error(args[argsLength-i]);}}}},warn:function(){var args=Array.prototype.slice.call(arguments);var argsLength=args.length;var mode=MMI.Debug._getConsoleActionMode(argsLength,'warn');if(mode>0){if(MMI.Debug._hasConsoleWarn()&&argsLength){for(var i=argsLength;i>=1;i--){console.warn(args[argsLength-i]);}}}},info:function(){var args=Array.prototype.slice.call(arguments);var argsLength=args.length;var mode=MMI.Debug._getConsoleActionMode(argsLength,'info');if(mode>0){if(MMI.Debug._hasConsoleInfo()&&argsLength){for(var i=argsLength;i>=1;i--){console.info(args[argsLength-i]);}}}},timer:function(timerId,entryId,resetTimer){if(!timerId){cwarn('Invalid call to MMI.Debug.timer() - no timer id provided.');return;}
2719if(typeof(resetTimer)=='undefined'){resetTimer=false;}
2720var entryIdType=typeof(entryId);entryId=(entryIdType=='string'||entryIdType=='number')?': '+entryId:'';if(!MMI.Debug._timers.hasOwnProperty(timerId)||resetTimer){MMI.Debug._timers[timerId]=new Date();clog('Timer Started: '+timerId);return;}
2721var now=new Date();var difference=(now-MMI.Debug._timers[timerId])/ 1000;clog('Timer Checked: '+timerId+entryId+': '+difference);MMI.Debug._timers[timerId]=now;},logServerDebugData:function(json,ajaxOptions){var debugKey=json.debugKey;if(!debugKey){return false;}
2722if(jQuery.isPlainObject(ajaxOptions)&&jQuery.isPlainObject(ajaxOptions.rawData)&&jQuery.isPlainObject(ajaxOptions.rawData.json_formdata)){var formData=JSON.parse(ajaxOptions.rawData.json_formdata);jQuery.each(formData,function(key,value){ajaxOptions.rawData[key]=value;});}
2723this._serverDebugHistory.unshift({initialPageLoad:(ajaxOptions.initialPageLoad===true),debugKey:debugKey,json:json,ajaxOptions:ajaxOptions,mode:json.postdata.mode?json.postdata.mode:'display'});return true;},showDebugData:function(){var dialogOptions=[];dialogOptions=[{value:'',label:'Manual Debug Key Entry'}];var self=this;jQuery.each(this._serverDebugHistory,function(n,entry){var item={value:entry.debugKey};if(entry.ajaxOptions.initialPageLoad){item.label="Initial Page Load";}else{var ajaxData=entry.ajaxOptions.data;if(typeof(ajaxData)==='string'){item.label=entry.ajaxOptions.xhrId+" : "+ajaxData.substring(0,40)+'...';}else if(typeof(ajaxData)==='undefined'){cwarn('yikes- we got us problem here!',entry);item.label=entry.ajaxOptions.xhrId+" : "+entry.debugKey;}else{item.label=entry.ajaxOptions.xhrId+" : "+ajaxData.mode+' - '+ajaxData.view;}}
2724if(self._serverDebugHistory.length>1){dialogOptions.push(item);}else{dialogOptions.unshift(item);}});MMI.App.get().prompt({options:dialogOptions,message:"Which Debug Data?",fieldType:'select',callback:function(result,options){if(result.id==='ok'){var debugKey=result.value;MMI.Debug.loadDebugDataByDebugKey(debugKey);}}});},loadDebugDataByDebugKey:function(debugKey){if(!debugKey){debugKey=window.prompt('What Debug Key?','');if(!debugKey){return;}}
2725window.open(this.getDebugDataUrlForKey(debugKey));},getDebugDataUrlForKey:function(debugKey){return'/site/cache/public/debug/'+debugKey.substring(0,4)+'/'+debugKey+'.html';},loadDebugDataForInitialPageLoad:function(){if(this._serverDebugHistory&&this._serverDebugHistory.length){this.loadDebugDataByDebugKey(this._serverDebugHistory[this._serverDebugHistory.length-1].debugKey);}else{MMI.App.get().alert('Unable to find a debug key for the initial page load. Ensure debug is enabled for this site.');}},loadDebugForLastRequest:function(){if(this._serverDebugHistory&&this._serverDebugHistory.length){this.loadDebugDataByDebugKey(this._serverDebugHistory[0].debugKey);}else{MMI.App.get().alert('Unable to find a debug key for the most recent request. Ensure debug is enabled for this site.');}},loadDebugForLastRequestByMode:function(mode){var debugKey=null;if(this._serverDebugHistory&&this._serverDebugHistory.length){for(var i=0;i<this._serverDebugHistory.length;i++){if(!this._serverDebugHistory.hasOwnProperty(i)){continue;}
2726var value=this._serverDebugHistory[i];if(value.mode===mode){debugKey=value.debugKey;break;}}}
2727if(debugKey){this.loadDebugDataByDebugKey(debugKey);}else{MMI.App.get().alert('Unable to find a debug key for the most recent mode '+mode+' request. There might not be a request for this mode but also ensure debug is enabled for this site.');}},loadDebugForLastItemSaveRequest:function(){var debugKey=null;if(this._serverDebugHistory&&this._serverDebugHistory.length){for(var i=0;i<this._serverDebugHistory.length;i++){if(!this._serverDebugHistory.hasOwnProperty(i)){continue;}
2728var value=this._serverDebugHistory[i];if(value.mode==='edit'){var itemId=value.json.postdata.id;if(value.json.postdata.item&&value.json.postdata.item[itemId]){debugKey=value.debugKey;break;}}}}
2729if(debugKey){this.loadDebugDataByDebugKey(debugKey);}else{MMI.App.get().alert('Unable to find a debug key for the most recent item save request. There might not be a save item request but also ensure debug is enabled for this site.');}},loadWebDebugPage:function(){window.open('/site/cache/public/web_debug.html');},loadDeploymentDebugPage:function(){window.open('/site/cache/public/debug/upgrade.html');}};MMI.Debug.init();MMI.Debug.config.log=true;MMI.Debug.config.error=true;MMI.Debug.config.warn=true;MMI.Debug.config.info=true;var clog=MMI.Debug.log;var permaclog=MMI.Debug.log;var clogfn=MMI.Debug.logFn;var clarg=MMI.Debug.logArgs;var cclear=MMI.Debug.clear;var cerror=MMI.Debug.error;var cwarn=MMI.Debug.warn;var cinfo=MMI.Debug.info;var ctime=MMI.Debug.timer;
2730if(typeof(JSON)=='object'&&JSON){if(typeof(JSON.encode)!='function'){JSON.encode=function(){cwarn('JSON.encode() is probably not the function you were looking for. Try using JSON.stringify() instead.');return JSON.stringify.apply(this,arguments);};}
2731if(typeof(JSON.decode)!='function'){JSON.decode=function(){cwarn('JSON.decode() is probably not the function you were looking for. Try using JSON.parse() instead.');return JSON.parse.apply(this,arguments);};}}
2732MMI.Util={FILE_VALUE_REMOVE_FILE:-1,FILE_VALUE_INERT:'',FILE_VALUE_SET_FIELD:1,FILE_VALUE_READ_INPUT_STREAM:2,FILE_VALUE_KEEP_CURRENT:3,ITEM_ID_SKIP_SAVE:'ITEM_ID_SKIP_SAVE',namespace:function(){var scope=window;for(var argIndex=0;argIndex<arguments.length;argIndex++){var arg=arguments[argIndex];if(typeof(arg)=='object'&&arg!==null){scope=arg;continue;}
2733if(typeof(arg)!='string'){continue;}
2734var namespaceComponents=arg.split('.');var sourceObject=scope[namespaceComponents[0]]=scope[namespaceComponents[0]]||{};var childNamespaceComponents=namespaceComponents.slice(1);for(var childNamespaceName in childNamespaceComponents){if(childNamespaceComponents.hasOwnProperty(childNamespaceName)){var childNamespace=childNamespaceComponents[childNamespaceName];sourceObject=sourceObject[childNamespace]=sourceObject[childNamespace]||{};}}}},namespaceExists:function(){var scope=window;var loopRestrictor=1;for(var argIndex=0;argIndex<loopRestrictor;argIndex++){var arg=arguments[argIndex];if(argIndex<1&&typeof(arg)=='object'&&arg!==null){scope=arg;loopRestrictor=2;continue;}
2735if(typeof(arg)!='string'){return false;}
2736var namespaceComponents=arg.split('.');var sourceObject=scope[namespaceComponents[0]]=scope[namespaceComponents[0]]||{};var childNamespaceComponents=namespaceComponents.slice(1);for(var childNamespaceName in childNamespaceComponents){if(childNamespaceComponents.hasOwnProperty(childNamespaceName)){var nextChildNamespaceName=childNamespaceComponents[childNamespaceName];if(!sourceObject.hasOwnProperty(nextChildNamespaceName)){return false;}
2737sourceObject=sourceObject[nextChildNamespaceName];}}}
2738return true;},getNamespace:function(){var scope=window;var loopRestrictor=1;for(var argIndex=0;argIndex<loopRestrictor;argIndex++){var arg=arguments[argIndex];if(argIndex<1&&typeof(arg)=='object'&&arg!==null){scope=arg;loopRestrictor=2;continue;}
2739if(typeof(arg)!='string'){return{};}
2740var namespaceComponents=arg.split('.');var sourceObject=scope[namespaceComponents[0]]=scope[namespaceComponents[0]]||{};var childNamespaceComponents=namespaceComponents.slice(1);for(var childNamespaceName in childNamespaceComponents){if(childNamespaceComponents.hasOwnProperty(childNamespaceName)){var nextChildNamespaceName=childNamespaceComponents[childNamespaceName];sourceObject=sourceObject[nextChildNamespaceName]=sourceObject[nextChildNamespaceName]||{};}}}
2741return sourceObject;},bind:function(fn,scope){cwarn('MMI.Util.bind() is deprecated. Use jQuery.proxy() instead.');return function(){return fn.apply(scope,arguments);};},injectDefaults:function(defaults,targetObject){targetObject=jQuery.extend({},defaults,targetObject);},compareVersions:function(versionA,comparisonOperator,versionB){var baseComparison=MMI.Util._compareVersionStrings(versionA,versionB);switch(comparisonOperator){case'=':return(baseComparison==0);break;case'!=':return(baseComparison!=0);break;case'<':return(baseComparison==-1);break;case'>':return(baseComparison==1);break;case'<=':return(baseComparison==-1||baseComparison==0);break;case'>=':return(baseComparison==1||baseComparison==0);break;default:cwarn('Invalid version comparison operator: '+comparisonOperator);return null;break;}},_compareVersionStrings:function(versionA,versionB){var versionPartsA=versionA.toString().split('.');var versionPartsB=versionB.toString().split('.');for(var i=0;i<Math.max(versionPartsA.length,versionPartsB.length);i++){if(!versionPartsA.hasOwnProperty(i)){versionPartsA[i]=0;}else{versionPartsA[i]=parseInt(versionPartsA,10);}
2742if(!versionPartsB.hasOwnProperty(i)){versionPartsB[i]=0;}else{versionPartsB[i]=parseInt(versionPartsB,10);}
2743if(versionPartsA[i]<versionPartsB[i]){return-1;}else if(versionPartsA[i]>versionPartsB[i]){return 1;}}
2744return 0;},trim:function(string,characterList){if(!string){return'';}
2745var whitespace;var stringLength=0;var i=0;string+='';if(!characterList){whitespace=" \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000";}else{characterList+='';whitespace=characterList.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g,'$1');}
2746stringLength=string.length;for(i=0;i<stringLength;i++){if(whitespace.indexOf(string.charAt(i))===-1){string=string.substring(i);break;}}
2747stringLength=string.length;for(i=stringLength-1;i>=0;i--){if(whitespace.indexOf(string.charAt(i))===-1){string=string.substring(0,i+1);break;}}
2748return whitespace.indexOf(string.charAt(0))===-1?string:'';},getObjectSize:function(targetObject){var size=0;if(jQuery.isPlainObject(targetObject)){for(var key in targetObject){if(targetObject.hasOwnProperty(key)){size++;}}}else if(targetObject.hasOwnProperty('length')){return targetObject.length;}
2749return size;},arrayRemove:function(targetArray,fromIndex,toIndex){var rest=targetArray.slice((toIndex||fromIndex)+1||targetArray.length);targetArray.length=fromIndex<0?targetArray.length+fromIndex:fromIndex;return targetArray.push.apply(targetArray,rest);},arrayUnique:function(targetArray){targetArray=targetArray.concat();for(var i=0;i<targetArray.length;++i){for(var j=i+1;j<targetArray.length;++j){if(targetArray[i]===targetArray[j]){targetArray.splice(j--,1);}}}
2750return targetArray;},randomize:Eco.Util.getRandomString,getRandomNumberInRange:function(minimumValue,maximumValue){var randomValue=minimumValue+(Math.random()*(maximumValue-minimumValue));return Math.round(randomValue);},capitalizeWords:Eco.Util.capitalizeWords,capitalizeFirstWord:Eco.Util.capitalizeFirstWord,toCamelCase:Eco.Util.toCamelCase,toUnderscore:Eco.Util.toUnderscore,toWords:Eco.Util.toWords,parseUrl:function(url,urlComponentName){var key=['source','
2750scheme','authority','userInfo','user','pass','host','port','relative','path','directory','file','query','fragment'];var mode='php';var parser={php:/^(?:([^:\/?#]+):)?(?:\/\/()(?:(?:()(?:([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?()(?:(()(?:(?:[^?#\/]*\/)*)()(?:[^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,strict:/^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,loose:/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/\/?)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/};var urlParts=parser[mode].exec(url);var urlStack={};var i=14;while(i--){if(urlParts[i]){urlStack[key[i]]=urlParts[i];}}
2751if(urlComponentName){return urlStack[urlComponentName.replace('PHP_URL_','').toLowerCase()];}
2752delete urlStack.source;return urlStack;},getPageItemUrlFromJson:function(json){if(!json||typeof(json)!=='object'){return false;}
2753if(!json.pageItemData||typeof(json.pageItemData)!=='object'){return false;}
2754if(json.pageItemData.item_seo_name){return'/content/'+json.pageItemData.item_seo_name;}else if(json.pageItemData.item_id){return'/page/'+json.pageItemData.item_id;}
2755return false;},getDynamicImageUrl:function(itemId,options){var defaultOptions={itemId:itemId,width:false,height:false,quality:100,fieldList:'fieldList',field:'file_path',scale:'down',extension:'jpg',subDomain:false};var opts=jQuery.extend(true,defaultOptions,options);if(!opts.itemId||opts.width===false||opts.height===false){cwarn('Missing or invalid option(s) detected. width, height, are required. The options provided were: ',options);}
2756if(opts.extension[0]!='.'){opts.extension='.'+opts.extension;}
2757var imageSystemOptions=[opts.versionId,opts.width,opts.height,opts.scale,opts.quality];opts.itemId=parseInt(opts.itemId);var topDirectoryAsInt=Math.floor(opts.itemId / 1000);var topLevelDirectory;if(topDirectoryAsInt<10){topLevelDirectory='0'+topDirectoryAsInt;}else{topLevelDirectory=topDirectoryAsInt;}
2758var urlParts=['site/cache/public/images',topLevelDirectory,opts.itemId,opts.fieldList,opts.field,imageSystemOptions.join('__')];var imageUrl='/'+urlParts.join('/')+opts.extension;if(typeof(opts.subDomain)=='string'&&opts.subDomain){var pageUrlParts=window.location.href.split('//');pageUrlParts[1]=pageUrlParts[1].split('/').shift();imageUrl=pageUrlParts[0]+'//'+opts.subDomain+'.'+pageUrlParts[1]+imageUrl;}
2759return imageUrl;},triggerDownload:function(url){if(arguments.length>1){var itemId=arguments[0];var fieldName=arguments[1];url='/download/'+itemId+'/'+fieldName;}
2760MMI.Util.browserPopup(url,'mmi_download_'+MMI.Util.randomize(),10,10,{resizable:0,menubar:0,toolbar:0,status:0,titlebar:0,scrollbars:0,fullscreen:0});jQuery(window).focus();},browserPopup:function(url,windowName,width,height,xPosition,yPosition,options){if(!options){options={resizable:1,menubar:1,toolbar:1,status:1,titlebar:1,scrollbars:1,fullscreen:0};}
2761if(window.innerWidth){options.width=width||window.innerWidth-50;options.height=height||window.innerHeight-50;if(isNaN(xPosition)||xPosition<0){options.x_pos=(window.innerWidth-options.width)/ 2;}
2762if(isNaN(yPosition)||yPosition<0){options.y_pos=((window.innerHeight-options.height)/ 4)-50;}}
2763else{options.width=width||window.screen.width-50;options.height=height||window.screen.height-50;if(isNaN(xPosition)||xPosition<0){options.x_pos=(parseInt(window.screen.width)-options.width)/ 2;}
2764if(isNaN(yPosition)||yPosition<0){options.y_pos=((parseInt(window.screen.height)-options.height)/ 2)-50;}}
2765var key;var totalOptions=0;for(key in options){totalOptions++;}
2766var window_attributes_str='';var attributeCounter=0;for(key in options){if(!options.hasOwnProperty(key)){continue;}
2767var value=options[key];if(value===true){value='1';}
2768else if(value===false||value===null||value===undefined){value='0';}
2769window_attributes_str+=key+'='+value;if(attributeCounter<(totalOptions)){window_attributes_str+=',';}
2770attributeCounter++;}
2771function replaceAll(target,replacement,string){var matchIndex=string.indexOf(target);while(matchIndex!=-1){string=string.replace(target,replacement);matchIndex=string.indexOf(target);}}
2772windowName=windowName?replaceAll('-','_',windowName):'_blank';windowName=windowName?replaceAll(' ','_',windowName):'_blank';var popupWindow=window.open(url,windowName,window_attributes_str);return popupWindow;}
2772,writeCookie:function(cookieOptions){var defaultCookieOptions={name:false,value:'',timeToLive:'',path:'/'};cookieOptions=jQuery.extend({},defaultCookieOptions,cookieOptions);cookieOptions.value=encodeURIComponent(cookieOptions.value);var expires='';if(cookieOptions.timeToLive){var date=new Date();date.setTime(date.getTime()+((cookieOptions.timeToLive>=1000)?cookieOptions.timeToLive:(cookieOptions.timeToLive*1000)));expires='; expires='+date.toGMTString();}
2773document.cookie=cookieOptions.name+'='+cookieOptions.value+expires+'; path='+((cookieOptions.path)?cookieOptions.path:'/');},readCookie:function(cookieName){var nameToken=cookieName+'=';var cookieStackString=document.cookie.split(';');for(var iterator=0;iterator<cookieStackString.length;iterator++){var cookieValue=cookieStackString[iterator];const cookieNameValue=cookieValue.trim();if(cookieNameValue.startsWith(nameToken)){return decodeURIComponent(cookieNameValue.substring(nameToken.length,cookieNameValue.length));}}
2774return undefined;},deleteCookie:function(cookieName){MMI.Util.writeCookie({name:cookieName,value:'',timeToLive:-(60*60*24)});},cookieExists:function(cookieName){var nameToken=cookieName+'=';var cookieStackString=document.cookie.split(';');for(var iterator=0;iterator<cookieStackString.length;iterator++){var cookieValue=cookieStackString[iterator];const cookieNameValue=cookieValue.trim();if(cookieNameValue.startsWith(nameToken)){return true;}}
2775return false;},getRedFromHexColor:function(hexColor){},getGreenFromHexColor:function(hexColor){},getBlueFromHexColor:function(hexColor){},getHexColorParts:function(hexColor){},getHexColorFromRgb:function(red,green,blue){},_getHexColorFromRgb:function(rgbString,red,green,blue){},getHexColorFromRgbString:function(rgbString){},getHexColorValue:function(value){value=parseInt(value,10);if(isNaN(value)){return'00';}
2776value=Math.max(0,Math.min(value,255));return'0123456789ABCDEF'.charAt((value-value%16)/ 16)+'0123456789ABCDEF'.charAt(value%16);},hexToR:function(h){return parseInt((MMI.Util.cutHex(h)).substring(0,2),16);},hexToG:function(h){return parseInt((MMI.Util.cutHex(h)).substring(2,4),16);},hexToB:function(h){return parseInt((MMI.Util.cutHex(h)).substring(4,6),16);},cutHex:function(h){return(h.charAt(0)=="#")?h.substring(1,7):h;},rgbToHex:function(R,G,B){return MMI.Util.toHex(R)+MMI.Util.toHex(G)+MMI.Util.toHex(B);},_rgb2hex:function(rgb_string,r,g,b){var rgb=(1<<24)|(parseInt(r)<<16)|(parseInt(g)<<8)|parseInt(b);return'#'+rgb.toString(16).substr(1);},stringRGB2HEX:function(string){if(typeof string==='string'){string=string.replace(/rgb\((\d+),\s*(\d+),\s*(\d+)\)/g,MMI.Util._rgb2hex);}
2777return string;},toHex:function(n){cwarn('MMI.Util.toHex() deprecated in favor of MMI.Util.getHexColorValue()');return MMI.Util.getHexColorValue(n);},isValidEmail:function(email){var rawEmail=email;email=Eco.Util.Cleaning.trim(email);var resultCode=Eco.Util.Validation.email(new Eco.Value(rawEmail,email));return(resultCode===0);},isValidUrl:function(url){var rawUrl=url;url=Eco.Util.Cleaning.trim(url);var resultCode=Eco.Util.Validation.url(new Eco.Value(rawUrl,url));return(resultCode===0);},isValidPhoneNumber:function(phone){var rawPhone=phone;phone=Eco.Util.Cleaning.trim(phone);var resultCode=Eco.Util.Validation.phone(new Eco.Value(rawPhone,phone));return(resultCode===0);},getLiveEventHandlers:function(jqel,eventName,closestElement,directlyOnElement){eventName=eventName.toLowerCase();var eventHandlerString='';if(directlyOnElement===true){eventHandlerString=jqel.data('live_'+eventName+'_handler');}else{eventHandlerString=jqel.mmiData('live_'+eventName+'_handler');}
2778if(eventHandlerString){return eventHandlerString.split(';');}
2779return[];},setLiveEventHandlers:function(jqel,eventName,eventHandlers,directlyOnElement){eventName=eventName.toLowerCase();if(typeof(eventHandlers)!='string'){if(!jQuery.isArray(eventHandlers)){return;}
2780eventHandlers=eventHandlers.join(';');}
2781if(directlyOnElement===true){jqel.addClass('live_'+eventName).data('live_'+eventName+'_handler',eventHandlers);}else{jqel.addClass('live_'+eventName).mmiData('live_'+eventName+'_handler',eventHandlers);}},prependLiveEventHandlers:function(jqel,eventName,eventHandlers,directlyOnElement){if(typeof(eventHandlers)=='string'){eventHandlers=eventHandlers.split(';');}else if(!jQuery.isArray(eventHandlers)){return;}
2782var allEventHandlers=MMI.Util.getLiveEventHandlers(jqel,eventName,directlyOnElement);jQuery.each(eventHandlers,function(index,eventHandlerName){if(jQuery.inArray(eventHandlerName,allEventHandlers)==-1){allEventHandlers.unshift(eventHandlerName);}});MMI.Util.setLiveEventHandlers(jqel,eventName,allEventHandlers,directlyOnElement);jqel.addClass('live_'+eventName);},appendLiveEventHandlers:function(jqel,eventName,eventHandlers,directlyOnElement){if(typeof(eventHandlers)=='string'){eventHandlers=eventHandlers.split(';');}else if(!jQuery.isArray(eventHandlers)){return;}
2783var allEventHandlers=MMI.Util.getLiveEventHandlers(jqel,eventName,directlyOnElement);jQuery.each(eventHandlers,function(index,eventHandlerName){if(jQuery.inArray(eventHandlerName,allEventHandlers)==-1){allEventHandlers.push(eventHandlerName);}});MMI.Util.setLiveEventHandlers(jqel,eventName,allEventHandlers,directlyOnElement);jqel.addClass('live_'+eventName);},isElementVisible:function(jqel,jqel_relativeParent){jqel=jQuery(jqel);if(!jqel.is(':visible')){if(jqel.get(0).tagName.toLowerCase()=='input'){if(!jqel.parent().is(':visible')){return false;}}else{return false;}}
2784if(jqel.get(0).tagName.toLowerCase()=='input'){jqel=jqel.parent();}
2785var jqelOffset=jqel.offset();var size={height:jQuery(window).height(),width:jQuery(window).width()};if(jqel_relativeParent&&jqel_relativeParent.size()){var offset=jqel_relativeParent.offset();size.width=jqel_relativeParent.width();size.height=jqel_relativeParent.height();jqelOffset.top=jqelOffset.top-offset.top;jqelOffset.left=jqelOffset.left-offset.jqelOffset;}else{jqelOffset.top=jqelOffset.top-jQuery(window).scrollTop();}
2786if(jqelOffset.top>size.height||jqelOffset.top+jqel.height()<0){return false;}
2787if(jqelOffset.left>size.width||jqelOffset.left+jqel.width()<0){return false;}
2788return true;},getTransitionDuration:function(options){var defaultOptions={jqel:false,includeDelay:false};options=jQuery.extend({},defaultOptions,options);var jqel=jQuery(options.jqel);if(!Basix.isFunction(window.getComputedStyle)){return false;}
2789var style=window.getComputedStyle(jqel.get(0));var properties=['transition','WebkitTransition','msTransition','MozTransition','OTransition','animation','WebkitAnimation'];var durationStyle='';var delayStyle='';jQuery.each(properties,function(index,property){if(typeof(style[property])!='undefined'){durationStyle=style[property+'Duration'];delayStyle=style[property+'Delay'];}});var duration=0;if(durationStyle){var durations=durationStyle.replace(' ','').split(',');jQuery.each(durations,function(index,tmpDuration){tmpDuration=(tmpDuration.indexOf('ms')>-1)?parseFloat(tmpDuration):parseFloat(tmpDuration)*1000;if(duration<tmpDuration){duration=tmpDuration;}});}
2790var delay=0;if(delayStyle){var delays=delayStyle.replace(' ','').split(',');jQuery.each(delays,function(index,tmpDelay){tmpDelay=(tmpDelay.indexOf('ms')>-1)?parseFloat(tmpDelay):parseFloat(tmpDelay)*1000;if(duration<tmpDelay){duration=tmpDelay;}});}
2791return options.includeDelay?duration+delay:duration;},md5:function(str){var xl;var rotateLeft=function(lValue,iShiftBits){return(lValue<<iShiftBits)|(lValue>>>(32-iShiftBits));};var addUnsigned=function(lX,lY){var lX4,lY4,lX8,lY8,lResult;lX8=(lX&0x80000000);lY8=(lY&0x80000000);lX4=(lX&0x40000000);
vendor: 5,718 bytes, lines 2791-2799
2791lY4=(lY&0x40000000);lResult=(lX&0x3FFFFFFF)+(lY&0x3FFFFFFF);if(lX4&lY4){return(lResult^0x80000000^lX8^lY8);}
2792if(lX4|lY4){if(lResult&0x40000000){return(lResult^0xC0000000^lX8^lY8);}else{return(lResult^0x40000000^lX8^lY8);}}else{return(lResult^lX8^lY8);}};var _F=function(x,y,z){return(x&y)|((~x)&z);};var _G=function(x,y,z){return(x&z)|(y&(~z));};var _H=function(x,y,z){return(x^y^z);};var _I=function(x,y,z){return(y^(x|(~z)));};var _FF=function(a,b,c,d,x,s,ac){a=addUnsigned(a,addUnsigned(addUnsigned(_F(b,c,d),x),ac));return addUnsigned(rotateLeft(a,s),b);};var _GG=function(a,b,c,d,x,s,ac){a=addUnsigned(a,addUnsigned(addUnsigned(_G(b,c,d),x),ac));return addUnsigned(rotateLeft(a,s),b);};var _HH=function(a,b,c,d,x,s,ac){a=addUnsigned(a,addUnsigned(addUnsigned(_H(b,c,d),x),ac));return addUnsigned(rotateLeft(a,s),b);};var _II=function(a,b,c,d,x,s,ac){a=addUnsigned(a,addUnsigned(addUnsigned(_I(b,c,d),x),ac));return addUnsigned(rotateLeft(a,s),b);};var convertToWordArray=function(str){var lWordCount;var lMessageLength=str.length;var lNumberOfWords_temp1=lMessageLength+8;var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1%64))/ 64;var lNumberOfWords=(lNumberOfWords_temp2+1)*16;var lWordArray=new Array(lNumberOfWords-1);var lBytePosition=0;var lByteCount=0;while(lByteCount<lMessageLength){lWordCount=(lByteCount-(lByteCount%4))/ 4;lBytePosition=(lByteCount%4)*8;lWordArray[lWordCount]=(lWordArray[lWordCount]|(str.charCodeAt(lByteCount)<<lBytePosition));lByteCount++;}
2793lWordCount=(lByteCount-(lByteCount%4))/ 4;lBytePosition=(lByteCount%4)*8;lWordArray[lWordCount]=lWordArray[lWordCount]|(0x80<<lBytePosition);lWordArray[lNumberOfWords-2]=lMessageLength<<3;lWordArray[lNumberOfWords-1]=lMessageLength>>>29;return lWordArray;};var wordToHex=function(lValue){var wordToHexValue="",wordToHexValue_temp="",lByte,lCount;for(lCount=0;lCount<=3;lCount++){lByte=(lValue>>>(lCount*8))&255;wordToHexValue_temp="0"+lByte.toString(16);wordToHexValue=wordToHexValue+wordToHexValue_temp.substr(wordToHexValue_temp.length-2,2);}
2794return wordToHexValue;};var x=[],k,AA,BB,CC,DD,a,b,c,d,S11=7,S12=12,S13=17,S14=22,S21=5,S22=9,S23=14,S24=20,S31=4,S32=11,S33=16,S34=23,S41=6,S42=10,S43=15,S44=21;str=this.utf8_encode(str);x=convertToWordArray(str);a=0x67452301;b=0xEFCDAB89;c=0x98BADCFE;d=0x10325476;xl=x.length;for(k=0;k<xl;k+=16){AA=a;BB=b;CC=c;DD=d;a=_FF(a,b,c,d,x[k+0],S11,0xD76AA478);d=_FF(d,a,b,c,x[k+1],S12,0xE8C7B756);c=_FF(c,d,a,b,x[k+2],S13,0x242070DB);b=_FF(b,c,d,a,x[k+3],S14,0xC1BDCEEE);a=_FF(a,b,c,d,x[k+4],S11,0xF57C0FAF);d=_FF(d,a,b,c,x[k+5],S12,0x4787C62A);c=_FF(c,d,a,b,x[k+6],S13,0xA8304613);b=_FF(b,c,d,a,x[k+7],S14,0xFD469501);a=_FF(a,b,c,d,x[k+8],S11,0x698098D8);d=_FF(d,a,b,c,x[k+9],S12,0x8B44F7AF);c=_FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);b=_FF(b,c,d,a,x[k+11],S14,0x895CD7BE);a=_FF(a,b,c,d,x[k+12],S11,0x6B901122);d=_FF(d,a,b,c,x[k+13],S12,0xFD987193);c=_FF(c,d,a,b,x[k+14],S13,0xA679438E);b=_FF(b,c,d,a,x[k+15],S14,0x49B40821);a=_GG(a,b,c,d,x[k+1],S21,0xF61E2562);d=_GG(d,a,b,c,x[k+6],S22,0xC040B340);c=_GG(c,d,a,b,x[k+11],S23,0x265E5A51);b=_GG(b,c,d,a,x[k+0],S24,0xE9B6C7AA);a=_GG(a,b,c,d,x[k+5],S21,0xD62F105D);d=_GG(d,a,b,c,x[k+10],S22,0x2441453);c=_GG(c,d,a,b,x[k+15],S23,0xD8A1E681);b=_GG(b,c,d,a,x[k+4],S24,0xE7D3FBC8);a=_GG(a,b,c,d,x[k+9],S21,0x21E1CDE6);d=_GG(d,a,b,c,x[k+14],S22,0xC33707D6);c=_GG(c,d,a,b,x[k+3],S23,0xF4D50D87);b=_GG(b,c,d,a,x[k+8],S24,0x455A14ED);a=_GG(a,b,c,d,x[k+13],S21,0xA9E3E905);d=_GG(d,a,b,c,x[k+2],S22,0xFCEFA3F8);c=_GG(c,d,a,b,x[k+7],S23,0x676F02D9);b=_GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);a=_HH(a,b,c,d,x[k+5],S31,0xFFFA3942);d=_HH(d,a,b,c,x[k+8],S32,0x8771F681);c=_HH(c,d,a,b,x[k+11],S33,0x6D9D6122);b=_HH(b,c,d,a,x[k+14],S34,0xFDE5380C);a=_HH(a,b,c,d,x[k+1],S31,0xA4BEEA44);d=_HH(d,a,b,c,x[k+4],S32,0x4BDECFA9);c=_HH(c,d,a,b,x[k+7],S33,0xF6BB4B60);b=_HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);a=_HH(a,b,c,d,x[k+13],S31,0x289B7EC6);d=_HH(d,a,b,c,x[k+0],S32,0xEAA127FA);c=_HH(c,d,a,b,x[k+3],S33,0xD4EF3085);b=_HH(b,c,d,a,x[k+6],S34,0x4881D05);a=_HH(a,b,c,d,x[k+9],S31,0xD9D4D039);d=_HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);c=_HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);b=_HH(b,c,d,a,x[k+2],S34,0xC4AC5665);a=_II(a,b,c,d,x[k+0],S41,0xF4292244);d=_II(d,a,b,c,x[k+7],S42,0x432AFF97);c=_II(c,d,a,b,x[k+14],S43,0xAB9423A7);b=_II(b,c,d,a,x[k+5],S44,0xFC93A039);a=_II(a,b,c,d,x[k+12],S41,0x655B59C3);d=_II(d,a,b,c,x[k+3],S42,0x8F0CCC92);c=_II(c,d,a,b,x[k+10],S43,0xFFEFF47D);b=_II(b,c,d,a,x[k+1],S44,0x85845DD1);a=_II(a,b,c,d,x[k+8],S41,0x6FA87E4F);d=_II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);c=_II(c,d,a,b,x[k+6],S43,0xA3014314);b=_II(b,c,d,a,x[k+13],S44,0x4E0811A1);a=_II(a,b,c,d,x[k+4],S41,0xF7537E82);d=_II(d,a,b,c,x[k+11],S42,0xBD3AF235);c=_II(c,d,a,b,x[k+2],S43,0x2AD7D2BB);b=_II(b,c,d,a,x[k+9],S44,0xEB86D391);a=addUnsigned(a,AA);b=addUnsigned(b,BB);c=addUnsigned(c,CC);d=addUnsigned(d,DD);}
2795var temp=wordToHex(a)+wordToHex(b)+wordToHex(c)+wordToHex(d);return temp.toLowerCase();},utf8_encode:function(argString){if(argString===null||typeof argString==="undefined"){return"";}
2796var string=(argString+'');var utftext='',start,end,stringl=0;start=end=0;stringl=string.length;for(var n=0;n<stringl;n++){var c1=string.charCodeAt(n);var enc=null;if(c1<128){end++;}else if(c1>127&&c1<2048){enc=String.fromCharCode((c1>>6)|192,(c1&63)|128);}else if((c1&0xF800)!=0xD800){enc=String.fromCharCode((c1>>12)|224,((c1>>6)&63)|128,(c1&63)|128);}else{if((c1&0xFC00)!=0xD800){throw new RangeError("Unmatched trail surrogate at "+n);}
2797var c2=string.charCodeAt(++n);if((c2&0xFC00)!=0xDC00){throw new RangeError("Unmatched lead surrogate at "+(n-1));}
2798c1=((c1&0x3FF)<<10)+(c2&0x3FF)+0x10000;enc=String.fromCharCode((c1>>18)|240,((c1>>12)&63)|128,((c1>>6)&63)|128,(c1&63)|128);}
2799if(enc!==null){if(end>
2799start){utftext+=string.slice(start,end);}
2800utftext+=enc;start=end=n+1;}}
2801if(end>start){utftext+=string.slice(start,stringl);}
2802return utftext;},getUniversalDate:function(dateOrTimestamp){var date;if(dateOrTimestamp instanceof Date){date=dateOrTimestamp;}else if(!isNaN(parseInt(dateOrTimestamp,10))){date=new Date(parseInt(dateOrTimestamp,10)*1000);}else{date=new Date();}
2803date.setHours(23);var baseTimestampSeconds=date.getTime()/ 1000;var baseTimezoneOffsetSeconds=date.getTimezoneOffset()*60;var adjustedTimestamp=baseTimestampSeconds-baseTimezoneOffsetSeconds;date.setTime(adjustedTimestamp*1000);date.setMinutes(59);date.setSeconds(0);date.setMilliseconds(0);return date;},sortElementsByText:function(jqel){var listitems=jqel.children().get();jqel.html('');listitems.sort(function(a,b){var compA=$(a).text().toUpperCase();var compB=$(b).text().toUpperCase();return(compA<compB)?-1:(compA>compB)?1:0;});jQuery.each(listitems,function(idx,itm){jqel.append(itm);});return jqel;},findHighestZindex:function(selector){if(!selector){selector='body *';}
2804var maxZ=Math.max.apply(null,jQuery(selector).map(function(){var z;return isNaN(z=parseInt($(this).css("z-index"),10))?0:z;}));return maxZ;},delayUsingPromise:async function(ms=1000){const p=new Promise(resolve=>{setTimeout(resolve,ms);});return p;}};
2805
2806MMI.Util.namespace('MMI.Time');MMI.Time={Minute:{seconds:60},Hour:{seconds:3600,minutes:60},Day:{seconds:86400,minutes:1440,hours:24},Week:{seconds:604800,minutes:10080,hours:168,days:7}};
2807MMI.stdClass=Eco.BaseClass;
2808MMI.Util.namespace('MMI.App');MMI.App={_instance:false,_instanceSet:false,_initCallbacks:[],setInstance:function(instance){if(MMI.App._instanceSet===false){MMI.App._instance=instance;MMI.App._instanceSet=true;for(var key in MMI.App._initCallbacks){if(MMI.App._initCallbacks.hasOwnProperty(key)){MMI.App._initCallbacks[key](instance);}}}else{throw Error('Application instance already set. Cannot set instance again. Use MMI.App.getInstance() to get a reference to the current application instance.');}},getInstance:function(){return MMI.App._instance;},get:function(){return MMI.App._instance;},registerInitCallback:function(callback){if(typeof(callback)!=='function'){permaclog(callback);cwarn('Invalid callback type '+typeof(callback)+' passed to MMI.App.registerInitCallback()');return false;}
2809if(MMI.App._instance===false){MMI.App._initCallbacks[MMI.App._initCallbacks.length]=callback;}else{callback(MMI.App._instance);}},initializeApplication:function(appModuleClass){var appCode=jQuery.extend({},appModuleClass.Core);var moduleNames=[];jQuery.each(appModuleClass,function(moduleName,moduleCode){if(moduleName.toLowerCase()!='core'){if(moduleCode.hasOwnProperty('__construct')){moduleCode['__'+moduleName]=moduleCode.__construct;delete moduleCode.__construct;}
2810if(moduleCode.hasOwnProperty('__documentReady')){cinfo('Found special document ready');moduleCode['__'+moduleName+'DocumentReady']=moduleCode.__documentReady;delete moduleCode.__documentReady;}
2811appCode=jQuery.extend(appCode,moduleCode);}
2812moduleNames.push(moduleName);});appModuleClass._moduleMixer=MMI.App.Core.extend(appCode);var app=new appModuleClass._moduleMixer();app.__applicationModuleNames=moduleNames;jQuery.each(appModuleClass,function(moduleName,moduleCode){var pseudoConstructorName='__'+moduleName;if(typeof(app[pseudoConstructorName])=='function'){app[pseudoConstructorName]();}});},appendModule:function(moduleObjectCode){if(MMI.App._instance===false){return;}
2813var moduleObject=Basix.extend(Basix.EXTEND_RECURSIVE,{},moduleObjectCode);Basix.extend(MMI.App._instance,moduleObject);if(MMI.App._instance.__appended instanceof Function){MMI.App._instance.__appended();}}};
2814MMI.Util.namespace('MMI.Settings');MMI.Settings={_settings:false,loadSettings:function(){var jqel_settingsBlock=jQuery('.mmiSiteSettings');if(jqel_settingsBlock.size()){this._settings=jqel_settingsBlock.data('settings');jqel_settingsBlock.remove();}
2815if(this._settings){return;}
2816var ajaxData={mode:'display',view:'site_settings'};MMI.App.get().ajax({data:ajaxData,async:false,success:function(json,success,xhr){var settings=json['siteSettings'];
2816if(settings){MMI.Settings._settings=settings;}}});},getSetting:function(settingGroup,settingName,defaultValue){if(!Basix.isPlainObject(this._settings)){this.loadSettings();if(!this._settings){cerror('Settings failed to load');return defaultValue;}}
2817if(!this._settings.hasOwnProperty(settingGroup)||!Basix.isPlainObject(this._settings[settingGroup])){return defaultValue;}
2818if(!this._settings[settingGroup].hasOwnProperty(settingName)||typeof(this._settings[settingGroup][settingName])=='undefined'){return defaultValue;}
2819return this._settings[settingGroup][settingName];},getSettingOrData:function(settingGroup,settingName,pageData,defaultValue){var settingKey=settingGroup+'__'+settingName;if(data[settingKey]){return data[settingKey];}
2820var settingValue=this.getSetting(settingGroup,settingName);if(settingValue!==null){return settingValue;}
2821return defaultValue;}};
2822MMI.Util.namespace('MMI.App.Modules.Ajax');MMI.App.Modules.Ajax={_debugNextAjaxRequest:false,_debugAjaxRequestByXhrId:[],_defaultUrl:'/',__construct:function(){this._defaultAjaxAttitude='json';this._ajaxErrorMessage='Oops. Something didn&rsquo;t go as planned. Please try again.';this._ajaxRequestStack={};this._ajaxRequestQueue={};this._stateManager={url:'',pathname:'',hash:'',search:''};this._hasStateManager=(typeof(window.history.pushState)==='function');this._webkitStateManagerWorkAroundComplete=false;jQuery.ajaxTransport("script",function(s){if(s.crossDomain||s.scriptAttrs){var script,callback;return{send:function(_,complete){script=jQuery("<script>").attr(s.scriptAttrs||{}).prop({charset:s.scriptCharset,src:s.url}).on("load error",callback=function(evt){script.remove();callback=null;if(evt){complete(evt.type==="error"?404:200,evt.type);}});document.head.appendChild(script[0]);},abort:function(){if(callback){callback();}}};}});},__appReady:function(){this.enableFeature('MMI.App.TweakAjaxData');this.registerLiveEvents('sessionTimeout'.toLowerCase());},__documentReady:function(){},_setUpStateManager:function(){},addAjaxXhrIdToDebugList:function(xhrId){this._debugAjaxRequestByXhrId.push(xhrId);},removeAjaxXhrIdFromDebugList:function(xhrId){this._debugAjaxRequestByXhrId.indexOf(xhrId);},hasStateManager:function(){return this._hasStateManager;},setAjaxErrorMessage:function(errorMessage){this._ajaxErrorMessage=errorMessage;},getAjaxErrorMessage:function(json){if(jQuery.isPlainObject(json)&&jQuery.isArray(json.allErrorMessages)&&json.allErrorMessages.length>0){return json.allErrorMessages[json.allErrorMessages.length-1];}
2823var errorMessage=this._ajaxErrorMessage;if(jQuery('body').data('isSuperAdmin')){errorMessage=this._getCleanErrorMessage(json);}
2824return errorMessage;},abortAjaxRequest:function(xhrId){cinfo('abortAjaxRequest: '+xhrId);if(typeof(this._ajaxRequestStack[xhrId])==='object'){this._ajaxRequestStack[xhrId].abort();return true;}
2825return false;},queueAjaxRequest:function(ajaxOptions){cinfo('queueAjaxRequest: '+ajaxOptions.xhrId);if(!jQuery.isArray(this._ajaxRequestQueue[ajaxOptions.xhrId])){this._ajaxRequestQueue[ajaxOptions.xhrId]=[];}else{if(ajaxOptions.maxQueueLength>-1&&this._ajaxRequestQueue[ajaxOptions.xhrId].length>=ajaxOptions.maxQueueLength){this._ajaxRequestQueue[ajaxOptions.xhrId].shift();}}
2826this._ajaxRequestQueue[ajaxOptions.xhrId].push(ajaxOptions);},isSimilarRequestInProgress:function(xhrId){return this._ajaxRequestStack.hasOwnProperty(xhrId);},isSimilarRequestInQueue:function(xhrId){return this._ajaxRequestQueue.hasOwnProperty(xhrId);},getNextRequestInQueue:function(xhrId){cinfo('getNextRequestInQueue: '+xhrId);if(this.isSimilarRequestInQueue(xhrId)){var nextRequest=this._ajaxRequestQueue[xhrId].shift();if(!this._ajaxRequestQueue[xhrId].length){delete this._ajaxRequestQueue[xhrId];}
2827return nextRequest;}
2828return false;},setDefaultAjaxAttitude:function(attitude){this._defaultAjaxAttitude=attitude;},getDefaultAjaxAttitude:function(){return this._defaultAjaxAttitude;},ajaxDialog:function(ajaxOptions,optionsOrContent,dialogOptions){if(typeof(ajaxOptions)!=='object'||ajaxOptions===null){ajaxOptions={};}
2829if(typeof(ajaxOptions.jqel)!=='object'||ajaxOptions.jqel===null){if(typeof(optionsOrContent)!=='object'||optionsOrContent===null){optionsOrContent={content:optionsOrContent};}
2830if(typeof(optionsOrContent.baseDialogClass)==='undefined'){optionsOrContent.baseDialogClass='mmiDialog mmiAjaxDialog';}
2831ajaxOptions.jqel=this.dialog(optionsOrContent,dialogOptions);clog('dialog content is',ajaxOptions.jqel);}
2832this.ajax(ajaxOptions).always(function(){if(optionsOrContent.always){optionsOrContent.always(arguments);}});return ajaxOptions.jqel;},ajax:function(options){var defaultOptions={url:this._defaultUrl,type:'post',json:true,data:{},done:this.defaultAjaxDoneHandler,fail:this.defaultAjaxFailHandler,always:this.defaultAjaxAlwaysHandler,xhrId:false,queueByXhrId:false,maxQueueLength:-1,_requestAttemptsMade:0,maxRequestAttempts:1,isResend:false,loadPackagesOnDemand:true,loader
2832StyleTargets:false,jqel:false,replaceContent:true,replaceElement:false,autoAbortOnJqelRemoval:false,mmiAjaxLoaderClass:'mmiAjaxLoader',mmiAjaxDone:false,mmiAjaxFail:false,mmiAjaxAlways:false,mmiAjaxPassthroughOptions:{},mmiAjaxOriginalData:{},ajaxOptions:null};if(this._debugNextAjaxRequest===true&&options.xhrId!=='saveProfilePreferences'){this._debugNextAjaxRequest=false;debugger;}else if(options&&options.xhrId&&this._debugAjaxRequestByXhrId.indexOf(options.xhrId)>=0){debugger;}
2833var opts=jQuery.extend(true,defaultOptions,options);if(!jQuery.isPlainObject(opts.data)&&!(opts.data instanceof FormData)){opts.data={};}
2834if(opts.data instanceof FormData){if(!opts.data.get('attitude')){var defaultAttitude=this.getDefaultAjaxAttitude();opts.data.set('attitude',defaultAttitude);if(defaultAttitude==='json'){opts.json=true;}}}else{if(typeof(opts.data.attitude)==='undefined'){opts.data.attitude=this.getDefaultAjaxAttitude();if(opts.data.attitude==='json'){opts.json=true;}}}
2835if(typeof(this._ajaxViewOverride)==='string'&&this._ajaxViewOverride!==''){opts.data.view=this._ajaxViewOverride;}
2836if(opts.isResend!==true){opts._requestAttemptsMade++;if(opts._requestAttemptsMade>opts.maxRequestAttempts){return false;}}
2837if(typeof(opts.success)==='undefined'){opts.success=opts.done;}
2838if(typeof(opts.error)==='undefined'){opts.error=opts.fail;}
2839if(typeof(opts.complete)==='undefined'){opts.complete=opts.always;}
2840opts.done=undefined;opts.fail=undefined;opts.always=undefined;opts.jqel=jQuery(opts.jqel);opts.jqel.addClass(opts.mmiAjaxLoaderClass);if(jQuery.isPlainObject(opts.jqel.mmiData('smartBox'))){opts.jqel.parents('.smartBox:first').addClass(opts.mmiAjaxLoaderClass);}
2841opts.loaderStyleTargets=jQuery(opts.loaderStyleTargets);opts.loaderStyleTargets.addClass(opts.mmiAjaxLoaderClass);if(opts.isResend===true){for(var optionKey in opts){if(!opts.hasOwnProperty(optionKey)){continue;}
2842if(!defaultOptions.hasOwnProperty(optionKey)){delete opts[optionKey];}}}
2843if(!opts.xhrId){opts.xhrId=opts.url+'?'+jQuery.param(opts.data)+'&randomXhrId='+MMI.Util.randomize(5);}
2844if(opts.jqel.size()&&opts.autoAbortOnJqelRemoval){opts.jqel.data('xhrId',opts.xhrId);if(!opts.jqel.data('live_removing_handler')){opts.jqel.addClass('live_removing').data('live_removing_handler',function(event,app,jqel,data){app.abortAjaxRequest(data.xhrId);});}else{}}
2845if(typeof(opts.xhrId)==='string'){if(this.isSimilarRequestInProgress(opts.xhrId)&&opts._requestAttemptsMade<2){if(opts.queueByXhrId){opts._requestAttemptsMade--;this.queueAjaxRequest(opts);return null;}else{this.abortAjaxRequest(opts.xhrId);}}}
2846if(opts.loadPackagesOnDemand){if(opts.data instanceof FormData){opts.data.set('packagesHash',jQuery('body').data('packagesHash'));}else{opts.data.packagesHash=jQuery('body').data('packagesHash');}}
2847if(!(opts.data instanceof FormData)){opts.mmiAjaxOriginalData=jQuery.extend({},opts.data);if(this.isFeatureEnabled('MMI.App.TweakAjaxData')){opts=this._tweakAjaxData(opts);}}
2848var trackingData=this.getTrackingQueueForPost();if(trackingData&&trackingData.length){opts.data.ui_events=trackingData;this.clearTrackingQueue();}
2849opts.rawData=Basix.extend(Basix.EXTEND_RECURSIVE,{},opts.data);opts.ajaxOptions=Basix.extend({},opts);this._ajaxRequestStack[opts.xhrId]=jQuery.ajax(opts);return this._ajaxRequestStack[opts.xhrId];},_loadScriptUsingPromise:function(scriptUrl){return new Promise((resolve,reject)=>{const script=document.createElement('script');script.src=scriptUrl;script.async=true;script.onload=()=>resolve({script});script.onerror=()=>reject(new Error(`Failed to load script: ${scriptUrl}`));document.head.appendChild(script);});},_updatePackagesFromJsonUsingPromise:function(json){var jqel_body=jQuery('body');var newPackagesHash='';if(jQuery.isPlainObject(json.packages)&&json.packages.hash){newPackagesHash=json.packages.hash;if(jqel_body.data('packagesHash')===newPackagesHash){return Promise.resolve();}
2850jqel_body.data('packagesHash',newPackagesHash);var jqel_head=jQuery('head');jQuery.each(json.packages.css,(index,cssUrl)=>{jqel_head.append('<link rel="stylesheet" type="text/css" href="'+cssUrl+'" />');});const jsScriptPromises=[];jQuery.each(json.packages.js,(index,jsUrl)=>
2850{jsScriptPromises.push(this._loadScriptUsingPromise(jsUrl).catch(()=>{cwarn('Unable to load script: '+jsUrl);}));});return Promise.all(jsScriptPromises);}
2851return Promise.resolve();},getApiHttp:function(opts={}){return new genomeJsApi.Http({baseURL:`${window.location.origin}/api/v3`,...opts});},ajaxUsingPromise:function(data,ajaxOptions,options){options={...{loadPackagesOnDemand:true},...options};const defaultData={id:1,mode:'display',attitude:'json',};ajaxOptions={...{method:'POST',url:'/',data:defaultData},...ajaxOptions};if(data instanceof FormData){ajaxOptions.data=data;const initialIdValue=data.get('id');for(const[key,value]of Object.entries(defaultData)){if(!data.has(key)){data.set(key,value);}}
2852if(initialIdValue===null){ajaxOptions.data.delete('id');}}else{ajaxOptions.data={...ajaxOptions.data,...data};if(data.id===null){delete ajaxOptions.data.id;}}
2853if(options.loadPackagesOnDemand===true){ajaxOptions.data.packagesHash=jQuery('body').data('packagesHash');}
2854if(this.isFeatureEnabled('MMI.App.TweakAjaxData')){ajaxOptions=this._tweakAjaxData(ajaxOptions);}
2855let request=jQuery36.ajax(ajaxOptions);const app=this;if(options.loadPackagesOnDemand===true){request=new Promise((resolve,reject)=>{request.then(async(json,status,xhr)=>{await app._updatePackagesFromJsonUsingPromise(json);resolve(json,status,xhr,ajaxOptions);},()=>reject());});}
2856return request;},getDefaultUrl:function(){return this._defaultUrl;},_tweakAjaxData:function(ajaxOptions){if(JSON===undefined){return ajaxOptions;}
2857var topLevelKeysToKeep=['id','mode','view','attitude'];var nestedData=ajaxOptions.data;var flatData={};var app=this;var flattenData={};if(jQuery.isPlainObject(nestedData)){jQuery.each(nestedData,function(key,value){if(jQuery.inArray(key,topLevelKeysToKeep)>-1){flatData[key]=value;delete nestedData[key];}else{if(key.indexOf('[')>-1){var parts=key.split('[');var subKeys=[];jQuery.each(parts,function(partNum,part){var subKey=part.split(']').shift();if(subKey){subKeys.push(subKey);}});app._stringKeysToArray(flattenData,subKeys,value);}else{flattenData[key]=value;}}});}
2858flatData.json_formdata=JSON.stringify(flattenData);ajaxOptions.data=flatData;return ajaxOptions;},_stringKeysToArray:function(returnObject,subKeys,value){var key=subKeys.shift();if(!returnObject.hasOwnProperty(key)){returnObject[key]={};}
2859if(subKeys.length===0){returnObject[key]=value;}else{this._stringKeysToArray(returnObject[key],subKeys,value);}
2860return returnObject;},_loadScripts:function(scriptUrls,finalScriptCallback){var totalJs=scriptUrls.length;if(totalJs<1){finalScriptCallback();return;}
2861var url=scriptUrls.shift();const _loader=function(url,success){const opts={url,success,dataType:'script'};if(jQuery.isPlainObject(url)){opts.url=url.src;opts.scriptAttrs=url;}
2862jQuery.ajax(opts);};if(totalJs===1){_loader(url,finalScriptCallback);return;}
2863_loader(url,function(){var app=MMI.App.get();app._loadScripts(scriptUrls,finalScriptCallback);});},_updatePackagesFromJson:function(json,finalScriptCallback){var jqel_body=jQuery('body');var newPackagesHash='';if(jQuery.isPlainObject(json.packages)&&json.packages.hash){newPackagesHash=json.packages.hash;if(jqel_body.data('packagesHash')===newPackagesHash){finalScriptCallback();return;}
2864jqel_body.data('packagesHash',newPackagesHash);var jqel_head=jQuery('head');jQuery.each(json.packages.css,function(index,cssUrl){jqel_head.append('<link rel="stylesheet" type="text/css" href="'+cssUrl+'" />');});this._loadScripts(json.packages.js,finalScriptCallback);return;}
2865finalScriptCallback();},_checkForSessionTimeout:function(json,ajaxOptions){var jqel_body=jQuery('body');if(!json.logged_in&&jqel_body.data('isLoggedIn')&&json.postdata.mode!=='logout'){jqel_body.data('isLoggedIn',false);jqel_body.removeClass('userLoggedIn userIsAdmin').addClass('userLoggedOut');this.triggerEvent('sessionTimeout'.toLowerCase(),[json,ajaxOptions]);return false;}
2866return true;},_processServerSystemErrors:function(server,debugKey,bannerTitle){var self=this;server=Basix.extend({system:[]},server);server.system=new Basix.List(server.system);
2866self.displayConsolidatedErrorNotification(server.system,debugKey,bannerTitle??'_processServerSystemErrors');},_api_processServerSystemErrors:function(err,debugKey,bannerTitle){let self=this;let errorMessages=new Basix.List(err.data.errors.detail);self.displayConsolidatedErrorNotification(errorMessages,debugKey,bannerTitle??'_api_processServerSystemErrors');},_defaultHandleSessionTimeout:function(json,sessionTimeoutAjaxOptions,originalAjaxOptions){Eco.OrganismController.create('Eco.Organism.Notification.Message','<div class="mod_warning">',{options:{name:'sessionTimedOut',container:'default',body:'Your session timed out. Please sign in again.'}});sessionTimeoutAjaxOptions=Basix.extend(Basix.EXTEND_RECURSIVE,{resendAjaxRequest:originalAjaxOptions.ajaxOptions},sessionTimeoutAjaxOptions);this.openSignInDialog({},sessionTimeoutAjaxOptions,{resumeSession:true});return false;},handleSessionTimeout:function(json,ajaxOptions){return this._defaultHandleSessionTimeout(json,{},ajaxOptions);},defaultAjaxDoneHandler:function(json,status,xhr){var ajaxOptions=this;ajaxOptions.jqel=jQuery(ajaxOptions.jqel);var app=MMI.App.getInstance();app.logAjaxComplete(ajaxOptions,status,json);var jqel_body=jQuery('body');xhr.responseJson=json;MMI.Debug.logServerDebugData(json,ajaxOptions);var hasAjaxDoneHandler=false;if(typeof(ajaxOptions.mmiAjaxDone)==='function'){hasAjaxDoneHandler=true;}
2867if(!jQuery.isPlainObject(json)){app.displayConsolidatedErrorNotification(['Invalid response from server.'],ajaxOptions.xhrId??'defaultAjaxDoneHandler.invalidJsonObject');if(typeof(ajaxOptions.mmiAjaxFail)==='function'){ajaxOptions.mmiAjaxFail.apply(ajaxOptions,[null,status,xhr,ajaxOptions]);}
2868jqel_body.trigger('ajaxfail',[null,status,xhr,ajaxOptions]);if(ajaxOptions.jqel.size()){ajaxOptions.jqel.trigger('ajaxdone',[json,status,xhr,ajaxOptions]);}else{jqel_body.trigger('ajaxdone',[json,status,xhr,ajaxOptions]);}
2869return false;}
2870if(jQuery.isPlainObject(json.passwordReset)&&json.passwordReset.attempted!==true&&json.passwordReset.required===true){Eco.OrganismController.create('Eco.Organism.Notification.Message','<div class="mod_warning">',{options:{name:'passwordResetRequired',container:'default',body:'Please set a new password for your account.'}});app.openPasswordResetDialog(json.result,{resendAjaxRequest:ajaxOptions.ajaxOptions});return false;}
2871if(app._checkForSessionTimeout(json,ajaxOptions)===false){return app.handleSessionTimeout(json,ajaxOptions);}
2872if(json.permissionData){app.storePermissionData(json.permissionData);}
2873if(json.login.attempted&&json.login.status){app._profileId=parseInt(json.profile_id,10);jqel_body.data('profile_id',app._profileId);jqel_body.data('user_id',parseInt(json.user,10));jqel_body.data('isLoggedIn',true);jqel_body.data('isAdmin',json.is_admin);app._permissions={'items':{},'types':{}};app.triggerEvent('loginSuccess'.toLowerCase());}
2874app._updatePackagesFromJson(json,function(){var serverDefaults={status:false,operations:{},system:[]};var server=Basix.extend({},serverDefaults,json.server);json.server=server;if(!server.status){server.system=new Basix.List(server.system);if(server.system.length){app._processServerSystemErrors(server,json.debugKey,ajaxOptions.xhrId);if(!jQuery.isPlainObject(app.getNextRequestInQueue(ajaxOptions.xhrId))){var newPackagesHash=jqel_body.data('packagesHash');if(newPackagesHash&&ajaxOptions.loadPackagesOnDemand){ajaxOptions.data.packagesHash=newPackagesHash;}
2875app.ajax(ajaxOptions);}}}
2876if(ajaxOptions.replaceContent instanceof Function){var jqel=ajaxOptions.replaceContent(json,ajaxOptions);if(jqel instanceof jQuery){app.initializeNewContent(jqel);}}
2877if(ajaxOptions.jqel.size()){ajaxOptions.jqel.trigger('ajaxdone',[json,status,xhr,ajaxOptions]);if((ajaxOptions.replaceContent||ajaxOptions.replaceElement)){ajaxOptions.jqel.find('.live_removing').trigger('removing');if(ajaxOptions.replaceElement){var jqel_temp;try{jqel_temp=jQuery(json.result);}catch(e){jqel_temp=jQuery('<div>'+json.result+'</div>');}
2878ajaxOptions.jqel.replaceWith(jqel_temp);ajaxOptions.jqel=jqel_temp;app._doInternetExplorerNonBubblingEventWorkarounds(ajaxOptions.jqel,true);ajaxOptions.jqel.trigger('creating');}else{ajaxOptions.jqel.html(json.result);
2878app._doInternetExplorerNonBubblingEventWorkarounds(ajaxOptions.jqel,false);}
2879app.initializeNewContent(ajaxOptions.jqel);}}else{jqel_body.trigger('ajaxdone',[json,status,xhr,ajaxOptions]);}
2880if(hasAjaxDoneHandler){ajaxOptions.mmiAjaxDone.apply(ajaxOptions,[json,status,xhr,ajaxOptions]);}});return true;},setNewPageItemFromJson:function(json){if(json&&json.items&&json.items[json.id]){var item=json.items[json.id];var jqel=jQuery('body');jqel.data('page_item_id',item.item_id);jqel.data('page_item_seo_name',item.item_seo_name);jqel.data('page_item_type',item.item_type);jqel.alterClass('itemType_* seoName_*','itemType_'+item.item_type+' seoName_'+item.item_seo_name);this.updateBodyClasses(item.item_body_css_classes);this.updateItemBaseClasses(item.item_id,item.item_css_classes);}},updateBodyClasses:function(newCssClasses){var jqel_body=jQuery('body');var previousCustomBodyClasses=jqel_body.data('itemBodyClasses');if(!previousCustomBodyClasses){previousCustomBodyClasses='';}
2881jqel_body.alterClass(previousCustomBodyClasses,newCssClasses);jqel_body.data('itemBodyClasses',newCssClasses);},updateItemBaseClasses:function(itemId,newCssClasses){var jqel_itemBase=jQuery('.itemBase.item-'+itemId);var previousCustomClasses=jqel_itemBase.data('itemClasses');if(!previousCustomClasses){previousCustomClasses='';}
2882jqel_itemBase.alterClass(previousCustomClasses,newCssClasses);jqel_itemBase.data('itemClasses',newCssClasses);},defaultAjaxFailHandler:function(json,status,xhr){var ajaxOptions=this;var jqel_target;var app=MMI.App.getInstance();app.logAjaxComplete(ajaxOptions,status,json);if(typeof(ajaxOptions.jqel)==='object'&&ajaxOptions.jqel!==null&&ajaxOptions.jqel.size()){jqel_target=ajaxOptions.jqel;}else{jqel_target=jQuery('body');}
2883if(status!=='abort'){if(!jQuery.isPlainObject(app.getNextRequestInQueue(ajaxOptions.xhrId))){app.ajax(ajaxOptions);return;}
2884if(json.server){app.displayConsolidatedErrorNotification(json.server.system,ajaxOptions.xhrId??'defaultAjaxFailHandler.notificationBanner');}
2885if(ajaxOptions.replaceContent){if(typeof(ajaxOptions.mmiAjaxFail)==='function'){ajaxOptions.mmiAjaxFail.apply(ajaxOptions,[json,status,xhr,ajaxOptions]);}
2886jqel_target.trigger('ajaxfail',[json,status,xhr,ajaxOptions]);return;}
2887if(typeof(ajaxOptions.mmiAjaxFail)==='function'){ajaxOptions.mmiAjaxFail.apply(ajaxOptions,[json,status,xhr,ajaxOptions]);}
2888jqel_target.trigger('ajaxfail',[json,status,xhr,ajaxOptions]);}
2889jqel_target.trigger('ajaxabort',[json,status,xhr,ajaxOptions]);},defaultAjaxAlwaysHandler:function(xhr,status){var ajaxOptions=this;var jqel_target;var hasCustomJqelTarget=false;var app=MMI.App.get();var json=xhr.responseJson;if(jQuery.isPlainObject(json)&&(json.login.status===false||!json.id)){app._handleSessionTimeout(json);}
2890delete app._ajaxRequestStack[ajaxOptions.xhrId];if(ajaxOptions.queueByXhrId&&app.isSimilarRequestInQueue(ajaxOptions.xhrId)){var nextInQueue=app.getNextRequestInQueue(ajaxOptions.xhrId);if(nextInQueue){app.ajax(nextInQueue);}}
2891if(typeof(ajaxOptions.jqel)==='object'&&ajaxOptions.jqel!==null&&ajaxOptions.jqel.size()){hasCustomJqelTarget=true;jqel_target=ajaxOptions.jqel;}else{jqel_target=jQuery('body');}
2892if(ajaxOptions.loaderStyleTargets.size()){ajaxOptions.loaderStyleTargets.removeClass(ajaxOptions.mmiAjaxLoaderClass);}
2893if(hasCustomJqelTarget){jqel_target.removeClass(ajaxOptions.mmiAjaxLoaderClass);if(jQuery.isPlainObject(jqel_target.mmiData('smartBox'))){jqel_target.parents('.smartBox:first').removeClass(ajaxOptions.mmiAjaxLoaderClass);}
2894jQuery(window).trigger('resize');}
2895if(typeof(ajaxOptions.mmiAjaxAlways)==='function'){ajaxOptions.mmiAjaxAlways.apply(ajaxOptions,[json,status,xhr,ajaxOptions]);}
2896jqel_target.removeData('xhrId').trigger('ajaxalways',[json,status,xhr,ajaxOptions]);},_ajaxViewOverride:null,forceOverrideAjaxView:function(view){this._ajaxViewOverride=view;},boomTestHard:function(){this.forceOverrideAjaxView('boom');this.displaySuccessNotification('Boom test set to hard fail for all server requests.');},boomTestSoft:function(){this.forceOverrideAjaxView('boom_soft');this.displaySuccessNotification('Boom test set to soft fail for all server requests.');},clearBoomTest:function(){this.forceOverrideAjaxView(null);this.displaySuccessNotification('Boom test cleared.');}};
2897MMI.Util.namespace('MMI.App.Modules.Tracking');MMI.App.Modules.Tracking={_trackingTimeout:false,_autoPostDelay:3000,_trackingQueue:null,__c
2897onstruct:function(){this._trackingQueue=[];},__appReady:function(){},__documentReady:function(){var _t=this;lifecycle.addEventListener('statechange',function(e){if(e.newState==='hidden'){_t.sendTrackingBeacon();}});},trackUserAction:function(action,category,itemId,data){if(!action){throw new Error('No action provided to trackUserAction()');}
2898if(!itemId){itemId=0;}
2899if(!category){category='interaction';}
2900if(!data||(data instanceof Array&&data.length===0)){data={};}
2901if(!jQuery.isPlainObject(data)){throw new Error('The data parameter passed to trackUserAction() is not an object.');}
2902this._trackingQueue.push({date:new Date(),event_action:action,item_id:itemId,event_group:category,event_data:data});if(!this._trackingTimeout){var self=this;this._trackingTimeout=setTimeout(function(){self.sendTrackingData();},this._autoPostDelay);}},getTrackingQueueForPost:function(){var queue=[];jQuery.each(this._trackingQueue,function(n,item){var date=item.date;var now=new Date();var offset=Math.round((now.getTime()-date.getTime())/ 1000);delete item.date;item.event_time_offset=offset;queue.push(item);});if(this._trackingTimeout){clearTimeout(this._trackingTimeout);this._trackingTimeout=false;}
2903return queue;},clearTrackingQueue:function(){this._trackingQueue=[];},_getAjaxOptions:function(ajaxOptions){var defaultOptions={data:{mode:'record_event'}};ajaxOptions=Basix.extend(Basix.EXTEND_RECURSIVE,defaultOptions,ajaxOptions);ajaxOptions.data.ui_events=this.getTrackingQueueForPost();this.clearTrackingQueue();return ajaxOptions;},sendTrackingData:function(ajaxOptions){if(this._trackingQueue&&this._trackingQueue.length){ajaxOptions=this._getAjaxOptions(ajaxOptions);this.ajax(ajaxOptions);}},sendTrackingBeacon:function(ajaxOptions){if(this._trackingQueue&&this._trackingQueue.length){var url=MMI.App.Modules.Ajax.getDefaultUrl();var ajaxData=this._getAjaxOptions(ajaxOptions);var data=new FormData();data.append('mode',ajaxData.data.mode);delete ajaxData.data.mode;data.append('attitude','json');data.append('json_formdata',JSON.stringify(ajaxData.data));navigator.sendBeacon(url,data);}},setTrackingDataAutoPostTime:function(time){this._autoPostDelay=time;}};
2904MMI.Util.namespace('MMI.App.Modules.Core');MMI.App.Modules.Core={_defaultAlertOptions:{id:false,limit:5,message:'',type:'message',classes:[],themes:['default'],click:'close',duration:5000},__construct:function(){this._version='2.0.0';this._applicationOverrides={};this._profileId=0;this._profileFullName='Guest';this._siteRevisionData={};this._urlQueryData={};var date=new Date();this._gmtOffsetInSeconds=date.getTimezoneOffset()*-60;this._setSessionDataForGmtOffset(this._gmtOffsetInSeconds);},__ready:function(){MMI.App.setInstance(this);var app=this;jQuery.each(app.__coreModuleNames,function(index,moduleName){if(jQuery.inArray(moduleName.toLowerCase(),['core'])==-1){var pseudoHandlerName='__'+moduleName+'AppReadyHelix';if(typeof(app[pseudoHandlerName])=='function'){app[pseudoHandlerName]();}}});jQuery.each(app.__applicationModuleNames,function(index,moduleName){if(jQuery.inArray(moduleName.toLowerCase(),['core'])==-1){var pseudoHandlerName='__'+moduleName+'AppReady';if(typeof(app[pseudoHandlerName])=='function'){app[pseudoHandlerName]();}}});this._setUpSystemInitialization();},_setSessionDataForGmtOffset:function(gmtOffsetInSeconds){const sessionId=window.sessionStorage.getItem('currentSessionId');if(MMI.Util.cookieExists('PHPSESSID')===false){return;}
2905const cookieSessionId=MMI.Util.readCookie('PHPSESSID');if(!cookieSessionId||sessionId===cookieSessionId){return;}
2906const gmtData={gmtOffsetInSeconds,};const http=this.getApiHttp();http.post('/gmt-session',gmtData).then(rsp=>{if(rsp?.data?.payload?.success===true){window.sessionStorage.setItem('currentSessionId',cookieSessionId);}}).catch(e=>{console.error('Error sending GMT offset to server:',e);});},_setUpSystemInitialization:function(){jQuery(document).ready(this._handleDocumentReady);jQuery(window).bind('resize',this._handleRealWindowResize).bind('online offline',this._handleNetworkStatusChange);},_handleSessionTimeout:function(json){},_registerImageLoadErrorHandlers:function(){jQuery('img:not(data-mmi-image-404-check)').data('mmi-image-404-check',true).on('error',function(){var jqel=jQuery(this);var missingImageUrl=jqel.ecoData('missingImageUrl');if(!missingImageUrl){missingImageUrl='/images/web/Missing Image.png';}
2907var originalSrc=jqel.attr('src');if(originalSrc===missingImageUrl){return;}
2908console.warn('Unable to load image: '+originalSrc);jqel.attr({'data-original-src':originalSrc,'src':missingImageUrl}).css({height:'auto',cursor:'pointer'}).on('click',function(){Be.SiteTools.reportError({'missingImageUrl':originalSrc});return false;});});},_registerGlobalErrorHandler:function(){var self=this;window.addEventListener('error',function(event){var error=event.error;var stack='';var message=event.message;var url,line,column;if(error&&error.stack){url=error.fileName;line=error.lineNumber;column=error.columnNumber;stack=error.stack;}
2909var excludedKeywords=['getComputedStyle','Script error','l is null','setSize','Cannot find stylesheet.','Error: Request aborted','ResizeObserver loop completed','Cannot read properties of undefined (reading \'length\')',];for(var i=0;i<excludedKeywords.length;i++){if(!excludedKeywords.hasOwnProperty(i)){continue;}
2910if(message.indexOf(excludedKeywords[i])>-1){return true;}}
2911self.displayErrorNotification(message,'_globalErrorHandler.notificationBanner',{url:url,line:line,column:column,stack:stack});return false;});window.addEventListener('unhandledrejection',function(event){if(jQuery('body').data('serverRole')!='production'){self.dis
2911playErrorNotification(event.reason?event.reason.toString():'','_globalUnhandledRejection.notificationBanner',event.reason);}
2912cwarn('unhandledrejection triggered',event);return false;});},displayConsolidatedErrorNotification:function(errorMessages,debugKey,bannerTitle){if(!errorMessages||errorMessages.length<1){return;}
2913let linkClass='';let displayTitle='';if(this.isSuperAdmin()){linkClass='alwaysShow';if(bannerTitle){let bannerTitleTruncated=bannerTitle;if(bannerTitle.length>40){bannerTitleTruncated=bannerTitle.slice(0,40);}
2914displayTitle=`: <span title="${bannerTitle}">${bannerTitleTruncated}</span>`;}}
2915let debugLinkClickHandler='loadDebugDataForInitialPageLoad';if(debugKey){debugLinkClickHandler='loadDebugDataByForDebugKey'}
2916let messageHtml=`
2917<div>
2918    <strong>Errors Detected${displayTitle}</strong>
2919    <span class="atom_a live_click errorDetailsDialogLink ${linkClass}" data-live_click_handler="debugBannerShowErrorsForUiDetails">Show Details</span>
2920</div>
2921<div class="mod_hidden errorForUiDetails">
2922    <p class="mod_text-center">
2923        <span class="atom_a live_click" data-live_click_handler="${debugLinkClickHandler}" data-debug-key="${debugKey}">Open Debug for Request</span>
2924    </p>`;errorMessages.forEach(message=>{messageHtml+=`<div>${message}</div>`;});messageHtml+=`</div>`;let messageData={options:{name:'errorsForUi',classes:['errorsForUiNotification'],container:'default',icon:'eco eco-error',body:messageHtml,actions:[{label:'Dismiss',handler:'dismiss'},{label:'Report',handler:function(){this.hide();Be.SiteTools.reportError({serverRole:jQuery('body').data('serverRole').toUpperCase(),profileName:MMI.App.get().getProfileFullName(),reportedFrom:'errorsForUi',messages:errorMessages,});}}]}};return Eco.OrganismController.create('Eco.Organism.Notification.Message','<div class="mod_error">',messageData);},displayErrorNotification:function(message,sourceIdentifier,errorPayload,messageData,ignoreUserType){try{console.log('Error Notification',{message:message,sourceIdentifier:sourceIdentifier,additionalData:errorPayload});}catch(e){return false;}
2925var messageObject=this._getCleanErrorMessage(message,ignoreUserType);if(typeof(messageData)!=='object'){messageData={};}
2926messageData=Basix.extend(Basix.EXTEND_RECURSIVE,{options:{name:sourceIdentifier,container:'default',icon:'eco eco-error',body:messageObject.forUser,actions:[{label:'Dismiss',handler:'dismiss'},{label:'Report',handler:function(){this.hide();Be.SiteTools.reportError({serverRole:jQuery('body').data('serverRole').toUpperCase(),profileName:MMI.App.get().getProfileFullName(),reportedFrom:sourceIdentifier,message:messageObject,errorData:errorPayload});}}]}},messageData);return Eco.OrganismController.create('Eco.Organism.Notification.Message','<div class="mod_error">',messageData);},displayNotification:function(message,sourceIdentifier,messageData,modifier,icon){if(typeof(messageData)!=='object'){messageData={};}
2927messageData=Basix.extend(Basix.EXTEND_RECURSIVE,{options:{name:sourceIdentifier,container:'default',icon:icon,body:message,actions:[{label:'Dismiss',handler:'dismiss'}]}},messageData);var modifierClass='';if(modifier){modifierClass='mod_'+modifier;}
2928return Eco.OrganismController.create('Eco.Organism.Notification.Message','<div class="'+modifierClass+'">',messageData)[0];},displaySuccessNotification:function(message,sourceIdentifier,messageData){return this.displayNotification(message,sourceIdentifier,messageData,'success','eco eco-success');},displayWarningNotification:function(message,sourceIdentifier,messageData){return this.displayNotification(message,sourceIdentifier,messageData,'warning','eco eco-warning');},_getCleanErrorMessage:function(message,ignoreUserType){var deTagged=message;try{deTagged=jQuery('<div>'+message+'</div>').text();}catch(e){}
2929deTagged=jQuery.trim(deTagged.replace(/[\r\n]+/g,' ').replace(/[\s]+/g,' '));if(deTagged.length<=700){message=deTagged;}else{message=deTagged.substr(0,700);}
2930message=jQuery.trim(message.replace('&','&amp;').replace('<','&lt;').replace('>','&gt;'));var result=message.match(/\[Debug Key ([a-z\d]+_[a-z\d]+_[a-z\d])]/);if(result&&result.length===2){var fullMatch=result[0];var debugKey=result[1];message=message.replace(fullMatch,'<a target="_blank" href="'+MMI.Debug.getDebugDataUrlForKey(debugKey)+'">'+fullMatch+'</a>');}
2931var messageForUser='Oops. Something went wrong. Please take a moment to report this error.';if(ignoreUserType===true||this.isSuperAdmin()||message.toLowerCase().indexOf('maintenance in progress')>-1){messageForUser=message;}
2932return{forUser:messageForUser,detailed:message};},_handleDocumentReady:function(event){var app=MMI.App.getInstance();app._registerGlobalErrorHandler();app._registerImageLoadErrorHandlers();var jqel_body=jQuery('body');var data=jqel_body.data();app.parsePageUrl();var jqel_packageCssInfo=jQuery('.packageCssInfo');var jqel_head=jQuery('head');var cssUrls=jqel_packageCssInfo.data('cssUrls');if(Basix.isArray(cssUrls)){cssUrls=new Basix.List(cssUrls);cssUrls.reverseEach(function(index,cssUrl){jqel_head.prepend('<link rel="stylesheet" type="text/css" href="'+cssUrl+'" />');});}
2933jQuery.each(app.__coreModuleNames,function(index,moduleName){if(jQuery.inArray(moduleName.toLowerCase(),['core'])==-1){var pseudoHandlerName='__'+moduleName+'DocumentReadyHelix';if(typeof(app[pseudoHandlerName])=='function'){app[pseudoHandlerName]();}}});jQuery.each(app.__applicationModuleNames,function(index,moduleName){if(jQuery.inArray(moduleName.toLowerCase(),['core'])==-1){var pseudoHandlerName='__'+moduleName+'DocumentReady';if(typeof(app[pseudoHandlerName])=='function'){app[pseudoHandlerName]();}}});if(jQuery.isPlainObject(data.siteRevisionData)){app._siteRevisionData=data.siteRevisionData;}
2934if(app.hasStateManager()){app._setUpStateManager();}
2935if(typeof(data.profile_id)!='undefined'&&data.profile_id!==null){app._profileId=parseInt(data.profile_id,10);}
2936if(typeof(data.profileFullName)!='undefined'&&data.profileFullName!==null){app._profileFullName=data.profileFullName;}
2937if(typeof(data.user_id)!='undefined'&&data.user_id!==null){app._userId=data.user_id;}
2938app.handleDocumentReady(event,app,jqel_body,data);jqel_body.addClass('browserVersion_'+Math.floor(parseFloat(app.getBrowserVersion(),10)));jqel_body.addClass('networkStatus-'+(navigator.onLine?'online':'offline'));if(jQuery.browser.msie){app._doInternetExplorerNonBubblingEventWorkarounds(jqel_body);jqel_body.addClass('device-ms-dinosaur');}else{var bodyClasses=[];if(app.isMobile()){bodyClasses.push('device-mobile');if(app.isIos()){bodyClasses.push('device-ios');if(app.isIpad()){bodyClasses.push('device-ipad');}else if(app.isIphone()){bodyClasses.push('device-iphone');}else if(app.isIpod()){bodyClasses.push('device-ipod');}}else if(app.isAndroid()){bodyClasses.push('device-android');}}
2939jqel_body.addClass(bodyClasses.join(' '));}
2940app._initializeUnsupportedBrowserNotification();let debugKey=jqel_body.data('debugKey');app._processServerSystemErrors(data.serverData,debugKey,'Initial Page Request');app.initializeNewContentAsync().then(()=>{MMI.Debug.logServerDebugData({debugKey:debugKey,postdata:{mode:jqel_body.data('mode')}},{initialPageLoad:true});});},handleDocumentReady:function(event,app,jqel,data){},_initializeUnsupportedBrowserNotification:function(){if(window.navigator.appName==='Microsoft Internet Explorer'||(window.navigator.appName==='Netscape'&&window.navigator.appVersion.indexOf('Trident')>-1)){var ieVersion;var edgeSupported=false;var windowsVersion=0;var windowsVersionData=window.navigator.appVersion.match(/Windows NT ([\d]*\.[\d]*)/);switch(windowsVersionData[1]){case'10.0':windowsVersion='10';edgeSupported=true;break;case'6.3':windowsVersion='8.1';break;case'6.2':windowsVersion='8';break;case'6.1':windowsVersion='7';break;case'5.0':case'5.1':case'5.2':windowsVersion='XP';break;default:}
2941if(window.navigator.appVersion.indexOf('rv:11.0')>-1){ieVersion=11;}else{var ieVersionData=window.navigator.appVersion.match(/MSIE ([\d]*)\.[\d]*/);ieVersion=ieVersionData[1];}
2942var browserList=['Google Chrome','Mozilla Firefox'];if(edgeSupported){browserList.push('Microsoft Edge');}
2943browserList[browserList.length-1]='or '+browserList[browserList.length-1];var message='It looks like you&rsquo;re using an unsupported browser (IE '+ieVersion+' on Windows '+windowsVersion+'). Please use a current browser such as '+browserList.join(', ')+'.';this.displayWarningNotification(message,'mmiApp.unsupportedBrowser');}},getBrowserInfo:function(userAgent){userAgent=userAgent?userAgent:navigator.userAgent;var regex=/(edge|opera|chrome|safari|firefox|msie|fban|fbav|trident(?=\/))\/?\s*([\d.]+)/gi;var tem;var match;var possibilities=[];var bestPossibility=0;while((match=regex.exec(userAgent))!==null){if(/trident/i.test(match[1])){tem=/\brv[ :]+(\d+(\.\d+)?)/g.exec(userAgent)||[];return'IE '+(tem[1]||'');}
2944match=match[2]?[match[1],match[2]]:[navigator.appName,navigator.appVersion,'-?'];if((tem=userAgent.match(/version\/([.\d]+)/i))!==null){match[2]=tem[1];}
2945var info={name:match[0],version:match[1]};if(userAgent.indexOf('FBAV')>-1||userAgent.indexOf('FBAN')>-1){info.name="Facebook";}
2946possibilities.push(info);if(info.name.match(/edge/i)){bestPossibility=possibilities.length-1;}}
2947return possibilities[bestPossibility];},getBrowserVersion:function(){var browser=this.getBrowserInfo();if(browser){return browser.version;}
2948return 0;},getBrowserName:function(){var browser=this.getBrowserInfo();if(browser){return browser.name;}
2949return'unknown';},parsePageUrl:function(){var queryParts=window.location.search.substring(1).split('&');
2949var queryData={};jQuery.each(queryParts,function(index,part){var keyValue=part.split('=');queryData[keyValue[0]]=keyValue[1];});this._urlQueryData=queryData;},getUrlParameter:function(name){return this._urlQueryData[name];},getSiteRevisionData:function(){return this._siteRevisionData;},displaySiteRevisionData:function(){let html='';let totalSectionsRendered=0;for(const[sectionName,sectionData]of Object.entries(this.getSiteRevisionData())){totalSectionsRendered++;html+=`<h3 style="margin: 0 0 10px 0;">${sectionName}</h3><div style="margin: 0 0 20px 10px;"><table>`;for(const[key,value]of Object.entries(sectionData)){html+=`<tr><td><span class="bold">${key}:</span></td><td>${value}</td></tr>`;}
2950html+=`</table></div>`;}
2951if(totalSectionsRendered<1){html='<h2>No site revision data available on this deployment.</h2>';}
2952const dialog=new HelixWrappedDialog();dialog.applyOptionsSet(HelixWrappedDialog.OPTIONS_DEFAULTS).addTheme('helix-wrapped-dialog--site-revision-data').content(html).open();},getApplicationOverride:function(referenceKey,defaultValue){if(typeof(this._applicationOverrides[referenceKey])!='undefined'){return this._applicationOverrides[referenceKey];}
2953return defaultValue;},setApplicationOverride:function(referenceKey,customValue){this._applicationOverrides[referenceKey]=customValue;},unsetApplicationOverride:function(referenceKey){this._applicationOverrides[referenceKey]=undefined;},getLocalValue:function(property){if(window.hasOwnProperty('localStorage')){return JSON.parse(window.localStorage.getItem(property));}else{var localValuesCookieName='localValues';var cookieData=this.getCookieObject(localValuesCookieName);if(cookieData.hasOwnProperty(property)){return cookieData[property];}}
2954return null;},setLocalValue:function(property,value){if(window.hasOwnProperty('localStorage')){return window.localStorage.setItem(property,JSON.stringify(value));}else{var localValuesCookieName='localValues';var cookieData=this.getCookieObject(localValuesCookieName);cookieData[property]=value;this.saveCookieObject(localValuesCookieName,cookieData);return undefined;}},removeLocalValue:function(property){if(window.hasOwnProperty('localStorage')){return window.localStorage.removeItem(property);}else{var localValuesCookieName='localValues';var cookieData=this.getCookieObject(localValuesCookieName);delete cookieData[property];this.saveCookieObject(localValuesCookieName,cookieData);return undefined;}},isSignedIn:function(){return jQuery('body').data('isLoggedIn');},isAdmin:function(){return jQuery('body').data('isAdmin');},isSuperAdmin:function(){return jQuery('body').data('isSuperAdmin');},isImplementor:function(){return this.isSuperAdmin();},getPageItemId:function(){return jQuery('body').data('page_item_id');},getPageItemType:function(){return jQuery('body').data('page_item_type');},getPageItemSeoName:function(){return jQuery('body').data('page_item_seo_name');},getProfileId:function(){return this._profileId;},getUserId:function(){return this._userId;},getProfileFullName:function(){return this._profileFullName;},getCookieObject:function(cookieName){var rawCookieData=MMI.Util.readCookie(cookieName+'_'+this.getProfileId());var cookieData;if(typeof(rawCookieData)=='string'){cookieData=JSON.parse(rawCookieData);}
2955if(!jQuery.isPlainObject(cookieData)){cookieData={};}
2956return cookieData;},saveCookieObject:function(cookieName,cookieData,cookieOptions){var defaultCookieOptions={name:cookieName+'_'+this.getProfileId(),timeToLive:'999999999',path:'/'};if(jQuery.isPlainObject(cookieOptions)){cookieOptions=jQuery.extend(defaultCookieOptions,cookieOptions);}else{cookieOptions=defaultCookieOptions;}
2957cookieOptions.value=JSON.stringify(cookieData);MMI.Util.writeCookie(cookieOptions);},getPersistentValue:function(property){var persistentCookieName='persistentValues';var cookieData=this.getCookieObject(persistentCookieName);if(cookieData.hasOwnProperty(property)){return cookieData[property];}
2958return false;},setPersistentValue:function(property,value){var persistentCookieName='persistentValues';var cookieData=this.getCookieObject(persistentCookieName);cookieData[property]=value;this.saveCookieObject(persistentCookieName,cookieData);},getServerRole:function(){return jQuery('body').data('serverRole');},setPreference:function(preferenceName,preferenceValue){var jqel_body=jQuery('body');var preferences=jqel_body.data('profilePreferences');if(!jQuery.isPlainObject(preferences)){preferences={};}
2959preferences[preferenceName]=preferenceValue;this.setPreferences(preferences);},setPreferences:function(newPreferences){var jqel_body=jQuery('body');var preferences=jqel_body.data('profilePreferences');if(!jQuery.isPlainObject(preferences)){preferences={};}
2960preferences=jQuery.extend({},preferences,newPreferences);jqel_body.data('profilePreferences',preferences);var ajaxData={id:this.getProfileId(),view:'set_preferences',preferences:preferences};this.ajax({xhrId:'saveProfilePreferences',data:ajaxData,mmiAjaxDone:function(json,status,jqXhr,ajaxOptions){if(jQuery.isPlainObject(json.profilePreferences)){jQuery('body').data('profilePreferences',json.profilePrefences);}}});},getPreference:function(preferenceName){var preferences=this.getPreferences();if(preferences.hasOwnProperty(preferenceName)){return preferences[preferenceName];}
2961return null;},getPreferences:function(){var preferences=jQuery('body').data('profilePreferences');if(!jQuery.isPlainObject(preferences)){preferences={};}
2962return preferences;},clearAllPreferences:function(){var ajaxData={id:this.getProfileId(),view:'clear_preferences',preferences:{}};this.ajax({xhrId:'saveProfilePreferences',data:ajaxData,mmiAjaxDone:function(json,status,jqXhr,ajaxOptions){if(Array.isArray(json.profilePreferences)){json.profilePreferences={}}
2963if(jQuery.isPlainObject(json.profilePreferences)){jQuery('body').data('profilePreferences',json.profilePreferences);}}});},_legacy_confirm:function(options){var defaultOptions={message:false,content:'',title:'',buttons:[{id:'cancel',label:'Cancel',classes:[]},{id:'ok',label:'OK',classes:[]}],buttonFocusId:'ok',buttonAlignment:'center',icon:false,iconAlignment:'left',callback:false,scope:this,jqel:false,smartBox:{classes:['helix-confirm-dialog'],modal:true,close:false,minimize:false,restore:false,maximize:false,resizable:false,draggable:false,topOfStack:true}};if(Basix.isPlainObject(options.smartBox)){options.smartBox=Basix.extend(Basix.EXTEND_RECURSIVE,Basix.ARRAYS_MERGE,{},defaultOptions.smartBox,options.smartBox);}
2964options=Basix.extend({},defaultOptions,options);if(Basix.isString(options.title)||Basix.isNumeric(options.title)){options.smartBox.title=options.title;}
2965if(!Basix.isString(options.message)&&!Basix.isNumeric(options.message)){throw new Error('Helix app.confirm() must be provided with a string or number as a message.');}
2966if(!Basix.isFunction(options.callback)){throw new Error('Helix app.confirm() must be provided with a callback function.');}
2967if(!Basix.isObject(options.scope)){throw new Error('Helix app.confirm() must be provided with a valid scope. Avoid overriding to use the default of the Helix application instance.');}
2968if(!Basix.isArray(options.buttons)){throw new Error('Helix app.confirm() must be provided with a valid array of buttons.');}
2969if(!Basix.isArray(options.smartBox.classes)){throw new Error('Helix app.confirm() must be provided with a valid array of smartBox classes.');}
2970if(!Basix.isArray(options.smartBox.closeCallbacks)){options.smartBox.closeCallbacks=[];}
2971options.smartBox.closeCallbacks.push(function(){jQuery(document).off('keyup.helixConfirm').off('keydown.helixConfirm');});var buttonAlignmentOptions=new Basix.List(['center','left','right']);if(!Basix.inArray(options.buttonAlignment,buttonAlignmentOptions)){options.buttonAlignment='center';}
2972options.smartBox.classes.push('hc-alignButtons'+Basix.toPascalCaseString(options.buttonAlignment));var buttonsHtml='';var buttons=new Basix.List(options.buttons);if(options.buttonAlignment=='right'){buttons.reverse();}
2973buttons.each(function(index,button){var classes=new Basix.List(['hc-button','hc-button-'+button.id]);if(Basix.isArray(button.classes)){classes.merge(button.classes);}
2974if(button.id===options.buttonFocusId){classes.push('default-focus');}
2975buttonsHtml+='<div class="'+classes.join(' ')+'" tabindex="-1" data-hc-button-id="'+button.id+'">'+button.label+'</div>';});var iconHtml='';if(options.icon){options.smartBox.classes.push('hc-icon-dialog');if(options.iconAlignment=='right'){options.smartBox.classes.push('hc-alignIconRight');}else{options.smartBox.classes.push('hc-alignIconLeft');}
2976if(options.icon.match(/.*?<.*?>.*?/g)){iconHtml='<div class="hc-icon hc-icon-html">'+options.icon+'</div>';}else if(options.icon.match(/^[\s]*?fa-/)){iconHtml='<div class="hc-icon hc-icon-font-based"><div class="eco '+options.icon+'"></div></div>';}else{iconHtml='<div class="hc-icon hc-icon-image"><img alt="confirm dialog icon" src="'+options.icon+'" /></div>';}}
2977var jqel=jQuery('<div class="hc-inner">'+iconHtml+'<div class="hc-message">'+options.message+'</div><div class="hc-content">'+options.content+'</div><div class="hc-buttons">'+buttonsHtml+'</div></div>');options.jqel=jqel.smartBox(options.smartBox);MMI.App.get().initializeNewContent(options.jqel);var buttonClickHandler=function(){var jqel_button=jQuery(this);var result={id:jqel_button.data('hcButtonId')};var runDefaultBehavior=options.callback.apply(options.scope,[result,options]);if(runDefaultBehavior!==false){runDefaultBehavior=true;}
2978if(runDefaultBehavior){options.jqel.smartBox('close');}};if(Basix.isFunction(arguments[1])){buttonClickHandler=arguments[1];}
2979jqel.find('.hc-button').on('click',buttonClickHandler).filter('.hc-button-'+options.buttonFocusId).trigger('focus');if(options.smartBox.modal){jQuery(document).off('keyup.helixConfirm').off('keydown.helixConfirm').on('keyup.helixConfirm',function(event){var jqel_target=jQuery(event.originalEvent.target);var tagName=jqel_target.get(0).tagName.toLowerCase();if(event.keyCode===13||((event.keyCode===32&&tagName!='input'&&tagName!='textarea'))){var jqel_activeButton=jQuery(this.activeElement).filter('.hc-button');jqel_activeButton.trigger('click');return false;}
2980return true;}).on('keydown.helixConfirm',function(event){var keyCode=event.keyCode;var jqel_target=jQuery(event.originalEvent.target);if(jqel_target.parents('.smartBox.sb-window').size()&&jqel_target[0].tabIndex>=0){return true;}
2981if(keyCode===9||keyCode===37||keyCode===39){var jqel_activeButton=jQuery(this.activeElement).filter('.hc-button');if(!jqel_activeButton.size()){jqel_activeButton=jQuery('.sb-active-window .hc-buttons .hc-button.default-focus:first');if(!jqel_activeButton.size()){jqel_activeButton=jQuery('.sb-active-window .hc-buttons .hc-button:first');}
2982jqel_activeButton.trigger('focus');return false;}
2983if(MMI.App.get().isShiftKeyDown()||keyCode===39){if(jqel_activeButton.prev().size()){jqel_activeButton.prev().trigger('focus');}
2983else{jqel_activeButton.siblings().last().trigger('focus');}}else{if(jqel_activeButton.next().size()){jqel_activeButton.next().trigger('focus');}else{jqel_activeButton.siblings().first().trigger('focus');}}
2984return false;}
2985return true;});}
2986return options.jqel;},_legacy_prompt:function(options){var defaultOptions={message:false,content:'',buttons:[{id:'cancel',label:'Cancel'},{id:'ok',label:'OK'}],callback:false,scope:this,fieldType:'text',defaultValue:'',placeholderText:'',options:[],jqel:false,smartBox:{classes:['helix-prompt-dialog'],themes:['base','no-scroll']}};if(Basix.isPlainObject(options.smartBox)){options.smartBox=Basix.extend(Basix.EXTEND_RECURSIVE,Basix.ARRAYS_MERGE,{},defaultOptions.smartBox,options.smartBox);}
2987options=Basix.extend({},defaultOptions,options);if(!Basix.isString(options.message)&&!Basix.isNumeric(options.message)){throw'Helix app.prompt() must be provided with a string or number as a message.';}
2988if(!Basix.isFunction(options.callback)){throw'Helix app.prompt() must be provided with a callback function.';}
2989if(!Basix.isObject(options.scope)){throw'Helix app.prompt() must be provided with a valid scope. Avoid overriding to use the default of the Helix application instance.';}
2990var fieldHtml='';var placeholderText=options.placeholderText;var defaultValue=options.defaultValue;switch(options.fieldType.toLowerCase()){case'textarea':fieldHtml='<textarea class="hp-field autofocus" name="hp-input" type="text" placeholder="'+placeholderText+'" required>'+(defaultValue)+'</textarea>';break;case'select':case'option':fieldHtml='<div class="organism_field-select molecule_field-select molecule_selectList hp-input-organism">\n'+'    <label for="hp-input">Select Field</label>\n'+'    <select name="hp-input" title="Select Field" id="hp-input">';jQuery.each(options.options,function(optionNum,option){var key=option.value;var name=option.label;fieldHtml+="<option value='"+key+"'>"+name+"</option>";});fieldHtml+='</select>\n'+'</div>\n';break;default:fieldHtml='<input class="hp-field autofocus" name="hp-input" type="'+options.fieldType.toLowerCase()+'" placeholder="'+placeholderText+'" value="'+encodeURI(defaultValue)+'" required />';break;}
2991options.content+='<form class="hp-form">'+fieldHtml+'</form>';var buttonClickHandler=function(){var jqel_button=jQuery(this);var hpInput=options.jqel.find('[name="hp-input"]');if(hpInput.parents('.hp-input-organism').size()){hpInput=hpInput.ecoData('organism');}
2992var value=hpInput.val();var result={id:jqel_button.data('hcButtonId'),value:value};var runDefaultBehavior=options.callback.apply(options.scope,[result,options]);if(runDefaultBehavior!==false){runDefaultBehavior=true;}
2993if(runDefaultBehavior){options.jqel.smartBox('close');}};options.jqel=this.confirm(options,buttonClickHandler);return options.jqel;},_legacy_alert:function(options){var defaultOptions={message:false,buttons:[{id:'ok',label:'OK'}],callback:function(result,options){},smartBox:{maxWidth:400,classes:['helix-alert-dialog']}};var args=new Basix.List(arguments);if(args.length>1||(Basix.isPlainObject(options)&&(options.classes||options.themes||options.theme||options.duration||options.id))){console.warn('Helix app.alert() is being called with a depreciated options object format.',args);if(!Basix.isPlainObject(options)){options={message:options,classes:[],themes:[]};}
2994options={message:options.message,smartBox:{classes:options.classes,themes:options.themes}};}else if(Basix.isString(options)||Basix.isNumeric(options)){console.warn('Helix app.alert() has depreciated passing options as a string message directly Please pass an object like {message:"The message."} instead.');options={message:options};}
2995if(Basix.isPlainObject(options.smartBox)){options.smartBox=Basix.extend(Basix.EXTEND_RECURSIVE,Basix.ARRAYS_MERGE,{},defaultOptions.smartBox,options.smartBox);}
2996options=Basix.extend({},defaultOptions,options);return this.confirm(options);},wrappedDialog:function(options){return new HelixWrappedDialog(options);},_baseAlert:function(methodId,content,title,dialogOptions){let options={};if(title){options.title=title;}
2997options={...options,...dialogOptions,};let dialog;switch(methodId){case'alert':dialog=this.getHelixDialogAlertInstance(options);break;case'confirm':dialog=this.getHelixDialogConfirmInstance(options);break;case'prompt':dialog=this.getHelixDialogPromptInstance(options);break;default:throw'Invalid methodId provided. You must specify alert|confirm|prompt.';}
2998if(typeof(content)!=='string'){dialog.block();}
2999dialog.content(content);if(typeof(content)!=='string'){dialog.getContentPromise().then(r=>{dialog.unblock();});}
3000dialog.open();return dialog;},getHelixDialogAlertInstance:function(options){return new HelixDialogAlert(options);},getHelixDialogConfirmInstance:function(options){return new HelixDialogConfirm(options);},getHelixDialogPromptInstance:function(options){return new HelixDialogPrompt(options);},confirm:function(content,title,dialogOptions){if(content&&content instanceof Object&&c
3000ontent.callback instanceof Function){console.warn('This call is a legacy MMI.App.Core.confirm() call. These are now deprecated and you need to update this to the newer Promise-based confirm() by updating the arguments you pass to this call.');return this._legacy_confirm(content,title);}
3001return this._baseAlert('confirm',content,title,dialogOptions);},prompt:function(content,title,dialogOptions){if(content&&content instanceof Object&&content.callback instanceof Function){console.warn('This call is a legacy MMI.App.Core.prompt() call. These are now deprecated and you need to update this to the newer Promise-based prompt() by updating the arguments you pass to this call.');return this._legacy_prompt(content);}
3002return this._baseAlert('prompt',content,title,dialogOptions);},alert:function(content,title,dialogOptions){if(typeof(content)!=='string'&&!(content instanceof Promise)){console.warn('This call is a legacy MMI.App.Core.alert() call. These are now deprecated and you need to update this to the newer Promise-based alert() by updating the arguments you pass to this call.');return this._legacy_alert(content);}
3003return this._baseAlert('alert',content,title,dialogOptions).then(()=>{},()=>{});},queuePermissionCheck:function(types,ids,rootId){throw Error('The queuePermissionCheck() method is not yet implemented. Maybe you meant queuePermissionCheckById?');},setFocus:function(jqel,delay=10,callback=null){if(!Basix.isNumeric(delay)){delay=10;}
3004let{promise,resolve}=Promise.withResolvers();setTimeout(function(){jqel=jQuery(jqel);jqel.trigger('focus');if(Basix.isFunction(callback)){callback(jqel);}else{resolve(jqel);}},delay);if(Basix.isFunction(callback)){return promise;}},copyToClipboard:function(toCopy){var supported=document.queryCommandSupported('copy');if(supported){var el=document.createElement('textarea');el.value=toCopy;document.body.appendChild(el);el.select();var enabled=document.queryCommandEnabled('copy');if(enabled){document.execCommand('copy');}else{this.displayWarningNotification('Copying to the clipboard is not enabled in your browser.','copyNotEnabled.notification.warning');return false;}
3005document.body.removeChild(el);return true;}else{this.displayWarningNotification('Copying to the clipboard is not supported in your browser.','copyNotSupported.notification.warning');return false;}},getCustomDataForIssueReports:function(){return{};}};
3006MMI.Util.namespace('MMI.App.Modules.Dialog');MMI.App.Modules.Dialog={__construct:function(){this._dialogPluginName='lightbox';this._dialogDefaultTheme='flex-base';},_dialogResizeHandler:function(){},_getSiteDialogOverrideOptionsForUseInCore:function(dialogId){return{};},_getSiteDialogMergeOptionsForUseInCore:function(dialogId){return{};},_getSiteDialogOptionsForUseInCore:function(methodName,coreDialogOptions){if(!methodName){throw new Error('You MUST define the methodName argument when calling _getSiteDialogOptionsForUseInCore()');}
3007if(!coreDialogOptions){throw new Error('You MUST define the coreDialogOptions argument when calling _getSiteDialogOptionsForUseInCore()');}
3008let customOptions=Basix.extend(Basix.EXTEND_RECURSIVE,Basix.ARRAYS_MERGE,this._getSiteDialogMergeOptionsForUseInCore(methodName),coreDialogOptions);return Basix.extend({},customOptions,this._getSiteDialogOverrideOptionsForUseInCore(methodName));},dialog:function(optionsOrContent,pluginOptions){var options;var jqel_dialog=jQuery('');if(typeof(optionsOrContent)=='object'&&optionsOrContent!==null){if(jQuery.isPlainObject(optionsOrContent)||!jQuery(optionsOrContent).size()){options=optionsOrContent;}else{jqel_dialog=jQuery(optionsOrContent);options={content:''};}}else{options={content:optionsOrContent};}
3009var defaultOptions;var dialogPluginName=this.getDialogPluginName();if(dialogPluginName=='smartBox'){defaultOptions={content:'',contentId:false};options=jQuery.extend(true,defaultOptions,options);if(typeof(pluginOptions)!='object'||pluginOptions===null){pluginOptions={};}
3010var defaultSmartBoxOptions={id:false};pluginOptions=jQuery.extend(true,defaultSmartBoxOptions,pluginOptions);if(dialogPluginName=='smartBox'){if(pluginOptions['height']!=undefined){pluginOptions['height']+=30;}}
3011if(!pluginOptions.hasOwnProperty('theme')&&!pluginOptions.hasOwnProperty('themes')){pluginOptions.themes=[this.getDialogDefaultTheme()];}
3012if(!options.contentId){if(pluginOptions.id){options.contentId=pluginOptions.id;}else{options.contentId='mmiDialog-'+MMI.Util.randomize(9);}}
3013if(!pluginOptions.id&&options.contentId){pluginOptions.id=options.contentId;}
3014if(!jqel_dialog.size()){jqel_dialog=jQuery('#'+options.contentId);}
3015if(!jqel_dialog.size()){if(!options.content){options.content='<div class="mmiDialogContent" id="'+options.contentId+'"></div>';}
3016jqel_dialog=jQuery(options.content);}else if(options.content){jqel_dialog.html(options.content);}}else{if(typeof(pluginOptions)!='object'||pluginOptions===null){pluginOptions={lightboxClass:'',lightboxDestroyOnClose:true,lightboxRemoveOnDestroy:true,lightboxDestroyOnCloseDelay:60,lightboxFullscreen:true,lightboxFullscreenMargin:30};}
3017if(!pluginOptions.close){pluginOptions.close=function(){console.warn('Using default close and destroy and remove');jQuery(this).find('.live_removing').trigger('removing');jQuery(this).trigger('removing');jQuery(this).dialog('destroy').remove();};}
3018defaultOptions={content:'',contentId:'mmiDialog-'+MMI.Util.randomize(9),baseDialogClass:'mmiDialog',dialogClass:''};options=jQuery.extend(true,defaultOptions,options);if(!pluginOptions.lightboxClass){pluginOptions.lightboxClass=options.baseDialogClass+' '+options.dialogClass;}else{pluginOptions.lightboxClass+=' '+options.baseDialogClass+' '+options.dialogClass;}
3019if(!jqel_dialog.size()){jqel_dialog=jQuery('#'+options.contentId);}
3020if(!jqel_dialog.size()){jqel_dialog=jQuery('<div id="'+options.contentId+'">'+options.content+'</div>');}else if(options.content){jqel_dialog.html(options.content);}}
3021jqel_dialog.on('scroll',function(event){MMI.App.get().triggerEvent('scroll',[event]);MMI.App.get().triggerEvent('firstview');});return jqel_dialog[this.getDialogPluginName()](pluginOptions);},setDialogPluginName:function(dialogPluginName){this._dialogPluginName=dialogPluginName;},getDialogPluginName:function(){return this._dialogPluginName;},setDialogDefaultTheme:function(dialogDefaultTheme){this._dialogDefaultTheme=dialogDefaultTheme;},getDialogDefaultTheme:function(){return this._dialogDefaultTheme;},openItemPreviewDialog:function(itemId){this.openDisplayItemDialog({view:'preview',id:itemId},{classes:['mod_itemPreviewDialog'],fullScreen:true,modal:true,width:'auto',height:'auto'},{mmiAjaxDone:function(json,status,xhr,ajaxOptions){if((json.pageItemData&&json.pageItemData.item_name)||json.dialogTitle){var dialogTitle=json.dialogTitle;if(!dialogTitle){dialogTitle=json.pageItemData.item_name;}
3022if(!dialogTitle){dialogTitle=json.pageItemData.item_type+' Preview';}
3023ajaxOptions.jqel.smartBox('getDialog').smartBox('setTitle',dialogTitle);}}});},openSignInDialog:function(dialogOptions,ajaxOptions,signInOptions,dialogClass=HelixWrappedDialog){var resendAjaxWithOptions=null;var defaultDialogOptions={themes:[this.getDialogDefaultTheme(),'signInDialog'],title:'Sign In',minimize:false,maximize:false,resizable:false,modal:true,width:580,height:'auto',closeCallbacks:[]};if(ajaxOptions&&ajaxOptions.resendAjaxRequest){resendAjaxWithOptions=Basix.extend({},ajaxOptions.resendAjaxRequest,{isResend:true});}
3024var defaultSignInOptions={resumeSession:false,targetUrl:null,usePromiseSignInDialogHandlers:false,};signInOptions=Basix.extend(Basix.EXTEND_RECURSIVE,defaultSignInOptions,signInOptions);if(signInOptions.resumeSession===true){defaultDialogOptions.titleBar=false;}
3025if(!dialogOptions){dialogOptions={};}
3026dialogOptions=this._getSiteDialogOptionsForUseInCore('openSignInDialog',dialogOptions);dialogOptions=Basix.extend(Basix.EXTEND_RECURSIVE,{},defaultDialogOptions,dialogOptions);var defaultAjaxOptions={data:{mode:'login',signInOptions:signInOptions},};if(signInOptions.resumeSession===true){defaultAjaxOptions.data.resumeSession=true;defaultAjaxOptions.replaceElement=true;}
3027ajaxOptions=Basix.extend(Basix.EXTEND_RECURSIVE,{},defaultAjaxOptions,ajaxOptions);const ajaxData=ajaxOptions.data;delete ajaxOptions.data;const ajaxContentPromise=this.ajaxUsingPromise(ajaxData,ajaxOptions).then(json=>json.result);const dialog=new dialogClass(dialogOptions);dialog.spin().content(ajaxContentPromise).open();if(signInOptions.resumeSession===true){const onSignInDialogClose=()=>{const message=Eco.NotificationController.getMessageByName('sessionTimedOut');if(message){message.hide();}
3028if(resendAjaxWithOptions!==null){this.ajax(resendAjaxWithOptions);}};dialog.then(onSignInDialogClose,onSignInDialogClose);}
3029if(signInOptions.usePromiseSignInDialogHandlers){dialog.data.signInPromise=this.createSignInPromiseForDialog();return dialog.data.signInPromise.promise;}}
3029,createSignInPromiseForDialog:function(){const signInPromise=Promise.withResolvers();signInPromise.promise.catch(rejectData=>{const{event,app,jqel_form,data,json,status,jqXhr,ajaxData,formOrganism}=rejectData.props;app.ecoForm_processEvent(jqel_form,'formerror',[json,status,jqXhr,ajaxData,formOrganism],app.ecoForm_defaultFormError);});return signInPromise;},openSignInDialogUsingPromise:async function(dialogOptions,ajaxOptions,signInOptions,dialogClass=HelixWrappedDialog){signInOptions.usePromiseSignInDialogHandlers=true;return this.openSignInDialog(dialogOptions,ajaxOptions,signInOptions,dialogClass);},openPasswordResetDialog:async function(content,options){var resendAjaxWithOptions=null;if(options&&options.resendAjaxRequest){resendAjaxWithOptions=options.resendAjaxRequest;}
3030var app=this;const dialog=new HelixWrappedDialog();dialog.applyOptionsSet(HelixWrappedDialog.OPTIONS_DEFAULTS).applyOptions({width:580,height:500,titleBar:false,modal:true,close:false}).addTheme(this.getDialogDefaultTheme()).addTheme('eco').addTheme('signInDialog').addTheme('resetPasswordDialog').content(content).open();dialog.then(()=>{const message=Eco.NotificationController.getMessageByName('passwordResetRequired');if(message){message.hide();}
3031if(resendAjaxWithOptions){app.ajax(resendAjaxWithOptions);}});const newContent=await dialog.getElement();this.initializeNewContent(newContent);await Eco.OrganismController.scan(newContent);return dialog;},openEditItemDialog:function(requestData,dialogOptions,ajaxOptions){if(!jQuery.isPlainObject(requestData)){if(typeof(requestData)==='string'){if(isNaN(parseInt(requestData,10))){requestData={seo_name:requestData};}else{requestData={id:requestData};}}}
3032if(!requestData.id&&!requestData.seo_name&&!requestData.type){console.warn('Warning, no item id, item seo name, or item type provided. Dialog can not open.');return false;}
3033return this.openAjaxDialog(requestData,dialogOptions,ajaxOptions,'edit');},openCreateItemDialog:function(requestData,dialogOptions,ajaxOptions){if(!jQuery.isPlainObject(requestData)){if(typeof(requestData)==='string'){requestData={type:requestData};}else{requestData={};}}
3034if(!requestData.type){console.warn('Warning, no item type provided. Dialog can not open.');return false;}
3035return this.openAjaxDialog(requestData,dialogOptions,ajaxOptions,'edit');},openDisplayItemDialog:function(requestData,dialogOptions,ajaxOptions){if(!jQuery.isPlainObject(requestData)){if(typeof(requestData)==='string'){if(isNaN(parseInt(requestData,10))){requestData={seo_name:requestData};}else{requestData={id:requestData};}}}
3036if(!requestData.id&&!requestData.seo_name){console.warn('Warning, no item id or item seo name provided. Dialog can not open.');return false;}
3037return this.openAjaxDialog(requestData,dialogOptions,ajaxOptions,'display');},openDialog:function(dialogOptions,content){var defaultDialogOptions={modal:false,width:600,height:500,themes:['eco'],minimize:false,maximize:false,title:false};dialogOptions=Basix.extend(Basix.EXTEND_RECURSIVE,Basix.ARRAYS_OVERRIDE,defaultDialogOptions,dialogOptions);var jqel_dialogContent=jQuery(content).smartBox(dialogOptions).smartBox('getDialogContent');return jqel_dialogContent.smartBox('getDialog');},openAjaxDialog:function(requestData,dialogOptions,ajaxOptions,mode){var defaultDialogOptions={modal:false,width:600,height:500,themes:['eco'],minimize:false,maximize:false,title:false};dialogOptions=Basix.extend(Basix.EXTEND_RECURSIVE,Basix.ARRAYS_OVERRIDE,defaultDialogOptions,dialogOptions);var customTitle=true;if(dialogOptions.title===false){dialogOptions.title='Loading';customTitle=false;}
3038var defaultContent='';if(Basix.namespaceExists('Be.Fancy')){defaultContent=Be.Fancy.generateSpinner(true);}else{console.warn('Be.Fancy package is not loaded. Unable to automatically inject a spinner.');}
3039var jqel_dialogContent=jQuery(defaultContent).smartBox(dialogOptions).smartBox('getDialogContent');var defaultAjaxOptions={jqel:jqel_dialogContent,data:{}};if(!jQuery.isPlainObject(ajaxOptions)){ajaxOptions={};}
3040ajaxOptions=jQuery.extend(true,defaultAjaxOptions,ajaxOptions);ajaxOptions.data=jQuery.extend(ajaxOptions.data,requestData);if(mode!==undefined){ajaxOptions.data.mode=mode;}
3041function defaultAjaxDone(json,status,xhr,ajaxOptions){if(json.dialogTitle){jqel_dialogContent.smartBox('getDialog').smartBox('setTitle',json.dialogTitle);}else if(customTitle===false&&json.pageItemData&&json.pageItemData.item_name){jqel_dialogContent.smartBox('getDialog').smartBox('setTitle',json.pageItemData.item_name);}else if(customTitle===false){jqel_dialogContent.smartBox('getDialog').smartBox('setTitle','&nbsp;');}
3042var jqel_firstField=jqel_dialogContent.find('input:not([type="hidden"]), select').first();if(jqel_firstField.length){setTimeout(function(){jqel_firstField.trigger('focus');},100);}}
3043var customAjaxDone=ajaxOptions.mmiAjaxDone;ajaxOptions.mmiAjaxDone=function(json,status,xhr,ajaxOptions){if(json.server.status!==true){var jqel_dialog=ajaxOptions.jqel.smartBox('getDialog');jqel_dialog.smartBox('close');}
3044var result=true;if(customAjaxDone instanceof Function){result=customAjaxDone(json,status,xhr,ajaxOptions);}
3045if(result===false){return false;}
3046return defaultAjaxDone(json,status,xhr,ajaxOptions);};this.ajax(ajaxOptions);var jqel_dialog=jqel_dialogContent.smartBox('getDialog');return jqel_dialog;},adminOpenDialog:function(id,ajaxData,ajaxOptions,dialogOptions,sourceElement,successCallback,errorCallback){if(!jQuery.isPlainObject(ajaxOptions)){ajaxOptions={};}
3047if(!jQuery.isPlainObject(ajaxData)){ajaxData={};}
3048if(!jQuery.isPlainObject(dialogOptions)){dialogOptions={};}
3049dialogOptions=jQuery.extend({},{width:'css',height:'css',position:'css',resizable:false,draggable:false,modal:true,maximize:false,minimize:false,close:function(){jQuery(window).trigger('resize');}},dialogOptions);var customTitle=true;if(!dialogOptions.title){dialogOptions.title='Loading';customTitle=false;}
3050var defaultContent='';if(Basix.namespaceExists('Be.Fancy')){defaultContent=Be.Fancy.generateSpinner(true);}else{console.warn('Be.Fancy package is not loaded. Unable to automatically inject a spinner.');}
3051var jqel_dialogContent=jQuery(defaultContent).smartBox(dialogOptions).smartBox('getDialogContent');var ajaxDataDefaults={mode:'edit',view:'eco'};if(id!==false){ajaxDataDefaults.id=id;}
3052ajaxData=jQuery.extend({},ajaxDataDefaults,ajaxData);ajaxOptions=jQuery.extend({},{data:ajaxData,jqel:jqel_dialogContent,mmiAjaxDone:function(json,status,xhr,ajaxOptions){if(!customTitle&&((json.pageItemData&&json.pageItemData.item_name)||json.dialogTitle)){var dialogTitle=json.dialogTitle;if(!dialogTitle){dialogTitle=json.pageItemData.item_name;}
3053if(!dialogTitle){dialogTitle='New '+json.pageItemData.item_type;}
3054jqel_dialogContent.smartBox('getDialog').smartBox('setTitle',dialogTitle);}else if(!customTitle){jqel_dialogContent.smartBox('getDialog').smartBox('setTitle','Loaded');}
3055var jqel_dialog=ajaxOptions.jqel.smartBox('getDialog');jqel_dialog.data('ajaxLoadData',ajaxOptions.mmiAjaxOriginalData);setTimeout(function(){var jqel_field=ajaxOptions.jqel.find('[class^="organism_field-"]:first').find('select, input');jqel_field.trigger('focus');if(Basix.isFunction(jqel_field.caret)){jqel_field.caret('selectAll');}
3056if(successCallback instanceof Function){successCallback(json,status,xhr,ajaxOptions);}},150);},mmiAjaxFail:function(json,status,xhr,ajaxOptions){if(errorCallback instanceof Function){errorCallback(json,status,xhr,ajaxOptions);}}},ajaxOptions);this.ajax(ajaxOptions);setTimeout(function(){jqel_dialogContent.smartBox('getDialog').removeClass('mod_offScreen');},50);var jqel_dialog=jqel_dialogContent.smartBox('getDialog');if(id){jqel_dialog.data('dialogItemId',id);}
3057if(sourceElement instanceof jQuery&&sourceElement.size()){jqel_dialog.data('sourceElement',sourceElement);jqel_dialog.data('parentDialog',sourceElement.smartBox('getDialog'));}
3058return jqel_dialog;},adminOpenPartialDialog:function(id,ajaxData,ajaxOptions,dialogOptions,parentDialog,successCallback,errorCallback){if(!jQuery.isPlainObject(dialogOptions)){dialogOptions={};}
3059dialogOptions=jQuery.extend({},{themes:['eco-admin'],classes:['mod_partial','mod_offScreen'],closeOnOverlayClick:true},dialogOptions);return this.adminOpenDialog(id,ajaxData,ajaxOptions,dialogOptions,parentDialog,successCallback,errorCallback);},adminOpenFullDialog:function(id,ajaxData,ajaxOptions,dialogOptions,parentDialog,successCallback,errorCallback){if(!jQuery.isPlainObject(dialogOptions)){dialogOptions={};}
3060dialogOptions=jQuery.extend({},{themes:['eco-admin'],classes:['mod_full','mod_offsetForAdminToolbar']},dialogOptions);return this.adminOpenDialog(id,ajaxData,ajaxOptions,dialogOptions,parentDialog,successCallback,errorCallback);},adminOpenFloatingDialog:function(id,ajaxData,ajaxOptions,dialogOptions,sourceElement,successCallback,errorCallback){if(!jQuery.isPlainObject(ajaxData)){ajaxData={};}
3061if(!jQuery.isPlainObject(dialogOptions)){dialogOptions={};}
3062dialogOptions=jQuery.extend({},{themes:['eco-admin'],classes:['mod_floating'],position:'center'},dialogOptions);return this.adminOpenDialog(id,ajaxData,ajaxOptions,dialogOptions,sourceElement,successCallback,errorCallback);}};
3063MMI.Util.namespace('MMI.App.Modules.Issue');MMI.App.Modules.Issue={_ajaxCompletedStack:[],_issueEnabled:false,_maxAjaxCompletedStackSize:false,__construct:function(){},openIssueReportingDialog:function(defaultIssueCategory){var ajaxData={view:'default',mode:'issue',defaultIssueCategory:defaultIssueCategory};var dialog=this.dialog('',{width:500});this.ajax({jqel:dialog,data:ajaxData,replaceElement:true,doNotLog:true});},hasIssueManager:function(){if(this._maxAjaxCompletedStackSize===false){this._issueEnabled=MMI.Settings.getSetting('issue','enabled',true);this._maxAjaxCompletedStackSize=MMI.Settings.getSetting('issue','store_ajax_requests',3);}
3064return this._issueEnabled;},logAjaxComplete:function(ajaxData,status,returnData){if(this.hasIssueManager()&&ajaxData.doNotLog!=true){var info={trackingId:returnData.trackingId,allErrorMessages:returnData.allErrorMessages,postData:returnData.postdata,result:returnData.result,user:returnData.user,login:returnData.login,logout:returnData.logout,pageItemData:returnData.pageItemData};this._ajaxCompletedStack.unshift(info);while(this._ajaxCompletedStack.length>this._maxAjaxCompletedStackSize){this._ajaxCompletedStack.pop();}}}};
3065MMI.Util.namespace('MMI.App.Modules.Form');MMI.App.Modules.Form={getGenomeItemFieldByName:function(fieldName,scope){fieldName=this._getActualFieldname(fieldName,scope);var jqel;var selector='[data-field-name="'+fieldName+'"]';if(typeof(scope)!='undefined'){jqel=jQuery(scope).find(selector).find('.mmiFormFieldControl').find('[name^="item"]');}else{jqel=jQuery(selector).find('.mmiFormFieldControl').find('[name^="item"]');}
3066if(!jqel||jqel.length==0){if(typeof(scope)!='undefined'){jqel=jQuery(scope).find('input'+selector+', select'+selector+', textarea'+selector+', ul'+selector+' input[name^="item"]').filter('[name^="item"]');}else{jqel=jQuery('input'+selector+', select'+selector+', textarea'+selector+', ul'+selector+' input[name^="item"]').filter('[name^="item"]');}}
3067return jqel;},getGenomeFormFieldByName:function(fieldName,scope){fieldName=this._getActualFieldname(fieldName,scope);var jqel;var selector='[data-field-name="'+fieldName+'"]';if(typeof(scope)!='undefined'){jqel=jQuery(scope).find(selector).find('.mmiFormFieldControl').find('[name^="formdata"]');}else{jqel=jQuery(selector).find('.mmiFormFieldControl').find('[name^="formdata"]');}
3068if(!jqel||jqel.length===0){if(typeof(scope)!='undefined'){jqel=jQuery(scope).find('input'+selector+', select'+selector+', textarea'+selector+', ul'+selector+' input[name^="formdata"]').filter('[name^="formdata"]');}else{jqel=jQuery('input'+selector+', select'+selector+', textarea'+selector+', ul'+selector+' input[name^="formdata"]').filter('[name^="formdata"]');}
3069if(!jqel.length){fieldName='['+fieldName+']';fieldName=fieldName.replace(/[\[]+/g,'\[').replace(/[\]]+/g,'\]');selector='[name$="'+fieldName+'"]';if(typeof(scope)!='undefined'){jqel=jQuery(scope).find('input'+selector+', select'+selector+', textarea'+selector+', ul'+selector+' input[name^="formdata"]').filter('[name^="formdata"]');}else{jqel=jQuery('input'+selector+', select'+selector+', textarea'+selector+', ul'+selector+' input[name^="formdata"]').filter('[name^="formdata"]');}}}
3070return jqel;},getGenomeFormFieldByExternalName:function(externalName,scope){return this.getGenomeFormFieldByName(externalName,scope);},getFieldByName:function(fieldName,scope){var jqel;var escapedFieldName=fieldName.replace(/[\[]+/g,'\[').replace(/[\]]+/g,'\]');escapedFieldName=this._getActualFieldname(escapedFieldName,scope);var selector='[name="'+escapedFieldName+'"]';if(typeof(scope)!='undefined'){jqel=jQuery(scope).find(selector);}else{jqel=jQuery(selector);}
3071if(!jqel||jqel.length===0){if(typeof(scope)!='undefined'){jqel=jQuery(scope).find('[data-field-name="'+escapedFieldName+'"]');}else{jqel=jQuery('[data-field-name="'+escapedFieldName+'"]');}}
3072return jqel;},_getActualFieldname:function(fieldName,scope){var jqel_forms=jQuery();if(!typeof(scope)=='undefined'){jqel_forms=jQuery(scope);}
3073if(typeof(scope)=='undefined'||!jqel_forms.length){jqel_forms=jQuery('form');}
3074var fieldActualName=fieldName;jqel_forms.each(function(){var jqel_form=jQuery(this);var fieldsByName=jqel_form.mmiData('fieldVariableNames');if(fieldsByName){jQuery.each(fieldsByName,function(fieldReferenceName,fieldVariableName){if(fieldVariableName==fieldName){fieldActualName=fieldReferenceName;return false;}});}});return fieldActualName;},sendLogInRequest:function(username,password,successHandlerCallback,errorHandlerCallback){if(typeof(successHandlerCallback)!='function'){successHandlerCallback=function(){cwarn('MMI.App.Core.sendLogInRequest() requires a success handler callback.');};}
3075if(typeof(errorHandlerCallback)!='function'){errorHandlerCallback=function(){cwarn('MMI.App.Core.sendLogInRequest() requires an error handler callback.');};}
3076var loginSuccessHandler=function(response){if(typeof(response)=='object'){if(response.login_result){successHandlerCallback(response);}}else{errorHandlerCallback(response);}};return MMI.App.get().login({password:password,usernameOrEmail:username},{data:{id:'1'},mmiAjaxDone:loginSuccessHandler,mmiAjaxFail:errorHandlerCallback});},sendLogOutRequest:function(successHandlerCallback,errorHandlerCallback){if(typeof(successHandlerCallback)!='function'){successHandlerCallback=function(){cwarn('MMI.App.Core.sendLogOutRequest
3076() requires a success handler callback.');};}
3077if(typeof(errorHandlerCallback)!='function'){errorHandlerCallback=function(){cwarn('MMI.App.Core.tryLogout() requires an error handler callback.');};}
3078var logoutSuccessHandler=function(response){if(typeof(response)=='object'){if(response.logout_result){successHandlerCallback(response);}}else{errorHandlerCallback(response);}};return MMI.App.get().logout({},{mmiAjaxDone:logoutSuccessHandler,mmiAjaxFail:errorHandlerCallback});},openLogOutDialog:function(event,app,jqel,data){jQuery('<div id="mmi-logoutDialog">\n'+'<div id="mmi-logoutError" class="basicErrorMessage hidden">Error processing log out request. Please try again.</div>\n'+'<div id="mmi-logoutProcessing">Processing log out request. Please wait.</div>\n'+'</div>').smartBox({width:410,modal:true,cssClass:'mmi-logoutDialog'});app.sendLogOutRequest(function(){setTimeout(function(){var url=window.location.pathname;if(url.indexOf('mode=logout')>-1||url.indexOf('/mode/logout')>-1){window.location.href='/';}else{window.location.reload(true);}},200);},function(){jQuery('#mmi-logoutProcessing').slideUp();jQuery('#mmi-logoutError').slideDown();setTimeout(function(){jQuery('#mmi-logoutDialog').smartBox('close');},1600);});},openLogInDialog:function(event,app,jqel,data){var registerLinkHtml='';var forgotPasswordHtml='';if(data.showRegisterLink){var registerLink='/mode/edit/type=profile';var forgotPasswordLink='/mode/password_reset/view=request';if(data.registerLink){registerLink=data.registerLink;}
3079registerLinkHtml='<tr>'+'<td colspan="2" class="registerLink">'+'<a href="'+registerLink+'">Register Here</a> or...<div class="loginTitle">Login</div>'+'</td>'+'</tr>';forgotPasswordHtml='<tr>'+'<td colspan="2" class="forgotPasswordLink">'+'<a href="'+forgotPasswordLink+'">Click Here to Reset Your Password?</a>'+'</td>'+'</tr>';}
3080var loginDialogHtml='<div id="mmi-loginDialog">'+'<div id="mmi-loginMessageBox" class="alertBox"></div>'+'<form name="mmi-loginForm" class="live_submit" action="" method="post" data-live_submit_handler="attemptLogin">'+'<table align="center">'+
3081registerLinkHtml+'<tr>'+'<td>Username:</td>'+'<td id="mmi-loginUsernameCell"></td>'+'</tr>'+'<tr>'+'<td>Password:</td>'+'<td id="mmi-loginPasswordCell"></td>'+'</tr>'+'<tr>'+'<td colspan="2" align="right"><input type="submit" value="Log In" /></td>'+'</tr>'+
3082forgotPasswordHtml+'</table>'+'</form>'+'</div>';var lightboxOptions={width:410};if(!data.hasOwnProperty('dialogOptions')||!jQuery.isPlainObject(data.dialogOptions)){data.dialogOptions={};}
3083var dialogOptions=jQuery.extend({},lightboxOptions,data.dialogOptions);var jqel_dialog=MMI.App.getInstance().dialog(loginDialogHtml,dialogOptions);var jqel_usernameFieldTemplate=jQuery('#mmi-loginUsernameFieldTemplate');if(!jqel_usernameFieldTemplate.length){jqel_usernameFieldTemplate=jQuery('<input id="mmi-loginUsernameFieldTemplate" name="username" type="text" />');}
3084var jqel_passwordFieldTemplate=jQuery('#mmi-loginPasswordFieldTemplate');if(!jqel_passwordFieldTemplate.length){jqel_passwordFieldTemplate=jQuery('<input id="mmi-loginPasswordFieldTemplate" name="password" type="password" />');}
3085var jqel_usernameField=jqel_usernameFieldTemplate.clone().attr('id','mmi-loginUsername');var jqel_passwordField=jqel_passwordFieldTemplate.clone().attr('id','mmi-loginPassword');jQuery('#mmi-loginUsernameCell').append(jqel_usernameField);jQuery('#mmi-loginPasswordCell').append(jqel_passwordField);jqel_usernameField.focus();return jqel_dialog;},attemptLogin:function(event,app,jqel,data){var jqel_alertBox=jQuery('#mmi-loginMessageBox');jqel_alertBox.children().animate({opacity:0}
3085,{complete:function(){jQuery(this).remove();}});var usernameOrEmail=jQuery('#mmi-loginUsername').val();var password=jQuery('#mmi-loginPassword').val();if(!usernameOrEmail&&!password){app.alert({message:'Please enter your username and password.',type:'warning'},jqel_alertBox);return false;}
3086app.alert({message:'Please wait while we log you in.',type:'message'},jqel_alertBox);var ajaxData={mode:'login',view:'blank',id:'1',password:password};if(MMI.Util.isValidEmail(usernameOrEmail)){ajaxData.email=usernameOrEmail;}else{ajaxData.username=usernameOrEmail;}
3087var ajaxOptions={data:ajaxData,mmiAjaxDone:function(json,status,jqXhr,ajaxOptions){var app=MMI.App.getInstance();var jqel_alertBox=jQuery('#mmi-loginMessageBox');if(json.logged_in){app.alert({message:'You are now logged in.<br /><br />Please wait while the page reloads.',type:'success'},jqel_alertBox);var url=window.location.pathname;if(url.indexOf('mode=login')>-1||url.indexOf('/mode/login')>-1){window.location.href='/';}else{window.location.reload(true);}}else{app.alert({message:'Error logging in.<br /><br />Make sure you entered your username and password correctly.',type:'warning'},jqel_alertBox);jQuery('#mmi-loginUsername').focus();}}};app.ajax(ajaxOptions);return false;},attemptPasswordReset:function(event,app,jqel,data){var jqel_alertBox=jQuery('#mmi-passwordResetDialog .alertBox');jqel_alertBox.children().animate({opacity:0}
3087,{complete:function(){jQuery(this).remove();}});var username=jQuery('#mmi-passwordResetUsername').val();var email=jQuery('#mmi-passwordResetEmail').val();var resetTokenParameterName='';var resetTokenParameterValue='';if(!username&&!email){app.alert({message:'Please enter your username or e-mail.',type:'warning'},jqel_alertBox);return false;}else if(username){resetTokenParameterName='user';resetTokenParameterValue=username;}else{resetTokenParameterName='email';resetTokenParameterValue=email;}
3088var ajaxData={mode:'password_reset',view:'blank',password_reset:{confirm:1}};ajaxData['password_reset'][resetTokenParameterName]=resetTokenParameterValue;var ajaxOptions={data:ajaxData,mmiAjaxDone:function(json,status,jqXhr,ajaxOptions){var PASSWORD_RESET=100;var INVALID_USERNAME_AND_EMAIL=101;var EMAIL_NOT_REGISTERED=102;var UNKNOWN_ERROR=103;var NOT_SUBMITTED=104;var messageType='warning';switch(json.status_code){case PASSWORD_RESET:messageType='success';json.status_message='Your password has been reset.<br /><br />Please wait while we load the log-in page.';break;}
3089var app=MMI.App.getInstance();var jqel_alertBox=jQuery('#mmi-passwordResetDialog .alertBox');app.alert({message:json.status_message,type:messageType},jqel_alertBox);if(json.status_code==PASSWORD_RESET){window.location.href='/mode/login';}else{jQuery('#mmi-passwordResetUsername').focus();}}};app.alert({message:'Please wait while we attempt to reset your password.',type:'message'},jqel_alertBox);app.ajax(ajaxOptions);return false;},cloneItems:function(options){if(!jQuery.isPlainObject(options)){cwarn('MMI.App.cloneItems(options) where options should be of type `object`. You provided a parameter of type `'+(typeof(options))+'`.');}
3090var defaultOptions={itemIds:false,parentId:undefined,view:'blank',nextMode:'display',jqel:false,replaceContent:true,replaceElement:false,cloneDeep:false,cloneItemRefs:false,ajaxData:{},mmiAjaxDone:false};options=jQuery.extend(defaultOptions,options);if(!jQuery.isArray(options.itemIds)){cwarn('Invalid options.itemIds provided to MMI.App.cloneItems(). You provided the following options: ',options);return;}
3091var ajaxData={mode:'clone_multi',clone:{},id:1,view:options.view,next_mode:options.nextMode};jQuery.each(options.itemIds,function(index,itemId){ajaxData['clone'][itemId]={deep:options.cloneDeep?1:0,itemRefs:options.cloneItemRefs?1:0,parentId:options.parentId,confirm:1};});ajaxData=jQuery.extend(ajaxData,options.ajaxData);var ajaxOptions={jqel:options.jqel,replaceElement:options.replaceElement,replaceContent:options.replaceContent,data:ajaxData,loaderStyleTargets:options.loaderStyleTargets,mmiAjaxDone:options.mmiAjaxDone};this.ajax(ajaxOptions);},cloneItem:function(options){if(typeof(options)!='object'){this.displayErrorNotification('MMI.App.cloneItem(options) where options should be of type `object`. You provided a parameter of type `'+typeof(options)+'`.','MMI.App.cloneItem',{options:options});}
3092var defaultOptions={itemId:false,seoName:false,parentId:undefined,view:'blank',nextMode:'display',jqel:false,replaceContent:true,replaceElement:false,cloneDeep:false,cloneItemRefs:false,ajaxData:{},mmiAjaxDone:false,seoPrefix:'',seoSuffix:''};options=jQuery.extend(defaultOptions,options);var ajaxData={mode:'hyper_clone',confirm_clone:1,clone_deep:options.cloneDeep?1:0,clone_item_refs:options.cloneItemRefs?1:0,parent_id:options.parentId,view:options.view,next_mode:options.nextMode};if(options.seoPrefix){ajaxData.seo_prefix=options.seoPrefix;}
3093if(options.seoSuffix){ajaxData.seo_suffix=options.seoSuffix;}
3094if(options.itemId){ajaxData.id=options.itemId;}
3095if(options.seoName){ajaxData.seo_name=options.seoName;}
3096ajaxData=jQuery.extend(ajaxData,options.ajaxData);var ajaxOptions={jqel:options.jqel,replaceElement:options.replaceElement,replaceContent:options.replaceContent,data:ajaxData,loaderStyleTargets:options.loaderStyleTargets,mmiAjaxDone:options.mmiAjaxDone};this.ajax(ajaxOptions);},_old_deleteItem:function(options){if(typeof(options)!='object'){cwarn('MMI.App.deleteItem(options) where options should be of type `object`. You provided a parameter of type `'+typeof(options)+'`.');return;}
3097var defaultOptions={itemId:false,deleteChildren:false,itemTypeUiLabel:'Item',promptMessage:false,jqel:false,skipConfirmationPrompt:false,replaceContent:true,replaceElement:false,view:'blank',mmiAjaxDone:function(){}};options=jQuery.extend(defaultOptions,options);if(!jQuery.isArray(options.itemId)){options.itemId=[options.itemId];}
3098var prompt;if(options.promptMessage){prompt=options.promptMessage;}else{if(options.itemId.length>1){prompt='Are you sure you want to delete these '+options.itemId.length+' '+options.itemTypeUiLabel+'?';}else{prompt='Are you sure you want to delete this '+options.itemTypeUiLabel+'?';}}
3099var result=options.skipConfirmationPrompt?true:confirm(prompt);
3099if(result){var ajaxData={id:options.itemId[0],mode:'delete',view:options.view};jQuery.each(options.itemId,function(i,itemId){if(options.deleteChildren){ajaxData['delete['+itemId+'][children]']=1;}
3100ajaxData['delete['+itemId+'][confirm]']=1;});var jqel=jQuery(options.jqel);var ajaxOptions={data:ajaxData,replaceContent:options.replaceContent,replaceElement:options.replaceElement,loaderStyleTargets:jqel,mmiAjaxLoaderClass:'mmiAjaxLoader mmiAjaxDelete',mmiAjaxDone:options.mmiAjaxDone,done:jQuery.proxy(function(json,status,jqXhr,opts){var options=this;var jqel=jQuery(options.jqel);var app=MMI.App.getInstance();if(typeof(options.mmiAjaxDone)=='function'){options.mmiAjaxDone.apply(this,[json,status,jqXhr,options]);}
3101if(jQuery.inArray(options.itemId[0].toString(),json.deleted_items)!==-1||jQuery.inArray(parseInt(options.itemId[0],10),json.deleted_items)!==-1){jqel.trigger('deletesuccess',[json,options]);}else{jqel.trigger('deleteerror',[json,options]);}
3102if((options.replaceContent||options.replaceElement)&&options.jqel){options.jqel.find('.live_removing').trigger('removing');if(options.replaceElement){var jqel_temp=jQuery(json.result);options.jqel.replaceWith(jqel_temp);options.jqel=jqel_temp;}else{options.jqel.html(json.result);}
3103if(options.replaceElement){app._doInternetExplorerNonBubblingEventWorkarounds(options.jqel,true);options.jqel.trigger('creating');}
3104app._doInternetExplorerNonBubblingEventWorkarounds(options.jqel);app.initializeNewContent(options.jqel);}},options),fail:jQuery.proxy(function(json,jqXhr){var options=this;var jqel=jQuery(options.jqel);jqel.trigger('deleteerror',[json,options]);},options),mmiAjaxAlways:jQuery.proxy(function(json,status,jqXhr){var options=this;var jqel=jQuery(options.jqel);jqel.trigger('deletecomplete',[json,options]);},options)};jqel.trigger('beforedelete');return this.ajax(ajaxOptions);}else{return false;}}};
3105MMI.Util.namespace('MMI.App.Modules.Login');MMI.App.Modules.Login={_alertLoginStatus:function(status,data){var message;var messageType;var loginType=data.loginType;var ajaxData={};var ajaxOptions={};if(status){if(loginType=='registration'){message='Your account has been created and you are now logged in';messageType='success';}else{message='You are now logged in';messageType='success';MMI.App.get()._displayLoginStatus('success');}}else{if(loginType=='registration'){message='An error has occurred, unable to login';messageType='warning';MMI.App.get()._displayLoginStatus('failed');}else{message='Invalid username or password';messageType='warning';MMI.App.get()._displayLoginStatus('failed');}}
3106this.alert({message:message,type:messageType});if(!status){return false;}
3107var currentUrl=window.location.pathname;var targetUrl=data.loginTargetUrl;var seo_name=data.item_seo_name;var item_id=data.item_id;if(targetUrl){window.location.href=targetUrl;cinfo('Using targetUrl: '+targetUrl);}else if(seo_name){window.location.href='/content/'+seo_name;cinfo('Using seo_name: '+seo_name);}else if(item_id){window.location.href='/page/'+item_id;cinfo('Using item_id: '+item_id);}else if(currentUrl.indexOf('mode=login')>-1||currentUrl.indexOf('/mode/login')>-1){window.location.href='/';cinfo('Returning to homepage');}else{window.location.reload(true);cinfo('Simply reloading page');}},_alertPasswordResetStatus:function(data,json){var ajaxData={};var ajaxOptions={};var status=json.passwordReset.status;if(!status){var errorMessage=json.passwordReset.error.message;this.alert({message:errorMessage,type:'warning'});return false;}
3108this.alert({message:'Your password has been reset, Please check your email.',type:'success'});window.location.href="/mode/login";},_displayLoginStatus:function(status){jQuery('body').alterClass('login-*','login-'+status);},login:function(loginOptions,ajaxOptions){var defaultLoginOptions={usernameOrEmail:false,email:false,username:false,password:false};loginOptions=Basix.extend({},defaultLoginOptions,loginOptions);if(loginOptions.password===false){cwarn('Login Error: No password provided');return false;}
3109var defaultAjaxOptions={data:{mode:'login',view:'blank'}};ajaxOptions=Basix.extend(Basix.EXTEND_RECURSIVE,{},defaultAjaxOptions,ajaxOptions);var hasUsername=false;if(loginOptions.username&&typeof(loginOptions.username)=='string'){hasUsername=true;ajaxOptions.data.username=loginOptions.username;}
3110if(!hasUsername&&loginOptions.email&&typeof(loginOptions.email)=='string'){if(MMI.Util.isValidEmail(loginOptions.email)){hasUsername=true;ajaxOptions.data.email=loginOptions.email;}else{cwarn('Error, invalid email');}}
3111if(!hasUsername&&loginOptions.usernameOrEmail&&typeof(loginOptions.usernameOrEmail)=='string'){if(MMI.Util.isValidEmail(loginOptions.usernameOrEmail)){hasUsername=true;ajaxOptions.data.email=loginOptions.usernameOrEmail;}else{hasUsername=true;ajaxOptions.data.username=loginOptions.usernameOrEmail;}}
3112if(!hasUsername){cwarn('Login Error: No value for email or username');return false;}
3113ajaxOptions.data.password=loginOptions.password;if(ajaxOptions.mmiAjaxDone){ajaxOptions.mmiAjaxLoginDone=ajaxOptions.mmiAjaxDone;}
3114if(ajaxOptions.mmiAjaxFail){ajaxOptions.mmiAjaxLoginFail=ajaxOptions.mmiAjaxFail;}
3115ajaxOptions.mmiAjaxDone=this.loginSuccess;ajaxOptions.mmiAjaxFail=this.loginFail;return MMI.App.get().ajax(ajaxOptions);},logout:function(options,ajaxOptions){var defaultAjaxOptions={data:{mode:'logout',view:'blank'}};ajaxOptions=Basix.extend(Basix.EXTEND_RECURSIVE,{},defaultAjaxOptions,ajaxOptions);if(ajaxOptions.mmiAjaxDone){ajaxOptions.mmiAjaxLogoutDone=ajaxOptions.mmiAjaxDone;}
3116if(ajaxOptions.mmiAjaxFail){ajaxOptions.mmiAjaxLogoutFail=ajaxOptions.mmiAjaxFail;}
3117ajaxOptions.mmiAjaxDone=this.logoutSuccess;ajaxOptions.mmiAjaxFail=this.logoutFail;return MMI.App.get().ajax(ajaxOptions);},loginSuccess:function(json,status,xhr,ajaxOptions){if(json.login.status==true){MMI.App.get().triggerEvent('loginsuccess',[json]);if(ajaxOptions.mmiAjaxLoginDone){ajaxOptions.mmiAjaxLoginDone.apply(ajaxOptions,[json,status,xhr,ajaxOptions]);}}else{MMI.App.get().loginFail.apply(ajaxOptions,[json,status,xhr,ajaxOptions]);}},loginFail:function(json,status,xhr,ajaxOptions){MMI.App.get().triggerEvent('loginfail',[json]);if(ajaxOptions.mmiAjaxLoginFail){ajaxOptions.mmiAjaxLoginFail.apply(ajaxOptions,[json,status,xhr,ajaxOptions]);}},logoutSuccess:function(json,status,xhr,ajaxOptions){if(json.logout.status==true){MMI.App.get().triggerEvent('logoutsuccess',[json]);if(typeof(ajaxOptions.mmiAjaxLogoutDone)=='function'){ajaxOptions.mmiAjaxLogoutDone.apply(ajaxOptions,[json,status,xhr,ajaxOptions]);}}else{MMI.App.get().logoutFail.apply(ajaxOptions,[json,status,xhr,ajaxOptions]);}},logoutFail:function(json,status,xhr,ajaxOptions){MMI.App.get().triggerEvent('logoutfail',[json]);if(typeof(ajaxOptions.mmiAjaxLogoutFail)=='function'){ajaxOptions.mmiAjaxLogoutFail.apply(ajaxOptions,[json,status,xhr,ajaxOptions]);}},loginViaFacebook:function(){document.location.href='/?view=util_facebook_login';}};
3118MMI.Util.namespace('MMI.App.Modules.LiveEventSystem');MMI.App.Modules.LiveEventSystem={__construct:function(){this._shiftKeyDown=false;this._controlKeyDown=false;this._altKeyDown=false;this._metaKeyDown=false;this._handlerClasses=[];this._handlerClassNames={};this._liveEvents=[];this._eventStatusList={};this._loggingOptions={liveEvents:false,broadcastEvents:false};this._windowResizeTimeout=0;this._windowResizeUpdateDelayMilliseconds=100;this._debouncedTimers=new Map();},__documentReady:function(event,app,jqel,data){var standardLiveEvents=['resize','focusin','focusout','focus','blur','hover','click','touchstart','touchend','dblclick','scroll','change','creating','ajaxdone','ajaxalways','ajaxabort','ajaxfail','removing','submit','delete','deletesuccess','deleteerror','deletecomplete','beforedelete','beforesubmit','eco_form_submit_start','eco_form_submit_success','eco_form_submit_error','eco_form_submit_complete','eco_form_reset','tooltip','firstview','keydown',];this.registerLiveEvents(standardLiveEvents);var jqel_document=jQuery(document);var jqel_body=jQuery('body');jqel_document.on('keydown keyup',function(event){var app=MMI.App.get();
3118switch(event.key){case'Shift':app._shiftKeyDown=event.shiftKey;break;case'Control':app._controlKeyDown=event.ctrlKey;break;case'Alt':app._altKeyDown=event.altKey;break;case'Meta':app._metaKeyDown=event.metaKey;break;}
3119if(event.type==='keyup'){switch(event.key){case'Shift':app._shiftKeyDown=false;break;case'Control':app._controlKeyDown=false;break;case'Alt':app._altKeyDown=false;break;case'Meta':app._metaKeyDown=false;break;}}
3120var jqel_hoveredElements=jQuery('.live_hover.hover');var addClasses=[];var removeClasses=[];var bodyAddClasses=[];var bodyRemoveClasses=[];if(app._controlKeyDown){addClasses.push('controlKeyDown');bodyAddClasses.push('body_controlKeyDown');}else{removeClasses.push('controlKeyDown');bodyRemoveClasses.push('body_controlKeyDown');}
3121if(app._shiftKeyDown){addClasses.push('shiftKeyDown');bodyAddClasses.push('body_shiftKeyDown');}else{removeClasses.push('shiftKeyDown');bodyRemoveClasses.push('body_shiftKeyDown');}
3122if(app._altKeyDown){addClasses.push('altKeyDown');bodyAddClasses.push('body_altKeyDown');}else{removeClasses.push('altKeyDown');bodyRemoveClasses.push('body_altKeyDown');}
3123if(app._metaKeyDown){addClasses.push('metaKeyDown');bodyAddClasses.push('body_metaKeyDown');}else{removeClasses.push('metaKeyDown');bodyRemoveClasses.push('body_metaKeyDown');}
3124jqel_hoveredElements.alterClass(removeClasses,addClasses);jqel_body.alterClass(bodyRemoveClasses,bodyAddClasses);});jqel_document.on('scroll',function(event){MMI.App.get().triggerEvent('scroll',[event]);MMI.App.get().triggerEvent('firstview');});},isControlKeyDown:function(){return this._controlKeyDown;},isShiftKeyDown:function(){return this._shiftKeyDown;},isAltKeyDown:function(){return this._altKeyDown;},isMetaKeyDown:function(){return this._metaKeyDown;},enableLiveEventLogging:function(){this._loggingOptions.liveEvents=true;},disableLiveEventLogging:function(){this._loggingOptions.liveEvents=false;},_logLiveEvent:function(event){if(this._loggingOptions.liveEvents){console.log('Live Event: '+event.type,event);}},enableBroadcastEventLogging:function(){this._loggingOptions.broadcastEvents=true;},disableBroadcastEventLogging:function(){this._loggingOptions.broadcastEvents=false;},_logBroadcastEvent:function(eventName){if(this._loggingOptions.broadcastEvents){console.log('Event Broadcast: '+eventName);}},triggerEvent:function(eventName,additionalArguments,targetElement){this._logBroadcastEvent(eventName);eventName=eventName.toLowerCase();var fullEventName=eventName;var dotPosition=fullEventName.search(/\./);if(dotPosition>=0){eventName=fullEventName.substr(0,dotPosition);}
3125if(!this.isLiveEventRegistered(eventName)){this.registerLiveEvent(eventName,true);}
3126if(targetElement&&targetElement.length){targetElement.find('.live_'+eventName).trigger(fullEventName,additionalArguments);}else{jQuery('.live_'+eventName).trigger(fullEventName,additionalArguments);}},manuallyFireEvent:function(event,handler,jqel,data,customEventParams){return this._callEventHandler(event,handler,jqel,data,customEventParams);},wasEventCanceled:function(eventName){return(this._eventStatusList[eventName]=='canceled');},isEventRunning:function(eventName){return(this._eventStatusList[eventName]=='running');},setEventStatus:function(eventName,status){console.warn('MMI.App.Core.setEventStatus() is deprecated. You should just return boolean false from your method to cancel an event.');this._setEventStatus(eventName,status);},_setEventStatus:function(eventName,status){this._eventStatusList[eventName]=status;},resetEventStatus:function(eventName){console.warn('MMI.App.Core.resetEventStatus() is deprecated.');this._resetEventStatus(eventName);},_resetEventStatus:function(eventName){this._eventStatusList[eventName]=un
3126defined;},_doInternetExplorerNonBubblingEventWorkarounds:function(jqel,targetElementOnly){if(jQuery.browser.msie&&MMI.Util.compareVersions(jQuery.browser.version,'<','9')){if(targetElementOnly){jqel.filter('.live_change').removeClass('live_change').bind('change',this._handleLiveEvent);jqel.filter('.live_submit').removeClass('live_submit').bind('submit',this._handleLiveEvent);}else{jqel.find('.live_change').removeClass('live_change').bind('change',this._handleLiveEvent);jqel.find('.live_submit').removeClass('live_submit').bind('submit',this._handleLiveEvent);}}},registerHandlerClass:function(object,name){if(object&&typeof(object)=='object'&&!this._handlerClassNames.hasOwnProperty(name)){if(typeof(name)!='string'||name.length<1){name=MMI.Util.randomize(8);}
3127this._handlerClassNames[name]=this._handlerClasses.length;this._handlerClasses[this._handlerClasses.length]=object;return name;}
3128return'';},unregisterHandlerClass:function(name){if(this._handlerClassNames.hasOwnProperty(name)){delete this._handlerClasses[this._handlerClassNames[name]];delete this._handlerClassNames[name];return true;}
3129return false;},_bindLiveEvents:function(){var eventName='';for(var i in this._liveEvents){if(this._liveEvents.hasOwnProperty(i)){eventName=this._liveEvents[i].toLowerCase();if(typeof(eventName)=='string'){var jqelTarget=jQuery(document);var selector='.live_'+eventName;if(eventName!='hover'){jqelTarget.on(eventName,selector,[],this._handleLiveEvent);}else{jqelTarget.on('mouseenter',selector,[],this._handleHoverStartEvent).on('mouseleave',selector,[],this._handleHoverEndEvent);}}}}},_bindLiveEvent:function(eventName){eventName=eventName.toLowerCase();jQuery.event.special[eventName]={preDispatch:function(event){if(event.target.disabled===true){console.warn('Unable to trigger `'+eventName+'` event on a disabled element: ',event.target);}}};if(typeof(eventName)=='string'&&this._liveEvents.hasOwnProperty(eventName)){var jqelTarget=jQuery(document);var selector='.live_'+eventName;if(jQuery.inArray(eventName,['hover','tooltip'])==-1){jqelTarget.off(eventName,selector);jqelTarget.on(eventName,selector,[],this._handleLiveEvent);}else if(!this.isMobile()){switch(eventName.toLowerCase()){case'hover':jqelTarget.off('mouseenter',selector,[]).on('mouseenter',selector,[],this._handleHoverStartEvent).off('mouseleave',selector,[]).on('mouseleave',selector,[],this._handleHoverEndEvent);break;case'tooltip':jqelTarget.off('mouseenter',selector);jqelTarget.on('mouseenter',selector,[],this._handleTooltipCreateEvent);break;}}}},_handleNetworkStatusChange:function(event){var self=MMI.App.get();var online=navigator.onLine;var type=event.type;self.triggerEvent(type,[online]);self.triggerEvent('networkstatuschange',[online]);var add='networkStatus-'+(type=='offline'?'offline':'online');var remove='networkStatus-'+(type=='offline'?'online':'offline');jQuery(document.body).addClass(add).removeClass(remove);},_handleRealWindowResize:function(event){var self=MMI.App.get();clearTimeout(self._windowResizeTimeout);self._windowResizeTimeout=0;self._windowResizeTimeout=setTimeout(function(){var w=jQuery(window);jQuery('.live_resize').trigger('resize',[w.width(),w.height()]);},self._windowResizeUpdateDelayMilliseconds);},_handleTooltipCreateEvent:function(event){var jqel=jQuery(this);if(!this._hasQtip){if(this._hasQtip===false){return;}
3130if(typeof(jqel.qtip)=='function'){this._hasQtip=true;}else{return;}}
3131var qTipOptions=jqel.mmiData('qTipOptions');if(!jQuery.isPlainObject(qTipOptions)){qTipOptions={position:{viewport:jQuery(window)}};jqel.removeClass('live_tooltip');let tooltip=new ToolTip(jqel.get(0),qTipOptions);}else{if(!jQuery.isPlainObject(qTipOptions.position)){qTipOptions.position={};}
3132if(typeof(qTipOptions.position.viewport)=='undefined'){qTipOptions.position.viewport=jQuery(window);}
3133jqel.removeClass('live_tooltip');let tooltip=new ToolTip(jqel.get(0),qTipOptions);}
3134jqel.trigger('mouseenter');},_handleHoverStartEvent:function(event){var self=MMI.App.getInstance();var jqel=jQuery(this);var data=jqel.mmiData();var customHandler='';if(data.hasOwnProperty('live_hover_start_handler')){customHandler=data['live_hover_start_handler'];}else if(data.hasOwnProperty('live_hover_handler')){customHandler=data['live_hover_handler'];}
3135if(customHandler){customHandler=';'+customHandler+';';}
3136var handler='';if(customHandler.indexOf(';default;')){handler=customHandler.replace(';default;',';_defaultHandleHoverStart;').replace(/^;/,'').replace(/;$/,'');}else{handler='_defaultHandleHoverStart'+customHandler;}
3137jqel.data('_hoverActive',true);self._callEventHandler(event,handler,jqel,data);},_handleHoverEndEvent:function(event){var self=MMI.App.getInstance();var jqel=jQuery(this);var data=jqel.mmiData();var customHandler='';if(data.hasOwnProperty('live_hover_end_handler')){customHandler=data['live_hover_end_handler'];}else if(data.hasOwnProperty('live_hover_handler')){customHandler=data['live_hover_handler'];}
3138if(customHandler){customHandler=';'+customHandler+';';}
3139var handler='';if(customHandler.indexOf(';default;')){handler=customHandler.replace(';default;',';_defaultHandleHoverEnd;').replace(/^;/,'').replace(/;$/,'');}else{handler='_defaultHandleHoverEnd'+customHandler;}
3140jqel.data('_hoverActive',false);self._callEventHandler(event,handler,jqel,data);},_handleLiveEvent:function(event){MMI.App.getInstance()._logLiveEvent(event);var self=MMI.App.getInstance();var jqel=jQuery(this);var data=jQuery.extend({},jqel.data());var parents=jqel.parents();parents.each(function(index,ancestorDomElement){var ancestorData=jQuery.extend({},jQuery(ancestorDomElement).data());data=jQuery.extend(ancestorData,data);});if(event.type=='creating'){jqel.removeClass('live_creating');}else if(event.type=='removing'){jqel.removeClass('live_removing');}else if(event.type=='firstview'){if(!MMI.Util.isElementVisible(jqel)){return false;}
3141jqel.removeClass('live_firstview');}
3142var eventType=event.type;switch(eventType){case'focusin':eventType='focus';break;case'focusout':eventType='blur';break;}
3143var handler=data['live_'+eventType+'_handler'];
3143var customEventParams=[];for(var i=1;i<arguments.length;i++){if(arguments.hasOwnProperty(i)){customEventParams[customEventParams.length]=arguments[i];}}
3144var result=self._callEventHandler(event,handler,jqel,data,customEventParams);switch(eventType){case'creating':case'destroying':case'scroll':case'resize':setTimeout(function(){MMI.App.getInstance().triggerEvent('firstview',{},jqel);},100);}
3145if(event.type!='resize'){if(typeof(result)=='undefined'){return false;}
3146return result;}
3147return false;},_processSingleEventHandler:function(remainingHandlers,event,handler,jqel,data,customEventParams){var result=null;if(typeof(customEventParams)=='undefined'){customEventParams=[];}
3148var eventParams=[event,this,jqel,data];for(var i=0;i<customEventParams.length;i++){if(customEventParams.hasOwnProperty(i)){eventParams[eventParams.length]=customEventParams[i];}}
3149if(typeof(handler)=='string'&&handler!='undefined'){let args;if(handler.includes(':')){args=handler.split(':');handler=args.shift();}
3150if(Array.isArray(args)&&args.length){eventParams=eventParams.concat(args);}
3151if(handler=='delay'){var delayTime=parseInt(data.delay||args&&args[0]||'0',10);if(delayTime>0){try{}catch(e){}
3152var self=this;setTimeout(function(){self._callEventHandler(event,remainingHandlers,jqel,data,customEventParams);},delayTime);return false;}
3153console.warn('You defined a delay handler without specifying a data-delay value greater than 0 milliseconds.');}
3154if(handler==='debounce'){let jqelMap;let timer=false;if(this._debouncedTimers.has(jqel[0])){jqelMap=this._debouncedTimers.get(jqel[0]);if(jqelMap.has(event.type)){timer=jqelMap.get(event.type);}}else{jqelMap=new Map();this._debouncedTimers.set(jqel[0],jqelMap);}
3155if(timer){clearTimeout(timer);}
3156let debounceDelay=500;if(Array.isArray(args)){let argDelay=parseInt(args[0],10);if(!Number.isNaN(argDelay)){debounceDelay=argDelay;}}else{let dataDelay=parseInt(data.debounceDelay,10);if(!Number.isNaN(dataDelay)){debounceDelay=dataDelay;}}
3157const self=this;timer=setTimeout(function(){self._callEventHandler(event,remainingHandlers,jqel,data,customEventParams);jqelMap.delete(event.type);},debounceDelay);jqelMap.set(event.type,timer);return false;}
3158handler=handler.replace("\n",'');if(handler.search(/\./)!=-1){var handlerParts=handler.split('.');var handlerFunction=handler.pop();var handlerClass=MMI.Util.getNamespace(handlerParts.join('.'));if(jQuery.isPlainObject(handlerClass)&&typeof(handlerClass[handlerFunction])=='function'){result=handlerClass[handlerFunction].apply(window,eventParams);}else{result=false;}}else{var handlerPrefixes=['do_',''];if(jQuery.inArray(event.type,['ajaxdone','ajaxalways','ajaxfail'])>-1){handlerPrefixes.unshift('ajax_');}
3159var foundClassedHandler=false;var handlerWithPrefix='';var totalHandlers=this._handlerClasses.length-1;for(var i=totalHandlers;i>=0;i--){if(i in this._handlerClasses){for(var prefixKey in handlerPrefixes){if(handlerPrefixes.hasOwnProperty(prefixKey)){handlerWithPrefix=handlerPrefixes[prefixKey]+handler;if(typeof(this._handlerClasses[i][handlerWithPrefix])=='function'){result=this._handlerClasses[i][handlerWithPrefix].apply(this._handlerClasses[i],eventParams);foundClassedHandler=true;break;}}}}
3160if(foundClassedHandler){break;}}
3161if(!foundClassedHandler){if(typeof(this[handler])=='function'){result=this[handler].apply(window,eventParams);}else{if(typeof(handler)=='function'){handler='*anonymous*';}else if(typeof(handler)!='string'){handler='*unknown*';}
3162console.warn('Could not locate the handler method `'+handler+'` defined for `'+event.type+'` on:',jqel);}}}}else if(typeof(handler)=='function'){result=handler.apply(window,eventParams);}
3163if(result===false){this._setEventStatus(event.type,'canceled');}else{handler=this._getDefaultEventHandler(event.type);if(typeof(handler)=='function'){result=handler.apply(window,eventParams);}
3164this._resetEventStatus(event.type);}
3165return result;},_callEventHandler:function(event,handler,jqel,data,customEventParams){this._setEventStatus(event.type,'running');var handlers=[];if(typeof(handler)=='string'){handler.replace(/[;]+/,';').replace(/^[;]/,'').replace(/[;]$/,'');handlers=handler.split(';');}else if(typeof(handler)=='function'){handlers[handlers.length]=handler;}else if(handler instanceof Array){handlers=handler;if(handlers.length>0){handler=handlers[0];}else{return;}}else{return;}
3166if(typeof(handlers)=='object'&&handlers.length>1){var tmpResult;var remainingHandlers=handlers.slice();while(remainingHandlers.length){var tmpHandler=remainingHandlers.shift();tmpResult=this._processSingleEventHandler(remainingHandlers,event,tmpHandler,jqel,data,customEventParam
3166s);if(tmpResult===false){this._setEventStatus(event.type,'canceled');return false;}}
3167this._resetEventStatus(event.type);return tmpResult;}
3168return this._processSingleEventHandler(null,event,handler,jqel,data,customEventParams);},_getDefaultEventHandler:function(eventName){eventName=eventName.charAt(0).toUpperCase()+eventName.slice(1);return this['_defaultHandle'+eventName+'Event'];},_defaultHandleHoverStart:function(event,app,jqel,data){if(jqel.data('_hoverActive')!==true){return;}
3169var addClasses=['hover'];var removeClasses=[];if(event.ctrlKey){addClasses.push('controlKeyDown');}else{removeClasses.push('controlKeyDown');}
3170if(event.shiftKey){addClasses.push('shiftKeyDown');}else{removeClasses.push('shiftKeyDown');}
3171if(event.altKey){addClasses.push('altKeyDown');}else{removeClasses.push('altKeyDown');}
3172if(event.metaKey){addClasses.push('metaKeyDown');}else{removeClasses.push('metaKeyDown');}
3173jqel.alterClass(removeClasses,addClasses);},_defaultHandleHoverEnd:function(event,app,jqel,data){var addClasses=[];var removeClasses=['hover'];if(event.ctrlKey){addClasses.push('controlKeyDown');}else{removeClasses.push('controlKeyDown');}
3174if(event.shiftKey){addClasses.push('shiftKeyDown');}else{removeClasses.push('shiftKeyDown');}
3175if(event.altKey){addClasses.push('altKeyDown');}else{removeClasses.push('altKeyDown');}
3176if(event.metaKey){addClasses.push('metaKeyDown');}else{removeClasses.push('metaKeyDown');}
3177jqel.alterClass(removeClasses,addClasses);},setWindowResizeUpdateDelay:function(delayInMilliseconds){this._windowResizeUpdateDelayMilliseconds=delayInMilliseconds;},registerLiveEvent:function(eventName){eventName=eventName.toLowerCase();this._liveEvents[eventName]=eventName;this._bindLiveEvent(eventName);},registerLiveEvents:function(eventNameList){if(!jQuery.isArray(eventNameList)){eventNameList=Array.prototype.slice.call(arguments);}
3178for(var i in eventNameList){if(eventNameList.hasOwnProperty(i)){this.registerLiveEvent(eventNameList[i].toLowerCase(),false);}}},unRegisterLiveEvent:function(eventName){eventName=eventName.toLowerCase();if(this._liveEvents.hasOwnProperty(eventName)){delete this._liveEvents[eventName];}},unRegisterLiveEvents:function(eventNameList){for(var eventName in eventNameList){if(eventNameList.hasOwnProperty(eventName)){eventName=eventName.toLowerCase();if(eventNameList.hasOwnProperty(eventName)){this.unRegisterLiveEvent(eventNameList[eventName]);}}}},isLiveEventRegistered:function(eventName){return this._liveEvents.hasOwnProperty(eventName.toLowerCase());},initializeLiveScrollEvent:function(jqel){if(!(jqel instanceof jQuery)){jqel=jQuery('body');}
3179jqel.find('.live_scroll').add(jqel.filter('.live_scroll')).on('scroll',function(event){var app=MMI.App.getInstance();app._handleLiveEvent.apply(jqel,[event]);});},initializeLiveFocusEvents:function(jqel){if(!(jqel instanceof jQuery)){jqel=jQuery('body');}
3180jqel.find('.live_focus').add(jqel.filter('.live_focus')).off('focus.helix').on('focus.helix',function(event){var app=MMI.App.getInstance();app._handleLiveEvent.apply(jQuery(this),[event]);});jqel.find('.live_blur').add(jqel.filter('.live_blur')).off('blur.helix').on('blur.helix',function(event){var app=MMI.App.getInstance();app._handleLiveEvent.apply(jQuery(this),[event]);});jqel.find('.live_focusin').add(jqel.filter('.live_focusin')).off('focusin.helix').on('focusin.helix',function(event){var app=MMI.App.getInstance();app._handleLiveEvent.apply(jQuery(this),[event]);});jqel.find('.live_focusout').add(jqel.filter('.live_focusout')).off('focusout.helix').on('focusout.helix',function(event){var app=MMI.App.getInstance();app._handleLiveEvent.apply(jQuery(this),[event]);});},initializeNewContentAsync:async function(jqel){var app=MMI.App.getInstance();if(app&&app.hasOwnProperty('_registerImageLoadErrorHandlers')){app._registerImageLoadErrorHandlers();}
3181if((jqel instanceof jQuery)&&jqel.length){await this.runOrganismScanAsync(jqel);jqel.filter('.live_creating').trigger('creating');jqel.find('.live_creating').trigger('creating');jqel.filter('.live_updatepermissions').trigger('updatepermissions',[{'items':{},'types':{}},this._permissions]);jqel.find('.live_updatepermissions').trigger('updatepermissions',[{'items':{},'types':{}},this._permissions]);this.initializeLiveScrollEvent(jqel);this.initializeLiveFocusEvents(jqel);await this.runOrganismScanAsync(jqel);}else{await this.runOrganismScanAsync(jQuery('body'));jQuery('.live_creating').trigger('creating');jQuery('.live_updatepermissions').trigger('updatepermissions',[{'items':{},'types':{}},this._permissions]);this.initializeLiveScrollEvent();this.initializeLiveFocusEvents();await this.runOrganismScanAsync(jQuery('body'));}
3182jQuery(window).trigger('resize');},initializeNewContent:function(jqel){var app=MMI.App.getInstance();if(app&&app.hasOwnProperty('_registerImageLoadErrorHandlers')){app._registerImageLoadErrorHandlers();}
3183if((jqel instanceof jQuery)&&jqel.size()){this.runOrganismScanSync(jqel);jqel.filter('.live_creating').trigger('creating');jqel.find('.live_creating').trigger('creating');jqel.filter('.live_updatepermissions').trigger('updatepermissions',[{'items':{},'types':{}},this._permissions]);jqel.find('.live_updatepermissions').trigger('updatepermissions',[{'items':{},'types':{}},this._permissions]);this.initializeLiveScrollEvent(jqel);this.initializeLiveFocusEvents(jqel);this.runOrganismScanSync(jqel);}else{this.runOrganismScanSync(jQuery('body'));jQuery('.live_creating').trigger('creating');jQuery('.live_updatepermissions').trigger('updatepermissions',[{'items':{},'types':{}},this._permissions]);this.initializeLiveScrollEvent();this.initializeLiveFocusEvents();this.runOrganismScanSync(jQuery('body'));}
3184jQuery(window).trigger('resize');},runOrganismScanAsync:async function(contextEl){if(typeof(Eco)!='undefined'&&Basix.isPlainObject(Eco)&&Basix.isPlainObject(Eco.OrganismController)&&Basix.isFunction(Eco.OrganismController.scan)){const jqel=jQuery(contextEl);const organismScanPromises=[];for(const el of jqel.toArray()){organismScanPromises.push(Eco.OrganismController.scan(el));}
3185return Promise.all(organismScanPromises).then(results=>{const combinedResults=[];for(const result of results){combinedResults.push(...result);}
3186return combinedResults;});}
3187return Promise.resolve([]);},runOrganismScanSync:function(contextEl){if(typeof(Eco)!='undefined'&&Basix.isPlainObject(Eco)&&Basix.isPlainObject(Eco.OrganismController)&&Basix.isFunction(Eco.OrganismController.scanSync)){const jqel=jQuery(contextEl);const organisms=[];for(const el of jqel.toArray()){organisms.push(...Eco.OrganismController.scanSync(el));}
3188return organisms;}
3189return[];}};
3190MMI.Util.namespace('MMI.App.Modules.FeatureSystem');MMI.App.Modules.FeatureSystem={__construct:function(){this._features={};},_getFeatureObject:function(featureName){return MMI.Util.getNamespace(this._features,featureName);},isFeatureEnabled:function(featureName){if(typeof(featureName)=='string'){var featureObject=this._getFeatureObject(featureName);if(!featureObject.hasOwnProperty('_enabled')){featureObject._enabled=false;}
3191return featureObject._enabled;}
3192return false;},enableFeature:function(featureName){if(typeof(featureName)=='string'){var featureObject=this._getFeatureObject(featureName);featureObject._enabled=true;}},enableFeatures:function(){var argsLength=arguments.length;for(var argIndex=0;argIndex<argsLength;argIndex++){var arg=arguments[argIndex];if(jQuery.isArray(arg)){this.enableFeatures.apply(this,arg);}
3192else if(typeof(arg)=='string'){this.enableFeature(arg);}}},disableFeature:function(featureName){if(typeof(featureName)=='string'){var featureObject=this._getFeatureObject(featureName);featureObject._enabled=false;}},disableFeatures:function(){var argsLength=arguments.length;for(var argIndex=0;argIndex<argsLength;argIndex++){var arg=arguments[argIndex];if(jQuery.isArray(arg)){this.disableFeatures(arg);}else if(typeof(arg)=='string'){this.disableFeature(arg);}}}};
3193MMI.Util.namespace('MMI.App.Modules.Mobile');MMI.App.Modules.Mobile={__construct:function(){this._isIpad=(navigator.userAgent.match(/iPad/i)!=null);this._isIphone=(navigator.userAgent.match(/iPhone/i)!=null);this._isIpod=(navigator.userAgent.match(/iPod/i)!=null);this._isIos=(this.isIpad()||this.isIphone()||this.isIpod());this._isAndroid=(navigator.userAgent.match(/Android/i)!=null);this._isMobile=(this.isIos()||this.isAndroid());this._isTouchDevice=('ontouchstart'in document.documentElement);},__documentReady:function(){var jqel_body=jQuery('body');if(this.isTouchDevice()){jqel_body.addClass('touchDevice');}else{jqel_body.addClass('nonTouchDevice');}},isIpad:function(){return this._isIpad;},isIphone:function(){return this._isIphone;},isIpod:function(){return this._isIpod;},isIos:function(){return this._isIos;},isAndroid:function(){return this._isAndroid;},isMobile:function(){return this._isMobile;},isTouchDevice:function(){return this._isTouchDevice;}};
3194MMI.Util.namespace('MMI.App.Modules.Genome');MMI.App.Modules.Genome={_api:null,__construct:function(){this.registerLiveEvents(['itemcreatestart','itemcreatesuccess','itemcreateerror','itemcreatedone']);this.registerLiveEvents(['itemupdatestart','itemupdatesuccess','itemupdateerror','itemupdatedone']);this.registerLiveEvents(['itemdeletestart','itemdeletesuccess','itemdeleteerror','itemdeletedone']);this.registerLiveEvents(['itemsortstart','itemsortsuccess','itemsorterror','itemsortdone']);this.registerLiveEvents(['eco_rapid_change']);},api:function(){if(this._api===null){this._api=new genomeJsApi.Http({baseURL:`${window.location.origin}/api/v3`,});}
3195return this._api;},_permissions:{items:{},types:{}},_permissionQueue:{items:{},types:{}},_permissionQueueTimer:0,assumeAlias:function(targetProfileId){var self=this;this.ajax({data:{mode:'alias',action:'assume',targetProfileId:targetProfileId},mmiAjaxDone:function(json){if(json&&json.mode&&json.mode.alias&&json.mode.alias.result===true){localStorage.setItem('alias',json.postdata.targetProfileId);Eco.OrganismController.create('Eco.Organism.Notification.Message','<div class="mod_success">',{options:{name:'assumeAlias.ajaxDoneSuccess',container:'default',icon:'eco eco-success',body:'You have assumed the access level of this user. <a href="/" target="_blank">Open a new tab</a> to see the effect. Return to this tab to drop the alias.',actions:[{label:'Dismiss',handler:'dismiss'},{label:'Drop Alias',handler:function(){self.dropAlias();}}]}});}else{var message='Unable to assume access as this user.';if(json&&json.mode&&json.mode.alias&&json.mode.alias.error.message){message=json.mode.alias.error.message;}
3196self.displayErrorNotification(message,'assumeAlias.ajaxDoneError');}}});var jqel=jQuery('#aliasToggleButton');if(jqel.text()==='Assume as Alias'){jqel.data('live_click_handler','dropAlias');jqel.text('Drop Alias');}},dropAlias:function(){var self=this;this.ajax({data:{mode:'alias',action:'drop'},mmiAjaxDone:function(json){if(json&&json.mode&&json.mode.alias&&json.mode.alias.result===true){localStorage.removeItem('alias');var notification=Eco.NotificationController.getMessageByName('assumeAlias.ajaxDoneSuccess');if(notification){notification.hide();}
3197var actions=[{label:'Dismiss',handler:'dismiss'}];var realProfileId=parseInt(json.mode.alias.realProfileId,10);var loadedProfileId=self.getProfileId();if(realProfileId!=self.getProfileId()){actions.push({label:'Reload Page',handler:function(){window.location.reload(true);}});}
3198Eco.OrganismController.create('Eco.Organism.Notification.Message','<div class="mod_success">',{options:{name:'dropAlias.ajaxDoneSuccess',container:'default',icon:'eco eco-success',body:'Alias dropped.',actions:actions}});}else{var message='Unable to drop the current alias.';if(json&&json.mode&&json.mode.alias&&json.mode.alias.error.message){message=json.mode.alias.error.message;}
3199self.displayErrorNotification(message,'dropAlias.ajaxDoneError');}}});var jqel=jQuery('#aliasToggleButton');if(jqel.text()==='Drop Alias'){jqel.data('live_click_handler','assumeAlias');jqel.text('Assume as Alias');}},reloadGi:function(jqel){var jqel_targetElement='';if(jqel.hasClass('itemContent')){jqel_targetElement=jqel;}else{jqel_targetElement=jqel.parents('.itemContent').first();}
3200if(!jqel_targetElement.size()){return false;}else{var elementData=jqel_targetElement.mmiData();var data={view:elementData.view,id:elementData.item_id,mode:elementData.mode||'display',attitude:'json'};var ajaxData={data:data,jqel:jqel_targetElement,replaceElement:true,replaceContent:false};this.ajax(ajaxData);return true;}},reloadGiByItemId:function(id){var jqel_containers=jQuery(".itemContent[data-item_id='"+id+"']");var app=this;jqel_containers.each(function(){app.reloadGi(jQuery(this));});},reloadGiByItemType:function(type){var jqel_containers=jQuery(".itemContent[data-item_type='"+type+"']");var app=this;jqel_containers.each(function(){app.reloadGi(jQuery(this));});},checkPermissionsById:function(permission,id){if(jQuery.isEmptyObject(this._permissions.items)){var jqel_permissionsBlock=jQuery('.mmiSitePermissions');if(jqel_permissionsBlock.size()){var cachedPermissions=jqel_permissionsBlock.data('permissions');if(!jQuery.isPlainObject(cachedPermissions)){cwarn('Cached permissions ignored because they are not an object!');return;}
3201this._permissions=cachedPermissions;jqel_permissionsBlock.remove();}}
3202if(!this._permissions['items'][permission]){this._permissions['items'][permission]={};}
3203if(this._permissions['items'][permission][id]!==undefined){var permissions={items:{}};permissions.items[permission]={};permissions.items[permission][id]=this._permissions['items'][permission][id];this.triggerEvent('updatepermissions',[permissions,this._permissions]);}else{this.queuePermissionCheckById(permission,id);}},queuePermissionCheckById:function(permission,id){if(id===0||id=='0'){return;}
3204if(!this._permissionQueue.items[permission]){this._permissionQueue.items[permission]=[];}
3205this._permissionQueue.items[permission].push(id);clearTimeout(this._permissionQueueTimer);this._permissionQueueTimer=setTimeout(function(){var app=MMI.App.get();app.sendPermissionQueue();},250);},sendPermissionQueue:function(){var ajaxData={view:'access_permissions',permissions:this._permissionQueue,id:1};this.ajax({data:ajaxData,mmiAjaxDone:function(json,result,xHr){var app=MMI.App.get();app.storePermissionData(json.permissions);}});this._permissionQueue={items:{},types:{}};},storePermissionData:function(permissions){var app=this;var changed=false;jQuery.each(permissions,function(type,permissions){if(!app._permissions[type]){app._permissions[type]={};}
3206jQuery.each(permissions,function(permission,ids){if(!app._permissions[type][permission]){app._permissions[type][permission]={};}
3207jQuery.each(ids,function(id,permissionAllowed){if(app._permissions[type][permission][id]===undefined||app._permissions[type][permission][id]!=permissionAllowed){app._permissions[type][permission][id]=permissionAllowed;changed=true;}});});});if(changed){app.triggerEvent('updatepermissions',[permissions,app._permissions]);}},createItem:function(itemType,itemData,callback,context,ajaxOptions){if(!Basix.isString(itemType)){throw new Error('Invalid item type provided. Must provide a string.');}
3208if(Basix.isUndefined(callback)||callback===false){callback=function(status,itemType,itemData,json,ajaxOptions){};}else if(!Basix.isFunction(callback)){throw new Error('A callback was provided but the callback is not a valid function.');}
3209var itemsData={};var randomHash=Basix.getRandomString(12);if(Basix.isString(itemData.item_hash)){randomHash=itemData.item_hash;delete itemData.item_hash;}
3210itemsData[randomHash]=itemData;var ajaxData={mode:'edit',type:itemType,item:itemsData};if(Basix.isNumeric(itemData.item_parent)&&itemData.item_parent>0){ajaxData.parent_id=itemData.item_parent;}
3211this.triggerEvent('itemcreatestart',[itemType,itemData]);var app=this;if(Basix.isUndefined(context)||context===false){context=app;}
3212var defaultAjaxOptions={data:ajaxData,mmiAjaxDone:function(json,status,xhr){if(!json.server.status){app.triggerEvent('itemcreateerror',[itemType,itemData,json]);callback.apply(context,['error',0,itemType,itemData,json,ajaxOptions]);return;}
3213itemData.item_id=parseInt(json.id,10);app.triggerEvent('itemcreatesuccess',[json.id,itemType,itemData,json]);callback.apply(context,['success',itemData.item_id,itemType,itemData,json,ajaxOptions]);},mmiAjaxFail:function(json,status,xhr){app.triggerEvent('itemcreateerror',[itemType,itemData,json]);callback.apply(context,['error',0,itemType,itemData,json,ajaxOptions]);},mmiAjaxAlways:function(json,status,xhr){app.triggerEvent('itemcreatedone',[itemType,itemData,json]);callback.apply(context,['done',0,itemType,itemData,json,ajaxOptions]);}};ajaxOptions=Basix.extend(Basix.EXTEND_RECURSIVE,defaultAjaxOptions,ajaxOptions);return this.ajax(ajaxOptions);},updateItems:function(itemsData,callback,scope,ajaxOptions){if(!Basix.isArray(itemsData)&&!Basix.isList(itemsData)){throw new Error('Invalid item data array provided. Must provide a valid, non-empty array.');}
3214if(itemsData.length<1){return false;}
3215if(Basix.isUndefined(callback)||callback===false){callback=function(status,itemsDataObject,json,serverOperations,ajaxOptions){};}else if(!Basix.isFunction(callback)){throw new Error('A callback was provided but the callback is not a valid function.');}
3216itemsData=new Basix.List(itemsData);var itemsDataObject={};var itemId=0;var itemIds=[];itemsData.each(function(index,itemData){itemId=itemData.item_id;itemsDataObject[itemId]=itemData;itemIds.push(itemId);});var ajaxData={mode:'edit',id:itemId,item:itemsDataObject};var refreshList={};for(var key in itemsDataObject){if(itemsDataObject.hasOwnProperty(key)){var item=itemsDataObject[key];this.triggerEvent('itemupdatestart',[item,itemsDataObject]);var jqel_fields=jQuery('.itemContent.item-'+item.item_id+' .itemField, .itemField.item-'+item.item_id);if(jqel_fields.size()){jqel_fields.each(function(){var jqel_replaceField=jQuery(this);var fieldName=jqel_replaceField.data('field_name');var hasField=item.hasOwnProperty(fieldName);if(jqel_replaceField.mmiData('item_id')!=item.item_id||!hasField){return;}
3217var uniqueClass='replaceContent_'+MMI.Util.randomize(12);jqel_replaceField.addClass(uniqueClass);refreshList[item.item_id]={id:item.item_id,field:fieldName,options:jqel_replaceField.data('gf_options'),selectorClass:uniqueClass};});}}}
3218ajaxData.refresh_list=refreshList;var app=this;if(Basix.isUndefined(scope)||scope===false){scope=app;}
3219var defaultAjaxOptions={queueByXhrId:true,xhrId:'helix-update-items-'+itemIds.join(','),data:ajaxData,mmiAjaxDone:function(json,status,xhr){for(var key in itemsDataObject){if(itemsDataObject.hasOwnProperty(key)){var itemData=itemsDataObject[key];var itemId=itemData.item_id;itemData=Basix.extend(itemData,json.items[itemId]);if(json.server.operations[itemId]&&!json.server.operations[itemId].status){app.triggerEvent('itemupdateerror',[itemData,itemsDataObject,json,json.server.operations[itemId]]);callback.apply(scope,['error',itemData,itemsDataObject,json,json.server.operations[itemId],ajaxOptions]);}else{app.triggerEvent('itemupdatesuccess',[itemData,itemsDataObject,json,json.server.operations[itemId]]);callback.apply(scope,['success',itemData,itemsDataObject,json,json.server.operations[itemId],ajaxOptions]);}}}
3220if(json.server.status&&Basix.isObject(json.refresh_list)){jQuery.each(json.refresh_list,function(itemId,itemFields){jQuery.each(itemFields,function(uniqueClass,content){jQuery('.'+uniqueClass).html(content).removeClass(uniqueClass);});});app.initializeNewContent();}},mmiAjaxFail:function(json,status,xhr){for(var key in itemsDataObject){if(itemsDataObject.hasOwnProperty(key)){var item=itemsDataObject[ke
3220y];app.triggerEvent('itemupdateerror',[item,itemsDataObject,json,false]);callback.apply(scope,['error',item,itemsDataObject,json,false,ajaxOptions]);}}},mmiAjaxAlways:function(json,status,xhr){for(var key in itemsDataObject){if(itemsDataObject.hasOwnProperty(key)){var item=itemsDataObject[key];app.triggerEvent('itemupdatedone',[item,itemsDataObject,json,false]);callback.apply(scope,['done',item,itemsDataObject,json,false,ajaxOptions]);}}}};ajaxOptions=Basix.extend(Basix.EXTEND_RECURSIVE,defaultAjaxOptions,ajaxOptions);callback.apply(scope,['start',item,itemsDataObject,null,null,ajaxOptions]);return this.ajax(ajaxOptions);},updateItem:function(itemId,itemData,callback,context,ajaxOptions){if(!Basix.isObject(itemData)){throw new Error('Invalid item data provided. Must provide an object.');}
3221itemData.item_id=itemId;var itemsData=[itemData];return this.updateItems(itemsData,callback,context,ajaxOptions);},sortItems:function(itemIds,callback,scope,ajaxOptions){if(!Basix.isArray(itemIds)&&!Basix.isList(itemIds)){throw new Error('Invalid item ids array provided. Must provide a valid array.');}
3222if(Basix.isUndefined(callback)||callback===false){callback=function(status,itemIds,json,ajaxOptions){};}else if(!Basix.isFunction(callback)){throw new Error('A callback was provided but the callback is not a valid function.');}
3223var itemsData={};itemIds=new Basix.List(itemIds);itemIds.each(function(index,value){itemsData[value]={item_sort_order:parseInt(index,10)+1};});var ajaxData={mode:'edit',id:itemIds.last(),item:itemsData};this.triggerEvent('itemsortstart',[itemIds]);var app=this;if(Basix.isUndefined(scope)||scope===false){scope=app;}
3224var defaultAjaxOptions={xhrId:'helix-sort-items-'+itemIds.join(','),data:ajaxData,mmiAjaxDone:function(json,status,xhr){if(!json.server.status){app.triggerEvent('itemsorterror',[itemIds,json,ajaxOptions]);callback.apply(scope,['error',itemIds,json,ajaxOptions]);return;}
3225app.triggerEvent('itemsortsuccess',[itemIds,json,ajaxOptions]);callback.apply(scope,['success',itemIds,json,ajaxOptions]);},mmiAjaxFail:function(json,status,xhr){app.triggerEvent('itemsorterror',[itemIds,json,ajaxOptions]);callback.apply(scope,['error',itemIds,json,ajaxOptions]);},mmiAjaxAlways:function(json,status,xhr){app.triggerEvent('itemsortdone',[itemIds,json,ajaxOptions]);callback.apply(scope,['done',itemIds,json,ajaxOptions]);}};ajaxOptions=Basix.extend(Basix.EXTEND_RECURSIVE,defaultAjaxOptions,ajaxOptions);return this.ajax(ajaxOptions);},deleteItemsUsingPromise:function(itemIds,deleteChildren,ajaxOptions){if(!Basix.isArray(itemIds)&&!Basix.isList(itemIds)){throw new Error('Invalid items array provided. Must provide a valid, non-empty array.');}
3226if(itemIds.length<1){return Promise.resolve();}
3227if(!deleteChildren){deleteChildren=false;}
3228if(!ajaxOptions){ajaxOptions={};}
3229itemIds=new Basix.List(itemIds);let itemsDeleteObject={};let itemId=itemIds.at(-1);itemIds.forEach(id=>{clog('adding id to list: '+id);itemsDeleteObject[id]={confirm:1,children:deleteChildren};});clog('items to delete',itemsDeleteObject);if(!ajaxOptions.xhrId){ajaxOptions.xhrId='helix-delete-items-with-promise-'+itemIds.join(',');}
3230const requestData={mode:'delete',id:itemId,'delete':itemsDeleteObject};return this.ajaxUsingPromise(requestData,ajaxOptions).then((json,status,xhr)=>{const response={itemIds:itemIds,deleteChildren:deleteChildren,ajaxOptions:ajaxOptions,};if(json.server.operations[itemId]&&!json.server.operations[itemId].status){return new Promise.reject(response);}
3231return response;});},deleteItems:function(itemIds,deleteChildren,callback,scope,ajaxOptions){if(!Basix.isArray(itemIds)&&!Basix.isList(itemIds)){throw new Error('Invalid items array provided. Must provide a valid, non-empty array.');}
3232if(itemIds.length<1){return false;}
3233if(Basix.isUndefined(callback)||callback===false){callback=function(success,itemId,itemsDeleteObject,json,serverOperations,ajaxOptions){};}else if(!Basix.isFunction(callback)){throw new Error('A callback was provided but the callback is not a valid function.');}
3234itemIds=new Basix.List(itemIds);var itemsDeleteObject={};var itemId=0;itemIds.each(function(index,id){itemsDeleteObject[id]={confirm:1,children:deleteChildren};itemId=id;});var ajaxData={mode:'delete',id:itemId,'delete':itemsDeleteObject};for(var key in itemsDeleteObject){if(itemsDeleteObject.hasOwnProperty(key)){this.triggerEvent('itemdeletestart',[itemsDeleteObject[ke
3234y],itemsDeleteObject]);}}
3235var app=this;if(Basix.isUndefined(scope)||scope===false){scope=app;}
3236var defaultAjaxOptions={xhrId:'helix-delete-items-'+itemIds.join(','),data:ajaxData,mmiAjaxDone:function(json,status,xhr){for(var key in itemsDeleteObject){if(itemsDeleteObject.hasOwnProperty(key)){var itemId=key;if(json.server.operations[itemId]&&!json.server.operations[itemId].status){var callbackAllowContinue=callback.apply(scope,['error',itemId,itemsDeleteObject,json,json.server.operations[itemId],ajaxOptions]);if(callbackAllowContinue!==false){app.triggerEvent('itemdeleteerror',[itemId,itemsDeleteObject,json,json.server.operations[itemId]]);}}else{var callbackAllowContinue=callback.apply(scope,['success',itemId,itemsDeleteObject,json,json.server.operations[itemId],ajaxOptions]);if(callbackAllowContinue!==false){app.triggerEvent('itemdeletesuccess',[itemId,itemsDeleteObject,json,json.server.operations[itemId]]);}}}}},mmiAjaxFail:function(json,status,xhr){for(var key in itemsDeleteObject){if(itemsDeleteObject.hasOwnProperty(key)){var itemId=key;var callbackAllowContinue=callback.apply(scope,['error',itemId,itemsDeleteObject,json,false,ajaxOptions]);if(callbackAllowContinue!==false){app.triggerEvent('itemdeleteerror',[itemId,itemsDeleteObject,json,false]);}}}},mmiAjaxAlways:function(json,status,xhr){for(var key in itemsDeleteObject){if(itemsDeleteObject.hasOwnProperty(key)){var itemId=key;var callbackAllowContinue=callback.apply(scope,['done',itemId,itemsDeleteObject,json,false,ajaxOptions]);if(callbackAllowContinue!==false){app.triggerEvent('itemdeletedone',[itemId,itemsDeleteObject,json,false]);}}}}};ajaxOptions=Basix.extend(Basix.EXTEND_RECURSIVE,defaultAjaxOptions,ajaxOptions);return this.ajax(ajaxOptions);},restoreItems:function(itemIds,restoreChildren,callback,scope,ajaxOptions){if(restoreChildren===true){cwarn('restoreChildren feature not yet implemented.');}
3237if(!Basix.isArray(itemIds)&&!Basix.isList(itemIds)){throw new Error('Invalid items array provided. Must provide a valid, non-empty array.');}
3238if(itemIds.length<1){return false;}
3239if(Basix.isUndefined(callback)||callback===false){callback=function(success,itemId,itemsDeleteObject,json,serverOperations,ajaxOptions){};}else if(!Basix.isFunction(callback)){throw new Error('A callback was provided but the callback is not a valid function.');}
3240itemIds=new Basix.List(itemIds);var itemsRestoreObject={};var itemId=0;itemIds.each(function(index,id){itemsRestoreObject[id]={confirm:1,children:restoreChildren};itemId=id;});var ajaxData={mode:'delete',id:itemId,'undelete':itemsRestoreObject};for(var key in itemsRestoreObject){if(itemsRestoreObject.hasOwnProperty(key)){this.triggerEvent('itemrestorestart',[itemsRestoreObject[key],itemsRestoreObject]);}}
3241var app=this;if(Basix.isUndefined(scope)||scope===false){scope=app;}
3242var defaultAjaxOptions={xhrId:'helix-restore-items-'+itemIds.join(','),data:ajaxData,mmiAjaxDone:function(json,status,xhr){for(var key in itemsRestoreObject){if(itemsRestoreObject.hasOwnProperty(key)){var itemId=key;if(json.server.operations[itemId]&&!json.server.operations[itemId].status){app.triggerEvent('itemrestoreerror',[itemId,itemsRestoreObject,json,json.server.operations[itemId]]);callback.apply(scope,['error',itemId,itemsRestoreObject,json,json.server.operations[itemId],ajaxOptions]);}else{app.triggerEvent('itemrestoresuccess',[itemId,itemsRestoreObject,json,json.server.operations[itemId]]);callback.apply(scope,['success',itemId,itemsRestoreObject,json,json.server.operations[itemId],ajaxOptions]);}}}},mmiAjaxFail:function(json,status,xhr){for(var key in itemsRestoreObject){if(itemsRestoreObject.hasOwnProperty(key)){var itemId=key;app.triggerEvent('itemrestoreerror',[itemId,itemsRestoreObject,json,false]);callback.apply(scope,['error',itemId,itemsRestoreObject,json,false,ajaxOptions]);}}},mmiAjaxAlways:function(json,status,xhr){for(var key in itemsRestoreObject){if(itemsRestoreObject.hasOwnProperty(key)){var itemId=key;app.triggerEvent('itemrestoredone',[itemId,itemsRestoreObject,json,false]);callback.apply(scope,['done',itemId,itemsRestoreObject,json,false,ajaxOptions]);}}}};ajaxOptions=Basix.extend(Basix.EXTEND_RECURSIVE,defaultAjaxOptions,ajaxOptions);return this.ajax(ajaxOptions);},deleteItem:function(itemId,deleteChildren,callback,scope,ajaxOptions){if(!Basix.isNumeric(itemId)||itemId<1){if(arguments.length<2&&Basix.isObject(itemId)){return this._old_deleteItem(itemId);}
3243throw new Error('Invalid item id provided. Must provide an integer > 0.');}
3244var itemIds=[itemId];return this.deleteItems(itemIds,deleteChildren,callback,scope,ajaxOptions);},deleteItemPromise:function(itemId){return this.api().delete(`/items/item/${itemId}`)},restoreItem:function(itemId,restoreChildren,callback,scope,ajaxOptions){if(!Basix.isNumeric(itemId)||itemId<1){throw new Error('Invalid item id provided. Must provide an integer > 0.');}
3245var itemIds=[itemId];return this.restoreItems(itemIds,restoreChildren,callback,scope,ajaxOptions);},importNextBatch:function(itemId,jqel){var ajaxData={id:itemId,view:'ajax_process_alpha'};var ajaxOptions={data:ajaxData,mmiAjaxDone:function(json,status,jqXhr,ajaxOptions){if(!json.returnData){throw Error('Missing json.returnData from aja
3245x_process_alpha template for batch import.');}
3246if(json.returnData.importComplete===true){return;}
3247setTimeout(function(){MMI.App.get().importNextBatch(itemId,jqel);},10);},jqel:jqel};this.ajax(ajaxOptions);},redirectInsteadOfReload:function(){if(window.location.pathname.indexOf('/mode/login')===0||window.location.pathname.indexOf('/mode/logout')===0||window.location.pathname.indexOf('/sign-in')===0||window.location.pathname.indexOf('/sign-out')===0){window.location.href='/';return true;}
3248return false;}};
3249MMI.Util.namespace('MMI.App.Modules.Eco');MMI.App.Modules.Eco={_ecoFormLiveEvents:['formstart','dataprocessor','formsuccess','formerror','formcomplete'],ecoForm_handleSubmitPromise:function(formOrganism,promise){this.registerLiveEvents(this._ecoFormLiveEvents);formOrganism.onSubmitStart();let app=this;let request,response;return promise.then(rsp=>{response=rsp;request=rsp.request;let json=rsp.data;let status=rsp.status;let xhr=rsp.request;let ajaxData=JSON.parse(rsp.config.data);app.ecoForm_processEvent(formOrganism.getFormElement(),'formsuccess',[json,status,xhr,ajaxData,formOrganism],app.ecoForm_defaultFormSuccess);return{request,response};},err=>{request=err.request;response=err.response;let json=err.response.data;let status=err.response.status;let xhr=err.request;let ajaxData=JSON.parse(err.config.data);app.ecoForm_processEvent(formOrganism.getFormElement(),'formerror',[json,status,xhr,ajaxData,formOrganism],app.ecoForm_defaultFormError);return{request,response};}).finally((...args)=>{if(request||response){let json=response?.data;let status=response?.status;let xhr=request;let ajaxData=JSON.parse(response?.config?.data);app.ecoForm_processEvent(formOrganism.getFormElement(),'formcomplete',[json,status,xhr,ajaxData,formOrganism],app.ecoForm_defaultFormComplete);return{request,response};}else{formOrganism.onSubmitComplete();return{request:null,response:null};}});},ecoForm_validateForm:function(event,formOrganism){if(!(formOrganism instanceof Eco.Organism.Form)){permaclog(formOrganism);cwarn('Invalid eco form organism ^^^ supplied to ecoForm_submitForm');return false;}
3250this.registerLiveEvents(this._ecoFormLiveEvents);formOrganism.validate();var errors=formOrganism.getErrors();if(errors.length){return false;}
3251return true;}
3251,ecoForm_submitForm:function(formOrganism,returnPromise=false){if(!(formOrganism instanceof Eco.Organism.Form)){permaclog(formOrganism);cwarn('Invalid eco form organism ^^^ supplied to ecoForm_submitForm');if(returnPromise){return Promise.reject();}
3252return false;}
3253this.registerLiveEvents(this._ecoFormLiveEvents);var jqel_form=formOrganism.jqel_form;formOrganism.validate();var errors=formOrganism.getErrors();if(errors.length){if(returnPromise){return Promise.reject();}
3254return false;}
3255var url=jqel_form.attr('action');if(!url){url='/';}
3256var app=this;var ajaxData=formOrganism.getAllValues();var jqel_fileFields=jqel_form.find('input:file');this.ecoForm_processEvent(jqel_form,'dataprocessor',[ajaxData],function(){});if(jqel_form.data('ecoSubmitFormViaGet')===true){if(jqel_fileFields.size()){permaclog(jqel_form,jqel_fileFields);cerror('You cannot use GET to submit that form ^^^ because it contains those ^^^ file fields! Remove the eco-submit-form-via-get data attribute from the form to submit as a POST request.');if(returnPromise){return Promise.reject();}
3257return false;}
3258var params=jQuery.param(ajaxData);var regex=new RegExp(/\/(content\/[\w-]*|page\/[\w-]*)(?:\/?)(.*)/);var matches=url.match(regex);if(matches instanceof Array){if(matches[2]!==''){url+='&';}else if(url[url.length-1]!=='/'){url+='/';}}else{url+='?';}
3259url+=params;window.location.href=url;if(returnPromise){return Promise.reject();}
3260return false;}else if(jqel_form.data('ecoSubmitFormViaPost')===true){var postForm=document.createElement('form');postForm.setAttribute('method','post');postForm.setAttribute('action',url);var dataField=document.createElement('input');dataField.setAttribute('name','json_formdata');dataField.setAttribute('type','hidden');dataField.setAttribute('value',JSON.stringify(ajaxData));postForm.appendChild(dataField);document.querySelector('body').appendChild(postForm);postForm.submit();if(returnPromise){return Promise.reject();}
3261return false;}
3262var ajaxOptions={queueByXhrId:true,xhrId:'eco-form-submit',data:ajaxData,url:url,mmiAjaxDone:function(json,status,ajaxOptions,xhr){if(jQuery.isPlainObject(json)&&jQuery.isPlainObject(json.server)&&json.server.status===true){app.ecoForm_processEvent(jqel_form,'formsuccess',[json,status,xhr,ajaxData,formOrganism],app.ecoForm_defaultFormSuccess);}else{app.ecoForm_processEvent(jqel_form,'formerror',[json,status,xhr,ajaxData,formOrganism],app.ecoForm_defaultFormError);}},mmiAjaxFail:function(json,status,xhr){app.ecoForm_processEvent(jqel_form,'formerror',[json,status,xhr,ajaxData,formOrganism],app.ecoForm_defaultFormError);},mmiAjaxAlways:function(json,status,xhr){app.ecoForm_processEvent(jqel_form,'formcomplete',[json,status,xhr,ajaxData,formOrganism],app.ecoForm_defaultFormComplete);}};if(jqel_fileFields.size()){ajaxOptions.cache=false;ajaxOptions.contentType=false;ajaxOptions.processData=false;var initialFormData=ajaxOptions.data;var data=new FormData();jQuery.each(initialFormData,function(dataKey,dataValue){if(jqel_fileFields.filter('[name="'+dataKey+'"]').size()===0){data.append(dataKey,dataValue);}});jqel_fileFields.each(function(){var jqel_fileField=jQuery(this);var fieldName=jqel_fileField.attr('name');jQuery.each(jqel_fileField[0].files,function(i,file){data.append(fieldName+'[]',file);});});ajaxOptions.data=data;}
3263if(returnPromise){ajaxData=ajaxOptions.data;delete ajaxOptions.data;delete ajaxOptions.mmiAjaxDone;delete ajaxOptions.mmiAjaxFail;delete ajaxOptions.mmiAjaxAlways;const submitPromise=this.ajaxUsingPromise(ajaxData,ajaxOptions).then((json,status,xhr,ajaxOptions)=>{if(jQuery.isPlainObject(json)&&jQuery.isPlainObject(json.server)&&json.server.status===true){app.ecoForm_processEvent(jqel_form,'formsuccess',[json,status,xhr,ajaxData,formOrganism],app.ecoForm_defaultFormSuccess);}else{app.ecoForm_processEvent(jqel_form,'formerror',[json,status,xhr,ajaxData,formOrganism],app.ecoForm_defaultFormError);}}).catch(()=>{app.ecoForm_processEvent(jqel_form,'formerror',[{},null,null,ajaxData,formOrganism],app.ecoForm_defaultFormError);}).finally(()=>{app.ecoForm_processEvent(jqel_form,'formcomplete',[{},null,null,ajaxData,formOrganism],app.ecoForm_defaultFormComplete);});this.ecoForm_processEvent(jqel_form,'formstart',[{},'start',submitPromise,ajaxData,formOrganism],app.ecoForm_defaultFormStart);return submitPromise;}else{const jqXhr=this.ajax(ajaxOptions);this.ecoForm_processEvent(jqel_form,'formstart',[{},'start',jqXhr,ajaxData,formOrganism],app.ecoForm_defaultFormStart);}},ecoForm_submitFormWithFiles:function(formOrganism){cwarn('ecoForm_submitFormWithFiles is deprecated. Use ecoForm_submitForm instead.');
3263if(!(formOrganism instanceof Eco.Organism.Form)){permaclog(formOrganism);cwarn('Invalid eco form organism ^^^ supplied to ecoForm_submitFormWithFiles');return false;}
3264this.registerLiveEvents(this._ecoFormLiveEvents);var jqel_form=formOrganism.jqel_form;formOrganism.validate();var errors=formOrganism.getErrors();if(errors.length){return false;}
3265var url=jqel_form.attr('action');if(!url){url='/';}
3266var app=this;var ajaxData=formOrganism.getAllValues();if(jqel_form.data('ecoSubmitFormViaGet')===true){var params=jQuery.param(ajaxData);var regex=new RegExp(/\/(content\/[\w-]*|page\/[\w-]*)(?:\/?)(.*)/);var matches=url.match(regex);if(matches instanceof Array){if(matches[2]!==''){url+='&';}}else{url+='?';}
3267url+=params;window.location.href=url;return false;}
3268var ajaxOptions={queueByXhrId:true,xhrId:'eco-form-submit',data:ajaxData,url:url,success:function(json,status,xhr){if(jQuery.isPlainObject(json)&&jQuery.isPlainObject(json.server)&&json.server.status===true){app.ecoForm_processEvent(jqel_form,'formsuccess',[json,status,xhr,ajaxData,formOrganism],app.ecoForm_defaultFormSuccess);}else{app.ecoForm_processEvent(jqel_form,'formerror',[json,status,xhr,ajaxData,formOrganism],app.ecoForm_defaultFormError);}},error:function(json,status,xhr){app.ecoForm_processEvent(jqel_form,'formerror',[json,status,xhr,ajaxData,formOrganism],app.ecoForm_defaultFormError);},complete:function(json,status,xhr){app.ecoForm_processEvent(jqel_form,'formcomplete',[json,status,xhr,ajaxData,formOrganism],app.ecoForm_defaultFormComplete);}};ajaxOptions['cache']=false;ajaxOptions['contentType']=false;ajaxOptions['processData']=false;ajaxOptions['type']='POST';var oldFormData=ajaxOptions.data;var data=new FormData();jQuery.each(oldFormData,function(dataKey,dataValue){data.append(dataKey,dataValue);});data.append('attitude','json');var jqel_formElement=formOrganism.jqel;var fields=jqel_formElement.find('input:file');fields.each(function(){var fieldName=jQuery(this).attr('name');jQuery.each(jQuery(this)[0].files,function(i,file){data.append(fieldName+'[]',file);});});window.testData=data;ajaxOptions.data=data;var jqXhr=jQuery.ajax(ajaxOptions);this.ecoForm_processEvent(jqel_form,'formstart',[{},'start',jqXhr,ajaxData,formOrganism],app.ecoForm_defaultFormStart);},_ecoForm_saveItemIntermediary:function(formOrganism){if(formOrganism.areDependencyChecksComplete()){this._ecoForm_saveItem(formOrganism);}else{var self=this;setTimeout(function(){self._ecoForm_saveItemIntermediary(formOrganism);},500);}},ecoForm_saveItem:function(formOrganism){clog('ecoForm_saveItem');if(!(formOrganism instanceof Eco.Organism.Form)){permaclog(formOrganism);cwarn('Invalid eco form organism ^^^ supplied to ecoForm_saveItem');return false;}
3269this.registerLiveEvents(this._ecoFormLiveEvents);this._ecoForm_saveItemIntermediary(formOrganism);},_ecoForm_saveItem:function(formOrganism){var jqel_form=formOrganism.jqel_form;formOrganism.validate();var errors=formOrganism.getErrors();if(errors.length){return false;}
3270var formData=jQuery.extend({},formOrganism.getAllValues());var ajaxData={mode:'edit',item:{}};var item_id=this.ecoForm_getItemIdOrHash(formOrganism,false);if(!item_id){permaclog(formOrganism);cwarn('You are trying to save a Genome item form ^^^ but have not supplied an item_hash or item_id. Add an item_id or item_hash field or data attribute to the form.');return false;}
3271ajaxData['id']=item_id;var item_type='';if(isNaN(item_id)){if(formData.item_type){ajaxData.type=item_type;}else if(jqel_form.data('item_type')){ajaxData.type=jqel_form.data('item_type');}else{permaclog(formOrganism);cwarn('You are trying to save a new item form ^^^ without specifying a type. Add an item_type field or item_type data entry to the form.');return false;}
3272if(formOrganism.hasValueByName('item_parent')){ajaxData.parent_id=formData.item_parent;}else if(jqel_form.data().hasOwnProperty('item_parent')){ajaxData.parent_id=jqel_form.data('item_parent');}else{permaclog(formOrganism);cwarn('Saving a new item form ^^^ with no item_parent field and no item_parent data attribute. Was this intentional?');}}else{}
3273if(formData.view){ajaxData.view=formData.view;}else if(jqel_form.data('view')){ajaxData.view=jqel_form.data('view');}else{ajaxData.view='blank';}
3274if(formData){delete formData.item_id;delete formData.view;delete formData.mode;delete formData.item_hash;for(var fieldName in formData){if(!formData.hasOwnProperty(fieldName)){continue;}
3275if(Eco.Util.toCamelCase(fieldName,{})===fieldName){ajaxData[fieldName]=formData[fieldName];delete formData[fieldName];}}}
3276var jqel_fieldListOrganisms=formOrganism.jqel.find("[class*='organism_'][data-field-list]");if(jqel_fieldListOrganisms.size()){var alternateFieldLists={};alternateFieldLists[item_id]={};var fieldListsSet=false;jqel_fieldListOrganisms.each(function(){var jqel_checkField=jQuery(this);var fieldList=jqel_checkField.data('fieldList');
3276if(fieldList&&fieldList!=='fieldList'&&fieldList!=='fieldlist'){var fieldOrganism=jqel_checkField.data('organism');if(fieldOrganism){var organismName=fieldOrganism.getOwnEntityName();if(organismName){var organismValue=fieldOrganism.getValue();delete formData[organismName];delete formData[organismName.toLowerCase()];if(!alternateFieldLists[item_id][fieldList]){alternateFieldLists[item_id][fieldList]={};}
3277alternateFieldLists[item_id][fieldList][organismName]=organismValue;fieldListsSet=true;}}}});if(fieldListsSet){ajaxData.fieldLists=alternateFieldLists;}}
3278const jqel_extraFieldOrganisms=formOrganism.jqel.find("[class*='organism_'][data-extra-field]");if(jqel_extraFieldOrganisms.length){const extraFields={};jqel_extraFieldOrganisms.each(function(){const jqel_field=jQuery(this);const fieldOrganism=jqel_field.data('organism');if(fieldOrganism){const name=fieldOrganism.getOwnEntityName();if(name){const attachedTo=jqel_field.data('extraField');const val=fieldOrganism.getValue();delete formData[name];delete formData[name.toLowerCase()];const unprefixedName=name.replace(`${attachedTo}--`,'');extraFields[attachedTo]={...extraFields[attachedTo],[unprefixedName]:val}}}});if(Object.keys(extraFields).length){formData.extra_fields=extraFields;}}
3279ajaxData.item[item_id]=formData;this.ecoForm_processEvent(jqel_form,'dataprocessor',[ajaxData],function(){});var app=this;var ajaxOptions={queueByXhrId:true,xhrId:'eco-save-item-'+item_id,data:ajaxData,mmiAjaxDone:function(json,status,xhr){if(jQuery.isPlainObject(json)&&jQuery.isPlainObject(json.server)&&json.server.status===true){app.ecoForm_processEvent(jqel_form,'formsuccess',[json,status,xhr,ajaxData,formOrganism],app.ecoForm_defaultSaveItemFormSuccess);}else{app.ecoForm_processEvent(jqel_form,'formerror',[json,status,xhr,ajaxData,formOrganism],app.ecoForm_defaultSaveItemFormError);}},mmiAjaxFail:function(json,status,xhr){app.ecoForm_processEvent(jqel_form,'formerror',[json,status,xhr,ajaxData,formOrganism],app.ecoForm_defaultSaveItemFormError);},mmiAjaxAlways:function(json,status,xhr){app.ecoForm_processEvent(jqel_form,'formcomplete',[json,status,xhr,ajaxData,formOrganism],app.ecoForm_defaultSaveItemFormComplete);}};var jqXhr=this.ajax(ajaxOptions);this.ecoForm_processEvent(jqel_form,'formstart',[{},'start',jqXhr,ajaxData,formOrganism],app.ecoForm_defaultSaveItemFormStart);return true;}
3279,ecoForm_submitFormData:function(formOrganism){if(!(formOrganism instanceof Eco.Organism.Form)){permaclog(formOrganism);cwarn('Invalid eco form organism ^^^ supplied to ecoForm_submitFormData');return false;}
3280this.registerLiveEvents(this._ecoFormLiveEvents);var formData={};if(formOrganism.jqel.ecoData('submitPartialFormData')){formData=jQuery.extend({},formOrganism.getAllChangedValues());var requiredFormDataFields=formOrganism.jqel.ecoData('requiredFormDataFields');if(requiredFormDataFields&&requiredFormDataFields.length){jQuery.each(requiredFormDataFields,function(n,field){if(!formData.hasOwnProperty(field)){formData[field]=formOrganism.getValue(field);}})}
3281if(jQuery.isEmptyObject(formData)){formData={placeholderValueForSave:true};}}else{formData=jQuery.extend({},this.cleanDuplicateVariableDataFromEcoForm(formOrganism,formOrganism.getAllValues()));}
3282var ajaxData={mode:'form',formdata:{}};var jqel_form=formOrganism.jqel_form;var item_id=this.ecoForm_getItemIdOrHash(formOrganism,true);if(!item_id){permaclog(formOrganism.jqel_form);cwarn('You are trying to save a Genome form but have not supplied an item_id. Add an item_id field or data element to the form.');return;}
3283ajaxData.id=item_id;ajaxData.formdata[item_id]=formData;var viewOverride=formOrganism.jqel.ecoData('form_view');if(viewOverride){ajaxData.view=viewOverride;}
3284this.ecoForm_processEvent(jqel_form,'dataprocessor',[ajaxData],function(){});var app=this;var ajaxOptions={queueByXhrId:true,xhrId:'eco-submit-form-data-'+item_id,data:ajaxData,mmiAjaxDone:function(json,status,xhr){if(json.error){app.ecoForm_processEvent(jqel_form,'formerror',[json,status,xhr,ajaxData,formOrganism],app.ecoForm_defaultSubmitFormDataError);}else{app.ecoForm_processEvent(jqel_form,'formsuccess',[json,status,xhr,ajaxData,formOrganism],app.ecoForm_defaultSubmitFormDataSuccess);}},mmiAjaxFail:function(json,status,xhr){app.ecoForm_processEvent(jqel_form,'formerror',[json,status,xhr,ajaxData,formOrganism],app.ecoForm_defaultSubmitFormDataError);},mmiAjaxAlways:function(json,status,xhr){app.ecoForm_processEvent(jqel_form,'formcomplete',[json,status,xhr,ajaxData,formOrganism],app.ecoForm_defaultSubmitFormDataComplete);}};var jqXhr=this.ajax(ajaxOptions);this.ecoForm_processEvent(jqel_form,'formstart',[{},'start',jqXhr,ajaxData,formOrganism],app.ecoForm_defaultSubmitFormDataStart);return false;},cleanDuplicateVariableDataFromEcoForm:function(formOrganism,origFormData){const formData=Basix.extend(Basix.EXTEND_RECURSIVE,{},origFormData);const organisms=formOrganism.getChildOrganisms();const fieldNames=[];const variableNames=[];for(const organism of organisms.values()){if(typeof(organism.getOwnEntityName)==='function'){var name=organism.getOwnEntityName();fieldNames.push(name);var fieldData=organism.jqel.data();if(fieldData.hasOwnProperty('external_name')){variableNames.push(fieldData.external_name);}}}
3285const purgeList=['columns'];for(const v of variableNames.values()){if(fieldNames.indexOf(v)===-1){if(v!=='sort'&&v!=='data'){purgeList.push(v);}}}
3286return this.removeKeysRecursive(formData,purgeList);},removeKeysRecursive:function(obj,ignoreKeys){if(typeof(obj)!=='object'||obj===null){return obj;}
3287const objectValue={};Object.entries(obj).map(([key,value])=>{if(ignoreKeys.indexOf(key)===-1){if(typeof(value)==='object'&&!Array.isArray(value)){objectValue[key]=this.removeKeysRecursive(value,ignoreKeys);}else{objectValue[key]=value;}}});return objectValue;},ecoForm_getItemIdOrHash:function(formOrganism,itemIdOnly){var jqel_form=formOrganism.jqel_form;var formData=formOrganism.getAllValues();if(!formData){formData={};}
3288if(formData.item_id){return formData.item_id;}
3289if(jqel_form.data('item_id')){return jqel_form.data('item_id');}
3290if(!itemIdOnly&&formData.item_hash){return formData.item_hash;}
3291if(!itemIdOnly&&jqel_form.data('item_hash')){return jqel_form.data('item_hash');}
3292if(jqel_form.ecoData('item_id')){return jqel_form.ecoData('item_id');}
3293if(!itemIdOnly&&jqel_form.mmiData('item_hash')){return jqel_form.ecoData('item_hash');}
3294return false;},ecoForm_processEvent:function(jqel_form,eventName,params,defaultHandler){var eventClass='live_'+eventName.toLowerCase();var jqel_triggers=jqel_form.find('.'+eventClass).addBack('.'+eventClass);if(jqel_triggers.size()){var event=jQuery.Event(eventName,{defaultHandler:defaultHandler});jqel_triggers.trigger(event,params);}else{if(!Basix.isFunction(defaultHandler)){permaclog(defaultHandler);cwarn('Invalid default handler ^^^ for event '+eventName+'. Must be a valid callback handler for Eco callbacks.');return;}
3295defaultHandler.apply(jqel_form,params);}},ecoForm_defaultFormStart:function(json,status,xhr,ajaxData,formOrganism){formOrganism.onSubmitStart({arguments:arguments});},ecoForm_defaultFormSuccess:function(json,status,xhr,ajaxData,formOrganism){formOrganism.onSubmitSuccess({arguments:arguments});},ecoForm_defaultFormError:function(json,status,xhr,ajaxData,formOrganism){let app=MMI.App.get();formOrganism.onSubmitError({arguments:arguments});formOrganism.onSubmitError();let message='';if(Basix.getValue(json,'api')===true){app._api_processServerSystemErrors({data:json},json.debug.key,'API Form Submit Request: '+jQuery.param(ajaxData));if(json.errors&&json.errors.length){message=json.errors[0];}}else{message=Basix.getValue(json,'server.error.message');}
3296if(!message){message='We were unable to process your request. Please try again.';}
3297formOrganism.jqel.find('.atom_form-error-message').html(message);setTimeout(function(){formOrganism.scrollToFirstError();},25);},ecoForm_defaultFormComplete:function(json,status,xhr,ajaxData,formOrganism){formOrganism.onSubmitComplete({arguments:arguments});},ecoForm_defaultSaveItemFormStart:function(json,status,xhr,ajaxData,formOrganism){formOrganism.onSubmitStart({arguments:arguments});},ecoForm_defaultSaveItemFormSuccess:function(json,status,xhr,ajaxData,formOrganism){formOrganism.onSubmitSuccess({arguments:arguments});},ecoForm_defaultSaveItemFormError:function(json,status,xhr,ajaxData,formOrganism){formOrganism.onSubmitError({arguments:arguments});var serverOperations=Basix.getValue(json,'server.operations');if(serverOperations){var response=false;jQuery.each(serverOperations,function(key,val){response=val;return false;});}
3298if(response){var fieldErrors=response.fieldErrors;if(fieldErrors){var jqel_form=formOrganism.jqel;jQuery.each(fieldErrors,function(fieldName,fieldErrorList){if(fieldErrorList){var jqel_organism=jqel_form.find('[data-name='+fieldName+']');var fieldOrganism=jqel_organism.ecoData('organism');if(!fieldOrganism){return;}
3299fieldOrganism.showErrors({'messages':fieldErrorList});}});}}
3300var message=Basix.getValue(json,'server.error.message');
3300if(!message){message='There was an error saving your data. Please try again.';}
3301formOrganism.jqel.find('.atom_form-error-message').html(message);setTimeout(function(){formOrganism.scrollToFirstError();},25);},ecoForm_defaultSaveItemFormComplete:function(json,status,xhr,ajaxData,formOrganism){formOrganism.onSubmitComplete({arguments:arguments});},ecoForm_defaultSubmitFormDataStart:function(json,status,xhr,ajaxData,formOrganism){formOrganism.onSubmitStart({arguments:arguments});},ecoForm_defaultSubmitFormDataSuccess:function(json,status,xhr,ajaxData,formOrganism){formOrganism.onSubmitSuccess({arguments:arguments});},ecoForm_defaultSubmitFormDataError:function(json,status,xhr,ajaxData,formOrganism){formOrganism.onSubmitError({arguments:arguments});var message=Basix.getValue(json,'server.error.message');if(!message){message='There was an error saving your data. Please try again.';}
3302formOrganism.jqel.find('.atom_form-error-message').html(message);},ecoForm_defaultSubmitFormDataComplete:function(json,status,xhr,ajaxData,formOrganism){formOrganism.onSubmitComplete({arguments:arguments});},ecoGrid_resizeAllVisible:function(){var jqel_grids=jQuery('.atom_grid:visible');jqel_grids.each(function(){var jqel_grid=jQuery(this);var organism=jqel_grid.ecoData('organism');if(organism&&organism.loadGridData){organism.grid.resizeCanvas();}});return true;}
3302,ecoGrid_reloadAllVisible:function(){var jqel_grids=jQuery('.atom_grid');jqel_grids.each(function(){var organism=jQuery(this).ecoData('organism');if(organism&&organism.loadGridData){organism.loadGridData();}});return true;}};
3303MMI.Util.namespace('MMI.App.Modules');(function(){var appCode={__coreModuleNames:[],__applicationModuleNames:[],_version:2.0};jQuery.each(MMI.App.Modules,function(moduleName,moduleCode){appCode.__coreModuleNames.push(moduleName);if(moduleCode.hasOwnProperty('__construct')){moduleCode['__'+moduleName+'ConstructHelix']=moduleCode.__construct;delete moduleCode.__construct;}
3304if(moduleCode.hasOwnProperty('__appReady')){moduleCode['__'+moduleName+'AppReadyHelix']=moduleCode.__appReady;delete moduleCode.__appReady;}
3305if(moduleCode.hasOwnProperty('__documentReady')){moduleCode['__'+moduleName+'DocumentReadyHelix']=moduleCode.__documentReady;delete moduleCode.__documentReady;}
3306appCode=jQuery.extend(appCode,moduleCode);});appCode.__construct=function(){this.__CoreConstructHelix();var app=this;jQuery.each(this.__coreModuleNames,function(index,moduleName){if(jQuery.inArray(moduleName.toLowerCase(),['core'])==-1){var pseudoConstructorName='__'+moduleName+'ConstructHelix';if(typeof(app[pseudoConstructorName])=='function'){app[pseudoConstructorName]();}}});this.__ready();};MMI.App.Core=MMI.stdClass.extend(appCode);})();
3307MMI.Util.namespace('MMI.Core.LiveEventHandlers.Login');MMI.Core.LiveEventHandlers.Login={handleAppInstanceCreated:function(app){app.registerHandlerClass(MMI.Core.LiveEventHandlers.Login);},do_loginResults:function(event,app,jqel,data,json){var status=json.login.status;app._alertLoginStatus(status,data);},do_passwordResetResults:function(event,app,jqel,data,json){app._alertPasswordResetStatus(data,json);},do_openSignInDialog:function(event,app,jqel,data){clog('data.signInOptions',data.signInOptions);app.openSignInDialog(null,null,data.signInOptions);return false;},do_loginFromForm:function(event,app,jqel,data){}};MMI.App.registerInitCallback(MMI.Core.LiveEventHandlers.Login.handleAppInstanceCreated);
3308MMI.Util.namespace('MMI.Core.LiveEventHandlers.Genome');MMI.Core.LiveEventHandlers.Genome={handleAppInstanceCreated:function(app){app.registerHandlerClass(MMI.Core.LiveEventHandlers.Genome);},do_copyValue:function(event,app,jqel,data){app.copyToClipboard(data.valueToCopy);},do_debugNextAjaxRequest:function(event,app,jqel,data){app._debugNextAjaxRequest=true;},do_debugAjaxRequestByXhrId:function(event,app,jqel,data){app.addAjaxXhrIdToDebugList(prompt('XHR ID: '));},do_debugBannerShowErrorsForUiDetails:function(event,app,jqel,data){let jqel_details=jqel.parents('.errorsForUiNotification').find('.errorForUiDetails');let jqel_detailsClone=jqel_details.clone();const wrappedDialogContent=new HelixWrappedDialogContentData({title:'Errors',content:jqel_detailsClone,});let dialog=app.wrappedDialog({modal:true,width:'css',height:'css',classes:['errorsForUiDetailsDialog'],themes:['eco'],minimize:false,maximize:false,title:false});dialog.content(wrappedDialogContent).open();dialog.getContentPromise().then(contentData=>{contentData.content.removeClass('mod_hidden');});},do_addServerRoleNotificationCookie:function(event,app,jqel,data){var cookieOptions={name:'hideServerRoleNotification',value:'hideServerRoleNotification',path:'/'};MMI.Util.writeCookie(cookieOptions);},do_sendPasswordResetEmail:function(event,app,jqel,data){var form=data.organism_form;if(!form||!form.getValue('profile_email')){app.displayErrorNotification('Unable to send a password reset email. Could not find an email address.');return;}
3309var dialogOptions={width:550,height:400,themes:['eco','eco-prompt'],minimize:false,maximize:false,title:'Sending Password Reset Email',modal:true,closeCallbacks:[function(){}]};var defaultContent=Be.Fancy.generateSpinner(true);var jqel_dialogContent=app.dialog(defaultContent,dialogOptions);var email=form.getValue('profile_email');app.ajax({data:{mode:'password_reset',email:email,sendEmail:true},mmiAjaxDone:function(json){if(json&&json.mode&&json.mode.password_reset&&json.mode.password_reset.sendEmail&&json.mode.password_reset.sendEmail.attempted&&json.mode.password_reset.sendEmail.status){jqel_dialogContent.html('<div class="mod_flex-column" style="align-items: center;"><div class="eco eco-check-circle mod_icon-large mod_color-success"></div><div class="atom_spacer-v-10"></div><div class="mod_text-center">Password reset email sent to:<div class="mod_color-aluminum">'+json.mode.password_reset.sendEmail.email+'</div></div></div>');}else{jqel_dialogContent.html('<div class="mod_flex-column" style="align-items: center;"><div class="eco eco-error mod_icon-large mod_color-error"></div><p class="mod_text-center">Unable to send email.</p></div>');}}});}
3309,do_sendVerificationEmail:function(event,app,jqel,data){var form=data.organism_form;if(!form||!form.getValue('profile_email')){app.displayErrorNotification('Unable to send a verification email. Could not find an email address.');return;}
3310var dialogOptions={width:550,height:400,themes:['eco','eco-prompt'],minimize:false,maximize:false,title:'Sending Verification Email',modal:true,closeCallbacks:[function(){}]};var defaultContent=Be.Fancy.generateSpinner(true);var jqel_dialogContent=app.dialog(defaultContent,dialogOptions);var email=form.getValue('profile_email');app.ajax({data:{mode:'verify',email:email,sendEmail:true},mmiAjaxDone:function(json){if(json&&json.mode&&json.mode.verify&&json.mode.verify.sendEmail&&json.mode.verify.sendEmail.attempted&&json.mode.verify.sendEmail.status){jqel_dialogContent.html('<div class="mod_flex-column" style="align-items: center;"><div class="eco eco-check-circle mod_icon-large mod_color-success"></div><div class="atom_spacer-v-30"></div><div class="mod_text-center">Verification email sent to:<div class="mod_color-aluminum">'+json.mode.verify.sendEmail.email+'</div></div></div>');}else{jqel_dialogContent.html('<div class="mod_flex-column" style="align-items: center;"><div class="eco eco-error mod_icon-large mod_color-error"></div><p class="mod_text-center">Unable to send email.</p></div>');}}});},do_cloneItem:function(event,app,jqel,data){var dialogOptions={width:500,height:400,themes:['eco','eco-prompt'],minimize:false,maximize:false,title:'Cloning Item',modal:true,closeCallbacks:[function(){app.ecoGrid_reloadAllVisible();}]};var defaultContent=Be.Fancy.generateSpinner(true);var jqel_dialogContent=app.dialog(defaultContent,dialogOptions);var jqel_dialog=jqel_dialogContent.smartBox('getDialog');if(!Basix.isObject(data.cloneOptions)){app.displayErrorNotification('data.cloneOptions is not an object.','MMI.App.do_cloneItem',{options:data.cloneOptions});}
3311var options=Basix.extend(Basix.EXTEND_RECURSIVE,{},data.cloneOptions);options.jqel=jqel_dialog.smartBox('getDialogContent');options.mmiAjaxDone=function(json,status,xhr,ajaxOptions){if(json.server.status===true){jqel_dialog.smartBox('setTitle','<div class="eco eco-check-o mod_color-success"></div> Clone Success');options.jqel.html('<div style="padding: 20px 40px;">The clone operation is complete.</div>');}else{jqel_dialog.smartBox('setTitle','<div class="eco eco-error mod_color-error"></div> Clone Error');options.jqel.html('<div style="padding: 20px 40px;">'+json.allErrorMessages.join("<br>")+'</div>');}};app.cloneItem(options);},do_adminOpenPartialDialog:function(event,app,jqel,data){app.adminOpenPartialDialog(data.item_id);},do_openStyleHelperDialog:function(event,app,jqel,data){let themeNameString=jQuery('#dialogThemeName').ecoData('organism').val();let themeNames=themeNameString.split(' ');let defaultDialogOptions={classes:[],position:'css',width:'css',height:'css',close:true,minimize:false,maximize:false,restore:false,resizable:false,draggable:false};if(!data.dialogOptions){data.dialogOptions={};}
3312data.dialogOptions.themes=themeNames;data.dialogOptions=Basix.extend({},defaultDialogOptions,data.dialogOptions);app.wrappedDialog(data.dialogOptions).spin().content(data.content).open();},do_assumeAlias:function(event,app,jqel,data){app.assumeAlias(data.targetProfileId);},do_dropAlias:function(event,app,jqel,data){app.dropAlias();},do_boomTestHard:function(event,app,jqel,data){app.forceOverrideAjaxView('boom');app.displaySuccessNotification('Boom test set to hard fail for all server requests.');},do_boomTestSoft:function(event,app,jqel,data){app.forceOverrideAjaxView('boom_soft');app.displaySuccessNotification('Boom test set to soft fail for all server requests.');},do_clearBoomTest:function(event,app,jqel,data){app.forceOverrideAjaxView(null);app.displaySuccessNotification('Boom test cleared.');},do_openItemPreviewDialog:function(event,app,jqel,data){app.openItemPreviewDialog(data.item_id);},do_signOutViaPageLoad:function(event,app,jqel,data){window.location.href='/mode/logout';},do_restoreVersion:function(event,app,jqel,data){const jqel_tooltip=jqel.parents('.be_tooltip');if(jqel_tooltip.hasClass('mod_restoring')){return;}
3313jqel_tooltip.addClass('mod_restoring');const tooltipApi=jqel_tooltip.ecoData('tooltip');var ajaxData={version:data.versionId,view:'ajax_restore_version'};app.ajax({data:ajaxData,mmiAjaxDone:function(json){if(!json||!json.returnData||!json.returnData.versionRestoreStatus){app.displayErrorNotification('We were unable to restore that version.','restoreVersion.aja
3313xDone');tooltipApi?.destroy();return;}
3314if(app.triggerEvent('itemrestoreversionsuccess',[json.id,json.returnData.versionRestoreStatus,json,json.server.operations[json.id]])){app.displaySuccessNotification('This item has been restored.');}
3315tooltipApi?.destroy();}});},do_showAllVersionsInList:function(event,app,jqel,data){var jqel_parent=jqel.parent();var jqel_hidden=jqel_parent.parent().find('.mod_hidden');var jqel_children=jqel_hidden.children();jqel_children.detach();jqel_parent.remove();jqel_hidden.after(jqel_children);},do_siteRoleClicked:function(event,app,jqel,data){jqel.hide();},do_ecoTriggerSubmit:function(event,app,jqel,data){if(jqel.hasClass('mod_disabled')){return false;}
3316var formOrganism=this._getFormOrganism(jqel);formOrganism.jqel_form.trigger('submit');},do_ecoValidateForm:function(event,app,jqel,data){var formOrganism=this._getFormOrganism(jqel);if(formOrganism instanceof Eco.Organism.Form){return app.ecoForm_validateForm(formOrganism);}else{permaclog(jqel);cwarn('The form being submitted does not use eco and is not supported by do_ecoValidateForm. Canceling form submit event.');}
3317return false;},do_throw:function(event,app,jqel,data){throw'Test Error';},do_promise:function(event,app,jqel,data){const args=[].slice.call(arguments,4).join(':');const methods=args.match(/^((?<runType>(series|parallel)):)?\[(?<awaits>[\w\d,:' ]+)\](then\[(?<then>[\w\d,:' ]+)\])?(catch\[(?<catch>[\w\d,:' ]+)\])?(finally\[(?<finally>[\w\d,:' ]+)\])?/).groups;const runType=methods?.runType??'series';new Promise(function(resolve,reject){const awaits=methods.awaits.split(',');if(runType==='series'){const responses=[];function seriesLoop(){const next=awaits.shift();if(next){const[method,...methodArgs]=next.split(':');const rtn=app.manuallyFireEvent(event,method,jqel,data,methodArgs);if(rtn===undefined||rtn===true){responses.push(rtn);seriesLoop();}else if(rtn instanceof Promise){rtn.then((val)=>{responses.push(val);seriesLoop();},reject);}}else{resolve(responses);}}
3318seriesLoop();}else if(runType==='parallel'){const promises=[];awaits.forEach((methodName)=>{const[method,...methodArgs]=methodName.split(':');promises.push(app.manuallyFireEvent(event,method,jqel,data,methodArgs));});Promise.all(promises).then(resolve,reject);}else{throw`you shouldn't be able to get here without editing the regex for the args`;}}).then((responses)=>{if(methods.then){app.manuallyFireEvent(event,methods.then.replaceAll(',',';'),jqel,data,[responses]);}}).catch(function(err){if(methods.catch){app.manuallyFireEvent(event,methods.catch.replaceAll(',',';'),jqel,data,err);}}).finally(function(){if(methods.finally){app.manuallyFireEvent(event,methods.finally.replaceAll(',',';'),jqel,data);}});return false;},do_ecoSubmitForm:function(event,app,jqel,data){var formOrganism=this._getFormOrganism(jqel);if(formOrganism instanceof Eco.Organism.Form){app.ecoForm_submitForm(formOrganism);}else{permaclog(jqel);cwarn('The form being submitted does not use eco and is not supported by do_ecoSubmitForm. Canceling form submit event.');}
3319return false;},do_ecoSubmitFormWithFiles:function(event,app,jqel,data){var formOrganism=this._getFormOrganism(jqel);if(formOrganism instanceof Eco.Organism.Form){app.ecoForm_submitFormWithFiles(formOrganism);}else{permaclog(jqel);cwarn('The form being submitted does not use eco and is not supported by do_ecoSubmitFormWithFiles. Canceling form submit event.');}
3320return false;},do_ecoSubmitFormViaGet:function(event,app,jqel,data){var formOrganism=this._getFormOrganism(jqel);if(formOrganism instanceof Eco.Organism.Form){formOrganism.jqel_form.data('ecoSubmitFormViaGet',true);app.ecoForm_submitForm(formOrganism);}else{permaclog(jqel);cwarn('The form being submitted does not use eco and is not supported by do_ecoSubmitFormViaGet. Canceling form submit event.');}
3321return false;},do_ecoSaveItem:function(event,app,jqel,data){var formOrganism=this._getFormOrganism(jqel);if(formOrganism instanceof Eco.Organism.Form){new Promise(resolve=>{setTimeout(()=>{resolve();},500)}).then(()=>{if(Be.Genome.Item.Layout.Expressions){let watcherPromise=Be.Genome.Item.Layout.Expressions.waitForWatcherQueue();watcherPromise.then(()=>{app.ecoForm_saveItem(formOrganism);});}else{app.ecoForm_saveItem(formOrganism);}});}else{permaclog(jqel);cwarn('The form being submitted does not use eco and is not supported by do_saveItem. Canceling form submit event.');}
3322return false;},do_ecoDeleteItem:function(event,app,jqel,data){let message=data.item_name;if(data.dialogOverrideText){message=data.dialogOverrideText;}
3323const dialog=new HelixWrappedDialog({});dialog.applyOptionsSet(HelixWrappedDialog.OPTIONS_DEFAULTS).addTheme('helix-wrapped-dialog--button-bar-footer');if(data.item_name){dialog.header('Archive this item?');}
3324dialog.content(`<p class="mod_text-center">${message}</p>`).footer('<div class="atom_button live_click mod_inverse" data-live_click_handler="closeWrappedDialog">Cancel</div><div class="atom_button live_click mod_destructive" data-live_click_handler="resolveWrappedDialog">Archive It</div>').open().then(()=>{const dialog=new HelixWrappedDialog({titleBar:false,});dialog.applyOptionsSet(HelixWrappedDialog.OPTIONS_DEFAULTS).addTheme('helix-wrapped-dialog--button-bar-footer').header('Archiving item&hellip;').spin().open();const itemsDeleteObject={[data.item_id]:{confirm:1,children:true,},};app.triggerEvent('itemdeletestart',[data.item_id],itemsDeleteObject);return app.deleteItemPromise(data.item_id).then(rsp=>{dialog.content('Archived Successfully!');app.triggerEvent('itemdeletesuccess',[data.item_id,itemsDeleteObject]);}).catch(error=>{app.displayErrorNotification('Unable to archive this item.');app.triggerEvent('itemdeleteerror',[data.item_id,itemsDeleteObject]);}).finally(()=>{dialog.closeImmediately();app.triggerEvent('itemdeletedone',[data.item_id,itemsDeleteObject]);});}).catch((err)=>{console.error(err);});},do_ecoRestoreItem:function(event,app,jqel,data){var message='Are you sure you want to restore this item?';if(data.item_name){message='Are you sure you want to restore '+data.item_name+'?';}
3325if(data.dialogOverrideText){message=data.dialogOverrideText;}
3326app.confirm({message:message,callback:function(result,options){switch(result.id){case'ok':app.restoreItem(data.item_id,true);break;case'cancel':default:break;}}});return true;},do_ecoSubmitFormData:function(event,app,jqel,data){var formOrganism=this._getFormOrganism(jqel);if(formOrganism instanceof Eco.Organism.Form){new Promise(resolve=>{setTimeout(()=>{resolve();},500)}).then(()=>
3326{if(Be.Genome.Item.Layout.Expressions){let watcherPromise=Be.Genome.Item.Layout.Expressions.waitForWatcherQueue();watcherPromise.then(()=>{app.ecoForm_submitFormData(formOrganism);});}else{app.ecoForm_submitFormData(formOrganism);}});}else{permaclog(jqel);cwarn('The form being submitted does not use eco and is not supported by do_ecoSubmitFormData. Canceling form submit event.');}
3327return false;},do_ecoResetFormState:function(event,app,jqel,data){var organismForm=data.organism_form;if(organismForm instanceof Eco.Organism.Form){organismForm.resetFormState();}},do_nothing:function(event,app,jqel,data,json,status,xhr,ajaxData){return true;},do_default:function(event,app,jqel,data,json,status,xhr,ajaxData){var args=Array.prototype.slice.call(arguments);args=args.slice(4);if(Basix.isFunction(event.defaultHandler)){event.defaultHandler.apply(jqel,args);}
3328return true;},do_closeAncestorDialog:function(event,app,jqel,data){cwarn('closeAncestorDialog is depreciated. Use closeDialog instead.');jqel.smartBox('close');return true;},_getFormOrganism:function(jqel){var formOrganism=jqel.parents('.organism_form').addBack('.organism_form').data('organism');if(!(formOrganism instanceof Eco.Organism.Form)){var jqel_dialog=jqel.smartBox('getDialog');if(!jqel_dialog.size()){permaclog(jqel);throw'Unable to locate a dialog to assist in locating a form for this ^^^ element.';}
3329var jqel_form=jqel_dialog.find('.organism_form');if(!jqel_form.size()){permaclog(jqel);throw'Unable to locate a form organism inside of the dialog to use for this ^^^ element.';}
3330formOrganism=jqel_form.data('organism');if(!(formOrganism instanceof Eco.Organism.Form)){permaclog(jqel,jqel_form);throw'The form organism instance was not available from this ^^^ element on behalf of a target element ^^^!^^^.';}}
3331return formOrganism;},do_cancelFormChanges:function(event,app,jqel,data){var formOrganism=this._getFormOrganism(jqel);if(formOrganism instanceof Eco.Organism.Form){if(formOrganism.hasChangedValues()){var message='You have unsaved changes.';Eco.OrganismController.create('Eco.Organism.Notification.Message','<div class="mod_warning">',{options:{container:'default',icon:'eco eco-warning',body:message,actions:[{label:'Discard',formOrganism:formOrganism,handler:function(action){this.hide();action.formOrganism.jqel.smartBox('close');}},{label:'Save',formOrganism:formOrganism,handler:function(action){this.hide();var initialValidationErrorsSetting=formOrganism.areValidationErrorsEnabled();formOrganism.enableValidationErrors();var errors=formOrganism.validate();if(!initialValidationErrorsSetting){formOrganism.disableValidationErrors();}
3332if(errors&&errors.length){}else{action.formOrganism.jqel_form.trigger('submit');action.formOrganism.jqel.smartBox('hide');}}}]}});return false;}}},do_cancelIfDifferentItem:function(event,app,jqel,data,itemId){if(event.type!='itemdeletesuccess'){return true;}
3333if(data.item_id!=itemId){return false;}
3334return true;},do_closeDialog:function(event,app,jqel,data){jqel.smartBox('close');return true;},do_clog:function(event,app,jqel,data){clog(event.type,arguments);},do_clogValue:function(event,app,jqel,data){clog(event.type,data.organism.getValue());},do_debugger:function(event,app,jqel,data){debugger},do_keyFilter:function(jqEvent,app,jqel,data,...arguments){const event=jqEvent.originalEvent;let keys=[' ','Enter'];let meta=[];if(arguments[0].startsWith('[')&&arguments[0].endsWith(']')){const tmpKeys=arguments.shift();keys=JSON.parse(tmpKeys);if(arguments[0].startsWith('[')&&arguments[0].endsWith(']')){const tmpMeta=arguments.shift();meta=JSON.parse(tmpMeta);}}
3335if(!keys.length){throw'No keys provided to the keys handler';}
3336if(keys.includes(event.key)){if(meta.length&&!meta.every(prop=>event[prop])){return true;}
3337arguments.forEach(method=>app.manuallyFireEvent(jqEvent,method,jqel,data));return false;}else{return true;}},do_alert:function(event,app,jqel,data){alert(data.alert||'empty alert');},do_closeAncestorDialogAfterPause:function(event,app,jqel,data){cwarn('closeAncestorDialogAfterPause is depreciated. Use closeDialogAfterPause instead.');setTimeout(function(){jqel.smartBox('close');},data.pauseLength?data.pauseLength:250);return true;},do_closeDialogAfterPause:function(event,app,jqel,data){var pauseLength=data.pauseLength?data.pauseLength:1000;setTimeout(function(){jqel.smartBox('close');},pauseLength);return true;},do_stop:function(event,app,jqel_form,data,json,status,xhr,ajaxData,formOrganism){return false;},do_reloadPage:function(event,app,jqel,data,json,status,xhr,ajaxData){if(app.redirectInsteadOfReload()){return true;}
3338window.location.reload();return false;},do_loadUrl:function(event,app,jqel,data,json,status,xhr,ajaxData){if(!data.url){permaclog(jqel);cwarn('loadUrl method used as callback for '+event.type+' but no data-url attribute defined on or above this element ^^^.');return true;}
3339window.location.href=data.url;return false;},do_loadHomePage:function(event,app,jqel_form,data,json,status,xhr,ajaxData,formOrganism){window.location.href='/';return true;},do_displaySavedItem:function(event,app,jqel,data,json,status,xhr,ajaxData){if(json.pageItemData.item_seo_name){var url='/content/'+json.pageItemData.item_seo_name;if(data.displayParams){var params=[];for(var name in data.displayParams){if(data.displayParams.hasOwnProperty(name)){params.push(name+'='+data.displayParams[name]);}}
3340url+='/'+params.join('&');}
3341window.location.href=url;}
3342return true;},do_replacePageContentCenter:function(event,app,jqel,data,json,status,xhr,ajaxData){var jqel_pageContentCenter=jQuery('.pageContentCenter');if(json.result){jqel_pageContentCenter.html(json.result);}else{if(json.server.system){jqel_pageContentCenter.html('');jQuery.each(json.server.system,function(index,value){jqel_pageContentCenter.append('<div class="atom_notification atom_error">'+value+'</div>');});}else{jqel_pageContentCenter.html('<div class="atom_notification atom_error">We detected an empty response from the server.</div>');}}
3343app.initializeNewContent(jqel_pageContentCenter);return true;},do_reloadGrid:function(event,app,jqel,data,json,status,xhr,ajaxData){if(data.grid_organism instanceof Eco.Organism.Grid){data.grid_organism.loadGridData();}else{permaclog(data,jqel);cwarn('MMI.Core.LiveEventHandlers.Genome.do_reloadGrid() was not able to located the data.grid_organism property on this element ^^^. It will now update ALL grids in the page b
3343y reloading their data.');app.ecoGrid_reloadAllVisible();}
3344return true;},do_resizeVisibleGrids:function(event,app,jqel,data,json,status,xhr,ajaxData){app.ecoGrid_resizeAllVisible();return true;},do_reloadVisibleGrids:function(event,app,jqel,data,json,status,xhr,ajaxData){app.ecoGrid_reloadAllVisible();return true;},do_logValues:function(event,app,jqel,data){console.log(data.organism_form.getAllValues());},do_clearDeletedItemsFromGrid:function(event,app,jqel,data,deleteData){var deletedItems=[];if(typeof(deleteData)==='object'){jQuery.each(deleteData,function(id,info){deletedItems.push(id);});}else if(typeof(deleteData)=='string'||typeof(deleteData)==='number'){deletedItems.push(deleteData);}
3345if(deletedItems&&deletedItems.length){jQuery('.molecule_grid').each(function(){var organism=jQuery(this).data('organism');if(organism){if(organism.removeItemById){organism.removeItemById(deletedItems);}}});}
3346return true;},do_openImporterDialog:function(event,app,jqel,data){app.openDisplayItemDialog(data.item_id);},do_importNextBatch:function(event,app,jqel,data){app.importNextBatch(data.item_id,jqel);},do_displayDateTime:function(event,app,jqel,data){var isoDateTimeString=jqel.attr('datetime');var formatString=data.format;var displayModule=data.module;switch(displayModule){case'luxon':default:var dateTime=window.luxon.DateTime.fromISO(isoDateTimeString);jqel.text(dateTime.toFormat(formatString).replace('AM','am').replace('PM','pm'));break;}},do_initializeEditButton:function(event,app,jqel,data){var permission=data.permission;if(!permission){permission='edit';}
3347app.checkPermissionsById(permission,data.item_id);},do_enableEditButtonByIdAndPermission:function(event,app,jqel,data,permissionData){var permission=data.permission;if(!permission){permission='edit';}
3348if(permissionData['items']){if(permissionData['items'][permission]){if(permissionData['items'][permission][parseInt(data.item_id,10)]){jqel.find('.editGi, .editGiInline').not(jqel.find('.itemContent .editGi, .itemContent .editGiInline')).removeClass('forceHidden');}}}},do_editGi:function(event,app,jqel,data){var dialogOptions=data.dialogOptions;var editOptions=data.editOptions;if(!editOptions){editOptions={};}
3349var defaultEditOptions={id:data.item_id};editOptions=jQuery.extend({editGi:true},defaultEditOptions,editOptions);if(!dialogOptions){dialogOptions={};}
3350var defaultDialogOptions={width:900,modal:true,themes:['eco-admin']};dialogOptions=jQuery.extend({},defaultDialogOptions,dialogOptions);app.adminOpenPartialDialog(editOptions.id,editOptions,{},dialogOptions);},do_openEditDialog:function(event,app,jqel,data){MMI.Core.LiveEventHandlers.Genome.do_editGi(event,app,jqel,data);},do_discussionGi:function(event,app,jqel,data){var dialogOptions=data.dialogOptions;var discussionOptions=data.discussionOptions;if(!discussionOptions){discussionOptions={};}
3351var defaultDiscussionOptions={id:data.item_id,view:'discussion'};discussionOptions=jQuery.extend({},defaultDiscussionOptions,discussionOptions);if(!dialogOptions){dialogOptions={};}
3352var defaultDialogOptions={width:900,height:600,modal:true};dialogOptions=jQuery.extend({},defaultDialogOptions,dialogOptions);var dialog=app.dialog('',dialogOptions);var ajaxOptions={jqel:dialog,data:discussionOptions};app.ajax(ajaxOptions);return dialog;},do_editDialogSaveSuccess:function(event,app,jqel,data,json){var jqel_smartBox=jqel.parents('.smartBox').first();if(jqel_smartBox){jqel_smartBox.smartBox('close');return true;}
3353var jqel_oldContent=jqel.parents('.itemContent').first();var jqel_newContent=jQuery(json.result);jqel_oldContent.after(jqel_newContent);jqel_oldContent.remove();MMI.App.get().triggerEvent('creating',jqel_newContent);return true;},do_reloadElement:function(event,app,jqel,data){app.reloadGi(jqel);},do_itemsDeletedDefaultCallback:function(event,app,jqel,data,json){clog('item delete callback is happening');jqel.parents('.smartBox').first().smartBox('close');jQuery.each(json.deleted_items,function(n,id){clog('deleting',id);jQuery('.itemContent.item-'+id).remove();});},do_testAlert1:async function(event,app,jqel,data){let result=await app.alert('<b>Testing</b><br>This is the message.','The Title Here');console.log('Alert returned: ',result);},do_testConfirm1:async function(event,app,jqel,data){let result=await app.confirm('Are you sure?','Yes or No - Choose Now!').catch(e=>e);console.log('Confirm returned: ',result);}
3353,do_testPrompt1:async function(event,app,jqel,data){app.prompt({promptLabel:'Enter your name:',}).header('Some fancy header').then(r=>{console.log('Prompt returned: ',r);}).catch(e=>{console.warn('User canceled prompt.','Prompt returned: ',e);});},};MMI.App.registerInitCallback(MMI.Core.LiveEventHandlers.Genome.handleAppInstanceCreated);
3354MMI.Util.namespace('MMI.Core.LiveEventHandlers.Issue');MMI.Core.LiveEventHandlers.Issue={handleAppInstanceCreated:function(app){app.registerHandlerClass(MMI.Core.LiveEventHandlers.Issue);},do_issueReportingButtonClicked:function(event,app,jqel,data){var jqel_dialog=jQuery('.issueReportDialogContent');if(jqel_dialog.size()){jqel_dialog.parents('.smartBox').smartBox('close');return;}
3355var defaultIssueCategory='';if(data.defaultIssueCategory){defaultIssueCategory=data.defaultIssueCategory;}
3356app.openIssueReportingDialog(defaultIssueCategory);},do_checkIssueType:function(event,app,jqel,data){var issueTypeField=jQuery('#issue_category');if(issueTypeField.val()==''){jQuery('.additionalInfo').addClass('hidden');}else{jQuery('.additionalInfo').removeClass('hidden');}
3357if(issueTypeField.find(':selected').data('is_a_bug')){jQuery('.issueBugInfo').removeClass('hidden');}else{jQuery('.issueBugInfo').addClass('hidden');}
3358jQuery(window).trigger('resize');},do_submitIssueReport:function(event,app,jqel,data){var jqel_issueForm=jqel.parents('.issueReportDialogContent').first();var ajaxData={mode:'issue',view:'blank',report_issue:true};jQuery.each(['email','name','category','option','description','expected','steps'],function(optionNum,option){ajaxData[option]=jqel_issueForm.find('#issue_'+option).val();});if(!jQuery.trim(ajaxData.description)){app.alert({message:'Please enter a comment/description for this issue.',messageType:'error'});return;};if(!jQuery.trim(ajaxData.email)){app.alert({message:'Please enter a valid email address.',messageType:'error'});return;}
3359if(MMI.Settings.getSetting('issue','store_page_html')){ajaxData['page_html']=document.documentElement.innerHTML;}
3360ajaxData['page_url']=document.location.href;var variables={_version:app._version};var additional=jQuery.trim(MMI.Settings.getSetting('issue','store_variables'));if(additional){var variableList=additional.split(',');jQuery.each(variableList,function(varNum,variableDeclaration){var val=null;try{val=eval(variableDeclaration);}catch(e){}
3361if(val!==null){variables[variableDeclaration]=val;}});}
3362ajaxData['variables']=variables;ajaxData['ajax_stack']=app._ajaxCompletedStack;var ajaxOptions={data:ajaxData};app.ajax(ajaxOptions);app.alert({message:"Thank you for your feedback"});jqel.parents('.smartBox').smartBox('close');}};MMI.App.registerInitCallback(MMI.Core.LiveEventHandlers.Issue.handleAppInstanceCreated);
3363MMI.Util.namespace('MMI.Core.LiveEventHandlers.Search');MMI.Core.LiveEventHandlers.Search={handleAppInstanceCreated:function(app){app.registerHandlerClass(MMI.Core.LiveEventHandlers.Search);},do_tagSearchKeywords:function(event,app,jqel,data){var keywords=data.keywords;jQuery.each(keywords,function(keywordNum,keyword){jqel.find('.itemField').each(function(){var html=jQuery(this).html();var regex=new RegExp('('+keyword+')','gi');html=html.replace(regex,"<span class='searchKeyword'>$1</span>");if(jQuery(this).html()!=html){jQuery(this).html(html);}});});},};MMI.App.registerInitCallback(MMI.Core.LiveEventHandlers.Search.handleAppInstanceCreated);
3364MMI.Util.namespace('MMI.Core.LiveEventHandlers.Eco');MMI.Core.LiveEventHandlers.Eco={handleAppInstanceCreated:function(app){app.registerHandlerClass(MMI.Core.LiveEventHandlers.Eco);},do_makeIntoFieldGroup:function(event,app,jqel,data){jqel.find('.molecule_children').addClass('molecule_fieldGroup');},do_hideNotification:function(event,app,jqel,data){var organism=data.organism;if(organism instanceof Eco.Organism.Notification.Message){organism.hide();}},do_closeWrappedDialog:function(event,app,jqel,data,json){let e=new CustomEvent('dialog.close',{bubbles:true,detail:{}});event.target.dispatchEvent(e);},do_resolveWrappedDialog:function(event,app,jqel,data,json){let e=new CustomEvent('dialog.resolve',{bubbles:true,detail
3364:null,});event.target.dispatchEvent(e);},do_resolveWrappedDialogWithValues:function(event,app,jqel,data,json){if(!(data.organism instanceof Eco.OrganismDataStore)){const $form=document.querySelector(data.valuesTarget);if($form){const formData=jQuery($form).ecoData();if(formData.organism_form instanceof Eco.OrganismDataStore){data.organism=formData.organism;}}
3365if(!(data.organism instanceof Eco.OrganismDataStore)){throw new Error('Invalid Eco.OrganismDataStore instance when attempting to resolve a wrapped dialog with values.');}}
3366let e=new CustomEvent('dialog.resolveWithValues',{bubbles:true,detail:data.organism.getAllValues()});event.target.dispatchEvent(e);},do_setDisabled:function(event,app,jqel,data,disabledish){const disabled=disabledish==='true';const el=jqel[0];el.classList.toggle('mod_disabled',disabled);el.disabled=disabled;const organism=jqel.ecoData('organism');if(organism&&organism.disable){organism.disable(disabled);}},};MMI.App.registerInitCallback(MMI.Core.LiveEventHandlers.Eco.handleAppInstanceCreated);
3367Eco.Util.initializeNamespace('Be.Fancy');Be.Fancy={legacyGenerateSpinner:function(highResolution,flexCenter,classes,options){var html='';if(typeof flexCenter==='undefined'){flexCenter=true;}
3368if(typeof options==='undefined'){options={};}
3369var defaultOptions={includeLoadingClasses:true,altText:'loading',};options=jQuery.extend({},defaultOptions,options);var loadingClasses='';if(options.includeLoadingClasses===true){loadingClasses=' mod_show-on-submit mod_show-on-loading';}
3370if(flexCenter===true){html+='<div class="mod_flex-column mod_grow mod_center-content-h mod_center-content-v molecule_spinner'+loadingClasses+'">';}
3371html+=`<div class="beFancy_spinner beFancy_rotate ${loadingClasses} ${highResolution ? 'hr' : ''} ${classes}"><span class="sr-only">${options.altText}</span></div>`;if(flexCenter===true){html+='</div>';}
3372return jQuery(html);},generateSpinner:function(options){if(arguments.length<1||Basix.isBoolean(options)){return this.legacyGenerateSpinner(arguments[0],arguments[1],arguments[2],arguments[3]);}
3373var defaultOptions={returnAsHtml:false,autoCenter:false,tag:'div',classes:'',wrapperTag:'div',wrapperClasses:'',resolution:'normal',color:'blue',size:null,showOnLoading:false,showOnSubmit:false,rotationDirection:'normal',altText:'loading',};options=Basix.extend({},defaultOptions,options);var jqel_wrapper=this._buildWrapperElement(options);var jqel_spinner=this._buildSpinnerElement(options);var jqel_result=jqel_spinner;if(jqel_wrapper instanceof jQuery){jqel_wrapper.append(jqel_spinner);jqel_result=jqel_wrapper;}
3374if(options.returnAsHtml){var jqel_container=jQuery('<div>');jqel_container.append(jqel_result);return jqel_container.html();}
3375return jqel_result;},_buildWrapperElement:function(options){if(options.autoCenter!==true){return null;}
3376var jqel=jQuery('<'+options.wrapperTag+'></'+options.wrapperTag+'>');jqel.addClass('molecule_spinner mod_flex-column mod_grow mod_center-content-h mod_center-content-v '+options.wrapperClasses);if(options.showOnLoading===true){jqel.addClass('mod_show-on-loading');}
3377if(options.showOnSubmit===true){jqel.addClass('mod_show-on-submit');}
3378return jqel;},_buildSpinnerElement:function(options){let jqel=jQuery('<'+options.tag+'></'+options.tag+'>');jqel.addClass('beFancy_spinner '+options.classes);switch(options.rotationDirection){case'reverse':jqel.addClass('beFancy_rotateCounterClockwise');break;case'normal':default:jqel.addClass('beFancy_rotate');}
3379switch(options.resolution){case'high':jqel.addClass('hr');if(options.size===null){options.size=120;}
3380break;case'custom':break;case'normal':default:if(options.size===null){options.size=60;}}
3381switch(options.color){case'white':jqel.addClass('mod_color-white');break;case'blue':default:break;}
3382if(options.autoCenter===false){if(options.showOnLoading===true){jqel.addClass('mod_show-on-loading');}
3383if(options.showOnSubmit===true){jqel.addClass('mod_show-on-submit');}}
3384if(options.size){jqel.width(options.size).height(options.size);}
3385if(options.altText){jqel.append(`<span class="sr-only">${options.altText}</span>`);}
3386return jqel;},toggleIconWithSpinner:function(jqelFontIcon,options){var defaultOptions={color:'blue'};options=Basix.extend({},defaultOptions,options);switch(options.color){case'white':case'blue':break;default:options.color='blue';break;}
3387if(jqelFontIcon.hasClass('beFancy_spinnerIcon')){jqelFontIcon.removeClass('beFancy_spinnerIcon beFancy_rotate mod_color-'+options.color);}else{jqelFontIcon.addClass('beFancy_spinnerIcon beFancy_rotate mod_color-'+options.color);}},generateSpinnerButton:function(){return jQuery('<div class="atom_button mod_spinner"><div class="beFancy_spinner beFancy_rotate mod_center"></div></div>');},toggleSpinnerOnButton:function(jqelButton,options){var defaultOptions={color:'blue'};options=Basix.extend({},defaultOptions,options);switch(options.color){case'white':case'blue':break;default:options.color='blue';break;}
3388if(!jqelButton.data('buttonLabel')){jqelButton.data('buttonLabel',jqelButton.html());var paddingTop=parseInt(jqelButton.css('padding-top'),10);var paddingBottom=parseInt(jqelButton.css('padding-bottom'),10);var buttonHeight=jqelButton.outerHeight(false);
3388jqelButton.data('buttonLabelSize',buttonHeight-(paddingTop+paddingBottom));}
3389if(jqelButton.data('spinnerActive')===true){jqelButton.data('spinnerActive',false);jqelButton.html(jqelButton.data('buttonLabel'));}else{jqelButton.data('spinnerActive',true);jqelButton.css({display:'flex','justify-content':'center'});var buttonLabelSize=jqelButton.data('buttonLabelSize');buttonLabelSize-=2;jqelButton.html('<div class="beFancy_spinner beFancy_rotate mod_center mod_color-'+options.color+'" style="width: '+buttonLabelSize+'px; height: '+buttonLabelSize+'px;"></div>');}}};
3390Eco.Util.initializeNamespace('Eco.Organism.Be.Fancy.Collapsible');Eco.Organism.Be.Fancy.Collapsible=Eco.Organism.extend({_state:'collapsed',_jqelControl:null,_jqelTarget:null,_closing:false,STATE_EXPANDED:'expanded',STATE_COLLAPSED:'collapsed',__construct:function(jqel_organism){this._parent(jqel_organism);this._jqelControl=this._getControlElement();this._jqelTarget=this._getTargetElement();if(this._jqelControl.size()){var self=this;this._jqelControl.on('click',function(event){return!self._closing&&self.onTargetClick(event);});this._jqelTarget.on('focusin',function(){if(self._closing){clearTimeout(self._closing);self._closing=false;}
3391if(self._state!==self.STATE_EXPANDED){self.expand();}});this._jqelTarget.on('focusout',function(){if(self._state!==self.STATE_COLLAPSED){self._closing=setTimeout(function(){self.collapse();},100);}});}
3392jqel_organism.addClass('molecule_beFancyCollapsible');this._initializeState();},_initializeState:function(){var initialState=this.jqel.data('beFancyCollapsibleState');if(initialState===this.STATE_EXPANDED){this._state=this.STATE_EXPANDED;this.jqel.alterClass('mod_beFancyCollapsible_collapse','mod_beFancyCollapsible_expand');}else{this._state=this.STATE_COLLAPSED;this.jqel.alterClass('mod_beFancyCollapsible_expand','mod_beFancyCollapsible_collapse');}},_getControlElement:function(){var jqel_control=this.jqel.find('.atom_beFancyCollapsible-control');if(!jqel_control.size()){this._warn('Unable to locate a collapsible toggle control element for this ^^^ collapsible organism.\nFor default behavior, at least one element inside your organism must have the class: atom_beFancyCollapsible-control\nYou may also control the toggle behavior from an external system.');}
3393return jqel_control;},_getTargetElement:function(){var jqel_control=this.jqel.find('.atom_beFancyCollapsible-target');if(!jqel_control.size()){this._error('Unable to locate a collapsible toggle target element for this ^^^ collapsible organism.\nAt least one element inside your organism must have the class: atom_beFancyCollapsible-target');}
3394return jqel_control;},onTargetClick:function(event){this.toggle(event);},toggle:function(event){switch(this._state){case this.STATE_COLLAPSED:this.expand(event);break;case this.STATE_EXPANDED:this.collapse(event);break;default:}},syncStateFromDom:function(){if(this.jqel.get(0).classList.contains('mod_beFancyCollapsible_expand')){this._state=this.STATE_EXPANDED;}else{this._state=this.STATE_COLLAPSED;}},isExpanded:function(){return this._state===this.STATE_EXPANDED;},isCollapsed:function(){return this._state===this.STATE_COLLAPSED;},expand:function(event){this._state=this.STATE_EXPANDED;var renderBuffer=50;var self=this;this._jqelTarget.height('auto');const expandEvent=new CustomEvent('expand',{detail:{percent:0,originalEvent:event}});self.jqel.get(0).dispatchEvent(expandEvent);setTimeout(function(){self.jqel.alterClass('mod_beFancyCollapsible_collapse','mod_beFancyCollapsible_expand');const expandEvent=new CustomEvent('expand',{detail:{percent:100,originalEvent:event}});self.jqel.get(0).dispatchEvent(expandEvent);},renderBuffer);},collapse:function(event){this._state=this.STATE_COLLAPSED;var renderBuffer=50;var beFancyCollapsibleTransitionTime=200-renderBuffer;var self=this;setTimeout(function(){self.jqel.addClass('mod_beFancyCollapsible_collapse');self._closing=false;},beFancyCollapsibleTransitionTime);this._jqelTarget.height(this._jqelTarget.height());const collapseEvent=new CustomEvent('collapse',{detail:{percent:0,originalEvent:event}});self.jqel.get(0).dispatchEvent(collapseEvent);setTimeout(function(){self.jqel.alterClass('mod_beFancyCollapsible_expand','mod_beFancyCollapsible_collapse');
vendor: 3,982 bytes, lines 3394-3405
3394const collapseEvent=new CustomEvent('collapse',{detail:{percent:100,originalEvent:event}});self.jqel.get(0).dispatchEvent(collapseEvent);},renderBuffer);}});
3395(function(factory){if(typeof define==="function"&&define.amd){define(["jquery","./core","./mouse","./widget"],factory);}else{factory(jQuery);}}(function($){return $.widget("ui.sortable",$.ui.mouse,{version:"@VERSION",widgetEventPrefix:"sort",ready:false,options:{appendTo:"parent",axis:false,connectWith:false,containment:false,cursor:"auto",cursorAt:false,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1000,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(x,reference,size){return(x>=reference)&&(x<(reference+size));},_isFloating:function(item){return(/left|right/).test(item.css("float"))||(/inline|table-cell/).test(item.css("display"));},_create:function(){this.containerCache={};this._addClass("ui-sortable");this.refresh();this.offset=this.element.offset();this._mouseInit();this._setHandleClassName();this.ready=true;},_setOption:function(key,value){this._super(key,value);if(key==="handle"){this._setHandleClassName();}},_setHandleClassName:function(){var that=this;this._removeClass(this.element.find(".ui-sortable-handle"),"ui-sortable-handle");$.each(this.items,function(){that._addClass(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item,"ui-sortable-handle");});},_destroy:function(){this._mouseDestroy();for(var i=this.items.length-1;i>=0;i--){this.items[i].item.removeData(this.widgetName+"-item");}
3396return this;},_mouseCapture:function(event,overrideHandle){var currentItem=null,validHandle=false,that=this;if(this.reverting){return false;}
3397if(this.options.disabled||this.options.type==="static"){return false;}
3398this._refreshItems(event);$(event.target).parents().each(function(){if($.data(this,that.widgetName+"-item")===that){currentItem=$(this);return false;}});if($.data(event.target,that.widgetName+"-item")===that){currentItem=$(event.target);}
3399if(!currentItem){return false;}
3400if(this.options.handle&&!overrideHandle){$(this.options.handle,currentItem).find("*").addBack().each(function(){if(this===event.target){validHandle=true;}});if(!validHandle){return false;}}
3401this.currentItem=currentItem;this._removeCurrentsFromItems();return true;},_mouseStart:function(event,overrideHandle,noActivation){var i,body,o=this.options;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(event);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};$.extend(this.offset,{click:{left:event.pageX-this.offset.left,top:event.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");this.originalPosition=this._generatePosition(event);this.originalPageX=event.pageX;this.originalPageY=event.pageY;(o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt));this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};if(this.helper[0]!==this.currentItem[0]){this.currentItem.hide();}
3402this._createPlaceholder();if(o.containment){this._setContainment();}
3403if(o.cursor&&o.cursor!=="auto"){body=this.document.find("body");this.storedCursor=body.css("cursor");body.css("cursor",o.cursor);this.storedStylesheet=$("<style>*{ cursor: "+o.cursor+" !important; }</style>").appendTo(body);}
3404if(o.opacity){if(this.helper.css("opacity")){this._storedOpacity=this.helper.css("opacity");}
3405this.helper.css("opacity",o.opacity);}
vendor: 11,279 bytes, lines 3406-3445
3406if(o.zIndex){if(this.helper.css("zIndex")){this._storedZIndex=this.helper.css("zIndex");}
3407this.helper.css("zIndex",o.zIndex);}
3408if(this.scrollParent[0]!==this.document[0]&&this.scrollParent[0].tagName!=="HTML"){this.overflowOffset=this.scrollParent.offset();}
3409this._trigger("start",event,this._uiHash());if(!this._preserveHelperProportions){this._cacheHelperProportions();}
3410if(!noActivation){for(i=this.containers.length-1;i>=0;i--){this.containers[i]._trigger("activate",event,this._uiHash(this));}}
3411if($.ui.ddmanager){$.ui.ddmanager.current=this;}
3412if($.ui.ddmanager&&!o.dropBehaviour){$.ui.ddmanager.prepareOffsets(this,event);}
3413this.dragging=true;this._addClass(this.helper,"ui-sortable-helper");this._mouseDrag(event);return true;},_mouseDrag:function(event){var i,item,itemElement,intersection,o=this.options,scrolled=false;this.position=this._generatePosition(event);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs){this.lastPositionAbs=this.positionAbs;}
3414if(this.options.scroll){if(this.scrollParent[0]!==this.document[0]&&this.scrollParent[0].tagName!=="HTML"){if((this.overflowOffset.top+this.scrollParent[0].offsetHeight)-event.pageY<o.scrollSensitivity){this.scrollParent[0].scrollTop=scrolled=this.scrollParent[0].scrollTop+o.scrollSpeed;}else if(event.pageY-this.overflowOffset.top<o.scrollSensitivity){this.scrollParent[0].scrollTop=scrolled=this.scrollParent[0].scrollTop-o.scrollSpeed;}
3415if((this.overflowOffset.left+this.scrollParent[0].offsetWidth)-event.pageX<o.scrollSensitivity){this.scrollParent[0].scrollLeft=scrolled=this.scrollParent[0].scrollLeft+o.scrollSpeed;}else if(event.pageX-this.overflowOffset.left<o.scrollSensitivity){this.scrollParent[0].scrollLeft=scrolled=this.scrollParent[0].scrollLeft-o.scrollSpeed;}}else{if(event.pageY-this.document.scrollTop()<o.scrollSensitivity){scrolled=this.document.scrollTop(this.document.scrollTop()-o.scrollSpeed);}else if(this.window.height()-(event.pageY-this.document.scrollTop())<o.scrollSensitivity){scrolled=this.document.scrollTop(this.document.scrollTop()+o.scrollSpeed);}
3416if(event.pageX-this.document.scrollLeft()<o.scrollSensitivity){scrolled=this.document.scrollLeft(this.document.scrollLeft()-o.scrollSpeed);}else if(this.window.width()-(event.pageX-this.document.scrollLeft())<o.scrollSensitivity){scrolled=this.document.scrollLeft(this.document.scrollLeft()+o.scrollSpeed);}}
3417if(scrolled!==false&&$.ui.ddmanager&&!o.dropBehaviour){$.ui.ddmanager.prepareOffsets(this,event);}}
3418this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!=="y"){this.helper[0].style.left=this.position.left+"px";}
3419if(!this.options.axis||this.options.axis!=="x"){this.helper[0].style.top=this.position.top+"px";}
3420for(i=this.items.length-1;i>=0;i--){item=this.items[i];itemElement=item.item[0];intersection=this._intersectsWithPointer(item);if(!intersection){continue;}
3421if(item.instance!==this.currentContainer){continue;}
3422if(itemElement!==this.currentItem[0]&&this.placeholder[intersection===1?"next":"prev"]()[0]!==itemElement&&!$.contains(this.placeholder[0],itemElement)&&(this.options.type==="semi-dynamic"?!$.contains(this.element[0],itemElement):true)){this.direction=intersection===1?"down":"up";if(this.options.tolerance==="pointer"||this._intersectsWithSides(item)){this._rearrange(event,item);}else{break;}
3423this._trigger("change",event,this._uiHash());break;}}
3424this._contactContainers(event);if($.ui.ddmanager){$.ui.ddmanager.drag(this,event);}
3425this._trigger("sort",event,this._uiHash());this.lastPositionAbs=this.positionAbs;return false;},_mouseStop:function(event,noPropagation){if(!event){return;}
3426if($.ui.ddmanager&&!this.options.dropBehaviour){$.ui.ddmanager.drop(this,event);}
3427if(this.options.revert){var that=this,cur=this.placeholder.offset(),axis=this.options.axis,animation={};if(!axis||axis==="x"){animation.left=cur.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft);}
3428if(!axis||axis==="y"){animation.top=cur.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop);}
3429this.reverting=true;$(this.helper).animate(animation,parseInt(this.options.revert,10)||500,function(){that._clear(event);});}else{this._clear(event,noPropagation);}
3430return false;},cancel:function(){if(this.dragging){this._mouseUp({target:null});if(this.options.helper==="original"){this.currentItem.css(this._storedCSS);this._removeClass(this.currentItem,"ui-sortable-helper");}else{this.currentItem.show();}
3431for(var i=this.containers.length-1;i>=0;i--){this.containers[i]._trigger("deactivate",null,this._uiHash(this));if(this.containers[i].containerCache.over){this.containers[i]._trigger("out",null,this._uiHash(this));this.containers[i].containerCache.over=0;}}}
3432if(this.placeholder){if(this.placeholder[0].parentNode){this.placeholder[0].parentNode.removeChild(this.placeholder[0]);}
3433if(this.options.helper!=="original"&&this.helper&&this.helper[0].parentNode){this.helper.remove();}
3434$.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});if(this.domPosition.prev){$(this.domPosition.prev).after(this.currentItem);}else{$(this.domPosition.parent).prepend(this.currentItem);}}
3435return this;},serialize:function(o){var items=this._getItemsAsjQuery(o&&o.connected),str=[];o=o||{};$(items).each(function(){var res=($(o.item||this).attr(o.attribute||"id")||"").match(o.expression||(/(.+)[\-=_](.+)/));if(res){str.push((o.key||res[1]+"[]")+"="+(o.key&&o.expression?res[1]:res[2]));}});if(!str.length&&o.key){str.push(o.key+"=");}
3436return str.join("&");},toArray:function(o){var items=this._getItemsAsjQuery(o&&o.connected),ret=[];o=o||{};items.each(function(){ret.push($(o.item||this).attr(o.attribute||"id")||"");});return ret;},_intersectsWith:function(item){var x1=this.positionAbs.left,x2=x1+this.helperProportions.width,y1=this.positionAbs.top,y2=y1+this.helperProportions.height,l=item.left,r=l+item.width,t=item.top,b=t+item.height,dyClick=this.offset.click.top,dxClick=this.offset.click.left,isOverElementHeight=(this.options.axis==="x")||((y1+dyClick)>t&&(y1+dyClick)<b),isOverElementWidth=(this.options.axis==="y")||((x1+dxClick)>l&&(x1+dxClick)<r),isOverElement=isOverElementHeight&&isOverElementWidth;if(this.options.tolerance==="pointer"||this.options.forcePointerForContainers||(this.options.tolerance!=="pointer"&&this.helperProportions[this.floating?"width":"height"]>item[this.floating?"width":"height"])){return isOverElement;}else{return(l<x1+(this.helperProportions.width / 2)&&x2-(this.helperProportions.width / 2)<r&&t<y1+(this.helperProportions.height / 2)&&y2-(this.helperProportions.height / 2)<b);}},_intersectsWithPointer:function(item){var isOverElementHeight=(this.options.axis==="x")||this._isOverAxis(this.positionAbs.top+this.offset.click.top,item.top,item.height),isOverElementWidth=(this.options.axis==="y")||this._isOverAxis(this.positionAbs.left+this.offset.click.left,item.left,item.width),isOverElement=isOverElementHeight&&isOverElementWidth,verticalDirection=this._getDragVerticalDirection(),horizontalDirection=this._getDragHorizontalDirection();if(!isOverElement){return false;}
3437return this.floating?(((horizontalDirection&&horizontalDirection==="right")||verticalDirection==="down")?2:1):(verticalDirection&&(verticalDirection==="down"?2:1));},_intersectsWithSides:function(item){var isOverBottomHalf=this._isOverAxis(this.positionAbs.top+this.offset.click.top,item.top+(item.height/2),item.height),isOverRightHalf=this._isOverAxis(this.positionAbs.left+this.offset.click.left,item.left+(item.width/2),item.width),verticalDirection=this._getDragVerticalDirection(),horizontalDirection=this._getDragHorizontalDirection();if(this.floating&&horizontalDirection){return((horizontalDirection==="right"&&isOverRightHalf)||(horizontalDirection==="left"&&!isOverRightHalf));}else{return verticalDirection&&((verticalDirection==="down"&&isOverBottomHalf)||(verticalDirection==="up"&&!isOverBottomHalf));}},_getDragVerticalDirection:function(){var delta=this.positionAbs.top-this.lastPositionAbs.top;return delta!==0&&(delta>0?"down":"up");},_getDragHorizontalDirection:function(){var delta=this.positionAbs.left-this.lastPositionAbs.left;return delta!==0&&(delta>0?"right":"left");},refresh:function(event){this._refreshItems(event);this._setHandleClassName();this.refreshPositions();return this;},_connectWith:function(){var options=this.options;return options.connectWith.constructor===String?[options.connectWith]:options.connectWith;},_getItemsAsjQuery:function(connected){var i,j,cur,inst,items=[],queries=[],connectWith=this._connectWith();if(connectWith&&connected){for(i=connectWith.length-1;i>=0;i--){cur=$(connectWith[i],this.document[0]);for(j=cur.length-1;j>=0;j--){inst=$.data(cur[j],this.widgetFullName);if(inst&&inst!==this&&!inst.options.disabled){queries.push([$.isFunction(inst.options.items)?inst.options.items.call(inst.element):$(inst.options.items,inst.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),inst]);}}}}
3438queries.push([$.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):$(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);function addItems(){items.push(this);}
3439for(i=queries.length-1;i>=0;i--){queries[i][0].each(addItems);}
3440return $(items);},_removeCurrentsFromItems:function(){var list=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=$.grep(this.items,function(item){for(var j=0;j<list.length;j++){if(list[j]===item.item[0]){return false;}}
3441return true;});},_refreshItems:function(event){this.items=[];this.containers=[this];var i,j,cur,inst,targetData,_queries,item,queriesLength,items=this.items,queries=[[$.isFunction(this.options.items)?this.options.items.call(this.element[0],event,{item:this.currentItem}):$(this.options.items,this.element),this]],connectWith=this._connectWith();if(connectWith&&this.ready){for(i=connectWith.length-1;i>=0;i--){cur=$(connectWith[i],this.document[0]);for(j=cur.length-1;j>=0;j--){inst=$.data(cur[j],this.widgetFullName);if(inst&&inst!==this&&!inst.options.disabled){queries.push([$.isFunction(inst.options.items)?inst.options.items.call(inst.element[0],event,{item:this.currentItem}):$(inst.options.items,inst.element),inst]);this.containers.push(inst);}}}}
3442for(i=queries.length-1;i>=0;i--){targetData=queries[i][1];_queries=queries[i][0];for(j=0,queriesLength=_queries.length;j<queriesLength;j++){item=$(_queries[j]);item.data(this.widgetName+"-item",targetData);items.push({item:item,instance:targetData,width:0,height:0,left:0,top:0});}}},refreshPositions:function(fast){this.floating=this.items.length?this.options.axis==="x"||this._isFloating(this.items[0].item):false;if(this.offsetParent&&this.helper){this.offset.parent=this._getParentOffset();}
3443var i,item,t,p;for(i=this.items.length-1;i>=0;i--){item=this.items[i];if(item.instance!==this.currentContainer&&this.currentContainer&&item.item[0]!==this.currentItem[0]){continue;}
3444t=this.options.toleranceElement?$(this.options.toleranceElement,item.item):item.item;if(!fast){item.width=t.outerWidth();item.height=t.outerHeight();}
3445p=t.offset();item.left=p.left;item.top=p.top;}
vendor: 1,324 bytes, lines 3446-3449
3446if(this.options.custom&&this.options.custom.refreshContainers){this.options.custom.refreshContainers.call(this);}else{for(i=this.containers.length-1;i>=0;i--){p=this.containers[i].element.offset();this.containers[i].containerCache.left=p.left;this.containers[i].containerCache.top=p.top;this.containers[i].containerCache.width=this.containers[i].element.outerWidth();this.containers[i].containerCache.height=this.containers[i].element.outerHeight();}}
3447return this;},_createPlaceholder:function(that){that=that||this;var className,o=that.options;if(!o.placeholder||o.placeholder.constructor===String){className=o.placeholder;o.placeholder={element:function(){var nodeName=that.currentItem[0].nodeName.toLowerCase(),element=$("<"+nodeName+">",that.document[0]);that._addClass(element,"ui-sortable-placeholder",className||that.currentItem[0].className)._removeClass(element,"ui-sortable-helper");if(nodeName==="tbody"){that._createTrPlaceholder(that.currentItem.find("tr").eq(0),$("<tr>",that.document[0]).appendTo(element));}else if(nodeName==="tr"){that._createTrPlaceholder(that.currentItem,element);}else if(nodeName==="img"){element.attr("src",that.currentItem.attr("src"));}
3448if(!className){element.css("visibility","hidden");}
3449return element;},update:function(container,p){if(className&&!o.forcePlaceholderSize){return;}
vendor: 8,964 bytes, lines 3450-3488
3450if(!p.height()){p.height(that.currentItem.innerHeight()-parseInt(that.currentItem.css("paddingTop")||0,10)-parseInt(that.currentItem.css("paddingBottom")||0,10));}
3451if(!p.width()){p.width(that.currentItem.innerWidth()-parseInt(that.currentItem.css("paddingLeft")||0,10)-parseInt(that.currentItem.css("paddingRight")||0,10));}}};}
3452that.placeholder=$(o.placeholder.element.call(that.element,that.currentItem));that.currentItem.after(that.placeholder);o.placeholder.update(that,that.placeholder);},_createTrPlaceholder:function(sourceTr,targetTr){var that=this;sourceTr.children().each(function(){$("<td>&#160;</td>",that.document[0]).attr("colspan",$(this).attr("colspan")||1).appendTo(targetTr);});},_contactContainers:function(event){var i,j,dist,itemWithLeastDistance,posProperty,sizeProperty,cur,nearBottom,floating,axis,innermostContainer=null,innermostIndex=null;for(i=this.containers.length-1;i>=0;i--){if($.contains(this.currentItem[0],this.containers[i].element[0])){continue;}
3453if(this._intersectsWith(this.containers[i].containerCache)){if(innermostContainer&&$.contains(this.containers[i].element[0],innermostContainer.element[0])){continue;}
3454innermostContainer=this.containers[i];innermostIndex=i;}else{if(this.containers[i].containerCache.over){this.containers[i]._trigger("out",event,this._uiHash(this));this.containers[i].containerCache.over=0;}}}
3455if(!innermostContainer){return;}
3456if(this.containers.length===1){if(!this.containers[innermostIndex].containerCache.over){this.containers[innermostIndex]._trigger("over",event,this._uiHash(this));this.containers[innermostIndex].containerCache.over=1;}}else{dist=10000;itemWithLeastDistance=null;floating=innermostContainer.floating||this._isFloating(this.currentItem);posProperty=floating?"left":"top";sizeProperty=floating?"width":"height";axis=floating?"clientX":"clientY";for(j=this.items.length-1;j>=0;j--){if(!$.contains(this.containers[innermostIndex].element[0],this.items[j].item[0])){continue;}
3457if(this.items[j].item[0]===this.currentItem[0]){continue;}
3458cur=this.items[j].item.offset()[posProperty];nearBottom=false;if(event[axis]-cur>this.items[j][sizeProperty]/ 2){nearBottom=true;}
3459if(Math.abs(event[axis]-cur)<dist){dist=Math.abs(event[axis]-cur);itemWithLeastDistance=this.items[j];this.direction=nearBottom?"up":"down";}}
3460if(!itemWithLeastDistance&&!this.options.dropOnEmpty){return;}
3461if(this.currentContainer===this.containers[innermostIndex]){if(!this.currentContainer.containerCache.over){this.containers[innermostIndex]._trigger("over",event,this._uiHash());this.currentContainer.containerCache.over=1;}
3462return;}
3463itemWithLeastDistance?this._rearrange(event,itemWithLeastDistance,null,true):this._rearrange(event,null,this.containers[innermostIndex].element,true);this._trigger("change",event,this._uiHash());this.containers[innermostIndex]._trigger("change",event,this._uiHash(this));this.currentContainer=this.containers[innermostIndex];this.options.placeholder.update(this.currentContainer,this.placeholder);this.containers[innermostIndex]._trigger("over",event,this._uiHash(this));this.containers[innermostIndex].containerCache.over=1;}},_createHelper:function(event){var o=this.options,helper=$.isFunction(o.helper)?$(o.helper.apply(this.element[0],[event,this.currentItem])):(o.helper==="clone"?this.currentItem.clone():this.currentItem);if(!helper.parents("body").length){$(o.appendTo!=="parent"?o.appendTo:this.currentItem[0].parentNode)[0].appendChild(helper[0]);}
3464if(helper[0]===this.currentItem[0]){this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")};}
3465if(!helper[0].style.width||o.forceHelperSize){helper.width(this.currentItem.width());}
3466if(!helper[0].style.height||o.forceHelperSize){helper.height(this.currentItem.height());}
3467return helper;},_adjustOffsetFromHelper:function(obj){if(typeof obj==="string"){obj=obj.split(" ");}
3468if($.isArray(obj)){obj={left:+obj[0],top:+obj[1]||0};}
3469if("left"in obj){this.offset.click.left=obj.left+this.margins.left;}
3470if("right"in obj){this.offset.click.left=this.helperProportions.width-obj.right+this.margins.left;}
3471if("top"in obj){this.offset.click.top=obj.top+this.margins.top;}
3472if("bottom"in obj){this.offset.click.top=this.helperProportions.height-obj.bottom+this.margins.top;}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var po=this.offsetParent.offset();if(this.cssPosition==="absolute"&&this.scrollParent[0]!==this.document[0]&&$.contains(this.scrollParent[0],this.offsetParent[0])){po.left+=this.scrollParent.scrollLeft();po.top+=this.scrollParent.scrollTop();}
3473if(this.offsetParent[0]===this.document[0].body||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()==="html"&&$.ui.ie)){po={top:0,left:0};}
3474return{top:po.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:po.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)};},_getRelativeOffset:function(){if(this.cssPosition==="relative"){var p=this.currentItem.position();return{top:p.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:p.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()};}else{return{top:0,left:0};}},_cacheMargins:function(){this.margins={left:(parseInt(this.currentItem.css("marginLeft"),10)||0),top:(parseInt(this.currentItem.css("marginTop"),10)||0)};},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()};},_setContainment:function(){var ce,co,over,o=this.options;if(o.containment==="parent"){o.containment=this.helper[0].parentNode;}
3475if(o.containment==="document"||o.containment==="window"){this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,o.containment==="document"?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,(o.containment==="document"?this.document.width():this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];}
3476if(!(/^(document|window|parent)$/).test(o.containment)){ce=$(o.containment)[0];co=$(o.containment).offset();over=($(ce).css("overflow")!=="hidden");this.containment=[co.left+(parseInt($(ce).css("borderLeftWidth"),10)||0)+(parseInt($(ce).css("paddingLeft"),10)||0)-this.margins.left,co.top+(parseInt($(ce).css("borderTopWidth"),10)||0)+(parseInt($(ce).css("paddingTop"),10)||0)-this.margins.top,co.left+(over?Math.max(ce.scrollWidth,ce.offsetWidth):ce.offsetWidth)-(parseInt($(ce).css("borderLeftWidth"),10)||0)-(parseInt($(ce).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,co.top+(over?Math.max(ce.scrollHeight,ce.offsetHeight):ce.offsetHeight)-(parseInt($(ce).css("borderTopWidth"),10)||0)-(parseInt($(ce).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top];}},_convertPositionTo:function(d,pos){if(!pos){pos=this.position;}
3477var mod=d==="absolute"?1:-1,scroll=this.cssPosition==="absolute"&&!(this.scrollParent[0]!==this.document[0]&&$.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,scrollIsRootNode=(/(html|body)/i).test(scroll[0].tagName);return{top:(pos.top+
3478this.offset.relative.top*mod+
3479this.offset.parent.top*mod-
3480((this.cssPosition==="fixed"?-this.scrollParent.scrollTop():(scrollIsRootNode?0:scroll.scrollTop()))*mod)),left:(pos.left+
3481this.offset.relative.left*mod+
3482this.offset.parent.left*mod-
3483((this.cssPosition==="fixed"?-this.scrollParent.scrollLeft():scrollIsRootNode?0:scroll.scrollLeft())*mod))};},_generatePosition:function(event){var top,left,o=this.options,pageX=event.pageX,pageY=event.pageY,scroll=this.cssPosition==="absolute"&&!(this.scrollParent[0]!==this.document[0]&&$.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,scrollIsRootNode=(/(html|body)/i).test(scroll[0].tagName);if(this.cssPosition==="relative"&&!(this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0])){this.offset.relative=this._getRelativeOffset();}
3484if(this.originalPosition){if(this.containment){if(event.pageX-this.offset.click.left<this.containment[0]){pageX=this.containment[0]+this.offset.click.left;}
3485if(event.pageY-this.offset.click.top<this.containment[1]){pageY=this.containment[1]+this.offset.click.top;}
3486if(event.pageX-this.offset.click.left>this.containment[2]){pageX=this.containment[2]+this.offset.click.left;}
3487if(event.pageY-this.offset.click.top>this.containment[3]){pageY=this.containment[3]+this.offset.click.top;}}
3488if(o.grid){top=this.originalPageY+Math.round((pageY-this.originalPageY)/ o.grid[1])*o.grid[1];pageY=this.containment?((top-this.offset.click.top>=this.containment[1]&&top-this.offset.click.top<=this.containment[3])?top:((top-this.offset.click.top>=this.containment[1])?top-o.grid[1]:top+o.grid[1])):top;
3488left=this.originalPageX+Math.round((pageX-this.originalPageX)/ o.grid[0])*o.grid[0];pageX=this.containment?((left-this.offset.click.left>=this.containment[0]&&left-this.offset.click.left<=this.containment[2])?left:((left-this.offset.click.left>=this.containment[0])?left-o.grid[0]:left+o.grid[0])):left;}}
3489return{top:(pageY-
3490this.offset.click.top-
3491this.offset.relative.top-
3492this.offset.parent.top+
3493((this.cssPosition==="fixed"?-this.scrollParent.scrollTop():(scrollIsRootNode?0:scroll.scrollTop())))),left:(pageX-
3494this.offset.click.left-
3495this.offset.relative.left-
3496this.offset.parent.left+
3497((this.cssPosition==="fixed"?-this.scrollParent.scrollLeft():scrollIsRootNode?0:scroll.scrollLeft())))};},_rearrange:function(event,i,a,hardRefresh){a?a[0].appendChild(this.placeholder[0]):i.item[0].parentNode.insertBefore(this.placeholder[0],(this.direction==="down"?i.item[0]:i.item[0].nextSibling));this.counter=this.counter?++this.counter:1;var counter=this.counter;this._delay(function(){if(counter===this.counter){this.refreshPositions(!hardRefresh);}});},_clear:function(event,noPropagation){this.reverting=false;var i,delayedTriggers=[];if(!this._noFinalSort&&this.currentItem.parent().length){this.placeholder.before(this.currentItem);}
3498this._noFinalSort=null;if(this.helper[0]===this.currentItem[0]){for(i in this._storedCSS){if(this._storedCSS[i]==="auto"||this._storedCSS[i]==="static"){this._storedCSS[i]="";}}
3499this.currentItem.css(this._storedCSS);this._removeClass(this.currentItem,"ui-sortable-helper");}else{this.currentItem.show();}
3500if(this.fromOutside&&!noPropagation){delayedTriggers.push(function(event){this._trigger("receive",event,this._uiHash(this.fromOutside));});}
3501if((this.fromOutside||this.domPosition.prev!==this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!==this.currentItem.parent()[0])&&!noPropagation){delayedTriggers.push(function(event){this._trigger("update",event,this._uiHash());});}
3502if(this!==this.currentContainer){if(!noPropagation){delayedTriggers.push(function(event){this._trigger("remove",event,this._uiHash());});delayedTriggers.push((function(c){return function(event){c._trigger("receive",event,this._uiHash(this));};}).call(this,this.currentContainer));delayedTriggers.push((function(c){return function(event){c._trigger("update",event,this._uiHash(this));};}).call(this,this.currentContainer));}}
3503function delayEvent(type,instance,container){return function(event){container._trigger(type,event,instance._uiHash(instance));};}
3504for(i=this.containers.length-1;i>=0;i--){if(!noPropagation){delayedTriggers.push(delayEvent("deactivate",this,this.containers[i]));}
3505if(this.containers[i].containerCache.over){delayedTriggers.push(delayEvent("out",this,this.containers[i]));this.containers[i].containerCache.over=0;}}
3506if(this.storedCursor){this.document.find("body").css("cursor",this.storedCursor);this.storedStylesheet.remove();}
3507if(this._storedOpacity){this.helper.css("opacity",this._storedOpacity);}
3508if(this._storedZIndex){this.helper.css("zIndex",this._storedZIndex==="auto"?"":this._storedZIndex);}
3509this.dragging=false;if(!noPropagation){this._trigger("beforeStop",event,this._uiHash());}
3510this.placeholder[0].parentNode.removeChild(this.placeholder[0]);if(!this.cancelHelperRemoval){if(this.helper[0]!==this.currentItem[0]){this.helper.remove();}
3511this.helper=null;}
3512if(!noPropagation){for(i=0;i<delayedTriggers.length;i++){delayedTriggers[i].call(this,event);}
3513this._trigger("stop",event,this._uiHash());}
3514this.fromOutside=false;return!this.cancelHelperRemoval;},_trigger:function(){if($.Widget.prototype._trigger.apply(this,arguments)===false){this.cancel();}},_uiHash:function(_inst){var inst=_inst||this;return{helper:inst.helper,placeholder:inst.placeholder||$([]),position:inst.position,originalPosition:inst.originalPosition,offset:inst.positionAbs,item:inst.currentItem,sender:_inst?_inst.element:null};}});}));
3515;(function(root,init){if(typeof define=='function'&&define.amd){define(['exports'],function(exports){init(root,exports)})}else if(typeof exports!=='undefined'){init(root,exports)}else{init(root,root.fd=root.fd||{})}})(this,function(root,global){global.randomID=function(prefix){return(prefix||'fd')+'_'+(Math.random()*10000).toFixed()}
3516global.uniqueID=function(prefix){do{var id=global.randomID(prefix)}while(global.byID(id))
3517return id}
3518global.byID=function(id){return global.isTag(id)?id:document.getElementById(id)}
3519global.isTag=function(element,tag){return typeof element=='object'&&element&&element.nodeType==1&&(!tag||element.tagName.toUpperCase()==tag.toUpperCase())}
3520global.newXHR=function(){try{return new XMLHttpRequest}catch(e){var activex=['MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP']
3521for(var i=0;i<activex.length;i++){try{return new ActiveXObject(activex[i])}catch(e){}}}
3522throw'Cannot create XMLHttpRequest.'}
3523global.isArray=function(value){return Object.prototype.toString.call(value)==='[object Array]'}
3524global.toArray=function(value,skipFirst){if(value===null||typeof value=='undefined'){return[]}else if(!global.isArray(value)&&(typeof value!='object'||!('callee'in value))){value=[value]}
3525return Array.prototype.slice.call(value,skipFirst||0)}
3526global.addEvent=function(element,type,callback){if(element&&type&&callback){if(element.attachEvent){element['e'+type+callback]=callback
3527element[type+callback]=function(){element['e'+type+callback](window.event)}
3528element.attachEvent('on'+type,element[type+callback])}else{element.addEventListener(type,callback,false)}}
3529return element}
3530global.stopEvent=function(event){event.cancelBubble=true
3531event.returnValue=false
3532event.stopPropagation&&event.stopPropagation()
3533event.preventDefault&&event.preventDefault()
3534return event}
3535global.setClass=function(element,className,append){if((element=global.byID(element))&&className!=null){if(typeof append!='undefined'&&!append){element.className=element.className.replace(global.classRegExp(className),' ')}else if(!global.hasClass(element,className)){element.className+=' '+className}}
3536return element}
3537global.hasClass=function(element,className){return global.classRegExp(className).test((global.byID(element)||{}).className)}
3538global.classRegExp=function(className){if(className==''||typeof className=='object'){return /$o_O/}else{return new RegExp('(^|\\s+)'+className+'(\\s+|$)','gi')}
3538}
3539global.extend=function(child,base,overwrite){child=child||{}
3540base=base||{}
3541for(var prop in base){if(overwrite||typeof child[prop]=='undefined'){child[prop]=base[prop]}}
3542return child}
3543global.callAll=function(list,args,obj){var res
3544args=global.toArray(args)
3545typeof list=='function'&&(list=[list])
3546if(global.isArray(list)){for(var i=0;i<list.length;i++){if(typeof list[i]=='function'){res=list[i].apply(obj||this,args)
3547if(res!=null){break}}}}else if(list){throw'FileDrop event list must be either an Array, Function, undefined or'+' null but '+(typeof list)+' was given.'}
3548return res}
3549global.callAllOfObject=function(obj,event,args){if(global.logging&&global.hasConsole){var handlers=obj.events[event]?obj.events[event].length||0:0}
3550var preview=[global.onObjectCall].concat(obj.events.any)
3551var res=global.callAll(preview,[event].concat(global.toArray(args)),obj)
3552return res!=null?res:global.callAll(obj.events[event],args,obj)}
3553global.appendEventsToObject=function(events,funcs){if(global.addEventsToObject(this,false,arguments)){return this}
3554switch(arguments.length){case 0:return global.extend({},this.events)
3555case 1:if(events===null){this.events={}
3556return this}else if(global.isArray(events)){var res={}
3557for(var i=0;i<events.length;i++){res[events[i]]=global.toArray(this.events[events[i]])}
3558return res}else if(typeof events=='function'){return global.funcNS(events)}else if(typeof events=='string'){return global.toArray(this.events[events])}
3559case 2:events=global.toArray(events)
3560if(funcs===null){for(var i=0;i<events.length;i++){var ns=global.splitNS(events[i])
3561if(!ns[0]){for(var event in this.events){arguments.callee.call(this,[event+':'+ns[1]],null)}}else if(!ns[1]){this.events[ns[0]]=[]}else if(this.events[ns[0]]){for(var fi=this.events[ns[0]].length-1;fi>=0;fi--){if(global.funcNS(this.events[ns[0]][fi])==ns[1]){this.events[ns[0]].splice(fi,1)}}}}
3562return this}}
3563throw'Bad parameters for FileDrop event().'}
3564global.previewToObject=function(events,funcs){if(global.addEventsToObject(this,true,arguments)){return this}else{throw'Bad parameters for FileDrop preview().'}}
3565global.addEventsToObject=function(obj,prepend,args){var events=args[0]
3566var funcs=args[1]
3567switch(args.length){case 1:if(events&&typeof events=='object'&&!global.isArray(events)){for(var event in events){arguments.callee(obj,prepend,[event,events[event]])}
3568return true}
3569case 2:if(typeof funcs=='function'||global.isArray(funcs)){events=global.toArray(events)
3570funcs=global.toArray(funcs)
3571var pusher=prepend?'unshift':'push'
3572for(var i=0;i<events.length;i++){var ns=global.splitNS(events[i])
3573for(var fi=0;fi<funcs.length;fi++){global.funcNS(funcs[fi],ns[1])}
3574obj.events[ns[0]]=obj.events[ns[0]]||[]
3575obj.events[ns[0]][pusher].apply(obj.events[ns[0]],funcs)}
3576return true}}}
3577global.funcNS=function(func,ns){if(typeof func!='function'){return func}else if(arguments.length==1){return(func[global.nsProp]||'').toString()}else{func[global.nsProp]=(ns||'').toString()
3578return func}}
3579global.splitNS=function(str){return(str||'').match(/^([^:]*):?(.*)$/).slice(1)}
3580global.extend(global,{logging:true,hasConsole:'console'in window&&console.log&&console.dir,onObjectCall:null,all:[],isIE6:/*@cc_on/*@if(@_jscript_version<=5.7)true@else@*/ false/*@end@*/,isIE9:/*@cc_on/*@if(@_jscript_version<=9)true@else@*/ false/*@end@*/,isChrome:(navigator.vendor||'').indexOf('Google')!=-1,nsProp:'_fdns'})
3581global.DropHandle=function(zone,opt){var self=this
3582self.el=zone=global.byID(zone)
3583if(!zone){throw'Cannot locate DOM node given to new FileDrop class.'}
3584self.opt={zoneClass:'fd-zone',inputClass:'fd-file',iframe:{url:'',callbackParam:'fd-callback',fileParam:'fd-file'},input:null,recreateInput:true,fullDocDragDetect:false,multiple:false,dropEffect:'copy'}
3585global.all.push(self)
3586self.filedrop=null
3587var iframe=self.opt.iframe
3588global.extend(self.opt,opt,true)
3589global.extend(self.opt.iframe,iframe)
3590global.isChrome&&(self.opt.fullDocDragDetect=true)
3591self.events={any:[],dragEnter:[],dragLeave:[],dragOver:[],dragEnd:[],dragExit:[],upload:[],uploadElsewhere:[],inputSetup:[],iframeSetup:[],iframeDone:[]}
3592self.on=self.events
3593self.zone=self.el
3594self.hook=function(zoneNode){if(self.opt.input!=false){self.opt.input=self.opt.input||self.prepareInput(zoneNode)
3595self.opt.input&&global.callAllOfObject(self,'inputSetup',self.opt.input)}
3596self.hookDragOn(zoneNode)
3597self.hookDropOn(zoneNode)}
3598self.hookDragOn=function(zoneNode){if(self.opt.fullDocDragDetect){self.delegate(document.body,'dragEnter')
3599global.addEvent(document,'dragleave',function(e){if((e.clientX==0&&e.clientY==0)||global.isTag(e.relatedTarget,'html')){global.stopEvent(e)
3600global.callAllOfObject(self,'dragLeave',e)}})}else{self.delegate(zoneNode,'dragEnter')
3601self.delegate(zoneNode,'dragLeave')}
3602self.delegate(zoneNode,'dragOver')
3603self.delegate(zoneNode,'dragEnd')
3604self.delegate(zoneNode,'dragExit')}
3605self.hookDropOn=function(zoneNode){global.isIE9||self.delegate(zoneNode,'drop','upload')}
3606self.delegate=function(zoneNode,domEvent,selfEvent){global.addEvent(zoneNode,domEvent.toLowerCase(),function(e){global.stopEvent(e)
3607global.callAllOfObject(self,selfEvent||domEvent,e)})}
3608self.prepareInput=function(parent){var file=self.findInputRecursive(parent)||self.createInputAt(parent)
3609if(file){var form=file.parentNode
3610while(form&&!global.isTag(form,'form')){form=form.parentNode}
3611if(!form){throw'FileDrop file input has no parent form element.'}
3612var target=form?form.getAttribute('target'):''
3613if(target&&global.isTag(global.byID(target),'iframe')){return{file:file,form:form}}}
3614return false}
3615self.findInputRecursive=function(parent){for(var i=0;i<parent.childNodes.length;i++){var node=parent.childNodes[i]
3616if(global.isTag(node,'input')&&node.getAttribute('type')=='file'&&global.hasClass(node,self.opt.inputClass)){return node}else if(node=arguments.callee(node)){return node}}}
3617self.createInputAt=function(parent){do{var id=global.randomID()}while(global.byID(id))
3618var cont=document.createElement('div')
3619cont.innerHTML='<iframe src="javascript:false" name="'+id+'"></iframe>'+'<form method="post" enctype="multipart/form-data">'+'<input type="hidden" name="'+self.opt.iframe.callbackParam+'" />'+'<input type="file" name="'+self.opt.iframe.fileParam+'" />'+'</form>'
3620cont.firstChild.setAttribute('id',id)
3621cont.firstChild.style.display='none'
3622cont.lastChild.setAttribute('target',id)
3623var nextChild=parent.firstChild
3624while(nextChild&&(!global.isTag(nextChild)||global.isTag(nextChild,'legend'))){nextChild=nextChild.nextSibling}
3625if(nextChild){parent.insertBefore(cont,nextChild)}else{parent.appendChild(cont)}
3626return cont.lastChild.lastChild}
3627self.abortIFrame=function(){if(self.opt.input.form){var iframe=global.byID(self.opt.input.form.getAttribute('target'))
3628iframe&&iframe.setAttribute('src','javascript:false')}}
3629self.sendViaIFrame=function(url){url=url||self.opt.iframe.url
3630var form=(self.opt.input||{}).form
3631if(url&&form){do{var callback=global.randomID()}while(callback in window)
3632window[callback]=function(resp){if(typeof resp!='object'){resp={response:resp,responseXML:'',responseText:(resp||'').toString(),readyState:4,status:200,statusText:'OK',getAllResponseHeaders:function(){return''},getResponseHeader:function(){return''},setRequestHeader:function(){return this},statusCode:function(){return this},abort:function(){return this}}}
3633global.extend(resp,{iframe:true,url:url})
3634global.callAllOfObject(self,'iframeDone',resp)}
3635var cbInput=form.firstChild
3636while(cbInput&&(!global.isTag(cbInput,'input')||cbInput.name!=self.opt.iframe.callbackParam)){cbInput=cbInput.nextSibling}
3637if(cbInput){cbInput.value=callback}else{url=url.replace(/[?&]+$/,'')+
3638(url.indexOf('?')==-1?'?':'&')+
3639self.opt.iframe.callbackParam+'='+callback}
3640form.setAttribute('action',url)
3641global.callAllOfObject(self,'iframeSetup',form)
3642form.submit()
3643setTimeout(self.resetForm,300)
3644return true}}
3645self.resetForm=function(){var input=self.opt.input&&self.opt.input.file
3646if(input){input.value=''
3647if(self.opt.recreateInput){var clone=self.opt.input.file=input.cloneNode(true)
3648input.parentNode.replaceChild(clone,input)
3649global.callAllOfObject(self,'inputSetup',[self.opt.input,input])}}}
3650self.multiple=function(enable){if(self.opt.input&&typeof enable!='undefined'){enable?self.opt.input.file.setAttribute('multiple','multiple'):self.opt.input.file.removeAttribute('multiple')}
3651return self.opt.input&&!!self.opt.input.file.getAttribute('multiple')}
3652self.event=function(events,funcs){return global.appendEventsToObject.apply(self,arguments)}
3653self.preview=function(events,funcs){return global.previewToObject.apply(self,arguments)}
3654self.onInputSetup=function(input,oldInput){if(oldInput){input.file.clearAttributes&&input.file.clearAttributes()
3655input.file.mergeAttributes&&input.file.mergeAttributes(oldInput)}else{self.multiple(self.opt.multiple)}
3656global.setClass(input.file,self.opt.inputClass)
3657self.delegate(input.file,'change','upload')
3658var parent=input.file.parentNode
3659if(parent&&parent.style.display.match(/^(static)?$/)){parent.style.position='relative'}
3660if(global.isTag(zone,'fieldset')){var div=document.createElement('div')
3661div.style.position='relative'
3662div.style.overflow='hidden'
3663zone.parentNode.insertBefore(div,zone)
3664div.appendChild(zone)}}
3665self.onDragOver=function(e){global.stopEvent(e)
3666e.dataTransfer&&(e.dataTransfer.dropEffect=self.opt.dropEffect)}
3667self.onUpload=function(){for(var i=0;i<global.all.length;i++){if(global.all[i]!==self&&global.all[i].events){global.callAllOfObject(global.all[i],'uploadElsewhere',self)}}}
3668self.event({inputSetup:self.onInputSetup,dragOver:self.onDragOver,upload:self.onUpload})
3669global.setClass(zone,self.opt.zoneClass)
3670self.hook(zone)}
3671global.FileDrop=function(zone,opt){var self=this
3672zone=global.byID(zone)
3673self.handle=new global.DropHandle(zone,opt)
3674self.handle.filedrop=self
3675global.extend(self.handle.opt,{dragOverClass:'over'})
3676global.extend(self.handle.opt.iframe,{force:false})
3677global.extend(self.handle.events,{send:[],fileSetup:[]})
3678self.onUpload=function(e){var files=!self.opt.iframe.force&&self.eventFiles(e,true)
3679if(!files){if(!self.handle.sendViaIFrame()&&global.hasConsole){console.warn('FileDrop fallback upload triggered but iframe options'+' were not configured - doing nothing.')}}else if(files.length>0){global.callAllOfObject(self,'send',[files])}}
3680self.eventFiles=function(e,orFalse){var result=new global.FileList(e)
3681if(e.dataTransfer&&(e.dataTransfer.length||e.dataTransfer.files)){var list=e.dataTransfer}else{var list=(e.target&&e.target.files)||(e.srcElement&&e.srcElement.files)}
3682if(list){var entries=list.items||[]
3683list.files&&(list=list.files)
3684var names={}
3685for(var i=0;i<list.length;i++){var file=new global.File(list[i])
3686if(!names[file.name]||file.name=='image.jpg'){names[file.name]=true
3687file.setNativeEntry(entries[i])
3688global.callAllOfObject(self,'fileSetup',file)
3689if(file.size>0||file.nativeEntry){result.push(file)}}}}else if(orFalse){result=false}
3690return result}
3691global.extend(self,self.handle)
3692function dragClassChanger(isHovered){return function(){global.setClass(zone,self.opt.dragOverClass,isHovered)}}
3693self.event({upload:self.onUpload,send:self.resetForm,dragEnter:dragClassChanger(true),dragLeave:dragClassChanger(false),uploadElsewhere:dragClassChanger(false)})
3694self.preview({upload:dragClassChanger(false)})}
3695global.FileList=function(event){var self=this
3696self.dropEffect=(event&&event.dropEffect)||''
3697self.length=0
3698event=null
3699self.push=function(file){self[self.length++]=file
3700return self}
3701self.pop=function(){if(self.length>0){var file=self.last()
3702delete self[--self.length]
3703return file}}
3704self.first=function(){return self[0]}
3705self.last=function(){return self[self.length-1]}
3706self.remove=function(i){for(;i<self.length-1;i++){self[i]=self[i+1]}
3707se.f.pop()
3708return self}
3709self.clear=function(){for(var i=0;i<self.length;i++){delete self[i]}
3710self.length=0
3711return self}
3712self.reverse=function(){for(var i=0;i<Math.floor(self.length / 2);i++){self[i]=self[self.length-i-1]}
3713return self}
3714self.concat=function(list){var copy=new global.FileList
3715for(var i=0;i<self.length;i++){copy[i]=self[i]}
3716for(var i=0;list&&i<list.length;i++){copy[self.length+i+1]=list[i]}
3717copy.length=self.length+(list||[]).length
3718return self}
3719self.sort=function(func,cx){for(var i=0;i<self.length;i++){for(var j=0;j<self.length;j++){if(func.call(cx||this,self[i],self[j],i,j)<0){var temp=self[i]
3720self[i]=self[j]
3721self[j]=temp}}}
3722return self}
3723self.sortBy=function(func,cx){var list=[]
3724for(var i=0;i<self.length;i++){list.push([i,func.call(cx||this,self[i],i)])}
3725list.sort(function(a,b){return a[1]>b[1]?+1:(a[1]<b[1]?-1:0)})
3726for(var i=0;i<list.length;i++){self[i]=list[i][0]}
3727return self}
3728self.find=function(func,cx){for(var i=0;i<self.length;i++){var res=func.call(cx||this,self[i],i)
3729if(res!=null){return self[i]}}}
3730self.each=function(func,cx){self.find(function(){func.apply(this,arguments)},cx)
3731return self}
3732self.invoke=function(method,arg_1){var args=global.toArray(arguments,1)
3733return this.each(function(file){file[method].apply(file,args)})}
3734self.abort=function(){return this.invoke('abort')}
3735self.findCompare=function(func,cx){var file,value=null,res
3736self.each(function(f){if(value==null||value<(res=func.call(cx,file))){file=f}},cx)
3737return file}
3738self.filter=function(func,cx){var list=new global.FileList
3739self.each(function(f){func.apply(this,arguments)&&list.push(f)},cx)
3740return list}
3741self.largest=function(){return self.findCompare(function(f){return f.size})}
3742self.smallest=function(){return self.findCompare(function(f){return-f.size})}
3743self.oldest=function(){return self.findCompare(function(f){return-f.modDate.getTime()})}
3744self.newest=function(){return self.findCompare(function(f){return f.modDate})}
3745self.ofType=function(mime){mime+=mime.indexOf('/')==-1?'/':'$'
3746mime=new RegExp('^'+mime,'i')
3747return self.filter(function(f){return mime.test(f.type)})}
3748self.images=function(){return self.ofType('image')}
3749self.named=function(name){if(typeof name=='string'){return self.find(function(f){return f.name==name})}else{return self.filter(function(f){return name.test(f.name)})}}}
3750global.FileList.prototype.length=0
3751global.FileList.prototype.splice=Array.prototype.splice
3752global.File=function(file){var self=this
3753self.nativeFile=file
3754self.nativeEntry=null
3755self.name=file.fileName||file.name||''
3756self.size=file.fileSize||file.size||0
3757self.type=self.mime=file.fileType||file.type||''
3758self.modDate=file.lastModifiedDate||new Date
3759self.xhr=null
3760self.opt={extraHeaders:true,xRequestedWith:true,method:'POST'}
3761self.events={any:[],xhrSetup:[],xhrSend:[],progress:[],done:[],error:[]}
3762self.events.sendXHR=self.events.xhrSend
3763self.abort=function(){self.xhr&&self.xhr.abort&&self.xhr.abort()
3764return self}
3765self.sendTo=function(url,opt){opt=global.extend(opt,self.opt)
3766opt.url=url
3767if(!self.size){global.hasConsole&&console.warn('Trying to send an empty FileDrop.File.')}else if(window.FileReader){var reader=new FileReader
3768reader.onload=function(e){self.sendDataReadyTo(opt,e)}
3769reader.onerror=function(e){global.callAllOfObject(self,'error',[e])}
3770reader.readAsArrayBuffer(self.nativeFile)}else{self.sendDataReadyTo(opt)}
3771return self}
3772self.sendDataReadyTo=function(opt,e){self.abort()
3773self.xhr=global.newXHR()
3774self.hookXHR(self.xhr)
3775self.xhr.open(opt.method,opt.url,true)
3776self.xhr.overrideMimeType&&self.xhr.overrideMimeType('application/octet-stream')
3777self.xhr.setRequestHeader('Content-Type','application/octet-stream')
3778if(opt.extraHeaders){self.xhr.setRequestHeader('X-File-Name',encodeURIComponent(self.name))
3779self.xhr.setRequestHeader('X-File-Size',self.size)
3780self.xhr.setRequestHeader('X-File-Type',self.type)
3781self.xhr.setRequestHeader('X-File-Date',self.modDate.toGMTString())
3782var reqWith=opt.xRequestedWith
3783if(reqWith===true){var api=window.FileReader?'FileAPI':'Webkit'
3784reqWith='FileDrop-XHR-'+api}
3785reqWith&&self.xhr.setRequestHeader('X-Requested-With',reqWith)}
3786global.callAllOfObject(self,'xhrSetup',[self.xhr,opt])
3787var data=(e&&e.target&&e.target.result)?e.target.result:self.nativeFile
3788global.callAllOfObject(self,'xhrSend',[self.xhr,data,opt])
3789return self.xhr}
3790self.hookXHR=function(xhr){var evtHost=xhr.upload||xhr
3791xhr.onreadystatechange=function(e){if(xhr.readyState==4){try{var event=xhr.status==200?'done':'error'}catch(e){var event='error'}
3792var args=event=='error'?[e,xhr]:[xhr,e]
3793global.callAllOfObject(self,event,args)}}
3794evtHost.onprogress=function(e){var current=e.lengthComputable?e.loaded:null
3795global.callAllOfObject(self,'progress',[current,e.total||null,xhr,e])}}
3796self.readData=function(onDone,onError,func){return self.read({onDone:onDone,onError:onError,func:func})}
3797self.readDataURL=function(onDone,onError){return self.readData(onDone,onError||false,'uri')}
3798self.readDataURI=self.readDataURL;self.read=function(opt){function error(reason,e){typeof e=='object'||(e.message=e)
3799e.fdError=reason
3800if(opt.onError!==false){(opt.onError||opt.onDone).apply(this,arguments)}}
3801global.extend(opt,{onDone:new Function,onError:null,blob:self.nativeFile,func:'',start:0,end:null,mime:''})
3802if(!window.FileReader){return error('support',e)}
3803if(opt.start>0||opt.end!=null&&opt.end){if(opt.blob.slice){opt.end==null&&(opt.end=opt.blob.size||opt.blob.fileSize)
3804opt.blob=opt.blob.slice(opt.start,opt.end,opt.mime)}else if(global.hasConsole){console.warn('File Blob/slice() are unsupported - operating on entire File.')}}
3805var reader=new FileReader
3806reader.onerror=function(e){error('read',e)}
3807reader.onload=function(e){if(e.target&&e.target.result){if(opt.func=='readAsBinaryString'){e.target.result=String.fromCharCode.apply(null,new Uint8Array(e.target.result))}
3808opt.onDone(e.target.result)}else{reader.onerror(e)}}
3809var func=opt.func
3810if(global.isArray(func)){var name=func[0]
3811func[0]=opt.blob
3812return reader[name].apply(reader,func)}else{if(!func||func=='bin'){func='readAsBinaryString'}else if(func=='url'||func=='uri'||func=='src'){func='readAsDataURL'}else if(func=='array'){func='readAsArrayBuffer'}else if(func=='text'){func='readAsText'}else if(func.substr(0,4)!='read'){return reader.readAsText(opt.blob,func)}
3813func=='readAsBinaryString'&&(func='readAsArrayBuffer')
3814return reader[func](opt.blob)}}
3815self.listEntries=function(onDone,onError){if(self.nativeEntry&&self.nativeEntry.isDirectory){onError=onError||new Function
3816var reader=self.nativeEntry.createReader()
3817var files=new global.FileList
3818var enqueued=0
3819function dequeue(count){enqueued-=count
3820if(enqueued==0&&onDone){onDone(files)
3821onDone=null}}
3822reader.readEntries(function(list){for(var i=0;i<list.length;i++){var nativeEntry=list[i]
3823if(nativeEntry.file){enqueued++
3824nativeEntry.file(function(nativeFile){var file=new global.File(nativeFile)
3825file.setNativeEntry(nativeEntry)
3826files.push(file)
3827dequeue(1)},function(){files.push(global.File.fromEntry(nativeEntry))
3828dequeue(1)
3829onError.apply(this,arguments)})}else{files.push(global.File.fromEntry(nativeEntry))}}
3830i?reader.readEntries(arguments.callee,onError):dequeue(0)},onError)
3831return true}}
3832self.setNativeEntry=function(item){self.nativeEntry=item&&item.webkitGetAsEntry&&item.webkitGetAsEntry()}
3833self.event=function(events,funcs){return global.appendEventsToObject.apply(self,arguments)}
3834self.preview=function(events,funcs){return global.previewToObject.apply(self,arguments)}
3835self.onXhrSend=function(xhr,data){xhr.send(data)}
3836self.event({xhrSend:self.onXhrSend})}
3837global.File.fromEntry=function(nativeEntry){var file=new global.File(nativeEntry)
3838file.setNativeEntry(nativeEntry)
3839file.nativeFile=null
3840return file}
3841global.jQuery=function($){$=$||jQuery||window.jQuery
3842if(!$){throw'No window.jQuery object to integrate FileDrop into.'}
3843$.fn.filedrop=function(options){function delegate(prefix,firstArgs){return function(event){var args=(firstArgs||[]).concat(global.toArray(arguments,1))
3844return $node.triggerHandler((prefix+event).toLowerCase(),args)}}
3845var $node=this
3846var host=this.data('filedrop')
3847if(typeof options=='string'){if(!host){$.error("$.filedrop('comment') needs an initialized FilrDrop on this element.")}else if(typeof host[options]=='undefined'){$.error("There's no method or property FileDrop."+options+".")}else{var value=host[options]
3848if(typeof value=='function'){return value.apply(host,global.toArray(arguments,1))}else{return value}}}else if(!options||typeof options=='object'){if(!host){var zone=new FileDrop(this[0],options)
3849zone.$el=$(this)
3850this.first().data('filedrop',zone)
3851zone.event('any',delegate('fd'))
3852zone.on.fileSetup.push(function(file){file.event('any',delegate('file',[file]))})}else if(!options){return host}else{global.extend(host.opt,options,true)}}else{$.error('Invalid $.filedrop() parameter - expected nothing (creates new zone),'+' a string (property to access) or an object (custom zone options).')}
3853return $node}}
3854root.FileDrop=global.FileDrop});
3855MMI.Util.namespace('MMI.Filedrop');MMI.Filedrop={initialize:function(){fd.jQuery();},enableFiledrop:function(jqel,options){if(!options){options={};}
3856var app=MMI.App.get();app.registerLiveEvent('filedroppedonelement');app.registerLiveEvent('filedroppedinpage');app.registerLiveEvent('filedropdone');app.registerLiveEvent('filedroperror');app.registerLiveEvent('filedropprogress');jqel=jQuery(jqel);if(jqel.size()){jqel.filedrop(options).off('fdsend').off('filedone').off('fileprogress').off('fileerror').on('fdsend',MMI.Filedrop.fdsend).on('filedone',MMI.Filedrop.done).on('fileprogress',MMI.Filedrop.progress).on('fileerror',MMI.Filedrop.error);}},fdsend:function(event,files){var jqel_dropElement=jQuery(event.currentTarget);jqel_dropElement.trigger('filedroppedonelement',[files]);jqel_dropElement.find('.live_filedroppedonelement').trigger('filedroppedonelement',[files]);MMI.App.get().triggerEvent('filedroppedinpage',[files]);},done:function(event,file,XMLHttpRequest,eventObject){var jqel_dropElement=jQuery(event.currentTarget);var response=JSON.parse(XMLHttpRequest.responseText);jqel_dropElement.trigger('filedropdone',[file,response]);jqel_dropElement.find('.live_filedropdone').trigger('filedropdone',[file,response]);},progress:function(event,file,sentBytes,totalBytes,XMLHttpRequest,eventObject){var jqel_dropElement=jQuery(event.currentTarget);jqel_dropElement.trigger('filedropprogress',[file,sentBytes,totalBytes]);jqel_dropElement.find('.live_filedropprogress').trigger('filedropprogress',[file,sentBytes,totalBytes]);},error:function(event,file,eventObject,XMLHttpRequest){var jqel_dropElement=jQuery(event.currentTarget);jqel_dropElement.trigger('filedroperror',[file]);jqel_dropElement.find(".live_filedroperror").trigger('filedroperror',[file,XMLHttpRequest.status+', '+XMLHttpRequest.statusText]);}};MMI.Filedrop.initialize();
3857(function(factory){if(typeof define==='function'&&define.amd){define(['jquery'],factory);}else if(typeof exports==='object'){factory(require('jquery'));}else{factory(jQuery);}})(function($){'use strict';$.support.htmlMenuitem=('HTMLMenuItemElement'in window);$.support.htmlCommand=('HTMLCommandElement'in window);$.support.eventSelectstart=('onselectstart'in document.documentElement);if(!$.ui||!$.widget){$.cleanData=(function(orig){return function(elems){var events,elem,i;for(i=0;elems[i]!=null;i++){elem=elems[i];try{events=$._data(elem,'events');if(events&&events.remove){$(elem).triggerHandler('remove');}}catch(e){}}
3858orig(elems);};})($.cleanData);}
3859var
vendor: 36,623 bytes, lines 3860-4027
3860$currentTrigger=null,initialized=false,$win=$(window),counter=0,namespaces={},menus={},types={},defaults={selector:null,appendTo:null,trigger:'right',autoHide:false,delay:200,reposition:true,hideOnSecondTrigger:false,selectableSubMenu:false,classNames:{hover:'context-menu-hover',disabled:'context-menu-disabled',visible:'context-menu-visible',notSelectable:'context-menu-not-selectable',icon:'context-menu-icon',iconEdit:'context-menu-icon-edit',iconCut:'context-menu-icon-cut',iconCopy:'context-menu-icon-copy',iconPaste:'context-menu-icon-paste',iconDelete:'context-menu-icon-delete',iconAdd:'context-menu-icon-add',iconQuit:'context-menu-icon-quit',iconLoadingClass:'context-menu-icon-loading'},determinePosition:function($menu){if($.ui&&$.ui.position){$menu.css('display','block').position({my:'center top',at:'center bottom',of:this,offset:'0 5',collision:'fit'}).css('display','none');}else{var offset=this.offset();offset.top+=this.outerHeight();offset.left+=this.outerWidth()/ 2-$menu.outerWidth()/ 2;$menu.css(offset);}},position:function(opt,x,y){var offset;if(!x&&!y){opt.determinePosition.call(this,opt.$menu);return;}else if(x==='maintain'&&y==='maintain'){offset=opt.$menu.position();}else{var offsetParentOffset=opt.$menu.offsetParent().offset();offset={top:y-offsetParentOffset.top,left:x-offsetParentOffset.left};}
3861var bottom=$win.scrollTop()+$win.height(),right=$win.scrollLeft()+$win.width(),height=opt.$menu.outerHeight(),width=opt.$menu.outerWidth();if(offset.top+height>bottom){offset.top-=height;}
3862if(offset.top<0){offset.top=0;}
3863if(offset.left+width>right){offset.left-=width;}
3864if(offset.left<0){offset.left=0;}
3865opt.$menu.css(offset);},positionSubmenu:function($menu){if(typeof $menu==='undefined'){return;}
3866if($.ui&&$.ui.position){$menu.css('display','block').position({my:'left top-5',at:'right top',of:this,collision:'flipfit fit'}).css('display','');}else{var offset={top:-9,left:this.outerWidth()-5};$menu.css(offset);}},zIndex:1,animation:{duration:50,show:'slideDown',hide:'slideUp'},events:{show:$.noop,hide:$.noop,activated:$.noop},callback:null,items:{}},hoveract={timer:null,pageX:null,pageY:null},zindex=function($t){var zin=0,$tt=$t;while(true){zin=Math.max(zin,parseInt($tt.css('z-index'),10)||0);$tt=$tt.parent();if(!$tt||!$tt.length||'html body'.indexOf($tt.prop('nodeName').toLowerCase())>-1){break;}}
3867return zin;},handle={abortevent:function(e){e.preventDefault();e.stopImmediatePropagation();},contextmenu:function(e){var $this=$(this);if(e.data.trigger==='right'){e.preventDefault();e.stopImmediatePropagation();}
3868if((e.data.trigger!=='right'&&e.data.trigger!=='demand')&&e.originalEvent){return;}
3869if(typeof e.mouseButton!=='undefined'&&e.data){if(!(e.data.trigger==='left'&&e.mouseButton===0)&&!(e.data.trigger==='right'&&e.mouseButton===2)){return;}}
3870if($this.hasClass('context-menu-active')){return;}
3871if(!$this.hasClass('context-menu-disabled')){$currentTrigger=$this;if(e.data.build){var built=e.data.build($currentTrigger,e);if(built===false){return;}
3872e.data=$.extend(true,{},defaults,e.data,built||{});if(!e.data.items||$.isEmptyObject(e.data.items)){if(window.console){(console.error||console.log).call(console,'No items specified to show in contextMenu');}
3873throw new Error('No Items specified');}
3874e.data.$trigger=$currentTrigger;op.create(e.data);}
3875op.show.call($this,e.data,e.pageX,e.pageY);}},click:function(e){e.preventDefault();e.stopImmediatePropagation();$(this).trigger($.Event('contextmenu',{data:e.data,pageX:e.pageX,pageY:e.pageY}));},mousedown:function(e){var $this=$(this);if($currentTrigger&&$currentTrigger.length&&!$currentTrigger.is($this)){$currentTrigger.data('contextMenu').$menu.trigger('contextmenu:hide');}
3876if(e.button===2){$currentTrigger=$this.data('contextMenuActive',true);}},mouseup:function(e){var $this=$(this);if($this.data('contextMenuActive')&&$currentTrigger&&$currentTrigger.length&&$currentTrigger.is($this)&&!$this.hasClass('context-menu-disabled')){e.preventDefault();e.stopImmediatePropagation();$currentTrigger=$this;$this.trigger($.Event('contextmenu',{data:e.data,pageX:e.pageX,pageY:e.pageY}));}
3877$this.removeData('contextMenuActive');},mouseenter:function(e){var $this=$(this),$related=$(e.relatedTarget),$document=$(document);if($related.is('.context-menu-list')||$related.closest('.context-menu-list').length){return;}
3878if($currentTrigger&&$currentTrigger.length){return;}
3879hoveract.pageX=e.pageX;hoveract.pageY=e.pageY;hoveract.data=e.data;$document.on('mousemove.contextMenuShow',handle.mousemove);hoveract.timer=setTimeout(function(){hoveract.timer=null;$document.off('mousemove.contextMenuShow');$currentTrigger=$this;$this.trigger($.Event('contextmenu',{data:hoveract.data,pageX:hoveract.pageX,pageY:hoveract.pageY}));},e.data.delay);},mousemove:function(e){hoveract.pageX=e.pageX;hoveract.pageY=e.pageY;},mouseleave:function(e){var $related=$(e.relatedTarget);if($related.is('.context-menu-list')||$related.closest('.context-menu-list').length){return;}
3880try{clearTimeout(hoveract.timer);}catch(e){}
3881hoveract.timer=null;},layerClick:function(e){var $this=$(this),root=$this.data('contextMenuRoot'),button=e.button,x=e.pageX,y=e.pageY,fakeClick=x===undefined,target,offset;e.preventDefault();setTimeout(function(){if(fakeClick){if(root!==null&&typeof root!=='undefined'&&root.$menu!==null&&typeof root.$menu!=='undefined'){root.$menu.trigger('contextmenu:hide');}
3882return;}
3883var $window;var triggerAction=((root.trigger==='left'&&button===0)||(root.trigger==='right'&&button===2));if(document.elementFromPoint&&root.$layer){root.$layer.hide();target=document.elementFromPoint(x-$win.scrollLeft(),y-$win.scrollTop());if(target.isContentEditable){var range=document.createRange(),sel=window.getSelection();range.selectNode(target);range.collapse(true);sel.removeAllRanges();sel.addRange(range);}
3884$(target).trigger(e);root.$layer.show();}
3885if(root.hideOnSecondTrigger&&triggerAction&&root.$menu!==null&&typeof root.$menu!=='undefined'){root.$menu.trigger('contextmenu:hide');return;}
3886if(root.reposition&&triggerAction){if(document.elementFromPoint){if(root.$trigger.is(target)){root.position.call(root.$trigger,root,x,y);return;}}else{offset=root.$trigger.offset();$window=$(window);offset.top+=$window.scrollTop();if(offset.top<=e.pageY){offset.left+=$window.scrollLeft();if(offset.left<=e.pageX){offset.bottom=offset.top+root.$trigger.outerHeight();if(offset.bottom>=e.pageY){offset.right=offset.left+root.$trigger.outerWidth();if(offset.right>=e.pageX){root.position.call(root.$trigger,root,x,y);return;}}}}}}
3887if(target&&triggerAction){root.$trigger.one('contextmenu:hidden',function(){$(target).contextMenu({x:x,y:y,button:button});});}
3888if(root!==null&&typeof root!=='undefined'&&root.$menu!==null&&typeof root.$menu!=='undefined'){root.$menu.trigger('contextmenu:hide');}},50);},keyStop:function(e,opt){if(!opt.isInput){e.preventDefault();}
3889e.stopPropagation();},key:function(e){var opt={};if($currentTrigger){opt=$currentTrigger.data('contextMenu')||{};}
3890if(typeof opt.zIndex==='undefined'){opt.zIndex=0;}
3891var targetZIndex=0;var getZIndexOfTriggerTarget=function(target){if(target.style.zIndex!==''){targetZIndex=target.style.zIndex;}else{if(target.offsetParent!==null&&typeof target.offsetParent!=='undefined'){getZIndexOfTriggerTarget(target.offsetParent);}
3892else if(target.parentElement!==null&&typeof target.parentElement!=='undefined'){getZIndexOfTriggerTarget(target.parentElement);}}};getZIndexOfTriggerTarget(e.target);if(opt.$menu&&parseInt(targetZIndex,10)>parseInt(opt.$menu.css("zIndex"),10)){return;}
3893switch(e.keyCode){case 9:case 38:handle.keyStop(e,opt);if(opt.isInput){if(e.keyCode===9&&e.shiftKey){e.preventDefault();if(opt.$selected){opt.$selected.find('input, textarea, select').blur();}
3894if(opt.$menu!==null&&typeof opt.$menu!=='undefined'){opt.$menu.trigger('prevcommand');}
3895return;}else if(e.keyCode===38&&opt.$selected.find('input, textarea, select').prop('type')==='checkbox'){e.preventDefault();return;}}else if(e.keyCode!==9||e.shiftKey){if(opt.$menu!==null&&typeof opt.$menu!=='undefined'){opt.$menu.trigger('prevcommand');}
3896return;}
3897break;case 40:handle.keyStop(e,opt);if(opt.isInput){if(e.keyCode===9){e.preventDefault();if(opt.$selected){opt.$selected.find('input, textarea, select').blur();}
3898if(opt.$menu!==null&&typeof opt.$menu!=='undefined'){opt.$menu.trigger('nextcommand');}
3899return;}else if(e.keyCode===40&&opt.$selected.find('input, textarea, select').prop('type')==='checkbox'){e.preventDefault();return;}}else{if(opt.$menu!==null&&typeof opt.$menu!=='undefined'){opt.$menu.trigger('nextcommand');}
3900return;}
3901break;case 37:handle.keyStop(e,opt);if(opt.isInput||!opt.$selected||!opt.$selected.length){break;}
3902if(!opt.$selected.parent().hasClass('context-menu-root')){var $parent=opt.$selected.parent().parent();opt.$selected.trigger('contextmenu:blur');opt.$selected=$parent;return;}
3903break;case 39:handle.keyStop(e,opt);if(opt.isInput||!opt.$selected||!opt.$selected.length){break;}
3904var itemdata=opt.$selected.data('contextMenu')||{};if(itemdata.$menu&&opt.$selected.hasClass('context-menu-submenu')){opt.$selected=null;itemdata.$selected=null;itemdata.$menu.trigger('nextcommand');return;}
3905break;case 35:case 36:if(opt.$selected&&opt.$selected.find('input, textarea, select').length){return;}else{(opt.$selected&&opt.$selected.parent()||opt.$menu).children(':not(.'+opt.classNames.disabled+', .'+opt.classNames.notSelectable+')')[e.keyCode===36?'first':'last']().trigger('contextmenu:focus');e.preventDefault();return;}
3906break;case 13:handle.keyStop(e,opt);if(opt.isInput){if(opt.$selected&&!opt.$selected.is('textarea, select')){e.preventDefault();return;}
3907break;}
3908if(typeof opt.$selected!=='undefined'&&opt.$selected!==null){opt.$selected.trigger('mouseup');}
3909return;case 32:case 33:case 34:handle.keyStop(e,opt);return;case 27:handle.keyStop(e,opt);if(opt.$menu!==null&&typeof opt.$menu!=='undefined'){opt.$menu.trigger('contextmenu:hide');}
3910return;default:var k=(String.fromCharCode(e.keyCode)).toUpperCase();if(opt.accesskeys&&opt.accesskeys[k]){opt.accesskeys[k].$node.trigger(opt.accesskeys[k].$menu?'contextmenu:focus':'mouseup');return;}
3911break;}
3912e.stopPropagation();if(typeof opt.$selected!=='undefined'&&opt.$selected!==null){opt.$selected.trigger(e);}},prevItem:function(e){e.stopPropagation();var opt=$(this).data('contextMenu')||{};var root=$(this).data('contextMenuRoot')||{};if(opt.$selected){var $s=opt.$selected;opt=opt.$selected.parent().data('contextMenu')||{};opt.$selected=$s;}
3913var $children=opt.$menu.children(),$prev=!opt.$selected||!opt.$selected.prev().length?$children.last():opt.$selected.prev(),$round=$prev;while($prev.hasClass(root.classNames.disabled)||$prev.hasClass(root.classNames.notSelectable)||$prev.is(':hidden')){if($prev.prev().length){$prev=$prev.prev();}else{$prev=$children.last();}
3914if($prev.is($round)){return;}}
3915if(opt.$selected){handle.itemMouseleave.call(opt.$selected.get(0),e);}
3916handle.itemMouseenter.call($prev.get(0),e);var $input=$prev.find('input, textarea, select');if($input.length){$input.focus();}},nextItem:function(e){e.stopPropagation();var opt=$(this).data('contextMenu')||{};var root=$(this).data('contextMenuRoot')||{};if(opt.$selected){var $s=opt.$selected;opt=opt.$selected.parent().data('contextMenu')||{};opt.$selected=$s;}
3917var $children=opt.$menu.children(),$next=!opt.$selected||!opt.$selected.next().length?$children.first():opt.$selected.next(),$round=$next;while($next.hasClass(root.classNames.disabled)||$next.hasClass(root.classNames.notSelectable)||$next.is(':hidden')){if($next.next().length){$next=$next.next();}else{$next=$children.first();}
3918if($next.is($round)){return;}}
3919if(opt.$selected){handle.itemMouseleave.call(opt.$selected.get(0),e);}
3920handle.itemMouseenter.call($next.get(0),e);var $input=$next.find('input, textarea, select');if($input.length){$input.focus();}},focusInput:function(){var $this=$(this).closest('.context-menu-item'),data=$this.data(),opt=data.contextMenu,root=data.contextMenuRoot;root.$selected=opt.$selected=$this;root.isInput=opt.isInput=true;},blurInput:function(){var $this=$(this).closest('.context-menu-item'),data=$this.data(),opt=data.contextMenu,root=data.contextMenuRoot;root.isInput=opt.isInput=false;},menuMouseenter:function(){var root=$(this).data().contextMenuRoot;root.hovering=true;},menuMouseleave:function(e){var root=$(this).data().contextMenuRoot;if(root.$layer&&root.$layer.is(e.relatedTarget)){root.hovering=false;}},itemMouseenter:function(e){var $this=$(this),data=$this.data(),opt=data.contextMenu,root=data.contextMenuRoot;root.hovering=true;if(e&&root.$layer&&root.$layer.is(e.relatedTarget)){e.preventDefault();e.stopImmediatePropagation();}
3921(opt.$menu?opt:root).$menu.children('.'+root.classNames.hover).trigger('contextmenu:blur').children('.hover').trigger('contextmenu:blur');if($this.hasClass(root.classNames.disabled)||$this.hasClass(root.classNames.notSelectable)){opt.$selected=null;return;}
3922$this.trigger('contextmenu:focus');},itemMouseleave:function(e){var $this=$(this),data=$this.data(),opt=data.contextMenu,root=data.contextMenuRoot;if(root!==opt&&root.$layer&&root.$layer.is(e.relatedTarget)){if(typeof root.$selected!=='undefined'&&root.$selected!==null){root.$selected.trigger('contextmenu:blur');}
3923e.preventDefault();e.stopImmediatePropagation();root.$selected=opt.$selected=opt.$node;return;}
3924if(opt&&opt.$menu&&opt.$menu.hasClass('context-menu-visible')){return;}
3925$this.trigger('contextmenu:blur');},itemClick:function(e){var $this=$(this),data=$this.data(),opt=data.contextMenu,root=data.contextMenuRoot,key=data.contextMenuKey,callback;if(!opt.items[key]||$this.is('.'+root.classNames.disabled+', .context-menu-separator, .'+root.classNames.notSelectable)||($this.is('.context-menu-submenu')&&root.selectableSubMenu===false)){return;}
3926e.preventDefault();e.stopImmediatePropagation();if($.isFunction(opt.callbacks[key])&&Object.prototype.hasOwnProperty.call(opt.callbacks,key)){callback=opt.callbacks[key];}else if($.isFunction(root.callback)){callback=root.callback;}else{return;}
3927if(callback.call(root.$trigger,key,root,e)!==false){root.$menu.trigger('contextmenu:hide');}else if(root.$menu.parent().length){op.update.call(root.$trigger,root);}},inputClick:function(e){e.stopImmediatePropagation();},hideMenu:function(e,data){var root=$(this).data('contextMenuRoot');op.hide.call(root.$trigger,root,data&&data.force);},focusItem:function(e){e.stopPropagation();var $this=$(this),data=$this.data(),opt=data.contextMenu,root=data.contextMenuRoot;if($this.hasClass(root.classNames.disabled)||$this.hasClass(root.classNames.notSelectable)){return;}
3928$this.addClass([root.classNames.hover,root.classNames.visible].join(' ')).parent().find('.context-menu-item').not($this).removeClass(root.classNames.visible).filter('.'+root.classNames.hover).trigger('contextmenu:blur');opt.$selected=root.$selected=$this;if(opt&&opt.$node&&opt.$node.hasClass('context-menu-submenu')){opt.$node.addClass(root.classNames.hover);}
3929if(opt.$node){root.positionSubmenu.call(opt.$node,opt.$menu);}},blurItem:function(e){e.stopPropagation();var $this=$(this),data=$this.data(),opt=data.contextMenu,root=data.contextMenuRoot;if(opt.autoHide){$this.removeClass(root.classNames.visible);}
3930$this.removeClass(root.classNames.hover);opt.$selected=null;}},op={show:function(opt,x,y){var $trigger=$(this),css={};$('#context-menu-layer').trigger('mousedown');opt.$trigger=$trigger;if(opt.events.show.call($trigger,opt)===false){$currentTrigger=null;return;}
3931var hasVisibleItems=op.update.call($trigger,opt);if(hasVisibleItems===false){$currentTrigger=null;return;}
3932opt.position.call($trigger,opt,x,y);if(opt.zIndex){var additionalZValue=opt.zIndex;if(typeof opt.zIndex==='function'){additionalZValue=opt.zIndex.call($trigger,opt);}
3933css.zIndex=zindex($trigger)+additionalZValue;}
3934op.layer.call(opt.$menu,opt,css.zIndex);opt.$menu.find('ul').css('zIndex',css.zIndex+1);opt.$menu.css(css)[opt.animation.show](opt.animation.duration,function(){$trigger.trigger('contextmenu:visible');op.activated(opt);opt.events.activated(opt);});$trigger.data('contextMenu',opt).addClass('context-menu-active');$(document).off('keydown.contextMenu').on('keydown.contextMenu',handle.key);if(opt.autoHide){$(document).on('mousemove.contextMenuAutoHide',function(e){var pos=$trigger.offset();pos.right=pos.left+$trigger.outerWidth();pos.bottom=pos.top+$trigger.outerHeight();if(opt.$layer&&!opt.hovering&&(!(e.pageX>=pos.left&&e.pageX<=pos.right)||!(e.pageY>=pos.top&&e.pageY<=pos.bottom))){setTimeout(function(){if(!opt.hovering&&opt.$menu!==null&&typeof opt.$menu!=='undefined'){opt.$menu.trigger('contextmenu:hide');}},50);}});}},hide:function(opt,force){var $trigger=$(this);if(!opt){opt=$trigger.data('contextMenu')||{};}
3935if(!force&&opt.events&&opt.events.hide.call($trigger,opt)===false){return;}
3936$trigger.removeData('contextMenu').removeClass('context-menu-active');if(opt.$layer){setTimeout((function($layer){return function(){$layer.remove();};})(opt.$layer),10);try{delete opt.$layer;}catch(e){opt.$layer=null;}}
3937$currentTrigger=null;opt.$menu.find('.'+opt.classNames.hover).trigger('contextmenu:blur');opt.$selected=null;opt.$menu.find('.'+opt.classNames.visible).removeClass(opt.classNames.visible);$(document).off('.contextMenuAutoHide').off('keydown.contextMenu');if(opt.$menu){opt.$menu[opt.animation.hide](opt.animation.duration,function(){if(opt.build){opt.$menu.remove();$.each(opt,function(key){switch(key){case'ns':case'selector':case'build':case'trigger':return true;default:opt[key]=undefined;try{delete opt[key];}catch(e){}
3938return true;}});}
3939setTimeout(function(){$trigger.trigger('contextmenu:hidden');},10);});}},create:function(opt,root){if(typeof root==='undefined'){root=opt;}
3940opt.$menu=$('<ul class="context-menu-list"></ul>').addClass(opt.className||'').data({'contextMenu':opt,'contextMenuRoot':root});$.each(['callbacks','commands','inputs'],function(i,k){opt[k]={};if(!root[k]){root[k]={};}});if(!root.accesskeys){root.accesskeys={};}
3941function createNameNode(item){var $name=$('<span></span>');if(item._accesskey){if(item._beforeAccesskey){$name.append(document.createTextNode(item._beforeAccesskey));}
3942$('<span></span>').addClass('context-menu-accesskey').text(item._accesskey).appendTo($name);if(item._afterAccesskey){$name.append(document.createTextNode(item._afterAccesskey));}}else{if(item.isHtmlName){if(typeof item.accesskey!=='undefined'){throw new Error('accesskeys are not compatible with HTML names and cannot be used together in the same item');}
3943$name.html(item.name);}else{$name.text(item.name);}}
3944return $name;}
3945$.each(opt.items,function(key,item){var $t=$('<li class="context-menu-item"></li>').addClass(item.className||''),$label=null,$input=null;$t.on('click',$.noop);if(typeof item==='string'||item.type==='cm_separator'){item={type:'cm_seperator'};}
3946item.$node=$t.data({'contextMenu':opt,'contextMenuRoot':root,'contextMenuKey':key});if(typeof item.accesskey!=='undefined'){var aks=splitAccesskey(item.accesskey);for(var i=0,ak;ak=aks[i];i++){if(!root.accesskeys[ak]){root.accesskeys[ak]=item;var matched=item.name.match(new RegExp('^(.*?)('+ak+')(.*)$','i'));if(matched){item._beforeAccesskey=matched[1];item._accesskey=matched[2];item._afterAccesskey=matched[3];}
3947break;}}}
3948if(item.type&&types[item.type]){types[item.type].call($t,item,opt,root);$.each([opt,root],function(i,k){k.commands[key]=item;if($.isFunction(item.callback)&&(typeof k.callbacks[key]==='undefined'||typeof opt.type==='undefined')){k.callbacks[key]=item.callback;}});}else{if(item.type==='cm_seperator'){$t.addClass('context-menu-separator '+root.classNames.notSelectable);}else if(item.type==='html'){$t.addClass('context-menu-html '+root.classNames.notSelectable);}else if(item.type!=='sub'&&item.type){$label=$('<label></label>').appendTo($t);createNameNode(item).appendTo($label);$t.addClass('context-menu-input');opt.hasTypes=true;$.each([opt,root],function(i,k){k.commands[key]=item;k.inputs[key]=item;});}else if(item.items){item.type='sub';}
3949switch(item.type){case'cm_seperator':break;case'text':$input=$('<input type="text" value="1" name="" />').attr('name','context-menu-input-'+key).val(item.value||'').appendTo($label);break;case'textarea':$input=$('<textarea name=""></textarea>').attr('name','context-menu-input-'+key).val(item.value||'').appendTo($label);if(item.height){$input.height(item.height);}
3950break;case'checkbox':$input=$('<input type="checkbox" value="1" name="" />').attr('name','context-menu-input-'+key).val(item.value||'').prop('checked',!!item.selected).prependTo($label);break;case'radio':$input=$('<input type="radio" value="1" name="" />').attr('name','context-menu-input-'+item.radio).val(item.value||'').prop('checked',!!item.selected).prependTo($label);break;case'select':$input=$('<select name=""></select>').attr('name','context-menu-input-'+key).appendTo($label);if(item.options){$.each(item.options,function(value,text){$('<option></option>').val(value).text(text).appendTo($input);});$input.val(item.selected);}
3951break;case'sub':createNameNode(item).appendTo($t);item.appendTo=item.$node;$t.data('contextMenu',item).addClass('context-menu-submenu');item.callback=null;if('function'===typeof item.items.then){op.processPromises(item,root,item.items);}else{op.create(item,root);}
3952break;case'html':$(item.html).appendTo($t);break;default:$.each([opt,root],function(i,k){k.commands[key]=item;if($.isFunction(item.callback)&&(typeof k.callbacks[key]==='undefined'||typeof opt.type==='undefined')){k.callbacks[key]=item.callback;}});createNameNode(item).appendTo($t);break;}
3953if(item.type&&item.type!=='sub'&&item.type!=='html'&&item.type!=='cm_seperator'){$input.on('focus',handle.focusInput).on('blur',handle.blurInput);if(item.events){$input.on(item.events,opt);}}
3954if(item.icon){if($.isFunction(item.icon)){item._icon=item.icon.call(this,this,$t,key,item);}else{if(typeof(item.icon)==='string'&&(item.icon.substring(0,4)==='fab '||item.icon.substring(0,4)==='fas '||item.icon.substring(0,4)==='far '||item.icon.substring(0,4)==='fal ')){$t.addClass(root.classNames.icon+' '+root.classNames.icon+'--fa5');item._icon=$('<i class="'+item.icon+'"></i>');}else if(typeof(item.icon)==='string'&&item.icon.substring(0,3)==='fa-'){item._icon=root.classNames.icon+' '+root.classNames.icon+'--fa fa '+item.icon;}else{item._icon=root.classNames.icon+' '+root.classNames.icon+'-'+item.icon;}}
3955if(typeof(item._icon)==="string"){$t.addClass(item._icon);}else{$t.prepend(item._icon);}}}
3956item.$input=$input;item.$label=$label;$t.appendTo(opt.$menu);if(!opt.hasTypes&&$.support.eventSelectstart){$t.on('selectstart.disableTextSelect',handle.abortevent);}});if(!opt.$node){opt.$menu.css('display','none').addClass('context-menu-root');}
3957opt.$menu.appendTo(opt.appendTo||document.body);},resize:function($menu,nested){var domMenu;$menu.css({position:'absolute',display:'block'});$menu.data('width',(domMenu=$menu.get(0)).getBoundingClientRect?Math.ceil(domMenu.getBoundingClientRect().width):$menu.outerWidth()+1);$menu.css({position:'static',minWidth:'0px',maxWidth:'100000px'});$menu.find('> li > ul').each(function(){op.resize($(this),true);});if(!nested){$menu.find('ul').addBack().css({position:'',display:'',minWidth:'',maxWidth:''}).outerWidth(function(){return $(this).data('width');});}},update:function(opt,root){var $trigger=this;if(typeof root==='undefined'){root=opt;op.resize(opt.$menu);}
3958var hasVisibleItems=false;opt.$menu.children().each(function(){var $item=$(this),key=$item.data('contextMenuKey'),item=opt.items[key],disabled=($.isFunction(item.disabled)&&item.disabled.call($trigger,key,root))||item.disabled===true,visible;if($.isFunction(item.visible)){visible=item.visible.call($trigger,key,root);}else if(typeof item.visible!=='undefined'){visible=item.visible===true;}else{visible=true;}
3959if(visible){hasVisibleItems=true;}
3960$item[visible?'show':'hide']();$item[disabled?'addClass':'removeClass'](root.classNames.disabled);if($.isFunction(item.icon)){$item.removeClass(item._icon);var iconResult=item.icon.call(this,$trigger,$item,key,item);if(typeof(iconResult)==="string"){$item.addClass(iconResult);}else{$item.prepend(iconResult);}}
3961if(item.type){$item.find('input, select, textarea').prop('disabled',disabled);switch(item.type){case'text':case'textarea':item.$input.val(item.value||'');break;case'checkbox':case'radio':item.$input.val(item.value||'').prop('checked',!!item.selected);break;case'select':item.$input.val((item.selected===0?"0":item.selected)||'');break;}}
3962if(item.$menu){var subMenuHasVisibleItems=op.update.call($trigger,item,root);if(subMenuHasVisibleItems){hasVisibleItems=true;}}});return hasVisibleItems;},layer:function(opt,zIndex){var $layer=opt.$layer=$('<div id="context-menu-layer"></div>').css({height:$win.height(),width:$win.width(),display:'block',position:'fixed','z-index':zIndex,top:0,left:0,opacity:0,filter:'alpha(opacity=0)','background-color':'#000'}).data('contextMenuRoot',opt).insertBefore(this).on('contextmenu',handle.abortevent).on('mousedown',handle.layerClick);if(typeof document.body.style.maxWidth==='undefined'){$layer.css({'position':'absolute','height':$(document).height()});}
3963return $layer;},processPromises:function(opt,root,promise){opt.$node.addClass(root.classNames.iconLoadingClass);function completedPromise(opt,root,items){if(typeof items==='undefined'){errorPromise(undefined);}
3964finishPromiseProcess(opt,root,items);}
3965function errorPromise(opt,root,errorItem){if(typeof errorItem==='undefined'){errorItem={"error":{name:"No items and no error item",icon:"context-menu-icon context-menu-icon-quit"}};if(window.console){(console.error||console.log).call(console,'When you reject a promise, provide an "items" object, equal to normal sub-menu items');}}else if(typeof errorItem==='string'){errorItem={"error":{name:errorItem}};}
3966finishPromiseProcess(opt,root,errorItem);}
3967function finishPromiseProcess(opt,root,items){if(typeof root.$menu==='undefined'||!root.$menu.is(':visible')){return;}
3968opt.$node.removeClass(root.classNames.iconLoadingClass);opt.items=items;op.create(opt,root,true);op.update(opt,root);root.positionSubmenu.call(opt.$node,opt.$menu);}
3969promise.then(completedPromise.bind(this,opt,root),errorPromise.bind(this,opt,root));},activated:function(opt){var $menu=opt.$menu;var $menuOffset=$menu.offset();var winHeight=$(window).height();var winScrollTop=$(window).scrollTop();var menuHeight=$menu.height();if(menuHeight>winHeight){$menu.css({'height':winHeight+'px','overflow-x':'hidden','overflow-y':'auto','top':winScrollTop+'px'});}else if(($menuOffset.top<winScrollTop)||($menuOffset.top+menuHeight>winScrollTop+winHeight)){$menu.css({'top':winScrollTop+'px'});}}};function splitAccesskey(val){var t=val.split(/\s+/);var keys=[];for(var i=0,k;k=t[i];i++){k=k.charAt(0).toUpperCase();keys.push(k);}
3970return keys;}
3971$.fn.contextMenu=function(operation){var $t=this,$o=operation;if(this.length>0){if(typeof operation==='undefined'){this.first().trigger('contextmenu');}else if(typeof operation.x!=='undefined'&&typeof operation.y!=='undefined'){this.first().trigger($.Event('contextmenu',{pageX:operation.x,pageY:operation.y,mouseButton:operation.button}));}else if(operation==='hide'){var $menu=this.first().data('contextMenu')?this.first().data('contextMenu').$menu:null;if($menu){$menu.trigger('contextmenu:hide');}}else if(operation==='destroy'){$.contextMenu('destroy',{context:this});}else if($.isPlainObject(operation)){operation.context=this;$.contextMenu('create',operation);}else if(operation){this.removeClass('context-menu-disabled');}else if(!operation){this.addClass('context-menu-disabled');}}else{$.each(menus,function(){if(this.selector===$t.selector){$o.data=this;$.extend($o.data,{trigger:'demand'});}});handle.contextmenu.call($o.target,$o);}
3972return this;};$.contextMenu=function(operation,options){if(typeof operation!=='string'){options=operation;operation='create';}
3973if(typeof options==='string'){options={selector:options};}else if(typeof options==='undefined'){options={};}
3974var o=$.extend(true,{},defaults,options||{});var $document=$(document);var $context=$document;var _hasContext=false;if(!o.context||!o.context.length){o.context=document;}else{$context=$(o.context).first();o.context=$context.get(0);_hasContext=!$(o.context).is(document);}
3975switch(operation){case'update':if(_hasContext){op.update($context);}else{for(var menu in menus){if(menus.hasOwnProperty(menu)){op.update(menus[menu]);}}}
3976break;case'create':if(!o.selector){throw new Error('No selector specified');}
3977if(o.selector.match(/.context-menu-(list|item|input)($|\s)/)){throw new Error('Cannot bind to selector "'+o.selector+'" as it contains a reserved className');}
3978if(!o.build&&(!o.items||$.isEmptyObject(o.items))){throw new Error('No Items specified');}
3979counter++;o.ns='.contextMenu'+counter;if(!_hasContext){namespaces[o.selector]=o.ns;}
3980menus[o.ns]=o;if(!o.trigger){o.trigger='right';}
3981if(!initialized){var itemClick=o.itemClickEvent==='click'?'click.contextMenu':'mouseup.contextMenu';var contextMenuItemObj={'contextmenu:focus.contextMenu':handle.focusItem,'contextmenu:blur.contextMenu':handle.blurItem,'contextmenu.contextMenu':handle.abortevent,'mouseenter.contextMenu':handle.itemMouseenter,'mouseleave.contextMenu':handle.itemMouseleave};contextMenuItemObj[itemClick]=handle.itemClick;$document.on({'contextmenu:hide.contextMenu':handle.hideMenu,'prevcommand.contextMenu':handle.prevItem,'nextcommand.contextMenu':handle.nextItem,'contextmenu.contextMenu':handle.abortevent,'mouseenter.contextMenu':handle.menuMouseenter,'mouseleave.contextMenu':handle.menuMouseleave},'.context-menu-list').on('mouseup.contextMenu','.context-menu-input',handle.inputClick).on(contextMenuItemObj,'.context-menu-item');initialized=true;}
3982$context.on('contextmenu'+o.ns,o.selector,o,handle.contextmenu);if(_hasContext){$context.on('remove'+o.ns,function(){$(this).contextMenu('destroy');});}
3983switch(o.trigger){case'hover':$context.on('mouseenter'+o.ns,o.selector,o,handle.mouseenter).on('mouseleave'+o.ns,o.selector,o,handle.mouseleave);break;case'left':$context.on('click'+o.ns,o.selector,o,handle.click);break;case'touchstart':$context.on('touchstart'+o.ns,o.selector,o,handle.click);break;}
3984if(!o.build){op.create(o);}
3985break;case'destroy':var $visibleMenu;if(_hasContext){var context=o.context;$.each(menus,function(ns,o){if(!o){return true;}
3986if(!$(context).is(o.selector)){return true;}
3987$visibleMenu=$('.context-menu-list').filter(':visible');if($visibleMenu.length&&$visibleMenu.data().contextMenuRoot.$trigger.is($(o.context).find(o.selector))){$visibleMenu.trigger('contextmenu:hide',{force:true});}
3988try{if(menus[o.ns].$menu){menus[o.ns].$menu.remove();}
3989delete menus[o.ns];}catch(e){menus[o.ns]=null;}
3990$(o.context).off(o.ns);return true;});}else if(!o.selector){$document.off('.contextMenu .contextMenuAutoHide');$.each(menus,function(ns,o){$(o.context).off(o.ns);});namespaces={};menus={};counter=0;initialized=false;$('#context-menu-layer, .context-menu-list').remove();}else if(namespaces[o.selector]){$visibleMenu=$('.context-menu-list').filter(':visible');if($visibleMenu.length&&$visibleMenu.data().contextMenuRoot.$trigger.is(o.selector)){$visibleMenu.trigger('contextmenu:hide',{force:true});}
3991try{if(menus[namespaces[o.selector]].$menu){menus[namespaces[o.selector]].$menu.remove();}
3992delete menus[namespaces[o.selector]];}catch(e){menus[namespaces[o.selector]]=null;}
3993$document.off(namespaces[o.selector]);}
3994break;case'html5':if((!$.support.htmlCommand&&!$.support.htmlMenuitem)||(typeof options==='boolean'&&options)){$('menu[type="context"]').each(function(){if(this.id){$.contextMenu({selector:'[contextmenu='+this.id+']',items:$.contextMenu.fromMenu(this)});}}).css('display','none');}
3995break;default:throw new Error('Unknown operation "'+operation+'"');}
3996return this;};$.contextMenu.setInputValues=function(opt,data){if(typeof data==='undefined'){data={};}
3997$.each(opt.inputs,function(key,item){switch(item.type){case'text':case'textarea':item.value=data[key]||'';break;case'checkbox':item.selected=data[key]?true:false;break;case'radio':item.selected=(data[item.radio]||'')===item.value;break;case'select':item.selected=data[key]||'';break;}});};$.contextMenu.getInputValues=function(opt,data){if(typeof data==='undefined'){data={};}
3998$.each(opt.inputs,function(key,item){switch(item.type){case'text':case'textarea':case'select':data[key]=item.$input.val();break;case'checkbox':data[key]=item.$input.prop('checked');break;case'radio':if(item.$input.prop('checked')){data[item.radio]=item.value;}
3999break;}});return data;};function inputLabel(node){return(node.id&&$('label[for="'+node.id+'"]').val())||node.name;}
4000function menuChildren(items,$children,counter){if(!counter){counter=0;}
4001$children.each(function(){var $node=$(this),node=this,nodeName=this.nodeName.toLowerCase(),label,item;if(nodeName==='label'&&$node.find('input, textarea, select').length){label=$node.text();$node=$node.children().first();node=$node.get(0);nodeName=node.nodeName.toLowerCase();}
4002switch(nodeName){case'menu':item={name:$node.attr('label'),items:{}};counter=menuChildren(item.items,$node.children(),counter);break;case'a':case'button':item={name:$node.text(),disabled:!!$node.attr('disabled'),callback:(function(){return function(){$node.get(0).click();};})()};break;case'menuitem':case'command':switch($node.attr('type')){case undefined:case'command':case'menuitem':item={name:$node.attr('label'),disabled:!!$node.attr('disabled'),icon:$node.attr('icon'),callback:(function(){return function(){$node.get(0).click();};})()};break;case'checkbox':item={type:'checkbox',disabled:!!$node.attr('disabled'),name:$node.attr('label'),selected:!!$node.attr('checked')};break;case'radio':item={type:'radio',disabled:!!$node.attr('disabled'),name:$node.attr('label'),radio:$node.attr('radiogroup'),value:$node.attr('id'),selected:!!$node.attr('checked')};break;default:item=undefined;}
4003break;case'hr':item='-------';break;case'input':switch($node.attr('type')){case'text':item={type:'text',name:label||inputLabel(node),disabled:!!$node.attr('disabled'),value:$node.val()};break;case'checkbox':item={type:'checkbox',name:label||inputLabel(node),disabled:!!$node.attr('disabled'),selected:!!$node.attr('checked')};break;case'radio':item={type:'radio',name:label||inputLabel(node),disabled:!!$node.attr('disabled'),radio:!!$node.attr('name'),value:$node.val(),selected:!!$node.attr('checked')};break;default:item=undefined;break;}
4004break;case'select':item={type:'select',name:label||inputLabel(node),disabled:!!$node.attr('disabled'),selected:$node.val(),options:{}};$node.children().each(function(){item.options[this.value]=$(this).text();});break;case'textarea':item={type:'textarea',name:label||inputLabel(node),disabled:!!$node.attr('disabled'),value:$node.val()};break;case'label':break;default:item={type:'html',html:$node.clone(true)};break;}
4005if(item){counter++;items['key'+counter]=item;}});return counter;}
4006$.contextMenu.fromMenu=function(element){var $this=$(element),items={};menuChildren(items,$this.children());return items;};$.contextMenu.defaults=defaults;$.contextMenu.types=types;$.contextMenu.handle=handle;$.contextMenu.op=op;$.contextMenu.menus=menus;});
4007/*! jQuery UI - v1.12.1 - 2016-09-16
4008 * http://jqueryui.com
4009 * Includes: position.js
4010 * Copyright jQuery Foundation and other contributors; Licensed MIT */
4011(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory);}else{factory(jQuery);}}(function($){$.ui=$.ui||{};var version=$.ui.version="1.12.1";/*!
4012     * jQuery UI Position 1.12.1
4013     * http://jqueryui.com
4014     *
4015     * Copyright jQuery Foundation and other contributors
4016     * Released under the MIT license.
4017     * http://jquery.org/license
4018     *
4019     * http://api.jqueryui.com/position/
4020     */
4021(function(){var cachedScrollbarWidth,max=Math.max,abs=Math.abs,rhorizontal=/left|center|right/,rvertical=/top|center|bottom/,roffset=/[\+\-]\d+(\.[\d]+)?%?/,rposition=/^\w+/,rpercent=/%$/,_position=$.fn.position;function getOffsets(offsets,width,height){return[parseFloat(offsets[0])*(rpercent.test(offsets[0])?width / 100:1),parseFloat(offsets[1])*(rpercent.test(offsets[1])?height / 100:1)];}
4022function parseCss(element,property){return parseInt($.css(element,property),10)||0;}
4023function getDimensions(elem){var raw=elem[0];if(raw.nodeType===9){return{width:elem.width(),height:elem.height(),offset:{top:0,left:0}};}
4024if($.isWindow(raw)){return{width:elem.width(),height:elem.height(),offset:{top:elem.scrollTop(),left:elem.scrollLeft()}};}
4025if(raw.preventDefault){return{width:0,height:0,offset:{top:raw.pageY,left:raw.pageX}};}
4026return{width:elem.outerWidth(),height:elem.outerHeight(),offset:elem.offset()};}
4027$.position={scrollbarWidth:function(){if(cachedScrollbarWidth!==undefined){return cachedScrollbarWidth;}
vendor: 5,628 bytes, lines 4028-4044
4028var w1,w2,div=$("<div "+"style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'>"+"<div style='height:100px;width:auto;'></div></div>"),innerDiv=div.children()[0];$("body").append(div);w1=innerDiv.offsetWidth;div.css("overflow","scroll");w2=innerDiv.offsetWidth;if(w1===w2){w2=div[0].clientWidth;}
4029div.remove();return(cachedScrollbarWidth=w1-w2);},getScrollInfo:function(within){var overflowX=within.isWindow||within.isDocument?"":within.element.css("overflow-x"),overflowY=within.isWindow||within.isDocument?"":within.element.css("overflow-y"),hasOverflowX=overflowX==="scroll"||(overflowX==="auto"&&within.width<within.element[0].scrollWidth),hasOverflowY=overflowY==="scroll"||(overflowY==="auto"&&within.height<within.element[0].scrollHeight);return{width:hasOverflowY?$.position.scrollbarWidth():0,height:hasOverflowX?$.position.scrollbarWidth():0};},getWithinInfo:function(element){var withinElement=$(element||window),isWindow=$.isWindow(withinElement[0]),isDocument=!!withinElement[0]&&withinElement[0].nodeType===9,hasOffset=!isWindow&&!isDocument;return{element:withinElement,isWindow:isWindow,isDocument:isDocument,offset:hasOffset?$(element).offset():{left:0,top:0},scrollLeft:withinElement.scrollLeft(),scrollTop:withinElement.scrollTop(),width:withinElement.outerWidth(),height:withinElement.outerHeight()};}};$.fn.position=function(options){if(!options||!options.of){return _position.apply(this,arguments);}
4030options=$.extend({},options);var atOffset,targetWidth,targetHeight,targetOffset,basePosition,dimensions,target=$(options.of),within=$.position.getWithinInfo(options.within),scrollInfo=$.position.getScrollInfo(within),collision=(options.collision||"flip").split(" "),offsets={};dimensions=getDimensions(target);if(target[0].preventDefault){options.at="left top";}
4031targetWidth=dimensions.width;targetHeight=dimensions.height;targetOffset=dimensions.offset;basePosition=$.extend({},targetOffset);$.each(["my","at"],function(){var pos=(options[this]||"").split(" "),horizontalOffset,verticalOffset;if(pos.length===1){pos=rhorizontal.test(pos[0])?pos.concat(["center"]):rvertical.test(pos[0])?["center"].concat(pos):["center","center"];}
4032pos[0]=rhorizontal.test(pos[0])?pos[0]:"center";pos[1]=rvertical.test(pos[1])?pos[1]:"center";horizontalOffset=roffset.exec(pos[0]);verticalOffset=roffset.exec(pos[1]);offsets[this]=[horizontalOffset?horizontalOffset[0]:0,verticalOffset?verticalOffset[0]:0];options[this]=[rposition.exec(pos[0])[0],rposition.exec(pos[1])[0]];});if(collision.length===1){collision[1]=collision[0];}
4033if(options.at[0]==="right"){basePosition.left+=targetWidth;}else if(options.at[0]==="center"){basePosition.left+=targetWidth / 2;}
4034if(options.at[1]==="bottom"){basePosition.top+=targetHeight;}else if(options.at[1]==="center"){basePosition.top+=targetHeight / 2;}
4035atOffset=getOffsets(offsets.at,targetWidth,targetHeight);basePosition.left+=atOffset[0];basePosition.top+=atOffset[1];return this.each(function(){var collisionPosition,using,elem=$(this),elemWidth=elem.outerWidth(),elemHeight=elem.outerHeight(),marginLeft=parseCss(this,"marginLeft"),marginTop=parseCss(this,"marginTop"),collisionWidth=elemWidth+marginLeft+parseCss(this,"marginRight")+
4036scrollInfo.width,collisionHeight=elemHeight+marginTop+parseCss(this,"marginBottom")+
4037scrollInfo.height,position=$.extend({},basePosition),myOffset=getOffsets(offsets.my,elem.outerWidth(),elem.outerHeight());if(options.my[0]==="right"){position.left-=elemWidth;}else if(options.my[0]==="center"){position.left-=elemWidth / 2;}
4038if(options.my[1]==="bottom"){position.top-=elemHeight;}else if(options.my[1]==="center"){position.top-=elemHeight / 2;}
4039position.left+=myOffset[0];position.top+=myOffset[1];collisionPosition={marginLeft:marginLeft,marginTop:marginTop};$.each(["left","top"],function(i,dir){if($.ui.position[collision[i]]){$.ui.position[collision[i]][dir](position,{targetWidth:targetWidth,targetHeight:targetHeight,elemWidth:elemWidth,elemHeight:elemHeight,collisionPosition:collisionPosition,collisionWidth:collisionWidth,collisionHeight:collisionHeight,offset:[atOffset[0]+myOffset[0],atOffset[1]+myOffset[1]],my:options.my,at:options.at,within:within,elem:elem});}});if(options.using){using=function(props){var left=targetOffset.left-position.left,right=left+targetWidth-elemWidth,top=targetOffset.top-position.top,bottom=top+targetHeight-elemHeight,feedback={target:{element:target,left:targetOffset.left,top:targetOffset.top,width:targetWidth,height:targetHeight},element:{element:elem,left:position.left,top:position.top,width:elemWidth,height:elemHeight},horizontal:right<0?"left":left>0?"right":"center",vertical:bottom<0?"top":top>0?"bottom":"middle"};if(targetWidth<elemWidth&&abs(left+right)<targetWidth){feedback.horizontal="center";}
4040if(targetHeight<elemHeight&&abs(top+bottom)<targetHeight){feedback.vertical="middle";}
4041if(max(abs(left),abs(right))>max(abs(top),abs(bottom))){feedback.important="horizontal";}else{feedback.important="vertical";}
4042options.using.call(this,props,feedback);};}
4043elem.offset($.extend(position,{using:using}));});};$.ui.position={fit:{left:function(position,data){var within=data.within,withinOffset=within.isWindow?within.scrollLeft:within.offset.left,outerWidth=within.width,collisionPosLeft=position.left-data.collisionPosition.marginLeft,overLeft=withinOffset-collisionPosLeft,overRight=collisionPosLeft+data.collisionWidth-outerWidth-withinOffset,newOverRight;if(data.collisionWidth>outerWidth){if(overLeft>0&&overRight<=0){newOverRight=position.left+overLeft+data.collisionWidth-outerWidth-
4044withinOffset;position.left+=overLeft-newOverRight;}else if(overRight>
40440&&overLeft<=0){position.left=withinOffset;}else{if(overLeft>overRight){position.left=withinOffset+outerWidth-data.collisionWidth;}else{position.left=withinOffset;}}}else if(overLeft>0){position.left+=overLeft;}else if(overRight>0){position.left-=overRight;}else{position.left=max(position.left-collisionPosLeft,position.left);}},top:function(position,data){var within=data.within,withinOffset=within.isWindow?within.scrollTop:within.offset.top,outerHeight=data.within.height,collisionPosTop=position.top-data.collisionPosition.marginTop,overTop=withinOffset-collisionPosTop,overBottom=collisionPosTop+data.collisionHeight-outerHeight-withinOffset,newOverBottom;if(data.collisionHeight>outerHeight){if(overTop>0&&overBottom<=0){newOverBottom=position.top+overTop+data.collisionHeight-outerHeight-
4045withinOffset;position.top+=overTop-newOverBottom;}else if(overBottom>0&&overTop<=0){position.top=withinOffset;}else{if(overTop>overBottom){position.top=withinOffset+outerHeight-data.collisionHeight;}else{position.top=withinOffset;}}}else if(overTop>0){position.top+=overTop;}else if(overBottom>0){position.top-=overBottom;}else{position.top=max(position.top-collisionPosTop,position.top);}}},flip:{left:function(position,data){var within=data.within,withinOffset=within.offset.left+within.scrollLeft,outerWidth=within.width,offsetLeft=within.isWindow?within.scrollLeft:within.offset.left,collisionPosLeft=position.left-data.collisionPosition.marginLeft,overLeft=collisionPosLeft-offsetLeft,overRight=collisionPosLeft+data.collisionWidth-outerWidth-offsetLeft,myOffset=data.my[0]==="left"?-data.elemWidth:data.my[0]==="right"?data.elemWidth:0,atOffset=data.at[0]==="left"?data.targetWidth:data.at[0]==="right"?-data.targetWidth:0,offset=-2*data.offset[0],newOverRight,newOverLeft;if(overLeft<0){newOverRight=position.left+myOffset+atOffset+offset+data.collisionWidth-
4046outerWidth-withinOffset;if(newOverRight<0||newOverRight<abs(overLeft)){position.left+=myOffset+atOffset+offset;}}else if(overRight>0){newOverLeft=position.left-data.collisionPosition.marginLeft+myOffset+
4047atOffset+offset-offsetLeft;if(newOverLeft>0||abs(newOverLeft)<overRight){position.left+=myOffset+atOffset+offset;}}},top:function(position,data){var within=data.within,withinOffset=within.offset.top+within.scrollTop,outerHeight=within.height,offsetTop=within.isWindow?within.scrollTop:within.offset.top,collisionPosTop=position.top-data.collisionPosition.marginTop,overTop=collisionPosTop-offsetTop,overBottom=collisionPosTop+data.collisionHeight-outerHeight-offsetTop,top=data.my[1]==="top",myOffset=top?-data.elemHeight:data.my[1]==="bottom"?data.elemHeight:0,atOffset=data.at[1]==="top"?data.targetHeight:data.at[1]==="bottom"?-data.targetHeight:0,offset=-2*data.offset[1],newOverTop,newOverBottom;if(overTop<0){newOverBottom=position.top+myOffset+atOffset+offset+data.collisionHeight-
4048outerHeight-withinOffset;if(newOverBottom<0||newOverBottom<abs(overTop)){position.top+=myOffset+atOffset+offset;}}else if(overBottom>0){newOverTop=position.top-data.collisionPosition.marginTop+myOffset+atOffset+
4049offset-offsetTop;if(newOverTop>0||abs(newOverTop)<overBottom){position.top+=myOffset+atOffset+offset;}}}},flipfit:{left:function(){$.ui.position.flip.left.apply(this,arguments);$.ui.position.fit.left.apply(this,arguments);},top:function(){$.ui.position.flip.top.apply(this,arguments);$.ui.position.fit.top.apply(this,arguments);}}};})();var position=$.ui.position;}));
4050Eco.Organism.Container=Eco.OrganismDataStore.extend({_containerData:null,_maskData:false,_childProperties:null,__construct:function(jqel_organism){this._parent(jqel_organism);this._containerData={};this._childProperties=[];if(jqel_organism.data('maskData')){this._maskData=true;}},_initializeOwnEntityName:function(){var name=this.jqel.data('name');if(!name){permaclog(this.jqel);throw Error('Invalid or missing container name `'+name+'` for the ^^^ container organism.');}
4051return name;},initializeValue:function(valuesByReference,isRootNodeOfInitializationCall){if(this._hasInitializedValue!==true){var passThroughValuesByReference=valuesByReference;if(this._maskData){passThroughValuesByReference={};Eco.Util.setNestedKey(valuesByReference,this.getOwnEntityName(),passThroughValuesByReference);}
4052this._parent(passThroughValuesByReference);if(this._maskData){if(!this._containerData){this._containerData={};}
4053this._containerData=Basix.extend(Basix.EXTEND_RECURSIVE,{},passThroughValuesByReference,this._containerData);}}else{this._parent(valuesByReference,isRootNodeOfInitializationCall);}},setValueFromInput:function(value,sourceOrganism,name,originalSourceOrganism,inputSourceOrganism){if(this._maskData){if(this.getOwnEntityName()!==name&&name){let newValue=value.getCleanValue();if(this._containerData[name]===newValue){return;}
4054if(typeof(newValue)=='object'){if(JSON.stringify(newValue)===JSON.stringify(this._containerData[name])){return;}}
4055this._containerData[name]=value.getCleanValue();this._parent(value,sourceOrganism,name,originalSourceOrganism,inputSourceOrganism);}else{clog("force setting full values",this.jqel.data('external_name'));this._containerData=value.getCleanValue();}
4056var duplicateData=Basix.extend({},this._containerData);this._parent(new Eco.OrganismValue(duplicateData,duplicateData),this,this.getOwnEntityName(),originalSourceOrganism,inputSourceOrganism);}else{if(this.getOwnEntityName()!==name&&name){if(this._childProperties.indexOf(name)===-1){this._childProperties.push(name);}}
4057this._parent(value,sourceOrganism,name,originalSourceOrganism,inputSourceOrganism);}},getValue:function(name){if(this._maskData){if(!name||name===this.getOwnEntityName()){var duplicateData=Basix.extend({},this._containerData);return duplicateData;}
4058if(this._containerData.hasOwnProperty(name)){return this._containerData[name];}
4059return null;}else{if(this.getOwnEntityName()==name||!name){var values={};for(var i=0;i<this._childProperties.length;i++){var prop=this._childProperties[i];values[prop]=this._parent(prop);}
4060return values;}
4061return this._parent(name);}},readDomValue:function(){return undefined;},val:function(value){if(value===undefined){return this.getValue();}else{if(jQuery.isPlainObject(value)){var self=this;jQuery.each(value,function(subName,subValue){var jqel_subElement=self.jqel.find('[data-name='+subName+']');if(jqel_subElement.size()){var organism=jqel_subElement.data('organism');if(organism){if(!organism.val){cwarn('Organism does not have a val() function. Organism: '+organism.getOwnEntityName(),organism);}else{organism.val(subValue);}}else{cwarn('Trying to set sub value '+subName+' in a val() call on container '+self.getOwnEntityName()+'. The element was found but the organism could not be found.');}}else{cwarn('Trying to set sub value '+subName+' in a val() call on container '+self.getOwnEntityName()+' but the element can not be found.');}});}else{cwarn('val() called on a container but a non object based value was passed. Entity: ',this.getOwnEntityName,value);}}},focus:function(onlyIfSingle){var jqel_fields=this.jqel.find('[class*=molecule_field-]').not(this.jqel.find('.molecule_field-hidden'));if(jqel_fields.length===1||!onlyIfSingle){var jqel_firstField=jqel_fields.first();if(jqel_firstField&&jqel_firstField.length){var organism=jqel_firstField.data('organism');clog('organism',jqel_firstField,organism);if(organism){organism.focus();}}}}});
4062MMI.Util.namespace('Be.Genome.Item.Layout.Edit');Be.Genome.Item.Layout.Edit={_pageStructure:[],_scrollToItem:false,_scrollTimer:0,_layoutEditorSettings:{},_listOfFields:[],_currentCutElement:false,_currentCutData:{},_treeScrollTop:0,ACTIVE_CLASS:'htmlEditorActive',_jqel:false,_pageRootScrollingElement:jQuery("html, body"),createLayoutTree:function(jqel){this._listOfFields=[];this._jqel=jqel;this._pageStructure=this.refreshLayoutData();var self=this;var jqel_tree=jQuery('<ul class="hasChildren treeRoot"></ul>');var depth=1;
4062jQuery.each(this._pageStructure,function(n,item){jqel_tree.append(self.generateLayoutTreeNode(item,depth));});jqel_tree.data('live_click_handler','beLayoutEditTreeNodeClick');jqel_tree.data('live_hover_handler','beLayoutEditTreeNodeHover');jqel.html('');jqel.append(jqel_tree);this.initializeContextMenu();},getFlatListOfFieldnames:function(){return this._listOfFields;},duplicateField:function(jqel_target){alert('Not yet implemented');},setCurrentCutElement:function(jqel_node){this._currentCutElement=jqel_node;var jqel_tree;if(jqel_node){jqel_tree=jqel_node.parents('.treeRoot').first();this._currentCutData=jqel_node.data();}else{jqel_tree=jQuery('.treeRoot').first();this._currentCutData={};}
4063jqel_tree.find('.currentCutItem').removeClass('currentCutItem');jqel_tree.find('.canNotPaste').removeClass('canNotPaste');jqel_tree.find('.pasteContainer').removeClass('pasteContainer');if(jqel_node){jqel_node.addClass('currentCutItem');var data=jqel_node.ecoData();var organismType=data.organismType;var jqel_containers=jqel_tree.find('.canHaveChildren');jqel_containers.each(function(){var jqel=jQuery(this);var allowed=jqel.ecoData('allowedChildren');if(allowed&&allowed.hasOwnProperty(organismType)){jqel.removeClass('canNotPaste');jqel.addClass('pasteContainer');}else{jqel.addClass('canNotPaste');jqel.removeClass('pasteContainer');jqel.find('.nodeChildren').first().children('.node').addClass('canNotPaste');}});}},initializeContextMenu:function(){var self=this;jQuery.contextMenu({selector:'.be_pageLayoutEditorToolsPanel .node',items:{scrollTo:{name:'Scroll To',callback:function(key,opt){var trigger=opt.$trigger;var data=trigger.ecoData();jQuery('.be_layoutEdit_hover').removeClass('be_layoutEdit_hover');data.jqel.addClass('be_layoutEdit_hover');self.scrollToItem(data.jqel);},icon:function(opt,$itemElement,itemKey,item){if(opt.name){$itemElement.html('<i class="eco eco-menu"></i> '+opt.name);}
4064return'';},disabled:false},insertNewBefore:{name:'New Item Before',callback:function(key,opt){var targetNode=opt.$trigger;var parentNode=targetNode.parents('.node').first();if(!parentNode){cwarn('Somehow insertNewBefore was called on the top level of the menu. This should never happen, check the disabled callback logic.');return;}
4065var targetNodeData=targetNode.data();var parentNodeData=parentNode.data();var organismType=parentNodeData.organismType;var jqel_targetNode=targetNodeData.jqel;var jqel_parentNode=parentNodeData.jqel;Be.Genome.Item.Layout.Edit.addOrganismToLayoutDialog(jqel_parentNode,organismType,{target:jqel_targetNode,placement:'before'});},disabled:function(key,opt){var relativeBasisItem=opt.$trigger;var data=relativeBasisItem.data();var jqel_target=data.jqel;if(jqel_target.hasClass('ecoLayoutEditableContainer')){return true;}
4066return false;},icon:function(opt,$itemElement,itemKey,item){if(opt.name){$itemElement.html('<i class="eco eco-add-o"></i> '+opt.name);}
4067return'';}},insertNewAfter:{name:'New Item After',callback:function(key,opt){var targetNode=opt.$trigger;var parentNode=targetNode.parents('.node').first();if(!parentNode){cwarn('Somehow insertNewAfter was called on the top level of the menu. This should never happen, check the disabled callback logic.');return;}
4068var targetNodeData=targetNode.data();var parentNodeData=parentNode.data();var organismType=parentNodeData.organismType;var jqel_targetNode=targetNodeData.jqel;var jqel_parentNode=parentNodeData.jqel;Be.Genome.Item.Layout.Edit.addOrganismToLayoutDialog(jqel_parentNode,organismType,{target:jqel_targetNode,placement:'after'});},disabled:function(key,opt){var relativeBasisItem=opt.$trigger;var data=relativeBasisItem.data();var jqel_target=data.jqel;if(jqel_target.hasClass('ecoLayoutEditableContainer')){return true;}
4069return false;},icon:function(opt,$itemElement,itemKey,item){if(opt.name){$itemElement.html('<i class="eco eco-add-o"></i> '+opt.name);}
4070return'';}},edit:{name:'Edit This Item',callback:function(key,opt){var trigger=opt.$trigger;var data=trigger.ecoData();self.selectOrganism(data.jqel,data,trigger);},disabled:function(key,opt){return(self._currentCutElement!==false);},icon:function(opt,$itemElement,itemKey,item){if(opt.name){$itemElement.html('<i class="eco eco-edit"></i> '+opt.name);}
4071return'';}},delete:{name:'Delete This Item',callback:function(key,opt){var jqel_trigger=opt.$trigger;var data=jqel_trigger.ecoData();clog(jqel_trigger,data,data.id);var jqel_element=jQuery('[name='+data.id+'],[data-name='+data.id+']');clog('el to delete',jqel_element);if(!jqel_element.size()){return;}
4072var jqel_treeRoot=jqel_trigger.parents('.treeRoot');jqel_treeRoot.find('.selected').removeClass('selected');jqel_trigger.addClass('selected');Be.Genome.Item.Layout.Edit.deleteOrganismFromLayout(jqel_element);},icon:function(opt,$itemElement,itemKey,item){if(opt.name){$itemElement.html('<i class="eco eco-trash-can"></i> '+opt.name);}
4073return'';}}
4073,cut:{name:'Move this item to...',callback:function(key,opt){var trigger=opt.$trigger;self.setCurrentCutElement(trigger);},visible:function(key,opt){return(self._currentCutElement===false);},icon:function(opt,$itemElement,itemKey,item){if(opt.name){$itemElement.html('<i class="eco eco-external-link"></i> '+opt.name);}
4074return'';},disabled:false},paste:{name:"Place Item Inside",callback:function(key,opt){var trigger=opt.$trigger;self.moveItem(self._currentCutElement,trigger,'inside');},visible:function(key,opt){if(self._currentCutElement===false){return false;}
4075return true;},disabled:function(key,opt){var trigger=opt.$trigger;if(trigger.hasClass('pasteContainer')){return false;}
4076return true;},icon:function(opt,$itemElement,itemKey,item){if(opt.name){$itemElement.html('<i class="eco eco-input"></i> '+opt.name);}
4077return'';}},pasteBefore:{name:"Place Item Before",callback:function(key,opt){var trigger=opt.$trigger;self.moveItem(self._currentCutElement,trigger,'before');},visible:function(key,opt){if(self._currentCutElement===false){return false;}
4078return true;},icon:function(opt,$itemElement,itemKey,item){if(opt.name){$itemElement.html('<i class="eco eco-arrow-fancy-left"></i> '+opt.name);}
4079return'';},disabled:function(key,opt){var trigger=opt.$trigger;if(trigger.parents('.node').first().hasClass('pasteContainer')){return false;}else{return true;}}},pasteAfter:{name:"Place Item After",callback:function(key,opt){var trigger=opt.$trigger;self.moveItem(self._currentCutElement,trigger,'after');},visible:function(key,opt){if(self._currentCutElement===false){return false;}
4080return true;},icon:function(opt,$itemElement,itemKey,item){if(opt.name){$itemElement.html('<i class="eco eco-arrow-fancy-right"></i> '+opt.name);}
4081return'';},disabled:function(key,opt){var trigger=opt.$trigger;if(trigger.parents('.node').first().hasClass('pasteContainer')){return false;}else{return true;}}},open:{name:'Open Container',callback:function(key,opt){var trigger=opt.$trigger;trigger.addClass('open');self.recordTreeStates();},visible:function(key,opt){var trigger=opt.$trigger;if(trigger.hasClass('canHaveChildren')){if(!trigger.hasClass('open')){return true;}}
4082return false;},icon:function(opt,$itemElement,itemKey,item){if(opt.name){$itemElement.html('<i class="eco eco-chevron-down"></i> '+opt.name);}
4083return'';},disabled:false},close:{name:'Close Container',callback:function(key,opt){var trigger=opt.$trigger;trigger.removeClass('open');self.recordTreeStates();},visible:function(key,opt){var trigger=opt.$trigger;if(trigger.hasClass('canHaveChildren')){if(trigger.hasClass('open')){return true;}}
4084return false;},icon:function(opt,$itemElement,itemKey,item){if(opt.name){$itemElement.html('<i class="eco eco-chevron-up"></i> '+opt.name);}
4085return'';},disabled:false},cancel:{name:'Cancel Cut/Paste',callback:function(key,opt){self.setCurrentCutElement(false);},visible:function(key,opt){return(self._currentCutElement!==false);},icon:function(opt,$itemElement,itemKey,item){if(opt.name){$itemElement.html('<i class="eco eco-clear-o"></i> '+opt.name);}
4086return'';},disabled:false}}});},moveItem:function(jqel_movingItem,jqel_pasteLocationItem,position){var depth=1;if(jqel_movingItem.length){var jqel_movingElement=jqel_movingItem.data("jqel");}
4087if(!jqel_movingElement){jqel_movingElement=this._currentCutData.jqel;}
4088var jqel_pasteLocationElement=jqel_pasteLocationItem.data("jqel");switch(position){case'before':jqel_movingItem.detach();jqel_movingItem.insertBefore(jqel_pasteLocationItem);jqel_movingElement.detach();jqel_movingElement.insertBefore(jqel_pasteLocationElement);depth=jqel_pasteLocationItem.data('depth');break;case'after':jqel_movingItem.detach();jqel_movingItem.insertAfter(jqel_pasteLocationItem);jqel_movingElement.detach();jqel_movingElement.insertAfter(jqel_pasteLocationElement);depth=jqel_pasteLocationItem.data('depth');break;case'content':let jqel_children=jqel_pasteLocationItem.find('.nodeChildren').first();var jqel_fromChildren=jqel_movingItem.find('.nodeChildren').first();var jqel_movingFromChildContainer=jqel_movingElement.children('.molecule_children').first();var jqel_movingToChildContainer=jqel_pasteLocationElement.children('.molecule_children').first();var childrenToMove=jqel_movingFromChildContainer.children().detach();jqel_movingToChildContainer.append(childrenToMove);var jqel_childItemsToMove=jqel_fromChildren.children().detach();jqel_children.append(jqel_childItemsToMove);break;default:if(!jqel_pasteLocationItem){cwarn('invalid paste location');}else{let jqel_children=jqel_pasteLocationItem.find('.nodeChildren').first();jqel_movingItem.detach();jqel_children.append(jqel_movingItem);var jqel_elementChildren=jqel_pasteLocationElement.find('.molecule_children').first();if(jqel_elementChildren.size()===0){jqel_elementChildren=jQuery('<div class="molecule_children"></div>');jqel_pasteLocationElement.find('label').first().after(jqel_elementChildren);}
4089jqel_movingElement.detach();jqel_movingElement.appendTo(jqel_elementChildren);depth=jqel_pasteLocationItem.data('depth')+1;}
4090break;}
4091jqel_movingItem.data('jqel',jqel_movingElement);this.setCurrentCutElement(false);this.saveLayoutStructure(jqel_movingElement);},recordTreeStates:function(){var classesToWatch=['selected','open'];
4091var jqel_tree=jQuery('.be_pageLayoutEditTree');this._treeScrollTop=jqel_tree.scrollTop();var jqel_nodes=this._jqel.find('.node');var states={};jqel_nodes.each(function(){var jqel_node=jQuery(this);var id=jqel_node.data('id');states[id]=[];jQuery.each(classesToWatch,function(n,className){if(jqel_node.hasClass(className)){states[id].push(className);}});});this._treeStates=states;var preferenceName='layoutTree_'+this._jqel.ecoData('item_id');var app=MMI.App.get();app.setPreference(preferenceName,states);},restoreTreeStates:function(){var states=this._treeStates;var jqel_tree=jQuery('.be_pageLayoutEditTree');if(!states){this._jqel.ecoData('item_id');var preferenceName='layoutTree_'+this._jqel.ecoData('item_id');var app=MMI.App.get();states=app.getPreference(preferenceName);if(!states){states={};}}
4092var jqel_nodes=this._jqel.find('.node');jqel_nodes.each(function(n,node){var jqel_node=jQuery(this);var id=jqel_node.data('id');var classes=states[id];if(classes){if(classes.length){jqel_node.addClass(classes.join(' '));}}});jqel_tree.scrollTop(this._treeScrollTop);},updateLayoutTree:function(){if(this._jqel){this.recordTreeStates();this.createLayoutTree(this._jqel);this.restoreTreeStates();}},generateLayoutTreeNode:function(nodeData,depth){depth=parseInt(depth,10);var jqel_node=jQuery('<li class="node live_click live_hover" id="node_'+nodeData.id+'"></li>');jQuery.each(nodeData,function(key,val){if(key!=='children'){jqel_node.data(key,val);}});var jqel_title=jQuery('<div class="nodeTitle"></div>');jqel_title.append('<div class="nodeText" title="'+nodeData.externalName+'">'+nodeData.text+'</div>');for(var i=0;i<depth;i++){jqel_title.prepend('<div class="depthSpacer"><div class="line"></div></div>');}
4093var icon='eco eco-input';switch(nodeData.organismType){case'equation':icon='betool betool-function';break;case'container':case'repeat_container':icon='betool betool-folder-open-o';break;case'tabs':case'tabs_progress':icon='betool betool-tab';break;case'repeat_field':case'repeat':icon='betool betool-arrow-repeat';break;case'page':case'form':icon='betool betool-file-o';break;case'error':icon='eco eco-error-o';break;case'content':icon='betool betool-file-text-o';break;default:}
4094if(icon){jqel_title.find('.depthSpacer').last().append('<i class="'+icon+'"></i>');}else{jqel_title.find('.depthSpacer').last().append('<div class="dot"></div>');}
4095jqel_title.find('.depthSpacer').last().find('.line').remove();jqel_node.append(jqel_title);if(nodeData.jqel.hasClass('mod-force_hidden')){jqel_title.find('.nodeText').addClass('elementIsHidden');}else{jqel_title.find('.nodeText').removeClass('elementIsHidden');}
4096var settings=Be.Genome.Item.Layout.Edit.getSettings();var allowedChildren=settings.allowedChildren;var organismType=nodeData.organismType;var self=this;if((nodeData.children&&nodeData.children.length)||allowedChildren[organismType]){if(depth===1){jqel_node.addClass('open');}
4097if(nodeData.children.length){jqel_node.addClass('hasChildren');}
4098jqel_title.append('<div class="openClose live_click" data-live_click_handler="toggleEditLayoutTreeNode"><i class="eco eco-chevron-down"></i></div>');var jqel_ul=jQuery('<ul class="nodeChildren"></ul>');jQuery.each(nodeData.children,function(childNum,child){var jqel_child=self.generateLayoutTreeNode(child,depth+1);jqel_ul.append(jqel_child);});jqel_node.append(jqel_ul);}
4099if(allowedChildren[organismType]){jqel_node.data('canHaveChildren',true);jqel_node.addClass('canHaveChildren');jqel_node.data('allowedChildren',allowedChildren[organismType]);jqel_node.find('.nodeChildren').first().data('allowedChildren',allowedChildren[organismType]);jqel_node.find('.nodeTitle').first().append('<div class="addNewItem live_click" data-live_click_handler="editLayoutAddNewChildToNode"><i class="eco eco-add-outline"></i></div>');}
4100jqel_node.data("depth",depth);jqel_node.addClass('depth_'+depth);if(depth>1){jqel_node.addClass('canBeMoved');}
4101return jqel_node;},getSettings:function(){return Be.Genome.Item.Layout.Edit._layoutEditorSettings;},refreshLayoutData:function(){var data=[];var jqel_roots=jQuery('.ecoLayoutEditableContainer');var self=this;if(jqel_roots.size()){jqel_roots.each(function(){var jqel_item=jQuery(this);var thisItem=self.makeDataFromOrganism(jQuery(this));thisItem.item_id=jqel_item.mmiData('item_id');if(!thisItem.item_id){thisItem.item_id=jqel_item.mmiData('page_item_id');}
4102thisItem.isLayout=true;jqel_item.data('isLayout',true);thisItem.layout_field=jqel_item.mmiData('layout_field');thisItem.item_name=jqel_item.mmiData('item_name');if(thisItem.item_name){thisItem.text=thisItem.item_name;}
4103data.push(thisItem);});}
4104return data;},makeDataFromOrganism:function(jqel,usedIds){if(!usedIds){usedIds=[];}
4105var self=this;var name=jqel.data('name');if(!name){name=jqel.attr('name');}
4106if(!name){name='organism_'+Eco.Util.getRandomString(16);jqel.attr('name',name);}
4107var type='';var classes=jqel.attr('class').split(' ');jQuery.each(classes,function(n,c){var parts=c.split('_');
4107if(parts.shift()=='organism'){type=parts.join('_');}});var organismType=jqel.data('ecoFieldType');if(!organismType){var parts=type.split('-');if(parts[0]=='field'){parts.shift();}
4108organismType=parts.join('-');}
4109if(usedIds.indexOf(name)>-1){if(name.indexOf('_ref')===-1){cwarn("ERROR: Trying to make data from organism stack but this name/id has already been used.",name);return false;}}
4110usedIds.push(name);var nameParts=name.split('_');nameParts.shift();var fieldName=nameParts.join('_');var fieldType='input';if(jqel.hasClass('ecoLayoutEditableContainer')){fieldType='page';}else if(type.indexOf('container')!=-1){fieldType='container';}
4111var label=jQuery.trim(jqel.find('label').not(jqel.find('[class*=organism_] label')).first().text());if(!label){label=jqel.find('[data-label]').addBack('[data-label]').first().data('label');}
4112if(!label){if(jqel.hasClass('molecule_button')){label=jqel.find('input').val();}}
4113if(!label){label=Be.Genome.Item.Layout.Edit.getFieldTypeName(type);}
4114var externalName=jqel.data('external_name');var data={id:name,text:label,icon:'',type:fieldType,organismType:organismType,jqel:jqel,children:[],externalName:externalName,data:{itemId:jqel.mmiData('item_id'),fieldName:fieldName}};var notChildren=jqel.find('[class*=organism_] [class*=organism_]');var jqel_children=jqel.find('[class*=organism_]').not(notChildren).not('.eco_hideFromEditor').not('.eco_hideFromEditor [class*=organism_]');if(jqel_children.size()){jqel_children.each(function(){var childData=self.makeDataFromOrganism(jQuery(this),usedIds);if(childData){data.children.push(childData);}});}
4115jqel.addClass('isLayoutEditable');self._listOfFields=usedIds;return data;},getFieldTypeName:function(type){switch(type){default:var parts=type.split('-');return parts.join(' ');}},selectOrganism:function(jqel,data,jqel_treeNode){jQuery('body').addClass('be_layoutEditor_organismIsActive');jQuery('.notActiveOrganism').removeClass('notActiveOrganism');var jqel_bottomElements=jQuery('.isLayoutEditable:not('+':has(".isLayoutEditable")'+')');jqel_bottomElements.addClass('notActiveOrganism');jqel.removeClass('notActiveOrganism');jqel.find('.isLayoutEditable').removeClass('notActiveOrganism');Be.Genome.Item.Layout.Edit.scrollToItem(jqel);jQuery('.be_pageLayoutEditorToolsPanel_structure').addClass('forceClose');setTimeout(function(){jQuery('.be_pageLayoutEditorToolsPanel_structure').removeClass('forceClose');},1000);jQuery('.be_pageLayoutEditTree  li').removeClass('selected');jqel_treeNode.addClass('selected');var jqel_panel=jQuery('.be_pageLayoutEditorTools');jqel_panel.removeClass('wideScreenEdit');this.loadEcoElementEditor(data,jqel.data());this.scrollToItem(jqel);},deselectOrganism:function(){jQuery('body').removeClass('be_layoutEditor_organismIsActive');jQuery('.notActiveOrganism').removeClass('notActiveOrganism');jQuery('.be_pageLayoutEditTree li').removeClass('selected');jQuery('.wideScreenEdit').removeClass('wideScreenEdit');var jqel_editor=jQuery('.be_pageLayoutEditorToolsPanel_organism').first();MMI.App.get().triggerEvent('be_layout_panel_editor_before_unload',[],jqel_editor);jqel_editor.alterClass('mod_panel-*','mod_panel-loading');jqel_editor.find('.molecule_editorTarget').html('');},loadEcoElementEditor:function(data,localData){var item_id=data.item_id;if(item_id){var ajaxData={id:item_id,is_layout:localData.isLayout,organism:localData.name,view:'layout_organism',mode:'edit'};}
4116if(data.organismType=='repeat_container'){let repeatContainerName=data.jqel.ecoData('repeatFieldContainerName');if(repeatContainerName){ajaxData.organism=repeatContainerName;}}
4117var jqel_editor=jQuery('.be_pageLayoutEditorToolsPanel_organism').first();jqel_editor.alterClass('mod_panel-*','mod_panel-loading');var ajaxOptions={data:ajaxData,jqel:jqel_editor.find('.molecule_editorTarget'),mmiAjaxDone:function(json){MMI.App.get().triggerEvent('be_layout_panel_editor_after_load',[],jqel_editor);jqel_editor.alterClass('mod_panel-*','mod_panel-loaded');}};MMI.App.get().ajax(ajaxOptions);},scrollToItemAfterDelay:function(jqel){Be.Genome.Item.Layout.Edit._scrollToItem=jqel;var timerLength=300;clearTimeout(Be.Genome.Item.Layout.Edit._scrollTimer);Be.Genome.Item.Layout.Edit._scrollTimer=setTimeout(Be.Genome.Item.Layout.Edit.scrollToItem,timerLength);},scrollToItem:function(jqel){if(!jqel){jqel=Be.Genome.Item.Layout.Edit._scrollToItem;}
4118var offset=jQuery('.pageHead').height();if(isNaN(offset)){offset=0;}
4119Eco.Util.scrollElementIntoView(jqel,{offsetTop:offset});},cancelScrollToDelay:function(){clearTimeout(Be.Genome.Item.Layout.Edit._scrollTimer);},saveItemData:function(item_id,formData,formOrganism){var self=this;var app=MMI.App.get();app.updateItem(item_id,formData,function(status,item,itemsDataObject,json,serverMessages,ajaxOptions){switch(status){case'start':formOrganism.onSubmitStart({arguments:arguments});break;case'success':formOrganism.onSubmitSuccess({arguments:arguments});setTimeout(function(){Be.Genome.Item.Layout.Edit.deselectOrganism();},1000);var jqel_editableContainer=jQuery('.ecoLayoutEditableContainer[data-item_id="'+item_id+'"]');jqel_editableContainer.data('item_name',json.items[item_id]['item_name']);self.updateLayoutTree();break;case'done':break;case'error':default:setTimeout(function(){Be.Genome.Item.Layout.Edit.deselectOrganism();},1000);break;}},this,{data:{view:'layout_item',mode:'edit'}});},saveFieldData:function(item_id,layout_field,field_id,formData,formOrganism,callbackFunction){var editCells={};var self=this;editCells[item_id]={};editCells[item_id]['fieldList']={};editCells[item_id]['fieldList'][layout_field]={};editCells[item_id]['fieldList'][layout_field][field_id]=formData;var ajaxData={mode:'layout',organism:field_id,id:item_id,'edit-cells':editCells,view:'layout_organism'};
4119if(formOrganism){formOrganism.onSubmitStart({arguments:arguments});}
4120var ajaxOptions={data:ajaxData,mmiAjaxDone:function(json,status,xhr,ajaxOptions){if(json.server.status!==true){MMI.App.get().displayErrorNotification(json,'Be.Genome.Item.Layout.saveFieldData.mmiAjaxDone');return;}
4121if(formOrganism){formOrganism.onSubmitSuccess({arguments:arguments});}
4122setTimeout(function(){Be.Genome.Item.Layout.Edit.deselectOrganism();},1000);if(json.returnData){var newHtml=json.returnData.renderedField;if(newHtml){var fieldId=json.postdata.organism;var jqel_organism=jQuery('[data-name="'+fieldId+'"]');var jqel_parents=jqel_organism.parents();var organism_form=jqel_organism.mmiData('organism_form');if(organism_form){jqel_organism.mmiData('organism_form').removeEntityByName(fieldId);}
4123jqel_organism.replaceWith(newHtml);MMI.App.get().initializeNewContent();MMI.App.get().triggerEvent('be_layout_child_content_updated',[],jqel_parents);}
4124if(callbackFunction){callbackFunction.apply();}}
4125self.updateLayoutTree();},mmiAjaxAlways:function(json,status,xhr,ajaxOptions){if(formOrganism){formOrganism.onSubmitComplete({arguments:arguments});}},mmiAjaxFail:function(json,status,xhr,ajaxOptions){if(formOrganism){formOrganism.onSubmitError({arguments:arguments});}}};MMI.App.get().ajax(ajaxOptions);},formatChildrenForSave:function(rawChildren,usedFieldIds){var children=[];if(!usedFieldIds){usedFieldIds=[];}
4126jQuery.each(rawChildren,function(n,child){var id=child.id;if(usedFieldIds.indexOf(id)>-1){if(id.indexOf('_ref')===-1){cwarn('WARNING: Layout is trying to save but found a duplicate field id in use. This field will be skipped',id);return true;}}
4127usedFieldIds.push(id);var childData={name:id,fieldType:child.organismType};if(child.organismType==='content'&&!child.jqel.find('.ecoContent').html()){var newContent=child.jqel.find('.ecoNewContent').html();if(!newContent){newContent='<p>Placeholder Content</p>';}
4128childData.default=newContent;}
4129if(child.children){if(child.children.length){if(child.organismType.toLowerCase().includes('repeat')&&!child.organismType.toLowerCase().includes('container')){var repeatContainerName=child.jqel.data("repeatFieldContainerName");if(repeatContainerName&&repeatContainerName!=child.children[0].id){cwarn("This is not the right name:"+repeatContainerName+" "+child.children[0].id+" So we are going to change it");child.children[0].id=repeatContainerName;}}
4130childData.children=Be.Genome.Item.Layout.Edit.formatChildrenForSave(child.children,usedFieldIds);}}
4131children.push(childData);return true;});return children;},getLayoutStructure:function(jqel_item){var self=this;var thisItem=self.makeDataFromOrganism(jqel_item);var usedFieldIds=[];var saveData={version:'1.0.0',fieldType:thisItem.organismType,structure:'eco',children:Be.Genome.Item.Layout.Edit.formatChildrenForSave(thisItem.children,usedFieldIds)};return saveData;},saveLayoutStructure:function(jqel,idToLoad,callback,callbackData){var jqel_container;if(jqel.hasClass('ecoLayoutEditableContainer')){jqel_container=jqel;}else{jqel_container=jqel.parents('.ecoLayoutEditableContainer').first();if(jqel_container.size()===0){cwarn('Invalid container for layout save found for element',jqel);return false;}}
4132var structure=Be.Genome.Item.Layout.Edit.getLayoutStructure(jqel_container);var fieldId=jqel_container.mmiData('layout_field');var itemId=jqel_container.mmiData('item_id');var ajaxData={mode:"layout",'arrange-cells':{},id:itemId,organism:idToLoad,view:'layout_organism'};ajaxData['arrange-cells'][itemId]={};ajaxData['arrange-cells'][itemId]['fieldList']={};ajaxData['arrange-cells'][itemId]['fieldList'][fieldId]=structure;var self=this;var ajaxOptions={data:ajaxData,mmiAjaxDone:function(json){if(json.error){MMI.App.get().alert(json.allErrorMessages.pop());return;}
4133if(json.returnData){var newHtml=json.returnData.renderedField;if(newHtml&&idToLoad){let fieldId=json.postdata.organism;var jqel_organism=jQuery('[data-name="'+fieldId+'"]');jqel_organism.replaceWith(newHtml);var jqel_parents=jqel_organism.parents();MMI.App.get().initializeNewContent();MMI.App.get().triggerEvent('be_layout_child_content_updated',[],jqel_parents);}}
4134self.updateLayoutTree();if(newHtml&&idToLoad){let fieldId=json.postdata.organism;var jqel_treeNode=jQuery('#node_'+fieldId);if(jqel_treeNode.size()){jqel_treeNode.trigger('click');}}
4135if(callback){callback.call(Be.Genome.Item.Layout.Edit,callbackData);}}};MMI.App.get().ajax(ajaxOptions);return true;},deleteOrganismFromLayout:function(jqel_element){var app=MMI.App.get();app.confirm({message:'Are you sure you want to delete this element and any children? This can not be undone.',buttons:[{id:'yes',label:'Yes',classes:['mod_destructive']},{id:'no',label:'No',classes:['mod_inverse']}],callback:function(returnData,options){if(returnData.id==='yes'){Be.Genome.Item.Layout.Edit.destroyInlineEditing(jqel_element,jqel_element.ecoData('organism'));var jqel_parent=jqel_element.parents('[class*=organism_]').first();if(jqel_element.filter('[class*=organism_]').size()){jqel_parent=jqel_element;}
4136var organismName=jqel_element.mmiData('name');var jqel_container=jqel_element.parents('.ecoLayoutEditableContainer').first();var itemId=jqel_container.mmiData('item_id');var fieldId=jqel_container.mmiData('layout_field');var deleteCells={};deleteCells[itemId]={};deleteCells[itemId]['fieldList']={};deleteCells[itemId]['fieldList'][fieldId]=[organismName];var ajaxData={"organism":organismName,"delete-cells":deleteCells,mode:"layout",view:"blank",id:itemId};jqel_parent.remove();MMI.App.get().ajax({data:ajaxData});Be.Genome.Item.Layout.Edit.updateLayoutTree();Be.Genome.Item.Layout.Edit.deselectOrganism();}}});},addOrganismToLayoutDialog:function(jqel_organism,parentType,locationInLayout){var settings=Be.Genome.Item.Layout.Edit.getSettings();var allowedChildren=settings.allowedChildren;if(!allowedChildren){permaclog(jqel_organism);cwarn('No allowed children defined on this ^^^ organism.');return;}
4137var childTypes=allowedChildren[parentType];
4137if(!childTypes){cwarn('No Child types defined for type '+parentType+'. Why are we even seeing this button?');return;}
4138if(childTypes=='ajax'){var jqel_placeholder=jQuery("<div class='childSelectDialog'></div>");var options={smartBox:{classes:['helix-confirm-dialog'],modal:true,close:true,minimize:false,restore:false,maximize:false,resizable:false,draggable:true},width:600,height:500};jqel_placeholder.smartBox(options);jqel_placeholder.data('parent_organism_element',jqel_organism);var ajaxData={view:'ajax_layout_children',id:jqel_organism.ecoData('item_id'),parent_type:parentType};var ajaxOptions={data:ajaxData,jqel:jqel_placeholder};MMI.App.get().ajax(ajaxOptions);}else{var childOptions=[];jQuery.each(childTypes,function(childOptionValue,childOptionLabel){childOptions.push({value:childOptionValue,label:childOptionLabel});});childOptions.sort(function(a,b){if(a.label>b.label){return 1;}else if(b.label>a.label){return-1;}
4139return 0;});var app=MMI.App.get();app.prompt({smartBox:{height:320},message:"What type of element do you want to add?",placeholderText:'Choose an element type',buttons:[{id:'cancel',label:'Cancel'},{id:'ok',label:'OK'}],jqel_target:jqel_organism,callback:function(response,dialogOptions){if(response.id=='ok'){var newType=response.value;if(jQuery('body').hasClass('userIsSuperAdmin')){var newId=Eco.Util.getRandomString(32);var newTarget=dialogOptions.jqel_target;app.prompt({smartBox:{height:320},message:"Enter an ID for this field.",placeholderText:newId,defaultValue:newId,buttons:[{id:'cancel',label:'Cancel'},{id:'ok',label:'OK'}],jqel_target:jqel_organism,callback:function(response,dialogOptions){if(response.id=='ok'){var newId=response.value;newId=newId.replace(/ /g,'_');if(newId!==''&&jQuery('[data-name='+newId+']').length>0){MMI.App.get().alert({message:'Error - Field name already exists in this form'});}else{Be.Genome.Item.Layout.Edit.generatePlaceholderInLayout(newType,newId,newTarget,null,locationInLayout);}}},scope:this});}else{Be.Genome.Item.Layout.Edit.generatePlaceholderInLayout(newType,'',dialogOptions.jqel_target,null,locationInLayout);}}},scope:this,fieldType:'select',options:childOptions});}},generatePlaceholderInLayout:function(type,id,jqel_target,content,locationInLayout){if(!id){id=Eco.Util.getRandomString(32);}
4140if(!content){content='';}
4141var placeHolderHtml='<div class="organism_'+type+' placeholder isLayoutEditable" data-name="'+id+'" data-eco-field-type="'+type+'">'+content+'</div>';var jqel_placeholder=jQuery(placeHolderHtml);Be.Genome.Item.Layout.Edit.addOrganismToLayout(jqel_target,jqel_placeholder,id,locationInLayout);},cloneFieldAndChangeToEquation:function(jqel_organism,jqel_element){var data=jqel_organism.ecoData();var id=data.item_id;var field_id=data.field_id;var organism=jqel_organism.parents('.molecule_form').ecoData('organism');var values=organism.getAllValues();var newFieldId=field_id.substring(0,200)+"_input";var fieldType=values.fieldType;var placeHolderHtml='<div class="organism_'+fieldType+' placeholder isLayoutEditable" data-name="'+newFieldId+'" data-eco-field-type="'+fieldType+'">New Field</div>';var jqel_placeholder=jQuery(placeHolderHtml);jqel_element.before(jqel_placeholder);jqel_element.data('ecoFieldType','equation');var callbackData={id:id,field_id:field_id,new_field_id:newFieldId,field_data:values,layout_field:data.layout_field,form_organism:organism};Be.Genome.Item.Layout.Edit.saveLayoutStructure(jqel_placeholder,id,this.updateFieldsAfterCloning,callbackData);},updateFieldsAfterCloning:function(callbackData){var data=callbackData.field_data;var rawCCFieldName=data.external_name;var ccFieldName=rawCCFieldName.substring(0,rawCCFieldName.indexOf("_"))+"cc"+rawCCFieldName.substring(rawCCFieldName.indexOf("_"),rawCCFieldName.length);var oldFieldData={fieldType:'equation',equation:"=IF(\nInstalledAsPermitted_F_XXX == \"NOT-IN-SCOPE\",\n\"\",\nIF(\nInstalledAsPermitted_F_XXX == \"Yes\",\n"+ccFieldName+",\n"+data.external_name+"_input\n)\n)",external_name:data.external_name,label:data.label+' Equation',validators:[]};data.external_name=data.external_name+"_input";var additionalFields={};additionalFields[callbackData.new_field_id]=data;var callbackFunction=function(){Be.Genome.Item.Layout.Edit.saveFieldData(callbackData.id,callbackData.layout_field,callbackData.new_field_id,data);};Be.Genome.Item.Layout.Edit.saveFieldData(callbackData.id,callbackData.layout_field,callbackData.field_id,oldFieldData,callbackData.form_organism,callbackFunction);},cloneField:function(jqel_organism,jqel_element){var data=jqel_organism.ecoData();var id=data.item_id;var field_id=data.field_id;var organism=jqel_organism.parents('.molecule_form').ecoData('organism');var values=organism.getAllValues();var newFieldId=Eco.Util.getRandomString(16);var fieldType=values.fieldType;values.fieldType=fieldType;var placeHolderHtml='<div class="organism_'+fieldType+' placeholder isLayoutEditable" data-name="'+newFieldId+'" data-eco-field-type="'+fieldType+'">New Field</div>';var jqel_placeholder=jQuery(placeHolderHtml);jqel_element.before(jqel_placeholder);var callbackData={id:id,field_id:field_id,new_field_id:newFieldId,field_data:values,layout_field:data.layout_field,form_organism:organism};Be.Genome.Item.Layout.Edit.saveLayoutStructure(jqel_placeholder,id,this.updateNewFieldAfterCloning,callbackData);},updateNewFieldAfterCloning:function(callbackData){var data=callbackData.field_data;Be.Genome.Item.Layout.Edit.saveFieldData(callbackData.id,callbackData.layout_field,callbackData.new_field_id,data,callbackData.form_organism);},addOrganismToLayout:function(jqel_organism,jqel_placeholder,id,locationInLayout){if(locationInLayout&&locationInLayout.hasOwnProperty('target')&&locationInLayout.target instanceof jQuery&&locationInLayout.hasOwnProperty('placement')){switch(locationInLayout.placement){case'before':locationInLayout.target.before(jqel_placeholder);break;case'after':default:locationInLayout.target.after(jqel_placeholder);break;}}else{var jqel_childrenContainer=jqel_organism.find('.molecule_children').first();if(!jqel_childrenContainer.size()){jqel_childrenContainer=jQuery('<div class="molecule_children"></div>');jqel_organism.append(jqel_childrenContainer);}
4142var jqel_forcedSubmitButton=jqel_childrenContainer.children('.eco_hideFromEditor.molecule_button');if(jqel_forcedSubmitButton.size()){jqel_forcedSubmitButton.first().before(jqel_placeholder);}else{jqel_childrenContainer.append(jqel_placeholder);}}
4143jqel_organism.parents('.ecoLayout--empty').addBack().removeClass('ecoLayout--empty');Be.Genome.Item.Layout.Edit.saveLayoutStructure(jqel_organism,id);},setLayoutEditorSettings:function(settings){Be.Genome.Item.Layout.Edit._layoutEditorSettings=settings;},initializeSortable:function(jqel_tree){var pages=jqel_tree.find('.depth_1');jQuery.each(pages,function(){var jqel_pageNode=jQuery(this);var jqel_sortables=jqel_pageNode.children('.nodeChildren');jqel_sortables=jqel_sortables.add(jqel_pageNode.find('.canHaveChildren>.nodeChildren'));jqel_sortables.sortable({'connectWith':jqel_sortables,tolerance:'pointer',helper:'clone',delay:200,axis:'y',start:function(event,ui){var jqel_item=ui.item;var organismType=jqel_item.data('organismType');jqel_sortables.each(function(){var jqel_sortable=jQuery(this);var allowedChildren=jqel_sortable.data('allowedChildren');if(allowedChildren&&allowedChildren[organismType]){jqel_sortable.addClass('allowedDrop');}});},stop:function(event,ui){jQuery('.allowedDrop').removeClass('allowedDrop');var jqel_item=ui.item;var jqel_target=jqel_item.parents('.nodeChildren').first();var jqel_node=jqel_target.parents('.node').first();var depth=jqel_node.data('depth')+1;var jqel_nodeTitle=jqel_item.children('.nodeTitle');var spacer='<div class="depthSpacer"><div class="line"></div></div>';while(depth>jqel_nodeTitle.find('.depthSpacer').size()){jqel_nodeTitle.prepend(spacer);}
4144while(depth<jqel_nodeTitle.find('.depthSpacer').size()){jqel_nodeTitle.find('.depthSpacer').first().remove();}
4145var data=jqel_item.data();var elementToMove=data.jqel;
4145var jqel_previousSibling=jqel_item.prev('.node');if(jqel_previousSibling.size()){var jqel_beforeItem=jqel_previousSibling.data('jqel');elementToMove.detach().insertAfter(jqel_beforeItem);}else{var jqel_parent=jqel_target.parents('.node').first();var jqel_containerElement=jqel_parent.data('jqel');elementToMove.detach();var jqel_children=jqel_containerElement.find('.molecule_children').first();if(jqel_children.size()===0){jqel_children=jQuery('<div class="molecule_children"></div>');jqel_containerElement.append(jqel_children);}
4146jqel_children.prepend(elementToMove);}
4147Be.Genome.Item.Layout.Edit.saveLayoutStructure(elementToMove);},receive:function(event,ui){var jqel_item=ui.item;var jqel_target=jQuery(event.target);var organismType=jqel_item.ecoData('organismType');var allowed=jqel_target.ecoData('allowedChildren');if(allowed.hasOwnProperty(organismType)){}else{ui.sender.sortable('cancel');}}})});},startDragElement:function(){},initializeInlineEditing:function(jqel_organism,editorOrganism){if(!Be.Genome.Item.Layout.Edit._htmlEditorHasInitialized){var styles=(editorOrganism.jqel.ecoData('htmlEditorStyles')||[]).concat(jqel_organism.ecoData('htmlEditorStyles')||[]);if(styles.length){let styleObjects=styles.map(([name,cssClass,appliesTo])=>new ContentTools.Style(name,cssClass,appliesTo));ContentTools.StylePalette.add(styleObjects);}
4148let customHeadingStart=jqel_organism.ecoData('htmlEditorHeadingStart')||editorOrganism.jqel.ecoData('htmlEditorHeadingStart');if(customHeadingStart>=1){if(customHeadingStart>4){cerror(`htmlEditorHeadingStart has to be <= 4 since there's only 6 headings`);}else{['Heading','Subheading','SmallHeading'].forEach((toolName)=>{ContentTools.Tools[toolName].tagName=`h${customHeadingStart}`;customHeadingStart++;});}}
4149Be.Genome.Item.Layout.Edit._htmlEditorHasInitialized=true;}
4150this.destroyInlineEditing(jqel_organism);var editor=ContentTools.EditorApp.get();jqel_organism.data('editorOrganism',editorOrganism);jqel_organism.data('editorClass',editor);var editableRegions=jqel_organism.find('.ecoContent').first();editableRegions.children('div').each(function(){var jqel_element=jQuery(this);if(!jqel_element.attr('class')){var html=jqel_element.html();jqel_element.after(html);jqel_element.remove();}});editor.init(editableRegions,'id',null,false);editor.addEventListener('saved',function(ev){var regionData=ev._detail.regions;if(Basix.isEmptyObject(regionData)){return;}
4151var changedId=false;jQuery.each(regionData,function(id,data){changedId=id;});if(!changedId){return;}
4152var currentHtml=regionData[changedId];if(currentHtml||currentHtml===''){if(currentHtml==editorOrganism.getValue()){}else{editorOrganism.setValue(currentHtml,editorOrganism.getOwnEntityName());var organism_form=editorOrganism.jqel_field.mmiData('organism_form');if(!organism_form){clog('Can not find organism_form',editorOrganism.jqel_field);}else{organism_form.triggerValueChangeFromExternalSystem(editorOrganism.getOwnEntityName());}}}else{}});editor.addEventListener('start',function(ev){var _this=this;function autoSave(){_this.save(true);}
4153this.autoSaveTimer=setInterval(autoSave,1500);});editor.addEventListener('stop',function(ev){clearInterval(this.autoSaveTimer);});setTimeout(function(){editor.start();editor.toolbox().show();editor.inspector().show();window._initializingEditor=false;editor.toolbox().tools(Be.Genome.Item.Layout.Edit.DEFAULT_CONTENT_TOOLS);},500);window.removeEventListener('beforeunload',editor._handleBeforeUnload);editor.addEventListener('revert',function(ev){ev.preventDefault();if(this.history){this.revertToSnapshot(this.history.goTo(0),false);this.history.stopWatching();}
4154if(this._toolbox){this._toolbox.hide();}
4155if(this._inspector){this._inspector.hide();}
4156this._history=null;this._regions={};this._state='ready';if(ContentEdit.Root.get().focused()){this._allowEmptyRegions=function(){ContentEdit.Root.get().focused().blur();}}});jqel_organism.addClass(Be.Genome.Item.Layout.Edit.ACTIVE_CLASS);},destroyInlineEditing:function(jqel_organism){jqel_organism.removeClass(Be.Genome.Item.Layout.Edit.ACTIVE_CLASS);var editor=jqel_organism.data('editorClass');if(!editor){return;}
4157if(editor.history===null){return;}
4158editor.stop(true);editor.destroy();},cancel:function(){var activeItem=jQuery('.'+Be.Genome.Item.Layout.Edit.ACTIVE_CLASS);if(activeItem.length===0){return;}
4159var editor=activeItem.data('editorClass');editor.revert();Be.Genome.Item.Layout.Edit.deselectOrganism();Be.Genome.Item.Layout.Edit.destroyInlineEditing(activeItem);}};
4160MMI.Util.namespace('Be.Genome.Item.Layout.Edit.LiveEventHandlers');Be.Genome.Item.Layout.Edit.LiveEventHandlers={handleAppInstanceCreated:function(app){app.registerHandlerClass(Be.Genome.Item.Layout.Edit.LiveEventHandlers);},do_initializeLayoutStructureTree:function(event,app,jqel,data){Be.Genome.Item.Layout.Edit.createLayoutTree(jqel);Be.Genome.Item.Layout.Edit.restoreTreeStates();}
4160,do_beLayoutEditTreeNodeHover:function(event,app,jqel,data){const repeat_filter_organism=jQuery('[data-name="repeat_filter"]').ecoData('organism');let repeat_instances=jQuery(`[data-name=${data.id}]`);if(event.originalEvent.type=='mouseover'){if(jqel.parent().hasClass('treeRoot')){return;}
4161var jqel_node=jQuery(event.target);if(!jqel_node.hasClass('node')){jqel_node=jqel_node.parents('.node:first');}
4162if(jQuery.contains(jqel.get(0),jqel_node.get(0))){return;}
4163jQuery('.be_layoutEdit_hover').removeClass('be_layoutEdit_hover');if(repeat_filter_organism){let repeat_filter_value=repeat_filter_organism._values.repeat_filter;let instance_data=repeat_instances[repeat_filter_value];repeat_instances.addClass('be_layoutEdit_hover');Be.Genome.Item.Layout.Edit.scrollToItemAfterDelay(instance_data);}
4164else{data.jqel.addClass('be_layoutEdit_hover');Be.Genome.Item.Layout.Edit.scrollToItemAfterDelay(data.jqel);}}else{if(repeat_filter_organism){repeat_instances.removeClass('be_layoutEdit_hover');Be.Genome.Item.Layout.Edit.cancelScrollToDelay();}
4165else{data.jqel.removeClass('be_layoutEdit_hover');Be.Genome.Item.Layout.Edit.cancelScrollToDelay();}}
4166event.preventDefault();return true;},do_beLayoutEditTreeNodeClick:function(event,app,jqel,data){Be.Genome.Item.Layout.Edit.selectOrganism(data.jqel,data,jqel);},do_toggleLayoutEditorSection:function(event,app,jqel,data){var jqel_parent=jqel.parents('.be_layoutEditor_itemSection').first();var organism=jqel_parent.data('organism');var sectionId=data.section_id;if(jqel_parent.hasClass('open')){organism.collapse();jqel_parent.removeClass('open');app.setPreference('section_panel_open_'+sectionId,false);}else{organism.expand();jqel_parent.addClass('open');app.setPreference('section_panel_open_'+sectionId,true);}},do_initializeLayoutEditorSection:function(event,app,jqel,data){var jqel_parent=jqel.parents('.be_layoutEditor_itemSection').first();if(jqel_parent.hasClass('open')){var jqel_sectionContent=jqel_parent.find('.sectionContent');}},do_cancelLayoutDetailEdits:function(event,app,jqel,data){Be.Genome.Item.Layout.Edit.deselectOrganism();var fieldId=data.field_id;var jqel_control=jQuery('[data-name='+fieldId+']');if(jqel_control.data('ecoFieldType')=='content'){var ajaxData={id:data.item_id,organism:fieldId,view:'layout_organism'};var ajaxOptions={data:ajaxData,jqel:jqel_control,replaceElement:true};app.ajax(ajaxOptions);}},do_removeInvalidFieldFromLayout:function(event,app,jqel,data){Be.Genome.Item.Layout.Edit.deselectOrganism();var fieldId=data.field_id;var jqel_control=jQuery('[data-name='+fieldId+']');var ajaxData={id:data.item_id,invalidFieldId:fieldId,fieldList:data.fieldList,view:'layout_remove_invalid_field'};var ajaxOptions={data:ajaxData,jqel:jqel_control,replaceElement:true};app.ajax(ajaxOptions);},do_saveLayoutItemFormData:function(event,app,jqel,data){var organism=data.organism;if(organism instanceof Eco.Organism.Form){var formData=organism.getAllValues();Be.Genome.Item.Layout.Edit.saveItemData(data.item_id,formData,organism);return false;}
4167permaclog(jqel);cwarn('Layout item form data cannot be saved. No form organism available on this ^^^ element.');return false;},do_saveLayoutFieldFormData:function(event,app,jqel,data){var organism=data.organism;if(organism instanceof Eco.Organism.Form){if(!organism.hasChangedValues()){event.preventDefault();event.stopPropagation();event.stopImmediatePropagation();jqel.find('input').addClass('disabled');return false;}
4168app.triggerEvent('be_layout_panel_editor_before_save',[]);var formData=organism.getAllValues();Be.Genome.Item.Layout.Edit.saveFieldData(data.item_id,data.layout_field,data.field_id,formData,organism);return false;}
4169permaclog(jqel);cwarn('Layout field form data cannot be saved. No form organism available on this ^^^ element.');return false;},do_renameField:function(event,app,jqel,data){clog('data',data);var fieldId=data.field_id;;var self=this;let formId=data.item_id;let layoutField=data.layout_field;MMI.App.get().prompt({message:'Please enter a new name for this field',callback:function(promptData){var newFieldName=(''+promptData.value).trim();if(!newFieldName||newFieldName===fieldId||promptData.id!=='ok'){return;}
4170let existingFields=Be.Genome.Item.Layout.Edit.getFlatListOfFieldnames();if(existingFields.indexOf(newFieldName)>-1){alert("Unable to rename field. "+newFieldName+" is already in use. ");return;}
4171let ajaxData={'rename-cells':{},id:formId,mode:'layout',view:'layout_organism',organism:newFieldName,};ajaxData['rename-cells'][formId]={fieldList:{}};ajaxData['rename-cells'][formId]['fieldList'][layoutField]={};ajaxData['rename-cells'][formId]['fieldList'][layoutField][fieldId]=newFieldName;let ajaxOptions={data:ajaxData,mmiAjaxDone:function(json,status,xhr,ajaxOptions){if(json.server.status!==true){MMI.App.get().displayErrorNotification(json,'Be.Genome.Item.Layout.saveFieldData.mmiAjaxDone');return;}
4172setTimeout(function(){Be.Genome.Item.Layout.Edit.deselectOrganism();},1000);if(json.returnData){var newHtml=json.returnData.renderedField;if(newHtml){var jqel_organism=jQuery('[data-name="'+fieldId+'"]');var jqel_parents=jqel_organism.parents();var organism_form=jqel_organism.mmiData('organism_form');if(organism_form){jqel_organism.mmiData('organism_form').removeEntityByName(fieldId);}
4173jqel_organism.replaceWith(newHtml);MMI.App.get().initializeNewContent();MMI.App.get().triggerEvent('be_layout_child_content_updated',[],jqel_parents);}}
4174Be.Genome.Item.Layout.Edit.updateLayoutTree();}};MMI.App.get().ajax(ajaxOptions);},defaultValue:fieldId,buttons:[{id:'ok',label:'OK'},{id:'cancel',label:'Cancel'}]});},do_toggleEditLayoutTreeNode:function(event,app,jqel,data){var jqel_parent=jqel.parents('.node').first();var jqel_content=jqel_parent.find('.nodeChildren').first();var contentHeight=jqel_content[0].scrollHeight;if(jqel_parent.hasClass('open')){jqel_parent.removeClass('open');}else{jqel_parent.addClass('open');}
4175Be.Genome.Item.Layout.Edit.recordTreeStates();},do_initializeBeLayoutEditorSettings:function(event,app,jqel,data){Be.Genome.Item.Layout.Edit.setLayoutEditorSettings(data.layoutEditorSettings);},do_editLayoutAddNewChildToNode:function(event,app,jqel,data){var organismType=data.organismType;var jqel_element=data.jqel;Be.Genome.Item.Layout.Edit.addOrganismToLayoutDialog(jqel_element,organismType);},do_toggleContentEditorFullScreen:function(event,app,jqel,data){var jqel_panel=jqel.parents('.be_pageLayoutE
4175ditorTools').first();if(jqel_panel.hasClass('wideScreenEdit')){jqel_panel.removeClass('wideScreenEdit');}else{jqel_panel.addClass('wideScreenEdit');}},do_deleteLayoutOrganism:function(event,app,jqel,data){var jqel_element=jQuery('[name='+data.field_id+'],[data-name='+data.field_id+']');Be.Genome.Item.Layout.Edit.deleteOrganismFromLayout(jqel_element);},do_uploadNewImageForReferenceFieldDone:function(event,app,jqel,data,file,response){jqel.removeClass('disabled');var id=response.id;if(id){var name=response.pageItemData.item_name;var jqel_select=jqel.prev('.molecule_field-select');var organism=jqel_select.data('organism');if(organism){organism.insertNewSelectOption(id,name,true);}}},do_uploadNewImageForReferenceFieldSend:function(event,app,jqel,data,files){var images=files.images();jqel.addClass('disabled');jQuery.each(files,function(fn,file){var fileName=file.name;var extension=fileName.split('.').pop().toLowerCase();var size=file.size;var app=MMI.App.get();if(!size){app.alert({type:'error',message:"File is empty. Please pick a valid file to upload. "+file.name});}
4176var objectType='';var types=['jpg','png'];jQuery.each(types,function(n,ext){if(ext=='*'||ext==extension){objectType=data.type;return false;}});if(!objectType){app.alert({type:'error',message:"Invalid file type for "+file.name});return;}
4177var url='/';var id='file_'+MMI.Util.randomize(16);url+='?size='+data.size+'&attitude=json&view=blank&mode=edit&item['+id+'][file_path]=2&item['+id+'][item_parent]='+data.item_id;url+='&type='+objectType;file.sendTo(url);});}
4177,do_setupUploadNewImageForReferenceField:function(event,app,jqel,data){fd.jQuery();MMI.Filedrop.enableFiledrop(jqel);},do_contentBlockEditorInitialize:function(event,app,jqel,data){var jqel_organism=jQuery('#'+data.field_id).parent();var editorOrganism=data.organism;if(jqel_organism.size()){Be.Genome.Item.Layout.Edit.initializeInlineEditing(jqel_organism,editorOrganism);}},do_contentBlockEditorDestroy:function(event,app,jqel,data){var jqel_organism=jQuery('#'+data.field_id).parent();if(jqel_organism.size()){Be.Genome.Item.Layout.Edit.destroyInlineEditing(jqel_organism);}},do_updateTabButtons:function(event,app,jqel,data){var organism=data.organism;try{organism.updateTabs();}catch(e){}},do_filterLayoutStructure:function(event,app,jqel,data){let searchByReference=jQuery('[data-name=search_by_reference]');var searchText=jqel.val().toLowerCase();var jqel_panel=jqel.parents('.be_pageLayoutEditorToolsPanel').first();var jqel_nodes=jqel_panel.find('.node');jqel_nodes.each(function(){var jqel_node=jQuery(this);var nodeData=jqel_node.data();var fieldName=nodeData.id;var externalName=nodeData.externalName;if(!externalName){externalName='';}
4178var equation=nodeData.jqel.context.dataset.equation;if(!equation){equation='';}
4179var dependency=nodeData.jqel.context.dataset.dependencies;if(!dependency){dependency='';}
4180var optionDependency=nodeData.jqel.context.dataset.option_dependencies;if(!optionDependency){optionDependency='';}
4181var doSearchByReference=false;if(searchByReference){if(searchByReference.data('organism')){doSearchByReference=Boolean(searchByReference.data('organism').val());}}
4182if(!searchText||nodeData.text.toLowerCase().indexOf(searchText)>-1||fieldName.toLowerCase().indexOf(searchText)>-1||externalName.toLowerCase().indexOf(searchText)>-1||(doSearchByReference&&equation.toLowerCase().indexOf(searchText)>-1)||(doSearchByReference&&dependency.toLowerCase().indexOf(searchText)>-1)||(doSearchByReference&&optionDependency.toLowerCase().indexOf(searchText)>-1)){jqel_node.removeClass('mod_hidden');jqel_node.parents('.node').removeClass('mod_hidden');}else{jqel_node.addClass('mod_hidden');}});},do_cloneFieldAndChangeToEquation:function(event,app,jqel,data){if(!confirm('Are you sure you want to clone this field and change the original to an equation?')){return false;}
4183var jqel_element=jQuery('[data-name="'+data.field_id+'"]');Be.Genome.Item.Layout.Edit.cloneFieldAndChangeToEquation(jqel,jqel_element);jqel.replaceWith(Be.Fancy.generateSpinnerButton());},do_cloneField:function(event,app,jqel,data){var jqel_element=jQuery('[data-name="'+data.field_id+'"]');Be.Genome.Item.Layout.Edit.cloneField(jqel,jqel_element);jqel.replaceWith(Be.Fancy.generateSpinnerButton());},do_updateBlockLayoutClasses:function(event,app,jqel,data){var jqel_organism=jQuery('[data-name='+data.field_id+']');var value=data.organism.getValue();var options=data.layoutClassLookup;jQuery.each(options,function(id,className){var stringId=id+'';var fullClassName='mod_custom_'+className;if(value.indexOf(stringId)==-1){jqel_organism.removeClass(fullClassName);}else{jqel_organism.addClass(fullClassName);}});},do_toggleInlineAdminTools:function(event,app,jqel,data){var jqel_body=jQuery('body');jQuery('.inlineHighlightedField').removeClass('inlineHighlightedField');if(jqel_body.hasClass('layoutInlineAdminToolsEnabled')){jqel_body.removeClass('layoutInlineAdminToolsEnabled');return;}else{jqel_body.addClass('layoutInlineAdminToolsEnabled');}
4184var excludedTypes=['form','container-repeat','tabs','tabs-progress','button','button-smart','button_smart'];var jqel_organisms=jQuery('[class*=organism_]');let unique_internal_id='';jqel_organisms.each(function(){var jqel_organism=jQuery(this);unique_internal_id=jqel_organism.data('unique_internal_id');var organismType=jqel_organism.data('ecoFieldType');if(excludedTypes.indexOf(organismType)===-1){if(!jqel_organism.children('.inlineLayoutHelper').length){var helperHtml=`<div class="inlineLayoutHelper"><i class="eco eco-eye live_click" data-live_click_handler="openInlineLayoutHelper" data-unique_internal_id="${unique_internal_id}"></i></div>`;jqel_organism.prepend(helperHtml);}}});},do_openInlineLayoutHelper:function(event,app,jqel,data){let referenceField=data.unique_internal_id;let organismName=data.name;let itemId=data.item_id;let jqelField=jqel.parent();let externalName=data.external_name;let fields=jQuery('[data-name='+organismName+']');let repeat_index=0;fields.each(function(){if(jQuery(this).data('unique_internal_id')==referenceField){return false;}
4185repeat_index++;});let jqelExisting=jQuery('.sb-theme-inlineEditTools');if(jqelExisting.length){jqelExisting.smartBox('close');}
4186let dialogOptions={themes:[app.getDialogDefaultTheme(),'eco','inline
4186EditTools'],title:'',minimize:false,maximize:false,modal:false,width:600,height:450,closeCallbacks:[]};let ajaxOptions={data:{id:itemId,view:'ajax_inline_edit_field',organism:organismName,repeatIndex:repeat_index}};let jqelDialog=app.ajaxDialog(ajaxOptions,'',dialogOptions);jqelDialog.data('referenceField',jqelField);jqelDialog.data('referenceOrganism',data.organism);jqelDialog.data('referenceOrganismName',organismName);},do_nextRepeatInstance:function(event,app,jqel,data){let jqelField=data.referenceField;let fieldData=jqelField.ecoData();let name=fieldData.name;let fields=jQuery('[data-name='+name+']');let internalId=fieldData.unique_internal_id;jQuery('.inlineHighlightedField').removeClass('inlineHighlightedField');let next=false;if(fields.length>1){fields.each(function(){if(next){let jqelCurrent=jQuery(this);jqel.ecoData('referenceField',jqelCurrent);jqelCurrent.addClass('inlineHighlightedField');jqelCurrent[0].scrollIntoView({behavior:"smooth",block:"start"});next=false;return false;}else{if(jQuery(this).data('unique_internal_id')==internalId){next=true;let repeatElement=jQuery('.repeatIndex');let repeatIndex=repeatElement.text();repeatIndex=parseInt(repeatIndex);repeatIndex++;if(repeatIndex>=fields.length){repeatIndex=0;}
4187repeatElement.text(repeatIndex);}}});}
4188if(fields.length==1||next){fields.first().addClass('inlineHighlightedField');fields[0].scrollIntoView({behavior:"smooth",block:"start"});jqel.ecoData('referenceField',fields.first());}},do_highlightInlineElement:function(event,app,jqel,data){let fields=jQuery('[data-name='+data.field+']');jQuery('.inlineHighlightedField').removeClass('inlineHighlightedField');fields.addClass('inlineHighlightedField');fields[0].scrollIntoView({behavior:"smooth",block:"start"});},do_testRunInlineEquation:function(event,app,jqel,data){var organism=data.referenceOrganism;clog('----- Starting Test Equation',data.fieldName,'-----');let oldSetting=window.showEquationData;if(MMI.Expressions._version>=1){let oldSetting=MMI.Expressions._outputDebug;MMI.Expressions.outputDebug(true);}else{window.showEquationData=3;}
4189var result=organism._solve(false,false,true);clog('----- Equation Data : -----');clog(result);clog('----- End Test Equation ',data.fieldName,'-----');if(MMI.Expressions._version>=1){MMI.Expressions.outputDebug(oldSetting);}else{window.showEquationData=oldSetting;}
4190jqel.parents('.calculations_equation').find('.result').html('Result: '+result.answer);},do_testRunInlineDependency:function(event,app,jqel,data){clog('dep',Be.Genome.Item.Layout.Dependencies._fieldReferences,data,data.fieldName);var dependency=Be.Genome.Item.Layout.Dependencies._fieldReferences[data.fieldName];if(!dependency){clog("No dependencies found for ",data.fieldName);return;}
4191var organism=data.referenceOrganism;clog('----- Starting Test Dependency ',data.fieldName,'-----');let oldSetting=window.showEquationData;if(MMI.Expressions._version>=1){oldSetting=MMI.Expressions._outputDebug;MMI.Expressions.outputDebug(true);}else{window.showEquationData=3;}
4192var result=Be.Genome.Item.Layout.Dependencies.setOrganismVisibility(dependency,false,true);clog('----- Equation Data : -----');clog(result);clog('----- End Test Dependency ',data.fieldName,'-----');if(MMI.Expressions._version>=1){MMI.Expressions.outputDebug(oldSetting);}else{window.showEquationData=oldSetting;}
4193jqel.parents('.calculations_dependencies').find('.result').html('Result: '+result.answer);},do_updateInlineFieldValues:function(event,app,jqel,data){let organism=jqel.parents('form').first().ecoData('organism');let formValues=organism.getAllValues();let itemId=data.page_item_id;let organismId=data.referenceOrganismName;jqel.smartBox('close');let formLayout=data.layoutField;if(!formLayout){formLayout='form_layout';}
4194Be.Genome.Item.Layout.Edit.saveFieldData(itemId,formLayout,organismId,formValues,organism);},do_openFieldForEdit:function(event,app,jqel,data){clog('openFieldForEdit');let jqelField=data.referenceField;jQuery('body').addClass('be_layoutEditor_organismIsActive');data.name=data.referenceOrganismName;data.item_id=data.page_item_id;Be.Genome.Item.Layout.Edit.loadEcoElementEditor(data,data);jqel.smartBox('close');},do_checkInlineOptionsBlock:function(event,app,jqel,data){}};MMI.App.registerInitCallback(Be.Genome.Item.Layout.Edit.LiveEventHandlers.handleAppInstanceCreated);
4195MMI.Util.namespace('MMI.Settings.LiveEventHandlers');MMI.Settings.LiveEventHandlers={applet:MMI.Settings,handleAppInstanceCreated:function(app){app.registerHandlerClass(MMI.Settings.LiveEventHandlers);},do_loadGroupSettings:function(event,app,jqel,data){var ajaxData={view:'admpanel_subtab_settings_list',group:data.name,mode:'admin'};app.ajax({jqel:jQuery('.rightColumn'),data:ajaxData});jQuery('.groupName').removeClass('selected');jqel.addClass('selected');},do_searchSettings:function(event,app,jqel,data){if(jqel.val()==''){return;}
4196var ajaxData={view:'admpanel_subtab_settings_list',keywords:jqel.val(),mode:'admin'};app.ajax({jqel:jQuery('.rightColumn'),data:ajaxData});jQuery('.groupName').removeClass('selected');},do_settingValueChanged:function(event,app,jqel,data){var value;if(jqel.attr('type')=='checkbox'){value=jqel.is(':checked');}else if(jqel.attr('type')=='radio'){value=jqel.parents('.settingsRow:first').find('input:checked').val();}else if(jqel.get(0).tagName.toLowerCase()=='ul'){var jqel_checkboxes=jqel.find('input:checked');console.log(jqel_checkboxes);value=[];jqel_checkboxes.each(function(){var jqel_cb=jQuery(this);var name=jqel_cb.attr('name');var part=name.split('[').pop().split(']').shift();value[value.length]=part;});}else{value=jqel.val();}
4197var ajaxData={mode:'site_setting'};var prop='settings[site]['+data.group+']['+data.settingName+']';ajaxData[prop]=value;app.ajax({data:ajaxData,mmiAjaxDone:function(json){var app=MMI.App.get();if(json.error){app.alert({message:'Error saving setting. '+json.errors.join(', '),messageType:'error'});}else{app.alert({message:'Setting Saved Successfully',messageType:'success'});}}});}};MMI.App.registerInitCallback(MMI.Settings.LiveEventHandlers.handleAppInstanceCreated);
4198class BeSiteToolsSections{#container;#sections;#statuses;#storeStatusDataServerConfigDebounced;constructor(){this.#container=document.querySelector('.be_siteToolsMenuSections');if(!this.#container){return;}
4199this.#sections=this.#container.querySelectorAll('section');this.#storeStatusDataServerConfigDebounced=Eco.Util.debounce(this.#storeStatusDataServerConfig_debounceTarget,250);this.#loadStatuses();this.#updateUiFromStatuses();this.#listenForUiStatusUpdates();}#getId(section){return section.dataset.sectionId;}#setStatus(section,status){const id=this.#getId(section);this.#statuses[id]=status;}#getStatus(section){const id=this.#getId(section);if(this.#statuses.hasOwnProperty(id)){return this.#statuses[id];}
4200return'collapsed';}#loadStatuses(){const configData=this.#readServerConfigStatusData();const localData=this.#readLocalStatusData();let statuses;if(configData&&localData){if(configData.time>=localData.time){statuses=configData.statuses;}else{statuses=localData.statuses;this.#storeStatusDataServerConfig(localData);}}else if(configData){statuses=configData.statuses;}else if(localData){statuses=localData.statuses;this.#storeStatusDataServerConfig(localData);}else{statuses={};}
4201this.#statuses=statuses;}#readServerConfigStatusData(){const preferencesString=document.querySelector('body').dataset.profilePreferences;if(preferencesString){try{const preferences=JSON.parse(preferencesString);if(preferences['site-tools-sections']){return preferences['site-tools-sections'];}}catch(e){}}
4202return null;}#readLocalStatusData(){const rawValue=window.localStorage.getItem('site-tools-sections');if(rawValue!==null){try{return JSON.parse(rawValue);}catch(e){window.localStorage.removeItem('site-tools-section');}}
4203return null;}#updateUiFromStatuses(){for(const section of this.#sections){const status=this.#getStatus(section);switch(status){case'expanded':section.classList.remove('mod_beFancyCollapsible_collapse');section.classList.add('mod_beFancyCollapsible_expand');break;case'collapsed':default:section.classList.remove('mod_beFancyCollapsible_expand');section.classList.add('mod_beFancyCollapsible_collapse');break;}
4204const organism=jQuery(section).data('organism');if(organism instanceof Eco.Organism.Be.Fancy.Collapsible){organism.syncStateFromDom();}}}#listenForUiStatusUpdates(){for(const section of this.#sections){section.addEventListener('expand',(event)=>{if(event.detail.percent===0){this.#setStatus(section,'expanded');if(!event.detail.originalEvent||(!event.detail.originalEvent.ctrlKey&&!event.detail.originalEvent.metaKey)){for(const targetSection of this.#sections){if(targetSection!==section){const organism=jQuery(targetSection).data('organism');if(organism instanceof Eco.Organism.Be.Fancy.Collapsible&&organism.isExpanded()){organism.collapse();}}}}
4205this.#storeStatusData();}});section.addEventListener('collapse',(event)=>{if(event.detail.percent===0){this.#setStatus(section,'collapsed');this.#storeStatusData();}});}}#storeStatusDataLocal(data){window.localStorage.setItem('site-tools-sections',JSON.stringify(data));}#storeStatusDataServerConfig(data){const blob=new Blob([JSON.stringify({'site-tools-sections':data})],{type:'application/json; charset=UTF-8'});navigator.sendBeacon('/api/v3/user-preferences',blob);}#storeStatusDataServerConfig_debounceTarget(data){this.#storeStatusDataServerConfig(data);}#storeStatusData(){const data={time:Math.floor((new Date()).getTime()/ 1000),statuses:this.#statuses,};this.#storeStatusDataLocal(data);this.#storeStatusDataServerConfigDebounced(data);}}
4206MMI.Util.namespace('Be.SiteTools');Be.SiteTools={_userBackInitialized:false,_userBackInstance:false,_userBackTextareaInterval:false,userbackLogoUrl:'//'+window.location.hostname+'/images/email/logo.png',_userSnapInitialized:false,_userSnapInstance:false,_userSnapEmbedded:false,_issueReportSystem:'userback',_issueReportCustomData:null,_customIssueReportCallbackConfiguration:false,reportError:function(customPayload,configuration){Be.SiteTools._issueReportCustomData=customPayload;clog('custom data is',customPayload);Be.SiteTools._customIssueReportCallbackConfiguration=configuration;switch(this._issueReportSystem){case'userback':if(!this._userBackInstance){this._embedUserBack();}else{this._userBackInstance.open();}
4207break;default:if(!this._userSnapInstance){this._embedUserSnap();}else{this._userSnapInstance.open();}}},getCustomData:function(){var pageData=jQuery('body').data();pageData['profilePreferences']='';var debugKeys=[];jQuery.each(MMI.Debug._serverDebugHistory,function(n,debugData){debugKeys.push({debugKey:debugData.debugKey,mode:debugData.mode,initialPageLoad:debugData.initialPageLoad});});var asanaId=MMI.Settings.getSetting('userback','asana_project','');var customData={customPayload:Be.SiteTools._issueReportCustomData,debugKeys:debugKeys,pageData:pageData,asanaId:asanaId};if(MMI&&MMI.App){var app=MMI.App.get();if(app){if(app.getCustomDataForIssueReports){var appCustomData=app.getCustomDataForIssueReports();if(appCustomData&&typeof(appCustomData)=='object'){customData=jQuery.extend(customData,appCustomData);}}}}
4208return customData;},_embedUserBack:function(){if(this._userBackEmbedded){return;}
4209window.Userback=window.Userback||{};var accessToken=MMI.Settings.getSetting('userback','access_token','');if(accessToken==undefined||accessToken===''){accessToken='9760|18992|F6SDgZcdyTo4AXdphX3F5GE8MGtO1W6NtBs4tMwG8F10rCAkt6';}
4210Userback.access_token=accessToken;Userback.is_live=true;Userback.on_load=function(){clog('user back loaded');Be.SiteTools.userBackHasLoaded();};Userback.on_open=function(){Be.SiteTools.userBackOpened();jQuery('body').addClass('userbackOpen');};Userback.on_close=()=>{if(this._userBackTextareaInterval){clearInterval(this._userBackTextareaInterval);this._userBackTextareaInterval=null;}
4211setTimeout(function(){jQuery('body').removeClass('userbackOpen');},1000);};Userback.after_send=function(){jQuery('body').removeClass('userbackOpen');};var email=jQuery('.be_siteToolsContainer').data('profile_email');if(email){Userback.email=email;}
4212Userback.widget_settings={main_button_text:"Send",main_button_background_colour:"#296fb8",main_button_text_colour:"#ffffff",autohide:true,rating_type:'',logo:Be.SiteTools.userbackLogoUrl};(function(id){if(document.getElementById(id)){return;}
4213var s=document.createElement('script');s.id=id;s.src='https://static.userback.io/widget/v1.js';var parent_node=document.head||document.body;parent_node.appendChild(s);})('userback-sdk');this._userBackEmbedded=true;},userBackHasLoaded:function(){this._userBackInstance=window.Userback;this._userBackInstance.open();},userBackOpened:function(){Userback.setData({payload:JSON.stringify(Be.SiteTools.getCustomData())});this._userBackTextareaInterval=setInterval(()=>{let jqel_control=jQuery('.userback-controls textarea');if(jqel_control.is(':visible')){jqel_control.val("What Happened:\n\n\nWhat Was Expected:\n\n\nSteps to Reproduce:\n");clearInterval(this._userBackTextareaInterval);this._userBackTextareaInterval=null;}},250);document.querySelector('.userback-controls textarea').value="What Happened:\n\n\nWhat Was Expected:\n\n\nSteps to Reproduce:\n";},_userBackOnLoad:function(){clog('UserBack onload is using default empty handler method.');},_userSnapOnLoad:function(){clog('UserSnap onload is using default empty handler method.');},_embedUserSnap:function(){if(this._userSnapEmbedded){return;}
4214var s=document.createElement("script");s.async=true;s.src='//api.usersnap.com/load/'+'995bd79b-064c-48ff-b30d-64aae03ef085.js?onload=onUserSnapLoad';document.getElementsByTagName('head')[0].appendChild(s);this._userSnapEmbedded=true;},userSnapHasLoaded:function(api){permaclog('UserSnap has loaded. Performing custom configuration.');this._userSnapInstance=api;this._userSnapInstanceInitialize();this._userSnapSetCallbacks();this._userSnapInstance.open();},_userSnapInstanceInitialize:function(){var api=this._userSnapInstance;api.init({colors:this._getUserSnapColorConfiguration(),fields:this._getUserSnapFieldConfiguration(),button:null,consoleRecorder:true,consoleRecorderCfg:{maxMessages:50,maxExceptions:50,logObjectSize:20480}});},_userSnapSetCallbacks:function(){this._userSnapInstance.on('open',function(event){var pageData=jQuery('body').data();pageData['profilePreferences']='';var debugKeys=[];jQuery.each(MMI.Debug._serverDebugHistory,function(n,debugData){debugKeys.push({debugKey:debugData.debugKey,mode:debugData.mode,initialPageLoad:debugData.initialPageLoad});});var customData={customPayload:Be.SiteTools._issueReportCustomData,debugKeys:debugKeys,pageData:pageData};event.api.setValue('customData',JSON.stringify(customData));});this._userSnapInstance.on('submit',function(event){var configuration=Be.SiteTools._customIssueReportCallbackConfiguration;if(configuration&&configuration.hasOwnProperty('onSubmit')&&configuration.onSubmit instanceof Function){configuration.onSubmit(event);}});},_getUserSnapFieldConfiguration:function(){var fields={title:{label:"Issue",required:true},email:{defaultValue:jQuery('.be_siteToolsContainer').data('profile_email'),label:"Your Email",required:true},comment:{label:"Info and Steps to Reproduce",required:true,defaultValue:"Expected:\n\nWhat Happened:\n\nSteps to reproduce:\n"},assignee:null,label:{label:"Issue Type",required:true,defaultValue:'bug'}};return fields;},_getUserSnapColorConfiguration:function(){var primaryColor=MMI.Settings.getSetting('usersnap','color_primary','#3c768d');if(!primaryColor||primaryColor=='false'){primaryColor='#3c768d';}
4215if(primaryColor.substring(0,1)!=='#'){primaryColor='#'+primaryColor;}
4216var secondaryColor=MMI.Settings.getSetting('usersnap','secondary_color','#107581');if(!secondaryColor||secondaryColor=='false'){secondaryColor='#107581';}
4217if(secondaryColor.substring(0,1)!=='#'){secondaryColor='#'+secondaryColor;}
4218clog('colors',{primary:primaryColor,secondary:secondaryColor});return{primary:primaryColor,secondary:secondaryColor};}
4218,togglePageLayoutEditor:function(){var jqel_layouts=jQuery('.ecoLayoutEditableContainer');if(!jqel_layouts.length){cwarn('No layouts found. Exiting editor');return;}
4219var jqel_editor=jQuery('.be_pageLayoutEditorTools');var jqel_body=jQuery('body');var swapDelay=0;if(jqel_editor.length===0){jqel_editor=jQuery('<div class="be_pageLayoutEditorTools"></div>');jqel_body.append(jqel_editor);swapDelay=1000;var ajaxData={mode:'edit',view:'layout',id:jqel_body.mmiData('page_item_id')};var ajaxOptions={data:ajaxData,jqel:jqel_editor,mmiAjaxDone:function(){}};MMI.App.get().ajax(ajaxOptions);}
4220if(jqel_body.hasClass('be_pageLayoutEditorToolsOpen')){Be.Genome.Item.Layout.Edit.cancel();jqel_body.removeClass('be_pageLayoutEditorToolsOpen');}else{setTimeout(function(){jqel_body.addClass('be_pageLayoutEditorToolsOpen');},swapDelay);}},initializeImportWordToContent:function(jqel){if(!jqel){cwarn('No jqel element specified');return;}
4221MMI.Filedrop.enableFiledrop(jqel,{multiple:false});},handleDroppedFiles:function(fileDropObject,jqel,data){if(!jqel){cwarn('No jqel element specified');return;}
4222var extensions=['docx'];var allowedFiles=Be.SiteTools._getValidFiles(fileDropObject,extensions);var fileCount=allowedFiles.length;if(fileCount<1){MMI.App.get().displayWarningNotification('Please select a valid document. Allowed file types include '+extensions.join(', '));}else if(fileCount>0){allowedFiles.each(function(file){var url='/site/core/public/remote-helpers/word-to-html/api.php?command=word-to-html';file.sendTo(url);});}},uploadProgressDone:function(jqel,fileObject,response){var jqel_container=jqel.parents('.be_pageLayoutEditorToolsPanel_structure').first();if(response.message==='ok'){var content='<div class="ecoNewContent">'+response.result+'</div>';var jqel_target=jqel_container.find('.addNewItem').first().mmiData('jqel');var id=MMI.Util.randomize(16);Be.Genome.Item.Layout.Edit.generatePlaceholderInLayout('content',id,jqel_target,content)}},_getValidFiles:function(fileDropObject,extensions){var allFiles=false;var ext=[];jQuery.each(extensions,function(n,extension){var lowerCaseExtension=extension.toLowerCase().replace(/\./g,'');if(ext.indexOf(lowerCaseExtension)===-1){ext.push(lowerCaseExtension);}
4223if(lowerCaseExtension==='*'){allFiles=true;}});return fileDropObject.filter(function(f){var parts=f.name.split('.');var myExt=parts.pop();return(allFiles||ext.indexOf(myExt.toLowerCase())>-1);});}};window.onUserSnapLoad=function(api){Be.SiteTools.userSnapHasLoaded(api);};
4224MMI.Util.namespace('Be.SiteTools.LiveEventHandlers');Be.SiteTools.LiveEventHandlers={handleAppInstanceCreated:function(app){app.registerHandlerClass(Be.SiteTools.LiveEventHandlers);app.registerLiveEvents(['keyup']);},do_keyboardToClick:function(event,app,jqel,data){jqel.find('.be_siteToolsMenuItem.live_click').on('keyup',function(e){if(e.key.toUpperCase()==='ENTER'){jQuery(this).trigger('click');return false;}
4225return true;});},do_initializeSiteTools:function(event,app,jqel,data){jQuery('body').addClass('hasSiteTools');var url=window.location.href.replace(window.location.origin,'');jQuery('.be_siteToolsContainer .toolButton').each(function(){var jqel=jQuery(this);if(jqel.attr('href')==url){jqel.addClass('selected');}});new BeSiteToolsSections();},do_toggleSiteToolsMenu:function(event,app,jqel,data){const toolsContainer=jqel.get(0).closest('.be_siteToolsContainer');if(toolsContainer.classList.contains('open')){toolsContainer.classList.remove('open');jqel.removeClass('selected');const collapseEvent=new CustomEvent('collapse',{detail:{percent:100,originalEvent:event}});toolsContainer.dispatchEvent(collapseEvent);}else{toolsContainer.classList.add('open');jqel.addClass('selected');const searchInput=toolsContainer.querySelector('[name="organism_menuSearch"] [name="menuSearch"]');jQuery(searchInput).focus();const expandEvent=new CustomEvent('expand',{detail:{percent:100,originalEvent:event}});toolsContainer.dispatchEvent(expandEvent);}
4226return false;},do_checkLinkSelected:function(event,app,jqel,data){const $element=(jqel.get(0)instanceof HTMLAnchorElement)?jqel.get(0):jqel.get(0).querySelector('a');const url=new URL($element.href,window.location.origin);if((url.pathname==='/'&&document.querySelector('body').dataset.page_item_type==='home'&&!document.querySelector('body').classList.contains('be_itemListPage'))||(url.pathname!=='/'&&url.pathname===window.location.pathname)){jqel.addClass('selected');}},do_openSiteToolsMenuToSection:function(event,app,jqel,data){var jqel_menuToOpen=jQuery('.be_siteToolsMenuSection[data-menu_section="'+data.menu_section+'"]');var jqel_menuToOpenContents=jqel_menuToOpen.find('.be_siteToolsMenuSectionContents');jQuery('.be_siteToolsContainer').addClass('open');jQuery('.be_siteToolsMenuSection:not([data-menu_section="'+data.menu_section+'"])').removeClass('open mod_beFancyCollapsible_expand').addClass('mod_beFancyCollapsible_collapse');jQuery('.be_siteToolsMenuSectionContents').css('height','0px');jqel_menuToOpen.addClass('open mod_beFancyCollapsible_expand').removeClass('mod_beFancyCollapsible_collapse');jqel_menuToOpenContents.css('height','auto');}
4226,do_showSettings:function(event,app,jqel,data){app.alert({message:'This method has not been implemented yet: '+arguments.callee.name.toString()});return false;},do_showLayoutHtmlEditor:function(event,app,jqel,data){var jql_editPanelHtmlEditor=jQuery('.be_layoutEditor_itemSection>.sectionContent>.organism_field-textarea.mod_hidden');if(jql_editPanelHtmlEditor.length>0){jql_editPanelHtmlEditor.show();}else{alert('You need to be in Edit mode of a Content element in the Layout panel to use this.');}},do_showResaveItemsPrompt:function(event,app,jqel,data){app.prompt({message:'What item type? (example: page)',callback:function(response,dialogOptions){switch(response.id){case'ok':window.open('/?mode=maintenance&attitude=simple&command=resave&limit=20&offset=0&type='+response.value+'&autopilot=1');break;}}});},do_showResaveItemPrompt:function(event,app,jqel,data){app.prompt({message:'What item id?',callback:function(response,dialogOptions){switch(response.id){case'ok':window.open('/?mode=maintenance&attitude=simple&command=resave&limit=1&offset='+(response.value-1)+'&autopilot=0');break;}}});},do_showSiteVersionData:function(event,app,jqel,data){MMI.App.get().displaySiteRevisionData();},do_showGenomeDebugData:function(event,app,jqel,data){MMI.Debug.showDebugData();},do_loadDebugDataByDebugKey:function(event,app,jqel,data){MMI.Debug.loadDebugDataByDebugKey();},do_loadDebugDataByForDebugKey:function(event,app,jqel,data){let debugKey=data.debugKey;if(!debugKey){if(!debugKey){app.alert('Unable to load debug data. No debug key provided.');return;}}
4227window.open(MMI.Debug.getDebugDataUrlForKey(debugKey));},do_loadDebugDataForInitialPageLoad:function(event,app,jqel,data){MMI.Debug.loadDebugDataForInitialPageLoad();},do_loadDebugForLastRequest:function(event,app,jqel,data){MMI.Debug.loadDebugForLastRequest();},do_loadDebugForLastRequestByMode:function(event,app,jqel,data){MMI.Debug.loadDebugForLastRequestByMode(data.mode);},do_loadDebugForLastItemSaveRequest:function(event,app,jqel,data){MMI.Debug.loadDebugForLastItemSaveRequest();},do_loadWebDebugPage:function(){MMI.Debug.loadWebDebugPage();},do_loadDeploymentDebugPage:function(){MMI.Debug.loadDeploymentDebugPage();},do_showLoadedPackages:function(){var packagesHash=jQuery('body').data('packagesHash');if(!packagesHash){return;}
4228var app=MMI.App.get();if(app){var ajaxOptions={mmiAjaxDone:function(json,status,jqXhr,ajaxOptions){if(json.returnData&&json.returnData.packagesForHash){var jqel_dialog=ajaxOptions.jqel.smartBox('getDialog');jqel_dialog.find('.sb-window-content').html('<pre id="packages-for-hash-json-view"></pre>');jQuery('#packages-for-hash-json-view').jsonViewer(json.returnData.packagesForHash);}}};let dialogOptions=app._getSiteDialogOptionsForUseInCore('showLoadedPackages',{themes:['eco'],width:700,height:800});app.openDisplayItemDialog({id:app.getPageItemId()||1,view:'ajax_list_packages_for_hash',packagesHash:packagesHash},dialogOptions,ajaxOptions);}},do_toggleDebug:function(event,app,jqel,data){var enabled=data.debugEnabled;if(enabled=='null'){enabled=false;}
4229enabled=!enabled;jqel.data('debugEnabled',enabled);data.debugEnabled=enabled;var ajaxData={mode:'debug'};if(enabled){ajaxData.debug='enable';}else{ajaxData.debug='disable';}
4230app.ajax({data:ajaxData});Be.SiteTools.LiveEventHandlers.do_checkDebugStatus(event,app,jqel,data);},do_checkDebugStatus:function(event,app,jqel,data){var enabled=data.debugEnabled;var jqel_iconContainer=jqel.find('.be_siteToolsMenuItemIcon');var jqel_textContainer=jqel.find('.be_siteToolsMenuItemText');if(enabled){jqel_iconContainer.html('<i class="eco eco-toggle-on"></i>');jqel_textContainer.html('Disable Debug');}else{jqel_iconContainer.html('<i class="eco eco-toggle-off"></i>');jqel_textContainer.html('Enable Debug');}},do_showSiteItems:function(event,app,jqel,data){if(data.isSuperAdmin){var message='Dear Developer; Your users will not see this alert but instead of setting a click handler of showSiteItems and passing a list of item types, set the href property of the menu item and use be_site_tools_util::getItemListUrl([\''+data.itemTypes.join('\', \'')+'\'])';app.alert({message:message});return;}else{cwarn('do_showSiteItems is depreciated.');}
4231var types=data.itemTypes;var queryString='id=0&view=item_list';if(types){jQuery.each(types,function(n,type){queryString+='&item_types[]='+encodeURIComponent(type);});}
4232document.location.href='/?'+queryString;}
4232,do_showSiteNavigation:function(event,app,jqel,data){app.alert({message:'This method has not been implemented yet: '+arguments.callee.name.toString()});},do_showSiteStatistics:function(event,app,jqel,data){app.alert({message:'This method has not been implemented yet: '+arguments.callee.name.toString()});},do_showSiteSettings:function(event,app,jqel,data){app.alert({message:'This method has not been implemented yet: '+arguments.callee.name.toString()});},do_closeSiteToolsMenu:function(event,app,jqel,data){if(app.isMetaKeyDown()){return true;}
4233var jqel_toolsContainer=jQuery('.be_siteToolsContainer').first();var preferenceName="siteToolsMenuOpen_toolsMenu";jqel_toolsContainer.removeClass('open');jqel.removeClass('selected');if(preferenceName){app.setLocalValue(preferenceName,false);}
4234return true;},do_reportIssue:function(event,app,jqel,data){Be.SiteTools.reportError();},do_initializeUserSnap:function(event,app,jqel,data){Be.SiteTools.initializeUserSnap();},do_filterSiteTools:function(event,app,jqel,data){var jqel_searchOrganism=jQuery('[name=organism_menuSearch]');if(jqel_searchOrganism.length){var filterText=jQuery.trim(jqel_searchOrganism.find('input').val()).toLowerCase();var jqel_menuContainer=jQuery('.be_siteToolsMenuContainer');var jqel_options=jqel_menuContainer.find('.entry');jqel_options.removeClass('mod-force_hidden');if(filterText!==''){jqel_menuContainer.addClass('mod_beFancyCollapsible_force_expand');jqel_options.each(function(){var jqel_option=jQuery(this);var text=jqel_option.text().toLowerCase();if(text.indexOf(filterText)==-1){jqel_option.addClass('mod-force_hidden');}});}else{jqel_menuContainer.removeClass('mod_beFancyCollapsible_force_expand');}
4235var jqel_sections=jqel_menuContainer.find('section');jqel_sections.removeClass('mod-force_hidden');jqel_sections.each(function(){var jqel_section=jQuery(this);if(!jqel_section.find('.entry').filter(':visible').length){jqel_section.addClass('mod-force_hidden');}});var groupEndSelector='.entry-type--heading';var jqel_groupHeadings=jqel_menuContainer.find(groupEndSelector);jqel_groupHeadings.removeClass('mod-force_hidden');jqel_groupHeadings.each(function(){var $t=jQuery(this);var jqel_groupItems=$t.nextUntil(groupEndSelector);if(!jqel_groupItems.filter(':visible').length){$t.addClass('mod-force_hidden');}});}},do_initializeImportWordToContent:function(event,app,jqel,data){Be.SiteTools.initializeImportWordToContent(jqel);},do_siteToolsWordDocUploadSelected:function(event,app,jqel,data,fileDropObject){Be.SiteTools.handleDroppedFiles(fileDropObject,jqel,data);},do_siteToolsWordDocUploadDone:function(event,app,jqel,data,fileDropObject,response){Be.SiteTools.uploadProgressDone(jqel,fileDropObject,response);},do_siteToolsAddNew:function(event,app,jqel,data){document.location.href='/mode/edit/view=create&type=page';},do_togglePageLayoutEditor:function(event,app,jqel,data){if(jqel.hasClass('disabled')||jqel.parent().hasClass('disabled')){return;}
4236Be.SiteTools.togglePageLayoutEditor();},do_showSiteTeamPermissions:function(event,app,jqel,data){app.alert({message:'This method has not been implemented yet: '+arguments.callee.name.toString()});},do_enablePageLayoutEditorButton:function(event,app,jqel,data){const editableAreasCount=jQuery('.ecoLayoutEditableContainer').size();const $el=jqel.get(0);if(!editableAreasCount||jQuery('body').width()<800){$el.classList.add('disabled');}else{$el.classList.remove('disabled');}},do_onMitosisCartToggleChange:function(event,app,jqel,data){var value=data.organism.val();var xhrId='mitosisCartUpdate_'+data.item_id;MMI.App.get().ajax({xhrId:xhrId,data:{id:data.item_id,cartIds:value,view:'ajax_mitosis_cart_update'},mmiAjaxDone:function(){data.organism._setInitialValue(value);}});},do_openFormResultsFilterDialog:function(event,app,jqel,data){var ajaxData={id:data.item_id,view:'ajax_export_filter'};var dialogOptions={title:'Customize the Download',modal:true,width:630,height:650};var ajaxOptions={};app.openDisplayItemDialog(ajaxData,dialogOptions,ajaxOptions);}};MMI.App.registerInitCallback(Be.SiteTools.LiveEventHandlers.handleAppInstanceCreated);
4237/*!
4238 Copyright 2018 Google Inc. All Rights Reserved.
4239 Licensed under the Apache License, Version 2.0 (the "License");
4240 you may not use this file except in compliance with the License.
4241 You may obtain a copy of the License at
4242
4243     http://www.apache.org/licenses/LICENSE-2.0
4244
4245 Unless required by applicable law or agreed to in writing, software
4246 distributed under the License is distributed on an "AS IS" BASIS,
4247 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
4248 See the License for the specific language governing permissions and
4249 limitations under the License.
4250*/
4251
4252/*! lifecycle.es5.js v0.1.1 */!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.lifecycle=t()}(this,function(){"use strict";var e=void 0;try{new EventTarget,e=!1}catch(t){e=!1}var t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),r=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)},a=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t},s=function(){function e(){n(this,e),this._registry={}}return i(e,[{key:"addEventListener",value:function(e,t){this._getRegistry(e).push(t)}},{key:"removeEventListener",value:function(e,t){var n=this._getRegistry(e),i=n.indexOf(t);i>-1&&n.splice(i,1)}},{key:"dispatchEvent",value:function(e){return e.target=this,Object.freeze(e),this._getRegistry(e.type).forEach(function(t){return t(e)}),!0}},{key:"_getRegistry",value:function(e){return this._registry[e]=this._registry[e]||[]}}]),e}(),o=e?EventTarget:s,u=e?Event:function e(t){n(this,e),this.type=t},f=function(e){function t(e,i){n(this,t);var r=a(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return r.newState=i.newState,r.oldState=i.oldState,r.originalEvent=i.originalEvent,r}return r(t,u),t}(),c="active",h="passive",d="hidden",l="frozen",p="terminated",v="object"===("undefined"==typeof safari?"undefined":t(safari))&&safari.pushNotification,y=["focus","blur","visibilitychange","freeze","resume","pageshow","onpageshow"in self?"pagehide":"unload"],g=function(e){return e.preventDefault(),e.returnValue="Are you sure?"},_=[[c,h,d,p],[c,h,d,l],[d,h,c],[l,d],[l,c],[l,h]].map(function(e){return e.reduce(function(e,t,n){return e[t]=n,e},{})}),b=function(){return document.visibilityState===d?d:document.hasFocus()?c:h};return new(function(e){function t(){n(this,t);var e=a(this,(t.__proto__||Object.getPrototypeOf(t)).call(this)),i=b();return e._state=i,e._unsavedChanges=[],e._handleEvents=e._handleEvents.bind(e),y.forEach(function(t){return addEventListener(t,e._handleEvents,!0)}),v&&addEventListener("beforeunload",function(t){e._safariBeforeUnloadTimeout=setTimeout(function(){t.defaultPrevented||t.returnValue.length>0||e._dispatchChangesIfNeeded(t,d)},0)}),e}return r(t,o),i(t,[{key:"addUnsavedChanges",value:function(e){!this._unsavedChanges.indexOf(e)>-1&&(0===this._unsavedChanges.length&&addEventListener("beforeunload",g),this._unsavedChanges.push(e))}},{key:"removeUnsavedChanges",value:function(e){var t=this._unsavedChanges.indexOf(e);t>-1&&(this._unsavedChanges.splice(t,1),0===this._unsavedChanges.length&&removeEventListener("beforeunload",g))}},{key:"_dispatchChangesIfNeeded",value:function(e,t){if(t!==this._state)for(var n=function(e,t){for(var n,i=0;n=_[i];++i){var r=n[e],a=n[t];if(r>=0&&a>=0&&a>r)return Object.keys(n).slice(r,a+1)}return[]}(this._state,t),i=0;i<n.length-1;++i){var r=n[i],a=n[i+1];this._state=a,this.dispatchEvent(new f("statechange",{oldState:r,newState:a,originalEvent:e}))}}},{key:"_handleEvents",value:function(e){switch(v&&clearTimeout(this._safariBeforeUnloadTimeout),e.type){case"pageshow":case"resume":this._dispatchChangesIfNeeded(e,b());break;case"focus":this._dispatchChangesIfNeeded(e,c);break;case"blur":this._state===c&&this._dispatchChangesIfNeeded(e,b());break;case"pagehide":case"unload":this._dispatchChangesIfNeeded(e,e.persisted?l:p);break;case"visibilitychange":this._state!==l&&this._state!==p&&this._dispatchChangesIfNeeded(e,b());break;case"freeze":this._dispatchChangesIfNeeded(e,l)}}},{key:"state",get:function(){return this._state}},{key:"pageWasDiscarded",get:function(){return document.wasDiscarded||!1}}]),t}())});
4253Eco.Organism.Field.Text=Eco.Organism.Field.extend({_ieVersion:null,_isHideErrorsOnRefocu
4253sEnabled:true,__construct:function(jqel_organism){this._parent(jqel_organism);var jqel_moleculeInput=jqel_organism.find('.molecule_input');if(!jqel_moleculeInput.size()){jqel_moleculeInput=jQuery('<div class="molecule_input"></div>');this.jqel_field.before(jqel_moleculeInput);jqel_moleculeInput.append(this.jqel_field);}},initializeEvents:function(){var self=this;var formOrganism=this.getFormOrganism();this.jqel_field.on('keyup',function(event){if(formOrganism!==null){formOrganism.setFieldWithInProgressChanges(self);}
4254self._ieKeyNormalization(event);self._updatePopulatedStatus(self.readValue());self.hideErrors();self.jqel.trigger('eco_rapid_change',[self]);});this.jqel_field.on('change',function(){self.setValueFromInput(self.readValue(),self,null);});this.jqel_field.on('focus',function(){self._updateFieldToFocusedStatus();if(self._isHideErrorsOnRefocusEnabled){self.hideErrors();}
4255self._isHideErrorsOnRefocusEnabled=true;});this.jqel_field.on('keypress',function(event){if(event.key==='Enter'){self.onEnterPress(event);}});this.jqel_field.on('blur',function(){self._updateFieldToUnfocusedStatus();self.setValueFromInput(self.readValue(),self,null);if(formOrganism!==null){formOrganism.clearFieldWithInProgressChanges(self);}});this.jqel_field.on('focusin',function(){self._updateFieldToFocusedStatus();self.hideErrors();});this.jqel_field.on('focusout',function(){self._updateFieldToUnfocusedStatus();});},initializeDomDisplay:function(){this._parent();this._setPlaceholderText(this.jqel_label.text());this.initializeEvents();this._updatePopulatedStatus(this.readValue());},onEnterPress:function(event){if(this.jqel.data().blockSubmitOnEnterPress){event.stopPropagation();event.stopImmediatePropagation();event.preventDefault();var self=this;setTimeout(function(){self.jqel_field.trigger('blur');setTimeout(function(){self._isHideErrorsOnRefocusEnabled=false;self.jqel_field.trigger('focus');},200);},1);}},onValueError:function(errors,value,sourceOrganism){this._parent(errors,value,sourceOrganism);this._updatePopulatedStatus(value);},onValueUpdate:function(value,sourceOrganism,originalSourceOrganism){this._parent(value,sourceOrganism,originalSourceOrganism);this._updatePopulatedStatus(value);},readDomValue:function(){return this.jqel_field.val();},_getFieldElement:function(){var jqel=this.jqel.find('input[type=text],input[type=tel],input[type=url],input[type=email]').first();if(!jqel.size()){this._missingElementError('Eco.Organism.Field.Text','field','A common error is not setting the type="text" attribute on the input element.');}
4256return jqel;},_setPlaceholderText:function(text){if(!this.jqel_field.attr('placeholder')){this.jqel_field.attr('placeholder',text);}else{text=this.jqel_field.attr('placeholder');var jqel_temp=jQuery('<div></div>');jqel_temp.html(text);var cleaned=jqel_temp.text();if(cleaned!=text){this.jqel_field.attr('placeholder',cleaned);}}},_updatePopulatedStatus:function(value){if(value.getRawValue()){this.jqel.addClass('mod_populated');}else{this.jqel.removeClass('mod_populated');}},_getIeVersion:function(){if(this._ieVersion===null){this._ieVersion=Eco.Util.getIeVersion();}
4257return this._ieVersion;},_ieKeyNormalization:function(event){if(this._getIeVersion()){if(event.which===13){var formOrganism=this.getFormOrganism();if(formOrganism!==null){var jqel_form=formOrganism.getFormElement();this.jqel_field.blur();jqel_form.submit();}}}}});
4258Eco.Organism.Field.Textarea=Eco.Organism.Field.Text.extend({_getFieldElement:function(){var jqel=this.jqel.find('textarea');if(!jqel.size()){this._missingElementError('Eco.Organism.Field.Textarea','field');}
4259return jqel;},_ieKeyNormalization:function(){},onEnterPress:function(event){}});
4260Eco.Util.getNamespace('Eco.Organism.Field.Mixin.Flyout');Eco.Organism.Field.Mixin.Flyout={flyoutPositions:Object.freeze({ABOVE:'above',BELOW:'below'}),jqel_flyout:null,_staticFlyout:true,_flyoutInit:false,_flyoutPosition:false,initFlyout:function(){if(this._flyoutInit)return;this.jqel_flyout=this.jqel.find('.flyout');if(this.jqel.ecoData('flyoutClasses')){this.jqel_flyout.addClass(this.jqel.ecoData('flyoutClasses').join(' '));}
4261if(this.jqel.hasClass('mod_forceOpen')){console.warn('using deprecated class mod_forceOpen, use mod_static-flyout instead');}
4262if(!(this.jqel.hasClass('mod_static-flyout')||this.jqel.hasClass('mod_forceOpen'))){this._staticFlyout=false;var typeClassName=this.__jsName.split('.').pop().toLowerCase();typeClassName='flyout-'+typeClassName;this.jqel_flyout.addClass('flyout '+typeClassName).attr('data-for',this.jqel.attr('data-name'));}
4263this.addFlyoutEmptyMessage();this._flyoutInit=true;}
4263,addFlyoutEmptyMessage:function(){this.jqel_emptyMessage=this.jqel_flyout.find('.mod_show-on-empty');if(!this.jqel_emptyMessage.length){this.jqel_emptyMessage=jQuery('<div class="mod_show-on-empty atom_message">No options match your criteria.</div>');this.jqel_flyout.append(this.jqel_emptyMessage);}},openFlyout:function(target){if(this._staticFlyout)return;this.repositionFlyout(target);this._watchWindowResize();this._watchFocus();},closeFlyout:function(){if(this._staticFlyout)return;this.jqel.removeClass('mod_open');this.jqel_flyout.removeClass('mod_open mod_positioned-above mod_positioned-below');this._flyoutPosition=false;this._stopWatchingWindowResize();},repositionFlyout:function(target){if(this._staticFlyout)return;this.jqel_flyout.css({width:target.width(),top:0,left:0}).addClass('mod_open').removeClass('mod_positioned-above mod_positioned-below').position({my:'left top',at:'left bottom',of:target,using:(position,data)=>{var paddingLeft=data.target.element.css('padding-left');paddingLeft=paddingLeft.replace('px');paddingLeft=parseInt(paddingLeft,10);position.left+=paddingLeft;var positionClass='mod_positioned-';switch(data.vertical){case'bottom':this._flyoutPosition=this.flyoutPositions.ABOVE;break;case'top':default:this._flyoutPosition=this.flyoutPositions.BELOW;break;}
4264this.jqel_flyout.addClass(positionClass+this._flyoutPosition).css(position);}});},addModifier:function(mod){this._parent(mod);this.jqel_flyout.addClass(mod);return this;},removeModifier:function(mod){this._parent(mod);this.jqel_flyout.removeClass(mod);if(mod==='mod_open'){this.closeFlyout();}
4265return this;},toggleModifier:function(mod){this._parent(mod);this.jqel_flyout.toggleClass(mod);},clearOptionsState:function(state){this.jqel_flyout.find('.'+state).removeClass(state);},hasFocus:function(){return this._parent()||this.jqel_flyout[0].contains(document.activeElement);},_watchFocus:function(){throw'You must override the _watchFocus method in your flyout field';},_getNavigableItems:function(){throw'You must override the _getNavigableItems method in your flyout field';},_getFocusedOption:function(){throw'You must override the _getFocusedOption method in your flyout field';},_navigateOptions:function(direction,loop=false){const visibleItems=this._getNavigableItems();const jqel_currentSelection=this._getFocusedOption();function up(){var idx=jqel_currentSelection.length?visibleItems.index(jqel_currentSelection):visibleItems.length;if(--idx<0){return loop?visibleItems.eq(visibleItems.length-1):jQuery();}
4266return visibleItems.eq(idx);}
4267function down(){var idx=jqel_currentSelection.length?visibleItems.index(jqel_currentSelection):-1;if(++idx>=visibleItems.length){return loop?visibleItems.eq(0):jQuery();}
4268return visibleItems.eq(idx);}
4269const mover=direction.toUpperCase()==='UP'?up:down;this.clearOptionsState('mod_focused');return mover();},_boundResizeWatcher:null,_watchWindowResize:function(){var self=this;this._boundResizeWatcher=function(){self.repositionFlyout(self.jqel);};window.addEventListener('resize',this._boundResizeWatcher);},_stopWatchingWindowResize:function(){window.removeEventListener('resize',this._boundResizeWatcher);},};
4270Eco.Organism.Field.Select=Eco.Organism.Field.extend(Eco.Organism.Field.Mixin.Flyout,{_resetFilterOnClick:true,_movingWithArrowKeys:0,_unfocusTimeoutTimeInMilliseconds:15,_unfocusTimeout:null,jqel_options:null,jqel_wrapper:null,jqel_filterField:null,jqel_emptyMessage:null,_optionValues:null,_optionLabels:null,focusWatcher:null,_isMobile:null,_filterList:[],_lastSearch:'',_delayTimer:0,filterDelay:10,__construct:function(jqel_organism){this._parent(jqel_organism);this._optionValues=[];this._optionLabels=[];this.jqel.addClass('molecule_selectList');this.setUpFieldDomElements();},initializeDomDisplay:function(){this._parent();this.jqel.addClass('molecule_selectList');this.updateDisplayValue();},setUpFieldDomElements:function(){var self=this;var placeholderText=this.jqel.data('placeholder');if(typeof placeholderText==="string"&&placeholderText!==''){placeholderText=jQuery.trim(placeholderText);}else{placeholderText=jQuery.trim(this.jqel_label.text());}
4271if(!placeholderText){placeholderText='&nbsp;';}
4272var jqel_selectArea=this.jqel.find('.selectWrapper');if(jqel_selectArea.size()===0){var html='<div class="selectWrapper" tabindex="0"><div class="atom_input"><span class="atom_placeholder">'+placeholderText+'</span><span class="displayValue"></span></div>'+'<div class="flyout"><ul>';html+='</ul></div></div>';this.jqel_field.after(html);this.initFlyout();var optionSourceType=this.jqel_field.ecoData('option_source_choose');if(optionSourceType=='function'){var optionSourceFunctionName=this.jqel_field.ecoData('option_function');if(!window[optionSourceFunctionName]){throw Error('The target option source function does exist. Function Name: '+optionSourceFunctionName);}
4273var fnType=typeof(window[optionSourceFunctionName]);if(fnType!=='function'){throw Error('The target option source function exists as a window property but is a '+fnType+' and not a function. Function Name: '+optionSourceFunctionName);}
4274var optionsObject=window[optionSourceFunctionName].call();for(var value in optionsObject){if(!optionsObject.hasOwnProperty(value)){continue;}
4275var label=optionsObject[value];
4275self._addOption(label,value,false,{});}}else{var hasSelectedOption=false;this.jqel_field.children('option').each(function(){var jqel_option=jQuery(this);var value=jqel_option.attr('value');var labelElement=jQuery('<textarea/>');labelElement.html(jqel_option.html());var label=labelElement.text();var data=jqel_option.data();var selected=false;if(jqel_option.attr('selected')){hasSelectedOption=true;selected=true;}
4276self._addOption(label,value,selected,data);});}}
4277this.jqel_wrapper=this.jqel.find('.selectWrapper');if(!this.jqel_wrapper.attr('tabindex')){this.jqel_wrapper.attr('tabindex',0);}
4278this.jqel_input=this.jqel.find('.atom_input');this.jqel_displayValue=this.jqel_input.find('.displayValue');this.initFlyout();this.jqel_filterField=this.jqel.find('.filterField');if(!this.jqel_filterField.size()){placeholderText=this.jqel.find(".atom_placeholder").first().text();if(!placeholderText){placeholderText='Type to filter options';}
4279this.jqel_filterField=jQuery('<input class="filterField" placeholder="'+placeholderText+'" value=""/>');this.jqel_filterField.val(this.jqel_displayValue.text());this.jqel_displayValue.after(this.jqel_filterField);}
4280if(this.jqel_filterField.size()){const labels=this.jqel_filterField[0].labels||[];if(!labels.length){if(!this.jqel_filterField.attr('id')){const filterId=this.jqel.data('name')+'_filter';this.jqel_filterField.attr('id',filterId);}
4281jQuery(`<label for="${this.jqel_filterField.attr('id')}" class="sr-only">${placeholderText}</label>`).insertBefore(this.jqel_filterField);}
4282this.jqel_filterField.on('mousedown',maintainFocus);this.jqel_filterField.on('blur',unfocusIfNeeded);this.jqel_filterField.on('click',function(){return false;});this.jqel_filterField.on('change',function(){return false;});this.jqel_filterField.on('keydown',function(event){switch(event.key){case"ArrowDown":case"ArrowUp":self.jqel_filterField.parent().trigger(event);break;case"Enter":var currentText=self.jqel_filterField.val();var focused=self.filterOptionsFromField(true);if(focused&&focused.length){if(!self.hasModifier('mod_empty')){focused.trigger('click');return;}}
4283if(currentText){setTimeout(function(){self.jqel.trigger('new_select_option',[self,currentText]);},10);}
4284self._updateFieldToUnfocusedStatus();break;case"Escape":if(self.hasModifier('mod_open')){self._toggleOpenState(event);self.jqel_wrapper.focus();return false;}
4285break;default:clearTimeout(self._delayTimer);self._delayTimer=self.filterTimer=setTimeout(function(){self.filterOptionsFromField();},10);break;}});}
4286const prepend=this.jqel.find('[data-prepend-to-flyout]');const append=this.jqel.find('[data-append-to-flyout]');if(prepend.length||append.length){prepend.each(function(){jQuery(this).prependTo(self.jqel_flyout).removeAttr('data-prepend-to-flyout');});append.each(function(){jQuery(this).appendTo(self.jqel_flyout).removeAttr('data-append-to-flyout');});if(this.jqel.find('.molecule_children').children().length===0){this.jqel.find('.molecule_children').remove();}}
4287this.jqel_emptyMessage=this.jqel_flyout.find('.mod_show-on-empty');if(!this.jqel_emptyMessage.length){this.jqel_emptyMessage=jQuery('<div class="mod_show-on-empty atom_message">No options match your criteria.</div>');this.jqel_flyout.append(this.jqel_emptyMessage);}
4288this.jqel_input.on('click',function(event){self._toggleOpenState(event);self.hasModifier('mod_open')&&self.jqel_filterField.focus();});this.jqel_options=this.jqel_flyout.find('li[data-value]');function maintainFocus(){self._maintainFocus=true;}
4289this._initializeOptions(this.jqel_options);function unfocusIfNeeded(){if(!self._maintainFocus){self._updateFieldToUnfocusedStatus();}else{setTimeout(function(){if(!self.hasFocus()){self._updateFieldToUnfocusedStatus();}},1);}
4290self._maintainFocus=false;}
4291this.jqel_wrapper.on('focus',function(){self._updateFieldToFocusedStatus();});this.jqel_wrapper.on('blur',unfocusIfNeeded);this._initializeKeydown(this.jqel_wrapper);this.jqel_field.on('input',(e)=>{console.log('select input',e);e.stopPropagation();e.stopImmediatePropagation();e.preventDefault();this.val(e.target.value);return false;});this.jqel_field.on('change',(e)=>{e.stopPropagation();e.stopImmediatePropagation();e.preventDefault();return false;});this.reIndexValues();},_toggleOpenState:function(event,maintainFocus){if(this.isReadOnly()||this.isDisabled()){if
4291(event.cancelable){event.preventDefault();}
4292this.removeModifier('mod_focused');return false;}
4293this._maintainFocus=maintainFocus===true;this._clearFilter();this.toggleModifier('mod_open');if(this.hasModifier('mod_open')){this.openFlyout(this.jqel);}else{this.closeFlyout();}},_clearFilter:function(){this.clearOptionsState('mod_hidden');this.removeModifier('mod_empty');this.jqel_filterField.val('');this._lastSearch='';},_watchFocus:function(){const self=this;this.focusWatcher=setInterval(function(){if(!self.hasFocus()){self._movingWithArrowKeys=0;self._maintainFocus=false;self._updateFieldToUnfocusedStatus();clearInterval(self.focusWatcher);self.focusWatcher=null;}},250);},moveOption:function(value,targetPosition){let options=[];this.jqel_options.each(function(index){if(index>=targetPosition){index++;}
4294let option=jQuery(this);if(option.data('value')===value){options[targetPosition]=option.get(0);}else{options[index]=option.get(0);}});options.forEach(function(option,index,options){option.parentElement.insertBefore(option,options[index+1]);});},addOption:function(label,value,selected,data){value=''+value;this._addOption(label,value,false,data);this.jqel_options=this.jqel_flyout.find('li[data-value]');this._initializeOptions(this.jqel_options);if(selected){this.val(value);}else{this.updateDisplayValue();}},_addOption:function(label,value,selected,data){var newLiOption='<li tabindex="0" data-value="'+value+'"';if(selected){newLiOption+=' class="mod_selected"';}
4295if(data){for(var key in data){if(data.hasOwnProperty(key)){var dataValue=data[key];if(key=='value'){permaclog(this,this.jqel);throw Error("^^^ You cannot pass a data-value attribute in the <option> tag. Please set the value as <option value=$value> instead.");}else{newLiOption+=' data-'+key+'="'+dataValue+'"';}}}}
4296newLiOption+='>'+label+'</li>';var jqel_option=jQuery(newLiOption);this.jqel_flyout.find('> ul').first().append(jqel_option);this._optionValues.push(value);this._optionLabels.push(label);},removeOption:function(value){var location=this._optionValues.indexOf(value);var selected=false;if(location>-1){var el=this.jqel_flyout.find('[data-value="'+value+'"]');selected=el.hasClass('mod_selected');el.remove();this._optionLabels.splice(location,1);this._optionValues.splice(location,1);}
4297this.jqel_options=this.jqel_flyout.find('li[data-value]');if(selected){this.setValueFromInput(new Eco.OrganismValue(null,null),this,this.getOwnEntityName());}
4298this.updateDisplayValue();},replaceOptions:function(optionObjects){this.jqel_flyout.find('ul:first').html('');this._optionLabels=[];this._optionValues=[];var self=this;jQuery.each(optionObjects,function(n,obj){var value=obj.value;var label=obj.label;if(!label){label=value;}
4299var data=obj.data;var selected=obj.selected;self._addOption(label,value,selected,data);});this.jqel_options=this.jqel_flyout.find('li[data-value]');this._initializeOptions(this.jqel_options);this.updateDisplayValue();},_initializeKeydown:function(jqel_elements){var self=this;jqel_elements.on('keydown',function(event){if(self.isReadOnly()||self.isDisabled()){return false;}
4300var jqel=jQuery(this);var jqel_target=null;var trap=false;var alreadyOpen=self.hasModifier('mod_open');if(event.key==="Escape"){if(self.hasModifier('mod_open')){self._toggleOpenState(event);self.jqel_wrapper.focus();return false;}}
4301if(jqel.hasClass('selectWrapper')){function onlyOpen(){!self.hasModifier('mod_open')&&self._toggleOpenState(event);self.hasModifier('mod_open')&&self.jqel_filterField.focus();return!alreadyOpen;}
4302switch(event.key){case"ArrowDown":if(onlyOpen()){return false;}
4303jqel_target=self._getNavigableItems().first();trap=true;break;case"ArrowUp":if(onlyOpen()){return false;}
4304jqel_target=self._getNavigableItems().last();trap=true;break;case" ":case"Enter":return!onlyOpen();case"Tab":case"Shift":case"Escape":return true;default:if(!self.hasModifier('mod_open')){self._toggleOpenState(event);self.hasModifier('mod_open')&&self.jqel_filterField.focus();event.target=self.jqel_filterField.get(0);self._maintainFocus=true;self.jqel_filterField.trigger('focus').trigger(event);return true;}
4305if(event.target!=self.jqel_filterField.get(0)){event.target=self.jqel_filterField.get(0);self._maintainFocus=true;self.jqel_filterField.trigger('focus').trigger(event);}
4306break;}}else{switch(event.key){case"ArrowDown":jqel_target=self._navigateOptions("down").first();trap=true;break;case"ArrowUp":jqel_target=self._navigateOptions("up").first();trap=true;break;case"Enter":case"Tab":jqel.trigger('click');trap=true;break;default:if(event.key==" "&&self.jqel_filterField.val()===''){jqel.trigger('click');trap=true;}else{if(event.target!=self.jqel_filterField.get(0)){event.target=self.jqel_filterField.get(0);self._maintainFocus=true;self.jqel_filterField.trigger('focus').trigger(event);}}
4307break;}}
4308var movingWithArrowKeys=(["ArrowUp","ArrowDown"].indexOf(event.key)!=-1);if(jqel_target&&jqel_target.length){if(movingWithArrowKeys){self._movingWithArrowKeys=2;}
4309jqel_target.trigger('focus');}else{self.jqel_filterField.focus();}
4310if(trap){if(!movingWithArrowKeys){self._movingWithArrowKeys=0;}
4311event.preventDefault();event.stopPropagation();event.stopImmediatePropagation();return false;}});},_initializeOptions:function(jqel_options){var self=this;function maintainFocus(){self._maintainFocus=true;}
4312jqel_options.on('mousedown',maintainFocus);jqel_options.on('click',function(event){if(self.isReadOnly()||self.isDisabled()){if
4312(event.cancelable){event.preventDefault();}
4313self.jqel.removeClass('mod_focused');return false;}
4314var jqel_option=jQuery(this);if(jqel_option.hasClass('mod_disabled')){return;}
4315self.jqel_options.removeClass('mod_selected');jqel_option.addClass('mod_selected');self.closeFlyout();event.stopPropagation();event.stopImmediatePropagation();event.preventDefault();self.setValueFromInput(self.readValue(),self,self.getOwnEntityName());self.jqel_wrapper.trigger('focus');self._maintainFocus=false;self.updateDisplayValue();});this._setUpFilterList();jqel_options.each(function(){var jqel_option=jQuery(this);var label=jqel_option.text();if(!label||!jQuery.trim(label)){jqel_option.html('&nbsp;');}});this._initializeKeydown(jqel_options);},_getNavigableItems:function(){return this.jqel_flyout.find('ul li:visible:not(.mod_disabled)');},_getFocusedOption:function(){return this.jqel_flyout.find('li:focus');},_getFieldElement:function(){return this.jqel.find('select');},readDomValue:function(){var field=this.jqel_flyout;if(!field){field=this.jqel.find('.flyout');}
4316var value=field.find('li.mod_selected').first().data('value');return typeof value!=='undefined'?value:'';},removeFocus:function(){this._updateFieldToUnfocusedStatus();},_updateFieldToUnfocusedStatus:function(){if(this._movingWithArrowKeys<1){if(this._unfocusTimeout){return;}
4317var self=this;this._unfocusTimeout=setTimeout(function(){if(!self.hasFocus()){self.removeModifier('mod_focused');self.removeModifier('mod_open');self._final_updateFieldToUnfocusedStatus();}
4318self._unfocusTimeout=null;},this._unfocusTimeoutTimeInMilliseconds);}
4319this._movingWithArrowKeys--;},_final_updateFieldToUnfocusedStatus:function(){},getLabelForOption:function(optionValue){return this.getLabelForOptionByValue(optionValue);},getIndexForOptionByValue:function(optionValue){return this._optionValues.indexOf(optionValue+'');},getLabelForOptionByValue:function(optionValue){var optionIndex=this.getIndexForOptionByValue(optionValue);var displayText='';if(optionIndex>=0){displayText=this._optionLabels[optionIndex];}
4320return displayText;},getDataForOptionByValue:function(optionValue){var optionIndex=this.getIndexForOptionByValue(optionValue);var option=jQuery(this.jqel_options[optionIndex]);return option.data();},updateDisplayValueRender:function(){if(!this._hasInitializedDom){return;}
4321var displayTextPlaceholder='&nbsp;';var value=this.readValue();var displayText=this.getLabelForOption(value.getRawValue());if(!displayText||!jQuery.trim(displayText)){displayText=displayTextPlaceholder;}
4322if(displayText&&displayText!=displayTextPlaceholder){this.addModifier('mod_populated');}else{this.removeModifier('mod_populated');}
4323this.jqel_displayValue.html(displayText);if(value.getCleanValue()!==this.jqel_field.val()){this.jqel_field.val(value.getCleanValue());}},_setUpFilterList:function(){this._filterList=[];var self=this;this.jqel_options.each(function(){var jqel_option=jQuery(this);var thisText=jQuery.trim(jqel_option.text()).toLowerCase();thisText=thisText.replace(/\s+/g," ");var currentItem={text:thisText,element:jqel_option};self._filterList.push(currentItem);});},resetSelectedLists:function(){},filterOptionsFromField:function(ignoreMobile){var focused=false;var filterValue=this.jqel_filterField.val().toLowerCase();var jqel_list;if(this._lastSearch==filterValue){jqel_list=this.jqel_options.not('.mod_hidden');return jqel_list.find(':focus');}
4324this.removeModifier('mod_empty');var isVisible=false;if(filterValue){jQuery.each(this._filterList,function(n,filterData){var jqel_li=filterData.element;if(filterData.text.indexOf(filterValue)===-1){jqel_li.addClass('mod_hidden');}else{isVisible=true;jqel_li.removeClass('mod_hidden');}});}else{isVisible=true;this.jqel_flyout.find('li').removeClass('mod_hidden');}
4325jqel_list=this.jqel_options.not('.mod_hidden');var jqel_focused=jqel_list.find(':focus');if(!jqel_focused.size()){if(isVisible){this._maintainFocus=true;focused=jqel_list.first();if(!this.isMobile()||ignoreMobile){focused.trigger('focus');}}}
4326if(this.isMobile()&&!ignoreMobile){focused=this.jqel_field;}
4327if(isVisible){this.removeModifier('mod_empty');}else{this.addModifier('mod_empty');}
4328this._lastSearch=filterValue;return focused;},isMobile:function(){if(this._isMobile===null||this._isMobile===undefined){this._isIpad=(navigator.userAgent.match(/iPad/i)!=null);this._isMobile=false;if(navigator.userAgent.match(/iPhone/i)!=null||navigator.userAgent.match(/iPod/i)!=null||navigator.userAgent.match(/iPad/i)!=null||navigator.userAgent.match(/Android/i)!=null||navigator.userAgent.match(/Mobile/i)!=null){this._isMobile=true;}}
4329return this._isMobile;},insertNewSelectOption:function(value,label,select){var jqel_option=jQuery('<li data-value="'+value+'" tabindex="0"></li>');jqel_option.data('value',value);jqel_option.html(label);this.jqel_flyout.find('ul').append(jqel_option);this._initializeOptions(jqel_option);this.jqel_options=this.jqel_flyout.find('li');this.reIndexValues();if(select){jqel_option.trigger('click');}},reIndexValues:function(){var self=this;self._optionValues=[];self._optionLabels=[];this.jqel_options.each(function(){var jqel_option=jQuery(this);var label=jqel_option.html();var value=jqel_option.data('value');self._optionLabels.push(label);self._optionValues.push(value+'');});},unsetOwnValue:function(){this.jqel_options.removeClass('mod_selected');this._parent();},deselectOptions:function(options){var current=this._readValue();if(options.indexOf(current)>-1){var organismValue=new Eco.OrganismValue("","");this.jqel_options.removeClass('mod_selected');this.setValueFromInput(organismValue,this,this.getOwnEntityName());}
4330this.updateDisplayValue();},val:function(value){if(value===undefined){return this.getValue();}else{var jqel_currentOption=this.jqel_options.filter('[data-value="'+value+'"]');
vendor: 5,973 bytes, lines 4330-4332
4330if(jqel_currentOption.size()){this.jqel_options.removeClass('mod_selected');jqel_currentOption.addClass('mod_selected');var organismValue=new Eco.OrganismValue(value,this.cleanValue(value));this.setValueFromInput(organismValue,this,this.getOwnEntityName());this.updateDisplayValue();}
4331return null;}},reindexValues:function(){cwarn('You should call reIndexValues() instead. The "I" in "index" should be uppercase in your method call.');this.reIndexValues.apply(this,arguments);},focus:function(){this.jqel_input.trigger('click');}});
4332!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.genomeJsApi=e():t.genomeJsApi=e()}(self,(()=>(()=>{var t={75:(t,e,r)=>{"use strict";var n=r(453),o=r(487),i=o(n("String.prototype.indexOf"));t.exports=function(t,e){var r=n(t,!!e);return"function"==typeof r&&i(t,".prototype.")>-1?o(r):r}},487:(t,e,r)=>{"use strict";var n=r(743),o=r(453),i=r(897),a=r(675),s=o("%Function.prototype.apply%"),c=o("%Function.prototype.call%"),l=o("%Reflect.apply%",!0)||n.call(c,s),u=r(655),f=o("%Math.max%");t.exports=function(t){if("function"!=typeof t)throw new a("a function is required");var e=l(n,c,arguments);return i(e,1+f(0,t.length-(arguments.length-1)),!0)};var p=function(){return l(n,s,arguments)};u?u(t.exports,"apply",{value:p}):t.exports.apply=p},41:(t,e,r)=>{"use strict";var n=r(655),o=r(68),i=r(675),a=r(795);t.exports=function(t,e,r){if(!t||"object"!=typeof t&&"function"!=typeof t)throw new i("`obj` must be an object or a function`");if("string"!=typeof e&&"symbol"!=typeof e)throw new i("`property` must be a string or a symbol`");if(arguments.length>3&&"boolean"!=typeof arguments[3]&&null!==arguments[3])throw new i("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!=typeof arguments[4]&&null!==arguments[4])throw new i("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!=typeof arguments[5]&&null!==arguments[5])throw new i("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!=typeof arguments[6])throw new i("`loose`, if provided, must be a boolean");var s=arguments.length>3?arguments[3]:null,c=arguments.length>4?arguments[4]:null,l=arguments.length>5?arguments[5]:null,u=arguments.length>6&&arguments[6],f=!!a&&a(t,e);if(n)n(t,e,{configurable:null===l&&f?f.configurable:!l,enumerable:null===s&&f?f.enumerable:!s,value:r,writable:null===c&&f?f.writable:!c});else{if(!u&&(s||c||l))throw new o("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");t[e]=r}}},655:(t,e,r)=>{"use strict";var n=r(453)("%Object.defineProperty%",!0)||!1;if(n)try{n({},"a",{value:1})}catch(t){n=!1}t.exports=n},237:t=>{"use strict";t.exports=EvalError},383:t=>{"use strict";t.exports=Error},290:t=>{"use strict";t.exports=RangeError},538:t=>{"use strict";t.exports=ReferenceError},68:t=>{"use strict";t.exports=SyntaxError},675:t=>{"use strict";t.exports=TypeError},345:t=>{"use strict";t.exports=URIError},353:t=>{"use strict";var e=Object.prototype.toString,r=Math.max,n=function(t,e){for(var r=[],n=0;n<t.length;n+=1)r[n]=t[n];for(var o=0;o<e.length;o+=1)r[o+t.length]=e[o];return r};t.exports=function(t){var o=this;if("function"!=typeof o||"[object Function]"!==e.apply(o))throw new TypeError("Function.prototype.bind called on incompatible "+o);for(var i,a=function(t,e){for(var r=[],n=1,o=0;n<t.length;n+=1,o+=1)r[o]=t[n];return r}(arguments),s=r(0,o.length-a.length),c=[],l=0;l<s;l++)c[l]="$"+l;if(i=Function("binder","return function ("+function(t,e){for(var r="",n=0;n<t.length;n+=1)r+=t[n],n+1<t.length&&(r+=",");return r}(c)+"){ return binder.apply(this,arguments); }")((function(){if(this instanceof i){var e=o.apply(this,n(a,arguments));return Object(e)===e?e:this}return o.apply(t,n(a,arguments))})),o.prototype){var u=function(){};u.prototype=o.prototype,i.prototype=new u,u.prototype=null}return i}},743:(t,e,r)=>{"use strict";var n=r(353);t.exports=Function.prototype.bind||n},453:(t,e,r)=>{"use strict";var n,o=r(383),i=r(237),a=r(290),s=r(538),c=r(68),l=r(675),u=r(345),f=Function,p=function(t){try{return f('"use strict"; return ('+t+").constructor;")()}catch(t){}},y=Object.getOwnPropertyDescriptor;if(y)try{y({},"")}catch(t){y=null}var d=function(){throw new l},h=y?function(){try{return d}catch(t){try{return y(arguments,"callee").get}catch(t){return d}}}():d,m=r(39)(),g=r(24)(),b=Object.getPrototypeOf||(g?function(t){return t.__proto__}:null),v={},w="undefined"!=typeof Uint8Array&&b?b(Uint8Array):n,S={__proto__:null,"%AggregateError%":"undefined"==typeof AggregateError?n:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?n:ArrayBuffer,"%ArrayIteratorPrototype%":m&&b?b([][Symbol.iterator]()):n,"%AsyncFromSyncIteratorPrototype%":n,"%AsyncFunction%":v,"%AsyncGenerator%":v,"%AsyncGeneratorFunction%":v,"%AsyncIteratorPrototype%":v,"%Atomics%":"undefined"==typeof Atomics?n:Atomics,"%BigInt%":"undefined"==typeof BigInt?n:BigInt,"%BigInt64Array%":"undefined"==typeof BigInt64Array?n:BigInt64Array,"%BigUint64Array%":"undefined"==typeof BigUint64Array?n:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?n:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":o,"%eval%":eval,"%EvalError%":i,"%Float32Array%":"undefined"==typeof Float32Array?n:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?n:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?n:FinalizationRegistry,"%Function%":f,"%GeneratorFunction%":v,"%Int8Array%":"undefined"==typeof Int8Array?n:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?n:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?n:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%
4332IteratorPrototype%":m&&b?b(b([][Symbol.iterator]())):n,"%JSON%":"object"==typeof JSON?JSON:n,"%Map%":"undefined"==typeof Map?n:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&m&&b?b((new Map)[Symbol.iterator]()):n,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?n:Promise,"%Proxy%":"undefined"==typeof Proxy?n:Proxy,"%RangeError%":a,"%ReferenceError%":s,"%Reflect%":"undefined"==typeof Reflect?n:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?n:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&m&&b?b((new Set)[Symbol.iterator]()):n,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?n:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":m&&b?b(""[Symbol.iterator]()):n,"%Symbol%":m?Symbol:n,"%SyntaxError%":c,"%ThrowTypeError%":h,"%TypedArray%":w,"%TypeError%":l,"%Uint8Array%":"undefined"==typeof Uint8Array?n:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?n:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?n:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?n:Uint32Array,"%URIError%":u,"%WeakMap%":"undefined"==typeof WeakMap?n:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?n:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?n:WeakSet};if(b)try{null.error}catch(t){var E=b(b(t));S["%Error.prototype%"]=E}var O=function t(e){var r;if("%AsyncFunction%"===e)r=p("async function () {}");else if("%GeneratorFunction%"===e)r=p("function* () {}");else if("%AsyncGeneratorFunction%"===e)r=p("async function* () {}");else if("%AsyncGenerator%"===e){var n=t("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if("%AsyncIteratorPrototype%"===e){var o=t("%AsyncGenerator%");o&&b&&(r=b(o.prototype))}return S[e]=r,r},_={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},j=r(743),A=r(957),P=j.call(Function.call,Array.prototype.concat),x=j.call(Function.apply,Array.prototype.splice),R=j.call(Function.call,String.prototype.replace),T=j.call(Function.call,String.prototype.slice),F=j.call(Function.call,RegExp.prototype.exec),N=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,D=/\\(\\)?/g,C=function(t,e){var r,n=t;if(A(_,n)&&(n="%"+(r=_[n])[0]+"%"),A(S,n)){var o=S[n];if(o===v&&(o=O(n)),void 0===o&&!e)throw new l("intrinsic "+t+" exists, but is not available. Please file an issue!");return{alias:r,name:n,value:o}}throw new c("intrinsic "+t+" does not exist!")};t.exports=function(t,e){if("string"!=typeof t||0===t.length)throw new l("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof e)throw new l('"allowMissing" argument must be a boolean');if(null===F(/^%?[^%]*%?$/,t))throw new c("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=function(t){var e=T(t,0,1),r=T(t,-1);if("%"===e&&"%"!==r)throw new c("invalid intrinsic syntax, expected closing `%`");if("%"===r&&"%"!==e)throw new c("invalid intrinsic syntax, expected opening `%`");var n=[];return R(t,N,(function(t,e,r,o){n[n.length]=r?R(o,D,"$1"):e||t})),n}(t),n=r.length>0?r[0]:"",o=C("%"+n+"%",e),i=o.name,a=o.value,s=!1,u=o.alias;u&&(n=u[0],x(r,P([0,1],u)));for(var f=1,p=!0;f<r.length;f+=1){var d=r[f],h=T(d,0,1),m=T(d,-1);if(('"'===h||"'"===h||"`"===h||'"'===m||"'"===m||"`"===m)&&h!==m)throw new c("property names with quotes must have matching quotes");if("constructor"!==d&&p||(s=!0),A(S,i="%"+(n+="."+d)+"%"))a=S[i];
4332else if(null!=a){if(!(d in a)){if(!e)throw new l("base intrinsic for "+t+" exists, but the property is not available.");return}if(y&&f+1>=r.length){var g=y(a,d);a=(p=!!g)&&"get"in g&&!("originalValue"in g.get)?g.get:a[d]}else p=A(a,d),a=a[d];p&&!s&&(S[i]=a)}}return a}},795:(t,e,r)=>{"use strict";var n=r(453)("%Object.getOwnPropertyDescriptor%",!0);if(n)try{n([],"length")}catch(t){n=null}t.exports=n},592:(t,e,r)=>{"use strict";var n=r(655),o=function(){return!!n};o.hasArrayLengthDefineBug=function(){if(!n)return null;try{return 1!==n([],"length",{value:1}).length}catch(t){return!0}},t.exports=o},24:t=>{"use strict";var e={__proto__:null,foo:{}},r=Object;t.exports=function(){return{__proto__:e}.foo===e.foo&&!(e instanceof r)}},39:(t,e,r)=>{"use strict";var n="undefined"!=typeof Symbol&&Symbol,o=r(333);t.exports=function(){return"function"==typeof n&&"function"==typeof Symbol&&"symbol"==typeof n("foo")&&"symbol"==typeof Symbol("bar")&&o()}},333:t=>{"use strict";t.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var t={},e=Symbol("test"),r=Object(e);if("string"==typeof e)return!1;if("[object Symbol]"!==Object.prototype.toString.call(e))return!1;if("[object Symbol]"!==Object.prototype.toString.call(r))return!1;for(e in t[e]=42,t)return!1;if("function"==typeof Object.keys&&0!==Object.keys(t).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(t).length)return!1;var n=Object.getOwnPropertySymbols(t);if(1!==n.length||n[0]!==e)return!1;if(!Object.prototype.propertyIsEnumerable.call(t,e))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var o=Object.getOwnPropertyDescriptor(t,e);if(42!==o.value||!0!==o.enumerable)return!1}return!0}},957:(t,e,r)=>{"use strict";var n=Function.prototype.call,o=Object.prototype.hasOwnProperty,i=r(743);t.exports=i.call(n,o)},762:(t,e,r)=>{var n,o="__lodash_hash_undefined__",i=1/0,a="[object Function]",s="[object GeneratorFunction]",c="[object Symbol]",l=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,u=/^\w*$/,f=/^\./,p=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,y=/\\(\\)?/g,d=/^\[object .+?Constructor\]$/,h="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g,m="object"==typeof self&&self&&self.Object===Object&&self,g=h||m||Function("return this")(),b=Array.prototype,v=Function.prototype,w=Object.prototype,S=g["__core-js_shared__"],E=(n=/[^.]+$/.exec(S&&S.keys&&S.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",O=v.toString,_=w.hasOwnProperty,j=w.toString,A=RegExp("^"+O.call(_).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),P=g.Symbol,x=b.splice,R=L(g,"Map"),T=L(Object,"create"),F=P?P.prototype:void 0,N=F?F.toString:void 0;function D(t){var e=-1,r=t?t.length:0;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function C(t){var e=-1,r=t?t.length:0;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function I(t){var e=-1,r=t?t.length:0;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function k(t,e){for(var r,n,o=t.length;o--;)if((r=t[o][0])===(n=e)||r!=r&&n!=n)return o;return-1}function U(t,e){var r,n,o=t.__data__;return("string"==(n=typeof(r=e))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==r:null===r)?o["string"==typeof e?"string":"hash"]:o.map}function L(t,e){var r=function(t,e){return null==t?void 0:t[e]}(t,e);return function(t){if(!z(t)||E&&E in t)return!1;var e=function(t){var e=z(t)?j.call(t):"";return e==a||e==s}(t)||function(t){var e=!1;if(null!=t&&"function"!=typeof t.toString)try{e=!!(t+"")}catch(t){}return e}(t)?A:d;return e.test(function(t){if(null!=t){try{return O.call(t)}catch(t){}try{return t+""}catch(t){}}return""}(t))}(r)?r:void 0}D.prototype.clear=function(){this.__data__=T?T(null):{}},D.prototype.delete=function(t){return this.has(t)&&delete this.__data__[t]},D.prototype.get=function(t){var e=this.__data__;if(T){var r=e[t];return r===o?void 0:r}return _.call(e,t)?e[t]:void 0},D.prototype.has=function(t){var e=this.__data__;return T?void 0!==e[t]:_.call(e,t)},D.prototype.set=function(t,e){return this.__data__[t]=T&&void 0===e?o:e,this},C.prototype.clear=function(){this.__data__=[]},C.prototype.delete=function(t){var e=this.__data__,r=k(e,t);return!(r<0||(r==e.length-1?e.pop():x.call(e,r,1),0))},C.prototype.get=function(t){var e=this.__data__,r=k(e,t);return r<0?void 0:e[r][1]},C.prototype.has=function(t){return k(this.__data__,t)>-1}
4332,C.prototype.set=function(t,e){var r=this.__data__,n=k(r,t);return n<0?r.push([t,e]):r[n][1]=e,this},I.prototype.clear=function(){this.__data__={hash:new D,map:new(R||C),string:new D}},I.prototype.delete=function(t){return U(this,t).delete(t)},I.prototype.get=function(t){return U(this,t).get(t)},I.prototype.has=function(t){return U(this,t).has(t)},I.prototype.set=function(t,e){return U(this,t).set(t,e),this};var B=q((function(t){var e;t=null==(e=t)?"":function(t){if("string"==typeof t)return t;if($(t))return N?N.call(t):"";var e=t+"";return"0"==e&&1/t==-i?"-0":e}(e);var r=[];return f.test(t)&&r.push(""),t.replace(p,(function(t,e,n,o){r.push(n?o.replace(y,"$1"):e||t)})),r}));function M(t){if("string"==typeof t||$(t))return t;var e=t+"";return"0"==e&&1/t==-i?"-0":e}function q(t,e){if("function"!=typeof t||e&&"function"!=typeof e)throw new TypeError("Expected a function");var r=function(){var n=arguments,o=e?e.apply(this,n):n[0],i=r.cache;if(i.has(o))return i.get(o);var a=t.apply(this,n);return r.cache=i.set(o,a),a};return r.cache=new(q.Cache||I),r}q.Cache=I;var H=Array.isArray;function z(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function $(t){return"symbol"==typeof t||function(t){return!!t&&"object"==typeof t}(t)&&j.call(t)==c}t.exports=function(t,e,r){var n=null==t?void 0:function(t,e){var r;e=function(t,e){if(H(t))return!1;var r=typeof t;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=t&&!$(t))||u.test(t)||!l.test(t)||null!=e&&t in Object(e)}(e,t)?[e]:H(r=e)?r:B(r);for(var n=0,o=e.length;null!=t&&n<o;)t=t[M(e[n++])];return n&&n==o?t:void 0}(t,e);return void 0===n?r:n}},974:(t,e,r)=>{var n,o="__lodash_hash_undefined__",i=1/0,a=9007199254740991,s="[object Function]",c="[object GeneratorFunction]",l="[object Symbol]",u=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,f=/^\w*$/,p=/^\./,y=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,d=/\\(\\)?/g,h=/^\[object .+?Constructor\]$/,m=/^(?:0|[1-9]\d*)$/,g="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g,b="object"==typeof self&&self&&self.Object===Object&&self,v=g||b||Function("return this")(),w=Array.prototype,S=Function.prototype,E=Object.prototype,O=v["__core-js_shared__"],_=(n=/[^.]+$/.exec(O&&O.keys&&O.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",j=S.toString,A=E.hasOwnProperty,P=E.toString,x=RegExp("^"+j.call(A).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),R=v.Symbol,T=w.splice,F=q(v,"Map"),N=q(Object,"create"),D=R?R.prototype:void 0,C=D?D.toString:void 0;function I(t){var e=-1,r=t?t.length:0;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function k(t){var e=-1,r=t?t.length:0;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function U(t){var e=-1,r=t?t.length:0;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function L(t,e,r){var n=t[e];A.call(t,e)&&K(n,r)&&(void 0!==r||e in t)||(t[e]=r)}function B(t,e){for(var r=t.length;r--;)if(K(t[r][0],e))return r;return-1}function M(t,e){var r,n,o=t.__data__;return("string"==(n=typeof(r=e))||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==r:null===r)?o["string"==typeof e?"string":"hash"]:o.map}function q(t,e){var r=function(t,e){return null==t?void 0:t[e]}(t,e);return function(t){if(!G(t)||_&&_ in t)return!1;var e=function(t){var e=G(t)?P.call(t):"";return e==s||e==c}(t)||function(t){var e=!1;if(null!=t&&"function"!=typeof t.toString)try{e=!!(t+"")}catch(t){}return e}(t)?x:h;return e.test(function(t){if(null!=t){try{return j.call(t)}catch(t){}try{return t+""}catch(t){}}return""}(t))}(r)?r:void 0}function H(t,e){return!!(e=null==e?a:e)&&("number"==typeof t||m.test(t))&&t>-1&&t%1==0&&t<e}I.prototype.clear=function(){this.__data__=N?N(null):{}},I.prototype.delete=function(t){return this.has(t)&&delete this.__data__[t]},I.prototype.get=function(t){var e=this.__data__;if(N){var r=e[t];return r===o?void 0:r}return A.call(e,t)?e[t]:void 0},I.prototype.has=function(t){var e=this.__data__;return N?void 0!==e[t]:A.call(e,t)},I.prototype.set=function(t,e){return this.__data__[t]=N&&void 0===e?o:e,this},k.prototype.clear=function(){this.__data__=[]},k.prototype.delete=function(t){var e=this.__data__,r=B(e,t);return!(r<0||(r==e.length-1?e.pop():T.call(e,r,1),0))},k.prototype.get=function(t){var e=this.__data__,r=B(e,t);return r<0?void 0:e[r][1]},k.prototype.has=function(t){return B(this.__data__,t)>-1}
4332,k.prototype.set=function(t,e){var r=this.__data__,n=B(r,t);return n<0?r.push([t,e]):r[n][1]=e,this},U.prototype.clear=function(){this.__data__={hash:new I,map:new(F||k),string:new I}},U.prototype.delete=function(t){return M(this,t).delete(t)},U.prototype.get=function(t){return M(this,t).get(t)},U.prototype.has=function(t){return M(this,t).has(t)},U.prototype.set=function(t,e){return M(this,t).set(t,e),this};var z=W((function(t){var e;t=null==(e=t)?"":function(t){if("string"==typeof t)return t;if(J(t))return C?C.call(t):"";var e=t+"";return"0"==e&&1/t==-i?"-0":e}(e);var r=[];return p.test(t)&&r.push(""),t.replace(y,(function(t,e,n,o){r.push(n?o.replace(d,"$1"):e||t)})),r}));function $(t){if("string"==typeof t||J(t))return t;var e=t+"";return"0"==e&&1/t==-i?"-0":e}function W(t,e){if("function"!=typeof t||e&&"function"!=typeof e)throw new TypeError("Expected a function");var r=function(){var n=arguments,o=e?e.apply(this,n):n[0],i=r.cache;if(i.has(o))return i.get(o);var a=t.apply(this,n);return r.cache=i.set(o,a),a};return r.cache=new(W.Cache||U),r}function K(t,e){return t===e||t!=t&&e!=e}W.Cache=U;var V=Array.isArray;function G(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function J(t){return"symbol"==typeof t||function(t){return!!t&&"object"==typeof t}(t)&&P.call(t)==l}t.exports=function(t,e,r){return null==t?t:function(t,e,r,n){if(!G(t))return t;e=function(t,e){if(V(t))return!1;var r=typeof t;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=t&&!J(t))||f.test(t)||!u.test(t)||null!=e&&t in Object(e)}(e,t)?[e]:function(t){return V(t)?t:z(t)}(e);for(var o=-1,i=e.length,a=i-1,s=t;null!=s&&++o<i;){var c=$(e[o]),l=r;if(o!=a){var p=s[c];void 0===(l=n?n(p,c,s):void 0)&&(l=G(p)?p:H(e[o+1])?[]:{})}L(s,c,l),s=s[c]}return t}(t,e,r)}},859:(t,e,r)=>{var n="function"==typeof Map&&Map.prototype,o=Object.getOwnPropertyDescriptor&&n?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,i=n&&o&&"function"==typeof o.get?o.get:null,a=n&&Map.prototype.forEach,s="function"==typeof Set&&Set.prototype,c=Object.getOwnPropertyDescriptor&&s?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,l=s&&
vendor: 4,350 bytes, line 4332
4332c&&"function"==typeof c.get?c.get:null,u=s&&Set.prototype.forEach,f="function"==typeof WeakMap&&WeakMap.prototype?WeakMap.prototype.has:null,p="function"==typeof WeakSet&&WeakSet.prototype?WeakSet.prototype.has:null,y="function"==typeof WeakRef&&WeakRef.prototype?WeakRef.prototype.deref:null,d=Boolean.prototype.valueOf,h=Object.prototype.toString,m=Function.prototype.toString,g=String.prototype.match,b=String.prototype.slice,v=String.prototype.replace,w=String.prototype.toUpperCase,S=String.prototype.toLowerCase,E=RegExp.prototype.test,O=Array.prototype.concat,_=Array.prototype.join,j=Array.prototype.slice,A=Math.floor,P="function"==typeof BigInt?BigInt.prototype.valueOf:null,x=Object.getOwnPropertySymbols,R="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?Symbol.prototype.toString:null,T="function"==typeof Symbol&&"object"==typeof Symbol.iterator,F="function"==typeof Symbol&&Symbol.toStringTag&&(Symbol.toStringTag,1)?Symbol.toStringTag:null,N=Object.prototype.propertyIsEnumerable,D=("function"==typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(t){return t.__proto__}:null);function C(t,e){if(t===1/0||t===-1/0||t!=t||t&&t>-1e3&&t<1e3||E.call(/e/,e))return e;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if("number"==typeof t){var n=t<0?-A(-t):A(t);if(n!==t){var o=String(n),i=b.call(e,o.length+1);return v.call(o,r,"$&_")+"."+v.call(v.call(i,/([0-9]{3})/g,"$&_"),/_$/,"")}}return v.call(e,r,"$&_")}var I=r(634),k=I.custom,U=H(k)?k:null;function L(t,e,r){var n="double"===(r.quoteStyle||e)?'"':"'";return n+t+n}function B(t){return v.call(String(t),/"/g,"&quot;")}function M(t){return!("[object Array]"!==W(t)||F&&"object"==typeof t&&F in t)}function q(t){return!("[object RegExp]"!==W(t)||F&&"object"==typeof t&&F in t)}function H(t){if(T)return t&&"object"==typeof t&&t instanceof Symbol;if("symbol"==typeof t)return!0;if(!t||"object"!=typeof t||!R)return!1;try{return R.call(t),!0}catch(t){}return!1}t.exports=function t(e,n,o,s){var c=n||{};if($(c,"quoteStyle")&&"single"!==c.quoteStyle&&"double"!==c.quoteStyle)throw new TypeError('option "quoteStyle" must be "single" or "double"');if($(c,"maxStringLength")&&("number"==typeof c.maxStringLength?c.maxStringLength<0&&c.maxStringLength!==1/0:null!==c.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var h=!$(c,"customInspect")||c.customInspect;if("boolean"!=typeof h&&"symbol"!==h)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if($(c,"indent")&&null!==c.indent&&"\t"!==c.indent&&!(parseInt(c.indent,10)===c.indent&&c.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if($(c,"numericSeparator")&&"boolean"!=typeof c.numericSeparator)throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var w=c.numericSeparator;if(void 0===e)return"undefined";if(null===e)return"null";if("boolean"==typeof e)return e?"true":"false";if("string"==typeof e)return V(e,c);if("number"==typeof e){if(0===e)return 1/0/e>0?"0":"-0";var E=String(e);return w?C(e,E):E}if("bigint"==typeof e){var A=String(e)+"n";return w?C(e,A):A}var x=void 0===c.depth?5:c.depth;if(void 0===o&&(o=0),o>=x&&x>0&&"object"==typeof e)return M(e)?"[Array]":"[Object]";var k,z=function(t,e){var r;if("\t"===t.indent)r="\t";else{if(!("number"==typeof t.indent&&t.indent>0))return null;r=_.call(Array(t.indent+1)," ")}return{base:r,prev:_.call(Array(e+1),r)}}(c,o);if(void 0===s)s=[];else if(K(s,e)>=0)return"[Circular]";function G(e,r,n){if(r&&(s=j.call(s)).push(r),n){var i={depth:c.depth};return $(c,"quoteStyle")&&(i.quoteStyle=c.quoteStyle),t(e,i,o+1,s)}return t(e,c,o+1,s)}if("function"==typeof e&&!q(e)){var tt=function(t){if(t.name)return t.name;var e=g.call(m.call(t),/^function\s*([\w$]+)/);return e?e[1]:null}(e),et=Z(e,G);return"[Function"+(tt?": "+tt:" (anonymous)")+"]"+(et.length>0?" { "+_.call(et,", ")+" }":"")}if(H(e)){var rt=T?v.call(String(e),/^(Symbol\(.*\))_[^)]*$/,"$1"):R.call(e);return"object"!=typeof e||T?rt:J(rt)}if((k=e)&&"object"==typeof k&&("undefined"!=typeof HTMLElement&&k instanceof HTMLElement||"string"==typeof k.nodeName&&"function"==typeof k.getAttribute)){for(var nt="<"+S.call(String(e.nodeName)),ot=e.attributes||[],it=0;
vendor: 15,192 bytes, line 4332
4332it<ot.length;it++)nt+=" "+ot[it].name+"="+L(B(ot[it].value),"double",c);return nt+=">",e.childNodes&&e.childNodes.length&&(nt+="..."),nt+"</"+S.call(String(e.nodeName))+">"}if(M(e)){if(0===e.length)return"[]";var at=Z(e,G);return z&&!function(t){for(var e=0;e<t.length;e++)if(K(t[e],"\n")>=0)return!1;return!0}(at)?"["+Y(at,z)+"]":"[ "+_.call(at,", ")+" ]"}if(function(t){return!("[object Error]"!==W(t)||F&&"object"==typeof t&&F in t)}(e)){var st=Z(e,G);return"cause"in Error.prototype||!("cause"in e)||N.call(e,"cause")?0===st.length?"["+String(e)+"]":"{ ["+String(e)+"] "+_.call(st,", ")+" }":"{ ["+String(e)+"] "+_.call(O.call("[cause]: "+G(e.cause),st),", ")+" }"}if("object"==typeof e&&h){if(U&&"function"==typeof e[U]&&I)return I(e,{depth:x-o});if("symbol"!==h&&"function"==typeof e.inspect)return e.inspect()}if(function(t){if(!i||!t||"object"!=typeof t)return!1;try{i.call(t);try{l.call(t)}catch(t){return!0}return t instanceof Map}catch(t){}return!1}(e)){var ct=[];return a&&a.call(e,(function(t,r){ct.push(G(r,e,!0)+" => "+G(t,e))})),X("Map",i.call(e),ct,z)}if(function(t){if(!l||!t||"object"!=typeof t)return!1;try{l.call(t);try{i.call(t)}catch(t){return!0}return t instanceof Set}catch(t){}return!1}(e)){var lt=[];return u&&u.call(e,(function(t){lt.push(G(t,e))})),X("Set",l.call(e),lt,z)}if(function(t){if(!f||!t||"object"!=typeof t)return!1;try{f.call(t,f);try{p.call(t,p)}catch(t){return!0}return t instanceof WeakMap}catch(t){}return!1}(e))return Q("WeakMap");if(function(t){if(!p||!t||"object"!=typeof t)return!1;try{p.call(t,p);try{f.call(t,f)}catch(t){return!0}return t instanceof WeakSet}catch(t){}return!1}(e))return Q("WeakSet");if(function(t){if(!y||!t||"object"!=typeof t)return!1;try{return y.call(t),!0}catch(t){}return!1}(e))return Q("WeakRef");if(function(t){return!("[object Number]"!==W(t)||F&&"object"==typeof t&&F in t)}(e))return J(G(Number(e)));if(function(t){if(!t||"object"!=typeof t||!P)return!1;try{return P.call(t),!0}catch(t){}return!1}(e))return J(G(P.call(e)));if(function(t){return!("[object Boolean]"!==W(t)||F&&"object"==typeof t&&F in t)}(e))return J(d.call(e));if(function(t){return!("[object String]"!==W(t)||F&&"object"==typeof t&&F in t)}(e))return J(G(String(e)));if("undefined"!=typeof window&&e===window)return"{ [object Window] }";if(e===r.g)return"{ [object globalThis] }";if(!function(t){return!("[object Date]"!==W(t)||F&&"object"==typeof t&&F in t)}(e)&&!q(e)){var ut=Z(e,G),ft=D?D(e)===Object.prototype:e instanceof Object||e.constructor===Object,pt=e instanceof Object?"":"null prototype",yt=!ft&&F&&Object(e)===e&&F in e?b.call(W(e),8,-1):pt?"Object":"",dt=(ft||"function"!=typeof e.constructor?"":e.constructor.name?e.constructor.name+" ":"")+(yt||pt?"["+_.call(O.call([],yt||[],pt||[]),": ")+"] ":"");return 0===ut.length?dt+"{}":z?dt+"{"+Y(ut,z)+"}":dt+"{ "+_.call(ut,", ")+" }"}return String(e)};var z=Object.prototype.hasOwnProperty||function(t){return t in this};function $(t,e){return z.call(t,e)}function W(t){return h.call(t)}function K(t,e){if(t.indexOf)return t.indexOf(e);for(var r=0,n=t.length;r<n;r++)if(t[r]===e)return r;return-1}function V(t,e){if(t.length>e.maxStringLength){var r=t.length-e.maxStringLength,n="... "+r+" more character"+(r>1?"s":"");return V(b.call(t,0,e.maxStringLength),e)+n}return L(v.call(v.call(t,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,G),"single",e)}function G(t){var e=t.charCodeAt(0),r={8:"b",9:"t",10:"n",12:"f",13:"r"}[e];return r?"\\"+r:"\\x"+(e<16?"0":"")+w.call(e.toString(16))}function J(t){return"Object("+t+")"}function Q(t){return t+" { ? }"}function X(t,e,r,n){return t+" ("+e+") {"+(n?Y(r,n):_.call(r,", "))+"}"}function Y(t,e){if(0===t.length)return"";var r="\n"+e.prev+e.base;return r+_.call(t,","+r)+"\n"+e.prev}function Z(t,e){var r=M(t),n=[];if(r){n.length=t.length;for(var o=0;o<t.length;o++)n[o]=$(t,o)?e(t[o],t):""}var i,a="function"==typeof x?x(t):[];if(T){i={};for(var s=0;s<a.length;s++)i["$"+a[s]]=a[s]}for(var c in t)$(t,c)&&(r&&String(Number(c))===c&&c<t.length||T&&i["$"+c]instanceof Symbol||(E.call(/[^\w$]/,c)?n.push(e(c,t)+": "+e(t[c],t)):n.push(c+": "+e(t[c],t))));if("function"==typeof x)for(var l=0;l<a.length;l++)N.call(t,a[l])&&n.push("["+e(a[l])+"]: "+e(t[a[l]],t));return n}},765:t=>{"use strict";var e=String.prototype.replace,r=/%20/g,n="RFC3986";t.exports={default:n,formatters:{RFC1738:function(t){return e.call(t,r,"+")},RFC3986:function(t){return String(t)}},RFC1738:"RFC1738",RFC3986:n}},373:(t,e,r)=>{"use strict";var n=r(636),o=r(642),i=r(765);t.exports={formats:i,parse:o,stringify:n}},642:(t,e,r)=>{"use strict";var n=r(720),o=Object.prototype.hasOwnProperty,i=Array.isArray,a={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!0,decoder:n.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},s=function(t){return t.replace(/&#(\d+);/g,(function(t,e){return String.fromCharCode(parseInt(e,10))}))},c=function(t,e){return t&&"string"==typeof t&&e.comma&&t.indexOf(",")>-1?t.split(","):t},l=function(t,e,r,n){if(t){var i=r.allowDots?t.replace(/\.([^.[]+)/g,"[$1]"):t,a=/(\[[^[\]]*])/g,s=r.depth>0&&/(\[[^[\]]*])/.exec(i),l=s?i.slice(0,s.index):i,u=[];if(l){if(!r.plainObjects&&o.call(Object.prototype,l)&&!r.allowPrototypes)return;u.push(l)}for(var f=0;r.depth>0&&null!==(s=a.exec(i))&&f<r.depth;){if(f+=1,!r.plainObjects&&o.call(Object.prototype,s[1].slice(1,-1))&&!r.allowPrototypes)return;u.push(s[1])}return s&&u.push("["+i.slice(s.index)+"]"),function(t,e,r,n){for(var o=n?e:c(e,r),i=t.length-1;i>=0;--i){var a,s=t[i];if("[]"===s&&r.parseArrays)a=r.allowEmptyArrays&&""===o?[]:[].concat(o);else{a=r.plainObjects?Object.create(null):{};var l="["===s.charAt(0)&&"]"===s.charAt(s.length-1)?s.slice(1,-1):s,u=r.decodeDotInKeys?l.replace(/%2E/g,"."):l,f=parseInt(u,10);r.parseArrays||""!==u?!isNaN(f)&&s!==u&&String(f)===u&&f>=0&&r.parseArrays&&f<=r.arrayLimit?(a=[])[f]=o:"__proto__"!==u&&(a[u]=o):a={0:o}}o=a}return o}(u,e,r,n)}};t.exports=function(t,e){var r=function(t){if(!t)return a;if(void 0!==t.allowEmptyArrays&&"boolean"!=typeof t.allowEmptyArrays)throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(void 0!==t.decodeDotInKeys&&"boolean"!=typeof t.decodeDotInKeys)throw new TypeError("`decodeDotInKeys` option can only be `true` or `false`, when provided");if(null!==t.decoder&&void 0!==t.decoder&&"function"!=typeof t.decoder)throw new TypeError("Decoder has to be a function.");if(void 0!==t.charset&&"utf-8"!==t.charset&&"iso-8859-1"!==t.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var e=void 0===t.charset?a.charset:t.charset,r=void 0===t.duplicates?a.duplicates:t.duplicates;if("combine"!==r&&"first"!==r&&"last"!==r)throw new TypeError("The duplicates option must be either combine, first, or last");return{allowDots:void 0===t.allowDots?!0===t.decodeDotInKeys||a.allowDots:!!t.allowDots,allowEmptyArrays:"boolean"==typeof t.allowEmptyArrays?!!t.allowEmptyArrays:a.allowEmptyArrays,allowPrototypes:"boolean"==typeof t.allowPrototypes?t.allowPrototypes:a.allowPrototypes,allowSparse:"boolean"==typeof t.allowSparse?t.allowSparse:a.allowSparse,arrayLimit:"number"==typeof t.arrayLimit?t.arrayLimit:a.arrayLimit,charset:e,charsetSentinel:"boolean"==typeof t.charsetSentinel?t.charsetSentinel:a.charsetSentinel,comma:"boolean"==typeof t.comma?t.comma:a.comma,decodeDotInKeys:"boolean"==typeof t.decodeDotInKeys?t.decodeDotInKeys:a.decodeDotInKeys,decoder:"function"==typeof t.decoder?t.decoder:a.decoder,delimiter:"string"==typeof t.delimiter||n.isRegExp(t.delimiter)?t.delimiter:a.delimiter,depth:"number"==typeof t.depth||!1===t.depth?+t.depth:a.depth,duplicates:r,ignoreQueryPrefix:!0===t.ignoreQueryPrefix,interpretNumericEntities:"boolean"==typeof t.interpretNumericEntities?t.interpretNumericEntities:a.interpretNumericEntities,parameterLimit:"number"==typeof t.parameterLimit?t.parameterLimit:a.parameterLimit,parseArrays:!1!==t.parseArrays,plainObjects:"boolean"==typeof t.plainObjects?t.plainObjects:a.plainObjects,strictNullHandling:"boolean"==typeof t.strictNullHandling?t.strictNullHandling:a.strictNullHandling}}(e);if(""===t||null==t)return r.plainObjects?Object.create(null):{};for(var u="string"==typeof t?function(t,e){var r,l={__proto__:null},u=e.ignoreQueryPrefix?t.replace(/^\?/,""):t,f=e.parameterLimit===1/0?void 0:e.parameterLimit,p=u.split(e.delimiter,f),y=-1,d=e.charset;if(e.charsetSentinel)for(r=0;r<p.length;++r)0===p[r].indexOf("utf8=")&&("utf8=%E2%9C%93"===p[r]?d="utf-8":"utf8=%26%2310003%3B"===p[r]&&(d="iso-8859-1"),y=r,r=p.length);for(r=0;r<p.length;++r)if(r!==y){var h,m,g=p[r],b=g.indexOf("]="),v=-1===b?g.indexOf("="):b+1;-1===v?(h=e.decoder(g,a.decoder,d,"key"),m=e.strictNullHandling?null:""):(h=e.decoder(g.slice(0,v),a.decoder,d,"key"),m=n.maybeMap(c(g.slice(v+1),e),(function(t){return e.decoder(t,a.decoder,d,"value")}))),m&&e.interpretNumericEntities&&"iso-8859-1"===d&&(m=s(m)),g.indexOf("[]=")>-1&&(m=i(m)?[m]:m);var w=o.call(l,h);w&&"combine"===e.duplicates?l[h]=n.combine(l[h],m):w&&"last"!==e.duplicates||(l[h]=m)}return l}(t,r):t,f=r.plainObjects?Object.create(null):{},p=Object.keys(u),y=0;y<p.length;++y){var d=p[y],h=l(d,u[d],r,"string"==typeof t);f=n.merge(f,h,r)}return!0===r.allowSparse?f:n.compact(f)}},636:(t,e,r)=>{"use strict";var n=r(920),o=r(720),i=r(765),a=Object.prototype.hasOwnProperty,s={brackets:function(t){return t+"[]"},comma:"comma",indices:function(t,e){return t+"["+e+"]"},repeat:function(t){return t}},c=Array.isArray,l=Array.prototype.push,u=function(t,e){l.apply(t,c(e)?e:[e])},f=Date.prototype.toISOString,p=i.default,y={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:o.encode,encodeValuesOnly:!1,format:p,formatter:i.formatters[p],indices:!1,serializeDate:function(t){return f.call(t)},skipNulls:!1,strictNullHandling:!1},d={},h=function t(e,r,i,a,s,l,f,p,h,m,g,b,v,w,S,E,O,_){for(var j,A=e,P=_,x=0,R=!1;void 0!==(P=P.get(d))&&!R;){var T=P.get(e);if(x+=1,void 0!==T){if(T===x)throw new RangeError("Cyclic object value");R=!0}void 0===P.get(d)&&(x=0)}if("function"==typeof m?A=m(r,A):A instanceof Date?A=v(A):"comma"===i&&c(A)&&(A=o.maybeMap(A,(function(t){return t instanceof Date?v(t):t}))),null===A){if(l)return h&&!E?h(r,y.encoder,O,"key",w):r;A=""}if("string"==typeof(j=A)||"number"==typeof j||"boolean"==typeof j||"symbol"==typeof j||"bigint"==typeof j||o.isBuffer(A))return h?[S(E?r:h(r,y.encoder,O,"key",w))+"="+S(h(A,y.encoder,O,"value",w))]:[S(r)+"="+S(String(A))];var F,N=[];if(void 0===A)return N;if("comma"===i&&c(A))E&&h&&(A=o.maybeMap(A,h)),F=[{value:A.length>0?A.join(",")||null:void 0}];else if(c(m))F=m;else{var D=Object.keys(A);F=g?D.sort(g):D}var C=p?r.replace(/\./g,"%2E"):r,I=a&&c(A)&&1===A.length?C+"[]":C;if(s&&c(A)&&0===A.length)return I+"[]";for(var k=0;k<F.length;++k){var U=F[k],L="object"==typeof U&&void 0!==U.value?U.value:A[U];if(!f||null!==L){var B=b&&p?U.replace(/\./g,"%2E"):U,M=c(A)?"function"==typeof i?i(I,B):I:I+(b?"."+B:"["+B+"]");_.set(e,x);var q=n();q.set(d,_),u(N,t(L,M,i,a,s,l,f,p,"comma"===i&&E&&c(A)?null:h,m,g,b,v,w,S,E,O,q))}}return N};t.exports=function(t,e){var r,o=t,l=function(t){if(!t)return y;if(void 0!==t.allowEmptyArrays&&"boolean"!=typeof t.allowEmptyArrays)throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(void 0!==t.encodeDotInKeys&&"boolean"!=typeof t.encodeDotInKeys)throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(null!==t.encoder&&void 0!==t.encoder&&"function"!=typeof t.encoder)throw new TypeError("Encoder has to be a function.");var e=t.charset||y.charset;if(void 0!==t.charset&&"utf-8"!==t.charset&&"iso-8859-1"!==t.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var r=i.default;if(void 0!==t.format){if(!a.call(i.formatters,t.format))throw new TypeError("Unknown format option provided.");r=t.format}var n,o=i.formatters[r],l=y.filter;if(("function"==typeof t.filter||c(t.filter))&&(l=t.filter),n=t.arrayFormat in s?t.arrayFormat:"indices"in t?t.indices?"indices":"repeat":y.arrayFormat,"commaRoundTrip"in t&&"boolean"!=typeof t.commaRoundTrip)throw new TypeError("`commaRoundTrip` must be a boolean, or absent");var u=void 0===t.allowDots?!0===t.encodeDotInKeys||y.allowDots:!!t.allowDots;return{addQueryPrefix:"boolean"==typeof t.addQueryPrefix?t.addQueryPrefix:y.addQueryPrefix,allowDots:u,allowEmptyArrays:"boolean"==typeof t.allowEmptyArrays?!!t.allowEmptyArrays:y.allowEmptyArrays,arrayFormat:n,charset:e,charsetSentinel:"boolean"==typeof t.charsetSentinel?t.charsetSentinel:y.charsetSentinel,commaRoundTrip:t.commaRoundTrip,delimiter:void 0===t.delimiter?y.delimiter:t.delimiter,encode:"boolean"==typeof t.encode?t.encode:y.encode,encodeDotInKeys:"boolean"==typeof t.encodeDotInKeys?t.encodeDotInKeys:y.encodeDotInKeys,encoder:"function"==typeof t.encoder?t.encoder:y.encoder,encodeValuesOnly:"boolean"==typeof t.encodeValuesOnly?t.encodeValuesOnly:y.encodeValuesOnly,filter:l,format:r,formatter:o,serializeDate:"function"==typeof t.serializeDate?t.serializeDate:y.serializeDate,skipNulls:"boolean"==typeof t.skipNulls?t.skipNulls:y.skipNulls,sort:"function"==typeof t.sort?t.sort:null,strictNullHandling:"boolean"==typeof t.strictNullHandling?t.strictNullHandling:y.strictNullHandling}}(e);"function"==typeof l.filter?o=(0,l.filter)("",o):c(l.filter)&&(r=l.filter);var f=[];if("object"!=typeof o||null===o)return"";var p=s[l.arrayFormat],d="comma"===p&&l.commaRoundTrip;r||(r=Object.keys(o)),l.sort&&r.sort(l.sort);for(var m=n(),g=0;g<r.length;++g){var b=r[g];l.skipNulls&&null===o[b]||u(f,h(o[b],b,p,d,l.allowEmptyArrays,l.strictNullHandling,l.skipNulls,l.encodeDotInKeys,l.encode?l.encoder:null,l.filter,l.sort,l.allowDots,l.serializeDate,l.format,l.formatter,l.encodeValuesOnly,l.charset,m))}var v=f.join(l.delimiter),w=!0===l.addQueryPrefix?"?":"";return l.charsetSentinel&&("iso-8859-1"===l.charset?w+="utf8=%26%2310003%3B&":w+="utf8=%E2%9C%93&"),v.length>0?w+v:""}},720:(t,e,r)=>{"use strict";var n=r(765),o=Object.prototype.hasOwnProperty,i=Array.isArray,a=function(){for(var t=[],e=0;e<256;++e)t.push("%"+((e<16?"0":"")+e.toString(16)).toUpperCase());return t}(),s=function(t,e){for(var r=e&&e.plainObjects?Object.create(null):{},n=0;n<t.length;++n)void 0!==t[n]&&(r[n]=t[n]);return r};t.exports={arrayToObject:s,assign:function(t,e){return Object.keys(e).reduce((function(t,r){return t[r]=e[r],t}),t)},combine:function(t,e){return[].concat(t,e)},compact:function(t){for(var e=[{obj:{o:t},prop:"o"}],r=[],n=0;n<e.length;++n)for(var o=e[n],a=o.obj[o.prop],s=Object.keys(a),c=0;c<s.length;++c){var l=s[c],u=a[l];"object"==typeof u&&null!==u&&-1===r.indexOf(u)&&(e.push({obj:a,prop:l}),r.push(u))}return function(t){for(;t.length>1;){var e=t.pop(),r=e.obj[e.prop];if(i(r)){for(var n=[],o=0;o<r.length;++o)void 0!==r[o]&&n.push(r[o]);e.obj[e.prop]=n}}}(e),t},decode:function(t,e,r){var n=t.replace(/\+/g," ");
vendor: 4,861 bytes, line 4332
4332if("iso-8859-1"===r)return n.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(n)}catch(t){return n}},encode:function(t,e,r,o,i){if(0===t.length)return t;var s=t;if("symbol"==typeof t?s=Symbol.prototype.toString.call(t):"string"!=typeof t&&(s=String(t)),"iso-8859-1"===r)return escape(s).replace(/%u[0-9a-f]{4}/gi,(function(t){return"%26%23"+parseInt(t.slice(2),16)+"%3B"}));for(var c="",l=0;l<s.length;++l){var u=s.charCodeAt(l);45===u||46===u||95===u||126===u||u>=48&&u<=57||u>=65&&u<=90||u>=97&&u<=122||i===n.RFC1738&&(40===u||41===u)?c+=s.charAt(l):u<128?c+=a[u]:u<2048?c+=a[192|u>>6]+a[128|63&u]:u<55296||u>=57344?c+=a[224|u>>12]+a[128|u>>6&63]+a[128|63&u]:(l+=1,u=65536+((1023&u)<<10|1023&s.charCodeAt(l)),c+=a[240|u>>18]+a[128|u>>12&63]+a[128|u>>6&63]+a[128|63&u])}return c},isBuffer:function(t){return!(!t||"object"!=typeof t||!(t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer(t)))},isRegExp:function(t){return"[object RegExp]"===Object.prototype.toString.call(t)},maybeMap:function(t,e){if(i(t)){for(var r=[],n=0;n<t.length;n+=1)r.push(e(t[n]));return r}return e(t)},merge:function t(e,r,n){if(!r)return e;if("object"!=typeof r){if(i(e))e.push(r);else{if(!e||"object"!=typeof e)return[e,r];(n&&(n.plainObjects||n.allowPrototypes)||!o.call(Object.prototype,r))&&(e[r]=!0)}return e}if(!e||"object"!=typeof e)return[e].concat(r);var a=e;return i(e)&&!i(r)&&(a=s(e,n)),i(e)&&i(r)?(r.forEach((function(r,i){if(o.call(e,i)){var a=e[i];a&&"object"==typeof a&&r&&"object"==typeof r?e[i]=t(a,r,n):e.push(r)}else e[i]=r})),e):Object.keys(r).reduce((function(e,i){var a=r[i];return o.call(e,i)?e[i]=t(e[i],a,n):e[i]=a,e}),a)}}},897:(t,e,r)=>{"use strict";var n=r(453),o=r(41),i=r(592)(),a=r(795),s=r(675),c=n("%Math.floor%");t.exports=function(t,e){if("function"!=typeof t)throw new s("`fn` is not a function");if("number"!=typeof e||e<0||e>4294967295||c(e)!==e)throw new s("`length` must be a positive 32-bit integer");var r=arguments.length>2&&!!arguments[2],n=!0,l=!0;if("length"in t&&a){var u=a(t,"length");u&&!u.configurable&&(n=!1),u&&!u.writable&&(l=!1)}return(n||l||!r)&&(i?o(t,"length",e,!0,!0):o(t,"length",e)),t}},920:(t,e,r)=>{"use strict";var n=r(453),o=r(75),i=r(859),a=r(675),s=n("%WeakMap%",!0),c=n("%Map%",!0),l=o("WeakMap.prototype.get",!0),u=o("WeakMap.prototype.set",!0),f=o("WeakMap.prototype.has",!0),p=o("Map.prototype.get",!0),y=o("Map.prototype.set",!0),d=o("Map.prototype.has",!0),h=function(t,e){for(var r,n=t;null!==(r=n.next);n=r)if(r.key===e)return n.next=r.next,r.next=t.next,t.next=r,r};t.exports=function(){var t,e,r,n={assert:function(t){if(!n.has(t))throw new a("Side channel does not contain "+i(t))},get:function(n){if(s&&n&&("object"==typeof n||"function"==typeof n)){if(t)return l(t,n)}else if(c){if(e)return p(e,n)}else if(r)return function(t,e){var r=h(t,e);return r&&r.value}(r,n)},has:function(n){if(s&&n&&("object"==typeof n||"function"==typeof n)){if(t)return f(t,n)}else if(c){if(e)return d(e,n)}else if(r)return function(t,e){return!!h(t,e)}(r,n);return!1},set:function(n,o){s&&n&&("object"==typeof n||"function"==typeof n)?(t||(t=new s),u(t,n,o)):c?(e||(e=new c),y(e,n,o)):(r||(r={key:{},next:null}),function(t,e,r){var n=h(t,e);n?n.value=r:t.next={key:e,next:t.next,value:r}}(r,n,o))}};return n}},634:()=>{}},e={};function r(n){var o=e[n];if(void 0!==o)return o.exports;var i=e[n]={exports:{}};return t[n](i,i.exports,r),i.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{FileFieldValue:()=>be,Http:()=>le,Linker:()=>ue,Pager:()=>Xt,default:()=>ve});var t={};function e(t,e){return function(){return t.apply(e,arguments)}}r.r(t),r.d(t,{hasBrowserEnv:()=>rt,hasStandardBrowserEnv:()=>nt,hasStandardBrowserWebWorkerEnv:()=>it});const{toString:o}=Object.prototype,{getPrototypeOf:i}=Object,a=(s=Object.create(null),t=>{const e=o.call(t);return s[e]||(s[e]=e.slice(8,-1).toLowerCase())});var s;const c=t=>(t=t.toLowerCase(),e=>a(e)===t),l=t=>e=>typeof e===t,{isArray:u}=Array,f=l("undefined"),p=c("ArrayBuffer"),y=l("string"),d=l("function"),h=l("number"),m=t=>null!==t&&"object"==typeof t,g=t=>{if("object"!==a(t))return!1;const e=i(t);return!(null!==e&&e!==Object.prototype&&null!==Object.getPrototypeOf(e)||Symbol.toStringTag in t||Symbol.iterator in t)},b=c("Date"),v=c("File"),w=c("Blob"),S=c("FileList"),E=c("URLSearchParams");function O(t,e,{allOwnKeys:r=!1}={}){if(null==t)return;let n,o;
vendor: 4,840 bytes, line 4332
4332if("object"!=typeof t&&(t=[t]),u(t))for(n=0,o=t.length;n<o;n++)e.call(null,t[n],n,t);else{const o=r?Object.getOwnPropertyNames(t):Object.keys(t),i=o.length;let a;for(n=0;n<i;n++)a=o[n],e.call(null,t[a],a,t)}}function _(t,e){e=e.toLowerCase();const r=Object.keys(t);let n,o=r.length;for(;o-- >0;)if(n=r[o],e===n.toLowerCase())return n;return null}const j="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,A=t=>!f(t)&&t!==j,P=(x="undefined"!=typeof Uint8Array&&i(Uint8Array),t=>x&&t instanceof x);var x;const R=c("HTMLFormElement"),T=(({hasOwnProperty:t})=>(e,r)=>t.call(e,r))(Object.prototype),F=c("RegExp"),N=(t,e)=>{const r=Object.getOwnPropertyDescriptors(t),n={};O(r,((r,o)=>{let i;!1!==(i=e(r,o,t))&&(n[o]=i||r)})),Object.defineProperties(t,n)},D="abcdefghijklmnopqrstuvwxyz",C="0123456789",I={DIGIT:C,ALPHA:D,ALPHA_DIGIT:D+D.toUpperCase()+C},k=c("AsyncFunction"),U={isArray:u,isArrayBuffer:p,isBuffer:function(t){return null!==t&&!f(t)&&null!==t.constructor&&!f(t.constructor)&&d(t.constructor.isBuffer)&&t.constructor.isBuffer(t)},isFormData:t=>{let e;return t&&("function"==typeof FormData&&t instanceof FormData||d(t.append)&&("formdata"===(e=a(t))||"object"===e&&d(t.toString)&&"[object FormData]"===t.toString()))},isArrayBufferView:function(t){let e;return e="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&p(t.buffer),e},isString:y,isNumber:h,isBoolean:t=>!0===t||!1===t,isObject:m,isPlainObject:g,isUndefined:f,isDate:b,isFile:v,isBlob:w,isRegExp:F,isFunction:d,isStream:t=>m(t)&&d(t.pipe),isURLSearchParams:E,isTypedArray:P,isFileList:S,forEach:O,merge:function t(){const{caseless:e}=A(this)&&this||{},r={},n=(n,o)=>{const i=e&&_(r,o)||o;g(r[i])&&g(n)?r[i]=t(r[i],n):g(n)?r[i]=t({},n):u(n)?r[i]=n.slice():r[i]=n};for(let t=0,e=arguments.length;t<e;t++)arguments[t]&&O(arguments[t],n);return r},extend:(t,r,n,{allOwnKeys:o}={})=>(O(r,((r,o)=>{n&&d(r)?t[o]=e(r,n):t[o]=r}),{allOwnKeys:o}),t),trim:t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:t=>(65279===t.charCodeAt(0)&&(t=t.slice(1)),t),inherits:(t,e,r,n)=>{t.prototype=Object.create(e.prototype,n),t.prototype.constructor=t,Object.defineProperty(t,"super",{value:e.prototype}),r&&Object.assign(t.prototype,r)},toFlatObject:(t,e,r,n)=>{let o,a,s;const c={};if(e=e||{},null==t)return e;do{for(o=Object.getOwnPropertyNames(t),a=o.length;a-- >0;)s=o[a],n&&!n(s,t,e)||c[s]||(e[s]=t[s],c[s]=!0);t=!1!==r&&i(t)}while(t&&(!r||r(t,e))&&t!==Object.prototype);return e},kindOf:a,kindOfTest:c,endsWith:(t,e,r)=>{t=String(t),(void 0===r||r>t.length)&&(r=t.length),r-=e.length;const n=t.indexOf(e,r);return-1!==n&&n===r},toArray:t=>{if(!t)return null;if(u(t))return t;let e=t.length;if(!h(e))return null;const r=new Array(e);for(;e-- >0;)r[e]=t[e];return r},forEachEntry:(t,e)=>{const r=(t&&t[Symbol.iterator]).call(t);let n;for(;(n=r.next())&&!n.done;){const r=n.value;e.call(t,r[0],r[1])}},matchAll:(t,e)=>{let r;const n=[];for(;null!==(r=t.exec(e));)n.push(r);return n},isHTMLForm:R,hasOwnProperty:T,hasOwnProp:T,reduceDescriptors:N,freezeMethods:t=>{N(t,((e,r)=>{if(d(t)&&-1!==["arguments","caller","callee"].indexOf(r))return!1;const n=t[r];d(n)&&(e.enumerable=!1,"writable"in e?e.writable=!1:e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")}))}))},toObjectSet:(t,e)=>{const r={},n=t=>{t.forEach((t=>{r[t]=!0}))};return u(t)?n(t):n(String(t).split(e)),r},toCamelCase:t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(t,e,r){return e.toUpperCase()+r})),noop:()=>{},toFiniteNumber:(t,e)=>(t=+t,Number.isFinite(t)?t:e),findKey:_,global:j,isContextDefined:A,ALPHABET:I,generateString:(t=16,e=I.ALPHA_DIGIT)=>{let r="";const{length:n}=e;for(;t--;)r+=e[Math.random()*n|0];return r},isSpecCompliantForm:function(t){return!!(t&&d(t.append)&&"FormData"===t[Symbol.toStringTag]&&t[Symbol.iterator])},toJSONObject:t=>{const e=new Array(10),r=(t,n)=>{if(m(t)){if(e.indexOf(t)>=0)return;if(!("toJSON"in t)){e[n]=t;const o=u(t)?[]:{};return O(t,((t,e)=>{const i=r(t,n+1);!f(i)&&(o[e]=i)})),e[n]=void 0,o}}return t};return r(t,0)},isAsyncFn:k,isThenable:t=>t&&(m(t)||d(t))&&d(t.then)&&d(t.catch)};function L(t,e,r,n,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name="AxiosError",e&&(this.code=e),r&&(this.config=r),n&&(this.request=n),o&&(this.response=o)}U.inherits(L,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:U.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const B=L.prototype,M={};
vendor: 2,342 bytes, line 4332
4332["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((t=>{M[t]={value:t}})),Object.defineProperties(L,M),Object.defineProperty(B,"isAxiosError",{value:!0}),L.from=(t,e,r,n,o,i)=>{const a=Object.create(B);return U.toFlatObject(t,a,(function(t){return t!==Error.prototype}),(t=>"isAxiosError"!==t)),L.call(a,t.message,e,r,n,o),a.cause=t,a.name=t.name,i&&Object.assign(a,i),a};const q=L;function H(t){return U.isPlainObject(t)||U.isArray(t)}function z(t){return U.endsWith(t,"[]")?t.slice(0,-2):t}function $(t,e,r){return t?t.concat(e).map((function(t,e){return t=z(t),!r&&e?"["+t+"]":t})).join(r?".":""):e}const W=U.toFlatObject(U,{},null,(function(t){return/^is[A-Z]/.test(t)})),K=function(t,e,r){if(!U.isObject(t))throw new TypeError("target must be an object");e=e||new FormData;const n=(r=U.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(t,e){return!U.isUndefined(e[t])}))).metaTokens,o=r.visitor||l,i=r.dots,a=r.indexes,s=(r.Blob||"undefined"!=typeof Blob&&Blob)&&U.isSpecCompliantForm(e);if(!U.isFunction(o))throw new TypeError("visitor must be a function");function c(t){if(null===t)return"";if(U.isDate(t))return t.toISOString();if(!s&&U.isBlob(t))throw new q("Blob is not supported. Use a Buffer instead.");return U.isArrayBuffer(t)||U.isTypedArray(t)?s&&"function"==typeof Blob?new Blob([t]):Buffer.from(t):t}function l(t,r,o){let s=t;if(t&&!o&&"object"==typeof t)if(U.endsWith(r,"{}"))r=n?r:r.slice(0,-2),t=JSON.stringify(t);else if(U.isArray(t)&&function(t){return U.isArray(t)&&!t.some(H)}(t)||(U.isFileList(t)||U.endsWith(r,"[]"))&&(s=U.toArray(t)))return r=z(r),s.forEach((function(t,n){!U.isUndefined(t)&&null!==t&&e.append(!0===a?$([r],n,i):null===a?r:r+"[]",c(t))})),!1;return!!H(t)||(e.append($(o,r,i),c(t)),!1)}const u=[],f=Object.assign(W,{defaultVisitor:l,convertValue:c,isVisitable:H});if(!U.isObject(t))throw new TypeError("data must be an object");return function t(r,n){if(!U.isUndefined(r)){if(-1!==u.indexOf(r))throw Error("Circular reference detected in "+n.join("."));u.push(r),U.forEach(r,(function(r,i){!0===(!(U.isUndefined(r)||null===r)&&o.call(e,r,U.isString(i)?i.trim():i,n,f))&&t(r,n?n.concat(i):[i])})),u.pop()}}(t),e};
vendor: 4,279 bytes, line 4332
4332function V(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'()~]|%20|%00/g,(function(t){return e[t]}))}function G(t,e){this._pairs=[],t&&K(t,this,e)}const J=G.prototype;J.append=function(t,e){this._pairs.push([t,e])},J.toString=function(t){const e=t?function(e){return t.call(this,e,V)}:V;return this._pairs.map((function(t){return e(t[0])+"="+e(t[1])}),"").join("&")};const Q=G;function X(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Y(t,e,r){if(!e)return t;const n=r&&r.encode||X,o=r&&r.serialize;let i;if(i=o?o(e,r):U.isURLSearchParams(e)?e.toString():new Q(e,r).toString(n),i){const e=t.indexOf("#");-1!==e&&(t=t.slice(0,e)),t+=(-1===t.indexOf("?")?"?":"&")+i}return t}const Z=class{constructor(){this.handlers=[]}use(t,e,r){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){U.forEach(this.handlers,(function(e){null!==e&&t(e)}))}},tt={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},et={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:Q,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},rt="undefined"!=typeof window&&"undefined"!=typeof document,nt=(ot="undefined"!=typeof navigator&&navigator.product,rt&&["ReactNative","NativeScript","NS"].indexOf(ot)<0);var ot;const it="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,at={...t,...et},st=function(t){function e(t,r,n,o){let i=t[o++];if("__proto__"===i)return!0;const a=Number.isFinite(+i),s=o>=t.length;return i=!i&&U.isArray(n)?n.length:i,s?(U.hasOwnProp(n,i)?n[i]=[n[i],r]:n[i]=r,!a):(n[i]&&U.isObject(n[i])||(n[i]=[]),e(t,r,n[i],o)&&U.isArray(n[i])&&(n[i]=function(t){const e={},r=Object.keys(t);let n;const o=r.length;let i;for(n=0;n<o;n++)i=r[n],e[i]=t[i];return e}(n[i])),!a)}if(U.isFormData(t)&&U.isFunction(t.entries)){const r={};return U.forEachEntry(t,((t,n)=>{e(function(t){return U.matchAll(/\w+|\[(\w*)]/g,t).map((t=>"[]"===t[0]?"":t[1]||t[0]))}(t),n,r,0)})),r}return null},ct={transitional:tt,adapter:["xhr","http"],transformRequest:[function(t,e){const r=e.getContentType()||"",n=r.indexOf("application/json")>-1,o=U.isObject(t);if(o&&U.isHTMLForm(t)&&(t=new FormData(t)),U.isFormData(t))return n?JSON.stringify(st(t)):t;if(U.isArrayBuffer(t)||U.isBuffer(t)||U.isStream(t)||U.isFile(t)||U.isBlob(t))return t;if(U.isArrayBufferView(t))return t.buffer;if(U.isURLSearchParams(t))return e.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let i;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return function(t,e){return K(t,new at.classes.URLSearchParams,Object.assign({visitor:function(t,e,r,n){return at.isNode&&U.isBuffer(t)?(this.append(e,t.toString("base64")),!1):n.defaultVisitor.apply(this,arguments)}},e))}(t,this.formSerializer).toString();if((i=U.isFileList(t))||r.indexOf("multipart/form-data")>-1){const e=this.env&&this.env.FormData;return K(i?{"files[]":t}:t,e&&new e,this.formSerializer)}}return o||n?(e.setContentType("application/json",!1),function(t,e,r){if(U.isString(t))try{return(0,JSON.parse)(t),U.trim(t)}catch(t){if("SyntaxError"!==t.name)throw t}return(0,JSON.stringify)(t)}(t)):t}],transformResponse:[function(t){const e=this.transitional||ct.transitional,r=e&&e.forcedJSONParsing,n="json"===this.responseType;if(t&&U.isString(t)&&(r&&!this.responseType||n)){const r=!(e&&e.silentJSONParsing)&&n;try{return JSON.parse(t)}catch(t){if(r){if("SyntaxError"===t.name)throw q.from(t,q.ERR_BAD_RESPONSE,this,null,this.response);throw t}}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:at.classes.FormData,Blob:at.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};
vendor: 4,668 bytes, line 4332
4332U.forEach(["delete","get","head","post","put","patch"],(t=>{ct.headers[t]={}}));const lt=ct,ut=U.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),ft=Symbol("internals");function pt(t){return t&&String(t).trim().toLowerCase()}function yt(t){return!1===t||null==t?t:U.isArray(t)?t.map(yt):String(t)}function dt(t,e,r,n,o){return U.isFunction(n)?n.call(this,e,r):(o&&(e=r),U.isString(e)?U.isString(n)?-1!==e.indexOf(n):U.isRegExp(n)?n.test(e):void 0:void 0)}class ht{constructor(t){t&&this.set(t)}set(t,e,r){const n=this;function o(t,e,r){const o=pt(e);if(!o)throw new Error("header name must be a non-empty string");const i=U.findKey(n,o);(!i||void 0===n[i]||!0===r||void 0===r&&!1!==n[i])&&(n[i||e]=yt(t))}const i=(t,e)=>U.forEach(t,((t,r)=>o(t,r,e)));return U.isPlainObject(t)||t instanceof this.constructor?i(t,e):U.isString(t)&&(t=t.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim())?i((t=>{const e={};let r,n,o;return t&&t.split("\n").forEach((function(t){o=t.indexOf(":"),r=t.substring(0,o).trim().toLowerCase(),n=t.substring(o+1).trim(),!r||e[r]&&ut[r]||("set-cookie"===r?e[r]?e[r].push(n):e[r]=[n]:e[r]=e[r]?e[r]+", "+n:n)})),e})(t),e):null!=t&&o(e,t,r),this}get(t,e){if(t=pt(t)){const r=U.findKey(this,t);if(r){const t=this[r];if(!e)return t;if(!0===e)return function(t){const e=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=r.exec(t);)e[n[1]]=n[2];return e}(t);if(U.isFunction(e))return e.call(this,t,r);if(U.isRegExp(e))return e.exec(t);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,e){if(t=pt(t)){const r=U.findKey(this,t);return!(!r||void 0===this[r]||e&&!dt(0,this[r],r,e))}return!1}delete(t,e){const r=this;let n=!1;function o(t){if(t=pt(t)){const o=U.findKey(r,t);!o||e&&!dt(0,r[o],o,e)||(delete r[o],n=!0)}}return U.isArray(t)?t.forEach(o):o(t),n}clear(t){const e=Object.keys(this);let r=e.length,n=!1;for(;r--;){const o=e[r];t&&!dt(0,this[o],o,t,!0)||(delete this[o],n=!0)}return n}normalize(t){const e=this,r={};return U.forEach(this,((n,o)=>{const i=U.findKey(r,o);if(i)return e[i]=yt(n),void delete e[o];const a=t?function(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((t,e,r)=>e.toUpperCase()+r))}(o):String(o).trim();a!==o&&delete e[o],e[a]=yt(n),r[a]=!0})),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const e=Object.create(null);return U.forEach(this,((r,n)=>{null!=r&&!1!==r&&(e[n]=t&&U.isArray(r)?r.join(", "):r)})),e}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([t,e])=>t+": "+e)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...e){const r=new this(t);return e.forEach((t=>r.set(t))),r}static accessor(t){const e=(this[ft]=this[ft]={accessors:{}}).accessors,r=this.prototype;function n(t){const n=pt(t);e[n]||(function(t,e){const r=U.toCamelCase(" "+e);["get","set","has"].forEach((n=>{Object.defineProperty(t,n+r,{value:function(t,r,o){return this[n].call(this,e,t,r,o)},configurable:!0})}))}(r,t),e[n]=!0)}return U.isArray(t)?t.forEach(n):n(t),this}}ht.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),U.reduceDescriptors(ht.prototype,(({value:t},e)=>{let r=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(t){this[r]=t}}})),U.freezeMethods(ht);const mt=ht;function gt(t,e){const r=this||lt,n=e||r,o=mt.from(n.headers);let i=n.data;return U.forEach(t,(function(t){i=t.call(r,i,o.normalize(),e?e.status:void 0)})),o.normalize(),i}function bt(t){return!(!t||!t.__CANCEL__)}function vt(t,e,r){q.call(this,null==t?"canceled":t,q.ERR_CANCELED,e,r),this.name="CanceledError"}U.inherits(vt,q,{__CANCEL__:!0});const wt=vt,St=at.hasStandardBrowserEnv?{write(t,e,r,n,o,i){const a=[t+"="+encodeURIComponent(e)];U.isNumber(r)&&a.push("expires="+new Date(r).toGMTString()),U.isString(n)&&a.push("path="+n),U.isString(o)&&a.push("domain="+o),!0===i&&a.push("secure"),document.cookie=a.join("; ")},read(t){const e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove(t){this.write(t,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function Et(t,e){return t&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)?function(t,e){return e?t.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):t}(t,e):e}const Ot=at.hasStandardBrowserEnv?function(){const t=/(msie|trident)/i.test(navigator.userAgent),e=d
vendor: 7,752 bytes, line 4332
4332ocument.createElement("a");let r;function n(r){let n=r;return t&&(e.setAttribute("href",n),n=e.href),e.setAttribute("href",n),{href:e.href,protocol:e.protocol?e.protocol.replace(/:$/,""):"",host:e.host,search:e.search?e.search.replace(/^\?/,""):"",hash:e.hash?e.hash.replace(/^#/,""):"",hostname:e.hostname,port:e.port,pathname:"/"===e.pathname.charAt(0)?e.pathname:"/"+e.pathname}}return r=n(window.location.href),function(t){const e=U.isString(t)?n(t):t;return e.protocol===r.protocol&&e.host===r.host}}():function(){return!0};function _t(t,e){let r=0;const n=function(t,e){t=t||10;const r=new Array(t),n=new Array(t);let o,i=0,a=0;return e=void 0!==e?e:1e3,function(s){const c=Date.now(),l=n[a];o||(o=c),r[i]=s,n[i]=c;let u=a,f=0;for(;u!==i;)f+=r[u++],u%=t;if(i=(i+1)%t,i===a&&(a=(a+1)%t),c-o<e)return;const p=l&&c-l;return p?Math.round(1e3*f/p):void 0}}(50,250);return o=>{const i=o.loaded,a=o.lengthComputable?o.total:void 0,s=i-r,c=n(s);r=i;const l={loaded:i,total:a,progress:a?i/a:void 0,bytes:s,rate:c||void 0,estimated:c&&a&&i<=a?(a-i)/c:void 0,event:o};l[e?"download":"upload"]=!0,t(l)}}const jt="undefined"!=typeof XMLHttpRequest&&function(t){return new Promise((function(e,r){let n=t.data;const o=mt.from(t.headers).normalize();let i,a,{responseType:s,withXSRFToken:c}=t;function l(){t.cancelToken&&t.cancelToken.unsubscribe(i),t.signal&&t.signal.removeEventListener("abort",i)}if(U.isFormData(n))if(at.hasStandardBrowserEnv||at.hasStandardBrowserWebWorkerEnv)o.setContentType(!1);else if(!1!==(a=o.getContentType())){const[t,...e]=a?a.split(";").map((t=>t.trim())).filter(Boolean):[];o.setContentType([t||"multipart/form-data",...e].join("; "))}let u=new XMLHttpRequest;if(t.auth){const e=t.auth.username||"",r=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";o.set("Authorization","Basic "+btoa(e+":"+r))}const f=Et(t.baseURL,t.url);function p(){if(!u)return;const n=mt.from("getAllResponseHeaders"in u&&u.getAllResponseHeaders());!function(t,e,r){const n=r.config.validateStatus;r.status&&n&&!n(r.status)?e(new q("Request failed with status code "+r.status,[q.ERR_BAD_REQUEST,q.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r)):t(r)}((function(t){e(t),l()}),(function(t){r(t),l()}),{data:s&&"text"!==s&&"json"!==s?u.response:u.responseText,status:u.status,statusText:u.statusText,headers:n,config:t,request:u}),u=null}if(u.open(t.method.toUpperCase(),Y(f,t.params,t.paramsSerializer),!0),u.timeout=t.timeout,"onloadend"in u?u.onloadend=p:u.onreadystatechange=function(){u&&4===u.readyState&&(0!==u.status||u.responseURL&&0===u.responseURL.indexOf("file:"))&&setTimeout(p)},u.onabort=function(){u&&(r(new q("Request aborted",q.ECONNABORTED,t,u)),u=null)},u.onerror=function(){r(new q("Network Error",q.ERR_NETWORK,t,u)),u=null},u.ontimeout=function(){let e=t.timeout?"timeout of "+t.timeout+"ms exceeded":"timeout exceeded";const n=t.transitional||tt;t.timeoutErrorMessage&&(e=t.timeoutErrorMessage),r(new q(e,n.clarifyTimeoutError?q.ETIMEDOUT:q.ECONNABORTED,t,u)),u=null},at.hasStandardBrowserEnv&&(c&&U.isFunction(c)&&(c=c(t)),c||!1!==c&&Ot(f))){const e=t.xsrfHeaderName&&t.xsrfCookieName&&St.read(t.xsrfCookieName);e&&o.set(t.xsrfHeaderName,e)}void 0===n&&o.setContentType(null),"setRequestHeader"in u&&U.forEach(o.toJSON(),(function(t,e){u.setRequestHeader(e,t)})),U.isUndefined(t.withCredentials)||(u.withCredentials=!!t.withCredentials),s&&"json"!==s&&(u.responseType=t.responseType),"function"==typeof t.onDownloadProgress&&u.addEventListener("progress",_t(t.onDownloadProgress,!0)),"function"==typeof t.onUploadProgress&&u.upload&&u.upload.addEventListener("progress",_t(t.onUploadProgress)),(t.cancelToken||t.signal)&&(i=e=>{u&&(r(!e||e.type?new wt(null,t,u):e),u.abort(),u=null)},t.cancelToken&&t.cancelToken.subscribe(i),t.signal&&(t.signal.aborted?i():t.signal.addEventListener("abort",i)));const y=function(t){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}(f);y&&-1===at.protocols.indexOf(y)?r(new q("Unsupported protocol "+y+":",q.ERR_BAD_REQUEST,t)):u.send(n||null)}))},At={http:null,xhr:jt};U.forEach(At,((t,e)=>{if(t){try{Object.defineProperty(t,"name",{value:e})}catch(t){}Object.defineProperty(t,"adapterName",{value:e})}}));const Pt=t=>`- ${t}`,xt=t=>U.isFunction(t)||null===t||!1===t,Rt=t=>{t=U.isArray(t)?t:[t];const{length:e}=t;let r,n;const o={};for(let i=0;i<e;i++){let e;if(r=t[i],n=r,!xt(r)&&(n=At[(e=String(r)).toLowerCase()],void 0===n))throw new q(`Unknown adapter '${e}'`);if(n)break;o[e||"#"+i]=n}if(!n){const t=Object.entries(o).map((([t,e])=>`adapter ${t} `+(!1===e?"is not supported by the environment":"is not available in the build")));let r=e?t.length>1?"since :\n"+t.map(Pt).join("\n"):" "+Pt(t[0]):"as no adapter specified";throw new q("There is no suitable adapter to dispatch the request "+r,"ERR_NOT_SUPPORT")}return n};function Tt(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new wt(null,t)}function Ft(t){return Tt(t),t.headers=mt.from(t.headers),t.data=gt.call(t,t.transformRequest),-1!==["post","put","patch"].indexOf(t.method)&&t.headers.setContentType("application/x-www-form-urlencoded",!1),Rt(t.adapter||lt.adapter)(t).then((function(e){return Tt(t),e.data=gt.call(t,t.transformResponse,e),e.headers=mt.from(e.headers),e}),(function(e){return bt(e)||(Tt(t),e&&e.response&&(e.response.data=gt.call(t,t.transformResponse,e.response),e.response.headers=mt.from(e.response.headers))),Promise.reject(e)}))}const Nt=t=>t instanceof mt?{...t}:t;function Dt(t,e){e=e||{};const r={};function n(t,e,r){return U.isPlainObject(t)&&U.isPlainObject(e)?U.merge.call({caseless:r},t,e):U.isPlainObject(e)?U.merge({},e):U.isArray(e)?e.slice():e}function o(t,e,r){return U.isUndefined(e)?U.isUndefined(t)?void 0:n(void 0,t,r):n(t,e,r)}function i(t,e){if(!U.isUndefined(e))return n(void 0,e)}function a(t,e){return U.isUndefined(e)?U.isUndefined(t)?void 0:n(void 0,t):n(void 0,e)}function s(r,o,i){return i in e?n(r,o):i in t?n(void 0,r):void 0}const c={url:i,method:i,data:i,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,withXSRFToken:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,beforeRedirect:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:s,headers:(t,e)=>o(Nt(t),Nt(e),!0)};return U.forEach(Object.keys(Object.assign({},t,e)),(function(n){const i=c[n]||o,a=i(t[n],e[n],n);U.isUndefined(a)&&i!==s||(r[n]=a)})),r}const Ct={};["object","boolean","number","function","string","symbol"].forEach(((t,e)=>{Ct[t]=function(r){return typeof r===t||"a"+(e<1?"n ":" ")+t}}));const It={};Ct.transitional=function(t,e,r){function n(t,e){return"[Axios v1.6.8] Transitional option '"+t+"'"+e+(r?". "+r:"")}return(r,o,i)=>{if(!1===t)throw new q(n(o," has been removed"+(e?" in "+e:"")),q.ERR_DEPRECATED);return e&&!It[o]&&(It[o]=!0,console.warn(n(o," has been deprecated since v"+e+" and will be removed in the near future"))),!t||t(r,o,i)}};const kt={assertOptions:function(t,e,r){if("object"!=typeof t)throw new q("options must be an object",q.ERR_BAD_OPTION_VALUE);const n=Object.keys(t);let o=n.length;for(;o-- >0;){const i=n[o],a=e[i];if(a){const e=t[i],r=void 0===e||a(e,i,t);if(!0!==r)throw new q("option "+i+" must be "+r,q.ERR_BAD_OPTION_VALUE)}else if(!0!==r)throw new q("Unknown option "+i,q.ERR_BAD_OPTION)}},validators:Ct},Ut=kt.validators;class Lt{constructor(t){this.defaults=t,this.interceptors={request:new Z,response:new Z}}async request(t,e){try{return await this._request(t,e)}catch(t){if(t instanceof Error){let e;Error.captureStackTrace?Error.captureStackTrace(e={}):e=new Error;
vendor: 2,957 bytes, line 4332
4332const r=e.stack?e.stack.replace(/^.+\n/,""):"";t.stack?r&&!String(t.stack).endsWith(r.replace(/^.+\n.+\n/,""))&&(t.stack+="\n"+r):t.stack=r}throw t}}_request(t,e){"string"==typeof t?(e=e||{}).url=t:e=t||{},e=Dt(this.defaults,e);const{transitional:r,paramsSerializer:n,headers:o}=e;void 0!==r&&kt.assertOptions(r,{silentJSONParsing:Ut.transitional(Ut.boolean),forcedJSONParsing:Ut.transitional(Ut.boolean),clarifyTimeoutError:Ut.transitional(Ut.boolean)},!1),null!=n&&(U.isFunction(n)?e.paramsSerializer={serialize:n}:kt.assertOptions(n,{encode:Ut.function,serialize:Ut.function},!0)),e.method=(e.method||this.defaults.method||"get").toLowerCase();let i=o&&U.merge(o.common,o[e.method]);o&&U.forEach(["delete","get","head","post","put","patch","common"],(t=>{delete o[t]})),e.headers=mt.concat(i,o);const a=[];let s=!0;this.interceptors.request.forEach((function(t){"function"==typeof t.runWhen&&!1===t.runWhen(e)||(s=s&&t.synchronous,a.unshift(t.fulfilled,t.rejected))}));const c=[];let l;this.interceptors.response.forEach((function(t){c.push(t.fulfilled,t.rejected)}));let u,f=0;if(!s){const t=[Ft.bind(this),void 0];for(t.unshift.apply(t,a),t.push.apply(t,c),u=t.length,l=Promise.resolve(e);f<u;)l=l.then(t[f++],t[f++]);return l}u=a.length;let p=e;for(f=0;f<u;){const t=a[f++],e=a[f++];try{p=t(p)}catch(t){e.call(this,t);break}}try{l=Ft.call(this,p)}catch(t){return Promise.reject(t)}for(f=0,u=c.length;f<u;)l=l.then(c[f++],c[f++]);return l}getUri(t){return Y(Et((t=Dt(this.defaults,t)).baseURL,t.url),t.params,t.paramsSerializer)}}U.forEach(["delete","get","head","options"],(function(t){Lt.prototype[t]=function(e,r){return this.request(Dt(r||{},{method:t,url:e,data:(r||{}).data}))}})),U.forEach(["post","put","patch"],(function(t){function e(e){return function(r,n,o){return this.request(Dt(o||{},{method:t,headers:e?{"Content-Type":"multipart/form-data"}:{},url:r,data:n}))}}Lt.prototype[t]=e(),Lt.prototype[t+"Form"]=e(!0)}));const Bt=Lt;class Mt{constructor(t){if("function"!=typeof t)throw new TypeError("executor must be a function.");let e;this.promise=new Promise((function(t){e=t}));const r=this;this.promise.then((t=>{if(!r._listeners)return;let e=r._listeners.length;for(;e-- >0;)r._listeners[e](t);r._listeners=null})),this.promise.then=t=>{let e;const n=new Promise((t=>{r.subscribe(t),e=t})).then(t);return n.cancel=function(){r.unsubscribe(e)},n},t((function(t,n,o){r.reason||(r.reason=new wt(t,n,o),e(r.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1)}static source(){let t;return{token:new Mt((function(e){t=e})),cancel:t}}}const qt=Mt,Ht={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,Parti
4332alContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Ht).forEach((([t,e])=>{Ht[e]=t}));const zt=Ht,$t=function t(r){const n=new Bt(r),o=e(Bt.prototype.request,n);return U.extend(o,Bt.prototype,n,{allOwnKeys:!0}),U.extend(o,n,null,{allOwnKeys:!0}),o.create=function(e){return t(Dt(r,e))},o}(lt);$t.Axios=Bt,$t.CanceledError=wt,$t.CancelToken=qt,$t.isCancel=bt,$t.VERSION="1.6.8",$t.toFormData=K,$t.AxiosError=q,$t.Cancel=$t.CanceledError,$t.all=function(t){return Promise.all(t)},$t.spread=function(t){return function(e){return t.apply(null,e)}},$t.isAxiosError=function(t){return U.isObject(t)&&!0===t.isAxiosError},$t.mergeConfig=Dt,$t.AxiosHeaders=mt,$t.formToJSON=t=>st(U.isHTMLForm(t)?new FormData(t):t),$t.getAdapter=Rt,$t.HttpStatusCode=zt,$t.default=$t;const Wt=$t;var Kt=r(762),Vt=r(373),Gt=r(974);function Jt(t,e,r){if("function"==typeof t?t===e:t.has(e))return arguments.length<3?e:r;throw new TypeError("Private element is not present on this object")}var Qt=new WeakSet;class Xt{constructor(t,e=100){(function(t,e){!function(t,e){if(e.has(t))throw new TypeError("Cannot initialize the same private elements twice on an object")}(t,e),e.add(t)})(this,Qt),this.http=t,this._pageSize=e,this.url=void 0,this.config=void 0,this.totalItems=void 0,this.totalPages=void 0,this.currentPage=void 0}static get DEFAULT_PAGE_SIZE(){return 100}static get DEFAULT_PARALLEL_REQUESTS(){return 4}set pageSize(t){const e=this._pageSize;if(void 0!==this.currentPage&&void 0!==this.totalItems){const r=e*this.currentPage;this.totalPages=Math.ceil(this.totalItems/t);let n=1,o=n*t;for(;n<this.totalPages&&o<r;)n++,o=n*t;this.currentPage=n}this._pageSize=t}get pageSize(){return this._pageSize}setPageSize(t){return this.pageSize=t,this}get(t,e={}){return this.url=t,this.config=e,this}async loadPage(t){if(void 0===this.config||void 0===this.url)throw"You must call get(url [, config]) before getting results";const e=Jt(Qt,this,Yt).call(this,t);return this.http.request(e).then((e=>Jt(Qt,this,Zt).call(this,e,t)))}async loadAll(t="payload.items",e=4){if(void 0===this.config||void 0===this.url)throw"You must call get(url [, config]) before getting results";let r=[];const n=await this.loadPage(1);r[0]=Kt(n.data,t,[]);const o=[...Array(this.totalPages-1)].map(((t,e)=>e+2)).map(((t,e)=>Jt(Qt,this,Yt).call(this,t)));return this.http.batch(o,e).then((e=>(e.forEach((e=>{const n=Kt(e.data,t,[]);r[e.config.page-1]=n})),Gt(n.data,t,r.flat()),n)))}}function Yt(t){return{method:"GET",url:this.url,...this.config,params:{...this.config.params,limit:this.pageSize,offset:(t-1)*this.pageSize},page:t}}function Zt(t,e){if(!t.data.paging)return console.warn("no paging returned from pager call"),t;const r=t.data.paging;return this.currentPage=e,this.totalItems=r.total,this.totalPages=Math.ceil(this.totalItems/this.pageSize),t}function te(t,e,r){var n;return(e="symbol"==typeof(n=function(t,e){if("object"!=typeof t||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(e))?n:n+"")in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function ee(t,e,r){if("function"==typeof t?t===e:t.has(e))return arguments.length<3?e:r;throw new TypeError("Private element is not present on this object")}var re=new WeakSet;class ne{constructor(t={}){(function(t,e){!function(t,e){if(e.has(t))throw new TypeError("Cannot initialize the same private elements twice on an object")}(t,e),e.add(t)})(this,re),te(this,"CancelToken",Wt.CancelToken),te(this,"isCancel",Wt.isCancel),te(this,"AxiosHeaders",Wt.AxiosHeaders),te(this,"loginH
4332andler",(()=>Promise.reject())),te(this,"passwordResetHandler",(()=>Promise.reject())),te(this,"verificationHandler",(()=>Promise.reject())),te(this,"debugHistory",[]),this.service=Wt.create(t),this.service.defaults.withCredentials=!0,this.service.defaults.paramsSerializer=t=>Vt.stringify(t,{arrayFormat:"brackets",encodeValuesOnly:!0}),this.searchPath=t.searchPath||"/item_search",this.uploadPath=t.uploadPath||"/upload",this.maxDebugHistory=t.hasOwnProperty("maxDebugHistory")?t.maxDebugHistory:10,ee(re,this,oe).call(this),ee(re,this,ae).call(this)}request(...t){return this.service.request(...t)}get(...t){return this.service.get(...t)}delete(...t){return this.service.delete(...t)}head(...t){return this.service.head(...t)}options(...t){return this.service.options(...t)}post(...t){return this.service.post(...t)}put(...t){return this.service.put(...t)}patch(...t){return this.service.patch(...t)}getUri(...t){return this.service.getUri(...t)}get interceptors(){return this.service.interceptors}embedPipe(t,{thisId:e="item_id",thatId:r="item_parent",thisPath:n="payload.items",thatPath:o="payload.items",additionalParams:i={},customEndpoint:a=!1,property:s=t,additionalConfig:c={}}={}){return l=>this.embed(l,t,{thisId:e,thatId:r,thisPath:n,thatPath:o,additionalParams:i,customEndpoint:a,property:s,additionalConfig:c})}async embed(t,e,{thisId:r="item_id",thatId:n="item_parent",thisPath:o="payload.items",thatPath:i="payload.items",additionalParams:a={},customEndpoint:s=!1,property:c=e,additionalConfig:l={}}={}){const u=Kt(t.data,o,[]);if(0===u.length)return Promise.resolve(t);const f=this.generateEmbedRequestConfig(u,e,r,n,a,s,l,t);try{let e=[];
4332if(f){const t=await this.request(f);e=Kt(t.data,i,[])}return this.embedItems(u,e,c,r,n),Promise.resolve(t)}catch(t){throw t}}generateEmbedRequestConfig(t,e,r="item_id",n="item_parent",o={},i=!1,a={},s={}){const c=t.map((t=>t[r])).flat().filter(((t,e,r)=>t&&r.indexOf(t)===e));return s?.config?.signal&&!a.signal&&(a.signal=s.config.signal),!!c.length&&{method:"GET",url:!1===i?this.searchPath:i,params:{...o,item_type:e,[n]:c},...a}}embedItems(t,e,r,n="item_id",o="item_parent"){const i=t.reduce(((t,e,o)=>(e[r]=[],[e[n]].flat().forEach((r=>{t[r]||(t[r]=[]),t[r].push(e)})),t)),{});return e.forEach((t=>{i[t[o]].forEach((e=>e[r].push(t)))})),t}batch(t,e=4){const r=[],n=[];e||(e=1),t.forEach(((t,e)=>{let o,i;r[e]=new Promise(((t,e)=>{o=t,i=e})),n[e]=()=>this.request(t).then((t=>o(t))).catch((t=>i(t)))}));const o=async t=>{await t().then((()=>{const t=n.shift();t&&o(t)}))};return n.splice(0,e).forEach((t=>o(t))),Promise.all(r)}page(t){return new Xt(this,t)}upload({itemHash:t,fieldName:e,itemType:r,itemParent:n=0,fieldList:o="fieldList"},i,a=(()=>{}),s={}){if(!t||!e)throw"Must supply item data object with at least itemHash and fieldName";const c=new FormData;c.append("item_hash",t),c.append("field_name",e),c.append("item_type",r),c.append("item_parent",n),c.append("field_list",o),c.append("file",i);const l={url:this.uploadPath,method:"POST",data:c,onUploadProgress:a,...s};return this.request(l)}}function oe(){this.service.interceptors.response.use((t=>t),ee(re,this,ie).bind(this))}async function ie(t){if(t.response)try{if(401===t.response.status)return await this.loginHandler(Object.assign({},t)),this.service.request(t.config);if(403===t.response.status&&t.response.data.login.passwordResetRequired)return await this.passwordResetHandler(Object.assign({},t)),this.service.request(t.config);if(403===t.response.status&&t.response.data.login.mustVerify)return await this.verificationHandler(Object.assign({},t)),this.service.request(t.config)}catch(e){return Promise.reject(t)}return Promise.reject(t)}function ae(){this.service.interceptors.response.use((t=>ee(re,this,se).call(this,t)),(t=>(ee(re,this,se).call(this,t.response,t),Promise.reject(t)))),window.genomeJsApiDebug=()=>this.debugHistory,window.MMI&&window.MMI.Debug&&this.service.interceptors.response.use((t=>ee(re,this,ce).call(this,t)),(t=>(ee(re,this,ce).call(this,t.response),Promise.reject(t))))}function se(t,e=!1){const r={config:Kt(t,"config",!1),url:Kt(t,"config.url",!1),debugKey:Kt(t,"data.debug.key",!1),debugUrl:(()=>{const e=Kt(t,"data.debug.key",!1),r=Kt(t,"config.baseURL",!1);return!(!e||!r)&&`${new URL(t.config.baseURL).origin}/site/cache/public/debug/${e.substring(0,4)}/${e}.html`})(),canceled:!!e&&this.isCancel(e)};for(this.debugHistory.unshift(r);this.debugHistory.length>this.maxDebugHistory;)this.debugHistory.pop();return t}function ce(t){let e={...Kt(t,"data",{})},r=Kt(t,"config",!1);return e.debugKey=Kt(e,"debug.key",!1),e.postdata={mode:"api"},window.MMI.Debug.logServerDebugData(e,r),t}te(ne,"defaults",Wt.defaults);const le=ne;class ue{static downloadUrl(t,{field:e="file_path",fieldList:r="fieldList",absolute:n=ue.defaults.absolute,protocol:o=!1,host:i=!1,path:a="download"}={}){return ge((()=>{me(t,"item_id","download"),me(t,e,"download");const s=t[e];return[n?he(o,i):"",a,t.item_id,e,r,(c=s.file_filename,c=c.replace("&","and"))].join("/");var c}))}static imageUrl(t,{width:e=!1,height:r=!1,quality:n=!1,scale:o=!1,field:i="file_path",fieldList:a="fieldList",absolute:s=ue.defaults.absolute,protocol:c=!1,host:l=!1,path:u="site/cache/public/images"}={}){return ge((()=>{me(t,"item_id","image"),me(t,i,"image");const f=t[i];let p=f.file_extension;if("svg"===p)return[s?he(c,l):"","mode/file/display",`id=${t.item_id}&field=${i}&filename=image.svg`].join("/");{me(t,"item_current_version_id","image");let y=function(t){let e=""+Math.floor(t/1e3);for(;e.length<2;)e="0"+e;return e}(t.item_id);return e=e||(f.hasOwnProperty("width")?f.width:ue.defaults.width),r=r||(f.hasOwnProperty("height")?f.height:ue.defaults.height),n=n||ue.defaults.quality,o=o||ue.defaults.scale,p=p||"png",[s?he(c,l):"",u,y,t.item_id,a,i,[t.item_current_version_id,e,r,o,n].join("__")].join("/")+"."+p}}))}static displayUrl(t,{field:e="file_path",fieldList:r="fieldList",absolute:n=ue.defaults.absolute,protocol:o=!1,host:i=!1,path:a="page"}={}){return ge((()=>{me(t,"item_id","display"),me(t,e,"display");const r=t[e],s={mode:"file_display",field:e,fileName:r.file_filename};return[n?he(o,i):"",a,t.item_id,new URLSearchParams(s).toString()].join("/")}))}}var fe,pe,ye,de;function he(t=!1,e=!1){return`${t=t||ue.defaults.protocol||window.location.protocol}//${e=e||ue.defaults.host||window.location.host}`}function me(t,e,r){if(!t.hasOwnProperty(e))throw`'${e}' must exist on the item to generate ${r} urls`}function ge(t){try{return t()}catch(t){return console.error(t),"#"}}fe=ue,ye={absolute:!1,protocol:!1,host:!1,width:600,height:600,qual
4332ity:95,scale:"down"},(pe="symbol"==typeof(de=function(t,e){if("object"!=typeof t||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,"string");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(pe="defaults"))?de:de+"")in fe?Object.defineProperty(fe,pe,{value:ye,enumerable:!0,configurable:!0,writable:!0}):fe[pe]=ye;const be=Object.freeze({REMOVE_FILE:-1,INERT:"",SET_FIELD:1,READ_INPUT_STREAM:2,KEEP_CURRENT:3}),ve=le})(),n})()));
4333class ToolTip extends FocusTrap{static elements=new WeakMap();static activeTooltips=new Set();static globalListenersSetUp=false;#options={style:{classes:'molecule_tooltip be_tooltip',},position:{my:'top left',at:'bottom right',adjust:{x:0,y:0},target:false,},prerender:true,show:{event:'mouseenter focus',delay:90,solo:true,},hide:{event:'mouseleave blur',delay:90,fixed:true,},content:{},hidePointer:false,events:{show:(_event)=>{},hide:(_event)=>{},},};tooltip=null;#tooltipContent=null;target=null;#isShowing=false;#timeoutId=null;#handlers={show:[],hide:[],};#hideEvent=null;#showEvent=null;#disabled=false;#contentPromise;#contentPromiseResolve;#contentPromiseReject;constructor(el,passedOptions={}){super();if(!passedOptions||typeof passedOptions!=='object'){throw`Invalid options provided for tooltip.`;}
4334({promise:this.#contentPromise,resolve:this.#contentPromiseResolve,reject:this.#contentPromiseReject}=Promise.withResolvers());if(el instanceof Document){el=document.body;}
4335if(el instanceof jQuery){el=el.get(0);}
4336let selector;if(typeof(el)=='string'){selector=el;el=document.querySelector(selector);}
4337if(!el||!el instanceof HTMLElement){console.warn('ToolTip cannot be initialized without a valid source element.',el,passedOptions,selector);return;}
4338if(ToolTip.elements.has(el)){return;}
4339this.target=el;this.#loadOptions(passedOptions);if(!this.#options.content.text||this.#options.content.text===''){if(!passedOptions.content&&el.title!==''){this.#options['content']={text:el.title};el.removeAttribute('title');}}
4340this.addEventListeners();this.#configureTooltipEventHandlersForEvent('show');this.#configureTooltipEventHandlersForEvent('hide');if(this.#options.prerender||el===document.body){this.setUpTooltipDom();}
4341ToolTip.elements.set(el,this);if(!ToolTip.globalListenersSetUp){ToolTip.setUpGlobalListeners()}
4342if(this.#options.position.target==='mouse'){ToolTip.setUpMouseMoveEvent();}
4343jQuery(this.target).data('tooltip',this);let disableClass=this.#data('tooltipSuppressInsideClass');if(disableClass){if(el.closest('.'+disableClass)!==null){this.#disabled=true;}}
4344let autoShowElement=el.closest('[data-qtip-auto-show]');if(autoShowElement){let autoShow=autoShowElement.dataset.qtipAutoShow;if(autoShow===true||autoShow==='true'||autoShow==='1'){if(!this.tooltip){this.setUpTooltipDom();}
4345this.showAfterDelay();}}}#configureTooltipEventHandlersForEvent(eventName){if(this.#options.events instanceof Object){return;}
4346if(this.#options.events.hasOwnProperty(eventName)){let handlers=this.#options.events[eventName];if(!(handlers instanceof Array)){handlers=[handlers];}
4347for(let handler of handlers){if(handler instanceof Function){this.#handlers[eventName].push(handler);}}}}#onHide(){const event=new CustomEvent('tooltip.hide',{bubbles:true,detail:{tooltip:this,}});this.tooltip.dispatchEvent(event);}
4348hide(){this.clearTimeout();if(this.tooltip){if(this.tooltip.contains(document.activeElement)){this.target.focus();}
4349this.tooltip.hidePopover();this.tooltip.classList.remove('mod_open');}
4350this.#isShowing=false;ToolTip.activeTooltips.delete(this);this.#onHide();}
4351destroy(){ToolTip.activeTooltips.delete(this);ToolTip.elements.delete(this.target);this.removeEventListeners();this.tooltip.remove();this.tearDownFocusTrap();}#onShow(){const event=new CustomEvent('tooltip.show',{bubbles:true,detail:{tooltip:this,}});this.tooltip.dispatchEvent(event);}
4352show(){if(this.#disabled){return;}
4353if(this.#options.show.solo){ToolTip.activeTooltips.forEach((tooltip)=>{tooltip.hide();});}
4354this.clearTimeout();if(!this.tooltip){this.setUpTooltipDom();}
4355const source=((this.#options?.position?.target??false)instanceof HTMLElement)?this.#options.position.target:this.target;const options={};if(source instanceof HTMLElement){options.source=source;}else{console.warn('ToolTip cannot be positioned without a valid source element.',source);}
4356this.tooltip.showPopover(options);this.tooltip.classList.add('mod_open');this.#isShowing=true;ToolTip.activeTooltips.add(this);this.#onShow();}
4357toggle(){if(this.#isShowing){this.hide();}else{this.show();}}
4358showAfterDelay(){if(!this.tooltip){this.setUpTooltipDom();}
4359if(this.#options.show.delay){this.clearTimeout();this.timeoutId=setTimeout(()=>{this.show();this.timeoutId=null;},this.#options.show.delay);}else{this.show();}}
4360hideAfterDelay(){if(!this.#isShowing){if(this.timeoutId){let bothClicks=`${this.#options.hide.event}`.indexOf('click')>-1&&`${this.#options.show.event}`.indexOf('click')>-1;if(this.#options.show.event!==this.#options.hide.event&&!bothClicks){clearTimeout(this.timeoutId);}}
4361return;}
4362if(this.#options.hide.delay){this.clearTimeout();this.timeoutId=setTimeout(()=>{this.checkForHideAfterDelay();this.timeoutId=null;},this.#options.hide.delay);}else{this.checkForHideAfterDelay();}}#hideOnEscape(e){if(this.#isShowing&&e.key==='Escape'){this.hide();return true;}
4363return false;}
4364enable(){this.#disabled=false;}
4365disable(){this.#disabled=true;}
4366clearTimeout(){if(this.timeoutId>0){clearTimeout(this.timeoutId);this.#timeoutId=0;}}
4367checkForHideAfterDelay(){this.clearTimeout();if(this.#options.hide.fixed){if(!this.tooltip){return;}
4368if(this.target.matches(":hover")||this.tooltip.matches(":hover")||this.tooltip.matches(":focus-within")){this.timeoutId=setTimeout(()=>{this.hideAfterDelay();this.timeoutId=null;},200);return;}}
4369this.hide();}
4370static showTooltipByElement(el){let instance=ToolTip.instance(el);if(instance){instance.show();}}
4371static hideTooltipByElement(el){let instance=ToolTip.instance(el);if(instance){instance.hide();}}
4372get hideEvent(){return this.#hideEvent;}
4373get showEvent(){return this.#showEvent;}
4374get disabled(){return this.#disabled;}
4375addEventListeners(){let showEventString=this.#options['show']['event'];let hideEventString=this.#options['hide']['event'];if(showEventString){this.#showEvent=this.showAfterDelay.bind(this);let showEvents=showEventString.split(' ');for(let showEvent of showEvents){showEvent=showEvent.trim();if(showEvent){this.target.addEventListener(showEvent,this.#showEvent);}}}
4376if(hideEventString){this.#hideEvent=this.hideAfterDelay.bind(this);let hideEvents=hideEventString.split(' ');
4376if(hideEvents.includes('unfocus')){const idx=hideEvents.indexOf('unfocus');hideEvents.splice(idx,1);['mousedown','touchstart'].forEach(eventName=>{this.target.closest('html').addEventListener(eventName,(event)=>{const path=event.composedPath();if(!this.#disabled&&!path.includes(this.target)&&!path.includes(this.tooltip)){this?.#hideEvent();}});});}
4377for(let hideEvent of hideEvents){hideEvent=hideEvent.trim();if(hideEvent){if(hideEvent.indexOf('click')>-1&&`${showEventString}`.indexOf('click')>-1){window.addEventListener('click',this.#hideEvent);}else{this.target.addEventListener(hideEvent,this.#hideEvent);}}}}
4378this.target.addEventListener('keydown',(e)=>this.#hideOnEscape(e));}
4379removeEventListeners(){const showEventString=this.#options['show']['event'].toLowerCase();const hideEventString=this.#options['hide']['event'].toLowerCase();if(showEventString){let showEvents=showEventString.split(' ');showEvents.forEach((showEvent)=>{if(showEvent.trim()){this.target.removeEventListener(showEvent,this.#showEvent);}});}
4380if(hideEventString){let hideEvents=hideEventString.split(' ');hideEvents.forEach((hideEvent)=>{if(hideEvent.trim()){this.target.removeEventListener(hideEvent,this.#hideEvent);}});}}#registerTooltipEventHandlers(eventName){for(let handler of this.#handlers[eventName]){if(handler instanceof Function){this.tooltip.addEventListener(`tooltip.${eventName}`,handler);}}}
4381setUpTooltipDom(){this.tooltip=document.createElement('div');this.tooltip.popover='manual';const classes=this.#options.style.classes.split(' ');classes.push("my_"+this.#options.position.my.trim().replace(' ','_'));if(this.#options.position.target==='mouse'){classes.push('be_tooltip--mouse');}
4382this.tooltip.classList.add(...classes);this.tooltip.dataset.my=this.#options.position.my.trim();this.tooltip.dataset.at=this.#options.position.at.trim();if(this.#options?.position?.adjust){const x=parseInt(this.#options?.position?.adjust?.x??0,10);const y=parseInt(this.#options?.position?.adjust?.y??0,10);this.tooltip.style.setProperty('margin',`${y}px ${x}px`,`important`);}
4383this.#registerTooltipEventHandlers('show');this.#registerTooltipEventHandlers('hide');jQuery(this.tooltip).data('tooltip',this);this.#tooltipContent=document.createElement('div');this.#tooltipContent.classList.add("content");this.tooltip.appendChild(this.#tooltipContent);let width=this.#options?.style?.width;if(width){if(typeof(width)=='number'){width+='px';}
4384this.#tooltipContent.style.width=width;}
4385let height=this.#options?.style?.height;if(height){if(typeof(height)=='number'){height+='px';}
4386this.#tooltipContent.style.height=height;}
4387this.addTooltipPointer();if(this.#options.hidePointer){this.tooltip.classList.add('noPointer');}
4388this.content(this.#options.content).then(()=>null);document.body.appendChild(this.tooltip);this.setUpFocusTrap(this.tooltip);this.tooltip.addEventListener('keydown',(e)=>{switch(e.key){case'Escape':this.#hideOnEscape(e);break;case'Tab':const explicitlyShown=this.#options.show.event.includes('click')||this.#options.show.event.includes('keypress');if(explicitlyShown){this.trapKeyboardFocus(e);}
4389break;}});}
4390async resolveContent(content){if(content instanceof Promise){return this.resolveContent(await content);}
4391if(typeof content==='string'||content instanceof HTMLElement||content instanceof jQuery){return content;}
4392if(typeof content==='function'){return this.resolveContent(content());}else if(typeof content==='object'){if(content.text){const text=await this.resolveContent(content.text);delete content.text;return this.resolveContent(text);}else if(content.ajax){return this.resolveContent(this.loadAjaxContent());}else if(content.ajaxGenome){return this.resolveContent(this.loadAjaxGenomeContent());}}
4393return'';}
4394addTooltipPointer(){const pointer=document.createElementNS('http://www.w3.org/2000/svg','svg');pointer.classList.add('pointer');pointer.setAttribute('viewBox','0 0 50 50');pointer.setAttribute('preserveAspectRatio','none');const path=document.createElementNS('http://www.w3.org/2000/svg','path');path.setAttribute('d','M 0 50 L 25 0 L 50 50');path.setAttribute('vector-effect','non-scaling-stroke');pointer.appendChild(path);
4394this.tooltip.appendChild(pointer);}
4395addTooltipPoint(){this.addTooltipPointer();}
4396loadAjaxContent(){let ajax=this.#options.content.ajax;if(ajax instanceof Promise){return ajax;}
4397let helixApp=MMI.App.get();return helixApp.ajaxUsingPromise({},{url:ajax,data:{}}).then(response=>response.result);}
4398loadAjaxGenomeContent(){let data=this.#options.content.ajaxGenome;let helixApp=MMI.App.get();return helixApp.ajaxUsingPromise(data).then(response=>response.result);}
4399getContentPromise(){return this.#contentPromise;}
4400async content(rawContent){let p=Promise.resolve();if(typeof rawContent==='object'&&!(rawContent instanceof Promise)&&!(rawContent instanceof jQuery)){rawContent=jQuery.extend(true,{},rawContent);if(rawContent.text){p=this.resolveContent(rawContent.text);this.setDisplayContent(await p);delete rawContent.text;}
4401if(rawContent.ajax||rawContent.ajaxGenome){p=this.resolveContent(rawContent);this.setDisplayContent(await p);}}else{p=Promise.resolve(this.resolveContent(rawContent));this.setDisplayContent(await p);}
4402return p.then(stringContent=>{if(this.#options?.content?.ajaxDone&&typeof(this.#options.content.ajaxDone)=="function"){this.#options.content.ajaxDone.call(this,stringContent);}}).then(()=>{return this.#contentPromiseResolve(this);}).catch(r=>{return this.#contentPromiseReject(r);});}
4403setDisplayContent(content){if(typeof content==='string'){this.#tooltipContent.innerHTML=content;}else if(content instanceof HTMLElement){this.#tooltipContent.replaceChildren(content);}else if(content instanceof jQuery){jQuery(this.#tooltipContent).html(content.css({display:'block',visibility:'visible'}));}
4404let hideTriggers=this.#tooltipContent.querySelectorAll('.qtip-hide,.tooltip-hide');for(const el of hideTriggers){el.addEventListener('click',()=>{this.hide();});}}
4405getOptions(){return this.#options;}
4406setOptions(overlayOptions){this.#applyOptions(overlayOptions);}#loadOptions(passedOptions){let qTipOptions=this.#data('qtipOptions');if(qTipOptions){this.#applyOptions(qTipOptions);}
4407let tooltipOptions=this.#data('tooltipOptions');if(tooltipOptions){this.#applyOptions(tooltipOptions);}
4408if(passedOptions){this.#applyOptions(passedOptions);}
4409let qTipContentSelector=this.#data('qtipContentSelector');if(qTipContentSelector){let contentOptions={};let contentEl=this.target.querySelector(qTipContentSelector);if(contentEl){contentOptions.content=contentEl.innerHTML;this.#applyOptions(contentOptions);}}
4410let qTipContent=this.#data('qtipContent');if(qTipContent){let contentOptions={content:qTipContent};this.#applyOptions(contentOptions);}}#applyOptions(overlayOptions){if(!overlayOptions){return;}
4411if(typeof(overlayOptions)=='string'){try{overlayOptions=JSON.parse(overlayOptions);}catch(e){console.warn('Invalid JSON overlay options for tooltip.',this);return;}}
4412if(typeof(overlayOptions)=="object"&&Object.keys(overlayOptions).length>0){for(const[option,value]of Object.entries(overlayOptions)){switch(option){case'content':if(typeof(value)==='object'&&!value instanceof jQuery){this.#options.content=value;}else if(typeof(value)=='string'){this.#options['content']={text:value};}else if(value instanceof jQuery){this.#options['content']['text']=$('<div>').append(value.clone()).html();}else if(typeof(value)=='object'){if(value){this.#options['content']=value;}}
4413break;case'position':if(typeof(value)=='object'){if(value.at){const atPosition=this.getValidPosition(value.at);if(atPosition){this.#options['position']['at']=atPosition;}}
4414if(value.my){const myPosition=this.getValidPosition(value.my);if(myPosition){this.#options['position']['my']=myPosition;}}
4415if(value.adjust){this.#options['position']['adjust']=value.adjust;}
4416if(value.hasOwnProperty('target')){let target=value.target;if(target instanceof jQuery){target=target.get(0);}
4417if(target==='mouse'||target instanceof HTMLElement){this.#options['position']['target']=target;}else{if(target){let newTarget=this.target.querySelector(target);if(newTarget instanceof HTMLElement){this.#options['position']['target']=newTarget;}else{newTarget=document.body.querySelector(target);if(newTarget instanceof HTMLElement){this.#options['position']['target']=newTarget;}}}}}}else if(value instanceof String&&typeof(value)==='string'){this.#options['position']['at']=this.getValidPosition(value);}
4418if(this.#options?.position?.my==='center center'){this.#options.hidePointer=true;}
4419break;case'style':if(typeof(value)=='string'){this.#options['style']['classes']+=" "+value;}else if(typeof(value)=='object'){this.#options['style']['classes']+=" "+value['classes'];const otherProps=['width','height'];for(const prop of otherProps){if(value[prop]){this.#options['style'][prop]=value[prop];}}
4420if(value['tip']===false){this.#options['hidePointer']=true;}}
4421break;case'width':case'height':this.#options['style'][option]=value;break;case'prerender':this.#options['prerender']=!!value;break;case'show':case'hide':if(typeof(value)=='string'||value===false){this.#options[option]['event']=value;}else if(typeof(value)=='object'){let properties=['event','fixed','delay','solo'];
4421properties.forEach((prop)=>{if(value.hasOwnProperty(prop)){this.#options[option][prop]=value[prop];}});}
4422break;case'hidePointer':this.#options.hidePointer=value;break;case'disabled':this.#disabled=value;}}}}
4423getValidPosition(stringPosition){let parts=stringPosition.toLowerCase().replace("middle","center").split(' ');let allowedOptions=['top','center','bottom','right','left'];if(allowedOptions.indexOf(parts[0])===-1){parts[0]='top';}
4424if(allowedOptions.indexOf(parts[1])===-1){parts[1]='center'}
4425return parts.join(' ');}#data(attributeName){let dashedCase=attributeName.replace(/[A-Z]/g,m=>"-"+m.toLowerCase());let el=this.target.closest('[data-'+dashedCase+']');if(el){let v=el.dataset[attributeName];try{return JSON.parse(v);}catch(e){return v;}}
4426return null;}
4427static setUpGlobalListeners(){ToolTip.globalListenersSetUp=true;}
4428static setUpMouseMoveEvent(){if(document.documentElement.style.getPropertyValue('--mouseX')===''){document.addEventListener('mousemove',(event)=>{document.documentElement.style.setProperty('--mouseX',event.clientX+'px');document.documentElement.style.setProperty('--mouseY',event.clientY+'px');});document.documentElement.style.setProperty('--mouseX','0px');document.documentElement.style.setProperty('--mouseY','0px');}}
4429static instance(element){return ToolTip.elements.get(element);}
4430static closeTooltipFromInside(element){let tooltipContainer=element.closest('.be_tooltip');if(tooltipContainer){ToolTip.activeTooltips.forEach((tooltip)=>{if(tooltip.tooltip===tooltipContainer||tooltip.target===tooltipContainer){tooltip.hide();}});}}
4431updatePosition(){console.warn('%ctooltip.updatePosition is deprecated','font-size: small; font-weight: bold; padding: 1px; background: rgba(0,0,0,.3)','Positioning is now handled by CSS anchor positioning, so if this is still working go ahead and remove the call, otherwise talk to Aron about a fix.');}}
4432MMI.Util.namespace('Be.ToolTip.LiveEventHandlers');Be.ToolTip.LiveEventHandlers={handleAppInstanceCreated:function(app){app.registerHandlerClass(Be.ToolTip.LiveEventHandlers);},do_closeTooltip:function(event,app,jqel,data){let element=jqel.get(0);ToolTip.closeTooltipFromInside(element);}};MMI.App.registerInitCallback(Be.ToolTip.LiveEventHandlers.handleAppInstanceCreated);
4433Eco.Util.initializeNamespace('Eco.Organism.Qtip');Eco.Util.initializeNamespace('Eco.Organism.QtipOptions');var defaultOptions={style:{classes:'molecule_qtip'},position:{my:'left top',at:'top right'}};Eco.Organism.QtipOptions.setDefault=function(options){jQuery.extend(true,defaultOptions,options);};Eco.Organism.Qtip=Eco.Organism.extend({qtipApi:null,__construct:function(jqel_organism){this._parent(jqel_organism);var options=jqel_organism.ecoData('qtipOptions');var autoShow=jqel_organism.ecoData('qtipAutoShow');if(!jQuery.isPlainObject(options)){options=jQuery.extend(true,{},defaultOptions);}else{options=jQuery.extend(true,{},defaultOptions,options);}
4434if(!jQuery.isPlainObject(options.position)){options.position={};}
4435if(!options.position.viewport){options.position.viewport=jQuery(window);}
4436function getContentJqel(selector,relative){relative=relative===undefined?true:!!relative;if(relative){return jqel_organism.find(selector);}else{return jQuery(selector);}}
4437var ecoData=jqel_organism.ecoData();var contentSelector=ecoData.qtipContentSelector;var contentSelectorIsRelative=ecoData.qtipContentSelectorIsRelative;if(options.prerender===true&&contentSelector){options.content=options.content||{};options.content.text=getContentJqel(contentSelector,contentSelectorIsRelative);}
4438if(!jQuery.isPlainObject(options.content)||!options.content.text){var jqel_content=getContentJqel(contentSelector,contentSelectorIsRelative);var content=null;if(jqel_content.size()){content=jqel_content.html();}
4439if(!content){content=jqel_organism.ecoData('qtipContent');}
4440if(!content){content=jqel_organism.attr('title');if(content){jqel_organism.removeAttr('title');}}
4441if(!content){var jqel_childWithTitle=jqel_organism.find('[title!=""]').first();content=jqel_childWithTitle.attr('title');if(content){jqel_childWithTitle.removeAttr('title');}}
4442if(!content){content=jqel_organism.text();}
4443if(!content){content='Unable to locate content for this tooltip.';console.log(jqel_organism);console.warn('Unable to locate content for this ^^^ tooltip.');}
4444options.content={text:function(event,api){var jqel_content=jQuery('<div class="qtipContent">'+content+'</div>');jqel_content.find('.qtip-hide').on('click',function(){api.hide();});return jqel_content;}};}
4445if(!options.events){options.events={};}
4446var customShowHandler=options.events.show;options.events.show=function(event,api){var result=true;if(customShowHandler instanceof Function){result=customShowHandler(event,api);}
4447if(result===false){event.preventDefault();return false;}else{setTimeout(async function(){await Eco.OrganismController.scan(document.getElementById(api._id));},25);}
4448return true;};if((options?.style?.def??true)!==false){options.style.classes+=' '+'qtip-default';delete options.style.def;}
4449if((options?.style?.tip??true)===false){options.hidePointer=true;delete options.style.point;}
4450options.show={...options?.show??{},solo:options?.show?.solo??false};this.qtipApi=new ToolTip(jqel_organism.get(0),options);if(autoShow===true){this.qtipApi.showAfterDelay();}}});
4451Eco.Util.initializeNamespace('Eco.Organism.Qtip.LiveEventHandlers');Eco.Organism.Qtip.LiveEventHandlers={handleAppInstanceCreated:function(app){app.registerHandlerClass(Eco.Organism.Qtip.LiveEventHandlers);},do_closeParentTooltip:function(event,app,jqel,data){ToolTip.closeTooltipFromInside(jqel.get(0));},};MMI.App.registerInitCallback(Eco.Organism.Qtip.LiveEventHandlers.handleAppInstanceCreated);
4452Sendy={isEmailSubscribed:function(list,email,callback){if(!list){list='';}
4453if(!email){throw("No email provided for isEmailSubscribed");}
4454var action='checkSubscribed';var ajaxData={email:email,list:list,action:action,view:'ajax_sendy'};return MMI.App.get().ajax({data:ajaxData,mmiAjaxDone:function(json){var result=json.sendy.subscribed;callback.apply(this,[result]);}});},subscribeEmailToList:function(list,email,name,callback){if(!list){list='';}
4455if(!email){throw("No email provided for subscribeEmailToList");}
4456var action='subscribe';var ajaxData={email:email,name:name,list:list,action:action,view:'ajax_sendy'};return MMI.App.get().ajax({data:ajaxData,mmiAjaxDone:function(json){var status=json.sendy.status;callback.apply(this,[status]);}});}};
4457MMI.Util.namespace('Sendy.LiveEventHandlers');Sendy.LiveEventHandlers={handleAppInstanceCreated:function(app){app.registerHandlerClass(Sendy.LiveEventHandlers);}};MMI.App.registerInitCallback(Sendy.LiveEventHandlers.handleAppInstanceCreated);
4458(function(appNamespace,moduleName){MMI.Util.namespace(appNamespace+'.App.'+moduleName);Eco.Organism.QtipOptions.setDefault({style:{tip:{width:20,height:10}}});window[appNamespace].App[moduleName]={_searchInputTimeout:null,__c
4458onstruct:function(){this._parent();this.setDialogPluginName('smartBox');Be.SiteTools.userbackLogoUrl='//'+window.location.hostname+'/images/email/logo-that-wont-get-overwritten-by-genome.png';},handleDocumentReady:function(event,app,jqel,data){jqel.addClass('LocalEnergyBody');function transitionOver(e){if(e.target&&e.target.classList&&e.target.classList.contains('transitioning')){e.target.classList.remove('transitioning');}}
4459document.body.addEventListener('transitionend',transitionOver);document.body.addEventListener('transitioncancel',transitionOver);jQuery.expr[':'].external=function(obj){return(obj.href!=undefined)&&(typeof obj.href==='string')&&(obj.href!=='')&&!obj.href.match(/^mailto\:/)&&(obj.hostname!=location.hostname);};jQuery('a:external').attr('target','_blank');this.initializeUserTracking();},initializeUserTracking:function(jqel_target){if(!jqel_target){jqel_target=jQuery('body');}else{jqel_target=jQuery(jqel_target);}
4460var app=this;var trackerDefaults={action:null,group:null,itemId:null,data:null};let jqel_allTrackTargets=jqel_target.find('[data-track]');const jqel_searchInputs=jqel_allTrackTargets.filter('[data-track="searchInput"]');const jqel_checkboxGroups=jqel_allTrackTargets.filter('[data-track="checkboxGroup"]');const jqel_remaining=jqel_allTrackTargets.not(jqel_searchInputs).not(jqel_checkboxGroups);jqel_checkboxGroups.on('input','input[type="checkbox"]',function(){if(this.checked){const trackerData=jQuery(this).ecoData('trackerData');app.trackUserAction(trackerData.action,trackerData.category,trackerData.itemId,trackerData.data);}});jqel_remaining.on('click',function(){const jqel=jQuery(this);let trackerOptions=jqel.ecoData('track');let trackerDefaultOptions={action:null,category:null,itemId:null,data:{}};trackerOptions=Basix.extend(Basix.EXTEND_RECURSIVE,trackerDefaultOptions,trackerOptions);if(jqel.hasClass('disableAutoTracking')){return;}
4461switch(jqel.get(0).tagName.toLowerCase()){case'a':if(!trackerOptions.itemId&&(!trackerOptions.data.hasOwnProperty('enumId')||!trackerOptions.data.enumId)){trackerOptions.data.href=jqel.attr('href');}
4462break;case'checkbox':if(jqel.is(':checked')){return;}
4463break;case'label':let jqel_input=jQuery('#'+jqel.attr('for'));if(jqel_input.attr('type')==='checkbox'){if(jqel_input.is(':checked')){return;}}
4464break;}
4465app.trackUserAction(trackerOptions.action,trackerOptions.category,trackerOptions.itemId,trackerOptions.data);});var searchTrackerDefaults={itemId:null,searchSource:null};var jqel_targetsKeyup=jqel_searchInputs.find('input[data-track="searchInput"], input');jqel_targetsKeyup.on('keyup',function(){var jqel=jQuery(this);var tracker=jqel.ecoData('trackerOptions');var trackerOverrides=jqel.data('trackerOverrides');if(trackerOverrides){tracker=Basix.extend({},searchTrackerDefaults,tracker,trackerOverrides);}else{tracker=Basix.extend({},searchTrackerDefaults,tracker);}
4466var previousSearchText=jqel.data('trackerKeyupValue');var searchText=jQuery.trim(jqel.val());if(searchText&&searchText!==previousSearchText){clearTimeout(app._searchInputTimeout);app._searchInputTimeout=setTimeout(function(){app.ajax({data:{mode:'display',id:tracker.itemId,keywords:searchText,search_source:tracker.searchSource}});},1000);jqel.data('trackerKeyupValue',searchText);}});},flashMsg:function(content,time){time=time===undefined?3000:time;let jqel=this.alert({message:content,buttons:[],smartBox:{classes:['betterDialog']}});setTimeout(function(){jqel.smartBox('close');},time);},_defaultDialogOptions:{modal:true,classes:['betterDialog','sb-centered'],position:'css',width:'css',height:'css',close:true,minimize:false,maximize:false,restore:false,resizable:false,draggable:false},getDialogOptions:function(dialogOptions){const merged=Basix.extend(Basix.EXTEND_RECURSIVE,Basix.ARRAYS_MERGE,{},this._defaultDialogOptions,dialogOptions);if(!merged.title){merged.classes.push('mod_no-title');}
4467return merged;},projectDialog:function(options){return this.wrappedDialog(this.getDialogOptions(options));},};})('LocalEnergy','Core');
4468MMI.Util.namespace('LocalEnergy.App.Newsletter');function subscribeEmail(email){return Sendy.subscribeEmailToList(false,email,"",function(){}).then(function(rsp){let sendy=rsp.sendy;switch(sendy.status){case'success':case'existing':return Promise.resolve(sendy.status);default:return Promise.reject(sendy.status);}});}
4469const PESTERED_KEY='newsletter.pestered';const SUCCESS_HTML=''+'<div class="newsletter-rsp newsletter-rsp--success">'+'<div class="state-icon"><i class="eco eco-done mod_color-success mod_icon-medium"></i></div>'+'<div>'+'<h2>Success!</h2>'+'<p>You have successfully signed up for the newsletter.</p>'+'</div>'+'</div>';const ERROR_HTML=''+'<div class="newsletter-rsp newsletter-rsp--error">'+'<div class="state-icon"><i class="eco eco-error-o mod_color-error mod_icon-medium"></i></div>'+'<div>'+'<h2>Sorry</h2>'+'<p>Something has gone wrong and we were unable to sign you up at this time, please try again later.</p>'+'</div>'+'</div>';function waitThenClose(jqel,time){time=time===undefined?3000:time;setTimeout(function(){jqel.smartBox('close');},time);}
4470LocalEnergy.App.Newsletter={pesterForSignUp:function(force,track){var _t=this;if(!this.pestered||force){this.pestered=true;var jqel_prompt;MMI.App.get().trackUserAction(track.action,track.category,track.itemId,track.data);var prompt=new Promise(function(resolve,reject){jqel_prompt=MMI.App.get().prompt({message:''+'<h2>Sign Up for Our Newsletter?</h2>'+'<p>Want to always be up to date with the latest information about reach codes? Just enter your email address below to sign up for our newsletter!</p>'+'<p class="atom_error">That doesn\'t seem to be a valid email. Please check your input and try again.</p>',placeholderText:'your email address',fieldType:'email',buttons:[{id:'cancel',label:'No Thanks',classes:[]},{id:'ok',label:'Sign Me Up!',classes:[]}],smartBox:{classes:['betterDialog']},callback:function(rsp,options){var id=rsp.id;var value=rsp.value;if(id==='ok'){let input=jqel_prompt.find('input')[0];let valid=input.checkValidity();if(!valid){jqel_prompt.addClass('mod_error');return false;}else{track.action='newsletterSignup';track.data.location.region='pesterNewsletterPrompt';MMI.App.get().trackUserAction(track.action,track.category,track.itemId,track.data);resolve(value);jqel_prompt.html('<div class="beFancy_spinner beFancy_rotate mod_margined-auto"><i></i></div>');return false;}}else{reject();return true;}}})});prompt.then(function(email){return _t.signUp(email);}).then(function(rsp){jqel_prompt.html(SUCCESS_HTML);waitThenClose(jqel_prompt);}).catch(function(err){jqel_prompt.html(ERROR_HTML);waitThenClose(jqel_prompt);console.error(err);});}},signUpFromForm:function(email){return this.signUp(email).then(function(){MMI.App.get().flashMsg(SUCCESS_HTML);},function(){MMI.App.get().flashMsg(ERROR_HTML);});},signUp:function(email){this.pestered=true;return subscribeEmail(email);}};Object.defineProperty(LocalEnergy.App.Newsletter,'pestered',{get:function(){return localStorage.getItem(PESTERED_KEY)==='true';},set:function(v){return localStorage.setItem(PESTERED_KEY,v===true?'true':'false');}});
4471MMI.Util.namespace('LocalEnergy.App');(function(appNamespace){var app=jQuery.extend({},window[appNamespace].App.Core);jQuery.each(window[appNamespace].App,function(moduleName,moduleCode){if(moduleName.toLowerCase()!='core'){app=jQuery.extend(app,module
4471Code);}});window[appNamespace].App._moduleMixer=MMI.App.Core.extend(app);})('LocalEnergy');new LocalEnergy.App._moduleMixer();
4472(function(appNamespace,moduleName){MMI.Util.namespace(appNamespace+'.LiveEventHandlers.'+moduleName);window[appNamespace].LiveEventHandlers[moduleName]={handleAppInstanceCreated:function(app){app.registerHandlerClass(window[appNamespace].LiveEventHandlers[moduleName]);},do_debugger:function(event,app,jqel,data){debugger;},do_jumpTo:function(event,app,jqel,data){jQuery(data.jumpToSelector)[0].scrollIntoView({behavior:'smooth'});},do_toggleClass:function(event,app,jqel,data){const classes=Array.isArray(data.toggleClass)?data.toggleClass:[data.toggleClass];let target=jqel;if(data.toggleClassSelector){target=jQuery(data.toggleClassSelector);}else if(jqel.parents('[data-toggle-class-target]').length){target=jqel.parents('[data-toggle-class-target]');}
4473target.toggleClass(classes.join(' '));const expandedTrigger=target.find('[aria-expanded]');if(expandedTrigger.length){const isOpen=target.hasClass('mod_open');expandedTrigger.attr('aria-expanded',isOpen.toString());}},do_stopPropagation:function(event,app,jqel,data){event.stopPropagation();event.originalEvent.stopPropagation();return true;},do_initCollapsible:function(event,app,jqel,data){jqel.find('.collapsee, .faqAnswer').each(function(){let offset=parseInt(getComputedStyle(this).getPropertyValue('--content-height-offset'),10);offset=Number.isNaN(offset)?0:offset;this.classList.add('collapsible-measure');let height=this.getBoundingClientRect().height;height+=offset;this.classList.remove('collapsible-measure');this.style.setProperty('--content-height',height+'px');});},do_initQuickQuestions:function(event,app,jqel,data){function quickQuestionResize(){jQuery('.quickQuestions aside').each(function(){let height=this.offsetHeight;height+=this.querySelector('.body').offsetHeight;this.style.setProperty('--content-height',height+'px');});}
4474quickQuestionResize();jQuery(window).on('resize',quickQuestionResize);let active;jqel.on('click','aside',function(){let aside=jQuery(this);aside.siblings('.mod_active').removeClass('mod_active').attr('aria-expanded','false');if(aside.hasClass('mod_active')){active=null;}else{active=aside[0];}
4475aside.toggleClass('mod_active');aside.attr('aria-expanded',aside.hasClass('mod_active')?'true':'false');});jqel.on('keydown','aside',function(e){if(e.key==='Enter'||e.key===' '){e.preventDefault();jQuery(this).trigger('click');}});jQuery(document.body).on('click',function(e){if(active&&!active.contains(e.target)){active.classList.remove('mod_active');jQuery(active).attr('aria-expanded','false');active=null;}});},do_openCEEToJurisdiction:function(event,app,jqel,data,value,organism){const slug=value.getCleanValue();if(!slug){return;}
4476let href=`https://explorer.localenergycodes.com/?jurisdiction=${slug}`;if(data.hasOwnProperty('utm_source')){href+=`&utm_source=${data.utm_source}`;}
4477jQuery('<a></a>').attr({target:'_blank',href}).click();app.trackUserAction('navigation','interaction',null,{href,location:{itemId:app.getPageItemId(),region:'homepage-cee',},control:{type:'autocomplete'}});},do_ceeStatLookup:function(event,app,jqel,data){const http=new genomeJsApi.Http();const dataRequest=http.request({method:'POST',url:`https://explorer-api.localenergycodes.com/api/graphql`,withCredentials:false,data:{query:`{
4478                      policies_count: policies(
4479                        where: [{column: "exclude_in_report", value: "false"}]
4480                        count: "id"
4481                        orderBy: [{column: "count_total", order: "DESC"}]
4482                      ) {
4483                        count_total
4484                      }
4485                      jurisdictions_count: policies(
4486                        where: [{column: "exclude_in_report", value: "false"}]
4487                        count: "jurisdiction_id"
4488                        orderBy: [{column: "count_total", order: "DESC"}]
4489                      ) {
4490                        count_total
4491                      }
4492                    }`}}).then((rsp)=>{const jurisdictionCount=rsp.data?.data?.jurisdictions_count?.[0]?.count_total??0;const policiesCount=rsp.data?.data?.policies_count?.[0]?.count_total??0;return{jurisdictionCount,policiesCount,}});let intersectionResolve;const intersectionPromise=new Promise((resolve)=>intersectionResolve=resolve);const intersectionObserver=new IntersectionObserver((entries)=>{if(entries[0].isIntersecting){intersectionResolve();intersectionObserver.disconnect();}});intersectionObserver.observe(jqel[0]);Promise.all([dataRequest,intersectionPromise]).then(([countData])=>{jqel.find(`[data-field="policies_count"]`).attr('data-count',countData.policiesCount).eq(0)[0].style.setProperty('--ceeCount',countData.policiesCount);jqel.find(`[data-field="jurisdictions_count"]`).attr('data-count',countData.jurisdictionCount).eq(0)[0].style.setProperty('--ceeCount',countData.jurisdictionCount);jqel.removeClass('cee-data--loading');},(e)=>console.log(e))},do_newsletterFormSubmit:function(event,app,jqel,data){clog('do_newsletterFormSubmit');jqel.parents('.molecule_form').addClass('mod_submitting');clog('tracking newsletter signup',data.track);let email=data.organism_form.getValue('email');data.track.data.email=email;app.trackUserAction(data.track.action,data.track.category,data.track.itemId,data.track.data);LocalEnergy.App.Newsletter.signUpFromForm(email).then(function(){data.organism_form.reset();jqel.parents('.molecule_form').removeClass('mod_submitting');})}
4492,do_paneledAsideJump:function(event,app,jqel,data){let jqel_body=jqel.parents('.paneledAside').find('.paneledAside-body');jqel_body.animate({scrollLeft:jqel_body.outerWidth()*data.panelIdx});jqel.siblings('.mod_active').removeClass('mod_active');jqel.addClass('mod_active');},do_createToc:function(event,app,jqel,data){jqel.empty();jQuery('.ecoLayoutEditableContainer [id][data-title], .ecoLayoutEditableContainer [id][title]').each(function(){const el=this;const title=el.getAttribute('data-title')||el.getAttribute('title');jqel.append(jQuery('<li><a href="#'+el.id+'">'+title+'</a></li>'));});jqel.append('<li><a href="?mode=grab_page&attitude=print" class="matomo_download">Download PDF Version <i class="lec lec-file-download"></i></a>');jqel.attr('aria-busy','false');},};MMI.App.registerInitCallback(window[appNamespace].LiveEventHandlers[moduleName].handleAppInstanceCreated);})('LocalEnergy','Core');
4493Eco.Organism.FloatingContactForm=Eco.Organism.extend({jqel_trigger:null,jqel_formWrapper:null,jqel_overlay:null,_focusTrap:null,__construct:function(jqel){this._parent(jqel);this.jqel_trigger=jqel.find('.floatingContact-trigger');this.jqel_formWrapper=jqel.find('.floatingContact-form');this.jqel_overlay=jqel.siblings('.floatingContact-overlay');this.jqel_overlay.on('click',()=>this.close());this.jqel_trigger.on('click',()=>this.toggle());this.jqel_trigger.on('keydown',(e)=>{if(e.key==='Escape'){this.close();}});this._focusTrap=new FocusTrap();this._focusTrap.setUpFocusableElements(this.jqel_formWrapper[0]);this.jqel_formWrapper.on('keydown',(e)=>{switch(e.key){case'Escape':this.close();break;case'Tab':this._focusTrap.trapKeyboardFocus(e);break;}});},open:function(){if(this.hasModifier('mod_form')){this.addModifier('mod_open');}else{this.addModifier('mod_loading');this.loadForm().then(()=>{this.removeModifier('mod_loading');this.addModifier('mod_open');})}},close:function(){this.removeModifier('mod_open');},toggle:function(){if(!this.hasModifier('mod_open')){this.open();}else{this.close();}},loadForm:async function(){return MMI.App.get().ajax({url:'/content/'+this.jqel.ecoData('formSeoName'),jqel:this.jqel_formWrapper,replaceContent:true,}).then(()=>{this.addModifier('mod_form');});},syncModifierState:function(mod){if(mod==='mod_open'){const isOpen=this.hasModifier('mod_open');this.jqel_trigger.attr('aria-expanded',isOpen.toString());this.jqel_formWrapper[0].inert=!isOpen;if(!isOpen){this.jqel_trigger.focus();}}},addModifier:function(mod){this._parent(mod);this.syncModifierState(mod);return this;},removeModifier:function(mod){this._parent(mod);this.syncModifierState(mod);return this;},toggleModifier:function(mod){this._parent(mod);this.syncModifierState(mod);return this;},});
4494Eco.Util.getNamespace('Eco.Organism.MobileMenu');Eco.Organism.MobileMenu=Eco.Organism.extend({_focusTrap:null,__construct:function(jqel_organism){this._parent(jqel_organism);var self=this;this._getToggleControlElement().on('click',function(){self.toggle();});this.jqel.on('keydown',function(e){if(e.key==='Escape'&&self.isOpen()){self.close();self._getToggleControlElement().get(0).focus();}else if(e.key==='Tab'&&self.isOpen()&&self._focusTrap){self._focusTrap.trapKeyboardFocus(e);}});this._getNavElement().on('keydown',function(e){self._handleArrowKeys(e);});var props=['showOnTablet','showOnAll'];for(var i=0;i<props.length;i++){var propName=props[i];
4494var propData=this.jqel.ecoData(propName);if(propData==1||propData=='true'){document.body.classList.add('mobileMenu-'+propName);this.jqel.addClass(propName);}}
4495this.jqel.find('.menu').removeClass('menu');this._focusTrap=new FocusTrap();var navEl=this._getNavElement().get(0);this._focusTrap.setUpFocusTrap(navEl);if(navEl){navEl.inert=true;}},_getToggleControlElement:function(){return this.jqel.find('.molecule_toggleControl');},_getNavElement:function(){return this.jqel.find('nav');},_getMenuItems:function(){return this._getNavElement().find('[role="menuitem"]');},isOpen:function(){return this.jqel.hasClass('mod_active');},toggle:function(){if(this.isOpen()){this.close();}else{this.open();}},open:function(){this.jqel.addClass('mod_active');document.body.classList.add('mobileMenu-open');var trigger=this._getToggleControlElement().get(0);if(trigger){trigger.setAttribute('aria-expanded','true');}
4496var navEl=this._getNavElement().get(0);if(navEl){navEl.inert=false;navEl.classList.add('mod_menuOpen');}
4497var self=this;setTimeout(function(){var firstItem=self._focusTrap.focusableElements[0];if(firstItem){firstItem.focus();}},50);},close:function(){if(!this.isOpen()){return;}
4498this.jqel.removeClass('mod_active');document.body.classList.remove('mobileMenu-open');var trigger=this._getToggleControlElement().get(0);if(trigger){trigger.setAttribute('aria-expanded','false');}
4499var navEl=this._getNavElement().get(0);if(navEl){navEl.classList.remove('mod_menuOpen');navEl.inert=true;}},_handleArrowKeys:function(e){var menuItems=this._getMenuItems().toArray();if(!menuItems.length){return;}
4500var currentIndex=menuItems.indexOf(document.activeElement);switch(e.key){case'ArrowDown':e.preventDefault();menuItems[(currentIndex+1)%menuItems.length].focus();break;case'ArrowUp':e.preventDefault();menuItems[(currentIndex-1+menuItems.length)%menuItems.length].focus();break;case'Home':e.preventDefault();menuItems[0].focus();break;case'End':e.preventDefault();menuItems[menuItems.length-1].focus();break;}}});
4501Eco.Util.initializeNamespace('Eco.Organism.MobileMenu.LiveEventHandlers');Eco.Organism.MobileMenu.LiveEventHandlers={handleAppInstanceCreated:function(app){app.registerHandlerClass(Eco.Organism.MobileMenu.LiveEventHandlers);},do_closeMobileMenu:function(event,app,jqel,data){var jqel_parentMenu=false;if(jqel.hasClass('organism_mobileMenu')){jqel_parentMenu=jqel;}else{jqel_parentMenu=jqel.parents('.organism_mobileMenu').first();}
4502if(jqel_parentMenu&&jqel_parentMenu.size()){jqel_parentMenu.mmiData('organism').close();}}};MMI.App.registerInitCallback(Eco.Organism.MobileMenu.LiveEventHandlers.handleAppInstanceCreated);
4503Eco.Organism.Button=Eco.Organism.extend({jqel_button:null,__construct:function(jqel_organism){this._parent(jqel_organism);this.jqel_button=this._getButtonElement();var self=this;this.jqel_button.on('click',function(event){return self.onClick(event);});},onClick:function(event){return this._processClickEvent(event);},_processClickEvent:function(event){if(this.jqel.ecoData('buttonAction')&&this.jqel.find('input').attr('type')==='button'){try{eval(this.jqel.ecoData('buttonAction'));}catch(e){cwarn(e);}}
4504if(this.jqel_button.hasClass('mod_disabled')||this.jqel_button.hasClass('disabled')||this.jqel_button.is(':disabled')){event.preventDefault();event.stopPropagation();event.stopImmediatePropagation();return false;}
4505return true;},_getButtonElement:function(){const selector='.atom_button, input[type=button], input[type=submit], input[type=reset]';var jqel=this.jqel.find(selector).addBack(selector);if(!jqel.size()){this._missingElementError('Eco.Organism.Button','button');}
4506return jqel;},disable:function(){this._parent();this.jqel_button.addClass('mod_disabled');},enable:function(){this._parent();this.jqel_button.removeClass('mod_disabled');},readDomValue:function(){this._getButtonElement.attr('value');},getAllValuesByReference:function(){let parentOrganism=this.jqel.parent().ecoData('organism');if(parentOrganism){return parentOrganism.getAllValuesByReference();}else{cwarn('Button unable to find parent organism for getAllValuesByReference',this.jqel);}},getButtonElement:function(){return this.jqel_button;}});
4507Eco.Organism.Button.Smart=Eco.Organism.Button.extend({_formOrganism:null,_formIsAncestor:true,_locks:new Set(),_recentlyUpdatedValidationStatus:null,__c
4507onstruct:function(jqel_organism){this._parent(jqel_organism);var self=this;var formOrganism=this.getFormOrganism();this.jqel.on('click',(event)=>{if(this._recentlyUpdatedValidationStatus){return;}
4508if(!(formOrganism instanceof Eco.Organism.Form)){return;}
4509formOrganism.enableValidationErrors();formOrganism.resetValidation();formOrganism.validate();this._initializeDelayedRepeatValidationSystem();});if(formOrganism instanceof Eco.Organism.Form){formOrganism.jqel.on('eco_form_changed',function(event,formOrganism,fieldOrganism){setTimeout(function(){self.onEcoFormChanged(event,formOrganism,fieldOrganism);},250);});formOrganism.jqel.on('eco_form_lock_smart_button',function(event,formOrganism,fieldOrganism,key,locked){if(locked===true){self._locks.add(key);}else{self._locks.delete(key);}
4510self._updateButtonStatus(formOrganism);});formOrganism.jqel.on('eco_form_initialized',function(event,formOrganism){self.onEcoFormInitialized(event,formOrganism);});formOrganism.jqel.on('eco_rapid_change',function(event,fieldOrganism){self.onEcoRapidChange(event,fieldOrganism);});formOrganism.jqel.on('eco_form_value_error',function(event,formOrganism,fieldOrganism){self.onEcoFormValueError(event,formOrganism,fieldOrganism);});formOrganism.jqel.on('eco_form_reverted',function(event){self.onEcoFormReset(event);});}},_initializeDelayedRepeatValidationSystem:function(){this._recentlyUpdatedValidationStatus=setTimeout(()=>{this._recentlyUpdatedValidationStatus=null;},2500);},getFormOrganism:function(){if(this._formOrganism!==null){return this._formOrganism;}
4511var organism=null;var jqel_target=jQuery(this.jqel.data('target'));var checkAncestry=false;if(jqel_target.size()){checkAncestry=true;organism=jqel_target.ecoData('organism_form');}else{organism=this.jqel.ecoData('organism_form');}
4512if(organism instanceof Eco.Organism.Form){this._formOrganism=organism;if(checkAncestry){this._formIsAncestor=jQuery.contains(this._formOrganism.jqel_form.get(0),this.jqel.get(0));}}
4513return this._formOrganism;},onClick:function(event){var formOrganism=this.getFormOrganism();if(!(formOrganism instanceof Eco.Organism.Form)){permaclog(this.jqel);cwarn('This ^^^ smart button is operating without a form element. You should either place your button inside a form organism element OR add a data-target attribute with a jQuery selector for the correct form OR create a custom class extending Eco.Organism.Button.Smart and override the getFormOrganism() method to return a valid form organism.');}
4514this._onClickIntermediary(event);return true;},_onClickIntermediary:function(event){var formOrganism=this.getFormOrganism();if(!(formOrganism instanceof Eco.Organism.Form)){return;}
4515if(formOrganism.hasFieldWithInProgressChanges()||(Eco.Util.namespaceExists('Eco.Organism.Field.Equation')&&Eco.Organism.Field.Equation.areEquationsQueued())){var self=this;setTimeout(function(){self._onClickIntermediary(event);},50);}else{this._onClick(event);}},_onClick:function(event){if(!this._isLocked()){var formOrganism=this.getFormOrganism();if(formOrganism instanceof Eco.Organism.Form){var initialValidationErrorsSetting=formOrganism.areValidationErrorsEnabled();formOrganism.enableValidationErrors();var errors=formOrganism.validate();if(!initialValidationErrorsSetting){formOrganism.disableValidationErrors();}
4516var disabled=false;if(errors&&errors.length){disabled=true;}else if(!formOrganism.isSubmitWhenUnchangedEnabled()&&!formOrganism.hasChangedValues()){disabled=true;}
4517if(disabled===true){this.jqel_button.addClass('mod_disabled');this._triggerDisabledEvent();}else{this.jqel_button.removeClass('disabled mod_disabled');this._triggerEnabledEvent();}}}
4518var result=this._processClickEvent(event);if(result===true&&!this._formIsAncestor){var buttonType=this.jqel_button.attr('type');if(['submit','reset'].indexOf(buttonType)>-1){formOrganism.jqel_form.trigger(buttonType);}}},enable:function(){this._parent();this._triggerEnabledEvent();},disable:function(){this._parent();this._triggerDisabledEvent();},onEcoFormChanged:function(event,formOrganism,fieldOrganism){this._updateButtonStatus(formOrganism);},onEcoFormInitialized:function(event,formOrganism){this._updateButtonStatus(formOrganism);},onEcoRapidChange:function(event,fieldOrganism){this._updateButtonStatusRapidly(fieldOrganism);},onEcoFormValueError:function(event,formOrganism,fieldOrganism){this.jqel_button.addClass('mod_disabled');this._triggerDisabledEvent();},onEcoFormReset:function(event){this.jqel_button.addClass('mod_disabled');this._triggerDisabledEvent();},_isLocked:function(){const locked=this._locks.size>0;if(locked){this.jqel_button.addClass('mod_disabled');this._triggerDisabledEvent();}
4519return locked;},_updateButtonStatus:function(formOrganism){if(!(formOrganism instanceof Eco.Organism.Form)){formOrganism=this.getFormOrganism();if(!(formOrganism instanceof Eco.Organism.Form)){permaclog(this.jqel);cerror('Unable to automatically obtain a form organism for this ^^^ button. Please adjust your HTML 
4519structure OR trigger the eco_form_changed event with an arguments array.');}}
4520if(this._isLocked()){return;}
4521formOrganism.disableValidationErrors();formOrganism.resetValidation();formOrganism.validate();this._initializeDelayedRepeatValidationSystem();formOrganism.enableValidationErrors();var errors=formOrganism.getErrors();var disabled=false;if(errors&&errors.length){disabled=true;}else if(!formOrganism.isSubmitWhenUnchangedEnabled()&&!formOrganism.hasChangedValues()){disabled=true;}
4522if(disabled===true){this.jqel_button.addClass('mod_disabled');this._triggerDisabledEvent();}else{this.jqel_button.removeClass('disabled mod_disabled');this._triggerEnabledEvent();}},_updateButtonStatusRapidly:function(fieldOrganism){var formOrganism=this.getFormOrganism();if(!(formOrganism instanceof Eco.Organism.Form)){permaclog(this.jqel);cerror('Unable to automatically obtain a form organism for this ^^^ button. Please adjust your HTML structure OR trigger the eco_form_changed event with an arguments array.');}
4523if(this._isLocked()){return false;}
4524formOrganism.disableValidationErrors();formOrganism.resetValidation();if(fieldOrganism.resetOwnValidation){fieldOrganism.resetOwnValidation();}
4525if(formOrganism.isSlowValidationEnabled()){formOrganism.disableSlowValidation();formOrganism.validate();formOrganism.enableSlowValidation();}else{formOrganism.validate();this._initializeDelayedRepeatValidationSystem();}
4526formOrganism.resetValidation();fieldOrganism.resetOwnValidation();formOrganism.enableValidationErrors();var errors=formOrganism.getErrors();var disabled=false;if(errors&&errors.length){disabled=true;}else if(!formOrganism.isSubmitWhenUnchangedEnabled()&&!formOrganism.hasChangedValues()){disabled=true;}
4527if(disabled===true){this.jqel_button.addClass('mod_disabled');this._triggerDisabledEvent();}else{this.jqel_button.removeClass('disabled mod_disabled');this._triggerEnabledEvent();}},_triggerDisabledEvent:function(){const event=new CustomEvent('smart-button.disabled');this.jqel_button.get(0).dispatchEvent(event);},_triggerEnabledEvent:function(){const event=new CustomEvent('smart-button.enabled');this.jqel_button.get(0).dispatchEvent(event);}});
4528Eco.Organism.Field.Email=Eco.Organism.Field.Text.extend({__construct:function(jqel_organism){this._parent(jqel_organism);var self=this;self.jqel_field.attr('type','email').attr('autocapitalize','none');}});
4529MMI.Util.namespace('Be.Matomo');Be.Matomo={_ajaxDoneRegistered:false,logAjaxSearch:function(){},registerSearchAjaxDone:function(){if(this._ajaxDoneRegistered){return;}
4530let ajaxLiveEvents=jQuery('body').data('live_ajaxdone_handler');if(!ajaxLiveEvents){ajaxLiveEvents='';}else{ajaxLiveEvents+=';';}
4531ajaxLiveEvents+='logSearchComplete';jQuery('body').data('live_ajaxdone_handler',ajaxLiveEvents);jQuery('body').addClass('live_ajaxdone');},trackSiteSearch:function(keywords,source,total,pageType,pageId,customDimensions){if(!customDimensions){customDimensions={};}
4532if(pageType){var pageTypeDimensionId=MMI.Settings.getSetting('matomo','page_type_dimension_id');if(pageTypeDimensionId){customDimensions['dimension'+pageTypeDimensionId]=pageType;}}
4533if(pageId){var pageIdDimensionId=MMI.Settings.getSetting('matomo','page_id_dimension_id');if(pageIdDimensionId){customDimensions['dimension'+pageIdDimensionId]=pageId;}}
4534if(!total){total=false;}
4535if(window.hasOwnProperty('_paq')){window._paq.push(['trackSiteSearch',keywords,source,total,customDimensions]);}else{cwarn("Trying to track site search with Matomo but can not locate _paq");}},trackEvent:function(category,action,name,value,pageType,pageId,customDimensions){if(!customDimensions){customDimensions={};}
4536if(pageType){var pageTypeDimensionId=MMI.Settings.getSetting('matomo','page_type_dimension_id');if(pageTypeDimensionId){customDimensions['dimension'+pageTypeDimensionId]=pageType;}}
4537if(pageId){var pageIdDimensionId=MMI.Settings.getSetting('matomo','page_id_dimension_id');if(pageIdDimensionId){customDimensions['dimension'+pageIdDimensionId]=pageId;}}
4538if(!name){name='';}
4539if(!value){value='';}
4540window._paq.push(['trackEvent',category,action,name,value,customDimensions]);},trackPageView:function(pageUrl,pageTitle,pageType,pageId,customDimensions){if(!customDimensions){customDimensions={};}
4541var currentUrl=location.href;window._paq.push(['setReferrerUrl',currentUrl]);window._paq.push(['setCustomUrl',pageUrl]);if(pageType){var pageTypeDimensionId=MMI.Settings.getSetting('matomo','page_type_dimension_id');if(pageTypeDimensionId){customDimensions['dimension'+pageTypeDimensionId]=pageType;}}
4542if(pageId){var pageIdDimensionId=MMI.Settings.getSetting('matomo','page_id_dimension_id');if(pageIdDimensionId){customDimensions['dimension'+pageIdDimensionId]=pageId;}}
4543window._paq.push(['trackPageView',pageTitle,customDimensions]);},trackLink:function(url,linkType,pageType,pageId,customDimensions){if(!customDimensions){customDimensions={};}
4544if(linkType!='download'){linkType='link';}
4545if(pageType){var pageTypeDimensionId=MMI.Settings.getSetting('matomo','page_type_dimension_id');if(pageTypeDimensionId){customDimensions['dimension'+pageTypeDimensionId]=pageType;}}
4546if(pageId){var pageIdDimensionId=MMI.Settings.getSetting('matomo','page_id_dimension_id');if(pageIdDimensionId){customDimensions['dimension'+pageIdDimensionId]=pageId;}}
4547window._paq.push(['trackLink',url,linkType,customDimensions]);}};
4547Be.Matomo.registerSearchAjaxDone();
4548(function(appNamespace,moduleName){MMI.Util.namespace('Be.'+appNamespace+'.LiveEventHandlers.'+moduleName);Be[appNamespace].LiveEventHandlers[moduleName]={handleAppInstanceCreated:function(app){app.registerHandlerClass(Be[appNamespace].LiveEventHandlers[moduleName]);},do_logSearchComplete:function(event,app,jqel,data,json){if(json&&typeof(json)==='object'&&typeof(json.keywordSearchData)==='object'){let keywordData=json.keywordSearchData;if(keywordData.keywords&&keywordData.keywords.toLowerCase()!=='test'){let keywords=keywordData.keywords;let source=keywordData.source;if(!source){source='site search';}
4549let total=false;if(json.resultsArray&&typeof(json.resultsArray)=='object'&&json.resultsArray.hasOwnProperty('total')){total=json.resultsArray.total;}
4550if(keywords){Be.Matomo.trackSiteSearch(keywords,source,total);}}}}};MMI.App.registerInitCallback(Be[appNamespace].LiveEventHandlers[moduleName].handleAppInstanceCreated);})('Matomo','Core');

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.