From 21b8a169efd82086e6b49baff805e90787208992 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl=20van=20Noord?= <13665637+DanielNoord@users.noreply.github.com> Date: Sun, 2 May 2021 09:55:00 +0200 Subject: [PATCH] Create CookieMonsterDev --- .github/workflows/CI.yml | 15 ++++++++++++--- dist/CookieMonster.js | 4 +++- dist/CookieMonster.js.map | 2 +- dist/CookieMonsterDev.js | 3 +++ dist/CookieMonsterDev.js.LICENSE copy.txt | 10 ++++++++++ dist/CookieMonsterDev.js.map | 1 + package.json | 3 +-- webpack.config.js | 10 +++++++++- 8 files changed, 40 insertions(+), 8 deletions(-) create mode 100644 dist/CookieMonsterDev.js create mode 100644 dist/CookieMonsterDev.js.LICENSE copy.txt create mode 100644 dist/CookieMonsterDev.js.map diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index f218a78..6ba928d 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -12,12 +12,21 @@ jobs: run: npx eslint src - name: Run Mocha tests run: npx mocha - - name: Check if CookieMonster.js is built correctly + - name: Check if CookieMonsterDev.js is built correctly run: | npx webpack -o ./tmp --env production - if cmp <(head -n 2 dist/CookieMonster.js) <(head -n 2 tmp/CookieMonster.js); then + if cmp <(head -n 2 dist/CookieMonsterDev.js) <(head -n 2 tmp/CookieMonsterDev.js); then + echo '### SUCCESS: CookieMonsterDev is correctly built! ###' + else + echo '### WARNING: CookieMonsterDev.js does not seem to be correct. Make sure to run "npm run build" after saving all your changes! ###' + exit 1 + fi + - name: Check if CookieMonster.js is built correctly + if: github.ref == 'refs/heads/master' + run: | + if cmp <(head -n 2 dist/CookieMonsterDev.js) <(head -n 2 dist/CookieMonster.js); then echo '### SUCCESS: CookieMonster is correctly built! ###' else - echo '### WARNING: CookieMonster.js does not seem to be correct. Make sure to run "npm run build" after saving all your changes! ###' + echo '### WARNING: CookieMonster.js does not seem to be correct. Make sure to copy CookieMonsterDev.js into CookieMonster.js before merging to master! ###' exit 1 fi \ No newline at end of file diff --git a/dist/CookieMonster.js b/dist/CookieMonster.js index 6f6f4fa..89f1a38 100644 --- a/dist/CookieMonster.js +++ b/dist/CookieMonster.js @@ -1,2 +1,4 @@ -/*! For license information please see CookieMonster.js.LICENSE.txt */ + +/*! For license information please see CookieMonsterDev.js.LICENSE.txt */ (()=>{var e={877:function(e){!function(t,o){"use strict";"object"!=typeof e.exports?o(t):e.exports=t.document?o(t):function(e){if(!e.document)throw new Error("jscolor needs a window with document");return o(e)}}("undefined"!=typeof window?window:this,(function(e){"use strict";var t,o,n,i,a=((i={initialized:!1,instances:[],readyQueue:[],register:function(){void 0!==e&&e.document&&e.document.addEventListener("DOMContentLoaded",i.pub.init,!1)},installBySelector:function(t,o){if(!(o=o?i.node(o):e.document))throw new Error("Missing root node");for(var n=o.querySelectorAll(t),a=new RegExp("(^|\\s)("+i.pub.lookupClass+")(\\s*(\\{[^}]*\\})|\\s|$)","i"),r=0;r-1},isButtonEmpty:function(e){switch(i.nodeName(e)){case"input":return!e.value||""===e.value.trim();case"button":return""===e.textContent.trim()}return null},isPassiveEventSupported:function(){var t=!1;try{var o=Object.defineProperty({},"passive",{get:function(){t=!0}});e.addEventListener("testPassive",null,o),e.removeEventListener("testPassive",null,o)}catch(e){}return t}(),isColorAttrSupported:(n=e.document.createElement("input"),!(!n.setAttribute||(n.setAttribute("type","color"),"color"!=n.type.toLowerCase()))),dataProp:"_data_jscolor",setData:function(){var e=arguments[0];if(3===arguments.length){var t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={},o=arguments[2];return t[a=arguments[1]]=o,!0}if(2===arguments.length&&"object"==typeof arguments[1]){t=e.hasOwnProperty(i.dataProp)?e[i.dataProp]:e[i.dataProp]={};var n=arguments[1];for(var a in n)n.hasOwnProperty(a)&&(t[a]=n[a]);return!0}throw new Error("Invalid arguments")},removeData:function(){var e=arguments[0];if(!e.hasOwnProperty(i.dataProp))return!0;for(var t=1;t=3&&(n=l[0].match(s))&&(i=l[1].match(s))&&(a=l[2].match(s)))return o.format="rgb",o.rgba=[parseFloat(n[1])||0,parseFloat(i[1])||0,parseFloat(a[1])||0,null],l.length>=4&&(r=l[3].match(s))&&(o.format="rgba",o.rgba[3]=parseFloat(r[1])||0),o}return!1},parsePaletteValue:function(e){var t=[];"string"==typeof e?e.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\(([^)]*)\)/gi,(function(e){t.push(e)})):Array.isArray(e)&&(t=e);for(var o=[],n=0;ns[n]&&-t[n]+e[n]+l[n]/2>s[n]/2&&e[n]+l[n]-d[n]>=0?e[n]+l[n]-d[n]:e[n],-t[a]+e[a]+l[a]+d[a]-p+p*r>s[a]?-t[a]+e[a]+l[a]/2>s[a]/2&&e[a]+l[a]-p-p*r>=0?e[a]+l[a]-p-p*r:e[a]+l[a]-p+p*r:e[a]+l[a]-p+p*r>=0?e[a]+l[a]-p+p*r:e[a]+l[a]-p-p*r];else var u=[e[n],e[a]+l[a]-p+p*r];var m=u[n],h=u[a],g=o.fixed?"fixed":"absolute",f=(u[0]+d[0]>e[0]||u[0]0?Math.ceil(l/o):0,i=Math.max(1,Math.floor((t-(o-1)*e.paletteSpacing)/o)),a=e.paletteHeight?Math.min(e.paletteHeight,i):i),n&&(r=n*a+(n-1)*e.paletteSpacing),{cols:o,rows:n,cellW:i,cellH:a,width:t,height:r}},getControlPadding:function(e){return Math.max(e.padding/2,2*e.pointerBorderWidth+e.pointerThickness-e.controlBorderWidth)},getPadYChannel:function(e){switch(e.mode.charAt(1).toLowerCase()){case"v":return"v"}return"s"},getSliderChannel:function(e){if(e.mode.length>2)switch(e.mode.charAt(2).toLowerCase()){case"s":return"s";case"v":return"v"}return null},triggerCallback:function(e,t){if(e[t]){var o=null;if("string"==typeof e[t])try{o=new Function(e[t])}catch(e){console.error(e)}else o=e[t];o&&o.call(e)}},triggerGlobal:function(e){for(var t=i.getInstances(),o=0;o0)for(var c=0;c=2&&"string"==typeof arguments[0]){try{if(!a(arguments[0],arguments[1]))return!1}catch(e){return console.warn(e),!1}return this.redraw(),this.exposeColor(),!0}if(1===arguments.length&&"object"==typeof arguments[0]){var e=arguments[0],t=!0;for(var o in e)if(e.hasOwnProperty(o))try{a(o,e[o])||(t=!1)}catch(e){console.warn(e),t=!1}return this.redraw(),this.exposeColor(),t}throw new Error("Invalid arguments")},this.channel=function(e,t){if("string"!=typeof e)throw new Error("Invalid value for channel name: "+e);if(void 0===t)return this.channels.hasOwnProperty(e.toLowerCase())?this.channels[e.toLowerCase()]:(console.warn("Getting unknown channel: "+e),!1);var o=!1;switch(e.toLowerCase()){case"r":o=this.fromRGBA(t,null,null,null);break;case"g":o=this.fromRGBA(null,t,null,null);break;case"b":o=this.fromRGBA(null,null,t,null);break;case"h":o=this.fromHSVA(t,null,null,null);break;case"s":o=this.fromHSVA(null,t,null,null);break;case"v":o=this.fromHSVA(null,null,t,null);break;case"a":o=this.fromHSVA(null,null,null,t);break;default:return console.warn("Setting unknown channel: "+e),!1}return!!o&&(this.redraw(),!0)},this.trigger=function(e){for(var t=i.strList(e),o=0;o127.5},this.hide=function(){p()&&(i.removeClass(n.targetElement,i.pub.activeClassName),i.picker.wrap.parentNode.removeChild(i.picker.wrap),delete i.picker.owner)},this.show=function(){l()},this.redraw=function(){p()&&l()},this.getFormat=function(){return this._currentFormat},this._setFormat=function(e){this._currentFormat=e.toLowerCase()},this.hasAlphaChannel=function(){return"auto"===this.alphaChannel?"any"===this.format.toLowerCase()||i.isAlphaFormat(this.getFormat())||void 0!==this.alpha||void 0!==this.alphaElement:this.alphaChannel},this.processValueInput=function(e){this.fromString(e)||this.exposeColor()},this.processAlphaInput=function(e){this.fromHSVA(null,null,null,parseFloat(e))||this.exposeColor()},this.exposeColor=function(e){var t=this.toString(),o=this.getFormat();if(i.setDataAttr(this.targetElement,"current-color",t),e&i.flags.leaveValue||!this.valueElement||("hex"!==o&&"hexa"!==o||(this.uppercase||(t=t.toLowerCase()),this.hash||(t=t.replace(/^#/,""))),this.setValueElementValue(t)),!(e&i.flags.leaveAlpha)&&this.alphaElement){var n=Math.round(100*this.channels.a)/100;this.setAlphaElementValue(n)}e&i.flags.leavePreview||!this.previewElement||((i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&this.previewPosition,this.setPreviewElementBg(this.toRGBAString())),p()&&(s(),c(),d())},this.setPreviewElementBg=function(e){if(this.previewElement){var t=null,o=null;(i.isTextInput(this.previewElement)||i.isButton(this.previewElement)&&!i.isButtonEmpty(this.previewElement))&&(t=this.previewPosition,o=this.previewSize);var n=[];if(e){n.push({image:i.genColorPreviewGradient(e,t,o?o-i.pub.previewSeparator.length:null),position:"left top",size:"auto",repeat:t?"repeat-y":"repeat",origin:"padding-box"});var a=i.genColorPreviewCanvas("rgba(0,0,0,0)",t?{left:"right",right:"left"}[t]:null,o,!0);n.push({image:"url('"+a.canvas.toDataURL()+"')",position:(t||"left")+" top",size:a.width+"px "+a.height+"px",repeat:t?"repeat-y":"repeat",origin:"padding-box"})}else n.push({image:"none",position:"left top",size:"auto",repeat:"no-repeat",origin:"padding-box"});for(var r={image:[],position:[],size:[],repeat:[],origin:[]},l=0;l=0;h-=1){var g=m[h];if(g)if(i.pub.presets.hasOwnProperty(g)){for(var u in i.pub.presets[g])if(i.pub.presets[g].hasOwnProperty(u))try{a(u,i.pub.presets[g][u])}catch(e){console.warn(e)}}else console.warn("Unknown preset: %s",g)}var f=["preset"];for(var u in o)if(o.hasOwnProperty(u)&&-1===f.indexOf(u))try{a(u,o[u])}catch(e){console.warn(e)}if(void 0===this.container?this.container=e.document.body:this.container=i.node(this.container),!this.container)throw new Error("Cannot instantiate color picker without a container element");if(this.targetElement=i.node(t),!this.targetElement){if("string"==typeof t&&/^[a-zA-Z][\w:.-]*$/.test(t))throw new Error("If '"+t+"' is supposed to be an ID, please use '#"+t+"' or any valid CSS selector.");throw new Error("Cannot instantiate color picker without a target element")}if(this.targetElement.jscolor&&this.targetElement.jscolor instanceof i.pub)throw new Error("Color picker already installed on this element");if(this.targetElement.jscolor=this,i.addClass(this.targetElement,i.pub.className),i.instances.push(this),i.isButton(this.targetElement)&&("button"!==this.targetElement.type.toLowerCase()&&(this.targetElement.type="button"),i.isButtonEmpty(this.targetElement))){i.removeChildren(this.targetElement),this.targetElement.appendChild(e.document.createTextNode(" "));var C=i.getCompStyle(this.targetElement);(parseFloat(C["min-width"])||0)-1){var G=i.parseColorString(b);this._currentFormat=G?G.format:"hex"}else this._currentFormat=this.format.toLowerCase();this.processValueInput(b),void 0!==k&&this.processAlphaInput(k)}}).pub.className="jscolor",i.pub.activeClassName="jscolor-active",i.pub.looseJSON=!0,i.pub.presets={},i.pub.presets.default={},i.pub.presets.light={backgroundColor:"rgba(255,255,255,1)",controlBorderColor:"rgba(187,187,187,1)",buttonColor:"rgba(0,0,0,1)"},i.pub.presets.dark={backgroundColor:"rgba(51,51,51,1)",controlBorderColor:"rgba(153,153,153,1)",buttonColor:"rgba(240,240,240,1)"},i.pub.presets.small={width:101,height:101,padding:10,sliderSize:14,paletteCols:8},i.pub.presets.medium={width:181,height:101,padding:12,sliderSize:16,paletteCols:10},i.pub.presets.large={width:271,height:151,padding:12,sliderSize:24,paletteCols:15},i.pub.presets.thin={borderWidth:1,controlBorderWidth:1,pointerBorderWidth:1},i.pub.presets.thick={borderWidth:2,controlBorderWidth:2,pointerBorderWidth:2},i.pub.sliderInnerSpace=3,i.pub.chessboardSize=8,i.pub.chessboardColor1="#666666",i.pub.chessboardColor2="#999999",i.pub.previewSeparator=["rgba(255,255,255,.65)","rgba(128,128,128,.65)"],i.pub.init=function(){if(!i.initialized)for(e.document.addEventListener("mousedown",i.onDocumentMouseDown,!1),e.document.addEventListener("keyup",i.onDocumentKeyUp,!1),e.addEventListener("resize",i.onWindowResize,!1),e.addEventListener("scroll",i.onWindowScroll,!1),i.pub.install(),i.initialized=!0;i.readyQueue.length;)i.readyQueue.shift()()},i.pub.install=function(e){var t=!0;try{i.installBySelector("[data-jscolor]",e)}catch(e){t=!1,console.warn(e)}if(i.pub.lookupClass)try{i.installBySelector("input."+i.pub.lookupClass+", button."+i.pub.lookupClass,e)}catch(e){}return t},i.pub.ready=function(e){return"function"!=typeof e?(console.warn("Passed value is not a function"),!1):(i.initialized?e():i.readyQueue.push(e),!0)},i.pub.trigger=function(e){var t=function(){i.triggerGlobal(e)};i.initialized?t():i.pub.ready(t)},i.pub.hide=function(){i.picker&&i.picker.owner&&i.picker.owner.hide()},i.pub.chessboard=function(e){return e||(e="rgba(0,0,0,0)"),i.genColorPreviewCanvas(e).canvas.toDataURL()},i.pub.background=function(e){var t=[];t.push(i.genColorPreviewGradient(e));var o=i.genColorPreviewCanvas();return t.push(["url('"+o.canvas.toDataURL()+"')","left top","repeat"].join(" ")),t.join(", ")},i.pub.options={},i.pub.lookupClass="jscolor",i.pub.installByClassName=function(){return console.error('jscolor.installByClassName() is DEPRECATED. Use data-jscolor="" attribute instead of a class name.'+i.docsRef),!1},i.register(),i.pub);return void 0===e.jscolor&&(e.jscolor=e.JSColor=a),a}))}},t={};function o(n){var i=t[n];if(void 0!==i)return i.exports;var a=t[n]={exports:{}};return e[n].call(a.exports,a,a.exports,o),a.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var n in t)o.o(t,n)&&!o.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";let e={};function t(){e.WrinklerButtons&&Game.elderWrath?(l("PopAllNormalWrinklerButton").style.display="",l("PopFattestWrinklerButton").style.display=""):(l("PopAllNormalWrinklerButton").style.display="none",l("PopFattestWrinklerButton").style.display="none")}const n=["","","M","G","T","P","E","Z","Y"],i=["","","M","B","Tr","Quadr","Quint","Sext","Sept","Oct","Non","Dec","Undec","Duodec","Tredec","Quattuordec","Quindec","Sexdec","Septendec","Octodec","Novemdec","Vigint","Unvigint","Duovigint","Trevigint","Quattuorvigint"],a=["","K","M","B","T","Qa","Qi","Sx","Sp","Oc","No","De","UDe","DDe","TDe","QaDe","QiDe","SxDe","SpDe","ODe","NDe","Vi","UVi","DVi","TVi","QaVi","QiVi","SxVi","SpVi","OVi","NVi","Tr","UTr","DTr","TTr","QaTr","QiTr","SxTr","SpTr","OTr","NTr","Qaa","UQa","DQa","TQa","QaQa","QiQa","SxQa","SpQa","OQa","NQa","Qia","UQi","DQi","TQi","QaQi","QiQi","SxQi","SpQi","OQi","NQi","Sxa","USx","DSx","TSx","QaSx","QiSx","SxSx","SpSx","OSx","NSx","Spa","USp","DSp","TSp","QaSp","QiSp","SxSp","SpSp","OSp","NSp","Oco","UOc","DOc","TOc","QaOc","QiOc","SxOc","SpOc","OOc","NOc","Noa","UNo","DNo","TNo","QaNo","QiNo","SxNo","SpNo","ONo","NNo","Ct","UCt"];let r,s,c,d,p,u,m,h,g,f,C,y,b,k,G,v,w=[],x=[],M=[],T={},S=Date.now(),B=Date.now();function P(t,o,r){const l=e.ScaleDecimals+1;if(t===1/0)return"Infinity";if(void 0===t)return"0";if(0===e.Scale)return T.Beautify(t,o);if(Number.isFinite(t)){if(t<0)return`-${P(Math.abs(t))}`;let s="";if(0===t)return t.toString();if(t>.001&&t=.01&&t=.01&&t=.01&&t0&&(c+=o,s-=1)}return c}const St="CMText",Bt="CMBack",Pt="Blue",Et="Green",Nt="Yellow",Ot="Orange",Ft="Red",Lt="Purple",Wt="Gray",At="Pink",jt="Brown",Dt=[Pt,Et,Nt,Ot,Ft,Lt,At,jt,Wt],Ht=[["GoldCookTooltipPlaceholder","Calculated with Golden Switch off","200px"],["GoldCookDragonsFortuneTooltipPlaceholder","Calculated with Golden Switch off and at least one golden cookie on-screen","240px"],["PrestMaxTooltipPlaceholder","The MAX prestige is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","320px"],["NextPrestTooltipPlaceholder","Calculated with cookies gained from wrinklers and Chocolate egg","200px"],["HeavenChipMaxTooltipPlaceholder","The MAX heavenly chips is calculated with the cookies gained from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and buying Chocolate egg","330px"],["ResetTooltipPlaceholder","The bonus income you would get from new prestige levels unlocked at 100% of its potential and from ascension achievements if you have the same buildings/upgrades after reset","370px"],["ChoEggTooltipPlaceholder","The amount of cookies you would get from popping all wrinklers with Skruuia god in Diamond slot, selling all stock market goods, selling all buildings with Earth Shatterer and Reality Bending auras, and then buying Chocolate egg","300px"],["ChainNextLevelPlaceholder","Cheated cookies might break this formula","250px"],["FavouriteSettingPlaceholder","Click to set this setting as favourite and show it in 'favourite' settings at the top of the Cookie Monster Settings","250px"]],Ut={};let $t,Rt=0,It=-1,zt=[],Vt=function(){},_t=1,Qt=1,Xt=1;const qt=[10,15,30,60,300,600,900,1800],Yt=[1,5,10,15,30],Kt={Frenzy:Nt,"Dragon Harvest":jt,"Elder frenzy":Et,Clot:Ft,"Click frenzy":Pt,Dragonflight:At};let Jt,Zt,eo,to,oo,no,io,ao={},ro="",lo=[];function so(){let t=Game.buyBulk;if(1===Game.buyMode?Qt=t:t=Qt,1===t?t=We:10===t?t=Ae:100===t&&(t=je),1===Game.buyMode?1===e.BuildColour?Object.keys(t).forEach((o=>{l(`productPrice${Game.Objects[o].id}`).style.color=e[`Colour${t[o].color}`]})):Object.keys(Game.Objects).forEach((e=>{l(`productPrice${Game.Objects[e].id}`).style.removeProperty("color")})):-1===Game.buyMode&&Object.keys(We).forEach((e=>{const t=Game.Objects[e];l(`productPrice${t.id}`).style.color="",l(`productPrice${t.id}`).innerHTML=P(Tt(t,t.basePrice,t.amount,t.free,Game.buyBulk,1))})),1===Game.buyMode&&e.SortBuildings){let o;1===e.SortBuildings?(o=Object.keys(We).map((e=>{const t=We[e];return t.name=e,t.id=Game.Objects[e].id,t})),o.sort(((e,t)=>Dt.indexOf(e.color)>Dt.indexOf(t.color)?1:Dt.indexOf(e.color){const o=t[e];return o.name=e,o.id=Game.Objects[e].id,o})),o.sort(((e,t)=>Dt.indexOf(e.color)>Dt.indexOf(t.color)?1:Dt.indexOf(e.color){const t=We[e];return t.name=e,t.id=Game.Objects[e].id,t}));e.sort(((e,t)=>e.id-t.id));for(let t=0;t{e.UpgradesNeverCollapse||"products"===t.id?t.style.height="auto":"vaultUpgrades"===t.id?(t.style.height="",t.style.minHeight="0px"):"upgrades"===t.id?(t.style.height="",t.className.includes("hasMenu")?t.style.minHeight="82px":t.style.minHeight="60px"):(t.style.height="",t.style.minHeight="60px")}))}function po(){if(e.UpBarColour>0){let e=0,t=0,o=0,n=0,i=0,a=0,r=0;Object.keys(Game.UpgradesInStore).forEach((s=>{const c=Game.UpgradesInStore[s];let d=!1;for(let e=0;eDt.indexOf(e.color)>Dt.indexOf(t.color)?1:Dt.indexOf(e.color)e.price-t.price));const o=function(e,t){return e.findIndex((e=>e.name===t.name))};for(let e=0;e315576e4)return"XX:XX:XX:XX:XX";c+=(i<10?"0":"")+i+":",c+=(a<10?"0":"")+a+":",c+=(r<10?"0":"")+r+":",c+=(l<10?"0":"")+l+":",c+=(s<10?"0":"")+s}else{if(n>7776e5)return o?"Over 9000 days!":">9000d";c+=i>0?i+(o?1===i?" year":" years":"y")+", ":"",(c.length>0||a>0)&&(c+=a+(o?1===a?" day":" days":"d")+", "),(c.length>0||r>0)&&(c+=r+(o?1===r?" hour":" hours":"h")+", "),(c.length>0||l>0)&&(c+=l+(o?1===l?" minute":" minutes":"m")+", "),c+=s+(o?1===s?" second":" seconds":"s")}return c}function mo(t){let o,n;return t<=0?(n=e.TimeFormat?"00:00:00:00:00":"Done!",o=Et):(n=uo(t),o=t>300?Ft:t>60?Ot:Nt),{text:n,color:o}}function ho(){return e.CPSMode?_:0===e.CalcWrink?Game.cookiesPs*(1-Game.cpsSucked):1===e.CalcWrink?Game.cookiesPs*(Re+(1-.05*Ie)):null!==$e[1]&&2===e.CalcWrink&&1===Game.wrinklers[$e[1]].type?Game.cookiesPs*(3*Re/Ie+(1-.05*Ie)):Game.cookiesPs*(Re/Ie+(1-.05*Ie))}function go(){return 1===e.CalcWrink?He:2===e.CalcWrink?$e[0]:0}function fo(e,t,o){const n=document.createElement("div");n.id=e,n.style.height="12px",n.style.margin="0px 10px",n.style.position="relative";const i=document.createElement("div");i.style.width="100%",i.style.height="10px",i.style.margin="auto",i.style.position="absolute",i.style.left="0px",i.style.top="0px",i.style.right="0px",i.style.bottom="0px";const a=document.createElement("span");a.style.display="inline-block",a.style.textAlign="right",a.style.fontSize="10px",a.style.width="108px",a.style.marginRight="5px",a.style.verticalAlign="text-top",a.textContent=t,i.appendChild(a);for(let e=0;e{let n,i=Game.buyBulk;1===Game.buyMode?_t=i:i=_t,1===i&&(i=We),10===i&&(i=Ae),100===i&&(i=je),t+=1,l("CMBotBar").firstChild.firstChild.childNodes[0].childNodes[t].childNodes[1].textContent=Game.Objects[o].amount,l("CMBotBar").firstChild.firstChild.childNodes[1].childNodes[t].textContent=P(i[o].bonus,2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].className=St+i[o].color,n=e.PPDisplayTime?uo(Math.round(i[o].pp)):P(Math.round(i[o].pp),2),l("CMBotBar").firstChild.firstChild.childNodes[2].childNodes[t].textContent=n;const a=mo((Game.Objects[o].bulkPrice-(Game.cookies+go()))/ho());l("CMBotBar").firstChild.firstChild.childNodes[3].childNodes[t].className=St+a.color,"Done!"===a.text&&Game.cookies{!Game.Tiers[e.tieredUpgrades[o].tier].special&&wt(e.tieredUpgrades[o].name)&&(t*=2)})),Object.keys(e.synergies).forEach((o=>{if(wt(e.synergies[o].name)){const n=e.synergies[o];n.buildingTie1.name===e.name?t*=1+.05*n.buildingTie2.amount:n.buildingTie2.name===e.name&&(t*=1+.001*n.buildingTie1.amount)}})),e.fortune&&wt(e.fortune.name)&&(t*=1.07),e.grandma&&wt(e.grandma.name)&&(t*=1+.01*Ct.Grandma.amount*(1/(e.id-1))),"object"==typeof e.tieredUpgrades.misfortune&&1===e.vanilla&&wt(e.tieredUpgrades.misfortune.name))switch(Game.elderWrath){default:t*=1;break;case 1:t*=1.02;break;case 2:t*=1.04;break;case 3:t*=1.06}return t}function Mo(e){const t=Game.Objects[e],o={};return"Cursor"===t.name?o.cps=function(e){let t=0;wt("Thousand fingers")&&(t+=.1),wt("Million fingers")&&(t*=5),wt("Billion fingers")&&(t*=10),wt("Trillion fingers")&&(t*=20),wt("Quadrillion fingers")&&(t*=20),wt("Quintillion fingers")&&(t*=20),wt("Sextillion fingers")&&(t*=20),wt("Septillion fingers")&&(t*=20),wt("Octillion fingers")&&(t*=20),wt("Nonillion fingers")&&(t*=20);let o=1,n=0;return Object.keys(Ct).forEach((e=>{"Cursor"!==Ct[e].name&&(n+=Ct[e].amount)})),t*=n,o*=xo(e),o*=Game.magicCpS("Cursor"),o*=vt("cursorCps"),Game.ComputeCps(.1,wt("Reinforced index finger")+wt("Carpal tunnel prevention cream")+wt("Ambidextrous"),t)*o}:"Grandma"===t.name?o.cps=function(e){let o=1;if(Object.keys(Game.GrandmaSynergies).forEach((e=>{wt(Game.GrandmaSynergies[e])&&(o*=2)})),wt("Bingo center/Research facility")&&(o*=4),wt("Ritual rolling pins")&&(o*=2),wt("Naughty list")&&(o*=2),wt("Elderwort biscuits")&&(o*=1.02),o*=vt("grandmaCps"),wt("Cat ladies"))for(let e=0;e{"Grandma"!==Ct[e].name&&(i+=Ct[e].amount)})),o*=1+.01*kt("Elder Battalion")*i,o*=Game.magicCpS(t.name),(t.baseCps+n)*o}:o.cps=function(e){let t=1;return t*=xo(e),t*=Game.magicCpS(e.name),e.baseCPS*t},o.baseCps=t.baseCps,o.name=t.name,o.tieredUpgrades=t.tieredUpgrades,o.synergies=t.synergies,o.fortune=t.fortune,o.grandma=t.grandma,o.baseCPS=t.baseCps,o.id=t.id,o.vanilla=t.vanilla,o}function To(e){const t=Game.Upgrades[e],o={};return o.power=t.power,"function"==typeof o.power&&("Sugar crystal cookies"===t.name?o.power=function(){let e=5;return Object.keys(Ct).forEach((t=>{Ct[t].level>=10&&(e+=1)})),e}:o.power=function(){let e=2;if(wt("Starlove")&&(e=3),Game.hasGod){const t=xt("seasons");1===t?e*=1.3:2===t?e*=1.2:3===t&&(e*=1.1)}return e}),o.pool=t.pool,o.name=t.name,o}function So(){J=Game.UpgradesOwned,Z=Game.pledges,ee=Game.AchievementsOwned,te=Game.heavenlyPower,oe=Game.prestige,Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];let o=Ct[e];void 0===o&&(Ct[e]=Mo(e),o=Ct[e],Co(e)),o.amount=t.amount,o.level=t.level,o.totalCookies=t.totalCookies,o.basePrice=t.basePrice,o.free=t.free,t.minigameLoaded&&("Temple"===t.name&&(ae=t.minigame.slot[0],re=t.minigame.slot[1],le=t.minigame.slot[2]),o.minigameLoaded=t.minigameLoaded,o.minigame=t.minigame),Ct[e]=o})),Object.keys(Game.Upgrades).forEach((e=>{const t=Game.Upgrades[e];let o=yt[e];void 0===o&&(yt[e]=To(e),o=yt[e]),o.bought=t.bought,yt[e]=o})),Object.keys(Game.Achievements).forEach((e=>{const t=Game.Achievements[e];let o=bt[e];void 0===o&&(bt[e]=wo(e),o=bt[e]),o.won=t.won,bt[e]=o})),vo(),ne=me,ie=he}function Bo(e){const t=document.createElement("div");return t.style.fontWeight="bold",t.id=`${e}Title`,t.className="CMTextBlue",t.textContent=e,t}function Po(e){e.appendChild(Bo("Bonus Income"));const t=document.createElement("div");t.style.marginBottom="4px",t.style.color="white",t.id="CMTooltipIncome",e.appendChild(t),e.appendChild(Bo("Bonus Cookies per Click")),e.lastChild.style.display="none";const o=document.createElement("div");o.style.marginBottom="4px",o.style.color="white",o.style.display="none",o.id="CMTooltipCookiePerClick",e.appendChild(o),e.appendChild(Bo("Payback Period"));const n=document.createElement("div");n.style.marginBottom="4px",n.id="CMTooltipPP",e.appendChild(n),e.appendChild(Bo("Time Left"));const i=document.createElement("div");if(i.id="CMTooltipTime",e.appendChild(i),"b"===eo){e.appendChild(Bo("Production left till next achievement")),e.lastChild.id="CMTooltipProductionLeftHeader";const t=document.createElement("div");t.id="CMTooltipProductionLeft",e.appendChild(t)}if("b"===eo){e.appendChild(Bo("Buildings (price / PP) left till next achievement")),e.lastChild.id="CMTooltipNextAchievementHeader";const t=document.createElement("div");t.id="CMTooltipNextAchievement",e.appendChild(t)}}function Eo(t,o){let n="";return n=t.pp<=0||t.pp===1/0?Wt:t.pp0&&(n=Ft),n}function No(){let e=1;return Object.keys(Game.buffs).forEach((t=>{void 0!==Game.buffs[t].multCpS&&(e*=Game.buffs[t].multCpS)})),e}function Oo(e){bt[e]&&0===bt[e].won&&(bt[e].won=1,"shadow"!==Game.Achievements[e].pool&&(ee+=1))}function Fo(){de=0;let e=1;const t={};Object.keys(Game.Objects).forEach((e=>{if(Game.Objects[e].minigameLoaded&&Game.Objects[e].minigame.effs){const o=Game.Objects[e].minigame.effs;Object.keys(o).forEach((e=>{t[e]?t[e]*=o[e]:t[e]=o[e]}))}})),ce=t,1!==Game.ascensionMode&&(e+=.01*parseFloat(oe)*te*function(){let e=0;if(wt("Heavenly chip secret")&&(e+=.05),wt("Heavenly cookie stand")&&(e+=.2),wt("Heavenly bakery")&&(e+=.25),wt("Heavenly confectionery")&&(e+=.25),wt("Heavenly key")&&(e+=.25),e*=1+.05*kt("Dragon God"),wt("Lucky digit")&&(e*=1.01),wt("Lucky number")&&(e*=1.01),wt("Lucky payout")&&(e*=1.01),Game.hasGod){const t=xt("creation");1===t?e*=.7:2===t?e*=.8:3===t&&(e*=.9)}return e}()),e*=vt("cps"),wt("Heralds")&&1!==Game.ascensionMode&&(e*=1+.01*Game.heralds),Object.keys(Game.cookieUpgrades).forEach((t=>{const o=Game.cookieUpgrades[t];wt(o.name)&&("function"==typeof o.power?e*=1+.01*yt[o.name].power(yt[o.name]):e*=1+.01*o.power)})),wt("Specialized chocolate chips")&&(e*=1.01),wt("Designer cocoa beans")&&(e*=1.02),wt("Underworld ovens")&&(e*=1.03),wt("Exotic nuts")&&(e*=1.04),wt("Arcane sugar")&&(e*=1.05),wt("Increased merriness")&&(e*=1.15),wt("Improved jolliness")&&(e*=1.15),wt("A lump of coal")&&(e*=1.01),wt("An itchy sweater")&&(e*=1.01),wt("Santa's dominion")&&(e*=1.2),wt("Fortune #100")&&(e*=1.01),wt("Fortune #101")&&(e*=1.07),wt("Dragon scale")&&(e*=1.03);let o=1;if(xt){let t=xt("asceticism");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05),t=xt("ages"),1===t?e*=1+.15*Math.sin(S/1e3/10800*Math.PI*2):2===t?e*=1+.15*Math.sin(S/1e3/43200*Math.PI*2):3===t&&(e*=1+.15*Math.sin(S/1e3/86400*Math.PI*2)),t=xt("decadence"),1===t?o*=.93:2===t?o*=.95:3===t&&(o*=.98),t=xt("industry"),1===t?o*=1.1:2===t?o*=1.06:3===t&&(o*=1.03),t=xt("labor"),1===t?o*=.97:2===t?o*=.98:3===t&&(o*=.99)}wt("Santa's legacy")&&(e*=1+.03*(Game.santaLevel+1));const n=ee/25;let i=1;if(wt("Santa's milk and cookies")&&(i*=1.05),i*=1+.05*kt("Breath of Milk"),xt){const e=xt("mother");1===e?i*=1.1:2===e?i*=1.05:3===e&&(i*=1.03)}i*=vt("milk");let a=1;wt("Kitten helpers")&&(a*=1+.1*n*i),wt("Kitten workers")&&(a*=1+.125*n*i),wt("Kitten engineers")&&(a*=1+.15*n*i),wt("Kitten overseers")&&(a*=1+.175*n*i),wt("Kitten managers")&&(a*=1+.2*n*i),wt("Kitten accountants")&&(a*=1+.2*n*i),wt("Kitten specialists")&&(a*=1+.2*n*i),wt("Kitten experts")&&(a*=1+.2*n*i),wt("Kitten consultants")&&(a*=1+.2*n*i),wt("Kitten assistants to the regional manager")&&(a*=1+.175*n*i),wt("Kitten marketeers")&&(a*=1+.15*n*i),wt("Kitten analysts")&&(a*=1+.125*n*i),wt("Kitten executives")&&(a*=1+.115*n*i),wt("Kitten angels")&&(a*=1+.1*n*i),wt("Fortune #103")&&(a*=1+.05*n*i),Object.keys(Ct).forEach((e=>{const t=Ct[e];let a=t.cps(t);1!==Game.ascensionMode&&(a*=(1+.01*t.level)*o),"Grandma"===t.name&&wt("Milkhelp® lactose intolerance relief tablets")&&(a*=1+.05*n*i),de+=t.amount*a})),wt('"egg"')&&(de+=9),e*=a;let r=1;if(wt("Chicken egg")&&(r*=1.01),wt("Duck egg")&&(r*=1.01),wt("Turkey egg")&&(r*=1.01),wt("Quail egg")&&(r*=1.01),wt("Robin egg")&&(r*=1.01),wt("Ostrich egg")&&(r*=1.01),wt("Cassowary egg")&&(r*=1.01),wt("Salmon roe")&&(r*=1.01),wt("Frogspawn")&&(r*=1.01),wt("Shark egg")&&(r*=1.01),wt("Turtle egg")&&(r*=1.01),wt("Ant larva")&&(r*=1.01),wt("Century egg")){let e=10*Math.floor((B-Game.startDate)/1e3/10)/60/60/24;e=Math.min(e,100),Oe=1+.1*(1-(1-e/100)**3),r*=Oe}e*=r,wt("Sugar baking")&&(e*=1+.01*Math.min(100,Game.lumps)),e*=1+kt("Radiant Appetite");const l=de*e;Object.keys(Game.CpsAchievements).forEach((e=>{l>=Game.CpsAchievements[e].threshold&&Oo(Game.CpsAchievements[e].name)})),pe=l;const{n:s}=Game.shimmerTypes.golden,c=kt("Dragon's Fortune");for(let t=0;t{wt(e[o])&&(t+=.1)}))}e*=t}if(wt("Shimmering veil [off]")){let t=.5;wt("Reinforced membrane")&&(t+=.1),e*=1+t}wt("Magic shenanigans")&&(e*=1e3),wt("Occult obstruction")&&(e*=0),de=Game.runModHookOnValue("cps",de),e*=No(),de*=e}const Lo=["Fortune #001","Fortune #002","Fortune #003","Fortune #004","Fortune #005","Fortune #006","Fortune #007","Fortune #008","Fortune #009","Fortune #010","Fortune #011","Fortune #012","Fortune #013","Fortune #014","Fortune #015","Fortune #016","Fortune #017","Fortune #018","Fortune #100","Fortune #101","Fortune #102","Fortune #103","Fortune #104"],Wo=["Skull cookies","Ghost cookies","Bat cookies","Slime cookies","Pumpkin cookies","Eyeball cookies","Spider cookies"],Ao=["Christmas tree biscuits","Snowflake biscuits","Snowman biscuits","Holly biscuits","Candy cane biscuits","Bell biscuits","Present biscuits"],jo=["Pure heart biscuits","Ardent heart biscuits","Sour heart biscuits","Weeping heart biscuits","Golden heart biscuits","Eternal heart biscuits","Prism heart biscuits"],Do=["Elderwort biscuits","Bakeberry cookies","Duketater cookies","Green yeast digestives","Wheat slims","Fern tea","Ichor syrup"];function Ho(e){return bt[e]?bt[e].won:0}function Uo(){let e=0;Object.keys(Game.GrandmaSynergies).forEach((t=>{wt(Game.GrandmaSynergies[t])&&(e+=1)})),!Ho("Elder")&&e>=7&&Oo("Elder"),!Ho("Veteran")&&e>=14&&Oo("Veteran");let t=0,o=1,n=1,i=1e5;Object.keys(Ct).forEach((e=>{t+=Ct[e].amount,i=Math.min(Ct[e].amount,i),Ho("Mathematician")||Ct[e].amount=1&&Oo("One with everything"),1===o&&Oo("Mathematician"),1===n&&Oo("Base 10"),i>=100&&Oo("Centennial"),i>=150&&Oo("Centennial and a half"),i>=200&&Oo("Bicentennial"),i>=250&&Oo("Bicentennial and a half"),i>=300&&Oo("Tricentennial"),i>=350&&Oo("Tricentennial and a half"),i>=400&&Oo("Quadricentennial"),i>=450&&Oo("Quadricentennial and a half"),i>=500&&Oo("Quincentennial"),i>=550&&Oo("Quincentennial and a half"),i>=600&&Oo("Sexcentennial"),t>=100&&Oo("Builder"),t>=500&&Oo("Architect"),t>=1e3&&Oo("Engineer"),t>=2e3&&Oo("Lord of Constructs"),t>=4e3&&Oo("Grand design"),t>=8e3&&Oo("Ecumenopolis"),J>=20&&Oo("Enhancer"),J>=50&&Oo("Augmenter"),J>=100&&Oo("Upgrader"),J>=200&&Oo("Lord of Progress"),J>=300&&Oo("The full picture"),J>=400&&Oo("When there's nothing left to add"),t>=4e3&&J>=300&&Oo("Polymath"),t>=8e3&&J>=400&&Oo("Renaissance baker"),Ct.Cursor.amount+Ct.Grandma.amount>=777&&Oo("The elder scrolls");let a=!0;Object.keys(Wo).forEach((e=>{wt(Wo[e])||(a=!1)})),a&&Oo("Spooky cookies");let r=!0;if(Object.keys(Ao).forEach((e=>{wt(Ao[e])||(r=!1)})),r&&Oo("Let it snow"),wt("Fortune cookies")){const e=Game.Tiers.fortune.upgrades;let t=0;Object.keys(e).forEach((o=>{wt(e[o].name)&&(t+=1)})),t>=e.length&&Oo("O Fortuna")}}function $o(e,t){So(),Ct[e].amount+=t;const o=Ct[e];"Cursor"===e?(o.amount>=1&&Oo("Click"),o.amount>=2&&Oo("Double-click"),o.amount>=50&&Oo("Mouse wheel"),o.amount>=100&&Oo("Of Mice and Men"),o.amount>=200&&Oo("The Digital"),o.amount>=300&&Oo("Extreme polydactyly"),o.amount>=400&&Oo("Dr. T"),o.amount>=500&&Oo("Thumbs, phalanges, metacarpals"),o.amount>=600&&Oo("With her finger and her thumb"),o.amount>=700&&Oo("Gotta hand it to you"),o.amount>=800&&Oo("The devil's workshop")):Object.keys(Game.Objects[o.name].tieredAchievs).forEach((e=>{o.amount>=Game.Tiers[Game.Objects[o.name].tieredAchievs[e].tier].achievUnlock&&Oo(Game.Objects[o.name].tieredAchievs[e].name)}));const n=ee;return Fo(),Uo(),n!==ee&&Fo(),de-Game.cookiesPs}function Ro(e,t,o){let n=e,i=0;for(;nt.plantsById[t.plot[to[1]][to[0]][0]-1].mature,o=t.plantsById[t.plot[to[1]][to[0]][0]-1].name;l("CMTooltipBorder").appendChild(Bo("Reward (Current / Maximum)"));const n=document.createElement("div");n.id="CMTooltipPlantReward",l("CMTooltipBorder").appendChild(n),"Bakeberry"===o?l("CMTooltipPlantReward").textContent=`${e?P(Math.min(.03*Game.cookies,60*Game.cookiesPs*30)):"0"} / ${P(60*Game.cookiesPs*30)}`:"Chocoroot"===o||"White chocoroot"===o?l("CMTooltipPlantReward").textContent=`${e?P(Math.min(.03*Game.cookies,60*Game.cookiesPs*3)):"0"} / ${P(60*Game.cookiesPs*3)}`:"Queenbeet"===o?l("CMTooltipPlantReward").textContent=`${e?P(Math.min(.04*Game.cookies,60*Game.cookiesPs*60)):"0"} / ${P(60*Game.cookiesPs*60)}`:"Duketater"===o?l("CMTooltipPlantReward").textContent=`${e?P(Math.min(.08*Game.cookies,60*Game.cookiesPs*120)):"0"} / ${P(60*Game.cookiesPs*120)}`:l("CMTooltipArea").style.display="none"}else l("CMTooltipArea").style.display="none"}():"ha"===eo?function(){const{minigame:t}=Game.Objects.Farm;if(e.TooltipLump){l("CMTooltipBorder").appendChild(Bo("Cookies gained from harvesting:"));let e=0,o=0;Game.keys[16]&&Game.keys[17]&&(o=1);for(let n=0;n<6;n++)for(let i=0;i<6;i++)if(t.plot[n][i][0]>=1){const a=t.plot[n][i],r=t.plantsById[a[0]-1],l=r.name;let s=!0;o&&r.immortal&&(s=!1),a[1]0&&t=1?l("CMTimerBarGCMinBar").textContent=Math.ceil((Game.shimmerTypes.golden.minTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCMinBar").textContent="",Game.shimmerTypes.golden.minTime===Game.shimmerTypes.golden.maxTime?(l("CMTimerBarGCMinBar").style.borderTopRightRadius="10px",l("CMTimerBarGCMinBar").style.borderBottomRightRadius="10px"):(l("CMTimerBarGCMinBar").style.borderTopRightRadius="",l("CMTimerBarGCMinBar").style.borderBottomRightRadius=""),l("CMTimerBarGCBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)*t/Game.shimmerTypes.golden.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarGCBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.minTime,Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps):l("CMTimerBarGCBar").textContent="",l("CMTimerBarGCTime").textContent=Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps),n+=1),"christmas"===Game.season&&0===Game.shimmerTypes.reindeer.spawned?(l("CMTimerBarRen").style.display="",l("CMTimerBarRenMinBar").style.width=`${Math.round(Math.max(0,Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenMinBar").textContent=Math.ceil((Game.shimmerTypes.reindeer.minTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenMinBar").textContent="",l("CMTimerBarRenBar").style.width=`${Math.round(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)*t/Game.shimmerTypes.reindeer.maxTime)}px`,e.TimerBarOverlay>=1?l("CMTimerBarRenBar").textContent=Math.ceil(Math.min(Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.minTime,Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps):l("CMTimerBarRenBar").textContent="",l("CMTimerBarRenTime").textContent=Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps),n+=1):l("CMTimerBarRen").style.display="none";const i={};l("CMTimerBarBuffTimers").innerHTML="",Object.keys(Game.buffs).forEach((t=>{if(Game.buffs[t]){const a=fo(Game.buffs[t].name,Game.buffs[t].name,[{id:`${Game.buffs[t].name}Bar`}]);a.style.display="";let r="";r=void 0!==Kt[Game.buffs[t].name]?Kt[Game.buffs[t].name]:Lt,a.lastChild.children[1].className=Bt+r,a.lastChild.children[1].style.color="black",2===e.TimerBarOverlay?a.lastChild.children[1].textContent=`${Math.round(Game.buffs[t].time/Game.buffs[t].maxTime*100)}%`:a.lastChild.children[1].textContent="",a.lastChild.children[1].style.width=`${Math.round(Game.buffs[t].time*(o-8*Math.ceil(Game.buffs[t].time/Game.fps).toString().length)/Game.buffs[t].maxTime)}px`,a.lastChild.children[2].textContent=Math.ceil(Game.buffs[t].time/Game.fps),n+=1,i[Game.buffs[t].name]=a}})),Object.keys(i).forEach((e=>{l("CMTimerBarBuffTimers").appendChild(i[e])})),0!==n&&(l("CMTimerBar").style.height=12*n+2+"px"),io!==n&&(io=n,ko())}}(),yo(),zo(),function(){if(1===e.TooltipWrink&&1===Rt){let e=!1;Object.keys(Game.wrinklers).forEach((t=>{const o=Game.wrinklers[t];if(o.phase>0&&o.selected){if(e=!0,0===zt[t]||void 0===zt[t]){const e=document.createElement("div"),o=document.createElement("div");o.style.minWidth="120px",o.style.marginBottom="4px";const n=document.createElement("div");n.style.textAlign="center",n.id="CMTooltipWrinkler",o.appendChild(n),e.appendChild(o),Game.tooltip.draw(this,escape(e.innerHTML)),It=t,zt[t]=1}}else zt[t]=0})),e||Game.tooltip.hide()}}(),function(){if(1===e.TooltipWrink&&null!==l("CMTooltipWrinkler")){let{sucked:e}=Game.wrinklers[It],t=1.1;if(Game.Has("Sacrilegious corruption")&&(t*=1.05),1===Game.wrinklers[It].type&&(t*=3),e*=t,Game.Has("Wrinklerspawn")&&(e*=1.05),Ct.Temple.minigameLoaded){const t=Game.hasGod("scorn");1===t?e*=1.15:2===t?e*=1.1:3===t&&(e*=1.05)}l("CMTooltipWrinkler").textContent=P(e)}}(),e.UpStats&&"stats"===Game.onMenu&&(Game.drawT-1)%(5*Game.fps)!=0&&(Game.drawT-1)%Game.fps==0&&Game.UpdateMenu(),t(),e.Scale){let e=l("cookies").innerHTML.replace(/.*(?=
)/i,P(Game.cookies));Game.prefs.monospace&&(e=`${e}`),l("cookies").innerHTML=e}}function _o(){E.addLatest(Game.computedMouseCps)}class Qo{constructor(e){this.maxLength=e,this.queue=[]}addLatest(e){this.queue.push(e)>this.maxLength&&this.queue.shift()}calcAverage(e){let t=e;t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length);let o=0;for(let e=this.queue.length-1;e>=0&&e>this.queue.length-1-t;e--)o+=this.queue[e];return 0===o?0:o/t}calcSum(e){let t=e;return t>this.maxLength&&(t=this.maxLength),t>this.queue.length&&(t=this.queue.length),0===t?0:this.queue.slice(-t).reduce(((e,t)=>e+t),0)}}function Xo(){const t=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){let o=Game.cookies+gt;Game.cpsSucked>0&&(o+=He),lt=Math.max(Game.cookiesEarned,o),o*=.05;const n=t-j,i=Math.max(0,Game.cookies-D)/n,a=Math.max(0,He-H)/n,r=Math.max(0,$e[0]-U)/n,l=Math.max(0,o-Le)/n,s=(Game.cookieClicks-$)/n;for(let e=0;e{if(e.PPRigidelMode&&1===o)t[n].color=Wt;else{t[n].color=Eo(t[n],Game.Objects[n].getSumPrice(o));for(let o=0;o{const i=Game.Objects[n].getSumPrice(o);Game.cookiesPs?t[n].pp=Math.max(i-(Game.cookies+go()),0)/Game.cookiesPs+i/t[n].bonus:t[n].pp=i/t[n].bonus,e.PPRigidelMode&&1===o||mt.push([t[n].pp,o])}))}function Ko(){!function(){ut=1/0,mt=[],void 0===e.PPExcludeTop&&(e.PPExcludeTop=0),Yo(We,1),Yo(Ae,10),Yo(je,100),mt.sort(((e,t)=>e[0]-t[0]));let t=0;if(e.PPOnlyConsiderBuyable)for(;mt[t][1]>Game.cookies&&(t+=1,mt.length!==t+1););ut=mt[e.PPExcludeTop][t],qo(We,1),qo(Ae,10),qo(je,100)}(),Object.keys(ze).forEach((e=>{Game.cookiesPs?ze[e].pp=Math.max(Game.Upgrades[e].getPrice()-(Game.cookies+go()),0)/Game.cookiesPs+Game.Upgrades[e].getPrice()/ze[e].bonus:ze[e].pp=Game.Upgrades[e].getPrice()/ze[e].bonus,Number.isNaN(ze[e].pp)&&(ze[e].pp=1/0),ze[e].color=Eo(ze[e],Game.Upgrades[e].getPrice())}))}function Jo(e,t,o,n,i){let a=o,r=0;for(let o=0;o{t[o]={},t[o].bonus=$o(o,e),1!==e&&(q=1)})),t}function en(){Object.keys(Game.Objects).forEach((e=>{We[e].price=Jo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,1),Ae[e].price=Jo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,10),je[e].price=Jo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,100),De[e].price=Jo(Game.Objects[e],Game.Objects[e].basePrice,Game.Objects[e].amount,Game.Objects[e].free,De[e].AmountNeeded)}))}function tn(){We=Zo(1),Ae=Zo(10),je=Zo(100),ze=[],Object.keys(Game.Upgrades).forEach((t=>{const o=function(e){if("toggle"===Game.Upgrades[e].pool||0===Game.Upgrades[e].bought&&Game.Upgrades[e].unlocked&&"prestige"!==Game.Upgrades[e].pool){So(),"Shimmering veil [on]"===yt[e].name?yt["Shimmering veil [off]"].bought=0:"Golden switch [on]"===yt[e].name?yt["Golden switch [off]"].bought=0:yt[e].bought=(yt[e].bought+1)%2,Game.CountsAsUpgradeOwned(Game.Upgrades[e].pool)&&(J+=1),"Elder Pledge"===e?(Z+=1,Z>0&&Oo("Elder nap"),Z>=5&&Oo("Elder slumber")):"Elder Covenant"===e?Oo("Elder calm"):"Prism heart biscuits"===e?Oo("Lovely cookies"):"Heavenly key"===e&&Oo("Wholesome");const t=ee;Fo(),Uo(),t!==ee&&Fo();const o=function(){let e=0;wt("Thousand fingers")&&(e+=.1),wt("Million fingers")&&(e*=5),wt("Billion fingers")&&(e*=10),wt("Trillion fingers")&&(e*=20),wt("Quadrillion fingers")&&(e*=20),wt("Quintillion fingers")&&(e*=20),wt("Sextillion fingers")&&(e*=20),wt("Septillion fingers")&&(e*=20),wt("Octillion fingers")&&(e*=20),wt("Nonillion fingers")&&(e*=20);let t=0;Object.keys(Ct).forEach((e=>{t+=Ct[e].amount})),t-=Ct.Cursor.amount,e*=t,wt("Plastic mouse")&&(e+=.01*de),wt("Iron mouse")&&(e+=.01*de),wt("Titanium mouse")&&(e+=.01*de),wt("Adamantium mouse")&&(e+=.01*de),wt("Unobtainium mouse")&&(e+=.01*de),wt("Eludium mouse")&&(e+=.01*de),wt("Wishalloy mouse")&&(e+=.01*de),wt("Fantasteel mouse")&&(e+=.01*de),wt("Nevercrack mouse")&&(e+=.01*de),wt("Armythril mouse")&&(e+=.01*de),wt("Technobsidian mouse")&&(e+=.01*de),wt("Plasmarble mouse")&&(e+=.01*de),wt("Miraculite mouse")&&(e+=.01*de),wt("Fortune #104")&&(e+=.01*de);let o=1;if(wt("Santa's helpers")&&(o*=1.1),wt("Cookie egg")&&(o*=1.1),wt("Halo gloves")&&(o*=1.1),wt("Dragon claw")&&(o*=1.03),wt("Aura gloves")&&(o*=1+.05*Math.min(Game.Objects.Cursor.level,wt("Luminous gloves")?20:10)),o*=vt("click"),Ct.Temple.minigameLoaded&&xt){const e=xt("labor");1===e?o*=1.15:2===e?o*=1.1:3===e&&(o*=1.05)}Object.keys(Game.buffs).forEach((e=>{void 0!==Game.buffs[e].multClick&&(o*=Game.buffs[e].multClick)})),o*=1+.05*kt("Dragon Cursor");let n=o*Game.ComputeCps(1,wt("Reinforced index finger")+wt("Carpal tunnel prevention cream")+wt("Ambidextrous"),e);return n=Game.runModHookOnValue("cookiesPerClick",n),Game.hasBuff("Cursed finger")&&(n=Game.buffs["Cursed finger"].power),n}()-Game.computedMouseCps;return o?[de-Game.cookiesPs,o]:[de-Game.cookiesPs]}return[]}(t);"Elder Pledge"===t?(ze[t]={bonus:Game.cookiesPs-R},1===e.CalcWrink?ze[t].bonus-=I:2===e.CalcWrink&&(ze[t].bonus-=z),Number.isFinite(ze[t].bonus)||(ze[t].bonus=0)):(ze[t]={},o[0]&&(ze[t].bonus=o[0]),o[1]&&(ze[t].bonusMouse=o[1]))}))}function on(e,t,o){let n=0,i=0,a=0,r=0,l=1+Math.max(0,Math.ceil(Math.log(Game.cookies)/Math.LN10)-10);for(;a0?e/=t:e=0,Ke=on(7,e,Pe),qe=2*Ke[1]/Pe,Ye=Ke[2]/60/60/6/Be,et=on(6,e,Ee),Je=2*et[1]/Ee,Ze=et[2]/60/60/6/Be,nt=on(7,7*e,Pe),tt=2*nt[1]/Pe,ot=nt[2]/60/60/6/Be,rt=on(6,7*e,Ee),it=2*rt[1]/Ee,at=rt[2]/60/60/6/Be}function an(){const e=Math.floor(Date.now()/1e3);if(Game.T/Game.fps%1==0){const t=Game.HowMuchPrestige(Game.cookiesReset),o=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))-Math.floor(t),n=e-Q,i=Math.max(0,o-X)/n;for(let e=0;e{e.push(Game.Upgrades[t])})),e.sort((function(e,t){return e.order>t.order?1:e.order{const o=e[t];if(0===o.bought){let e="";e+=function(e){let t="crate upgrade missing";"prestige"===e.pool&&(t+=" heavenly");let o=0;Game.prefs.crates||(o=1),o&&(t+=" noFrame");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());const i=`function() {return Game.crateTooltip(Game.UpgradesById[${e.id}], 'stats');}`;return`
\n\t
`}(o),"prestige"===o.pool?Qe+=e:"cookie"===o.pool?Xe+=e:"toggle"!==o.pool&&"unused"!==o.pool&&"debug"!==o.pool&&(_e+=e)}}))}function ln(){if("christmas"===Game.season){let e=60*Game.cookiesPs;Game.hasBuff("Elder frenzy")&&(e*=.5),Game.hasBuff("Frenzy")&&(e*=.75),Fe=Math.max(25,e),Game.Has("Ho ho ho-flavored frosting")&&(Fe*=2)}}function sn(){Ce=900*Se/.15,Ce*=Be;const e=No();e>0?Ce/=e:Ce=0,ye=Pe*(.15*Ce)+13,be=Ee*(.15*Ce)+13,ke=7*Ce,Ge=Pe*(.15*ke)+13,ve=Ee*(.15*ke)+13,we=2*Ce,xe=.15*we,Me=0;let t=0,o=0;Object.keys(Game.Objects).forEach((e=>{Game.Objects[e].amount>t&&(t=Game.Objects[e].amount),Game.Objects[e].amount>0&&(o+=1)})),Object.keys(Game.Objects).forEach((e=>{(Game.Objects[e].amountMe&&(Me=2*Game.Objects[e].price,Te=e)}))}function cn(){let e=1,t=1,o=1;wt("Green yeast digestives")&&(o*=1.01),wt("Dragon fang")&&(o*=1.03),e*=1+.1*Game.auraMult("Ancestral Metamorphosis"),e*=Game.eff("goldenCookieGain"),t*=1+.1*Game.auraMult("Unholy Dominion"),t*=Game.eff("wrathCookieGain"),Pe=o*e,Ee=o*t,Be=1,0===Game.shimmerTypes.golden.n&&(Be*=1+1.23*Game.auraMult("Dragon's Fortune"))}function dn(){const e={};Object.keys(Game.Objects).forEach((t=>{if(0!==Object.keys(De).length&&De[t].TotalNeeded>Game.Objects[t].amount)e[t]={AmountNeeded:De[t].TotalNeeded-Game.Objects[t].amount,TotalNeeded:De[t].TotalNeeded};else{const o=function(e){const t=Game.AchievementsOwned;for(let o=0;o<101;o++)if($o(e,o),ee>t)return o;return 101}(t);e[t]={AmountNeeded:o,TotalNeeded:Game.Objects[t].amount+o}}})),De=e}function pn(){He=0,Ue=0,$e=[0,null];for(let e=0;e$e[0]&&($e=[t,e]))}}function un(){vo(),pn(),sn(),cn(),nn(),rn(),ln(),N=new Qo(qt[qt.length-1]),O=new Qo(qt[qt.length-1]),F=new Qo(qt[qt.length-1]),L=new Qo(qt[qt.length-1]),W=new Qo(Yt[Yt.length-1]),A=new Qo(5),E=new Qo(20*Yt[Yt.length-1]),an(),dn(),Xo(),tn(),en(),Ko()}const mn={CPSMode:1,AvgCPSHist:3,AvgClicksHist:0,CalcWrink:0,Scale:2,ScaleDecimals:2,ScaleSeparator:0,ScaleCutoff:999999,TimeFormat:0,DetailedTime:1,PPDisplayTime:0,BuildColour:1,PPOnlyConsiderBuyable:0,PPExcludeTop:0,PPRigidelMode:0,PPSecondsLowerLimit:0,ColourBlue:"#4bb8f0",ColourGreen:"#00ff00",ColourYellow:"#ffff00",ColourOrange:"#ff7f00",ColourRed:"#ff0000",ColourPurple:"#ff00ff",ColourGray:"#b3b3b3",ColourPink:"#ff1493",ColourBrown:"#8b4513",BotBar:1,TimerBar:1,TimerBarPos:0,TimerBarOverlay:2,UpBarColour:1,UpgradeBarFixedPos:1,SortBuildings:0,SortUpgrades:0,UpgradesNeverCollapse:0,DragonAuraInfo:1,GrimoireBar:1,GCTimer:1,Favicon:1,WrinklerButtons:1,HideSectionsButtons:0,TooltipBuildUpgrade:1,TooltipAmor:0,ToolWarnLucky:1,ToolWarnLuckyFrenzy:1,ToolWarnConjure:1,ToolWarnConjureFrenzy:1,ToolWarnEdifice:1,ToolWarnUser:0,ToolWarnBon:1,ToolWarnPos:1,TooltipGrim:1,TooltipWrink:1,TooltipLump:1,TooltipPlots:1,TooltipPantheon:1,TooltipAscendButton:1,Stats:1,MissingUpgrades:1,MissingAchievements:0,UpStats:1,HeavenlyChipsTarget:1,ShowMissedGC:1,Title:1,GeneralSound:1,GCNotification:0,GCFlash:1,ColourGCFlash:"#ffffff",GCSound:1,GCVolume:100,GCSoundURL:"https://freesound.org/data/previews/66/66717_931655-lq.mp3",FortuneNotification:0,FortuneFlash:1,ColourFortuneFlash:"#ffffff",FortuneSound:1,FortuneVolume:100,FortuneSoundURL:"https://freesound.org/data/previews/174/174027_3242494-lq.mp3",SeaNotification:0,SeaFlash:1,ColourSeaFlash:"#ffffff",SeaSound:1,SeaVolume:100,SeaSoundURL:"https://www.freesound.org/data/previews/121/121099_2193266-lq.mp3",GardFlash:1,ColourGardFlash:"#ffffff",GardSound:1,GardVolume:100,GardSoundURL:"https://freesound.org/data/previews/103/103046_861714-lq.mp3",MagicNotification:0,MagicFlash:1,ColourMagicFlash:"#ffffff",MagicSound:1,MagicVolume:100,MagicSoundURL:"https://freesound.org/data/previews/221/221683_1015240-lq.mp3",WrinklerNotification:0,WrinklerFlash:1,ColourWrinklerFlash:"#ffffff",WrinklerSound:1,WrinklerVolume:100,WrinklerSoundURL:"https://freesound.org/data/previews/124/124186_8043-lq.mp3",WrinklerMaxNotification:0,WrinklerMaxFlash:1,ColourWrinklerMaxFlash:"#ffffff",WrinklerMaxSound:1,WrinklerMaxVolume:100,WrinklerMaxSoundURL:"https://freesound.org/data/previews/152/152743_15663-lq.mp3",BulkBuyBlock:0,FavouriteSettings:1,Header:{Favourite:1,Calculation:1,Notation:1,Colours:1,BarsDisplay:1,Tooltip:1,Statistics:1,Notification:1,NotificationGeneral:1,NotificationGC:1,NotificationFC:1,NotificationSea:1,NotificationGard:1,NotificationMagi:1,NotificationWrink:1,NotificationWrinkMax:1,Miscellaneous:1,Lucky:1,Chain:1,Spells:1,Garden:1,Prestige:1,Wrink:1,Sea:1,Misc:1,InfoTab:1}},hn=function(e){if(1===e){const e=function(){try{Notification.requestPermission().then()}catch(e){return!1}return!0};"Notification"in window?e()?Notification.requestPermission().then():Notification.requestPermission():console.log("This browser does not support notifications.")}};function gn(){1===e.BotBar?(l("CMBotBar").style.display="",yo()):l("CMBotBar").style.display="none",ko()}function fn(){BeautifyAll(),Game.RefreshStore(),Game.RebuildUpgrades(),yo(),so(),po()}function Cn(){1===e.Favicon&&y>0?ct.wrath?l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/wrathCookie.ico":l("CMFavicon").href="https://aktanusa.github.io/CookieMonster/favicon/goldenCookie.ico":l("CMFavicon").href="https://orteil.dashnet.org/cookieclicker/favicon.ico"}class yn{constructor(e,t){this.type=e,this.group=t}}class bn extends yn{constructor(e,t,o){super(e,t),this.desc=o}}class kn extends yn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.min=i,this.max=a}}class Gn extends yn{constructor(e,t,o,n,i,a){super(e,t),this.label=o,this.desc=n,this.toggle=i,void 0!==a&&(this.func=a)}}class vn extends yn{constructor(e,t,o,n){super(e,t),this.label=o,this.desc=n;for(let e=0;e<101;e++)this.label[e]=`${e}%`}}const wn={CPSMode:new Gn("bool","Calculation",["Current cookies per second","Average cookies per second"],"Calculate times using current cookies per second or average cookies per second",!1),AvgCPSHist:new Gn("bool","Calculation",["Average CPS in past 10s","Average CPS in past 15s","Average CPS in past 30s","Average CPS in past 1m","Average CPS in past 5m","Average CPS in past 10m","Average CPS in past 15m","Average CPS in past 30m"],"How much time average Cookies Per Second should consider",!1),AvgClicksHist:new Gn("bool","Calculation",["Average clicks in past 1s","Average clicks in past 5s","Average clicks in past 10s","Average clicks in past 15s","Average clicks in past 30s"],"How much time average Cookie Clicks should consider",!1),CalcWrink:new Gn("bool","Calculation",["Calculate with wrinklers OFF","Calculate with wrinklers ON","Calculate with single fattest wrinkler ON"],"Calculate times and average Cookies Per Second with (only the single non-shiny fattest) wrinklers",!0,(()=>{se=!0})),Scale:new Gn("bool","Notation",["Game's setting scale","Metric","Short scale","Short scale (Abbreviated)","Scientific notation","Engineering notation"],"Change how long numbers are formatted",!1,(()=>{fn()})),ScaleDecimals:new Gn("bool","Notation",["1 decimals","2 decimals","3 decimals"],'Set the number of decimals used when applicable. This only works with Cookie Monster scales and not with "Game\'s Setting Scale"',!1,(()=>{fn()})),ScaleSeparator:new Gn("bool","Notation",[". for decimals (standard)",". for thousands"],"Set the separator used for decimals and thousands",!1,(()=>{fn()})),ScaleCutoff:new kn("numscale","Notation","Notation cut-off point: ","The number from which Cookie Monster will start formatting numbers based on chosen scale. Standard is 999,999. Setting this above 999,999,999 might break certain notations",1,999999999),TimeFormat:new Gn("bool","Notation",["Time XXd, XXh, XXm, XXs","Time XX:XX:XX:XX:XX"],"Change the time format",!1),DetailedTime:new Gn("bool","Notation",["Detailed time OFF","Detailed time ON"],"Change how time is displayed in certain statistics and tooltips",!0,(()=>{1===e.DetailedTime?Game.sayTime=Vt:Game.sayTime=T.sayTime})),PPDisplayTime:new Gn("bool","Notation",["PP as value (standard)","PP as time unit"],"Display PP as calculated value or as approximate time unit. Note that PP does not translate directly into a time unit and this is therefore only an approximation.",!1),BuildColour:new Gn("bool","Colours",["Building colours OFF","Building colours ON"],"Colour code buildings",!0,(()=>{so()})),PPOnlyConsiderBuyable:new Gn("bool","Colours",["Don't ignore non-buyable","Ignore non-buyable"],"Makes Cookie Monster label buildings and upgrades you can't buy right now red, useful in those situations where you just want to spend your full bank 'most optimally'",!0),PPExcludeTop:new Gn("bool","Colours",["Don't ignore any","Ignore 1st best","Ignore 1st and 2nd best","Ignore 1st, 2nd and 3rd best"],"Makes Cookie Monster ignore the 1st, 2nd or 3rd best buildings in labeling and colouring PP values",!0),PPRigidelMode:new Gn("bool","Colours",["Rigidel mode OFF","Rigidel mode ON"],'Makes Cookie Monster ignore all "buy 1" options when colouring PP in order to stay at a total building count ending in 10 for pantheon god Rigidel',!0),PPSecondsLowerLimit:new kn("numscale","Colours","Lower limit for PP (in seconds): ",'If a building or upgrade costs less than the specified seconds of CPS it will also be considered optimal and label it as such ("PP is less than xx seconds of CPS"); setting to 0 ignores this option',0,1/0),ColourBlue:new bn("colour","Colours","Standard colour is blue. Used to show upgrades better than best PP building, for Click Frenzy bar, and for various labels"),ColourGreen:new bn("colour","Colours","Standard colour is green. Used to show best PP building, for Blood Frenzy bar, and for various labels"),ColourYellow:new bn("colour","Colours","Standard colour is yellow. Used to show buildings within the top 10 of PP, for Frenzy bar, and for various labels"),ColourOrange:new bn("colour","Colours","Standard colour is orange. Used to show buildings within the top 20 of PP, for Next Reindeer bar, and for various labels"),ColourRed:new bn("colour","Colours","Standard colour is Red. Used to show buildings within the top 30 of PP, for Clot bar, and for various labels"),ColourPurple:new bn("colour","Colours","Standard colour is purple. Used to show buildings outside of the top 30 of PP, for Next Cookie bar, and for various labels"),ColourGray:new bn("colour","Colours","Standard colour is gray. Used to show negative or infinity PP, and for Next Cookie/Next Reindeer bar"),ColourPink:new bn("colour","Colours","Standard colour is pink. Used for Dragonflight bar"),ColourBrown:new bn("colour","Colours","Standard colour is brown. Used for Dragon Harvest bar"),BotBar:new Gn("bool","BarsDisplay",["Bottom bar OFF","Bottom bar ON"],"Building information",!0,(()=>{gn()})),TimerBar:new Gn("bool","BarsDisplay",["Timer bar OFF","Timer bar ON"],"Bar with timers for golden cookie, season popup, Frenzy (Normal, Clot, Elder), Click Frenzy",!0,(()=>{Go()})),TimerBarPos:new Gn("bool","BarsDisplay",["Timer bar position (top left)","Timer bar position (bottom)"],"Placement of the timer bar",!1,(()=>{0===e.TimerBarPos?(l("CMTimerBar").style.width="30%",l("CMTimerBar").style.bottom="",l("game").insertBefore(l("CMTimerBar"),l("sectionLeft"))):(l("CMTimerBar").style.width="100%",l("CMTimerBar").style.bottom="0px",l("wrapper").appendChild(l("CMTimerBar"))),ko()})),TimerBarOverlay:new Gn("bool","BarsDisplay",["Timer bar overlay OFF","Timer bar overlay only seconds","Timer bar overlay full"],"Overlay on timers displaying seconds and/or percentage left",!0),UpBarColour:new Gn("bool","BarsDisplay",["Upgrade colours/bar OFF","Upgrade colours with bar ON","Upgrade colours without bar ON"],"Colour code upgrades and optionally add a counter bar",!1,(()=>{1===e.UpBarColor?(l("CMUpgradeBar").style.display="",po()):2===e.UpBarColor?(l("CMUpgradeBar").style.display="none",po()):(l("CMUpgradeBar").style.display="none",Game.RebuildUpgrades())})),UpgradeBarFixedPos:new Gn("bool","BarsDisplay",["Upgrade bar fixed position OFF","Upgrade bar fixed position ON"],"Lock the upgrade bar at top of the screen to prevent it from moving ofscreen when scrolling",!0,(()=>{1===e.UpgradeBarFixedPos?(l("CMUpgradeBar").style.position="sticky",l("CMUpgradeBar").style.top="0px"):l("CMUpgradeBar").style.position=""})),SortBuildings:new Gn("bool","BarsDisplay",["Sort buildings: default","Sort buildings: PP of x1 purchase","Sort buildings: PP of selected bulk mode"],"Sort the display of buildings in either default order or by PP",!1,(()=>{so()})),SortUpgrades:new Gn("bool","BarsDisplay",["Sort upgrades: default","Sort upgrades: PP"],"Sort the display of upgrades in either default order or by PP",!1,(()=>{po()})),UpgradesNeverCollapse:new Gn("bool","BarsDisplay",["Upgrades always expanded OFF","Upgrades always expanded ON"],"Toggle to make the upgrades sections always expanded to the size needed to display all upgrades",!0,(()=>{co()})),DragonAuraInfo:new Gn("bool","BarsDisplay",["Extra dragon aura info OFF","Extra dragon aura info ON"],"Shows information about changes in CPS and costs in the dragon aura interface.",!0),GrimoireBar:new Gn("bool","BarsDisplay",["Grimoire magic meter timer OFF","Grimoire magic meter timer ON"],"A timer on how long before the Grimoire magic meter is full",!0),GCTimer:new Gn("bool","BarsDisplay",["Golden cookie timer OFF","Golden cookie timer ON"],"A timer on the golden cookie when it has been spawned",!0,(()=>{1===e.GCTimer?Object.keys(ao).forEach((e=>{ao[e].style.display="block",ao[e].style.left=ht[e].l.style.left,ao[e].style.top=ht[e].l.style.top})):Object.keys(ao).forEach((e=>ao[e].style.display="none"))})),Favicon:new Gn("bool","BarsDisplay",["Favicon OFF","Favicon ON"],"Update favicon with golden/wrath cookie",!0,(()=>{Cn()})),WrinklerButtons:new Gn("bool","BarsDisplay",["Extra wrinkler buttons OFF","Extra wrinkler buttons ON"],"Show buttons for popping wrinklers at bottom of cookie section",!0,(()=>{t()})),HideSectionsButtons:new Gn("bool","BarsDisplay",["Hide buildings/upgrades button OFF","Hide buildings/upgrades button ON"],"Show buttons for hiding and showing the buildings and upgrades sections in the right column",!0,(()=>{e.HideSectionsButtons?l("CMSectionHidButtons").style.display="":l("CMSectionHidButtons").style.display="none"})),TooltipBuildUpgrade:new Gn("bool","Tooltip",["Building/upgrade tooltip information OFF","Building/upgrade tooltip information ON"],"Extra information in building/upgrade tooltips",!0),TooltipAmor:new Gn("bool","Tooltip",["Buildings tooltip amortization information OFF","Buildings tooltip amortization information ON"],"Add amortization information to buildings tooltip",!0),ToolWarnLucky:new Gn("bool","Tooltip",["Tooltip lucky warning OFF","Tooltip lucky warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" rewards',!0),ToolWarnLuckyFrenzy:new Gn("bool","Tooltip",["Tooltip lucky frenzy warning OFF","Tooltip lucky frenzy warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Lucky!" (Frenzy) rewards',!0),ToolWarnConjure:new Gn("bool","Tooltip",["Tooltip conjure warning OFF","Tooltip conjure warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards',!0),ToolWarnConjureFrenzy:new Gn("bool","Tooltip",["Tooltip conjure frenzy warning OFF","Tooltip conjure frenzy warning ON"],'A warning when buying if it will put the bank under the amount needed for max "Conjure Baked Goods" rewards with Frenzy active',!0),ToolWarnEdifice:new Gn("bool","Tooltip",["Tooltip edifice warning OFF","Tooltip edifice warning ON"],'A warning when buying if it will put the bank under the amount needed for "Spontaneous Edifice" to possibly give you your most expensive building',!0),ToolWarnUser:new kn("numscale","Tooltip","Tooltip warning at x times CPS: ","Use this to show a customized warning if buying it will put the bank under the amount equal to value times cps; setting to 0 disables the function altogether",0,1/0),ToolWarnBon:new Gn("bool","Tooltip",["Calculate tooltip warning with bonus CPS OFF","Calculate tooltip warning with bonus CPS ON"],"Calculate the warning with or without the bonus CPS you get from buying",!0),ToolWarnPos:new Gn("bool","Tooltip",["Tooltip warning position (left)","Tooltip warning position (bottom)"],"Placement of the warning boxes",!1,(()=>{Io()})),TooltipGrim:new Gn("bool","Tooltip",["Grimoire tooltip information OFF","Grimoire tooltip information ON"],"Extra information in tooltip for grimoire",!0),TooltipWrink:new Gn("bool","Tooltip",["Wrinkler tooltip OFF","Wrinkler tooltip ON"],"Shows the amount of cookies a wrinkler will give when popping it",!0),TooltipLump:new Gn("bool","Tooltip",["Sugar lump tooltip OFF","Sugar lump tooltip ON"],"Shows the current Sugar Lump type in Sugar lump tooltip.",!0),TooltipPlots:new Gn("bool","Tooltip",["Garden plots tooltip OFF","Garden plots tooltip ON"],"Shows a tooltip for plants that have a cookie reward.",!0),TooltipPantheon:new Gn("bool","Tooltip",["Pantheon tooltip OFF","Pantheon tooltip ON"],"Shows additional info in the pantheon tooltip",!0),TooltipAscendButton:new Gn("bool","Tooltip",["Show Extra Info Ascend Tooltip OFF","Show Extra Info Ascend Tooltip ON"],"Shows additional info in the ascend tooltip",!0),Stats:new Gn("bool","Statistics",["Statistics OFF","Statistics ON"],"Extra Cookie Monster statistics!",!0),MissingUpgrades:new Gn("bool","Statistics",["Missing upgrades OFF","Missing upgrades ON"],"Shows missing upgrades in statistics menu",!0),MissingAchievements:new Gn("bool","Statistics",["Missing Achievements OFF","Missing Normal Achievements ON"],"Shows missing normal achievements in statistics menu.",!0),UpStats:new Gn("bool","Statistics",["Statistics update rate (default)","Statistics update rate (1s)"],"Default rate is once every 5 seconds",!1),HeavenlyChipsTarget:new kn("numscale","Statistics","Heavenly chips target: ",'Use this to set a heavenly chips target that will be counted towards in the "prestige" statsistics sections',1,1/0),ShowMissedGC:new Gn("bool","Statistics",["Missed GC OFF","Missed GC ON"],"Show a stat in the statistics screen that counts how many golden cookies you have missed",!0),Title:new Gn("bool","NotificationGeneral",["Title OFF","Title ON","Title pinned tab highlight"],'Update title with colden cookie/season popup timers; pinned tab highlight only changes the title when a golden cookie/season popup spawns; "!" means that golden cookie/reindeer can spawn',!0),GeneralSound:new Gn("bool","NotificationGeneral",["Consider game volume setting OFF","Consider game volume setting ON"],'Turning this toggle to "off" makes Cookie Monster no longer consider the volume setting of the base game, allowing mod notifications to play with base game volume turned down',!0),GCNotification:new Gn("bool","NotificationGC",["Notification OFF","Notification ON"],"Create a notification when golden cookie spawns",!0,(()=>{hn(e.GCNotification)})),GCFlash:new Gn("bool","NotificationGC",["Flash OFF","Flash ON"],"Flash screen on golden cookie",!0),ColourGCFlash:new bn("colour","NotificationGC","The colour of the GC flash, standard colour is white"),GCSound:new Gn("bool","NotificationGC",["Sound OFF","Sound ON"],"Play a sound on golden cookie",!0),GCVolume:new vn("vol","NotificationGC",[],"Volume"),GCSoundURL:new Gn("url","NotificationGC","Sound URL:","URL of the sound to be played when a golden cookie spawns"),FortuneNotification:new Gn("bool","NotificationFC",["Notification OFF","Notification ON"],"Create a notification when fortune cookie is on the ticker",!0,(()=>{hn(e.FortuneNotification)})),FortuneFlash:new Gn("bool","NotificationFC",["Flash OFF","Flash ON"],"Flash screen on fortune cookie spawn",!0),ColourFortuneFlash:new bn("colour","NotificationFC","The colour of the fortune flash, standard colour is white"),FortuneSound:new Gn("bool","NotificationFC",["Sound OFF","Sound ON"],"Play a sound on fortune cookie spawn",!0),FortuneVolume:new vn("vol","NotificationFC",[],"Volume"),FortuneSoundURL:new Gn("url","NotificationFC","Sound URL:","URL of the sound to be played when the ticker has a fortune cookie"),SeaNotification:new Gn("bool","NotificationSea",["Notification OFF","Notification ON"],"Create a notification on season popup",!0,(()=>{hn(e.SeaNotification)})),SeaFlash:new Gn("bool","NotificationSea",["Flash OFF","Flash ON"],"Flash screen on season popup",!0),ColourSeaFlash:new bn("colour","NotificationSea","The colour of the season popup flash, standard colour is white"),SeaSound:new Gn("bool","NotificationSea",["Sound OFF","Sound ON"],"Play a sound on season popup",!0),SeaVolume:new vn("vol","NotificationSea",[],"Volume"),SeaSoundURL:new Gn("url","NotificationSea","Sound URL:","URL of the sound to be played when on season popup spawns"),GardFlash:new Gn("bool","NotificationGard",["Garden Tick Flash OFF","Flash ON"],"Flash screen on garden tick",!0),ColourGardFlash:new bn("colour","NotificationGard","The colour of the garden flash, standard colour is white"),GardSound:new Gn("bool","NotificationGard",["Sound OFF","Sound ON"],"Play a sound on garden tick",!0),GardVolume:new vn("vol","NotificationGard",[],"Volume"),GardSoundURL:new Gn("url","NotificationGard","Garden Tick Sound URL:","URL of the sound to be played when the garden ticks"),MagicNotification:new Gn("bool","NotificationMagi",["Notification OFF","Notification ON"],"Create a notification when magic reaches maximum",!0,(()=>{hn(e.MagicNotification)})),MagicFlash:new Gn("bool","NotificationMagi",["Flash OFF","Flash ON"],"Flash screen when magic reaches maximum",!0),ColourMagicFlash:new bn("colour","NotificationMagi","The colour of the magic flash, standard colour is white"),MagicSound:new Gn("bool","NotificationMagi",["Sound OFF","Sound ON"],"Play a sound when magic reaches maximum",!0),MagicVolume:new vn("vol","NotificationMagi",[],"Volume"),MagicSoundURL:new Gn("url","NotificationMagi","Sound URL:","URL of the sound to be played when magic reaches maxium"),WrinklerNotification:new Gn("bool","NotificationWrink",["Notification OFF","Notification ON"],"Create a notification when a wrinkler appears",!0,(()=>{hn(e.WrinklerNotification)})),WrinklerFlash:new Gn("bool","NotificationWrink",["Flash OFF","Flash ON"],"Flash screen when a wrinkler appears",!0),ColourWrinklerFlash:new bn("colour","NotificationWrink","The colour of the wrinkler flash, standard colour is white"),WrinklerSound:new Gn("bool","NotificationWrink",["Sound OFF","Sound ON"],"Play a sound when a wrinkler appears",!0),WrinklerVolume:new vn("vol","NotificationWrink",[],"Volume"),WrinklerSoundURL:new Gn("url","NotificationWrink","Sound URL:","URL of the sound to be played when a wrinkler appears"),WrinklerMaxNotification:new Gn("bool","NotificationWrinkMax",["Notification OFF","Notification ON"],"Create a notification when the maximum amount of wrinklers has appeared",!0,(()=>{hn(e.WrinklerMaxNotification)})),WrinklerMaxFlash:new Gn("bool","NotificationWrinkMax",["Flash OFF","Flash ON"],"Flash screen when the maximum amount of Wrinklers has appeared",!0),ColourWrinklerMaxFlash:new bn("colour","NotificationWrinkMax","The colour of the maximum wrinkler flash, standard colour is white"),WrinklerMaxSound:new Gn("bool","NotificationWrinkMax",["Sound OFF","Sound ON"],"Play a sound when the maximum amount of wrinklers has appeared",!0),WrinklerMaxVolume:new vn("vol","NotificationWrinkMax",[],"Volume"),WrinklerMaxSoundURL:new Gn("url","NotificationWrinkMax","Sound URL:","URL of the sound to be played when the maximum amount of wrinklers has appeared"),BulkBuyBlock:new Gn("bool","Miscellaneous",["Block bulk buying OFF","Block bulk buying ON"],"Block clicking bulk buying when you can't buy all. This prevents buying 7 of a building when you are in buy-10 or buy-100 mode.",!0),FavouriteSettings:new Gn("bool","Miscellaneous",["Favourite settings section OFF","Favourite settings section ON","Favourite settings section ON (Locked)"],"Show stars before each setting which allows selecting it for a 'favourites' section at the top of the Cookie Monster settings. Setting this to Locked removes the stars but shows the 'favourites' section",!0,(()=>{Game.UpdateMenu()}))};function xn(){return JSON.stringify({favouriteSettings:lo,settings:e,version:"2.031.8"})}function Mn(){if(ge!==Game.dragonLevel||se){if(Game.dragonLevel<25&&Game.dragonLevels[Game.dragonLevel].buy.toString().includes("sacrifice")){let e=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/Objects\[(.*)\]/)[1];const t=Game.dragonLevels[Game.dragonLevel].buy.toString().match(/sacrifice\((.*?)\)/)[1];if("i"!==e)if(e=e.replaceAll("'",""),Game.Objects[e].amount{if(e=n,Game.Objects[e].amount{Ct[e]=Mo(e)})),yt=[],Object.keys(Game.Upgrades).forEach((e=>{yt[e]=To(e)})),bt=[],Object.keys(Game.Achievements).forEach((e=>{bt[e]=wo(e)})),So()}let Bn=!1;function Pn(t,o,n){(1===e[o]||n)&&3===t&&!1===Bn||1===t?(l("CMFlashScreen").style.backgroundColor=e[`Colour${o}`],l("CMFlashScreen").style.opacity="0.5",3===t?(l("CMFlashScreen").style.display="inline",setTimeout((()=>{Pn(2,o,!0)}),1e3/Game.fps)):setTimeout((()=>{Pn(0,o,!0)}),1e3/Game.fps)):2===t?(l("CMFlashScreen").style.opacity="1",setTimeout((()=>{Pn(1,o,!0)}),1e3/Game.fps)):0===t&&(l("CMFlashScreen").style.display="none")}function En(t,o,n,i){if((1===e[o]||i)&&!1===Bn){const o=new Audio(t);e.GeneralSound?o.volume=e[n]/100*(Game.volume/100):o.volume=e[n]/100,o.play()}}function Nn(t,o,n){1===e[t]&&"hidden"===document.visibilityState&&!1===Bn&&new Notification(o,{body:n,badge:"https://orteil.dashnet.org/cookieclicker/favicon.ico"})}function On(){if(no!==Game.OnAscend&&(no=Game.OnAscend,Game.OnAscend?(l("game").style.bottom="0px",1===e.BotBar&&(l("CMBotBar").style.display="none"),1===e.TimerBar&&(l("CMTimerBar").style.display="none")):(gn(),Go()),bo()),!Game.OnAscend&&0===Game.AscendTimer){r!==Object.keys(Game.mods).length&&(Sn(),un(),r=Object.keys(Game.mods).length),se&&(dn(),tn(),Game.Has("Golden switch [off]")?(So(),yt["Golden switch [off]"].bought=0,Fo(),Se=de):Se=Game.cookiesPs,cn(),sn(),rn(),nn(),Mn(),function(){for(let e=0;e<11;e+=1)for(let t=0;t<3;t+=1)ft[e][t]=Tn(e,t)}(),ln(),function(){let e=0;if(Game.Objects.Bank.minigameLoaded){const t=Game.Objects.Bank.minigame.goods;let o=0;Object.keys(t).forEach((e=>{const n=t[e];o+=n.stock*n.val})),e+=o*Game.cookiesPsRawHighest}e+=function(){let e=0;So();let t=2;5!==ne&&18!==ne||(t-=1),5!==ie&&18!==ie||(t-=1),ne=5,ie=18;for(let e=0;e{Ct[t].amount>0&&(e=t)})),Ct[e].amount-=1,K-=1}return Object.keys(Ct).forEach((t=>{const o=Ct[t];e+=Tt(Game.Objects[o.name],Game.Objects[t].basePrice,o.amount,Game.Objects[t].free,o.amount)})),e}(),gt=e}(),se=0);const t=Game.auraMult("Fierce Hoarder")>0;!Y&&t?(Y=!0,q=1):Y&&!t&&(Y=!1,q=1),q&&(en(),q=0),function(){pn(),Ko(),function(){Re=0;let e=0;Object.keys(Game.wrinklers).forEach((t=>{2===Game.wrinklers[t].phase&&(e+=1)}));let t=1;if(Ct.Temple.minigameLoaded){const e=Game.hasGod("scorn");1===e?t*=1.15:2===e?t*=1.1:3===e&&(t*=1.05)}Ie=e,Re=e*(.05*e*1.1)*(.05*Game.Has("Sacrilegious corruption")+1)*(.05*Game.Has("Wrinklerspawn")+1)*t}(),Xo(),an();const e=Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset);pt=uo(e/ho())}(),f!==(Game.TickerEffect&&"fortune"===Game.TickerEffect.type)&&(f=Game.TickerEffect&&"fortune"===Game.TickerEffect.type,f&&(Pn(3,"FortuneFlash",!1),En(e.FortuneSoundURL,"FortuneSound","FortuneVolume",!1),Nn("FortuneNotification","Fortune Cookie found","A Fortune Cookie has appeared on the Ticker."))),g!==Game.shimmerTypes.reindeer.spawned&&(g=Game.shimmerTypes.reindeer.spawned,Object.keys(Game.shimmers).forEach((e=>{Game.shimmers[e].spawnLead&&"reindeer"===Game.shimmers[e].type&&(dt=Game.shimmers[e])})),Pn(3,"SeaFlash",!1),En(e.SeaSoundURL,"SeaSound","SeaVolume",!1),Nn("SeaNotification","Reindeer sighted!","A Reindeer has spawned. Click it now!")),Game.Objects.Farm.minigameLoaded&&C!==Game.Objects.Farm.minigame.nextStep&&(0!==C&&C0){let t=0;Object.keys(Game.wrinklers).forEach((e=>{2===Game.wrinklers[e].phase&&(t+=1)})),t>v?(v=t,t===Game.getWrinklersMax()&&e.WrinklerMaxFlash?Pn(3,"WrinklerMaxFlash",!1):Pn(3,"WrinklerFlash",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxSound?En(e.WrinklerMaxSoundURL,"WrinklerMaxSound","WrinklerMaxVolume",!1):En(e.WrinklerSoundURL,"WrinklerSound","WrinklerVolume",!1),t===Game.getWrinklersMax()&&e.WrinklerMaxNotification?Nn("WrinklerMaxNotification","Maximum Wrinklers Reached","You have reached your maximum ammount of wrinklers"):Nn("WrinklerNotification","A Wrinkler appeared","A new wrinkler has appeared")):v=t}}()}G=0,ht={},Object.keys(Game.shimmers).forEach((e=>{ht[Game.shimmers[e].id]=Game.shimmers[e],Game.shimmers[e].spawnLead&&"golden"===Game.shimmers[e].type&&(ct=Game.shimmers[e],G+=1)})),Object.keys(ao).forEach((e=>{void 0===ht[e]&&(ao[e].parentNode.removeChild(ao[e]),delete ao[e])})),y!==Game.shimmerTypes.golden.n?(y=Game.shimmerTypes.golden.n,y&&(b{void 0===ao[Game.shimmers[t].id]&&function(t){const o=document.createElement("div");o.id=`GCTimer${t.id}`,o.style.width="96px",o.style.height="96px",o.style.position="absolute",o.style.zIndex="10000000001",o.style.textAlign="center",o.style.lineHeight="96px",o.style.fontFamily='"Kavoon", Georgia, serif',o.style.fontSize="35px",o.style.cursor="pointer",o.style.display="block",0===e.GCTimer&&(o.style.display="none"),o.style.left=t.l.style.left,o.style.top=t.l.style.top,o.onclick=function(){t.pop()},o.onmouseover=function(){t.l.style.filter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))",t.l.style.webkitFilter="brightness(125%) drop-shadow(0px 0px 3px rgba(255,255,255,1))"},o.onmouseout=function(){t.l.style.filter="",t.l.style.webkitFilter=""},ao[t.id]=o,l("shimmers").appendChild(o)}(Game.shimmers[t])}))),Cn(),b=G,0===G&&(ct=0)):1===e.GCTimer&&y&&Object.keys(ao).forEach((e=>{ao[e].style.opacity=ht[e].l.style.opacity,ao[e].style.transform=ht[e].l.style.transform,ao[e].textContent=Math.ceil(ht[e].life/Game.fps)}))}function Fn(){let t="";for(let o=0;o{void 0===e[t]?(o=!0,e[t]=mn[t]):"Header"===t&&Object.keys(mn.Header).forEach((n=>{void 0!==e[t][n]&&e[t][n]>-1&&e[t][n]<2||(o=!0,e[t][n]=mn[t][n])}))})),o&&Ln(),On(),Object.keys(mn).forEach((e=>{"Header"!==e&&void 0!==wn[e].func&&wn[e].func()}))}else Wn(mn);Game.UpdateMenu(),Fn()}function An(){Object.keys(Game.wrinklers).forEach((e=>{Game.wrinklers[e].sucked>0&&0===Game.wrinklers[e].type&&(Game.wrinklers[e].hp=0)}))}function jn(t,o){if("b"===t){if(l("tooltip").innerHTML=Game.Objects[o].tooltip(),1===e.TooltipAmor){const e=Jo(Game.Objects[o],Game.Objects[o].basePrice,0,Game.Objects[o].free,Game.Objects[o].amount),t=e-Game.Objects[o].totalCookies;t>0&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split("so far").join(`so far
${P(t)} ${1===Math.floor(t)?"cookie":"cookies"} left to amortize (${mo((e-Game.Objects[o].totalCookies)/(Game.Objects[o].storedTotalCps*Game.globalCpsMult)).text})`))}-1===Game.buyMode&&(l("tooltip").innerHTML=l("tooltip").innerHTML.split(P(Game.Objects[o].bulkPrice)).join(P((Game.Objects[o],Game.Objects[o].basePrice,Game.Objects[o].amount,Game.Objects[o].free,Game.buyBulk,1))))}else if("u"===t){if(!Game.UpgradesInStore[o])return"";l("tooltip").innerHTML=Game.crateTooltip(Game.UpgradesInStore[o],"store")}else"s"===t?l("tooltip").innerHTML=Game.lumpTooltip():"g"===t?l("tooltip").innerHTML=Game.Objects["Wizard tower"].minigame.spellTooltip(o)():"p"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.tileTooltip(o[0],o[1])():"ha"===t?l("tooltip").innerHTML=Game.ObjectsById[2].minigame.toolTooltip(1)():"wb"===t?l("tooltip").innerHTML="":"pag"===t?l("tooltip").innerHTML=Game.Objects.Temple.minigame.godTooltip(o)():"pas"===t&&(l("tooltip").innerHTML=Game.Objects.Temple.minigame.slotTooltip(o[0])());if("b"===t&&1===Game.buyMode||"u"===t||"s"===t||"g"===t||"p"===t&&!Game.keys[16]||"ha"===t||"wb"===t||"pag"===t||"pas"===t&&-1!==o[1]){const e=document.createElement("div");e.id="CMTooltipArea",l("tooltip").appendChild(e)}return eo=t,to=o,zo(),l("tooltip").innerHTML}function Dn(){Game.Objects["Wizard tower"].minigameLoaded&&Object.keys(Game.Objects["Wizard tower"].minigame.spellsById).forEach((e=>{null!==l(`grimoireSpell${e}`).onmouseover&&(x[e]=l(`grimoireSpell${e}`).onmouseover,l(`grimoireSpell${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>jn("g",`${e}`)),"this"),Game.tooltip.wobble()})}))}function Hn(){if(!m&&Game.Objects["Wizard tower"].minigameLoaded){const{minigame:t}=Game.Objects["Wizard tower"];p=t.draw,Game.Objects["Wizard tower"].minigame.draw=function(){p(),1===e.GrimoireBar&&t.magic1&&(e.Header[t]=0),Ln()}function _n(t,o){const n=document.createElement("div");n.className="title",n.style.padding="0px 16px",n.style.opacity="0.7",n.style.fontSize="17px",n.style.fontFamily='"Kavoon", Georgia, serif',n.appendChild(document.createTextNode(`${t} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[o]?"-":"+",i.onclick=function(){Vn(o),Game.UpdateMenu()},n.appendChild(i),n}function Qn(e,t,o,n){const i=document.createElement("div");i.className="listing";const a=document.createElement("b");if(a.textContent=t,i.appendChild(a),"withTooltip"===e){i.className="listing",i.appendChild(document.createTextNode(" "));const e=document.createElement("span");e.onmouseout=function(){Game.tooltip.hide()},e.onmouseover=function(){Game.tooltip.draw(this,escape(Ut[n].innerHTML))},e.style.cursor="default",e.style.display="inline-block",e.style.height="10px",e.style.width="10px",e.style.borderRadius="5px",e.style.textAlign="center",e.style.backgroundColor="#C0C0C0",e.style.color="black",e.style.fontSize="9px",e.style.verticalAlign="bottom",e.textContent="?",i.appendChild(e)}return i.appendChild(document.createTextNode(": ")),i.appendChild(o),i}function Xn(e){const t=document.createDocumentFragment();t.appendChild(document.createTextNode(`${e.length} `));const o=document.createElement("span");o.onmouseout=function(){Game.tooltip.hide()};const n=document.createElement("div"),i=document.createElement("div");i.style.minWidth="140px",i.style.marginBottom="4px";const a=document.createElement("div");return a.className="name",a.style.marginBottom="4px",a.style.textAlign="center",a.textContent="Missing",i.appendChild(a),Object.keys(e).forEach((t=>{const o=document.createElement("div");o.style.textAlign="center",o.appendChild(document.createTextNode(e[t])),i.appendChild(o)})),n.appendChild(i),o.onmouseover=function(){Game.tooltip.draw(this,escape(n.innerHTML))},o.style.cursor="default",o.style.display="inline-block",o.style.height="10px",o.style.width="10px",o.style.borderRadius="5px",o.style.textAlign="center",o.style.backgroundColor="#C0C0C0",o.style.color="black",o.style.fontSize="9px",o.style.verticalAlign="bottom",o.textContent="?",t.appendChild(o),t}function qn(t){const o=document.createElement("div");if(o.className="subsection",o.appendChild(t),o.appendChild(_n("Lucky Cookies","Lucky")),e.Header.Lucky&&o.appendChild(function(){const e=Game.auraMult("Dragon's Fortune")?"GoldCookDragonsFortuneTooltipPlaceholder":"GoldCookTooltipPlaceholder",t=document.createElement("div");t.className="CMStatsLuckySection";const o=Game.cookies+go(){Game.HasUnlocked(Do[e])||c.push(Do[e])})),0!==c.length&&e.appendChild(Qn("basic","Rare plant drops left to unlock",Xn(c))),e}())),o.appendChild(_n("Prestige","Prestige")),e.Header.Prestige&&o.appendChild(function(){const t=document.createElement("div");t.className="CMStatsPrestigeSection";const o=Math.floor(Game.HowMuchPrestige(lt+Game.cookiesReset+He+(Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg")?Le:0)));t.appendChild(Qn("withTooltip","Prestige level (cur / max)",document.createTextNode(`${P(Game.prestige)} / ${P(o)}`),"PrestMaxTooltipPlaceholder"));const n=Math.max(0,Game.HowManyCookiesReset(o+1)-(lt+Game.cookiesReset+He+(Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg")&&Le?Le:0))),i=document.createDocumentFragment();i.appendChild(document.createTextNode(P(n)));const a=document.createElement("small");a.textContent=` (${uo(n/st,1)})`,i.appendChild(a),t.appendChild(Qn("withTooltip","Cookies to next level",i,"NextPrestTooltipPlaceholder")),t.appendChild(Qn("withTooltip","Heavenly chips (cur / max)",document.createTextNode(`${P(Game.heavenlyChips)} / ${P(o-Game.prestige+Game.heavenlyChips)}`),"HeavenChipMaxTooltipPlaceholder")),t.appendChild(Qn("basic","Heavenly chips per second (last 5 seconds)",document.createTextNode(P(Ne,2))));const r=Number(e.HeavenlyChipsTarget);if(!Number.isNaN(r)){const e=r-Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned));e>0&&(t.appendChild(Qn("basic","Heavenly chips to target set in settings (cur)",document.createTextNode(P(e)))),t.appendChild(Qn("basic","Time till target (cur, current 5 second average)",document.createTextNode(uo(e/Ne)))))}const l=function(e){let t=Game.cookiesPs;So(),0===yt["Heavenly key"].bought&&(yt["Heavenly chip secret"].bought=1,yt["Heavenly cookie stand"].bought=1,yt["Heavenly bakery"].bought=1,yt["Heavenly confectionery"].bought=1,yt["Heavenly key"].bought=1,Fo(),t=de,So()),lt>=1e6&&Oo("Sacrifice"),lt>=1e9&&Oo("Oblivion"),lt>=1e12&&Oo("From scratch"),lt>=1e15&&Oo("Nihilism"),lt>=1e18&&Oo("Dematerialize"),lt>=1e21&&Oo("Nil zero zilch"),lt>=1e24&&Oo("Transcendence"),lt>=1e27&&Oo("Obliterate"),lt>=1e30&&Oo("Negative void"),lt>=1e33&&Oo("To crumbs, you say?"),lt>=1e36&&Oo("You get nothing"),lt>=1e39&&Oo("Humble rebeginnings"),lt>=1e42&&Oo("The end of the world"),lt>=1e45&&Oo("Oh, you're back"),lt>=1e48&&Oo("Lazarus"),lt>=1e51&&Oo("Smurf account"),lt>=1e54&&Oo("If at first you don't succeed"),yt["Heavenly chip secret"].bought=1,yt["Heavenly cookie stand"].bought=1,yt["Heavenly bakery"].bought=1,yt["Heavenly confectionery"].bought=1,yt["Heavenly key"].bought=1,oe=e;const o=ee;Fo(),Uo(),o!==ee&&Fo();const n=de-t;return oe=Game.prestige,n}(o),s=document.createDocumentFragment();s.appendChild(document.createTextNode(P(l)));const c=Math.round(l/Game.cookiesPs*1e4);if(Number.isFinite(c)&&0!==c){const e=document.createElement("small");e.textContent=` (${c/100}% of income)`,s.appendChild(e)}t.appendChild(Qn("withTooltip","Reset bonus income",s,"ResetTooltipPlaceholder"));const d=Math.floor(Game.HowMuchPrestige(Game.cookiesReset)),p=Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned)),u=p-d;if(!Game.Has("Lucky digit")){let e=7-p%10;e<0&&(e+=10);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Qn("basic",'Next "Lucky Digit" (total / reset)',i))}if(!Game.Has("Lucky number")){let e=777-p%1e3;e<0&&(e+=1e3);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Qn("basic",'Next "Lucky Number" (total / reset)',i))}if(!Game.Has("Lucky payout")){let e=777777-p%1e6;e<0&&(e+=1e6);const o=u+e,n=p+e,i=document.createDocumentFragment();i.appendChild(document.createTextNode(`${n.toLocaleString()} / ${o.toLocaleString()} (+${e})`)),t.appendChild(Qn("basic",'Next "Lucky Payout" (total / reset)',i))}return t}()),Game.cpsSucked>0&&(o.appendChild(_n("Wrinklers","Wrink")),e.Header.Wrink)){const e=document.createDocumentFragment();e.appendChild(document.createTextNode(`${P(He)} / ${P(Ue)} `));const t=document.createElement("a");t.textContent="Pop All Normal",t.className="option",t.onclick=function(){An()},e.appendChild(t),o.appendChild(Qn("basic","Rewards of Popping (All/Normal)",e));const n=document.createDocumentFragment();n.appendChild(document.createTextNode(`${P($e[0])} `));const i=document.createElement("a");i.textContent="Pop Single Fattest",i.className="option",i.onclick=function(){null!==$e[1]&&(Game.wrinklers[$e[1]].hp=0)},n.appendChild(i),o.appendChild(Qn("basic",`Rewards of Popping Single Fattest Non-Shiny Wrinkler (id: ${null!==$e[1]?$e[1]:"None"})`,n))}if(o.appendChild(function(){const t=document.createElement("div");t.className="CMStatsSeasonSection";let o=!1;const n=[];Object.keys(Wo).forEach((e=>{Game.Has(Wo[e])||(n.push(Wo[e]),o=!0)}));const i=[];Object.keys(Ao).forEach((e=>{Game.Has(Ao[e])||(i.push(Ao[e]),o=!0)}));const a=[];Object.keys(jo).forEach((e=>{Game.Has(jo[e])||(a.push(jo[e]),o=!0)}));const r=[];Object.keys(Game.eggDrops).forEach((e=>{Game.HasUnlocked(Game.eggDrops[e])||(r.push(Game.eggDrops[e]),o=!0)}));const l=[];Object.keys(Game.rareEggDrops).forEach((e=>{Game.HasUnlocked(Game.rareEggDrops[e])||(l.push(Game.rareEggDrops[e]),o=!0)}));const s=Game.HasUnlocked("Chocolate egg")&&!Game.Has("Chocolate egg"),c=Game.Has("Century egg");if(("christmas"===Game.season||o||s||c)&&(t.appendChild(_n("Season Specials","Sea")),e.Header.Sea)){if(0!==n.length){t.appendChild(Qn("basic","Halloween cookies left to buy",Xn(n)));let e=.95;if(Game.HasAchiev("Spooky cookies")&&(e=.8),Game.Has("Starterror")&&(e*=.9),e*=1/Game.dropRateMult(),Game.hasGod){const t=Game.hasGod("seasons");1===t?e*=.9:2===t?e*=.95:3===t&&(e*=.97)}const o=n.length/7;t.appendChild(Qn("basic","Chance of receiving a cookie from wrinkler/shiny wrinkler",document.createTextNode(`${P((1-e)*o*100)}% / ${P((1-.9*e)*o*100)}%`)))}if(0!==i.length){t.appendChild(Qn("basic","Christmas cookies left to buy",Xn(i)));let e=.8;if(Game.HasAchiev("Let it snow")&&(e=.6),e*=1/Game.dropRateMult(),Game.Has("Starsnow")&&(e*=.95),Game.hasGod){const t=Game.hasGod("seasons");1===t?e*=.9:2===t?e*=.95:3===t&&(e*=.97)}const o=i.length/7;t.appendChild(Qn("basic","Chance of receiving a cookie from reindeer",document.createTextNode(`${P((1-e)*o*100)}%`)))}0!==a.length&&t.appendChild(Qn("basic","Valentine cookies left to buy",Xn(a)));const e=function(e){let t=e*(1/Game.dropRateMult());if(Game.HasAchiev("Hide & seek champion")&&(t*=.7),Game.Has("Omelette")&&(t*=.9),Game.Has("Starspawn")&&(t*=.9),Game.hasGod){const e=Game.hasGod("seasons");1===e?t*=.9:2===e?t*=.95:3===e&&(t*=.97)}const o=1-t,n=Game.eggDrops.length-r.length,i=Game.rareEggDrops.length-l.length,a=.9*o*(1-n/Game.eggDrops.length),s=.1*o*(1-i/Game.rareEggDrops.length),c=.9*o*(n/Game.eggDrops.length)+.1*o*(i/Game.rareEggDrops.length);return[a+.9*c*(1-n/Game.eggDrops.length),s+.1*c*(1-i/Game.rareEggDrops.length)]};0!==r.length&&(t.appendChild(Qn("basic","Normal easter eggs left to unlock",Xn(r))),t.appendChild(Qn("basic","Chance of receiving an egg from wrinkler/golden cookie",document.createTextNode(`${P(100*e(.98)[0])}% / ${P(100*e(.9)[0])}%`)))),0!==l.length&&(t.appendChild(Qn("basic","Rare easter eggs left to unlock",Xn(l))),t.appendChild(Qn("basic","Chance of receiving a rare egg from wrinkler/golden cookie",document.createTextNode(`${P(100*e(.98)[1])}% / ${P(100*e(.9)[1])}%`)))),"christmas"===Game.season&&t.appendChild(Qn("basic","Reindeer reward",document.createTextNode(P(Fe)))),s&&t.appendChild(Qn("withTooltip","Chocolate egg cookies",document.createTextNode(P(Le)),"ChoEggTooltipPlaceholder")),c&&t.appendChild(Qn("basic","Century egg multiplier",document.createTextNode(Math.round(1e4*(Oe-1))/100+"%")))}return t}()),o.appendChild(_n("Miscellaneous","Misc")),e.Header.Misc){if(o.appendChild(Qn("basic",`Average cookies per second (past ${qt[e.AvgCPSHist]<60?`${qt[e.AvgCPSHist]} seconds`:qt[e.AvgCPSHist]/60+(3===e.AvgCPSHist?" minute":" minutes")})`,document.createTextNode(P(ho(),3)))),o.appendChild(Qn("basic",`Average cookie clicks per second (past ${Yt[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(P(Ve,1)))),o.appendChild(Qn("basic",`Cookies from clicking (past ${Yt[e.AvgClicksHist]}${0===e.AvgClicksHist?" second":" seconds"})`,document.createTextNode(P(E.calcSum(Ve*Yt[e.AvgClicksHist]))))),Game.Has("Fortune cookies")){const e=[];Object.keys(Lo).forEach((t=>{Game.Has(Lo[t])||e.push(Lo[t])})),0!==e.length&&o.appendChild(Qn("basic","Fortune Upgrades Left to Buy",Xn(e)))}if(e.ShowMissedGC&&o.appendChild(Qn("basic","Missed golden cookies",document.createTextNode(P(Game.missedGoldenClicks)))),Game.prefs.autosave){const e=document.createElement("span");e.id="CMStatsAutosaveTimer",e.innerText=Game.sayTime(60*Game.fps-(Game.OnAscend?0:Game.T%(60*Game.fps)),4),o.appendChild(Qn("basic","Time till autosave",e))}}l("menu").insertBefore(o,l("menu").childNodes[2]),e.MissingUpgrades&&l("menu").childNodes.forEach((e=>{if(e.children[0])if("Prestige"===e.children[0].innerHTML&&Qe){const t=Qe.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesPrestigeTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Prestige upgrades: ${t}/${Game.PrestigeUpgrades.length} (${Math.floor(t/Game.PrestigeUpgrades.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Qe,e.appendChild(i)}else if("Upgrades"===e.children[0].innerHTML){if(_e){const t=_e.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing normal upgrades: ${t}/${Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length} (${Math.floor(t/(Game.UpgradesByPool[""].length+Game.UpgradesByPool.tech.length)*100)}%)`,o.appendChild(n),e.insertBefore(o,e.childNodes[3]);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=_e,e.insertBefore(i,document.getElementById("CMMissingUpgradesTitle").nextSibling)}if(Xe){const t=Xe.match(new RegExp("div","g")||0).length/2,o=document.createElement("div");o.id="CMMissingUpgradesCookiesTitle",o.className="listing";const n=document.createElement("div");n.innerHTML=`Missing Cookie upgrades: ${t}/${Game.UpgradesByPool.cookie.length} (${Math.floor(t/Game.UpgradesByPool.cookie.length*100)}%)`,o.appendChild(n),e.appendChild(o);const i=document.createElement("div");i.className="listing crateBox",i.innerHTML=Xe,e.appendChild(i)}}})),e.MissingAchievements&&function(){let t;Object.values(document.querySelectorAll("div.title")).forEach((e=>{e.textContent.includes("Achievements")&&(t=e.parentElement.querySelectorAll("div.listing.crateBox")[0])})),e.MissingAchievements&&Object.values(t.children).forEach((e=>{if(!e.className.includes("enabled")){const t=e.onclick.toString().split(/\[(.*)\]/gi)[1],{icon:o}=Game.AchievementsById[t];e.style.backgroundPosition=`${48*-o[0]}px ${48*-o[1]}px`,e.onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>function(e){const t=[];"shadow"===e.pool?t.push("Shadow Achievement","#9700cf"):t.push("Achievement",0),t.push("Locked",0);let o=0;(Game.Has("Neuromancy")||Game.sesame&&"debug"===e.pool)&&(o=1),o&&0===e.won?t.push("Click to win!","#00c462"):o&&e.won>0&&t.push("Click to lose!","#00c462");let{icon:n}=e;e.iconFunction&&(n=e.iconFunction());let{desc:i}=e;e.descFunc&&(i=e.descFunc("stats"));let a="";for(let e=0;e[${t[e]}]`);return a=a.substring(1),`
\n
\n
${e.name}
\n ${a}
${i}
\n ${Game.sesame?`
Id : ${e.id} | Order : ${Math.floor(e.order)}${e.tier?` | Tier : ${e.tier}`:""}
`:""}`}(Game.AchievementsById[t])),"top"),Game.tooltip.wobble())}}}))}()}const Yn={Favourite:"Favourite Settings",Calculation:"Calculation",Notation:"Notation",Colours:"Colours and colour coding",BarsDisplay:"Infobars and visual settings",Tooltip:"Tooltips",Statistics:"Statistics",Notification:"Notifications",Miscellaneous:"Miscellaneous"},Kn={NotificationGeneral:"General Notifications",NotificationGC:"Golden Cookie",NotificationFC:"Fortune Cookie",NotificationSea:"Season Special",NotificationGard:"Garden Tick",NotificationMagi:"Full Magic Bar",NotificationWrink:"Wrinkler",NotificationWrinkMax:"Maximum Wrinklers"};function Jn(t,o){const n=document.createElement("div");n.className="title",n.style.opacity="0.7",n.style.fontSize="17px",n.appendChild(document.createTextNode(`${o} `));const i=document.createElement("span");return i.style.cursor="pointer",i.style.display="inline-block",i.style.height="14px",i.style.width="14px",i.style.borderRadius="7px",i.style.textAlign="center",i.style.backgroundColor="#C0C0C0",i.style.color="black",i.style.fontSize="13px",i.style.verticalAlign="middle",i.textContent=e.Header[t]?"-":"+",i.onclick=function(){Vn(t),Game.UpdateMenu()},n.appendChild(i),n}function Zn(t){const o=document.createElement("div");if(o.className="listing",1===e.FavouriteSettings&&o.appendChild(function(e){const t=document.createElement("a");return lo.includes(e)?(t.innerText="★",t.style.color="yellow"):t.innerText="☆",t.className="option",t.onclick=function(){!function(e){lo.includes(e)?lo=lo.filter((t=>t!==e)):lo.push(e)}(e),Ln(),Game.UpdateMenu()},t.onmouseover=function(){Game.tooltip.draw(this,escape(Ut.FavouriteSettingPlaceholder.innerHTML))},t.onmouseout=function(){Game.tooltip.hide()},t.appendChild(document.createTextNode(" ")),t}(t)),"bool"===wn[t].type){const n=document.createElement("a");wn[t].toggle&&0===e[t]?n.className="option off":n.className="option",n.id=In+t,n.onclick=function(){!function(t){e[t]+=1,e[t]===wn[t].label.length?(e[t]=0,wn[t].toggle&&(l(In+t).className="option off")):l(In+t).className="option",void 0!==wn[t].func&&wn[t].func(),Ln()}(t),Game.UpdateMenu()},n.textContent=wn[t].label[e[t]],o.appendChild(n);const i=document.createElement("label");return i.textContent=wn[t].desc,i.style.lineHeight="1.6",o.appendChild(i),o}if("vol"===wn[t].type){const n=document.createElement("div");n.className="sliderBox";const i=document.createElement("div");i.style.float="left",i.innerHTML=wn[t].desc,n.appendChild(i);const a=document.createElement("div");a.id=`slider${t}right`,a.style.float="right",a.innerHTML=`${e[t]}%`,n.appendChild(a);const r=document.createElement("input");r.className="slider",r.id=`slider${t}`,r.style.clear="both",r.type="range",r.min="0",r.max="100",r.step="1",r.value=e[t],r.oninput=function(){zn(t),Game.UpdateMenu()},r.onchange=function(){zn(t),Game.UpdateMenu()},n.appendChild(r),o.appendChild(n);const l=document.createElement("a");return l.className="option",l.onclick=function(){En(e[t.replace("Volume","SoundURL")],t.replace("Volume","Sound"),t,!0)},l.textContent="Test sound",o.appendChild(l),o}if("url"===wn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${wn[t].label} `,n.style.lineHeight="1.6",o.appendChild(n);const i=document.createElement("input");i.id=In+t,i.className="option",i.type="text",i.readOnly=!0,i.setAttribute("value",e[t]),i.style.width="300px",o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("input");a.id=`${In+t}Prompt`,a.className="option",a.type="text",a.setAttribute("value",e[t]);const r=document.createElement("a");r.className="option",r.onclick=function(){!function(e,t){Game.promptWrapL.className="framed";const o=e;Game.promptL.innerHTML=`${o}
`,Object.keys(t).forEach((e=>{const o=document.createElement("a");o.id=`promptOption${e}`,o.className="option",o.onclick=function(){PlaySound("snd/tick.mp3"),t[e][1]()},o.textContent=t[e][0],Game.promptL.children[1].appendChild(o)})),Game.promptAnchorL.style.display="block",Game.darkenL.style.display="block",Game.promptL.focus(),Game.promptOn=1,Game.UpdatePrompt()}(a.outerHTML,[["Save",function(){e[t]=l(`CMConfig${t}Prompt`).value,Ln(),Game.ClosePrompt(),Game.UpdateMenu()}],["Cancel",function(){Game.ClosePrompt()}]])},r.textContent="Edit",o.appendChild(r);const s=document.createElement("label");return s.textContent=wn[t].desc,s.style.lineHeight="1.6",o.appendChild(s),o}if("colour"===wn[t].type){const n=document.createElement("span");n.className="option";const i=document.createElement("input");i.id=t,i.style.width="65px",i.setAttribute("value",e[t]),n.appendChild(i),new $n(i,{hash:!0,position:"right",onInput:function(){e[this.targetElement.id]=this.toHEXString(),Fn(),Ln(),Game.UpdateMenu()}});const a=document.createElement("label");if(a.textContent=wn[t].desc,a.style.lineHeight="1.6",n.appendChild(a),t.includes("Flash")){const e=document.createElement("a");e.className="option",e.onclick=function(){Pn(3,t.replace("Colour",""),!0)},e.textContent="Test flash",n.appendChild(e)}return o.appendChild(n),Rn().init(),o}if("numscale"===wn[t].type){const n=document.createElement("span");n.className="option",n.textContent=`${wn[t].label} `,n.style.lineHeight="1.6",o.appendChild(n);const i=document.createElement("input");i.id=In+t,i.className="option",i.type="number",i.value=e[t],i.min=wn[t].min,i.max=wn[t].max,i.oninput=function(){e[t]=this.value,Ln(),fn(),Game.UpdateMenu()},o.appendChild(i),o.appendChild(document.createTextNode(" "));const a=document.createElement("label");return a.textContent=wn[t].desc,a.style.lineHeight="1.6",o.appendChild(a),o}return o}function ei(t){if(1===e.TimerBar&&0===e.TimerBarPos){const e=parseInt(l("CMTimerBar").style.height,10);Game.mouseY-=e,t(),Game.mouseY+=e}else t()}function ti(){T.Beautify=Beautify,Beautify=P,T.CalculateGains=Game.CalculateGains,Game.CalculateGains=function(){T.CalculateGains(),se=1,S=Date.now(),B=Date.now()},T.tooltip={},T.tooltip.draw=Game.tooltip.draw,T.tooltip.drawMod=new Function(`return ${Game.tooltip.draw.toString().split("this").join("Game.tooltip")}`)(),Game.tooltip.draw=function(e,t,o){T.tooltip.drawMod(e,t,o)},T.tooltip.update=Game.tooltip.update,T.tooltip.updateMod=new Function(`return ${Game.tooltip.update.toString().split("this.").join("Game.tooltip.")}`)(),Game.tooltip.update=function(){T.tooltip.updateMod(),function(){if("store"===Game.tooltip.origin){let t=0;1===e.ToolWarnLucky&&1===e.ToolWarnPos&&null!==l("CMDispTooltipWarningParent")&&(t=l("CMDispTooltipWarningParent").clientHeight-4),Game.tooltip.tta.style.top=`${Math.min(parseInt(Game.tooltip.tta.style.top,10),l("game").clientHeight+l("topBar").clientHeight-Game.tooltip.tt.clientHeight-t-46)}px`}}()},T.UpdateWrinklers=Game.UpdateWrinklers,Game.UpdateWrinklers=function(){ei(T.UpdateWrinklers)},T.UpdateSpecial=Game.UpdateSpecial,Game.UpdateSpecial=function(){ei(T.UpdateSpecial)},l("bigCookie").removeEventListener("click",Game.ClickCookie,!1),l("bigCookie").addEventListener("click",(()=>{ei(Game.ClickCookie)}),!1),T.RebuildUpgrades=Game.RebuildUpgrades,Game.RebuildUpgrades=function(){T.RebuildUpgrades(),M=[],Object.keys(Game.UpgradesInStore).forEach((e=>{null!==l(`upgrade${e}`).onmouseover&&(M[e]=l(`upgrade${e}`).onmouseover,l(`upgrade${e}`).onmouseover=function(){Game.mouseDown||(Game.setOnCrate(this),Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>jn("u",`${e}`)),"store"),Game.tooltip.wobble())})})),Game.CalculateGains()},T.ClickProduct=Game.ClickProduct,Game.ClickProduct=function(t){(!e.BulkBuyBlock||Game.ObjectsById[t].bulkPrice-1;--e)if(Game.ObjectsById[e].amount>0){const o=Ct[Game.ObjectsById[e].name].name;Ct[o].amount-=1,K-=1,t=Ct[o].basePrice*Game.priceIncrease**Math.max(0,Ct[o].amount-1-Ct[o].free),t=Game.modifyBuildingPrice(Ct[o],t),t=Math.ceil(t);break}const o=ee;return Fo(),Uo(),o!==ee&&Fo(),[de-Game.cookiesPs,t]}(t),n=uo(o/(e+Game.cookiesPs));let i;i=0===Game.cookiesPs?P(1/0):P(e/Game.cookiesPs*100),l("dragonAuraInfo").style.minHeight="60px",l("dragonAuraInfo").style.margin="8px",l("dragonAuraInfo").appendChild(document.createElement("div")).className="line";const a=document.createElement("div");a.style.minWidth="200px",a.style.textAlign="center",a.textContent=`Picking this aura will change CPS by ${P(e)} (${i}% of current CPS).`,l("dragonAuraInfo").appendChild(a);const r=document.createElement("div");r.style.minWidth="200px",r.style.textAlign="center",r.textContent=`It will take ${n} to recover the cost.`,l("dragonAuraInfo").appendChild(r)}}(t)},T.ToggleSpecialMenu=Game.ToggleSpecialMenu,Game.ToggleSpecialMenu=function(e){T.ToggleSpecialMenu(e),function(){if(null!==(l("specialPopup").className.match(/onScreen/)&&l("specialPopup").children[0].style.background.match(/dragon/)))for(let e=0;e${fe}`,"this"),Game.tooltip.wobble()},l("specialPopup").children[e].onmouseout=function(){Game.tooltip.shouldHide=1})}()},T.UpdateMenu=Game.UpdateMenu,Game.UpdateMenu=function(){void 0!==Rn().picker&&void 0!==Rn().picker.owner||(T.UpdateMenu(),function(){const t=document.createElement("div");t.className="title","prefs"===Game.onMenu?(t.textContent="Cookie Monster Settings",function(t){const o=document.createDocumentFragment();o.appendChild(t),Object.keys(Yn).forEach((t=>{if("Favourite"===t){if(0!==lo.length&&e.FavouriteSettings>0&&(o.appendChild(Jn(t,Yn[t])),e.Header[t]))for(let e=0;e{const n=Jn(t,Kn[t]);n.style.fontSize="15px",n.style.opacity="0.5",o.appendChild(n),e.Header[t]&&Object.keys(wn).forEach((e=>{wn[e].group===t&&o.appendChild(Zn(e))}))})):Object.keys(wn).forEach((e=>{wn[e].group===t&&o.appendChild(Zn(e))})))}));const n=document.createElement("div");n.className="listing";const i=document.createElement("a");i.className="option",i.onclick=function(){Wn(mn)},i.textContent="Restore Default",n.appendChild(i),o.appendChild(n),l("menu").childNodes[2].insertBefore(o,l("menu").childNodes[2].childNodes[l("menu").childNodes[2].childNodes.length-1])}(t)):"stats"===Game.onMenu?e.Stats&&(t.textContent="Cookie Monster Statistics",qn(t)):"log"===Game.onMenu&&(t.textContent="Cookie Monster ",function(t){const o=document.createElement("div");o.className="subsection";const n=document.createElement("span");if(n.style.cursor="pointer",n.style.display="inline-block",n.style.height="14px",n.style.width="14px",n.style.borderRadius="7px",n.style.textAlign="center",n.style.backgroundColor="#C0C0C0",n.style.color="black",n.style.fontSize="13px",n.style.verticalAlign="middle",n.textContent=e.Header.InfoTab?"-":"+",n.onclick=function(){Vn("InfoTab"),Game.UpdateMenu()},t.appendChild(n),o.appendChild(t),e.Header.InfoTab){const e=document.createElement("div");e.innerHTML='
\n Cookie Monster\n offers a wide range of tools and statistics to enhance your game experience.\n It is not a cheat interface – although it does offer helpers for golden cookies and such, everything can be toggled off at will to only leave how much information you want.
\n Progess on new updates and all previous release notes can be found on the GitHub page linked above!
\n Please also report any bugs you may find over there!
\n
\n ',o.appendChild(e);const t=document.createElement("div");t.innerHTML='
\nWe have moved Cookie Monster to a new location!
\nPlease update the link you are using to load Cookie Monster to https://cookiemonsterteam.github.io/CookieMonster/dist/CookieMonster.js and let everybody know this is the new place to find Cookie Monster!
\nThese are the release notes for the latest update (v 2.031.8).
\n
\nThis update implements the following functions:
\n- The tooltip of buildings now shows how many buildings need to be bought before a new achievement is reached and the cost and PP of this
\n- New setting to force the upgrades sections to always show all available upgrades, stopping them from collapsing and expanding
\n
\nThis update fixes the following bugs:
\n- Settings menu now correctly updates after changing a setting
\n- Fixed incorrect calculation of dates in rare cases
\n- Remove golden cookie timers when you ascend
\n
\n',o.appendChild(t)}const i=l("menu").children[1];i.insertBefore(o,i.children[1])}(t))}())},T.sayTime=Game.sayTime,Vt=function(e,t){return Number.isNaN(e)||e<=0?T.sayTime(e,t):uo(e/Game.fps,1)},T.Logic=Game.Logic,Game.Logic=function(){T.Logic();let t="Cookie Clicker";"fools"===Game.season&&(t="Cookie Baker"),ro=`${Game.OnAscend?"Ascending! ":""}${P(Game.cookies)} ${1===Game.cookies?"cookie":"cookies"} - ${t}`,function(){if(Game.OnAscend||0===e.Title)document.title=ro;else if(1===e.Title){let e,t,o,n=!1,i=!1;e=ct?ct.wrath?`[W${Math.ceil(ct.life/Game.fps)}]`:`[G${Math.ceil(ct.life/Game.fps)}]`:Game.Has("Golden switch [off]")?"[GS]":`[${Number(l("CMTimerBarGCMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.golden.maxTime-Game.shimmerTypes.golden.time)/Game.fps)}]`,f&&(n=!0,t="[F]"),"christmas"===Game.season&&(i=!0,o=g?`[R${Math.ceil(dt.life/Game.fps)}]`:`[${Number(l("CMTimerBarRenMinBar").textContent)<0?"!":""}${Math.ceil((Game.shimmerTypes.reindeer.maxTime-Game.shimmerTypes.reindeer.time)/Game.fps)}]`);let a=ro;"["===a.charAt(0)&&(a=a.substring(a.lastIndexOf("]")+1)),document.title=`${e+(n?t:"")+(i?o:"")} ${a}`}else if(2===e.Title){let e="",t=!1;ct&&(t=!0,ct.wrath?e+=`[W${Math.ceil(ct.life/Game.fps)}]`:e+=`[G${Math.ceil(ct.life/Game.fps)}]`),f&&(t=!0,e+="[F]"),"christmas"===Game.season&&g&&(e+=`[R${Math.ceil(dt.life/Game.fps)}]`,t=!0),t&&(e+=" - ");let o="Cookie Clicker";"fools"===Game.season&&(o="Cookie Baker"),e+=o,document.title=e}}(),function(){const t=Math.max(0,Game.HowManyCookiesReset(Math.floor(Game.HowMuchPrestige(Game.cookiesReset+Game.cookiesEarned))+1)-(Game.cookiesEarned+Game.cookiesReset)),o=Game.sayTime((Date.now()-Game.startDate)/1e3*Game.fps,-1);let n="";n+=`You've been on this run for ${""===o?"not very long":o}.
`,n+='
',Game.prestige>0&&(n+=`Your prestige level is currently ${P(Game.prestige)}.
(CpS +${P(Game.prestige)}%)`,n+='
'),n+=X<1?"Ascending now would grant you no prestige.":X<2?"Ascending now would grant you
1 prestige level (+1% CpS)
and 1 heavenly chip to spend.":`Ascending now would grant you
${P(X)} prestige levels (+${P(X)}% CpS)
and ${P(X)} heavenly chips to spend.`,n+='
',n+=`You need ${P(t)} more cookies for the next level.
`,n+=e.TooltipAscendButton?`
It takes ${pt} to reach the next level and you were making ${P(Ne,2)} chips on average in the last 5 seconds.
`:"",l("ascendTooltip").innerHTML=n}()}}function oi(){Sn(),sn(),un(),r=Object.keys(Game.mods).length,ue=document.createElement("style"),ue.type="text/css",ue.id="CMCSS",document.head.appendChild(ue),function(){const e=document.createElement("div");e.id="CMBotBar",e.style.height="69px",e.style.width="100%",e.style.position="absolute",e.style.display="none",e.style.backgroundColor="#262224",e.style.backgroundImage="linear-gradient(to bottom, #4d4548, #000000)",e.style.borderTop="1px solid black",e.style.overflow="auto",e.style.textShadow="-1px 0 black, 0 1px black, 1px 0 black, 0 -1px black";const t=e.appendChild(document.createElement("table"));t.style.width="100%",t.style.textAlign="center",t.style.whiteSpace="nowrap";const o=t.appendChild(document.createElement("tbody")),n=function(e,t){const o=document.createElement("td");return o.style.textAlign="right",o.className=St+t,o.textContent=e,o},i=o.appendChild(document.createElement("tr"));i.style.fontWeight="bold",i.appendChild(n("CM 2.031.8",Nt)),o.appendChild(document.createElement("tr")).appendChild(n("Bonus Income",Pt)),o.appendChild(document.createElement("tr")).appendChild(n("Payback Period",Pt)),o.appendChild(document.createElement("tr")).appendChild(n("Time Left",Pt)),l("wrapper").appendChild(e),Object.keys(Game.Objects).forEach((e=>{Co(e)}))}(),function(){const e=document.createElement("div");e.id="CMTimerBar",e.style.position="absolute",e.style.display="none",e.style.height="0px",e.style.fontSize="10px",e.style.fontWeight="bold",e.style.backgroundColor="black";const t=fo("CMTimerBarGC","Next Cookie",[{id:"CMTimerBarGCMinBar",color:Wt},{id:"CMTimerBarGCBar",color:Lt}]);e.appendChild(t);const o=fo("CMTimerBarRen","Next Reindeer",[{id:"CMTimerBarRenMinBar",color:Wt},{id:"CMTimerBarRenBar",color:Ot}]);e.appendChild(o);const n=document.createElement("div");n.id="CMTimerBarBuffTimers",e.appendChild(n),l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMUpgradeBar",e.style.width="100%",e.style.backgroundColor="black",e.style.textAlign="center",e.style.fontWeight="bold",e.style.display="none",e.style.zIndex="21",e.onmouseout=function(){Game.tooltip.hide()};const t=document.createElement("div");t.appendChild(function(){const e=document.createElement("div");e.style.minWidth="330px",e.style.marginBottom="4px";const t=document.createElement("div");t.className="name",t.style.marginBottom="4px",t.textContent="Legend",e.appendChild(t);const o=function(e,t){const o=document.createElement("div");o.style.verticalAlign="middle";const n=document.createElement("span");return n.className=Bt+e,n.style.display="inline-block",n.style.height="10px",n.style.width="10px",n.style.marginRight="4px",o.appendChild(n),o.appendChild(document.createTextNode(t)),o};return e.appendChild(o(Pt,"Better than the best PP of a building option")),e.appendChild(o(Et,"Same as the best PP building option")),e.appendChild(o(Nt,"Within the top 10 of PP for buildings")),e.appendChild(o(Ot,"Within the top 20 of PP for buildings")),e.appendChild(o(Ft,"Within the top 30 of PP for buildings")),e.appendChild(o(Lt,"Outside of the top 30 of PP for buildings")),e.appendChild(o(Wt,"Negative or infinity PP")),e}()),e.onmouseover=function(){Game.tooltip.draw(this,escape(t.innerHTML),"store")};const o=function(e,t){const o=document.createElement("span");return o.id=e,o.className=St+t,o.style.width="14.28571428571429%",o.style.display="inline-block",o.textContent="0",o};e.appendChild(o("CMUpgradeBarBlue",Pt)),e.appendChild(o("CMUpgradeBarGreen",Et)),e.appendChild(o("CMUpgradeBarYellow",Nt)),e.appendChild(o("CMUpgradeBarOrange",Ot)),e.appendChild(o("CMUpgradeBarRed",Ft)),e.appendChild(o("CMUpgradeBarPurple",Lt)),e.appendChild(o("CMUpgradeBarGray",Wt)),l("upgrades").parentNode.insertBefore(e,l("upgrades").parentNode.childNodes[3])}(),function(){const e=document.createElement("div");e.id="CMFlashScreen",e.style.width="100%",e.style.height="100%",e.style.backgroundColor="white",e.style.display="none",e.style.zIndex="9999999999",e.style.position="absolute",l("wrapper").appendChild(e)}(),function(){const e=document.createElement("div");e.id="CMSectionHidButtons",e.style.textAlign="center";const t=document.createElement("a");t.className="option",t.onclick=function(){"flex"===l("upgrades").style.display?(l("upgrades").style.display="none",l("toggleUpgrades").style.display="none",l("techUpgrades").style.display="none",l("vaultUpgrades").style.display="none"):(l("upgrades").style.display="flex",0!==l("toggleUpgrades").children.length&&(l("toggleUpgrades").style.display="block"),0!==l("techUpgrades").children.length&&(l("techUpgrades").style.display="block"),0!==l("vaultUpgrades").children.length&&(l("vaultUpgrades").style.display="block"))},t.textContent="Hide/Show Upgrades",e.appendChild(t);const o=document.createElement("a");o.className="option",o.onclick=function(){"grid"===l("products").style.display?l("products").style.display="none":l("products").style.display="grid"},o.textContent="Hide/Show Buildings",e.appendChild(o),l("store").insertBefore(e,l("store").childNodes[2])}(),function(){const e=document.createElement("link");e.id="CMFavicon",e.rel="shortcut icon",e.href="https://orteil.dashnet.org/cookieclicker/favicon.ico",document.getElementsByTagName("head")[0].appendChild(e)}(),Object.keys(Ht).forEach((e=>{!function(e,t,o){const n=document.createElement("div");n.id=e;const i=document.createElement("div");i.style.minWidth=o,i.style.marginBottom="4px";const a=document.createElement("div");a.style.textAlign="left",a.textContent=t,i.appendChild(a),n.appendChild(i),Ut[e]=n}(Ht[e][0],Ht[e][1],Ht[e][2])})),function(){const e=document.createElement("a");e.id="PopAllNormalWrinklerButton",e.textContent="Pop All Normal",e.className="option",e.onclick=function(){An()},e.onmouseout=function(){Game.tooltip.shouldHide=1},e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>jn("wb","PopAll")),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(e);const t=document.createElement("a");t.id="PopFattestWrinklerButton",t.textContent="Pop Single Fattest",t.className="option",t.onclick=function(){null!==$e[1]&&(Game.wrinklers[$e[1]].hp=0)},t.onmouseout=function(){Game.tooltip.shouldHide=1},t.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>jn("wb","PopFattest")),"this"),Game.tooltip.wobble()},l("sectionLeftExtra").children[0].append(t)}(),l("products").style.display="grid",l("storeBulk").style.gridRow="1/1",l("upgrades").style.display="flex",l("upgrades").style["flex-wrap"]="wrap",Object.keys(Game.Objects).forEach((e=>{const t=Game.Objects[e];null!==l(`product${t.id}`).onmouseover&&(w[e]=l(`product${t.id}`).onmouseover,l(`product${t.id}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>jn("b",`${e}`)),"store"),Game.tooltip.wobble()})})),Game.canLumps()&&(s=l("lumps").onmouseover,l("lumps").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>jn("s","Lump")),"this"),Game.tooltip.wobble()}),h=Game.LoadMinigames,Game.LoadMinigames=function(){h(),Game.Objects.Farm.minigameLoaded&&(l("gardenTool-1").onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>jn("ha","HarvestAllButton")),"this"),Game.tooltip.wobble()},Array.from(l("gardenPlot").children).forEach((e=>{const t=e.id.slice(-3);e.onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>jn("p",[`${t[0]}`,`${t[2]}`])),"this"),Game.tooltip.wobble()}}))),Dn(),function(){if(Game.Objects.Temple.minigameLoaded){for(let e=0;e<11;e+=1)l(`templeGod${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>jn("pag",e)),"this"),Game.tooltip.wobble()};for(let e=0;e<3;e+=1)l(`templeSlot${e}`).onmouseover=function(){Game.tooltip.dynamic=1,Game.tooltip.draw(this,(()=>jn("pas",[e,Game.Objects.Temple.minigame.slot[e]])),"this"),Game.tooltip.wobble()}}}(),Un()},Game.LoadMinigames(),l("backgroundLeftCanvas").onmouseover=function(){Rt=1},l("backgroundLeftCanvas").onmouseout=function(){Rt=0,Game.tooltip.hide(),Object.keys(Game.wrinklers).forEach((e=>{zt[e]=0}))},ti(),Un(),Game.CalculateGains(),Wn(),$t=Game.OnAscend,Game.prefs.popups?Game.Popup("Cookie Monster version 2.031.8 loaded!"):Game.Notify("Cookie Monster version 2.031.8 loaded!","","",1,1),Game.Win("Third-party")}const ni={init:function(){Bn=!0;let e=!0;Game.version!==Number("2.031")&&(e=confirm("Cookie Monster version 2.031.8 is meant for Game version 2.031. Loading a different version may cause errors. Do you still want to load Cookie Monster?")),e&&(oi(),Game.registerHook("click",_o),Game.registerHook("draw",Vo),Game.registerHook("logic",On),Bn=!1)},load:function(e){const t=JSON.parse(e);Sn(),void 0!==t.favouriteSettings&&(lo=t.favouriteSettings),Wn(t.settings),"2.031.8"!==t.version&&(Game.prefs.popups?Game.Popup("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!"):Game.Notify("A new version of Cookie Monster has been loaded, check out the release notes in the info tab!","","",0,1))},save:xn};Game.registerMod("CookieMonster",ni)})()})(); +//# sourceMappingURL=https://cookiemonsterteam.github.io/CookieMonster/dist/CookieMonster.js.map \ No newline at end of file diff --git a/dist/CookieMonster.js.map b/dist/CookieMonster.js.map index 9fc12d6..fe00383 100644 --- a/dist/CookieMonster.js.map +++ b/dist/CookieMonster.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://cookiemonster-mod/./node_modules/@eastdesire/jscolor/jscolor.js","webpack://cookiemonster-mod/webpack/bootstrap","webpack://cookiemonster-mod/webpack/runtime/compat get default export","webpack://cookiemonster-mod/webpack/runtime/define property getters","webpack://cookiemonster-mod/webpack/runtime/hasOwnProperty shorthand","webpack://cookiemonster-mod/./src/Config/VariablesAndData.js","webpack://cookiemonster-mod/./src/Config/Toggles/ToggleWrinklerButtons.js","webpack://cookiemonster-mod/./src/Data/Scales.ts","webpack://cookiemonster-mod/./src/Main/VariablesAndData.js","webpack://cookiemonster-mod/./src/Disp/BeautifyAndFormatting/Beautify.js","webpack://cookiemonster-mod/./src/Cache/VariablesAndData.js","webpack://cookiemonster-mod/./src/Sim/VariablesAndData.js","webpack://cookiemonster-mod/./src/Disp/VariablesAndData.js","webpack://cookiemonster-mod/./src/Sim/ReplacedGameFunctions/SimAuraMult.js","webpack://cookiemonster-mod/./src/Sim/ReplacedGameFunctions/SimGetSellMultiplier.js","webpack://cookiemonster-mod/./src/Sim/ReplacedGameFunctions/SimEff.js","webpack://cookiemonster-mod/./src/Sim/ReplacedGameFunctions/SimHas.js","webpack://cookiemonster-mod/./src/Sim/ReplacedGameFunctions/SimHasGod.js","webpack://cookiemonster-mod/./src/Sim/ReplacedGameFunctions/SimModifyBuidlingPrice.js","webpack://cookiemonster-mod/./src/Sim/SimulationEvents/SellBuilding.js","webpack://cookiemonster-mod/./src/Disp/BuildingsUpgrades/Buildings.js","webpack://cookiemonster-mod/./src/Disp/BuildingsUpgrades/UpdateUpgradeSectionsHeight.js","webpack://cookiemonster-mod/./src/Disp/BuildingsUpgrades/Upgrades.js","webpack://cookiemonster-mod/./src/Disp/BeautifyAndFormatting/FormatTime.js","webpack://cookiemonster-mod/./src/Disp/BeautifyAndFormatting/GetTimeColour.js","webpack://cookiemonster-mod/./src/Disp/HelperFunctions/GetCPS.js","webpack://cookiemonster-mod/./src/Disp/HelperFunctions/GetWrinkConfigBank.js","webpack://cookiemonster-mod/./src/Disp/InfoBars/CreateDOMElements.js","webpack://cookiemonster-mod/./src/Disp/InfoBars/BottomBar.js","webpack://cookiemonster-mod/./src/Disp/HelperFunctions/UpdateBackground.js","webpack://cookiemonster-mod/./src/Config/SpecificToggles.js","webpack://cookiemonster-mod/./src/Cache/Dragon/CacheDragonAuras.js","webpack://cookiemonster-mod/./src/Sim/InitializeData/InitAchievement.js","webpack://cookiemonster-mod/./src/Sim/ReplacedGameFunctions/SimGetTieredCpsMult.js","webpack://cookiemonster-mod/./src/Sim/InitializeData/InitialBuildingData.js","webpack://cookiemonster-mod/./src/Sim/InitializeData/InitUpgrade.js","webpack://cookiemonster-mod/./src/Sim/SimulationData/CopyData.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/CreateTooltip.js","webpack://cookiemonster-mod/./src/Cache/PP/ColourOfPP.js","webpack://cookiemonster-mod/./src/Cache/CPS/GetCPSBuffMult.js","webpack://cookiemonster-mod/./src/Sim/SimulationData/SimWin.js","webpack://cookiemonster-mod/./src/Sim/Calculations/CalculateGains.js","webpack://cookiemonster-mod/./src/Sim/ReplacedGameFunctions/SimGetHeavenlyMultiplier.js","webpack://cookiemonster-mod/./src/Data/Gamedata.ts","webpack://cookiemonster-mod/./src/Sim/ReplacedGameFunctions/SimHasAchiev.js","webpack://cookiemonster-mod/./src/Sim/Calculations/CheckOtherAchiev.js","webpack://cookiemonster-mod/./src/Sim/SimulationEvents/BuyBuildingBonusIncome.js","webpack://cookiemonster-mod/./src/Disp/HelperFunctions/CalculateGrimoireRefillTime.js","webpack://cookiemonster-mod/./src/Config/Toggles/ToggleToolWarnPos.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/UpdateTooltips.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/TypesOfTooltips/Building.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/TypesOfTooltips/Upgrade.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/TypesOfTooltips/SugarLump.js","webpack://cookiemonster-mod/./src/Disp/HelperFunctions/GetLumpColour.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/TypesOfTooltips/Grimoire.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/TypesOfTooltips/GardenPlots.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/TypesOfTooltips/HarvestAll.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/TypesOfTooltips/WrinklerButton.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/TypesOfTooltips/PantheonGods.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/TypesOfTooltips/Warnings.js","webpack://cookiemonster-mod/./src/Disp/DrawHook.js","webpack://cookiemonster-mod/./src/Disp/InfoBars/TimerBar.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/WrinklerTooltips.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Refreshmenu.js","webpack://cookiemonster-mod/./src/Main/ClickHook.js","webpack://cookiemonster-mod/./src/Cache/CPS/AverageQueue.js","webpack://cookiemonster-mod/./src/Cache/CPS/CPS.js","webpack://cookiemonster-mod/./src/Cache/PP/Building.js","webpack://cookiemonster-mod/./src/Cache/PP/PP.js","webpack://cookiemonster-mod/./src/Cache/PP/Upgrade.js","webpack://cookiemonster-mod/./src/Sim/SimulationEvents/BuyBuilding.js","webpack://cookiemonster-mod/./src/Cache/PriceAndIncome/PriceAndIncome.js","webpack://cookiemonster-mod/./src/Sim/SimulationEvents/BuyUpgrades.js","webpack://cookiemonster-mod/./src/Cache/Stats/ChainCookies.js","webpack://cookiemonster-mod/./src/Cache/Stats/HeavenlyChips.js","webpack://cookiemonster-mod/./src/Cache/Stats/MissingUpgrades.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Statistics/CreateMissingUpgrades.js","webpack://cookiemonster-mod/./src/Cache/Stats/Reindeer.js","webpack://cookiemonster-mod/./src/Cache/Stats/Stats.js","webpack://cookiemonster-mod/./src/Cache/TillNextAchievement/AllAmountTillNextAchievement.js","webpack://cookiemonster-mod/./src/Cache/TillNextAchievement/IndividualAmountTillNextAchievement.js","webpack://cookiemonster-mod/./src/Cache/Wrinklers/Wrinklers.js","webpack://cookiemonster-mod/./src/Cache/CacheInit.js","webpack://cookiemonster-mod/./src/Data/SettingsDefault.ts","webpack://cookiemonster-mod/./src/Config/CheckNotificationPermissions.js","webpack://cookiemonster-mod/./src/Config/Toggles/ToggleBotBar.js","webpack://cookiemonster-mod/./src/Disp/HelperFunctions/RefreshScale.js","webpack://cookiemonster-mod/./src/Disp/TabTitle/FavIcon.js","webpack://cookiemonster-mod/./src/Data/SettingClasses/BaseSetting.ts","webpack://cookiemonster-mod/./src/Data/SettingClasses/SettingColours.ts","webpack://cookiemonster-mod/./src/Data/SettingClasses/SettingInputNumber.ts","webpack://cookiemonster-mod/./src/Data/SettingClasses/SettingStandard.ts","webpack://cookiemonster-mod/./src/Data/SettingClasses/SettingVolume.ts","webpack://cookiemonster-mod/./src/Data/SettingsData.js","webpack://cookiemonster-mod/./src/Config/Toggles/ToggleDetailedTime.js","webpack://cookiemonster-mod/./src/Config/Toggles/ToggleUpgradeBarAndColour.js","webpack://cookiemonster-mod/./src/Config/Toggles/ToggleUpgradeBarFixedPos.js","webpack://cookiemonster-mod/./src/Config/Toggles/ToggleGCTimer.js","webpack://cookiemonster-mod/./src/Config/Toggles/ToggleSectionHideButtons.js","webpack://cookiemonster-mod/./src/InitSaveLoad/save.js","webpack://cookiemonster-mod/./src/Cache/Dragon/Dragon.js","webpack://cookiemonster-mod/./src/Sim/SimulationEvents/GodChange.js","webpack://cookiemonster-mod/./src/Sim/InitializeData/InitData.js","webpack://cookiemonster-mod/./src/InitSaveLoad/Variables.js","webpack://cookiemonster-mod/./src/Disp/Notifications/Flash.js","webpack://cookiemonster-mod/./src/Disp/Notifications/Sound.js","webpack://cookiemonster-mod/./src/Disp/Notifications/Notification.js","webpack://cookiemonster-mod/./src/Main/LoopHook.js","webpack://cookiemonster-mod/./src/Disp/HelperFunctions/UpdateAscendState.js","webpack://cookiemonster-mod/./src/Cache/CPS/NoGoldSwitchCPS.js","webpack://cookiemonster-mod/./src/Sim/Calculations/NoGoldenSwitchCalc.js","webpack://cookiemonster-mod/./src/Cache/PantheonGods/CacheGods.js","webpack://cookiemonster-mod/./src/Cache/CPS/SellChoEgg.js","webpack://cookiemonster-mod/./src/Sim/SimulationEvents/SellBuildingForChoEgg.js","webpack://cookiemonster-mod/./src/Cache/CacheLoop.js","webpack://cookiemonster-mod/./src/Cache/CPS/CurrWrinklerCPS.js","webpack://cookiemonster-mod/./src/Main/CheckStates/Ticker.js","webpack://cookiemonster-mod/./src/Main/CheckStates/Season.js","webpack://cookiemonster-mod/./src/Main/CheckStates/Garden.js","webpack://cookiemonster-mod/./src/Main/CheckStates/Grimoire.js","webpack://cookiemonster-mod/./src/Main/CheckStates/Wrinkler.js","webpack://cookiemonster-mod/./src/Main/CheckStates/GoldenCookie.js","webpack://cookiemonster-mod/./src/Disp/GoldenCookieTimers/GoldenCookieTimers.js","webpack://cookiemonster-mod/./src/Disp/HelperFunctions/UpdateColours.js","webpack://cookiemonster-mod/./src/Config/SaveLoadReload/SaveLoadReloadSettings.js","webpack://cookiemonster-mod/./src/Disp/HelperFunctions/PopWrinklers.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/Tooltip.js","webpack://cookiemonster-mod/./src/Main/ReplaceGameElements/TooltipGrimoire.js","webpack://cookiemonster-mod/./src/Main/ReplaceGameElements/NativeGrimoire.js","webpack://cookiemonster-mod/./src/Config/ToggleSetting.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Statistics/CreateDOMElements.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Statistics/AddStatsPage.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Statistics/CreateStatsSections.js","webpack://cookiemonster-mod/./src/Sim/SimulationEvents/ResetAscension.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Statistics/CreateMissingAchievements.js","webpack://cookiemonster-mod/./src/Data/Sectionheaders.ts","webpack://cookiemonster-mod/./src/Disp/MenuSections/Settings/CreateHeader.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Settings/CreateOption.js","webpack://cookiemonster-mod/./src/Config/Toggles/ToggleFavourites.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Prompt.js","webpack://cookiemonster-mod/./src/Main/ReplaceGameFunctions/FixMouse.js","webpack://cookiemonster-mod/./src/Main/ReplaceGameFunctions/ReplaceNative.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/PositionLocation.js","webpack://cookiemonster-mod/./src/Main/ReplaceGameElements/TooltipUpgrades.js","webpack://cookiemonster-mod/./src/Disp/Dragon/Dragon.js","webpack://cookiemonster-mod/./src/Sim/SimulationEvents/AuraChange.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/AddMenus.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Settings/SettingsPage.js","webpack://cookiemonster-mod/./src/Disp/MenuSections/Info/InfoPage.js","webpack://cookiemonster-mod/./src/Data/Moddata.ts","webpack://cookiemonster-mod/./src/Disp/TabTitle/TabTitle.js","webpack://cookiemonster-mod/./src/Disp/Tooltips/AscendButton.js","webpack://cookiemonster-mod/./src/Main/Initialization.js","webpack://cookiemonster-mod/./src/Disp/Initialization/CssArea.js","webpack://cookiemonster-mod/./src/Disp/BuildingsUpgrades/UpgradeBar.js","webpack://cookiemonster-mod/./src/Disp/Initialization/FlashScreen.js","webpack://cookiemonster-mod/./src/Disp/Initialization/CreateSectionHideButtons.js","webpack://cookiemonster-mod/./src/Disp/Initialization/CreateWrinklerButton.js","webpack://cookiemonster-mod/./src/Disp/Initialization/UpdateBuildingUpgradeStyle.js","webpack://cookiemonster-mod/./src/Main/ReplaceGameElements/Tooltips.js","webpack://cookiemonster-mod/./src/Main/WrinklerArea/AddDetectArea.js","webpack://cookiemonster-mod/./src/CookieMonster.js","webpack://cookiemonster-mod/./src/InitSaveLoad/init.js","webpack://cookiemonster-mod/./src/InitSaveLoad/load.js"],"names":["global","factory","module","exports","document","win","Error","window","this","BoxShadow","funcName","elm","jsc","jscolor","initialized","instances","readyQueue","register","addEventListener","pub","init","installBySelector","selector","rootNode","node","elms","querySelectorAll","matchClass","RegExp","lookupClass","i","length","dataOpts","m","undefined","type","toLowerCase","isColorAttrSupported","getDataAttr","className","match","targetElm","optsStr","console","warn","docsRef","opts","trim","parseOptionsStr","e","str","JSON","parse","eParse","looseJSON","Function","eEval","getInstances","inst","targetElement","push","createEl","tagName","el","createElement","setData","nodeOrSelector","sel","querySelector","isNode","val","Node","nodeType","nodeName","removeChildren","firstChild","removeChild","isTextInput","isButton","n","indexOf","isButtonEmpty","value","textContent","isPassiveEventSupported","supported","Object","defineProperty","get","removeEventListener","setAttribute","dataProp","obj","arguments","data","hasOwnProperty","prop","map","removeData","getData","setDefault","name","attrName","getAttribute","setDataAttr","_attachedGroupEvents","attachGroupEvent","groupName","evnt","func","detachGroupEvents","evt","preventDefault","returnValue","captureTarget","target","setCapture","_capturedTarget","releaseTarget","releaseCapture","triggerEvent","eventName","bubbles","cancelable","ev","Event","createEvent","initEvent","dispatchEvent","triggerInputEvent","eventKey","keys","9","13","27","code","keyCode","strList","replace","split","hasClass","classList","contains","addClass","classNames","add","removeClass","repl","remove","getCompStyle","getComputedStyle","currentStyle","setStyle","styles","important","reversible","priority","origStyle","setVal","style","setProperty","hexColor","r","g","b","Math","round","toString","substr","toUpperCase","hexaColor","a","rgbColor","rgbaColor","linearGradient","stdName","prefixes","helper","tryFunc","tryVal","background","getFuncName","Array","prototype","join","call","setBorderRadius","setBoxShadow","getElementPos","relativeToViewport","x","y","rect","getBoundingClientRect","left","top","viewPos","getViewPos","getElementSize","offsetWidth","offsetHeight","getAbsPointerPos","changedTouches","clientX","clientY","getRelPointerPos","targetRect","srcElement","doc","documentElement","pageXOffset","scrollLeft","clientLeft","pageYOffset","scrollTop","clientTop","getViewSize","innerWidth","clientWidth","innerHeight","clientHeight","RGB_HSV","min","v","max","h","HSV_RGB","s","u","floor","parseColorString","ret","rgba","format","parseInt","charAt","mR","mG","mB","mA","par","re","parseFloat","parsePaletteValue","mixed","vals","isArray","colors","color","containsTranparentColor","isAlphaFormat","scaleCanvasForHighDPR","canvas","dpr","devicePixelRatio","width","height","getContext","scale","genColorPreviewCanvas","separatorPos","specWidth","scaleForHighDPR","sepW","previewSeparator","sqSize","chessboardSize","sqColor1","chessboardColor1","sqColor2","chessboardColor2","cWidth","cHeight","ctx","fillStyle","fillRect","start","clearRect","lineWidth","beginPath","strokeStyle","moveTo","lineTo","stroke","genColorPreviewGradient","position","params","apply","redrawPosition","picker","owner","tp","vp","thisObj","fixed","c","ts","vs","pd","getPickerDims","ps","borderW","borderH","l","smartPosition","pp","positionValue","contractShadow","_drawPosition","vShadow","shadowBlur","wrap","boxS","shadow","shadowColor","w","controlBorderWidth","sliderSpace","getControlPadding","sliderSize","getSliderChannel","hasAlphaChannel","pal","getPaletteDims","padding","closeButton","buttonHeight","pW","pH","contentW","contentH","paddedW","paddedH","borderWidth","palette","cols","rows","cellW","cellH","sampleCount","_palette","paletteCols","ceil","paletteSpacing","paletteHeight","pointerBorderWidth","pointerThickness","getPadYChannel","mode","triggerCallback","callback","error","triggerGlobal","eventNames","trigger","_pointerMoveEvent","mouse","touch","_pointerEndEvent","_pointerOrigin","onDocumentKeyUp","tryHide","onWindowResize","onWindowScroll","onParentScroll","onDocumentMouseDown","showOnClick","disabled","show","onControlPointerStart","onPickerTouchStart","controlName","pointerType","registerDragEvents","offset","onDocumentPointerMove","onDocumentPointerEnd","parent","frameElement","ofs","abs","rel","channels","fromHSVA","setPad","setSld","setASld","onPaletteSampleClick","currentTarget","_setFormat","getFormat","paletteSetsAlpha","_paletteHasTransparency","fromRGBA","hideOnPaletteClick","hide","ofsX","ofsY","pointerAbs","xVal","yVal","fmt","createPadCanvas","draw","hGrad","createLinearGradient","addColorStop","vGrad","createSliderGradient","color1","color2","grad","createASliderGradient","hShadow","blur","spread","inset","flags","leaveValue","leaveAlpha","leavePreview","enumOpts","previewPosition","alphaChannel","deprecatedOpts","THIS","setOption","option","oldOpt","newOpt","setter","getOption","getter","drawPicker","_processParentElementsInDOM","box","boxB","pad","padB","padM","padCanvas","cross","crossBY","crossBX","crossLY","crossLX","sld","sldB","sldM","sldGrad","sldPtrS","sldPtrIB","sldPtrMB","sldPtrOB","asld","asldB","asldM","asldGrad","asldPtrS","asldPtrIB","asldPtrMB","asldPtrOB","btn","btnT","appendChild","passive","insetColors","outsetColor","p","displaySlider","displayAlphaSlider","pickerDims","crossOuterSize","crossSize","controlPadding","borderRadius","PI","clear","zIndex","border","borderColor","backgroundColor","opacity","controlBorderColor","cursor","instance","control","pointerBorderColor","pointerColor","overflow","display","sliderInnerSpace","innerHTML","chessboard","si","sampleColor","sampleCssColor","sc","sw","backgroundImage","toDataURL","backgroundRepeat","backgroundPosition","bottom","maxWidth","whiteSpace","buttonColor","font","textAlign","onmousedown","lineHeight","createTextNode","closeText","redrawPad","redrawSld","redrawASld","activeClassName","container","body","parentNode","yChannel","rgb1","rgb2","rgb","toHEXString","sldChannel","isPickerOwner","alpha","onChange","onInput","valueElement","alphaElement","previewElement","previewSize","previewPadding","required","hash","uppercase","forceStyle","hideOnLeave","minS","maxS","minV","maxV","minA","maxA","redraw","exposeColor","success","opt","channel","res","evs","callbackProp","isNaN","hsv","fromHSV","fromRGB","fromString","setPreviewElementBg","setValueElementValue","toHEXAString","toRGBString","toRGBAString","toGrayscale","toCanvas","toBackground","isLight","_currentFormat","processValueInput","processAlphaInput","colorStr","alphaVal","setAlphaElementValue","backgrounds","image","size","repeat","origin","preview","bg","sty","right","_parentElementsProcessed","compStyle","set__palette","options","presetsArr","preset","slice","pres","presets","nonProperties","test","valueElementOrigEvents","oninput","oldVal","initValue","initAlpha","install","shift","ready","triggerNow","installByClassName","JSColor","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","__esModule","d","definition","key","o","enumerable","CMOptions","ToggleWrinklerButtons","WrinklerButtons","Game","elderWrath","metric","shortScale","shortScaleAbbreviated","LastModCount","TooltipLumpBackup","BackupGrimoireLaunch","BackupGrimoireLaunchMod","BackupGrimoireDraw","HasReplaceNativeGrimoireLaunch","HasReplaceNativeGrimoireDraw","LoadMinigames","LastSeasonPopupState","LastTickerFortuneState","LastGardenNextStep","LastGoldenCookieState","LastSpawnedGoldenCookieState","LastMagicBarFull","CurrSpawnedGoldenCookieState","LastWrinklerCount","TooltipBuildBackup","TooltipGrimoireBackup","TooltipUpgradeBackup","BackupFunctions","CycliusDateAtBeginLoop","Date","now","CenturyDateAtBeginLoop","num","floats","forced","decimals","ScaleDecimals","Infinity","Scale","Beautify","Number","isFinite","answer","ScaleCutoff","ScaleSeparator","toLocaleString","toExponential","exponential","AmountOfTenPowerThree","toFixed","log","CacheAverageCookiesFromClicks","CookiesDiff","WrinkDiff","WrinkFattestDiff","ChoEggDiff","ClicksDiff","HeavenlyChipsDiff","CacheLastCPSCheck","CacheLastCookies","CacheLastWrinkCookies","CacheLastWrinkFattestCookies","CacheLastClicks","CacheAverageGainBank","CacheAverageGainWrink","CacheAverageGainWrinkFattest","CacheAverageGainChoEgg","CacheAverageCPS","CacheLastHeavenlyCheck","CacheLastHeavenlyChips","CacheDoRemakeBuildPrices","CacheHadBuildAura","SimBuildingsOwned","SimUpgradesOwned","SimPledges","SimAchievementsOwned","SimHeavenlyPower","SimPrestige","SimDragonAura","SimDragonAura2","SimGod1","SimGod2","SimGod3","SimDoSims","SimEffs","SimCookiesPs","SimCookiesPsRaw","DispCSS","CacheDragonAura","CacheDragonAura2","CacheLastDragonLevel","CacheCostDragonUpgrade","CacheLucky","CacheLuckyReward","CacheLuckyWrathReward","CacheLuckyFrenzy","CacheLuckyRewardFrenzy","CacheLuckyWrathRewardFrenzy","CacheConjure","CacheConjureReward","CacheEdifice","CacheEdificeBuilding","CacheNoGoldSwitchCookiesPS","CacheDragonsFortuneMultAdjustment","CacheGoldenCookiesMult","CacheWrathCookiesMult","CacheHCPerSecond","CacheCentEgg","CacheSeaSpec","CacheLastChoEgg","CacheObjects1","CacheObjects10","CacheObjects100","CacheObjectsNextAchievement","CacheWrinklersTotal","CacheWrinklersNormal","CacheWrinklersFattest","CacheCurrWrinklerCPSMult","CacheCurrWrinklerCount","CacheUpgrades","CacheAverageClicks","CacheMissingUpgrades","CacheMissingUpgradesPrestige","CacheMissingUpgradesCookies","CacheChainRequired","CacheChainRequiredNext","CacheChainMaxReward","CacheChainWrathRequired","CacheChainWrathRequiredNext","CacheChainWrathMaxReward","CacheChainFrenzyRequired","CacheChainFrenzyRequiredNext","CacheChainFrenzyMaxReward","CacheChainFrenzyWrathRequired","CacheChainFrenzyWrathRequiredNext","CacheChainFrenzyWrathMaxReward","CacheRealCookiesEarned","CacheAvgCPSWithChoEgg","CacheSpawnedGoldenShimmer","CacheSeasonPopShimmer","CacheTimeTillNextPrestige","CacheMinPP","CachePPArray","CacheGoldenShimmersByID","CacheSellForChoEgg","CacheGods","0","1","2","3","4","5","6","7","8","10","SimObjects","SimUpgrades","SimAchievements","SimAuraMult","what","dragonAuras","SimGetSellMultiplier","giveBack","SimEff","def","SimHas","it","ascensionMode","pool","tier","bought","SimHasGod","hasGod","Temple","minigame","Objects","god","gods","id","SimModifyBuildingPrice","building","price","ModifiedPrice","hasBuff","fortune","minigameLoaded","godLvl","BuildingSell","build","basePrice","free","amount","noSim","noSimRes","toChange","startingAmount","moni","buyBulk","priceIncrease","modifyBuildingPrice","getSellMultiplier","ColourTextPre","ColourBackPre","ColourBlue","ColourGreen","ColourYellow","ColourOrange","ColourRed","ColourPurple","ColourGray","ColourPink","ColourBrown","ColoursOrdering","TooltipText","SimpleTooltipElements","CMLastAscendState","TooltipWrinklerArea","TooltipWrinkler","TooltipWrinklerBeingShown","CMSayTime","LastTargetBotBar","LastTargetBuildings","LastTargetTooltipBuilding","CookieTimes","ClickTimes","BuffColours","Frenzy","Clot","Dragonflight","TooltipPrice","TooltipBonusIncome","TooltipType","TooltipName","TooltipBonusMouse","LastAscendState","LastNumberOfTimers","GCTimers","Title","FavouriteSettings","UpdateBuildings","buyMode","BuildColour","forEach","removeProperty","SortBuildings","arr","k","sort","gridRow","UpdateUpgradeSectionsHeight","values","getElementsByClassName","section","UpgradesNeverCollapse","minHeight","includes","UpdateUpgrades","UpBarColour","blue","green","yellow","orange","red","purple","gray","UpgradesInStore","me","addedColour","j","childNodes","div","SortUpgrades","nameChecker","arr2","upgrade","findIndex","order","FormatTime","time","longFormat","formattedTime","TimeFormat","GetTimeColour","text","GetCPS","CPSMode","CalcWrink","cookiesPs","cpsSucked","wrinklers","GetWrinkConfigBank","CreateTimer","bars","timerBar","margin","fontSize","marginRight","verticalAlign","colorBar","borderTopRightRadius","borderBottomRightRadius","timer","marginLeft","CreateBotBarBuildingColumn","buildingName","bonus","header","substring","lastChild","paddingLeft","UpdateBotBar","BotBar","count","PPString","PPDisplayTime","timeColour","bulkPrice","cookies","UpdateBackground","Background","LeftBackground","DrawBackground","UpdateBotTimerBarPosition","TimerBar","TimerBarPos","ToggleTimerBar","CacheDragonAuras","dragonAura","dragonAura2","InitAchievement","achievementName","Achievements","you","SimGetTieredCpsMult","mult","tieredUpgrades","Tiers","special","synergies","syn","buildingTie1","buildingTie2","grandma","Grandma","misfortune","vanilla","InitialBuildingData","cps","magicCpS","ComputeCps","GrandmaSynergies","UpgradesByPool","kitten","Portal","baseCps","baseCPS","InitUpgrade","upgradeName","Upgrades","power","level","pow","CopyData","UpgradesOwned","pledges","AchievementsOwned","heavenlyPower","prestige","totalCookies","slot","won","TooltipCreateHeader","fontWeight","TooltipCreateCalculationSection","tooltip","income","marginBottom","click","production","ColourOfPP","PPSecondsLowerLimit","PPOnlyConsiderBuyable","GetCPSBuffMult","buffs","multCpS","SimWin","CalculateGains","effs","myEffs","ii","heavenlyMult","SimGetHeavenlyMultiplier","heralds","cookieUpgrades","buildMult","sin","santaLevel","milkProgress","milkMult","catMult","storedCps","eggMult","day","startDate","lumps","rawCookiesPs","CpsAchievements","threshold","shimmerTypes","golden","auraMult","bakeryName","goldenSwitchMult","upgrades","goldenCookieUpgrades","veilMult","runModHookOnValue","Fortunes","HalloCookies","ChristCookies","ValCookies","PlantDrops","SimHasAchiev","CheckOtherAchiev","grandmas","buildingsOwned","mathematician","base10","minAmount","ObjectsById","Cursor","hasAllHalloCook","hasAllChristCook","list","fortunes","BuyBuildingsBonusIncome","tieredAchievs","achievUnlock","lastAchievementsOwned","CalculateGrimoireRefillTime","currentMagic","maxMagic","targetMagic","magic","fps","ToggleToolWarnPos","ToolWarnPos","UpdateTooltips","tooltipBox","paddingBottom","TooltipBuildUpgrade","increase","productionAchievs","HasAchiev","achiev","nextProductionAchiev","ObjectsTillNext","AmountNeeded","PPOfAmount","PPFrag","Building","getPrice","bonusMouse","previousSibling","chocolate","Upgrade","TooltipLump","lumpType","lumpColour","lumpCurrentType","SugarLump","spellCost","getSpellCost","spellsById","TooltipGrim","magicM","recover","recoverColour","conjure","reward","seperator","loss","Grimoire","Farm","TooltipPlots","plot","mature","plantsById","plantName","GardenPlots","totalGain","mortal","tile","immortal","matureBase","HarvestAll","WrinklerReward","WrinklerButton","TooltipPantheon","GodID","cps1","cps2","cps3","PantheonGods","getElementById","TooltipWarn","create","boxId","labelTextFront","labelTextBack","deficitId","transition","labelDiv","labelSpan","deficitDiv","deficitSpan","ToolWarnUser","bonusIncomeUsed","ToolWarnBon","limitLucky","bonusNoFren","ToolWarnLucky","ToolWarnLuckyFrenzy","limitLuckyFrenzy","ToolWarnConjure","limitConjure","ToolWarnConjureFrenzy","limitConjureFrenzy","ToolWarnEdifice","children","Warnings","CMDrawHook","prefs","autosave","drawT","onMenu","Stats","innerText","sayTime","T","maxWidthTwoBar","maxWidthOneBar","numberOfTimers","spawned","Has","minTime","maxTime","TimerBarOverlay","season","reindeer","BuffTimerBars","classColour","UpdateTimerBar","TooltipWrink","showingTooltip","phase","selected","placeholder","wrinkler","minWidth","escape","CheckWrinklerTooltip","sucked","toSuck","UpdateWrinklerTooltip","UpStats","UpdateMenu","monospace","CMClickHook","addLatest","computedMouseCps","CMAvgQueue","maxLength","queue","newValue","timePeriod","reduce","CacheAvgCPS","currDate","choEggTotal","cookiesEarned","timeDiff","bankDiffAvg","wrinkDiffAvg","wrinkFattestDiffAvg","choEggDiffAvg","clicksDiffAvg","cookieClicks","cpsLength","AvgCPSHist","calcAverage","choEgg","HasUnlocked","AvgClicksHist","CacheColour","PPRigidelMode","getSumPrice","PPExcludeTop","CachePP","indexOfMin","CacheBuildingsPP","BuildingGetPrice","CacheBuildingIncome","result","CacheBuildingsPrices","CacheIncome","bonusIncome","unlocked","CountsAsUpgradeOwned","diffMouseCPS","multClick","out","MouseCps","BuyUpgradesBonusIncome","MaxChainCookieReward","digit","maxPayout","totalFromChain","nextMoni","nextRequired","chain","LN10","CacheChain","cpsBuffMult","CacheHeavenlyChipsPS","chipsOwned","HowMuchPrestige","cookiesReset","ascendNowToGet","heavenlyChipsDiffAvg","CacheAllMissingUpgrades","classes","noFrame","crates","icon","iconFunction","getDynamicTooltip","crateMissing","CacheSeasonSpec","CacheStatsCookies","CacheGoldenAndWrathCookiesMults","goldenMult","wrathMult","eff","AllAmountTillNextAchievement","TotalNeeded","tillNext","AchievementsAtStart","index","IndividualAmountTillNextAchievement","CacheWrinklers","InitCache","DetailedTime","UpgradeBarFixedPos","DragonAuraInfo","GrimoireBar","GCTimer","Favicon","HideSectionsButtons","TooltipAmor","TooltipAscendButton","MissingUpgrades","MissingAchievements","HeavenlyChipsTarget","ShowMissedGC","GeneralSound","GCNotification","GCFlash","ColourGCFlash","GCSound","GCVolume","GCSoundURL","FortuneNotification","FortuneFlash","ColourFortuneFlash","FortuneSound","FortuneVolume","FortuneSoundURL","SeaNotification","SeaFlash","ColourSeaFlash","SeaSound","SeaVolume","SeaSoundURL","GardFlash","ColourGardFlash","GardSound","GardVolume","GardSoundURL","MagicNotification","MagicFlash","ColourMagicFlash","MagicSound","MagicVolume","MagicSoundURL","WrinklerNotification","WrinklerFlash","ColourWrinklerFlash","WrinklerSound","WrinklerVolume","WrinklerSoundURL","WrinklerMaxNotification","WrinklerMaxFlash","ColourWrinklerMaxFlash","WrinklerMaxSound","WrinklerMaxVolume","WrinklerMaxSoundURL","BulkBuyBlock","Header","Favourite","Calculation","Notation","Colours","BarsDisplay","Tooltip","Statistics","Notification","NotificationGeneral","NotificationGC","NotificationFC","NotificationSea","NotificationGard","NotificationMagi","NotificationWrink","NotificationWrinkMax","Miscellaneous","Lucky","Chain","Spells","Garden","Prestige","Wrink","Sea","Misc","InfoTab","ToggleOnOff","checkNotificationPromise","requestPermission","then","ToggleBotBar","RefreshScale","BeautifyAll","RefreshStore","RebuildUpgrades","UpdateFavicon","wrath","href","Setting","group","SettingColours","desc","super","SettingInputNumber","label","SettingStandard","toggle","SettingVolume","insertBefore","UpBarColor","save","stringify","favouriteSettings","settings","version","CacheDragonCost","dragonLevel","dragonLevels","buy","replaceAll","cost","CalculateChangeGod","CurrentSlot","godsById","InitData","isInitializing","Flash","config","setTimeout","url","sndConfig","volConfig","sound","Audio","volume","play","CreateNotification","notifyConfig","title","message","visibilityState","badge","CMLoopHook","OnAscend","AscendTimer","mods","CachePantheonGods","sellTotal","Bank","marketGoods","goods","goodsVal","marketGood","stock","cookiesPsRawHighest","buildingsToSacrifice","highestBuilding","SellBuildingsForChoEgg","CacheSellAllForChoEgg","hasBuildAura","godMult","CacheCurrWrinklerCPS","cookiesToNext","HowManyCookiesReset","LoopCache","TickerEffect","shimmers","spawnLead","nextStep","CheckMagicMeter","CurrentWrinklers","getWrinklersMax","CheckWrinklerCount","cookie","fontFamily","onclick","pop","onmouseover","filter","webkitFilter","onmouseout","CreateGCTimer","transform","life","UpdateColours","SaveConfig","saveString","b64_to_utf8","unescape","localStorage","getItem","CookieMonsterSave","newSaveString","setItem","utf8_to_b64","LoadConfig","CMConfig","Colors","mod","PopAllNormalWrinklers","hp","CreateTooltip","buildPrice","amortizeAmount","storedTotalCps","globalCpsMult","crateTooltip","lumpTooltip","spellTooltip","tileTooltip","toolTooltip","godTooltip","slotTooltip","area","ReplaceTooltipGrimoire","dynamic","wobble","ReplaceNativeGrimoireDraw","magicBarTextL","ReplaceNativeGrimoire","launch","ReplaceNativeGrimoireLaunch","ToggleConfigVolume","ToggleHeader","StatsHeader","span","StatsListing","listingName","StatsMissDisp","theMissDisp","frag","createDocumentFragment","missing","AddMenuStats","stats","goldCookTooltip","luckyColour","luckyTime","luckyReqFrag","luckyReqSpan","luckyReqSmall","luckyColourFrenzy","luckyTimeFrenzy","luckyReqFrenFrag","luckyReqFrenSpan","luckyReqFrenSmall","luckySplit","luckyRewardMaxSpan","luckyRewardFrenzyMaxSpan","luckyCurBase","luckyCurSpan","chainColour","chainTime","chainReqFrag","chainReqSpan","chainReqSmall","chainWrathColour","chainWrathTime","chainWrathReqFrag","chainWrathReqSpan","chainWrathReqSmall","chainColourFrenzy","chainTimeFrenzy","chainReqFrenFrag","chainReqFrenSpan","chainReqFrenSmall","chainWrathColourFrenzy","chainWrathTimeFrenzy","chainWrathReqFrenFrag","chainWrathReqFrenSpan","chainWrathReqFrenSmall","chainCurMax","chainCur","chainCurWrath","conjureColour","conjureTime","conjureReqFrag","conjureReqSpan","conjureReqSmall","conjureFrenzyColour","conjureFrenzyCur","conjureFrenzyTime","conjureFrenzyReqFrag","conjureFrenzyReqSpan","conjureFrenzyReqSmall","bakeberryColour","bakeberryFrag","chocorootColour","chocorootFrag","queenbeetColour","queenbeetFrag","duketaterColour","duketaterFrag","missingPlantDrops","possiblePresMax","neededCook","cookiesNextFrag","cookiesNextSmall","heavenlyChips","HCTarget","CookiesTillTarget","resetBonus","newHeavenlyChips","curCPS","ResetCPS","ResetBonus","resetFrag","resetSmall","currentPrestige","willHave","willGet","delta7","next7Reset","next7Total","frag7","delta777","next777Reset","next777Total","frag777","delta777777","next777777Reset","next777777Total","frag777777","popAllFrag","popAllA","popFattestFrag","popFattestA","specDisp","missingHalloweenCookies","missingChristmasCookies","missingValentineCookies","missingNormalEggs","eggDrops","missingRareEggs","rareEggDrops","centEgg","failRateHalloween","dropRateMult","obtainedCookiesChance","failRateChristmas","dropRateEgg","StartingFailRate","failRateEgg","succesRateEgg","obtainedEggs","obtainedRareEggs","pNormal1","pRare1","pRedrop","calcSum","missedGoldenClicks","menuSection","prestigeUpgradesMissing","titlefrag","PrestigeUpgrades","normalUpgradesMissing","tech","nextSibling","cookieUpgradesMissing","achievs","parentElement","achievsCrate","AchievementsById","mouseDown","setOnCrate","tags","neuromancy","sesame","descFunc","tagsStr","CrateTooltipLockedAchievements","AddMissingAchievements","ConfigGroups","ConfigGroupsNotification","CreatePrefHeader","CreatePrefOption","FavStar","ele","ToggleFavouriteSetting","FavouriteSettingPlaceholder","CreateFavouriteStar","ToggleConfig","float","percent","slider","step","onchange","input","readOnly","inputPrompt","content","promptWrapL","promptL","PlaySound","promptAnchorL","darkenL","focus","promptOn","UpdatePrompt","CookieMonsterPrompt","outerHTML","ClosePrompt","innerSpan","FixMouseY","timerBarHeight","mouseY","ReplaceNative","drawMod","from","update","updateMod","warnOffset","tta","tt","UpdateTooltipLocation","UpdateWrinklers","UpdateSpecial","ClickCookie","ClickProduct","DescribeDragonAura","aura","bonusCPS","priceOfChange","CalculateChangeAura","timeToRecover","bonusCPSPercentage","div2","AddAuraInfo","ToggleSpecialMenu","on","shouldHide","AddDragonLevelUpTooltip","subGroup","subGroupObject","resDef","resDefBut","AddMenuPref","info","description","notes","menu","AddMenuInfo","AddMenu","detail","Logic","titleGC","titleFC","titleSP","addFC","addSP","lastIndexOf","spawn","UpdateTitle","ReplaceAscendTooltip","InitializeCookieMonster","head","borderTop","textShadow","table","tbody","firstCol","td","CreateBotBar","CMTimerBarGC","CMTimerBarRen","TimerBarBuffTimers","CreateTimerBar","UpgradeBar","legend","legendLine","CreateUpgradeBarLegend","upgradeNumber","CreateUpgradeBar","WhiteScreen","CreateFlashScreen","CreateSectionHideButtons","getElementsByTagName","CreateFavicon","CreateSimpleTooltip","append","CreateWrinklerButtons","canLumps","child","coords","ReplaceTooltipPantheon","popups","Popup","Notify","Win","CM","proceed","confirm","registerHook","load","registerMod"],"mappings":"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AE,4BAA4BhJ,MAAM2U,QAAU,QCT3C,MAAMmI,EAAmB,CAAC,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAG1DC,EAAuB,CAClC,GACA,GACA,IACA,IACA,KACA,QACA,QACA,OACA,OACA,MACA,MACA,MACA,QACA,SACA,SACA,cACA,UACA,SACA,YACA,UACA,WACA,SACA,WACA,YACA,YACA,kBAIWC,EAAkC,CAC7C,GACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,MACA,KACA,OC3IK,IAAIC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAnBAC,EAAqB,GAErBC,EAAwB,GACxBC,EAAuB,GAOvBC,EAAkB,GAalBC,EAAyBC,KAAKC,MAI9BC,EAAyBF,KAAKC,MCf1B,SAAS,EAASE,EAAKC,EAAQC,GAC5C,MAAMC,EAAWnC,EAAUoC,cAAgB,EAC3C,GAAIJ,IAAQK,IACV,MAAO,WAET,QAAmB,IAARL,EACT,MAAO,IAET,GAAwB,IAApBhC,EAAUsC,MACZ,OAAOX,EAAgBY,SAASP,EAAKC,GAEvC,GAAIO,OAAOC,SAAST,GAAM,CACxB,GAAIA,EAAM,EACR,MAAO,IAAI,EAASne,KAAKu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","file":"CookieMonster.js","sourcesContent":["/**\r\n * jscolor - JavaScript Color Picker\r\n *\r\n * @link http://jscolor.com\r\n * @license For open source use: GPLv3\r\n * For commercial use: JSColor Commercial License\r\n * @author Jan Odvarko - East Desire\r\n *\r\n * See usage examples at http://jscolor.com/examples/\r\n */\r\n\r\n\r\n(function (global, factory) {\r\n\r\n\t'use strict';\r\n\r\n\tif (typeof module === 'object' && typeof module.exports === 'object') {\r\n\t\t// Export jscolor as a module\r\n\t\tmodule.exports = global.document ?\r\n\t\t\tfactory (global) :\r\n\t\t\tfunction (win) {\r\n\t\t\t\tif (!win.document) {\r\n\t\t\t\t\tthrow new Error('jscolor needs a window with document');\r\n\t\t\t\t}\r\n\t\t\t\treturn factory(win);\r\n\t\t\t}\r\n\t\treturn;\r\n\t}\r\n\r\n\t// Default use (no module export)\r\n\tfactory(global);\r\n\r\n})(typeof window !== 'undefined' ? window : this, function (window) { // BEGIN factory\r\n\r\n// BEGIN jscolor code\r\n\r\n\r\n'use strict';\r\n\r\n\r\nvar jscolor = (function () { // BEGIN jscolor\r\n\r\nvar jsc = {\r\n\r\n\r\n\tinitialized : false,\r\n\r\n\tinstances : [], // created instances of jscolor\r\n\r\n\treadyQueue : [], // functions waiting to be called after init\r\n\r\n\r\n\tregister : function () {\r\n\t\tif (typeof window !== 'undefined' && window.document) {\r\n\t\t\twindow.document.addEventListener('DOMContentLoaded', jsc.pub.init, false);\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tinstallBySelector : function (selector, rootNode) {\r\n\t\trootNode = rootNode ? jsc.node(rootNode) : window.document;\r\n\t\tif (!rootNode) {\r\n\t\t\tthrow new Error('Missing root node');\r\n\t\t}\r\n\r\n\t\tvar elms = rootNode.querySelectorAll(selector);\r\n\r\n\t\t// for backward compatibility with DEPRECATED installation/configuration using className\r\n\t\tvar matchClass = new RegExp('(^|\\\\s)(' + jsc.pub.lookupClass + ')(\\\\s*(\\\\{[^}]*\\\\})|\\\\s|$)', 'i');\r\n\r\n\t\tfor (var i = 0; i < elms.length; i += 1) {\r\n\r\n\t\t\tif (elms[i].jscolor && elms[i].jscolor instanceof jsc.pub) {\r\n\t\t\t\tcontinue; // jscolor already installed on this element\r\n\t\t\t}\r\n\r\n\t\t\tif (elms[i].type !== undefined && elms[i].type.toLowerCase() == 'color' && jsc.isColorAttrSupported) {\r\n\t\t\t\tcontinue; // skips inputs of type 'color' if supported by the browser\r\n\t\t\t}\r\n\r\n\t\t\tvar dataOpts, m;\r\n\r\n\t\t\tif (\r\n\t\t\t\t(dataOpts = jsc.getDataAttr(elms[i], 'jscolor')) !== null ||\r\n\t\t\t\t(elms[i].className && (m = elms[i].className.match(matchClass))) // installation using className (DEPRECATED)\r\n\t\t\t) {\r\n\t\t\t\tvar targetElm = elms[i];\r\n\r\n\t\t\t\tvar optsStr = '';\r\n\t\t\t\tif (dataOpts !== null) {\r\n\t\t\t\t\toptsStr = dataOpts;\r\n\r\n\t\t\t\t} else if (m) { // installation using className (DEPRECATED)\r\n\t\t\t\t\tconsole.warn('Installation using class name is DEPRECATED. Use data-jscolor=\"\" attribute instead.' + jsc.docsRef);\r\n\t\t\t\t\tif (m[4]) {\r\n\t\t\t\t\t\toptsStr = m[4];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar opts = null;\r\n\t\t\t\tif (optsStr.trim()) {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\topts = jsc.parseOptionsStr(optsStr);\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\tconsole.warn(e + '\\n' + optsStr);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttry {\r\n\t\t\t\t\tnew jsc.pub(targetElm, opts);\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tconsole.warn(e);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tparseOptionsStr : function (str) {\r\n\t\tvar opts = null;\r\n\r\n\t\ttry {\r\n\t\t\topts = JSON.parse(str);\r\n\r\n\t\t} catch (eParse) {\r\n\t\t\tif (!jsc.pub.looseJSON) {\r\n\t\t\t\tthrow new Error('Could not parse jscolor options as JSON: ' + eParse);\r\n\t\t\t} else {\r\n\t\t\t\t// loose JSON syntax is enabled -> try to evaluate the options string as JavaScript object\r\n\t\t\t\ttry {\r\n\t\t\t\t\topts = (new Function ('var opts = (' + str + '); return typeof opts === \"object\" ? opts : {};'))();\r\n\t\t\t\t} catch (eEval) {\r\n\t\t\t\t\tthrow new Error('Could not evaluate jscolor options: ' + eEval);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn opts;\r\n\t},\r\n\r\n\r\n\tgetInstances : function () {\r\n\t\tvar inst = [];\r\n\t\tfor (var i = 0; i < jsc.instances.length; i += 1) {\r\n\t\t\t// if the targetElement still exists, the instance is considered \"alive\"\r\n\t\t\tif (jsc.instances[i] && jsc.instances[i].targetElement) {\r\n\t\t\t\tinst.push(jsc.instances[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn inst;\r\n\t},\r\n\r\n\r\n\tcreateEl : function (tagName) {\r\n\t\tvar el = window.document.createElement(tagName);\r\n\t\tjsc.setData(el, 'gui', true);\r\n\t\treturn el;\r\n\t},\r\n\r\n\r\n\tnode : function (nodeOrSelector) {\r\n\t\tif (!nodeOrSelector) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tif (typeof nodeOrSelector === 'string') {\r\n\t\t\t// query selector\r\n\t\t\tvar sel = nodeOrSelector;\r\n\t\t\tvar el = null;\r\n\t\t\ttry {\r\n\t\t\t\tel = window.document.querySelector(sel);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.warn(e);\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\tif (!el) {\r\n\t\t\t\tconsole.warn('No element matches the selector: %s', sel);\r\n\t\t\t}\r\n\t\t\treturn el;\r\n\t\t}\r\n\r\n\t\tif (jsc.isNode(nodeOrSelector)) {\r\n\t\t\t// DOM node\r\n\t\t\treturn nodeOrSelector;\r\n\t\t}\r\n\r\n\t\tconsole.warn('Invalid node of type %s: %s', typeof nodeOrSelector, nodeOrSelector);\r\n\t\treturn null;\r\n\t},\r\n\r\n\r\n\t// See https://stackoverflow.com/questions/384286/\r\n\tisNode : function (val) {\r\n\t\tif (typeof Node === 'object') {\r\n\t\t\treturn val instanceof Node;\r\n\t\t}\r\n\t\treturn val && typeof val === 'object' && typeof val.nodeType === 'number' && typeof val.nodeName === 'string';\r\n\t},\r\n\r\n\r\n\tnodeName : function (node) {\r\n\t\tif (node && node.nodeName) {\r\n\t\t\treturn node.nodeName.toLowerCase();\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\r\n\tremoveChildren : function (node) {\r\n\t\twhile (node.firstChild) {\r\n\t\t\tnode.removeChild(node.firstChild);\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tisTextInput : function (el) {\r\n\t\treturn el && jsc.nodeName(el) === 'input' && el.type.toLowerCase() === 'text';\r\n\t},\r\n\r\n\r\n\tisButton : function (el) {\r\n\t\tif (!el) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tvar n = jsc.nodeName(el);\r\n\t\treturn (\r\n\t\t\t(n === 'button') ||\r\n\t\t\t(n === 'input' && ['button', 'submit', 'reset'].indexOf(el.type.toLowerCase()) > -1)\r\n\t\t);\r\n\t},\r\n\r\n\r\n\tisButtonEmpty : function (el) {\r\n\t\tswitch (jsc.nodeName(el)) {\r\n\t\t\tcase 'input': return (!el.value || el.value.trim() === '');\r\n\t\t\tcase 'button': return (el.textContent.trim() === '');\r\n\t\t}\r\n\t\treturn null; // could not determine element's text\r\n\t},\r\n\r\n\r\n\t// See https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\r\n\tisPassiveEventSupported : (function () {\r\n\t\tvar supported = false;\r\n\r\n\t\ttry {\r\n\t\t\tvar opts = Object.defineProperty({}, 'passive', {\r\n\t\t\t\tget: function () { supported = true; }\r\n\t\t\t});\r\n\t\t\twindow.addEventListener('testPassive', null, opts);\r\n\t\t\twindow.removeEventListener('testPassive', null, opts);\r\n\t\t} catch (e) {}\r\n\r\n\t\treturn supported;\r\n\t})(),\r\n\r\n\r\n\tisColorAttrSupported : (function () {\r\n\t\tvar elm = window.document.createElement('input');\r\n\t\tif (elm.setAttribute) {\r\n\t\t\telm.setAttribute('type', 'color');\r\n\t\t\tif (elm.type.toLowerCase() == 'color') {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t})(),\r\n\r\n\r\n\tdataProp : '_data_jscolor',\r\n\r\n\r\n\t// usage:\r\n\t// setData(obj, prop, value)\r\n\t// setData(obj, {prop:value, ...})\r\n\t//\r\n\tsetData : function () {\r\n\t\tvar obj = arguments[0];\r\n\r\n\t\tif (arguments.length === 3) {\r\n\t\t\t// setting a single property\r\n\t\t\tvar data = obj.hasOwnProperty(jsc.dataProp) ? obj[jsc.dataProp] : (obj[jsc.dataProp] = {});\r\n\t\t\tvar prop = arguments[1];\r\n\t\t\tvar value = arguments[2];\r\n\r\n\t\t\tdata[prop] = value;\r\n\t\t\treturn true;\r\n\r\n\t\t} else if (arguments.length === 2 && typeof arguments[1] === 'object') {\r\n\t\t\t// setting multiple properties\r\n\t\t\tvar data = obj.hasOwnProperty(jsc.dataProp) ? obj[jsc.dataProp] : (obj[jsc.dataProp] = {});\r\n\t\t\tvar map = arguments[1];\r\n\r\n\t\t\tfor (var prop in map) {\r\n\t\t\t\tif (map.hasOwnProperty(prop)) {\r\n\t\t\t\t\tdata[prop] = map[prop];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\tthrow new Error('Invalid arguments');\r\n\t},\r\n\r\n\r\n\t// usage:\r\n\t// removeData(obj, prop, [prop...])\r\n\t//\r\n\tremoveData : function () {\r\n\t\tvar obj = arguments[0];\r\n\t\tif (!obj.hasOwnProperty(jsc.dataProp)) {\r\n\t\t\treturn true; // data object does not exist\r\n\t\t}\r\n\t\tfor (var i = 1; i < arguments.length; i += 1) {\r\n\t\t\tvar prop = arguments[i];\r\n\t\t\tdelete obj[jsc.dataProp][prop];\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n\r\n\r\n\tgetData : function (obj, prop, setDefault) {\r\n\t\tif (!obj.hasOwnProperty(jsc.dataProp)) {\r\n\t\t\t// data object does not exist\r\n\t\t\tif (setDefault !== undefined) {\r\n\t\t\t\tobj[jsc.dataProp] = {}; // create data object\r\n\t\t\t} else {\r\n\t\t\t\treturn undefined; // no value to return\r\n\t\t\t}\r\n\t\t}\r\n\t\tvar data = obj[jsc.dataProp];\r\n\r\n\t\tif (!data.hasOwnProperty(prop) && setDefault !== undefined) {\r\n\t\t\tdata[prop] = setDefault;\r\n\t\t}\r\n\t\treturn data[prop];\r\n\t},\r\n\r\n\r\n\tgetDataAttr : function (el, name) {\r\n\t\tvar attrName = 'data-' + name;\r\n\t\tvar attrValue = el.getAttribute(attrName);\r\n\t\treturn attrValue;\r\n\t},\r\n\r\n\r\n\tsetDataAttr : function (el, name, value) {\r\n\t\tvar attrName = 'data-' + name;\r\n\t\tel.setAttribute(attrName, value);\r\n\t},\r\n\r\n\r\n\t_attachedGroupEvents : {},\r\n\r\n\r\n\tattachGroupEvent : function (groupName, el, evnt, func) {\r\n\t\tif (!jsc._attachedGroupEvents.hasOwnProperty(groupName)) {\r\n\t\t\tjsc._attachedGroupEvents[groupName] = [];\r\n\t\t}\r\n\t\tjsc._attachedGroupEvents[groupName].push([el, evnt, func]);\r\n\t\tel.addEventListener(evnt, func, false);\r\n\t},\r\n\r\n\r\n\tdetachGroupEvents : function (groupName) {\r\n\t\tif (jsc._attachedGroupEvents.hasOwnProperty(groupName)) {\r\n\t\t\tfor (var i = 0; i < jsc._attachedGroupEvents[groupName].length; i += 1) {\r\n\t\t\t\tvar evt = jsc._attachedGroupEvents[groupName][i];\r\n\t\t\t\tevt[0].removeEventListener(evt[1], evt[2], false);\r\n\t\t\t}\r\n\t\t\tdelete jsc._attachedGroupEvents[groupName];\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tpreventDefault : function (e) {\r\n\t\tif (e.preventDefault) { e.preventDefault(); }\r\n\t\te.returnValue = false;\r\n\t},\r\n\r\n\r\n\tcaptureTarget : function (target) {\r\n\t\t// IE\r\n\t\tif (target.setCapture) {\r\n\t\t\tjsc._capturedTarget = target;\r\n\t\t\tjsc._capturedTarget.setCapture();\r\n\t\t}\r\n\t},\r\n\r\n\r\n\treleaseTarget : function () {\r\n\t\t// IE\r\n\t\tif (jsc._capturedTarget) {\r\n\t\t\tjsc._capturedTarget.releaseCapture();\r\n\t\t\tjsc._capturedTarget = null;\r\n\t\t}\r\n\t},\r\n\r\n\r\n\ttriggerEvent : function (el, eventName, bubbles, cancelable) {\r\n\t\tif (!el) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar ev = null;\r\n\r\n\t\tif (typeof Event === 'function') {\r\n\t\t\tev = new Event(eventName, {\r\n\t\t\t\tbubbles: bubbles,\r\n\t\t\t\tcancelable: cancelable\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t// IE\r\n\t\t\tev = window.document.createEvent('Event');\r\n\t\t\tev.initEvent(eventName, bubbles, cancelable);\r\n\t\t}\r\n\r\n\t\tif (!ev) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// so that we know that the event was triggered internally\r\n\t\tjsc.setData(ev, 'internal', true);\r\n\r\n\t\tel.dispatchEvent(ev);\r\n\t\treturn true;\r\n\t},\r\n\r\n\r\n\ttriggerInputEvent : function (el, eventName, bubbles, cancelable) {\r\n\t\tif (!el) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (jsc.isTextInput(el)) {\r\n\t\t\tjsc.triggerEvent(el, eventName, bubbles, cancelable);\r\n\t\t}\r\n\t},\r\n\r\n\r\n\teventKey : function (ev) {\r\n\t\tvar keys = {\r\n\t\t\t9: 'Tab',\r\n\t\t\t13: 'Enter',\r\n\t\t\t27: 'Escape',\r\n\t\t};\r\n\t\tif (typeof ev.code === 'string') {\r\n\t\t\treturn ev.code;\r\n\t\t} else if (ev.keyCode !== undefined && keys.hasOwnProperty(ev.keyCode)) {\r\n\t\t\treturn keys[ev.keyCode];\r\n\t\t}\r\n\t\treturn null;\r\n\t},\r\n\r\n\r\n\tstrList : function (str) {\r\n\t\tif (!str) {\r\n\t\t\treturn [];\r\n\t\t}\r\n\t\treturn str.replace(/^\\s+|\\s+$/g, '').split(/\\s+/);\r\n\t},\r\n\r\n\r\n\t// The className parameter (str) can only contain a single class name\r\n\thasClass : function (elm, className) {\r\n\t\tif (!className) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tif (elm.classList !== undefined) {\r\n\t\t\treturn elm.classList.contains(className);\r\n\t\t}\r\n\t\t// polyfill\r\n\t\treturn -1 != (' ' + elm.className.replace(/\\s+/g, ' ') + ' ').indexOf(' ' + className + ' ');\r\n\t},\r\n\r\n\r\n\t// The className parameter (str) can contain multiple class names separated by whitespace\r\n\taddClass : function (elm, className) {\r\n\t\tvar classNames = jsc.strList(className);\r\n\r\n\t\tif (elm.classList !== undefined) {\r\n\t\t\tfor (var i = 0; i < classNames.length; i += 1) {\r\n\t\t\t\telm.classList.add(classNames[i]);\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// polyfill\r\n\t\tfor (var i = 0; i < classNames.length; i += 1) {\r\n\t\t\tif (!jsc.hasClass(elm, classNames[i])) {\r\n\t\t\t\telm.className += (elm.className ? ' ' : '') + classNames[i];\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\r\n\t// The className parameter (str) can contain multiple class names separated by whitespace\r\n\tremoveClass : function (elm, className) {\r\n\t\tvar classNames = jsc.strList(className);\r\n\r\n\t\tif (elm.classList !== undefined) {\r\n\t\t\tfor (var i = 0; i < classNames.length; i += 1) {\r\n\t\t\t\telm.classList.remove(classNames[i]);\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t// polyfill\r\n\t\tfor (var i = 0; i < classNames.length; i += 1) {\r\n\t\t\tvar repl = new RegExp(\r\n\t\t\t\t'^\\\\s*' + classNames[i] + '\\\\s*|' +\r\n\t\t\t\t'\\\\s*' + classNames[i] + '\\\\s*$|' +\r\n\t\t\t\t'\\\\s+' + classNames[i] + '(\\\\s+)',\r\n\t\t\t\t'g'\r\n\t\t\t);\r\n\t\t\telm.className = elm.className.replace(repl, '$1');\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tgetCompStyle : function (elm) {\r\n\t\tvar compStyle = window.getComputedStyle ? window.getComputedStyle(elm) : elm.currentStyle;\r\n\r\n\t\t// Note: In Firefox, getComputedStyle returns null in a hidden iframe,\r\n\t\t// that's why we need to check if the returned value is non-empty\r\n\t\tif (!compStyle) {\r\n\t\t\treturn {};\r\n\t\t}\r\n\t\treturn compStyle;\r\n\t},\r\n\r\n\r\n\t// Note:\r\n\t// Setting a property to NULL reverts it to the state before it was first set\r\n\t// with the 'reversible' flag enabled\r\n\t//\r\n\tsetStyle : function (elm, styles, important, reversible) {\r\n\t\t// using '' for standard priority (IE10 apparently doesn't like value undefined)\r\n\t\tvar priority = important ? 'important' : '';\r\n\t\tvar origStyle = null;\r\n\r\n\t\tfor (var prop in styles) {\r\n\t\t\tif (styles.hasOwnProperty(prop)) {\r\n\t\t\t\tvar setVal = null;\r\n\r\n\t\t\t\tif (styles[prop] === null) {\r\n\t\t\t\t\t// reverting a property value\r\n\r\n\t\t\t\t\tif (!origStyle) {\r\n\t\t\t\t\t\t// get the original style object, but dont't try to create it if it doesn't exist\r\n\t\t\t\t\t\torigStyle = jsc.getData(elm, 'origStyle');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (origStyle && origStyle.hasOwnProperty(prop)) {\r\n\t\t\t\t\t\t// we have property's original value -> use it\r\n\t\t\t\t\t\tsetVal = origStyle[prop];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// setting a property value\r\n\r\n\t\t\t\t\tif (reversible) {\r\n\t\t\t\t\t\tif (!origStyle) {\r\n\t\t\t\t\t\t\t// get the original style object and if it doesn't exist, create it\r\n\t\t\t\t\t\t\torigStyle = jsc.getData(elm, 'origStyle', {});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!origStyle.hasOwnProperty(prop)) {\r\n\t\t\t\t\t\t\t// original property value not yet stored -> store it\r\n\t\t\t\t\t\t\torigStyle[prop] = elm.style[prop];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tsetVal = styles[prop];\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (setVal !== null) {\r\n\t\t\t\t\telm.style.setProperty(prop, setVal, priority);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\r\n\thexColor : function (r, g, b) {\r\n\t\treturn '#' + (\r\n\t\t\t('0' + Math.round(r).toString(16)).substr(-2) +\r\n\t\t\t('0' + Math.round(g).toString(16)).substr(-2) +\r\n\t\t\t('0' + Math.round(b).toString(16)).substr(-2)\r\n\t\t).toUpperCase();\r\n\t},\r\n\r\n\r\n\thexaColor : function (r, g, b, a) {\r\n\t\treturn '#' + (\r\n\t\t\t('0' + Math.round(r).toString(16)).substr(-2) +\r\n\t\t\t('0' + Math.round(g).toString(16)).substr(-2) +\r\n\t\t\t('0' + Math.round(b).toString(16)).substr(-2) +\r\n\t\t\t('0' + Math.round(a * 255).toString(16)).substr(-2)\r\n\t\t).toUpperCase();\r\n\t},\r\n\r\n\r\n\trgbColor : function (r, g, b) {\r\n\t\treturn 'rgb(' +\r\n\t\t\tMath.round(r) + ',' +\r\n\t\t\tMath.round(g) + ',' +\r\n\t\t\tMath.round(b) +\r\n\t\t')';\r\n\t},\r\n\r\n\r\n\trgbaColor : function (r, g, b, a) {\r\n\t\treturn 'rgba(' +\r\n\t\t\tMath.round(r) + ',' +\r\n\t\t\tMath.round(g) + ',' +\r\n\t\t\tMath.round(b) + ',' +\r\n\t\t\t(Math.round((a===undefined || a===null ? 1 : a) * 100) / 100) +\r\n\t\t')';\r\n\t},\r\n\r\n\r\n\tlinearGradient : (function () {\r\n\r\n\t\tfunction getFuncName () {\r\n\t\t\tvar stdName = 'linear-gradient';\r\n\t\t\tvar prefixes = ['', '-webkit-', '-moz-', '-o-', '-ms-'];\r\n\t\t\tvar helper = window.document.createElement('div');\r\n\r\n\t\t\tfor (var i = 0; i < prefixes.length; i += 1) {\r\n\t\t\t\tvar tryFunc = prefixes[i] + stdName;\r\n\t\t\t\tvar tryVal = tryFunc + '(to right, rgba(0,0,0,0), rgba(0,0,0,0))';\r\n\r\n\t\t\t\thelper.style.background = tryVal;\r\n\t\t\t\tif (helper.style.background) { // CSS background successfully set -> function name is supported\r\n\t\t\t\t\treturn tryFunc;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn stdName; // fallback to standard 'linear-gradient' without vendor prefix\r\n\t\t}\r\n\r\n\t\tvar funcName = getFuncName();\r\n\r\n\t\treturn function () {\r\n\t\t\treturn funcName + '(' + Array.prototype.join.call(arguments, ', ') + ')';\r\n\t\t};\r\n\r\n\t})(),\r\n\r\n\r\n\tsetBorderRadius : function (elm, value) {\r\n\t\tjsc.setStyle(elm, {'border-radius' : value || '0'});\r\n\t},\r\n\r\n\r\n\tsetBoxShadow : function (elm, value) {\r\n\t\tjsc.setStyle(elm, {'box-shadow': value || 'none'});\r\n\t},\r\n\r\n\r\n\tgetElementPos : function (e, relativeToViewport) {\r\n\t\tvar x=0, y=0;\r\n\t\tvar rect = e.getBoundingClientRect();\r\n\t\tx = rect.left;\r\n\t\ty = rect.top;\r\n\t\tif (!relativeToViewport) {\r\n\t\t\tvar viewPos = jsc.getViewPos();\r\n\t\t\tx += viewPos[0];\r\n\t\t\ty += viewPos[1];\r\n\t\t}\r\n\t\treturn [x, y];\r\n\t},\r\n\r\n\r\n\tgetElementSize : function (e) {\r\n\t\treturn [e.offsetWidth, e.offsetHeight];\r\n\t},\r\n\r\n\r\n\t// get pointer's X/Y coordinates relative to viewport\r\n\tgetAbsPointerPos : function (e) {\r\n\t\tvar x = 0, y = 0;\r\n\t\tif (typeof e.changedTouches !== 'undefined' && e.changedTouches.length) {\r\n\t\t\t// touch devices\r\n\t\t\tx = e.changedTouches[0].clientX;\r\n\t\t\ty = e.changedTouches[0].clientY;\r\n\t\t} else if (typeof e.clientX === 'number') {\r\n\t\t\tx = e.clientX;\r\n\t\t\ty = e.clientY;\r\n\t\t}\r\n\t\treturn { x: x, y: y };\r\n\t},\r\n\r\n\r\n\t// get pointer's X/Y coordinates relative to target element\r\n\tgetRelPointerPos : function (e) {\r\n\t\tvar target = e.target || e.srcElement;\r\n\t\tvar targetRect = target.getBoundingClientRect();\r\n\r\n\t\tvar x = 0, y = 0;\r\n\r\n\t\tvar clientX = 0, clientY = 0;\r\n\t\tif (typeof e.changedTouches !== 'undefined' && e.changedTouches.length) {\r\n\t\t\t// touch devices\r\n\t\t\tclientX = e.changedTouches[0].clientX;\r\n\t\t\tclientY = e.changedTouches[0].clientY;\r\n\t\t} else if (typeof e.clientX === 'number') {\r\n\t\t\tclientX = e.clientX;\r\n\t\t\tclientY = e.clientY;\r\n\t\t}\r\n\r\n\t\tx = clientX - targetRect.left;\r\n\t\ty = clientY - targetRect.top;\r\n\t\treturn { x: x, y: y };\r\n\t},\r\n\r\n\r\n\tgetViewPos : function () {\r\n\t\tvar doc = window.document.documentElement;\r\n\t\treturn [\r\n\t\t\t(window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0),\r\n\t\t\t(window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0)\r\n\t\t];\r\n\t},\r\n\r\n\r\n\tgetViewSize : function () {\r\n\t\tvar doc = window.document.documentElement;\r\n\t\treturn [\r\n\t\t\t(window.innerWidth || doc.clientWidth),\r\n\t\t\t(window.innerHeight || doc.clientHeight),\r\n\t\t];\r\n\t},\r\n\r\n\r\n\t// r: 0-255\r\n\t// g: 0-255\r\n\t// b: 0-255\r\n\t//\r\n\t// returns: [ 0-360, 0-100, 0-100 ]\r\n\t//\r\n\tRGB_HSV : function (r, g, b) {\r\n\t\tr /= 255;\r\n\t\tg /= 255;\r\n\t\tb /= 255;\r\n\t\tvar n = Math.min(Math.min(r,g),b);\r\n\t\tvar v = Math.max(Math.max(r,g),b);\r\n\t\tvar m = v - n;\r\n\t\tif (m === 0) { return [ null, 0, 100 * v ]; }\r\n\t\tvar h = r===n ? 3+(b-g)/m : (g===n ? 5+(r-b)/m : 1+(g-r)/m);\r\n\t\treturn [\r\n\t\t\t60 * (h===6?0:h),\r\n\t\t\t100 * (m/v),\r\n\t\t\t100 * v\r\n\t\t];\r\n\t},\r\n\r\n\r\n\t// h: 0-360\r\n\t// s: 0-100\r\n\t// v: 0-100\r\n\t//\r\n\t// returns: [ 0-255, 0-255, 0-255 ]\r\n\t//\r\n\tHSV_RGB : function (h, s, v) {\r\n\t\tvar u = 255 * (v / 100);\r\n\r\n\t\tif (h === null) {\r\n\t\t\treturn [ u, u, u ];\r\n\t\t}\r\n\r\n\t\th /= 60;\r\n\t\ts /= 100;\r\n\r\n\t\tvar i = Math.floor(h);\r\n\t\tvar f = i%2 ? h-i : 1-(h-i);\r\n\t\tvar m = u * (1 - s);\r\n\t\tvar n = u * (1 - s * f);\r\n\t\tswitch (i) {\r\n\t\t\tcase 6:\r\n\t\t\tcase 0: return [u,n,m];\r\n\t\t\tcase 1: return [n,u,m];\r\n\t\t\tcase 2: return [m,u,n];\r\n\t\t\tcase 3: return [m,n,u];\r\n\t\t\tcase 4: return [n,m,u];\r\n\t\t\tcase 5: return [u,m,n];\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tparseColorString : function (str) {\r\n\t\tvar ret = {\r\n\t\t\trgba: null,\r\n\t\t\tformat: null // 'hex' | 'hexa' | 'rgb' | 'rgba'\r\n\t\t};\r\n\r\n\t\tvar m;\r\n\r\n\t\tif (m = str.match(/^\\W*([0-9A-F]{3,8})\\W*$/i)) {\r\n\t\t\t// HEX notation\r\n\r\n\t\t\tif (m[1].length === 8) {\r\n\t\t\t\t// 8-char notation (= with alpha)\r\n\t\t\t\tret.format = 'hexa';\r\n\t\t\t\tret.rgba = [\r\n\t\t\t\t\tparseInt(m[1].substr(0,2),16),\r\n\t\t\t\t\tparseInt(m[1].substr(2,2),16),\r\n\t\t\t\t\tparseInt(m[1].substr(4,2),16),\r\n\t\t\t\t\tparseInt(m[1].substr(6,2),16) / 255\r\n\t\t\t\t];\r\n\r\n\t\t\t} else if (m[1].length === 6) {\r\n\t\t\t\t// 6-char notation\r\n\t\t\t\tret.format = 'hex';\r\n\t\t\t\tret.rgba = [\r\n\t\t\t\t\tparseInt(m[1].substr(0,2),16),\r\n\t\t\t\t\tparseInt(m[1].substr(2,2),16),\r\n\t\t\t\t\tparseInt(m[1].substr(4,2),16),\r\n\t\t\t\t\tnull\r\n\t\t\t\t];\r\n\r\n\t\t\t} else if (m[1].length === 3) {\r\n\t\t\t\t// 3-char notation\r\n\t\t\t\tret.format = 'hex';\r\n\t\t\t\tret.rgba = [\r\n\t\t\t\t\tparseInt(m[1].charAt(0) + m[1].charAt(0),16),\r\n\t\t\t\t\tparseInt(m[1].charAt(1) + m[1].charAt(1),16),\r\n\t\t\t\t\tparseInt(m[1].charAt(2) + m[1].charAt(2),16),\r\n\t\t\t\t\tnull\r\n\t\t\t\t];\r\n\r\n\t\t\t} else {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\treturn ret;\r\n\t\t}\r\n\r\n\t\tif (m = str.match(/^\\W*rgba?\\(([^)]*)\\)\\W*$/i)) {\r\n\t\t\t// rgb(...) or rgba(...) notation\r\n\r\n\t\t\tvar par = m[1].split(',');\r\n\t\t\tvar re = /^\\s*(\\d+|\\d*\\.\\d+|\\d+\\.\\d*)\\s*$/;\r\n\t\t\tvar mR, mG, mB, mA;\r\n\t\t\tif (\r\n\t\t\t\tpar.length >= 3 &&\r\n\t\t\t\t(mR = par[0].match(re)) &&\r\n\t\t\t\t(mG = par[1].match(re)) &&\r\n\t\t\t\t(mB = par[2].match(re))\r\n\t\t\t) {\r\n\t\t\t\tret.format = 'rgb';\r\n\t\t\t\tret.rgba = [\r\n\t\t\t\t\tparseFloat(mR[1]) || 0,\r\n\t\t\t\t\tparseFloat(mG[1]) || 0,\r\n\t\t\t\t\tparseFloat(mB[1]) || 0,\r\n\t\t\t\t\tnull\r\n\t\t\t\t];\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\tpar.length >= 4 &&\r\n\t\t\t\t\t(mA = par[3].match(re))\r\n\t\t\t\t) {\r\n\t\t\t\t\tret.format = 'rgba';\r\n\t\t\t\t\tret.rgba[3] = parseFloat(mA[1]) || 0;\r\n\t\t\t\t}\r\n\t\t\t\treturn ret;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t},\r\n\r\n\r\n\tparsePaletteValue : function (mixed) {\r\n\t\tvar vals = [];\r\n\r\n\t\tif (typeof mixed === 'string') { // input is a string of space separated color values\r\n\t\t\t// rgb() and rgba() may contain spaces too, so let's find all color values by regex\r\n\t\t\tmixed.replace(/#[0-9A-F]{3}([0-9A-F]{3})?|rgba?\\(([^)]*)\\)/ig, function (val) {\r\n\t\t\t\tvals.push(val);\r\n\t\t\t});\r\n\t\t} else if (Array.isArray(mixed)) { // input is an array of color values\r\n\t\t\tvals = mixed;\r\n\t\t}\r\n\r\n\t\t// convert all values into uniform color format\r\n\r\n\t\tvar colors = [];\r\n\r\n\t\tfor (var i = 0; i < vals.length; i++) {\r\n\t\t\tvar color = jsc.parseColorString(vals[i]);\r\n\t\t\tif (color) {\r\n\t\t\t\tcolors.push(color);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn colors;\r\n\t},\r\n\r\n\r\n\tcontainsTranparentColor : function (colors) {\r\n\t\tfor (var i = 0; i < colors.length; i++) {\r\n\t\t\tvar a = colors[i].rgba[3];\r\n\t\t\tif (a !== null && a < 1.0) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\r\n\tisAlphaFormat : function (format) {\r\n\t\tswitch (format.toLowerCase()) {\r\n\t\tcase 'hexa':\r\n\t\tcase 'rgba':\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\r\n\t// Canvas scaling for retina displays\r\n\t//\r\n\t// adapted from https://www.html5rocks.com/en/tutorials/canvas/hidpi/\r\n\t//\r\n\tscaleCanvasForHighDPR : function (canvas) {\r\n\t\tvar dpr = window.devicePixelRatio || 1;\r\n\t\tcanvas.width *= dpr;\r\n\t\tcanvas.height *= dpr;\r\n\t\tvar ctx = canvas.getContext('2d');\r\n\t\tctx.scale(dpr, dpr);\r\n\t},\r\n\r\n\r\n\tgenColorPreviewCanvas : function (color, separatorPos, specWidth, scaleForHighDPR) {\r\n\r\n\t\tvar sepW = Math.round(jsc.pub.previewSeparator.length);\r\n\t\tvar sqSize = jsc.pub.chessboardSize;\r\n\t\tvar sqColor1 = jsc.pub.chessboardColor1;\r\n\t\tvar sqColor2 = jsc.pub.chessboardColor2;\r\n\r\n\t\tvar cWidth = specWidth ? specWidth : sqSize * 2;\r\n\t\tvar cHeight = sqSize * 2;\r\n\r\n\t\tvar canvas = jsc.createEl('canvas');\r\n\t\tvar ctx = canvas.getContext('2d');\r\n\r\n\t\tcanvas.width = cWidth;\r\n\t\tcanvas.height = cHeight;\r\n\t\tif (scaleForHighDPR) {\r\n\t\t\tjsc.scaleCanvasForHighDPR(canvas);\r\n\t\t}\r\n\r\n\t\t// transparency chessboard - background\r\n\t\tctx.fillStyle = sqColor1;\r\n\t\tctx.fillRect(0, 0, cWidth, cHeight);\r\n\r\n\t\t// transparency chessboard - squares\r\n\t\tctx.fillStyle = sqColor2;\r\n\t\tfor (var x = 0; x < cWidth; x += sqSize * 2) {\r\n\t\t\tctx.fillRect(x, 0, sqSize, sqSize);\r\n\t\t\tctx.fillRect(x + sqSize, sqSize, sqSize, sqSize);\r\n\t\t}\r\n\r\n\t\tif (color) {\r\n\t\t\t// actual color in foreground\r\n\t\t\tctx.fillStyle = color;\r\n\t\t\tctx.fillRect(0, 0, cWidth, cHeight);\r\n\t\t}\r\n\r\n\t\tvar start = null;\r\n\t\tswitch (separatorPos) {\r\n\t\t\tcase 'left':\r\n\t\t\t\tstart = 0;\r\n\t\t\t\tctx.clearRect(0, 0, sepW/2, cHeight);\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'right':\r\n\t\t\t\tstart = cWidth - sepW;\r\n\t\t\t\tctx.clearRect(cWidth - (sepW/2), 0, sepW/2, cHeight);\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\tif (start !== null) {\r\n\t\t\tctx.lineWidth = 1;\r\n\t\t\tfor (var i = 0; i < jsc.pub.previewSeparator.length; i += 1) {\r\n\t\t\t\tctx.beginPath();\r\n\t\t\t\tctx.strokeStyle = jsc.pub.previewSeparator[i];\r\n\t\t\t\tctx.moveTo(0.5 + start + i, 0);\r\n\t\t\t\tctx.lineTo(0.5 + start + i, cHeight);\r\n\t\t\t\tctx.stroke();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tcanvas: canvas,\r\n\t\t\twidth: cWidth,\r\n\t\t\theight: cHeight,\r\n\t\t};\r\n\t},\r\n\r\n\r\n\t// if position or width is not set => fill the entire element (0%-100%)\r\n\tgenColorPreviewGradient : function (color, position, width) {\r\n\t\tvar params = [];\r\n\r\n\t\tif (position && width) {\r\n\t\t\tparams = [\r\n\t\t\t\t'to ' + {'left':'right', 'right':'left'}[position],\r\n\t\t\t\tcolor + ' 0%',\r\n\t\t\t\tcolor + ' ' + width + 'px',\r\n\t\t\t\t'rgba(0,0,0,0) ' + (width + 1) + 'px',\r\n\t\t\t\t'rgba(0,0,0,0) 100%',\r\n\t\t\t];\r\n\t\t} else {\r\n\t\t\tparams = [\r\n\t\t\t\t'to right',\r\n\t\t\t\tcolor + ' 0%',\r\n\t\t\t\tcolor + ' 100%',\r\n\t\t\t];\r\n\t\t}\r\n\r\n\t\treturn jsc.linearGradient.apply(this, params);\r\n\t},\r\n\r\n\r\n\tredrawPosition : function () {\r\n\r\n\t\tif (!jsc.picker || !jsc.picker.owner) {\r\n\t\t\treturn; // picker is not shown\r\n\t\t}\r\n\r\n\t\tvar thisObj = jsc.picker.owner;\r\n\r\n\t\tvar tp, vp;\r\n\r\n\t\tif (thisObj.fixed) {\r\n\t\t\t// Fixed elements are positioned relative to viewport,\r\n\t\t\t// therefore we can ignore the scroll offset\r\n\t\t\ttp = jsc.getElementPos(thisObj.targetElement, true); // target pos\r\n\t\t\tvp = [0, 0]; // view pos\r\n\t\t} else {\r\n\t\t\ttp = jsc.getElementPos(thisObj.targetElement); // target pos\r\n\t\t\tvp = jsc.getViewPos(); // view pos\r\n\t\t}\r\n\r\n\t\tvar ts = jsc.getElementSize(thisObj.targetElement); // target size\r\n\t\tvar vs = jsc.getViewSize(); // view size\r\n\t\tvar pd = jsc.getPickerDims(thisObj);\r\n\t\tvar ps = [pd.borderW, pd.borderH]; // picker outer size\r\n\t\tvar a, b, c;\r\n\t\tswitch (thisObj.position.toLowerCase()) {\r\n\t\t\tcase 'left': a=1; b=0; c=-1; break;\r\n\t\t\tcase 'right':a=1; b=0; c=1; break;\r\n\t\t\tcase 'top': a=0; b=1; c=-1; break;\r\n\t\t\tdefault: a=0; b=1; c=1; break;\r\n\t\t}\r\n\t\tvar l = (ts[b]+ps[b])/2;\r\n\r\n\t\t// compute picker position\r\n\t\tif (!thisObj.smartPosition) {\r\n\t\t\tvar pp = [\r\n\t\t\t\ttp[a],\r\n\t\t\t\ttp[b]+ts[b]-l+l*c\r\n\t\t\t];\r\n\t\t} else {\r\n\t\t\tvar pp = [\r\n\t\t\t\t-vp[a]+tp[a]+ps[a] > vs[a] ?\r\n\t\t\t\t\t(-vp[a]+tp[a]+ts[a]/2 > vs[a]/2 && tp[a]+ts[a]-ps[a] >= 0 ? tp[a]+ts[a]-ps[a] : tp[a]) :\r\n\t\t\t\t\ttp[a],\r\n\t\t\t\t-vp[b]+tp[b]+ts[b]+ps[b]-l+l*c > vs[b] ?\r\n\t\t\t\t\t(-vp[b]+tp[b]+ts[b]/2 > vs[b]/2 && tp[b]+ts[b]-l-l*c >= 0 ? tp[b]+ts[b]-l-l*c : tp[b]+ts[b]-l+l*c) :\r\n\t\t\t\t\t(tp[b]+ts[b]-l+l*c >= 0 ? tp[b]+ts[b]-l+l*c : tp[b]+ts[b]-l-l*c)\r\n\t\t\t];\r\n\t\t}\r\n\r\n\t\tvar x = pp[a];\r\n\t\tvar y = pp[b];\r\n\t\tvar positionValue = thisObj.fixed ? 'fixed' : 'absolute';\r\n\t\tvar contractShadow =\r\n\t\t\t(pp[0] + ps[0] > tp[0] || pp[0] < tp[0] + ts[0]) &&\r\n\t\t\t(pp[1] + ps[1] < tp[1] + ts[1]);\r\n\r\n\t\tjsc._drawPosition(thisObj, x, y, positionValue, contractShadow);\r\n\t},\r\n\r\n\r\n\t_drawPosition : function (thisObj, x, y, positionValue, contractShadow) {\r\n\t\tvar vShadow = contractShadow ? 0 : thisObj.shadowBlur; // px\r\n\r\n\t\tjsc.picker.wrap.style.position = positionValue;\r\n\t\tjsc.picker.wrap.style.left = x + 'px';\r\n\t\tjsc.picker.wrap.style.top = y + 'px';\r\n\r\n\t\tjsc.setBoxShadow(\r\n\t\t\tjsc.picker.boxS,\r\n\t\t\tthisObj.shadow ?\r\n\t\t\t\tnew jsc.BoxShadow(0, vShadow, thisObj.shadowBlur, 0, thisObj.shadowColor) :\r\n\t\t\t\tnull);\r\n\t},\r\n\r\n\r\n\tgetPickerDims : function (thisObj) {\r\n\t\tvar w = 2 * thisObj.controlBorderWidth + thisObj.width;\r\n\t\tvar h = 2 * thisObj.controlBorderWidth + thisObj.height;\r\n\r\n\t\tvar sliderSpace = 2 * thisObj.controlBorderWidth + 2 * jsc.getControlPadding(thisObj) + thisObj.sliderSize;\r\n\r\n\t\tif (jsc.getSliderChannel(thisObj)) {\r\n\t\t\tw += sliderSpace;\r\n\t\t}\r\n\t\tif (thisObj.hasAlphaChannel()) {\r\n\t\t\tw += sliderSpace;\r\n\t\t}\r\n\r\n\t\tvar pal = jsc.getPaletteDims(thisObj, w);\r\n\r\n\t\tif (pal.height) {\r\n\t\t\th += pal.height + thisObj.padding;\r\n\t\t}\r\n\t\tif (thisObj.closeButton) {\r\n\t\t\th += 2 * thisObj.controlBorderWidth + thisObj.padding + thisObj.buttonHeight;\r\n\t\t}\r\n\r\n\t\tvar pW = w + (2 * thisObj.padding);\r\n\t\tvar pH = h + (2 * thisObj.padding);\r\n\r\n\t\treturn {\r\n\t\t\tcontentW: w,\r\n\t\t\tcontentH: h,\r\n\t\t\tpaddedW: pW,\r\n\t\t\tpaddedH: pH,\r\n\t\t\tborderW: pW + (2 * thisObj.borderWidth),\r\n\t\t\tborderH: pH + (2 * thisObj.borderWidth),\r\n\t\t\tpalette: pal,\r\n\t\t};\r\n\t},\r\n\r\n\r\n\tgetPaletteDims : function (thisObj, width) {\r\n\t\tvar cols = 0, rows = 0, cellW = 0, cellH = 0, height = 0;\r\n\t\tvar sampleCount = thisObj._palette ? thisObj._palette.length : 0;\r\n\r\n\t\tif (sampleCount) {\r\n\t\t\tcols = thisObj.paletteCols;\r\n\t\t\trows = cols > 0 ? Math.ceil(sampleCount / cols) : 0;\r\n\r\n\t\t\t// color sample's dimensions (includes border)\r\n\t\t\tcellW = Math.max(1, Math.floor((width - ((cols - 1) * thisObj.paletteSpacing)) / cols));\r\n\t\t\tcellH = thisObj.paletteHeight ? Math.min(thisObj.paletteHeight, cellW) : cellW;\r\n\t\t}\r\n\r\n\t\tif (rows) {\r\n\t\t\theight =\r\n\t\t\t\trows * cellH +\r\n\t\t\t\t(rows - 1) * thisObj.paletteSpacing;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tcols: cols,\r\n\t\t\trows: rows,\r\n\t\t\tcellW: cellW,\r\n\t\t\tcellH: cellH,\r\n\t\t\twidth: width,\r\n\t\t\theight: height,\r\n\t\t};\r\n\t},\r\n\r\n\r\n\tgetControlPadding : function (thisObj) {\r\n\t\treturn Math.max(\r\n\t\t\tthisObj.padding / 2,\r\n\t\t\t(2 * thisObj.pointerBorderWidth + thisObj.pointerThickness) - thisObj.controlBorderWidth\r\n\t\t);\r\n\t},\r\n\r\n\r\n\tgetPadYChannel : function (thisObj) {\r\n\t\tswitch (thisObj.mode.charAt(1).toLowerCase()) {\r\n\t\t\tcase 'v': return 'v'; break;\r\n\t\t}\r\n\t\treturn 's';\r\n\t},\r\n\r\n\r\n\tgetSliderChannel : function (thisObj) {\r\n\t\tif (thisObj.mode.length > 2) {\r\n\t\t\tswitch (thisObj.mode.charAt(2).toLowerCase()) {\r\n\t\t\t\tcase 's': return 's'; break;\r\n\t\t\t\tcase 'v': return 'v'; break;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn null;\r\n\t},\r\n\r\n\r\n\t// calls function specified in picker's property\r\n\ttriggerCallback : function (thisObj, prop) {\r\n\t\tif (!thisObj[prop]) {\r\n\t\t\treturn; // callback func not specified\r\n\t\t}\r\n\t\tvar callback = null;\r\n\r\n\t\tif (typeof thisObj[prop] === 'string') {\r\n\t\t\t// string with code\r\n\t\t\ttry {\r\n\t\t\t\tcallback = new Function (thisObj[prop]);\r\n\t\t\t} catch (e) {\r\n\t\t\t\tconsole.error(e);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// function\r\n\t\t\tcallback = thisObj[prop];\r\n\t\t}\r\n\r\n\t\tif (callback) {\r\n\t\t\tcallback.call(thisObj);\r\n\t\t}\r\n\t},\r\n\r\n\r\n\t// Triggers a color change related event(s) on all picker instances.\r\n\t// It is possible to specify multiple events separated with a space.\r\n\ttriggerGlobal : function (eventNames) {\r\n\t\tvar inst = jsc.getInstances();\r\n\t\tfor (var i = 0; i < inst.length; i += 1) {\r\n\t\t\tinst[i].trigger(eventNames);\r\n\t\t}\r\n\t},\r\n\r\n\r\n\t_pointerMoveEvent : {\r\n\t\tmouse: 'mousemove',\r\n\t\ttouch: 'touchmove'\r\n\t},\r\n\t_pointerEndEvent : {\r\n\t\tmouse: 'mouseup',\r\n\t\ttouch: 'touchend'\r\n\t},\r\n\r\n\r\n\t_pointerOrigin : null,\r\n\t_capturedTarget : null,\r\n\r\n\r\n\tonDocumentKeyUp : function (e) {\r\n\t\tif (['Tab', 'Escape'].indexOf(jsc.eventKey(e)) !== -1) {\r\n\t\t\tif (jsc.picker && jsc.picker.owner) {\r\n\t\t\t\tjsc.picker.owner.tryHide();\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tonWindowResize : function (e) {\r\n\t\tjsc.redrawPosition();\r\n\t},\r\n\r\n\r\n\tonWindowScroll : function (e) {\r\n\t\tjsc.redrawPosition();\r\n\t},\r\n\r\n\r\n\tonParentScroll : function (e) {\r\n\t\t// hide the picker when one of the parent elements is scrolled\r\n\t\tif (jsc.picker && jsc.picker.owner) {\r\n\t\t\tjsc.picker.owner.tryHide();\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tonDocumentMouseDown : function (e) {\r\n\t\tvar target = e.target || e.srcElement;\r\n\r\n\t\tif (target.jscolor && target.jscolor instanceof jsc.pub) { // clicked targetElement -> show picker\r\n\t\t\tif (target.jscolor.showOnClick && !target.disabled) {\r\n\t\t\t\ttarget.jscolor.show();\r\n\t\t\t}\r\n\t\t} else if (jsc.getData(target, 'gui')) { // clicked jscolor's GUI element\r\n\t\t\tvar control = jsc.getData(target, 'control');\r\n\t\t\tif (control) {\r\n\t\t\t\t// jscolor's control\r\n\t\t\t\tjsc.onControlPointerStart(e, target, jsc.getData(target, 'control'), 'mouse');\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// mouse is outside the picker's controls -> hide the color picker!\r\n\t\t\tif (jsc.picker && jsc.picker.owner) {\r\n\t\t\t\tjsc.picker.owner.tryHide();\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tonPickerTouchStart : function (e) {\r\n\t\tvar target = e.target || e.srcElement;\r\n\r\n\t\tif (jsc.getData(target, 'control')) {\r\n\t\t\tjsc.onControlPointerStart(e, target, jsc.getData(target, 'control'), 'touch');\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tonControlPointerStart : function (e, target, controlName, pointerType) {\r\n\t\tvar thisObj = jsc.getData(target, 'instance');\r\n\r\n\t\tjsc.preventDefault(e);\r\n\t\tjsc.captureTarget(target);\r\n\r\n\t\tvar registerDragEvents = function (doc, offset) {\r\n\t\t\tjsc.attachGroupEvent('drag', doc, jsc._pointerMoveEvent[pointerType],\r\n\t\t\t\tjsc.onDocumentPointerMove(e, target, controlName, pointerType, offset));\r\n\t\t\tjsc.attachGroupEvent('drag', doc, jsc._pointerEndEvent[pointerType],\r\n\t\t\t\tjsc.onDocumentPointerEnd(e, target, controlName, pointerType));\r\n\t\t};\r\n\r\n\t\tregisterDragEvents(window.document, [0, 0]);\r\n\r\n\t\tif (window.parent && window.frameElement) {\r\n\t\t\tvar rect = window.frameElement.getBoundingClientRect();\r\n\t\t\tvar ofs = [-rect.left, -rect.top];\r\n\t\t\tregisterDragEvents(window.parent.window.document, ofs);\r\n\t\t}\r\n\r\n\t\tvar abs = jsc.getAbsPointerPos(e);\r\n\t\tvar rel = jsc.getRelPointerPos(e);\r\n\t\tjsc._pointerOrigin = {\r\n\t\t\tx: abs.x - rel.x,\r\n\t\t\ty: abs.y - rel.y\r\n\t\t};\r\n\r\n\t\tswitch (controlName) {\r\n\t\tcase 'pad':\r\n\t\t\t// if the value slider is at the bottom, move it up\r\n\t\t\tif (jsc.getSliderChannel(thisObj) === 'v' && thisObj.channels.v === 0) {\r\n\t\t\t\tthisObj.fromHSVA(null, null, 100, null);\r\n\t\t\t}\r\n\t\t\tjsc.setPad(thisObj, e, 0, 0);\r\n\t\t\tbreak;\r\n\r\n\t\tcase 'sld':\r\n\t\t\tjsc.setSld(thisObj, e, 0);\r\n\t\t\tbreak;\r\n\r\n\t\tcase 'asld':\r\n\t\t\tjsc.setASld(thisObj, e, 0);\r\n\t\t\tbreak;\r\n\t\t}\r\n\t\tthisObj.trigger('input');\r\n\t},\r\n\r\n\r\n\tonDocumentPointerMove : function (e, target, controlName, pointerType, offset) {\r\n\t\treturn function (e) {\r\n\t\t\tvar thisObj = jsc.getData(target, 'instance');\r\n\t\t\tswitch (controlName) {\r\n\t\t\tcase 'pad':\r\n\t\t\t\tjsc.setPad(thisObj, e, offset[0], offset[1]);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'sld':\r\n\t\t\t\tjsc.setSld(thisObj, e, offset[1]);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'asld':\r\n\t\t\t\tjsc.setASld(thisObj, e, offset[1]);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tthisObj.trigger('input');\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tonDocumentPointerEnd : function (e, target, controlName, pointerType) {\r\n\t\treturn function (e) {\r\n\t\t\tvar thisObj = jsc.getData(target, 'instance');\r\n\t\t\tjsc.detachGroupEvents('drag');\r\n\t\t\tjsc.releaseTarget();\r\n\r\n\t\t\t// Always trigger changes AFTER detaching outstanding mouse handlers,\r\n\t\t\t// in case some color change that occured in user-defined onChange/onInput handler\r\n\t\t\t// intruded into current mouse events\r\n\t\t\tthisObj.trigger('input');\r\n\t\t\tthisObj.trigger('change');\r\n\t\t};\r\n\t},\r\n\r\n\r\n\tonPaletteSampleClick : function (e) {\r\n\t\tvar target = e.currentTarget;\r\n\t\tvar thisObj = jsc.getData(target, 'instance');\r\n\t\tvar color = jsc.getData(target, 'color');\r\n\r\n\t\t// when format is flexible, use the original format of this color sample\r\n\t\tif (thisObj.format.toLowerCase() === 'any') {\r\n\t\t\tthisObj._setFormat(color.format); // adapt format\r\n\t\t\tif (!jsc.isAlphaFormat(thisObj.getFormat())) {\r\n\t\t\t\tcolor.rgba[3] = 1.0; // when switching to a format that doesn't support alpha, set full opacity\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// if this color doesn't specify alpha, use alpha of 1.0 (if applicable)\r\n\t\tif (color.rgba[3] === null) {\r\n\t\t\tif (thisObj.paletteSetsAlpha === true || (thisObj.paletteSetsAlpha === 'auto' && thisObj._paletteHasTransparency)) {\r\n\t\t\t\tcolor.rgba[3] = 1.0;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthisObj.fromRGBA.apply(thisObj, color.rgba);\r\n\r\n\t\tthisObj.trigger('input');\r\n\t\tthisObj.trigger('change');\r\n\r\n\t\tif (thisObj.hideOnPaletteClick) {\r\n\t\t\tthisObj.hide();\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tsetPad : function (thisObj, e, ofsX, ofsY) {\r\n\t\tvar pointerAbs = jsc.getAbsPointerPos(e);\r\n\t\tvar x = ofsX + pointerAbs.x - jsc._pointerOrigin.x - thisObj.padding - thisObj.controlBorderWidth;\r\n\t\tvar y = ofsY + pointerAbs.y - jsc._pointerOrigin.y - thisObj.padding - thisObj.controlBorderWidth;\r\n\r\n\t\tvar xVal = x * (360 / (thisObj.width - 1));\r\n\t\tvar yVal = 100 - (y * (100 / (thisObj.height - 1)));\r\n\r\n\t\tswitch (jsc.getPadYChannel(thisObj)) {\r\n\t\tcase 's': thisObj.fromHSVA(xVal, yVal, null, null); break;\r\n\t\tcase 'v': thisObj.fromHSVA(xVal, null, yVal, null); break;\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tsetSld : function (thisObj, e, ofsY) {\r\n\t\tvar pointerAbs = jsc.getAbsPointerPos(e);\r\n\t\tvar y = ofsY + pointerAbs.y - jsc._pointerOrigin.y - thisObj.padding - thisObj.controlBorderWidth;\r\n\t\tvar yVal = 100 - (y * (100 / (thisObj.height - 1)));\r\n\r\n\t\tswitch (jsc.getSliderChannel(thisObj)) {\r\n\t\tcase 's': thisObj.fromHSVA(null, yVal, null, null); break;\r\n\t\tcase 'v': thisObj.fromHSVA(null, null, yVal, null); break;\r\n\t\t}\r\n\t},\r\n\r\n\r\n\tsetASld : function (thisObj, e, ofsY) {\r\n\t\tvar pointerAbs = jsc.getAbsPointerPos(e);\r\n\t\tvar y = ofsY + pointerAbs.y - jsc._pointerOrigin.y - thisObj.padding - thisObj.controlBorderWidth;\r\n\t\tvar yVal = 1.0 - (y * (1.0 / (thisObj.height - 1)));\r\n\r\n\t\tif (yVal < 1.0) {\r\n\t\t\t// if format is flexible and the current format doesn't support alpha, switch to a suitable one\r\n\t\t\tvar fmt = thisObj.getFormat();\r\n\t\t\tif (thisObj.format.toLowerCase() === 'any' && !jsc.isAlphaFormat(fmt)) {\r\n\t\t\t\tthisObj._setFormat(fmt === 'hex' ? 'hexa' : 'rgba');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthisObj.fromHSVA(null, null, null, yVal);\r\n\t},\r\n\r\n\r\n\tcreatePadCanvas : function () {\r\n\r\n\t\tvar ret = {\r\n\t\t\telm: null,\r\n\t\t\tdraw: null\r\n\t\t};\r\n\r\n\t\tvar canvas = jsc.createEl('canvas');\r\n\t\tvar ctx = canvas.getContext('2d');\r\n\r\n\t\tvar drawFunc = function (width, height, type) {\r\n\t\t\tcanvas.width = width;\r\n\t\t\tcanvas.height = height;\r\n\r\n\t\t\tctx.clearRect(0, 0, canvas.width, canvas.height);\r\n\r\n\t\t\tvar hGrad = ctx.createLinearGradient(0, 0, canvas.width, 0);\r\n\t\t\thGrad.addColorStop(0 / 6, '#F00');\r\n\t\t\thGrad.addColorStop(1 / 6, '#FF0');\r\n\t\t\thGrad.addColorStop(2 / 6, '#0F0');\r\n\t\t\thGrad.addColorStop(3 / 6, '#0FF');\r\n\t\t\thGrad.addColorStop(4 / 6, '#00F');\r\n\t\t\thGrad.addColorStop(5 / 6, '#F0F');\r\n\t\t\thGrad.addColorStop(6 / 6, '#F00');\r\n\r\n\t\t\tctx.fillStyle = hGrad;\r\n\t\t\tctx.fillRect(0, 0, canvas.width, canvas.height);\r\n\r\n\t\t\tvar vGrad = ctx.createLinearGradient(0, 0, 0, canvas.height);\r\n\t\t\tswitch (type.toLowerCase()) {\r\n\t\t\tcase 's':\r\n\t\t\t\tvGrad.addColorStop(0, 'rgba(255,255,255,0)');\r\n\t\t\t\tvGrad.addColorStop(1, 'rgba(255,255,255,1)');\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'v':\r\n\t\t\t\tvGrad.addColorStop(0, 'rgba(0,0,0,0)');\r\n\t\t\t\tvGrad.addColorStop(1, 'rgba(0,0,0,1)');\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tctx.fillStyle = vGrad;\r\n\t\t\tctx.fillRect(0, 0, canvas.width, canvas.height);\r\n\t\t};\r\n\r\n\t\tret.elm = canvas;\r\n\t\tret.draw = drawFunc;\r\n\r\n\t\treturn ret;\r\n\t},\r\n\r\n\r\n\tcreateSliderGradient : function () {\r\n\r\n\t\tvar ret = {\r\n\t\t\telm: null,\r\n\t\t\tdraw: null\r\n\t\t};\r\n\r\n\t\tvar canvas = jsc.createEl('canvas');\r\n\t\tvar ctx = canvas.getContext('2d');\r\n\r\n\t\tvar drawFunc = function (width, height, color1, color2) {\r\n\t\t\tcanvas.width = width;\r\n\t\t\tcanvas.height = height;\r\n\r\n\t\t\tctx.clearRect(0, 0, canvas.width, canvas.height);\r\n\r\n\t\t\tvar grad = ctx.createLinearGradient(0, 0, 0, canvas.height);\r\n\t\t\tgrad.addColorStop(0, color1);\r\n\t\t\tgrad.addColorStop(1, color2);\r\n\r\n\t\t\tctx.fillStyle = grad;\r\n\t\t\tctx.fillRect(0, 0, canvas.width, canvas.height);\r\n\t\t};\r\n\r\n\t\tret.elm = canvas;\r\n\t\tret.draw = drawFunc;\r\n\r\n\t\treturn ret;\r\n\t},\r\n\r\n\r\n\tcreateASliderGradient : function () {\r\n\r\n\t\tvar ret = {\r\n\t\t\telm: null,\r\n\t\t\tdraw: null\r\n\t\t};\r\n\r\n\t\tvar canvas = jsc.createEl('canvas');\r\n\t\tvar ctx = canvas.getContext('2d');\r\n\r\n\t\tvar drawFunc = function (width, height, color) {\r\n\t\t\tcanvas.width = width;\r\n\t\t\tcanvas.height = height;\r\n\r\n\t\t\tctx.clearRect(0, 0, canvas.width, canvas.height);\r\n\r\n\t\t\tvar sqSize = canvas.width / 2;\r\n\t\t\tvar sqColor1 = jsc.pub.chessboardColor1;\r\n\t\t\tvar sqColor2 = jsc.pub.chessboardColor2;\r\n\r\n\t\t\t// dark gray background\r\n\t\t\tctx.fillStyle = sqColor1;\r\n\t\t\tctx.fillRect(0, 0, canvas.width, canvas.height);\r\n\r\n\t\t\tif (sqSize > 0) { // to avoid infinite loop\r\n\t\t\t\tfor (var y = 0; y < canvas.height; y += sqSize * 2) {\r\n\t\t\t\t\t// light gray squares\r\n\t\t\t\t\tctx.fillStyle = sqColor2;\r\n\t\t\t\t\tctx.fillRect(0, y, sqSize, sqSize);\r\n\t\t\t\t\tctx.fillRect(sqSize, y + sqSize, sqSize, sqSize);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar grad = ctx.createLinearGradient(0, 0, 0, canvas.height);\r\n\t\t\tgrad.addColorStop(0, color);\r\n\t\t\tgrad.addColorStop(1, 'rgba(0,0,0,0)');\r\n\r\n\t\t\tctx.fillStyle = grad;\r\n\t\t\tctx.fillRect(0, 0, canvas.width, canvas.height);\r\n\t\t};\r\n\r\n\t\tret.elm = canvas;\r\n\t\tret.draw = drawFunc;\r\n\r\n\t\treturn ret;\r\n\t},\r\n\r\n\r\n\tBoxShadow : (function () {\r\n\t\tvar BoxShadow = function (hShadow, vShadow, blur, spread, color, inset) {\r\n\t\t\tthis.hShadow = hShadow;\r\n\t\t\tthis.vShadow = vShadow;\r\n\t\t\tthis.blur = blur;\r\n\t\t\tthis.spread = spread;\r\n\t\t\tthis.color = color;\r\n\t\t\tthis.inset = !!inset;\r\n\t\t};\r\n\r\n\t\tBoxShadow.prototype.toString = function () {\r\n\t\t\tvar vals = [\r\n\t\t\t\tMath.round(this.hShadow) + 'px',\r\n\t\t\t\tMath.round(this.vShadow) + 'px',\r\n\t\t\t\tMath.round(this.blur) + 'px',\r\n\t\t\t\tMath.round(this.spread) + 'px',\r\n\t\t\t\tthis.color\r\n\t\t\t];\r\n\t\t\tif (this.inset) {\r\n\t\t\t\tvals.push('inset');\r\n\t\t\t}\r\n\t\t\treturn vals.join(' ');\r\n\t\t};\r\n\r\n\t\treturn BoxShadow;\r\n\t})(),\r\n\r\n\r\n\tflags : {\r\n\t\tleaveValue : 1 << 0,\r\n\t\tleaveAlpha : 1 << 1,\r\n\t\tleavePreview : 1 << 2,\r\n\t},\r\n\r\n\r\n\tenumOpts : {\r\n\t\tformat: ['auto', 'any', 'hex', 'hexa', 'rgb', 'rgba'],\r\n\t\tpreviewPosition: ['left', 'right'],\r\n\t\tmode: ['hsv', 'hvs', 'hs', 'hv'],\r\n\t\tposition: ['left', 'right', 'top', 'bottom'],\r\n\t\talphaChannel: ['auto', true, false],\r\n\t\tpaletteSetsAlpha: ['auto', true, false],\r\n\t},\r\n\r\n\r\n\tdeprecatedOpts : {\r\n\t\t// : ( can be null)\r\n\t\t'styleElement': 'previewElement',\r\n\t\t'onFineChange': 'onInput',\r\n\t\t'overwriteImportant': 'forceStyle',\r\n\t\t'closable': 'closeButton',\r\n\t\t'insetWidth': 'controlBorderWidth',\r\n\t\t'insetColor': 'controlBorderColor',\r\n\t\t'refine': null,\r\n\t},\r\n\r\n\r\n\tdocsRef : ' ' + 'See https://jscolor.com/docs/',\r\n\r\n\r\n\t//\r\n\t// Usage:\r\n\t// var myPicker = new JSColor( [, ])\r\n\t//\r\n\t// (constructor is accessible via both 'jscolor' and 'JSColor' name)\r\n\t//\r\n\r\n\tpub : function (targetElement, opts) {\r\n\r\n\t\tvar THIS = this;\r\n\r\n\t\tif (!opts) {\r\n\t\t\topts = {};\r\n\t\t}\r\n\r\n\t\tthis.channels = {\r\n\t\t\tr: 255, // red [0-255]\r\n\t\t\tg: 255, // green [0-255]\r\n\t\t\tb: 255, // blue [0-255]\r\n\t\t\th: 0, // hue [0-360]\r\n\t\t\ts: 0, // saturation [0-100]\r\n\t\t\tv: 100, // value (brightness) [0-100]\r\n\t\t\ta: 1.0, // alpha (opacity) [0.0 - 1.0]\r\n\t\t};\r\n\r\n\t\t// General options\r\n\t\t//\r\n\t\tthis.format = 'auto'; // 'auto' | 'any' | 'hex' | 'hexa' | 'rgb' | 'rgba' - Format of the input/output value\r\n\t\tthis.value = undefined; // INITIAL color value in any supported format. To change it later, use method fromString(), fromHSVA(), fromRGBA() or channel()\r\n\t\tthis.alpha = undefined; // INITIAL alpha value. To change it later, call method channel('A', )\r\n\t\tthis.onChange = undefined; // called when color changes. Value can be either a function or a string with JS code.\r\n\t\tthis.onInput = undefined; // called repeatedly as the color is being changed, e.g. while dragging a slider. Value can be either a function or a string with JS code.\r\n\t\tthis.valueElement = undefined; // element that will be used to display and input the color value\r\n\t\tthis.alphaElement = undefined; // element that will be used to display and input the alpha (opacity) value\r\n\t\tthis.previewElement = undefined; // element that will preview the picked color using CSS background\r\n\t\tthis.previewPosition = 'left'; // 'left' | 'right' - position of the color preview in previewElement\r\n\t\tthis.previewSize = 32; // (px) width of the color preview displayed in previewElement\r\n\t\tthis.previewPadding = 8; // (px) space between color preview and content of the previewElement\r\n\t\tthis.required = true; // whether the associated text input must always contain a color value. If false, the input can be left empty.\r\n\t\tthis.hash = true; // whether to prefix the HEX color code with # symbol (only applicable for HEX format)\r\n\t\tthis.uppercase = true; // whether to show the HEX color code in upper case (only applicable for HEX format)\r\n\t\tthis.forceStyle = true; // whether to overwrite CSS style of the previewElement using !important flag\r\n\r\n\t\t// Color Picker options\r\n\t\t//\r\n\t\tthis.width = 181; // width of the color spectrum (in px)\r\n\t\tthis.height = 101; // height of the color spectrum (in px)\r\n\t\tthis.mode = 'HSV'; // 'HSV' | 'HVS' | 'HS' | 'HV' - layout of the color picker controls\r\n\t\tthis.alphaChannel = 'auto'; // 'auto' | true | false - if alpha channel is enabled, the alpha slider will be visible. If 'auto', it will be determined according to color format\r\n\t\tthis.position = 'bottom'; // 'left' | 'right' | 'top' | 'bottom' - position relative to the target element\r\n\t\tthis.smartPosition = true; // automatically change picker position when there is not enough space for it\r\n\t\tthis.showOnClick = true; // whether to show the picker when user clicks its target element\r\n\t\tthis.hideOnLeave = true; // whether to automatically hide the picker when user leaves its target element (e.g. upon clicking the document)\r\n\t\tthis.palette = []; // colors to be displayed in the palette, specified as an array or a string of space separated color values (in any supported format)\r\n\t\tthis.paletteCols = 10; // number of columns in the palette\r\n\t\tthis.paletteSetsAlpha = 'auto'; // 'auto' | true | false - if true, palette colors that don't specify alpha will set alpha to 1.0\r\n\t\tthis.paletteHeight = 16; // maximum height (px) of a row in the palette\r\n\t\tthis.paletteSpacing = 4; // distance (px) between color samples in the palette\r\n\t\tthis.hideOnPaletteClick = false; // when set to true, clicking the palette will also hide the color picker\r\n\t\tthis.sliderSize = 16; // px\r\n\t\tthis.crossSize = 8; // px\r\n\t\tthis.closeButton = false; // whether to display the Close button\r\n\t\tthis.closeText = 'Close';\r\n\t\tthis.buttonColor = 'rgba(0,0,0,1)'; // CSS color\r\n\t\tthis.buttonHeight = 18; // px\r\n\t\tthis.padding = 12; // px\r\n\t\tthis.backgroundColor = 'rgba(255,255,255,1)'; // CSS color\r\n\t\tthis.borderWidth = 1; // px\r\n\t\tthis.borderColor = 'rgba(187,187,187,1)'; // CSS color\r\n\t\tthis.borderRadius = 8; // px\r\n\t\tthis.controlBorderWidth = 1; // px\r\n\t\tthis.controlBorderColor = 'rgba(187,187,187,1)'; // CSS color\r\n\t\tthis.shadow = true; // whether to display a shadow\r\n\t\tthis.shadowBlur = 15; // px\r\n\t\tthis.shadowColor = 'rgba(0,0,0,0.2)'; // CSS color\r\n\t\tthis.pointerColor = 'rgba(76,76,76,1)'; // CSS color\r\n\t\tthis.pointerBorderWidth = 1; // px\r\n\t\tthis.pointerBorderColor = 'rgba(255,255,255,1)'; // CSS color\r\n\t\tthis.pointerThickness = 2; // px\r\n\t\tthis.zIndex = 5000;\r\n\t\tthis.container = undefined; // where to append the color picker (BODY element by default)\r\n\r\n\t\t// Experimental\r\n\t\t//\r\n\t\tthis.minS = 0; // min allowed saturation (0 - 100)\r\n\t\tthis.maxS = 100; // max allowed saturation (0 - 100)\r\n\t\tthis.minV = 0; // min allowed value (brightness) (0 - 100)\r\n\t\tthis.maxV = 100; // max allowed value (brightness) (0 - 100)\r\n\t\tthis.minA = 0.0; // min allowed alpha (opacity) (0.0 - 1.0)\r\n\t\tthis.maxA = 1.0; // max allowed alpha (opacity) (0.0 - 1.0)\r\n\r\n\r\n\t\t// Getter: option(name)\r\n\t\t// Setter: option(name, value)\r\n\t\t// option({name:value, ...})\r\n\t\t//\r\n\t\tthis.option = function () {\r\n\t\t\tif (!arguments.length) {\r\n\t\t\t\tthrow new Error('No option specified');\r\n\t\t\t}\r\n\r\n\t\t\tif (arguments.length === 1 && typeof arguments[0] === 'string') {\r\n\t\t\t\t// getting a single option\r\n\t\t\t\ttry {\r\n\t\t\t\t\treturn getOption(arguments[0]);\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tconsole.warn(e);\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\r\n\t\t\t} else if (arguments.length >= 2 && typeof arguments[0] === 'string') {\r\n\t\t\t\t// setting a single option\r\n\t\t\t\ttry {\r\n\t\t\t\t\tif (!setOption(arguments[0], arguments[1])) {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tconsole.warn(e);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tthis.redraw(); // immediately redraws the picker, if it's displayed\r\n\t\t\t\tthis.exposeColor(); // in case some preview-related or format-related option was changed\r\n\t\t\t\treturn true;\r\n\r\n\t\t\t} else if (arguments.length === 1 && typeof arguments[0] === 'object') {\r\n\t\t\t\t// setting multiple options\r\n\t\t\t\tvar opts = arguments[0];\r\n\t\t\t\tvar success = true;\r\n\t\t\t\tfor (var opt in opts) {\r\n\t\t\t\t\tif (opts.hasOwnProperty(opt)) {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tif (!setOption(opt, opts[opt])) {\r\n\t\t\t\t\t\t\t\tsuccess = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\tconsole.warn(e);\r\n\t\t\t\t\t\t\tsuccess = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tthis.redraw(); // immediately redraws the picker, if it's displayed\r\n\t\t\t\tthis.exposeColor(); // in case some preview-related or format-related option was changed\r\n\t\t\t\treturn success;\r\n\t\t\t}\r\n\r\n\t\t\tthrow new Error('Invalid arguments');\r\n\t\t}\r\n\r\n\r\n\t\t// Getter: channel(name)\r\n\t\t// Setter: channel(name, value)\r\n\t\t//\r\n\t\tthis.channel = function (name, value) {\r\n\t\t\tif (typeof name !== 'string') {\r\n\t\t\t\tthrow new Error('Invalid value for channel name: ' + name);\r\n\t\t\t}\r\n\r\n\t\t\tif (value === undefined) {\r\n\t\t\t\t// getting channel value\r\n\t\t\t\tif (!this.channels.hasOwnProperty(name.toLowerCase())) {\r\n\t\t\t\t\tconsole.warn('Getting unknown channel: ' + name);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\treturn this.channels[name.toLowerCase()];\r\n\r\n\t\t\t} else {\r\n\t\t\t\t// setting channel value\r\n\t\t\t\tvar res = false;\r\n\t\t\t\tswitch (name.toLowerCase()) {\r\n\t\t\t\t\tcase 'r': res = this.fromRGBA(value, null, null, null); break;\r\n\t\t\t\t\tcase 'g': res = this.fromRGBA(null, value, null, null); break;\r\n\t\t\t\t\tcase 'b': res = this.fromRGBA(null, null, value, null); break;\r\n\t\t\t\t\tcase 'h': res = this.fromHSVA(value, null, null, null); break;\r\n\t\t\t\t\tcase 's': res = this.fromHSVA(null, value, null, null); break;\r\n\t\t\t\t\tcase 'v': res = this.fromHSVA(null, null, value, null); break;\r\n\t\t\t\t\tcase 'a': res = this.fromHSVA(null, null, null, value); break;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tconsole.warn('Setting unknown channel: ' + name);\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tif (res) {\r\n\t\t\t\t\tthis.redraw(); // immediately redraws the picker, if it's displayed\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\r\n\t\t// Triggers given input event(s) by:\r\n\t\t// - executing on callback specified as picker's option\r\n\t\t// - triggering standard DOM event listeners attached to the value element\r\n\t\t//\r\n\t\t// It is possible to specify multiple events separated with a space.\r\n\t\t//\r\n\t\tthis.trigger = function (eventNames) {\r\n\t\t\tvar evs = jsc.strList(eventNames);\r\n\t\t\tfor (var i = 0; i < evs.length; i += 1) {\r\n\t\t\t\tvar ev = evs[i].toLowerCase();\r\n\r\n\t\t\t\t// trigger a callback\r\n\t\t\t\tvar callbackProp = null;\r\n\t\t\t\tswitch (ev) {\r\n\t\t\t\t\tcase 'input': callbackProp = 'onInput'; break;\r\n\t\t\t\t\tcase 'change': callbackProp = 'onChange'; break;\r\n\t\t\t\t}\r\n\t\t\t\tif (callbackProp) {\r\n\t\t\t\t\tjsc.triggerCallback(this, callbackProp);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// trigger standard DOM event listeners on the value element\r\n\t\t\t\tjsc.triggerInputEvent(this.valueElement, ev, true, true);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\t// h: 0-360\r\n\t\t// s: 0-100\r\n\t\t// v: 0-100\r\n\t\t// a: 0.0-1.0\r\n\t\t//\r\n\t\tthis.fromHSVA = function (h, s, v, a, flags) { // null = don't change\r\n\t\t\tif (h === undefined) { h = null; }\r\n\t\t\tif (s === undefined) { s = null; }\r\n\t\t\tif (v === undefined) { v = null; }\r\n\t\t\tif (a === undefined) { a = null; }\r\n\r\n\t\t\tif (h !== null) {\r\n\t\t\t\tif (isNaN(h)) { return false; }\r\n\t\t\t\tthis.channels.h = Math.max(0, Math.min(360, h));\r\n\t\t\t}\r\n\t\t\tif (s !== null) {\r\n\t\t\t\tif (isNaN(s)) { return false; }\r\n\t\t\t\tthis.channels.s = Math.max(0, Math.min(100, this.maxS, s), this.minS);\r\n\t\t\t}\r\n\t\t\tif (v !== null) {\r\n\t\t\t\tif (isNaN(v)) { return false; }\r\n\t\t\t\tthis.channels.v = Math.max(0, Math.min(100, this.maxV, v), this.minV);\r\n\t\t\t}\r\n\t\t\tif (a !== null) {\r\n\t\t\t\tif (isNaN(a)) { return false; }\r\n\t\t\t\tthis.channels.a = this.hasAlphaChannel() ?\r\n\t\t\t\t\tMath.max(0, Math.min(1, this.maxA, a), this.minA) :\r\n\t\t\t\t\t1.0; // if alpha channel is disabled, the color should stay 100% opaque\r\n\t\t\t}\r\n\r\n\t\t\tvar rgb = jsc.HSV_RGB(\r\n\t\t\t\tthis.channels.h,\r\n\t\t\t\tthis.channels.s,\r\n\t\t\t\tthis.channels.v\r\n\t\t\t);\r\n\t\t\tthis.channels.r = rgb[0];\r\n\t\t\tthis.channels.g = rgb[1];\r\n\t\t\tthis.channels.b = rgb[2];\r\n\r\n\t\t\tthis.exposeColor(flags);\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\r\n\t\t// r: 0-255\r\n\t\t// g: 0-255\r\n\t\t// b: 0-255\r\n\t\t// a: 0.0-1.0\r\n\t\t//\r\n\t\tthis.fromRGBA = function (r, g, b, a, flags) { // null = don't change\r\n\t\t\tif (r === undefined) { r = null; }\r\n\t\t\tif (g === undefined) { g = null; }\r\n\t\t\tif (b === undefined) { b = null; }\r\n\t\t\tif (a === undefined) { a = null; }\r\n\r\n\t\t\tif (r !== null) {\r\n\t\t\t\tif (isNaN(r)) { return false; }\r\n\t\t\t\tr = Math.max(0, Math.min(255, r));\r\n\t\t\t}\r\n\t\t\tif (g !== null) {\r\n\t\t\t\tif (isNaN(g)) { return false; }\r\n\t\t\t\tg = Math.max(0, Math.min(255, g));\r\n\t\t\t}\r\n\t\t\tif (b !== null) {\r\n\t\t\t\tif (isNaN(b)) { return false; }\r\n\t\t\t\tb = Math.max(0, Math.min(255, b));\r\n\t\t\t}\r\n\t\t\tif (a !== null) {\r\n\t\t\t\tif (isNaN(a)) { return false; }\r\n\t\t\t\tthis.channels.a = this.hasAlphaChannel() ?\r\n\t\t\t\t\tMath.max(0, Math.min(1, this.maxA, a), this.minA) :\r\n\t\t\t\t\t1.0; // if alpha channel is disabled, the color should stay 100% opaque\r\n\t\t\t}\r\n\r\n\t\t\tvar hsv = jsc.RGB_HSV(\r\n\t\t\t\tr===null ? this.channels.r : r,\r\n\t\t\t\tg===null ? this.channels.g : g,\r\n\t\t\t\tb===null ? this.channels.b : b\r\n\t\t\t);\r\n\t\t\tif (hsv[0] !== null) {\r\n\t\t\t\tthis.channels.h = Math.max(0, Math.min(360, hsv[0]));\r\n\t\t\t}\r\n\t\t\tif (hsv[2] !== 0) { // fully black color stays black through entire saturation range, so let's not change saturation\r\n\t\t\t\tthis.channels.s = Math.max(0, this.minS, Math.min(100, this.maxS, hsv[1]));\r\n\t\t\t}\r\n\t\t\tthis.channels.v = Math.max(0, this.minV, Math.min(100, this.maxV, hsv[2]));\r\n\r\n\t\t\t// update RGB according to final HSV, as some values might be trimmed\r\n\t\t\tvar rgb = jsc.HSV_RGB(this.channels.h, this.channels.s, this.channels.v);\r\n\t\t\tthis.channels.r = rgb[0];\r\n\t\t\tthis.channels.g = rgb[1];\r\n\t\t\tthis.channels.b = rgb[2];\r\n\r\n\t\t\tthis.exposeColor(flags);\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\r\n\t\t// DEPRECATED. Use .fromHSVA() instead\r\n\t\t//\r\n\t\tthis.fromHSV = function (h, s, v, flags) {\r\n\t\t\tconsole.warn('fromHSV() method is DEPRECATED. Using fromHSVA() instead.' + jsc.docsRef);\r\n\t\t\treturn this.fromHSVA(h, s, v, null, flags);\r\n\t\t};\r\n\r\n\r\n\t\t// DEPRECATED. Use .fromRGBA() instead\r\n\t\t//\r\n\t\tthis.fromRGB = function (r, g, b, flags) {\r\n\t\t\tconsole.warn('fromRGB() method is DEPRECATED. Using fromRGBA() instead.' + jsc.docsRef);\r\n\t\t\treturn this.fromRGBA(r, g, b, null, flags);\r\n\t\t};\r\n\r\n\r\n\t\tthis.fromString = function (str, flags) {\r\n\t\t\tif (!this.required && str.trim() === '') {\r\n\t\t\t\t// setting empty string to an optional color input\r\n\t\t\t\tthis.setPreviewElementBg(null);\r\n\t\t\t\tthis.setValueElementValue('');\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tvar color = jsc.parseColorString(str);\r\n\t\t\tif (!color) {\r\n\t\t\t\treturn false; // could not parse\r\n\t\t\t}\r\n\t\t\tif (this.format.toLowerCase() === 'any') {\r\n\t\t\t\tthis._setFormat(color.format); // adapt format\r\n\t\t\t\tif (!jsc.isAlphaFormat(this.getFormat())) {\r\n\t\t\t\t\tcolor.rgba[3] = 1.0; // when switching to a format that doesn't support alpha, set full opacity\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.fromRGBA(\r\n\t\t\t\tcolor.rgba[0],\r\n\t\t\t\tcolor.rgba[1],\r\n\t\t\t\tcolor.rgba[2],\r\n\t\t\t\tcolor.rgba[3],\r\n\t\t\t\tflags\r\n\t\t\t);\r\n\t\t\treturn true;\r\n\t\t};\r\n\r\n\r\n\t\tthis.toString = function (format) {\r\n\t\t\tif (format === undefined) {\r\n\t\t\t\tformat = this.getFormat(); // format not specified -> use the current format\r\n\t\t\t}\r\n\t\t\tswitch (format.toLowerCase()) {\r\n\t\t\t\tcase 'hex': return this.toHEXString(); break;\r\n\t\t\t\tcase 'hexa': return this.toHEXAString(); break;\r\n\t\t\t\tcase 'rgb': return this.toRGBString(); break;\r\n\t\t\t\tcase 'rgba': return this.toRGBAString(); break;\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t};\r\n\r\n\r\n\t\tthis.toHEXString = function () {\r\n\t\t\treturn jsc.hexColor(\r\n\t\t\t\tthis.channels.r,\r\n\t\t\t\tthis.channels.g,\r\n\t\t\t\tthis.channels.b\r\n\t\t\t);\r\n\t\t};\r\n\r\n\r\n\t\tthis.toHEXAString = function () {\r\n\t\t\treturn jsc.hexaColor(\r\n\t\t\t\tthis.channels.r,\r\n\t\t\t\tthis.channels.g,\r\n\t\t\t\tthis.channels.b,\r\n\t\t\t\tthis.channels.a\r\n\t\t\t);\r\n\t\t};\r\n\r\n\r\n\t\tthis.toRGBString = function () {\r\n\t\t\treturn jsc.rgbColor(\r\n\t\t\t\tthis.channels.r,\r\n\t\t\t\tthis.channels.g,\r\n\t\t\t\tthis.channels.b\r\n\t\t\t);\r\n\t\t};\r\n\r\n\r\n\t\tthis.toRGBAString = function () {\r\n\t\t\treturn jsc.rgbaColor(\r\n\t\t\t\tthis.channels.r,\r\n\t\t\t\tthis.channels.g,\r\n\t\t\t\tthis.channels.b,\r\n\t\t\t\tthis.channels.a\r\n\t\t\t);\r\n\t\t};\r\n\r\n\r\n\t\tthis.toGrayscale = function () {\r\n\t\t\treturn (\r\n\t\t\t\t0.213 * this.channels.r +\r\n\t\t\t\t0.715 * this.channels.g +\r\n\t\t\t\t0.072 * this.channels.b\r\n\t\t\t);\r\n\t\t};\r\n\r\n\r\n\t\tthis.toCanvas = function () {\r\n\t\t\treturn jsc.genColorPreviewCanvas(this.toRGBAString()).canvas;\r\n\t\t};\r\n\r\n\r\n\t\tthis.toDataURL = function () {\r\n\t\t\treturn this.toCanvas().toDataURL();\r\n\t\t};\r\n\r\n\r\n\t\tthis.toBackground = function () {\r\n\t\t\treturn jsc.pub.background(this.toRGBAString());\r\n\t\t};\r\n\r\n\r\n\t\tthis.isLight = function () {\r\n\t\t\treturn this.toGrayscale() > 255 / 2;\r\n\t\t};\r\n\r\n\r\n\t\tthis.hide = function () {\r\n\t\t\tif (isPickerOwner()) {\r\n\t\t\t\tdetachPicker();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.show = function () {\r\n\t\t\tdrawPicker();\r\n\t\t};\r\n\r\n\r\n\t\tthis.redraw = function () {\r\n\t\t\tif (isPickerOwner()) {\r\n\t\t\t\tdrawPicker();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.getFormat = function () {\r\n\t\t\treturn this._currentFormat;\r\n\t\t};\r\n\r\n\r\n\t\tthis._setFormat = function (format) {\r\n\t\t\tthis._currentFormat = format.toLowerCase();\r\n\t\t};\r\n\r\n\r\n\t\tthis.hasAlphaChannel = function () {\r\n\t\t\tif (this.alphaChannel === 'auto') {\r\n\t\t\t\treturn (\r\n\t\t\t\t\tthis.format.toLowerCase() === 'any' || // format can change on the fly (e.g. from hex to rgba), so let's consider the alpha channel enabled\r\n\t\t\t\t\tjsc.isAlphaFormat(this.getFormat()) || // the current format supports alpha channel\r\n\t\t\t\t\tthis.alpha !== undefined || // initial alpha value is set, so we're working with alpha channel\r\n\t\t\t\t\tthis.alphaElement !== undefined // the alpha value is redirected, so we're working with alpha channel\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\treturn this.alphaChannel; // the alpha channel is explicitly set\r\n\t\t};\r\n\r\n\r\n\t\tthis.processValueInput = function (str) {\r\n\t\t\tif (!this.fromString(str)) {\r\n\t\t\t\t// could not parse the color value - let's just expose the current color\r\n\t\t\t\tthis.exposeColor();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.processAlphaInput = function (str) {\r\n\t\t\tif (!this.fromHSVA(null, null, null, parseFloat(str))) {\r\n\t\t\t\t// could not parse the alpha value - let's just expose the current color\r\n\t\t\t\tthis.exposeColor();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.exposeColor = function (flags) {\r\n\t\t\tvar colorStr = this.toString();\r\n\t\t\tvar fmt = this.getFormat();\r\n\r\n\t\t\t// reflect current color in data- attribute\r\n\t\t\tjsc.setDataAttr(this.targetElement, 'current-color', colorStr);\r\n\r\n\t\t\tif (!(flags & jsc.flags.leaveValue) && this.valueElement) {\r\n\t\t\t\tif (fmt === 'hex' || fmt === 'hexa') {\r\n\t\t\t\t\tif (!this.uppercase) { colorStr = colorStr.toLowerCase(); }\r\n\t\t\t\t\tif (!this.hash) { colorStr = colorStr.replace(/^#/, ''); }\r\n\t\t\t\t}\r\n\t\t\t\tthis.setValueElementValue(colorStr);\r\n\t\t\t}\r\n\r\n\t\t\tif (!(flags & jsc.flags.leaveAlpha) && this.alphaElement) {\r\n\t\t\t\tvar alphaVal = Math.round(this.channels.a * 100) / 100;\r\n\t\t\t\tthis.setAlphaElementValue(alphaVal);\r\n\t\t\t}\r\n\r\n\t\t\tif (!(flags & jsc.flags.leavePreview) && this.previewElement) {\r\n\t\t\t\tvar previewPos = null; // 'left' | 'right' (null -> fill the entire element)\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\tjsc.isTextInput(this.previewElement) || // text input\r\n\t\t\t\t\t(jsc.isButton(this.previewElement) && !jsc.isButtonEmpty(this.previewElement)) // button with text\r\n\t\t\t\t) {\r\n\t\t\t\t\tpreviewPos = this.previewPosition;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.setPreviewElementBg(this.toRGBAString());\r\n\t\t\t}\r\n\r\n\t\t\tif (isPickerOwner()) {\r\n\t\t\t\tredrawPad();\r\n\t\t\t\tredrawSld();\r\n\t\t\t\tredrawASld();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.setPreviewElementBg = function (color) {\r\n\t\t\tif (!this.previewElement) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar position = null; // color preview position: null | 'left' | 'right'\r\n\t\t\tvar width = null; // color preview width: px | null = fill the entire element\r\n\t\t\tif (\r\n\t\t\t\tjsc.isTextInput(this.previewElement) || // text input\r\n\t\t\t\t(jsc.isButton(this.previewElement) && !jsc.isButtonEmpty(this.previewElement)) // button with text\r\n\t\t\t) {\r\n\t\t\t\tposition = this.previewPosition;\r\n\t\t\t\twidth = this.previewSize;\r\n\t\t\t}\r\n\r\n\t\t\tvar backgrounds = [];\r\n\r\n\t\t\tif (!color) {\r\n\t\t\t\t// there is no color preview to display -> let's remove any previous background image\r\n\t\t\t\tbackgrounds.push({\r\n\t\t\t\t\timage: 'none',\r\n\t\t\t\t\tposition: 'left top',\r\n\t\t\t\t\tsize: 'auto',\r\n\t\t\t\t\trepeat: 'no-repeat',\r\n\t\t\t\t\torigin: 'padding-box',\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\t// CSS gradient for background color preview\r\n\t\t\t\tbackgrounds.push({\r\n\t\t\t\t\timage: jsc.genColorPreviewGradient(\r\n\t\t\t\t\t\tcolor,\r\n\t\t\t\t\t\tposition,\r\n\t\t\t\t\t\twidth ? width - jsc.pub.previewSeparator.length : null\r\n\t\t\t\t\t),\r\n\t\t\t\t\tposition: 'left top',\r\n\t\t\t\t\tsize: 'auto',\r\n\t\t\t\t\trepeat: position ? 'repeat-y' : 'repeat',\r\n\t\t\t\t\torigin: 'padding-box',\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// data URL of generated PNG image with a gray transparency chessboard\r\n\t\t\t\tvar preview = jsc.genColorPreviewCanvas(\r\n\t\t\t\t\t'rgba(0,0,0,0)',\r\n\t\t\t\t\tposition ? {'left':'right', 'right':'left'}[position] : null,\r\n\t\t\t\t\twidth,\r\n\t\t\t\t\ttrue\r\n\t\t\t\t);\r\n\t\t\t\tbackgrounds.push({\r\n\t\t\t\t\timage: 'url(\\'' + preview.canvas.toDataURL() + '\\')',\r\n\t\t\t\t\tposition: (position || 'left') + ' top',\r\n\t\t\t\t\tsize: preview.width + 'px ' + preview.height + 'px',\r\n\t\t\t\t\trepeat: position ? 'repeat-y' : 'repeat',\r\n\t\t\t\t\torigin: 'padding-box',\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tvar bg = {\r\n\t\t\t\timage: [],\r\n\t\t\t\tposition: [],\r\n\t\t\t\tsize: [],\r\n\t\t\t\trepeat: [],\r\n\t\t\t\torigin: [],\r\n\t\t\t};\r\n\t\t\tfor (var i = 0; i < backgrounds.length; i += 1) {\r\n\t\t\t\tbg.image.push(backgrounds[i].image);\r\n\t\t\t\tbg.position.push(backgrounds[i].position);\r\n\t\t\t\tbg.size.push(backgrounds[i].size);\r\n\t\t\t\tbg.repeat.push(backgrounds[i].repeat);\r\n\t\t\t\tbg.origin.push(backgrounds[i].origin);\r\n\t\t\t}\r\n\r\n\t\t\t// set previewElement's background-images\r\n\t\t\tvar sty = {\r\n\t\t\t\t'background-image': bg.image.join(', '),\r\n\t\t\t\t'background-position': bg.position.join(', '),\r\n\t\t\t\t'background-size': bg.size.join(', '),\r\n\t\t\t\t'background-repeat': bg.repeat.join(', '),\r\n\t\t\t\t'background-origin': bg.origin.join(', '),\r\n\t\t\t};\r\n\t\t\tjsc.setStyle(this.previewElement, sty, this.forceStyle);\r\n\r\n\r\n\t\t\t// set/restore previewElement's padding\r\n\t\t\tvar padding = {\r\n\t\t\t\tleft: null,\r\n\t\t\t\tright: null,\r\n\t\t\t};\r\n\t\t\tif (position) {\r\n\t\t\t\tpadding[position] = (this.previewSize + this.previewPadding) + 'px';\r\n\t\t\t}\r\n\r\n\t\t\tvar sty = {\r\n\t\t\t\t'padding-left': padding.left,\r\n\t\t\t\t'padding-right': padding.right,\r\n\t\t\t};\r\n\t\t\tjsc.setStyle(this.previewElement, sty, this.forceStyle, true);\r\n\t\t};\r\n\r\n\r\n\t\tthis.setValueElementValue = function (str) {\r\n\t\t\tif (this.valueElement) {\r\n\t\t\t\tif (jsc.nodeName(this.valueElement) === 'input') {\r\n\t\t\t\t\tthis.valueElement.value = str;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.valueElement.innerHTML = str;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.setAlphaElementValue = function (str) {\r\n\t\t\tif (this.alphaElement) {\r\n\t\t\t\tif (jsc.nodeName(this.alphaElement) === 'input') {\r\n\t\t\t\t\tthis.alphaElement.value = str;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.alphaElement.innerHTML = str;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis._processParentElementsInDOM = function () {\r\n\t\t\tif (this._parentElementsProcessed) { return; }\r\n\t\t\tthis._parentElementsProcessed = true;\r\n\r\n\t\t\tvar elm = this.targetElement;\r\n\t\t\tdo {\r\n\t\t\t\t// If the target element or one of its parent nodes has fixed position,\r\n\t\t\t\t// then use fixed positioning instead\r\n\t\t\t\tvar compStyle = jsc.getCompStyle(elm);\r\n\t\t\t\tif (compStyle.position && compStyle.position.toLowerCase() === 'fixed') {\r\n\t\t\t\t\tthis.fixed = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (elm !== this.targetElement) {\r\n\t\t\t\t\t// Ensure to attach onParentScroll only once to each parent element\r\n\t\t\t\t\t// (multiple targetElements can share the same parent nodes)\r\n\t\t\t\t\t//\r\n\t\t\t\t\t// Note: It's not just offsetParents that can be scrollable,\r\n\t\t\t\t\t// that's why we loop through all parent nodes\r\n\t\t\t\t\tif (!jsc.getData(elm, 'hasScrollListener')) {\r\n\t\t\t\t\t\telm.addEventListener('scroll', jsc.onParentScroll, false);\r\n\t\t\t\t\t\tjsc.setData(elm, 'hasScrollListener', true);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} while ((elm = elm.parentNode) && jsc.nodeName(elm) !== 'body');\r\n\t\t};\r\n\r\n\r\n\t\tthis.tryHide = function () {\r\n\t\t\tif (this.hideOnLeave) {\r\n\t\t\t\tthis.hide();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.set__palette = function (val) {\r\n\t\t\tthis.palette = val;\r\n\t\t\tthis._palette = jsc.parsePaletteValue(val);\r\n\t\t\tthis._paletteHasTransparency = jsc.containsTranparentColor(this._palette);\r\n\t\t};\r\n\r\n\r\n\t\tfunction setOption (option, value) {\r\n\t\t\tif (typeof option !== 'string') {\r\n\t\t\t\tthrow new Error('Invalid value for option name: ' + option);\r\n\t\t\t}\r\n\r\n\t\t\t// enum option\r\n\t\t\tif (jsc.enumOpts.hasOwnProperty(option)) {\r\n\t\t\t\tif (typeof value === 'string') { // enum string values are case insensitive\r\n\t\t\t\t\tvalue = value.toLowerCase();\r\n\t\t\t\t}\r\n\t\t\t\tif (jsc.enumOpts[option].indexOf(value) === -1) {\r\n\t\t\t\t\tthrow new Error('Option \\'' + option + '\\' has invalid value: ' + value);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// deprecated option\r\n\t\t\tif (jsc.deprecatedOpts.hasOwnProperty(option)) {\r\n\t\t\t\tvar oldOpt = option;\r\n\t\t\t\tvar newOpt = jsc.deprecatedOpts[option];\r\n\t\t\t\tif (newOpt) {\r\n\t\t\t\t\t// if we have a new name for this option, let's log a warning and use the new name\r\n\t\t\t\t\tconsole.warn('Option \\'%s\\' is DEPRECATED, using \\'%s\\' instead.' + jsc.docsRef, oldOpt, newOpt);\r\n\t\t\t\t\toption = newOpt;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// new name not available for the option\r\n\t\t\t\t\tthrow new Error('Option \\'' + option + '\\' is DEPRECATED');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar setter = 'set__' + option;\r\n\r\n\t\t\tif (typeof THIS[setter] === 'function') { // a setter exists for this option\r\n\t\t\t\tTHIS[setter](value);\r\n\t\t\t\treturn true;\r\n\r\n\t\t\t} else if (option in THIS) { // option exists as a property\r\n\t\t\t\tTHIS[option] = value;\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tthrow new Error('Unrecognized configuration option: ' + option);\r\n\t\t}\r\n\r\n\r\n\t\tfunction getOption (option) {\r\n\t\t\tif (typeof option !== 'string') {\r\n\t\t\t\tthrow new Error('Invalid value for option name: ' + option);\r\n\t\t\t}\r\n\r\n\t\t\t// deprecated option\r\n\t\t\tif (jsc.deprecatedOpts.hasOwnProperty(option)) {\r\n\t\t\t\tvar oldOpt = option;\r\n\t\t\t\tvar newOpt = jsc.deprecatedOpts[option];\r\n\t\t\t\tif (newOpt) {\r\n\t\t\t\t\t// if we have a new name for this option, let's log a warning and use the new name\r\n\t\t\t\t\tconsole.warn('Option \\'%s\\' is DEPRECATED, using \\'%s\\' instead.' + jsc.docsRef, oldOpt, newOpt);\r\n\t\t\t\t\toption = newOpt;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// new name not available for the option\r\n\t\t\t\t\tthrow new Error('Option \\'' + option + '\\' is DEPRECATED');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar getter = 'get__' + option;\r\n\r\n\t\t\tif (typeof THIS[getter] === 'function') { // a getter exists for this option\r\n\t\t\t\treturn THIS[getter](value);\r\n\r\n\t\t\t} else if (option in THIS) { // option exists as a property\r\n\t\t\t\treturn THIS[option];\r\n\t\t\t}\r\n\r\n\t\t\tthrow new Error('Unrecognized configuration option: ' + option);\r\n\t\t}\r\n\r\n\r\n\t\tfunction detachPicker () {\r\n\t\t\tjsc.removeClass(THIS.targetElement, jsc.pub.activeClassName);\r\n\t\t\tjsc.picker.wrap.parentNode.removeChild(jsc.picker.wrap);\r\n\t\t\tdelete jsc.picker.owner;\r\n\t\t}\r\n\r\n\r\n\t\tfunction drawPicker () {\r\n\r\n\t\t\t// At this point, when drawing the picker, we know what the parent elements are\r\n\t\t\t// and we can do all related DOM operations, such as registering events on them\r\n\t\t\t// or checking their positioning\r\n\t\t\tTHIS._processParentElementsInDOM();\r\n\r\n\t\t\tif (!jsc.picker) {\r\n\t\t\t\tjsc.picker = {\r\n\t\t\t\t\towner: null, // owner picker instance\r\n\t\t\t\t\twrap : jsc.createEl('div'),\r\n\t\t\t\t\tbox : jsc.createEl('div'),\r\n\t\t\t\t\tboxS : jsc.createEl('div'), // shadow area\r\n\t\t\t\t\tboxB : jsc.createEl('div'), // border\r\n\t\t\t\t\tpad : jsc.createEl('div'),\r\n\t\t\t\t\tpadB : jsc.createEl('div'), // border\r\n\t\t\t\t\tpadM : jsc.createEl('div'), // mouse/touch area\r\n\t\t\t\t\tpadCanvas : jsc.createPadCanvas(),\r\n\t\t\t\t\tcross : jsc.createEl('div'),\r\n\t\t\t\t\tcrossBY : jsc.createEl('div'), // border Y\r\n\t\t\t\t\tcrossBX : jsc.createEl('div'), // border X\r\n\t\t\t\t\tcrossLY : jsc.createEl('div'), // line Y\r\n\t\t\t\t\tcrossLX : jsc.createEl('div'), // line X\r\n\t\t\t\t\tsld : jsc.createEl('div'), // slider\r\n\t\t\t\t\tsldB : jsc.createEl('div'), // border\r\n\t\t\t\t\tsldM : jsc.createEl('div'), // mouse/touch area\r\n\t\t\t\t\tsldGrad : jsc.createSliderGradient(),\r\n\t\t\t\t\tsldPtrS : jsc.createEl('div'), // slider pointer spacer\r\n\t\t\t\t\tsldPtrIB : jsc.createEl('div'), // slider pointer inner border\r\n\t\t\t\t\tsldPtrMB : jsc.createEl('div'), // slider pointer middle border\r\n\t\t\t\t\tsldPtrOB : jsc.createEl('div'), // slider pointer outer border\r\n\t\t\t\t\tasld : jsc.createEl('div'), // alpha slider\r\n\t\t\t\t\tasldB : jsc.createEl('div'), // border\r\n\t\t\t\t\tasldM : jsc.createEl('div'), // mouse/touch area\r\n\t\t\t\t\tasldGrad : jsc.createASliderGradient(),\r\n\t\t\t\t\tasldPtrS : jsc.createEl('div'), // slider pointer spacer\r\n\t\t\t\t\tasldPtrIB : jsc.createEl('div'), // slider pointer inner border\r\n\t\t\t\t\tasldPtrMB : jsc.createEl('div'), // slider pointer middle border\r\n\t\t\t\t\tasldPtrOB : jsc.createEl('div'), // slider pointer outer border\r\n\t\t\t\t\tpal : jsc.createEl('div'), // palette\r\n\t\t\t\t\tbtn : jsc.createEl('div'),\r\n\t\t\t\t\tbtnT : jsc.createEl('span'), // text\r\n\t\t\t\t};\r\n\r\n\t\t\t\tjsc.picker.pad.appendChild(jsc.picker.padCanvas.elm);\r\n\t\t\t\tjsc.picker.padB.appendChild(jsc.picker.pad);\r\n\t\t\t\tjsc.picker.cross.appendChild(jsc.picker.crossBY);\r\n\t\t\t\tjsc.picker.cross.appendChild(jsc.picker.crossBX);\r\n\t\t\t\tjsc.picker.cross.appendChild(jsc.picker.crossLY);\r\n\t\t\t\tjsc.picker.cross.appendChild(jsc.picker.crossLX);\r\n\t\t\t\tjsc.picker.padB.appendChild(jsc.picker.cross);\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.padB);\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.padM);\r\n\r\n\t\t\t\tjsc.picker.sld.appendChild(jsc.picker.sldGrad.elm);\r\n\t\t\t\tjsc.picker.sldB.appendChild(jsc.picker.sld);\r\n\t\t\t\tjsc.picker.sldB.appendChild(jsc.picker.sldPtrOB);\r\n\t\t\t\tjsc.picker.sldPtrOB.appendChild(jsc.picker.sldPtrMB);\r\n\t\t\t\tjsc.picker.sldPtrMB.appendChild(jsc.picker.sldPtrIB);\r\n\t\t\t\tjsc.picker.sldPtrIB.appendChild(jsc.picker.sldPtrS);\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.sldB);\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.sldM);\r\n\r\n\t\t\t\tjsc.picker.asld.appendChild(jsc.picker.asldGrad.elm);\r\n\t\t\t\tjsc.picker.asldB.appendChild(jsc.picker.asld);\r\n\t\t\t\tjsc.picker.asldB.appendChild(jsc.picker.asldPtrOB);\r\n\t\t\t\tjsc.picker.asldPtrOB.appendChild(jsc.picker.asldPtrMB);\r\n\t\t\t\tjsc.picker.asldPtrMB.appendChild(jsc.picker.asldPtrIB);\r\n\t\t\t\tjsc.picker.asldPtrIB.appendChild(jsc.picker.asldPtrS);\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.asldB);\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.asldM);\r\n\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.pal);\r\n\r\n\t\t\t\tjsc.picker.btn.appendChild(jsc.picker.btnT);\r\n\t\t\t\tjsc.picker.box.appendChild(jsc.picker.btn);\r\n\r\n\t\t\t\tjsc.picker.boxB.appendChild(jsc.picker.box);\r\n\t\t\t\tjsc.picker.wrap.appendChild(jsc.picker.boxS);\r\n\t\t\t\tjsc.picker.wrap.appendChild(jsc.picker.boxB);\r\n\r\n\t\t\t\tjsc.picker.wrap.addEventListener('touchstart', jsc.onPickerTouchStart,\r\n\t\t\t\t\tjsc.isPassiveEventSupported ? {passive: false} : false);\r\n\t\t\t}\r\n\r\n\t\t\tvar p = jsc.picker;\r\n\r\n\t\t\tvar displaySlider = !!jsc.getSliderChannel(THIS);\r\n\t\t\tvar displayAlphaSlider = THIS.hasAlphaChannel();\r\n\t\t\tvar pickerDims = jsc.getPickerDims(THIS);\r\n\t\t\tvar crossOuterSize = (2 * THIS.pointerBorderWidth + THIS.pointerThickness + 2 * THIS.crossSize);\r\n\t\t\tvar controlPadding = jsc.getControlPadding(THIS);\r\n\t\t\tvar borderRadius = Math.min(\r\n\t\t\t\tTHIS.borderRadius,\r\n\t\t\t\tMath.round(THIS.padding * Math.PI)); // px\r\n\t\t\tvar padCursor = 'crosshair';\r\n\r\n\t\t\t// wrap\r\n\t\t\tp.wrap.className = 'jscolor-picker-wrap';\r\n\t\t\tp.wrap.style.clear = 'both';\r\n\t\t\tp.wrap.style.width = pickerDims.borderW + 'px';\r\n\t\t\tp.wrap.style.height = pickerDims.borderH + 'px';\r\n\t\t\tp.wrap.style.zIndex = THIS.zIndex;\r\n\r\n\t\t\t// picker\r\n\t\t\tp.box.className = 'jscolor-picker';\r\n\t\t\tp.box.style.width = pickerDims.paddedW + 'px';\r\n\t\t\tp.box.style.height = pickerDims.paddedH + 'px';\r\n\t\t\tp.box.style.position = 'relative';\r\n\r\n\t\t\t// picker shadow\r\n\t\t\tp.boxS.className = 'jscolor-picker-shadow';\r\n\t\t\tp.boxS.style.position = 'absolute';\r\n\t\t\tp.boxS.style.left = '0';\r\n\t\t\tp.boxS.style.top = '0';\r\n\t\t\tp.boxS.style.width = '100%';\r\n\t\t\tp.boxS.style.height = '100%';\r\n\t\t\tjsc.setBorderRadius(p.boxS, borderRadius + 'px');\r\n\r\n\t\t\t// picker border\r\n\t\t\tp.boxB.className = 'jscolor-picker-border';\r\n\t\t\tp.boxB.style.position = 'relative';\r\n\t\t\tp.boxB.style.border = THIS.borderWidth + 'px solid';\r\n\t\t\tp.boxB.style.borderColor = THIS.borderColor;\r\n\t\t\tp.boxB.style.background = THIS.backgroundColor;\r\n\t\t\tjsc.setBorderRadius(p.boxB, borderRadius + 'px');\r\n\r\n\t\t\t// IE hack:\r\n\t\t\t// If the element is transparent, IE will trigger the event on the elements under it,\r\n\t\t\t// e.g. on Canvas or on elements with border\r\n\t\t\tp.padM.style.background = 'rgba(255,0,0,.2)';\r\n\t\t\tp.sldM.style.background = 'rgba(0,255,0,.2)';\r\n\t\t\tp.asldM.style.background = 'rgba(0,0,255,.2)';\r\n\r\n\t\t\tp.padM.style.opacity =\r\n\t\t\tp.sldM.style.opacity =\r\n\t\t\tp.asldM.style.opacity =\r\n\t\t\t\t'0';\r\n\r\n\t\t\t// pad\r\n\t\t\tp.pad.style.position = 'relative';\r\n\t\t\tp.pad.style.width = THIS.width + 'px';\r\n\t\t\tp.pad.style.height = THIS.height + 'px';\r\n\r\n\t\t\t// pad - color spectrum (HSV and HVS)\r\n\t\t\tp.padCanvas.draw(THIS.width, THIS.height, jsc.getPadYChannel(THIS));\r\n\r\n\t\t\t// pad border\r\n\t\t\tp.padB.style.position = 'absolute';\r\n\t\t\tp.padB.style.left = THIS.padding + 'px';\r\n\t\t\tp.padB.style.top = THIS.padding + 'px';\r\n\t\t\tp.padB.style.border = THIS.controlBorderWidth + 'px solid';\r\n\t\t\tp.padB.style.borderColor = THIS.controlBorderColor;\r\n\r\n\t\t\t// pad mouse area\r\n\t\t\tp.padM.style.position = 'absolute';\r\n\t\t\tp.padM.style.left = 0 + 'px';\r\n\t\t\tp.padM.style.top = 0 + 'px';\r\n\t\t\tp.padM.style.width = (THIS.padding + 2 * THIS.controlBorderWidth + THIS.width + controlPadding) + 'px';\r\n\t\t\tp.padM.style.height = (2 * THIS.controlBorderWidth + 2 * THIS.padding + THIS.height) + 'px';\r\n\t\t\tp.padM.style.cursor = padCursor;\r\n\t\t\tjsc.setData(p.padM, {\r\n\t\t\t\tinstance: THIS,\r\n\t\t\t\tcontrol: 'pad',\r\n\t\t\t})\r\n\r\n\t\t\t// pad cross\r\n\t\t\tp.cross.style.position = 'absolute';\r\n\t\t\tp.cross.style.left =\r\n\t\t\tp.cross.style.top =\r\n\t\t\t\t'0';\r\n\t\t\tp.cross.style.width =\r\n\t\t\tp.cross.style.height =\r\n\t\t\t\tcrossOuterSize + 'px';\r\n\r\n\t\t\t// pad cross border Y and X\r\n\t\t\tp.crossBY.style.position =\r\n\t\t\tp.crossBX.style.position =\r\n\t\t\t\t'absolute';\r\n\t\t\tp.crossBY.style.background =\r\n\t\t\tp.crossBX.style.background =\r\n\t\t\t\tTHIS.pointerBorderColor;\r\n\t\t\tp.crossBY.style.width =\r\n\t\t\tp.crossBX.style.height =\r\n\t\t\t\t(2 * THIS.pointerBorderWidth + THIS.pointerThickness) + 'px';\r\n\t\t\tp.crossBY.style.height =\r\n\t\t\tp.crossBX.style.width =\r\n\t\t\t\tcrossOuterSize + 'px';\r\n\t\t\tp.crossBY.style.left =\r\n\t\t\tp.crossBX.style.top =\r\n\t\t\t\t(Math.floor(crossOuterSize / 2) - Math.floor(THIS.pointerThickness / 2) - THIS.pointerBorderWidth) + 'px';\r\n\t\t\tp.crossBY.style.top =\r\n\t\t\tp.crossBX.style.left =\r\n\t\t\t\t'0';\r\n\r\n\t\t\t// pad cross line Y and X\r\n\t\t\tp.crossLY.style.position =\r\n\t\t\tp.crossLX.style.position =\r\n\t\t\t\t'absolute';\r\n\t\t\tp.crossLY.style.background =\r\n\t\t\tp.crossLX.style.background =\r\n\t\t\t\tTHIS.pointerColor;\r\n\t\t\tp.crossLY.style.height =\r\n\t\t\tp.crossLX.style.width =\r\n\t\t\t\t(crossOuterSize - 2 * THIS.pointerBorderWidth) + 'px';\r\n\t\t\tp.crossLY.style.width =\r\n\t\t\tp.crossLX.style.height =\r\n\t\t\t\tTHIS.pointerThickness + 'px';\r\n\t\t\tp.crossLY.style.left =\r\n\t\t\tp.crossLX.style.top =\r\n\t\t\t\t(Math.floor(crossOuterSize / 2) - Math.floor(THIS.pointerThickness / 2)) + 'px';\r\n\t\t\tp.crossLY.style.top =\r\n\t\t\tp.crossLX.style.left =\r\n\t\t\t\tTHIS.pointerBorderWidth + 'px';\r\n\r\n\r\n\t\t\t// slider\r\n\t\t\tp.sld.style.overflow = 'hidden';\r\n\t\t\tp.sld.style.width = THIS.sliderSize + 'px';\r\n\t\t\tp.sld.style.height = THIS.height + 'px';\r\n\r\n\t\t\t// slider gradient\r\n\t\t\tp.sldGrad.draw(THIS.sliderSize, THIS.height, '#000', '#000');\r\n\r\n\t\t\t// slider border\r\n\t\t\tp.sldB.style.display = displaySlider ? 'block' : 'none';\r\n\t\t\tp.sldB.style.position = 'absolute';\r\n\t\t\tp.sldB.style.left = (THIS.padding + THIS.width + 2 * THIS.controlBorderWidth + 2 * controlPadding) + 'px';\r\n\t\t\tp.sldB.style.top = THIS.padding + 'px';\r\n\t\t\tp.sldB.style.border = THIS.controlBorderWidth + 'px solid';\r\n\t\t\tp.sldB.style.borderColor = THIS.controlBorderColor;\r\n\r\n\t\t\t// slider mouse area\r\n\t\t\tp.sldM.style.display = displaySlider ? 'block' : 'none';\r\n\t\t\tp.sldM.style.position = 'absolute';\r\n\t\t\tp.sldM.style.left = (THIS.padding + THIS.width + 2 * THIS.controlBorderWidth + controlPadding) + 'px';\r\n\t\t\tp.sldM.style.top = 0 + 'px';\r\n\t\t\tp.sldM.style.width = (\r\n\t\t\t\t\t(THIS.sliderSize + 2 * controlPadding + 2 * THIS.controlBorderWidth) +\r\n\t\t\t\t\t(displayAlphaSlider ? 0 : Math.max(0, THIS.padding - controlPadding)) // remaining padding to the right edge\r\n\t\t\t\t) + 'px';\r\n\t\t\tp.sldM.style.height = (2 * THIS.controlBorderWidth + 2 * THIS.padding + THIS.height) + 'px';\r\n\t\t\tp.sldM.style.cursor = 'default';\r\n\t\t\tjsc.setData(p.sldM, {\r\n\t\t\t\tinstance: THIS,\r\n\t\t\t\tcontrol: 'sld',\r\n\t\t\t});\r\n\r\n\t\t\t// slider pointer inner and outer border\r\n\t\t\tp.sldPtrIB.style.border =\r\n\t\t\tp.sldPtrOB.style.border =\r\n\t\t\t\tTHIS.pointerBorderWidth + 'px solid ' + THIS.pointerBorderColor;\r\n\r\n\t\t\t// slider pointer outer border\r\n\t\t\tp.sldPtrOB.style.position = 'absolute';\r\n\t\t\tp.sldPtrOB.style.left = -(2 * THIS.pointerBorderWidth + THIS.pointerThickness) + 'px';\r\n\t\t\tp.sldPtrOB.style.top = '0';\r\n\r\n\t\t\t// slider pointer middle border\r\n\t\t\tp.sldPtrMB.style.border = THIS.pointerThickness + 'px solid ' + THIS.pointerColor;\r\n\r\n\t\t\t// slider pointer spacer\r\n\t\t\tp.sldPtrS.style.width = THIS.sliderSize + 'px';\r\n\t\t\tp.sldPtrS.style.height = jsc.pub.sliderInnerSpace + 'px';\r\n\r\n\r\n\t\t\t// alpha slider\r\n\t\t\tp.asld.style.overflow = 'hidden';\r\n\t\t\tp.asld.style.width = THIS.sliderSize + 'px';\r\n\t\t\tp.asld.style.height = THIS.height + 'px';\r\n\r\n\t\t\t// alpha slider gradient\r\n\t\t\tp.asldGrad.draw(THIS.sliderSize, THIS.height, '#000');\r\n\r\n\t\t\t// alpha slider border\r\n\t\t\tp.asldB.style.display = displayAlphaSlider ? 'block' : 'none';\r\n\t\t\tp.asldB.style.position = 'absolute';\r\n\t\t\tp.asldB.style.left = (\r\n\t\t\t\t\t(THIS.padding + THIS.width + 2 * THIS.controlBorderWidth + controlPadding) +\r\n\t\t\t\t\t(displaySlider ? (THIS.sliderSize + 3 * controlPadding + 2 * THIS.controlBorderWidth) : 0)\r\n\t\t\t\t) + 'px';\r\n\t\t\tp.asldB.style.top = THIS.padding + 'px';\r\n\t\t\tp.asldB.style.border = THIS.controlBorderWidth + 'px solid';\r\n\t\t\tp.asldB.style.borderColor = THIS.controlBorderColor;\r\n\r\n\t\t\t// alpha slider mouse area\r\n\t\t\tp.asldM.style.display = displayAlphaSlider ? 'block' : 'none';\r\n\t\t\tp.asldM.style.position = 'absolute';\r\n\t\t\tp.asldM.style.left = (\r\n\t\t\t\t\t(THIS.padding + THIS.width + 2 * THIS.controlBorderWidth + controlPadding) +\r\n\t\t\t\t\t(displaySlider ? (THIS.sliderSize + 2 * controlPadding + 2 * THIS.controlBorderWidth) : 0)\r\n\t\t\t\t) + 'px';\r\n\t\t\tp.asldM.style.top = 0 + 'px';\r\n\t\t\tp.asldM.style.width = (\r\n\t\t\t\t\t(THIS.sliderSize + 2 * controlPadding + 2 * THIS.controlBorderWidth) +\r\n\t\t\t\t\tMath.max(0, THIS.padding - controlPadding) // remaining padding to the right edge\r\n\t\t\t\t) + 'px';\r\n\t\t\tp.asldM.style.height = (2 * THIS.controlBorderWidth + 2 * THIS.padding + THIS.height) + 'px';\r\n\t\t\tp.asldM.style.cursor = 'default';\r\n\t\t\tjsc.setData(p.asldM, {\r\n\t\t\t\tinstance: THIS,\r\n\t\t\t\tcontrol: 'asld',\r\n\t\t\t})\r\n\r\n\t\t\t// alpha slider pointer inner and outer border\r\n\t\t\tp.asldPtrIB.style.border =\r\n\t\t\tp.asldPtrOB.style.border =\r\n\t\t\t\tTHIS.pointerBorderWidth + 'px solid ' + THIS.pointerBorderColor;\r\n\r\n\t\t\t// alpha slider pointer outer border\r\n\t\t\tp.asldPtrOB.style.position = 'absolute';\r\n\t\t\tp.asldPtrOB.style.left = -(2 * THIS.pointerBorderWidth + THIS.pointerThickness) + 'px';\r\n\t\t\tp.asldPtrOB.style.top = '0';\r\n\r\n\t\t\t// alpha slider pointer middle border\r\n\t\t\tp.asldPtrMB.style.border = THIS.pointerThickness + 'px solid ' + THIS.pointerColor;\r\n\r\n\t\t\t// alpha slider pointer spacer\r\n\t\t\tp.asldPtrS.style.width = THIS.sliderSize + 'px';\r\n\t\t\tp.asldPtrS.style.height = jsc.pub.sliderInnerSpace + 'px';\r\n\r\n\r\n\t\t\t// palette\r\n\t\t\tp.pal.className = 'jscolor-palette';\r\n\t\t\tp.pal.style.display = pickerDims.palette.rows ? 'block' : 'none';\r\n\t\t\tp.pal.style.position = 'absolute';\r\n\t\t\tp.pal.style.left = THIS.padding + 'px';\r\n\t\t\tp.pal.style.top = (2 * THIS.controlBorderWidth + 2 * THIS.padding + THIS.height) + 'px';\r\n\r\n\t\t\t// palette's color samples\r\n\r\n\t\t\tp.pal.innerHTML = '';\r\n\r\n\t\t\tvar chessboard = jsc.genColorPreviewCanvas('rgba(0,0,0,0)');\r\n\r\n\t\t\tvar si = 0; // color sample's index\r\n\t\t\tfor (var r = 0; r < pickerDims.palette.rows; r++) {\r\n\t\t\t\tfor (var c = 0; c < pickerDims.palette.cols && si < THIS._palette.length; c++, si++) {\r\n\t\t\t\t\tvar sampleColor = THIS._palette[si];\r\n\t\t\t\t\tvar sampleCssColor = jsc.rgbaColor.apply(null, sampleColor.rgba);\r\n\r\n\t\t\t\t\tvar sc = jsc.createEl('div'); // color sample's color\r\n\t\t\t\t\tsc.style.width = (pickerDims.palette.cellW - 2 * THIS.controlBorderWidth) + 'px';\r\n\t\t\t\t\tsc.style.height = (pickerDims.palette.cellH - 2 * THIS.controlBorderWidth) + 'px';\r\n\t\t\t\t\tsc.style.backgroundColor = sampleCssColor;\r\n\r\n\t\t\t\t\tvar sw = jsc.createEl('div'); // color sample's wrap\r\n\t\t\t\t\tsw.className = 'jscolor-palette-sample';\r\n\t\t\t\t\tsw.style.display = 'block';\r\n\t\t\t\t\tsw.style.position = 'absolute';\r\n\t\t\t\t\tsw.style.left = (\r\n\t\t\t\t\t\t\tpickerDims.palette.cols <= 1 ? 0 :\r\n\t\t\t\t\t\t\tMath.round(10 * (c * ((pickerDims.contentW - pickerDims.palette.cellW) / (pickerDims.palette.cols - 1)))) / 10\r\n\t\t\t\t\t\t) + 'px';\r\n\t\t\t\t\tsw.style.top = (r * (pickerDims.palette.cellH + THIS.paletteSpacing)) + 'px';\r\n\t\t\t\t\tsw.style.border = THIS.controlBorderWidth + 'px solid';\r\n\t\t\t\t\tsw.style.borderColor = THIS.controlBorderColor;\r\n\t\t\t\t\tsw.style.cursor = 'pointer';\r\n\t\t\t\t\tif (sampleColor.rgba[3] !== null && sampleColor.rgba[3] < 1.0) { // only create chessboard background if the sample has transparency\r\n\t\t\t\t\t\tsw.style.backgroundImage = 'url(\\'' + chessboard.canvas.toDataURL() + '\\')';\r\n\t\t\t\t\t\tsw.style.backgroundRepeat = 'repeat';\r\n\t\t\t\t\t\tsw.style.backgroundPosition = 'center center';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tjsc.setData(sw, {\r\n\t\t\t\t\t\tinstance: THIS,\r\n\t\t\t\t\t\tcontrol: 'palette-sample',\r\n\t\t\t\t\t\tcolor: sampleColor,\r\n\t\t\t\t\t})\r\n\t\t\t\t\tsw.addEventListener('click', jsc.onPaletteSampleClick, false);\r\n\t\t\t\t\tsw.appendChild(sc);\r\n\t\t\t\t\tp.pal.appendChild(sw);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\r\n\t\t\t// the Close button\r\n\t\t\tfunction setBtnBorder () {\r\n\t\t\t\tvar insetColors = THIS.controlBorderColor.split(/\\s+/);\r\n\t\t\t\tvar outsetColor = insetColors.length < 2 ? insetColors[0] : insetColors[1] + ' ' + insetColors[0] + ' ' + insetColors[0] + ' ' + insetColors[1];\r\n\t\t\t\tp.btn.style.borderColor = outsetColor;\r\n\t\t\t}\r\n\t\t\tvar btnPadding = 15; // px\r\n\t\t\tp.btn.className = 'jscolor-btn-close';\r\n\t\t\tp.btn.style.display = THIS.closeButton ? 'block' : 'none';\r\n\t\t\tp.btn.style.position = 'absolute';\r\n\t\t\tp.btn.style.left = THIS.padding + 'px';\r\n\t\t\tp.btn.style.bottom = THIS.padding + 'px';\r\n\t\t\tp.btn.style.padding = '0 ' + btnPadding + 'px';\r\n\t\t\tp.btn.style.maxWidth = (pickerDims.contentW - 2 * THIS.controlBorderWidth - 2 * btnPadding) + 'px';\r\n\t\t\tp.btn.style.overflow = 'hidden';\r\n\t\t\tp.btn.style.height = THIS.buttonHeight + 'px';\r\n\t\t\tp.btn.style.whiteSpace = 'nowrap';\r\n\t\t\tp.btn.style.border = THIS.controlBorderWidth + 'px solid';\r\n\t\t\tsetBtnBorder();\r\n\t\t\tp.btn.style.color = THIS.buttonColor;\r\n\t\t\tp.btn.style.font = '12px sans-serif';\r\n\t\t\tp.btn.style.textAlign = 'center';\r\n\t\t\tp.btn.style.cursor = 'pointer';\r\n\t\t\tp.btn.onmousedown = function () {\r\n\t\t\t\tTHIS.hide();\r\n\t\t\t};\r\n\t\t\tp.btnT.style.lineHeight = THIS.buttonHeight + 'px';\r\n\t\t\tp.btnT.innerHTML = '';\r\n\t\t\tp.btnT.appendChild(window.document.createTextNode(THIS.closeText));\r\n\r\n\t\t\t// reposition the pointers\r\n\t\t\tredrawPad();\r\n\t\t\tredrawSld();\r\n\t\t\tredrawASld();\r\n\r\n\t\t\t// If we are changing the owner without first closing the picker,\r\n\t\t\t// make sure to first deal with the old owner\r\n\t\t\tif (jsc.picker.owner && jsc.picker.owner !== THIS) {\r\n\t\t\t\tjsc.removeClass(jsc.picker.owner.targetElement, jsc.pub.activeClassName);\r\n\t\t\t}\r\n\r\n\t\t\t// Set a new picker owner\r\n\t\t\tjsc.picker.owner = THIS;\r\n\r\n\t\t\t// The redrawPosition() method needs picker.owner to be set, that's why we call it here,\r\n\t\t\t// after setting the owner\r\n\t\t\tif (THIS.container === window.document.body) {\r\n\t\t\t\tjsc.redrawPosition();\r\n\t\t\t} else {\r\n\t\t\t\tjsc._drawPosition(THIS, 0, 0, 'relative', false);\r\n\t\t\t}\r\n\r\n\t\t\tif (p.wrap.parentNode !== THIS.container) {\r\n\t\t\t\tTHIS.container.appendChild(p.wrap);\r\n\t\t\t}\r\n\r\n\t\t\tjsc.addClass(THIS.targetElement, jsc.pub.activeClassName);\r\n\t\t}\r\n\r\n\r\n\t\tfunction redrawPad () {\r\n\t\t\t// redraw the pad pointer\r\n\t\t\tvar yChannel = jsc.getPadYChannel(THIS);\r\n\t\t\tvar x = Math.round((THIS.channels.h / 360) * (THIS.width - 1));\r\n\t\t\tvar y = Math.round((1 - THIS.channels[yChannel] / 100) * (THIS.height - 1));\r\n\t\t\tvar crossOuterSize = (2 * THIS.pointerBorderWidth + THIS.pointerThickness + 2 * THIS.crossSize);\r\n\t\t\tvar ofs = -Math.floor(crossOuterSize / 2);\r\n\t\t\tjsc.picker.cross.style.left = (x + ofs) + 'px';\r\n\t\t\tjsc.picker.cross.style.top = (y + ofs) + 'px';\r\n\r\n\t\t\t// redraw the slider\r\n\t\t\tswitch (jsc.getSliderChannel(THIS)) {\r\n\t\t\tcase 's':\r\n\t\t\t\tvar rgb1 = jsc.HSV_RGB(THIS.channels.h, 100, THIS.channels.v);\r\n\t\t\t\tvar rgb2 = jsc.HSV_RGB(THIS.channels.h, 0, THIS.channels.v);\r\n\t\t\t\tvar color1 = 'rgb(' +\r\n\t\t\t\t\tMath.round(rgb1[0]) + ',' +\r\n\t\t\t\t\tMath.round(rgb1[1]) + ',' +\r\n\t\t\t\t\tMath.round(rgb1[2]) + ')';\r\n\t\t\t\tvar color2 = 'rgb(' +\r\n\t\t\t\t\tMath.round(rgb2[0]) + ',' +\r\n\t\t\t\t\tMath.round(rgb2[1]) + ',' +\r\n\t\t\t\t\tMath.round(rgb2[2]) + ')';\r\n\t\t\t\tjsc.picker.sldGrad.draw(THIS.sliderSize, THIS.height, color1, color2);\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'v':\r\n\t\t\t\tvar rgb = jsc.HSV_RGB(THIS.channels.h, THIS.channels.s, 100);\r\n\t\t\t\tvar color1 = 'rgb(' +\r\n\t\t\t\t\tMath.round(rgb[0]) + ',' +\r\n\t\t\t\t\tMath.round(rgb[1]) + ',' +\r\n\t\t\t\t\tMath.round(rgb[2]) + ')';\r\n\t\t\t\tvar color2 = '#000';\r\n\t\t\t\tjsc.picker.sldGrad.draw(THIS.sliderSize, THIS.height, color1, color2);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\t// redraw the alpha slider\r\n\t\t\tjsc.picker.asldGrad.draw(THIS.sliderSize, THIS.height, THIS.toHEXString());\r\n\t\t}\r\n\r\n\r\n\t\tfunction redrawSld () {\r\n\t\t\tvar sldChannel = jsc.getSliderChannel(THIS);\r\n\t\t\tif (sldChannel) {\r\n\t\t\t\t// redraw the slider pointer\r\n\t\t\t\tvar y = Math.round((1 - THIS.channels[sldChannel] / 100) * (THIS.height - 1));\r\n\t\t\t\tjsc.picker.sldPtrOB.style.top = (y - (2 * THIS.pointerBorderWidth + THIS.pointerThickness) - Math.floor(jsc.pub.sliderInnerSpace / 2)) + 'px';\r\n\t\t\t}\r\n\r\n\t\t\t// redraw the alpha slider\r\n\t\t\tjsc.picker.asldGrad.draw(THIS.sliderSize, THIS.height, THIS.toHEXString());\r\n\t\t}\r\n\r\n\r\n\t\tfunction redrawASld () {\r\n\t\t\tvar y = Math.round((1 - THIS.channels.a) * (THIS.height - 1));\r\n\t\t\tjsc.picker.asldPtrOB.style.top = (y - (2 * THIS.pointerBorderWidth + THIS.pointerThickness) - Math.floor(jsc.pub.sliderInnerSpace / 2)) + 'px';\r\n\t\t}\r\n\r\n\r\n\t\tfunction isPickerOwner () {\r\n\t\t\treturn jsc.picker && jsc.picker.owner === THIS;\r\n\t\t}\r\n\r\n\r\n\t\tfunction onValueKeyDown (ev) {\r\n\t\t\tif (jsc.eventKey(ev) === 'Enter') {\r\n\t\t\t\tif (THIS.valueElement) {\r\n\t\t\t\t\tTHIS.processValueInput(THIS.valueElement.value);\r\n\t\t\t\t}\r\n\t\t\t\tTHIS.tryHide();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tfunction onAlphaKeyDown (ev) {\r\n\t\t\tif (jsc.eventKey(ev) === 'Enter') {\r\n\t\t\t\tif (THIS.alphaElement) {\r\n\t\t\t\t\tTHIS.processAlphaInput(THIS.alphaElement.value);\r\n\t\t\t\t}\r\n\t\t\t\tTHIS.tryHide();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tfunction onValueChange (ev) {\r\n\t\t\tif (jsc.getData(ev, 'internal')) {\r\n\t\t\t\treturn; // skip if the event was internally triggered by jscolor\r\n\t\t\t}\r\n\r\n\t\t\tvar oldVal = THIS.valueElement.value;\r\n\r\n\t\t\tTHIS.processValueInput(THIS.valueElement.value); // this might change the value\r\n\r\n\t\t\tjsc.triggerCallback(THIS, 'onChange');\r\n\r\n\t\t\tif (THIS.valueElement.value !== oldVal) {\r\n\t\t\t\t// value was additionally changed -> let's trigger the change event again, even though it was natively dispatched\r\n\t\t\t\tjsc.triggerInputEvent(THIS.valueElement, 'change', true, true);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tfunction onAlphaChange (ev) {\r\n\t\t\tif (jsc.getData(ev, 'internal')) {\r\n\t\t\t\treturn; // skip if the event was internally triggered by jscolor\r\n\t\t\t}\r\n\r\n\t\t\tvar oldVal = THIS.alphaElement.value;\r\n\r\n\t\t\tTHIS.processAlphaInput(THIS.alphaElement.value); // this might change the value\r\n\r\n\t\t\tjsc.triggerCallback(THIS, 'onChange');\r\n\r\n\t\t\t// triggering valueElement's onChange (because changing alpha changes the entire color, e.g. with rgba format)\r\n\t\t\tjsc.triggerInputEvent(THIS.valueElement, 'change', true, true);\r\n\r\n\t\t\tif (THIS.alphaElement.value !== oldVal) {\r\n\t\t\t\t// value was additionally changed -> let's trigger the change event again, even though it was natively dispatched\r\n\t\t\t\tjsc.triggerInputEvent(THIS.alphaElement, 'change', true, true);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\tfunction onValueInput (ev) {\r\n\t\t\tif (jsc.getData(ev, 'internal')) {\r\n\t\t\t\treturn; // skip if the event was internally triggered by jscolor\r\n\t\t\t}\r\n\r\n\t\t\tif (THIS.valueElement) {\r\n\t\t\t\tTHIS.fromString(THIS.valueElement.value, jsc.flags.leaveValue);\r\n\t\t\t}\r\n\r\n\t\t\tjsc.triggerCallback(THIS, 'onInput');\r\n\r\n\t\t\t// triggering valueElement's onInput\r\n\t\t\t// (not needed, it was dispatched normally by the browser)\r\n\t\t}\r\n\r\n\r\n\t\tfunction onAlphaInput (ev) {\r\n\t\t\tif (jsc.getData(ev, 'internal')) {\r\n\t\t\t\treturn; // skip if the event was internally triggered by jscolor\r\n\t\t\t}\r\n\r\n\t\t\tif (THIS.alphaElement) {\r\n\t\t\t\tTHIS.fromHSVA(null, null, null, parseFloat(THIS.alphaElement.value), jsc.flags.leaveAlpha);\r\n\t\t\t}\r\n\r\n\t\t\tjsc.triggerCallback(THIS, 'onInput');\r\n\r\n\t\t\t// triggering valueElement's onInput (because changing alpha changes the entire color, e.g. with rgba format)\r\n\t\t\tjsc.triggerInputEvent(THIS.valueElement, 'input', true, true);\r\n\t\t}\r\n\r\n\r\n\t\t// let's process the DEPRECATED 'options' property (this will be later removed)\r\n\t\tif (jsc.pub.options) {\r\n\t\t\t// let's set custom default options, if specified\r\n\t\t\tfor (var opt in jsc.pub.options) {\r\n\t\t\t\tif (jsc.pub.options.hasOwnProperty(opt)) {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tsetOption(opt, jsc.pub.options[opt]);\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\tconsole.warn(e);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t// let's apply configuration presets\r\n\t\t//\r\n\t\tvar presetsArr = [];\r\n\r\n\t\tif (opts.preset) {\r\n\t\t\tif (typeof opts.preset === 'string') {\r\n\t\t\t\tpresetsArr = opts.preset.split(/\\s+/);\r\n\t\t\t} else if (Array.isArray(opts.preset)) {\r\n\t\t\t\tpresetsArr = opts.preset.slice(); // slice() to clone\r\n\t\t\t} else {\r\n\t\t\t\tconsole.warn('Unrecognized preset value');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// always use the 'default' preset. If it's not listed, append it to the end.\r\n\t\tif (presetsArr.indexOf('default') === -1) {\r\n\t\t\tpresetsArr.push('default');\r\n\t\t}\r\n\r\n\t\t// let's apply the presets in reverse order, so that should there be any overlapping options,\r\n\t\t// the formerly listed preset will override the latter\r\n\t\tfor (var i = presetsArr.length - 1; i >= 0; i -= 1) {\r\n\t\t\tvar pres = presetsArr[i];\r\n\t\t\tif (!pres) {\r\n\t\t\t\tcontinue; // preset is empty string\r\n\t\t\t}\r\n\t\t\tif (!jsc.pub.presets.hasOwnProperty(pres)) {\r\n\t\t\t\tconsole.warn('Unknown preset: %s', pres);\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tfor (var opt in jsc.pub.presets[pres]) {\r\n\t\t\t\tif (jsc.pub.presets[pres].hasOwnProperty(opt)) {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tsetOption(opt, jsc.pub.presets[pres][opt]);\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\tconsole.warn(e);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t// let's set specific options for this color picker\r\n\t\tvar nonProperties = [\r\n\t\t\t// these options won't be set as instance properties\r\n\t\t\t'preset',\r\n\t\t];\r\n\t\tfor (var opt in opts) {\r\n\t\t\tif (opts.hasOwnProperty(opt)) {\r\n\t\t\t\tif (nonProperties.indexOf(opt) === -1) {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tsetOption(opt, opts[opt]);\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\tconsole.warn(e);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\t\t//\r\n\t\t// Install the color picker on chosen element(s)\r\n\t\t//\r\n\r\n\r\n\t\t// Determine picker's container element\r\n\t\tif (this.container === undefined) {\r\n\t\t\tthis.container = window.document.body; // default container is BODY element\r\n\r\n\t\t} else { // explicitly set to custom element\r\n\t\t\tthis.container = jsc.node(this.container);\r\n\t\t}\r\n\r\n\t\tif (!this.container) {\r\n\t\t\tthrow new Error('Cannot instantiate color picker without a container element');\r\n\t\t}\r\n\r\n\r\n\t\t// Fetch the target element\r\n\t\tthis.targetElement = jsc.node(targetElement);\r\n\r\n\t\tif (!this.targetElement) {\r\n\t\t\t// temporarily customized error message to help with migrating from versions prior to 2.2\r\n\t\t\tif (typeof targetElement === 'string' && /^[a-zA-Z][\\w:.-]*$/.test(targetElement)) {\r\n\t\t\t\t// targetElement looks like valid ID\r\n\t\t\t\tvar possiblyId = targetElement;\r\n\t\t\t\tthrow new Error('If \\'' + possiblyId + '\\' is supposed to be an ID, please use \\'#' + possiblyId + '\\' or any valid CSS selector.');\r\n\t\t\t}\r\n\r\n\t\t\tthrow new Error('Cannot instantiate color picker without a target element');\r\n\t\t}\r\n\r\n\t\tif (this.targetElement.jscolor && this.targetElement.jscolor instanceof jsc.pub) {\r\n\t\t\tthrow new Error('Color picker already installed on this element');\r\n\t\t}\r\n\r\n\r\n\t\t// link this instance with the target element\r\n\t\tthis.targetElement.jscolor = this;\r\n\t\tjsc.addClass(this.targetElement, jsc.pub.className);\r\n\r\n\t\t// register this instance\r\n\t\tjsc.instances.push(this);\r\n\r\n\r\n\t\t// if target is BUTTON\r\n\t\tif (jsc.isButton(this.targetElement)) {\r\n\r\n\t\t\tif (this.targetElement.type.toLowerCase() !== 'button') {\r\n\t\t\t\t// on buttons, always force type to be 'button', e.g. in situations the target