var tl,products;!function(n){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=n();else if("function"==typeof define&&define.amd)define([],n);else{var t;"undefined"!=typeof window?t=window:"undefined"!=typeof global?t=global:"undefined"!=typeof self&&(t=self);t.Promise=n()}}(function(){return function n(t,i,r){function u(f,o){var h,c,s;if(!i[f]){if(!t[f]){if(h="function"==typeof _dereq_&&_dereq_,!o&&h)return h(f,!0);if(e)return e(f,!0);c=new Error("Cannot find module '"+f+"'");throw c.code="MODULE_NOT_FOUND",c;}s=i[f]={exports:{}};t[f][0].call(s.exports,function(n){var i=t[f][1][n];return u(i?i:n)},s,s.exports,n,t,i,r)}return i[f].exports}for(var e="function"==typeof _dereq_&&_dereq_,f=0;f<r.length;f++)u(r[f]);return u}({1:[function(n,t){"use strict";t.exports=function(n){function t(n){var t=new i(n),r=t.promise();return t.setHowMany(1),t.setUnwrap(),t.init(),r}var i=n._SomePromiseArray;n.any=function(n){return t(n)};n.prototype.any=function(){return t(this)}}},{}],2:[function(n,t){"use strict";function i(){this._isTickUsed=!1;this._lateQueue=new o(16);this._normalQueue=new o(16);this._haveDrainedQueues=!1;this._trampolineEnabled=!0;var n=this;this.drainQueues=function(){n._drainQueues()};this._schedule=c}function r(n,t,i){this._lateQueue.push(n,t,i);this._queueTick()}function u(n,t,i){this._normalQueue.push(n,t,i);this._queueTick()}function f(n){this._normalQueue._pushOne(n);this._queueTick()}var e;try{throw new Error;}catch(h){e=h}var c=n("./schedule"),o=n("./queue"),s=n("./util");i.prototype.enableTrampoline=function(){this._trampolineEnabled=!0};i.prototype.disableTrampolineIfNecessary=function(){s.hasDevTools&&(this._trampolineEnabled=!1)};i.prototype.haveItemsQueued=function(){return this._isTickUsed||this._haveDrainedQueues};i.prototype.fatalError=function(n,t){t?(process.stderr.write("Fatal "+(n instanceof Error?n.stack:n)+"\n"),process.exit(2)):this.throwLater(n)};i.prototype.throwLater=function(n,t){if(1===arguments.length&&(t=n,n=function(){throw t;}),"undefined"!=typeof setTimeout)setTimeout(function(){n(t)},0);else try{this._schedule(function(){n(t)})}catch(i){throw new Error("No async scheduler available\n\n    See http://goo.gl/MqrFmX\n");}};s.hasDevTools?(i.prototype.invokeLater=function(n,t,i){this._trampolineEnabled?r.call(this,n,t,i):this._schedule(function(){setTimeout(function(){n.call(t,i)},100)})},i.prototype.invoke=function(n,t,i){this._trampolineEnabled?u.call(this,n,t,i):this._schedule(function(){n.call(t,i)})},i.prototype.settlePromises=function(n){this._trampolineEnabled?f.call(this,n):this._schedule(function(){n._settlePromises()})}):(i.prototype.invokeLater=r,i.prototype.invoke=u,i.prototype.settlePromises=f);i.prototype.invokeFirst=function(n,t,i){this._normalQueue.unshift(n,t,i);this._queueTick()};i.prototype._drainQueue=function(n){for(var t,i,r;n.length()>0;)t=n.shift(),"function"==typeof t?(i=n.shift(),r=n.shift(),t.call(i,r)):t._settlePromises()};i.prototype._drainQueues=function(){this._drainQueue(this._normalQueue);this._reset();this._haveDrainedQueues=!0;this._drainQueue(this._lateQueue)};i.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))};i.prototype._reset=function(){this._isTickUsed=!1};t.exports=i;t.exports.firstLineError=e},{"./queue":26,"./schedule":29,"./util":36}],3:[function(n,t){"use strict";t.exports=function(n,t,i,r){var u=!1,f=function(n,t){this._reject(t)},e=function(n,t){t.promiseRejectionQueued=!0;t.bindingPromise._then(f,f,null,this,n)},o=function(n,t){0==(50397184&this._bitField)&&this._resolveCallback(t.target)},s=function(n,t){t.promiseRejectionQueued||this._reject(n)};n.prototype.bind=function(f){var c,h,l,a;return u||(u=!0,n.prototype._propagateFrom=r.propagateFromFunction(),n.prototype._boundValue=r.boundValueFunction()),c=i(f),h=new n(t),h._propagateFrom(this,1),l=this._target(),(h._setBoundTo(c),c instanceof n)?(a={promiseRejectionQueued:!1,promise:h,target:l,bindingPromise:c},l._then(t,e,void 0,h,a),c._then(o,s,void 0,h,a),h._setOnCancel(c)):h._resolveCallback(l),h};n.prototype._setBoundTo=function(n){void 0!==n?(this._bitField=2097152|this._bitField,this._boundTo=n):this._bitField=-2097153&this._bitField};n.prototype._isBound=function(){return 2097152==(2097152&this._bitField)};n.bind=function(t,i){return n.resolve(i).bind(t)}}},{}],4:[function(n,t){"use strict";function u(){try{Promise===i&&(Promise=r)}catch(n){}return i}var r,i;"undefined"!=typeof Promise&&(r=Promise);i=n("./promise")();i.noConflict=u;t.exports=i},{"./promise":22}],5:[function(n,t){"use strict";var i=Object.create,r,u;i&&(r=i(null),u=i(null),r[" size"]=u[" size"]=0);t.exports=function(t){function u(n,r){var u,f;if(null!=n&&(u=n[r]),"function"!=typeof u){f="Object "+i.classString(n)+" has no method '"+i.toString(r)+"'";throw new t.TypeError(f);}return u}function f(n){var t=this.pop(),i=u(n,t);return i.apply(n,this)}function r(n){return n[this]}function e(n){var t=+this;return 0>t&&(t=Math.max(0,t+n.length)),n[t]}var o,i=n("./util"),s=i.canEvaluate;i.isIdentifier;t.prototype.call=function(n){var t=[].slice.call(arguments,1);return t.push(n),this._then(f,void 0,void 0,t,void 0)};t.prototype.get=function(n){var t,u="number"==typeof n,i;return u?t=e:s?(i=o(n),t=null!==i?i:r):t=r,this._then(t,void 0,void 0,n,void 0)}}},{"./util":36}],6:[function(n,t){"use strict";t.exports=function(t,i,r,u){var f=n("./util"),o=f.tryCatch,s=f.errorObj,e=t._async;t.prototype["break"]=t.prototype.cancel=function(){var n,t,i;if(!u.cancellation())return this._warn("cancellation is disabled");for(n=this,t=n;n.isCancellable();){if(!n._cancelBy(t)){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}if(i=n._cancellationParent,null==i||!i.isCancellable()){n._isFollowing()?n._followee().cancel():n._cancelBranched();break}n._isFollowing()&&n._followee().cancel();t=n;n=i}};t.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--};t.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0};t.prototype._cancelBy=function(n){return n===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),this._enoughBranchesHaveCancelled()?(this._invokeOnCancel(),!0):!1)};t.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()};t.prototype._cancel=function(){this.isCancellable()&&(this._setCancelled(),e.invoke(this._cancelPromises,this,void 0))};t.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()};t.prototype._unsetOnCancel=function(){this._onCancelField=void 0};t.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()};t.prototype._doInvokeOnCancel=function(n,t){var i,r;if(f.isArray(n))for(i=0;i<n.length;++i)this._doInvokeOnCancel(n[i],t);else void 0!==n&&("function"==typeof n?t||(r=o(n).call(this._boundValue()),r===s&&(this._attachExtraTrace(r.e),e.throwLater(r.e))):n._resultCancelled(this))};t.prototype._invokeOnCancel=function(){var n=this._onCancel();this._unsetOnCancel();e.invoke(this._doInvokeOnCancel,this,n)};t.prototype._invokeInternalOnCancel=function(){this.isCancellable()&&(this._doInvokeOnCancel(this._onCancel(),!0),this._unsetOnCancel())};t.prototype._resultCancelled=function(){this.cancel()}}},{"./util":36}],7:[function(n,t){"use strict";t.exports=function(t){function u(n,u,o){return function(s){var c=o._boundValue(),l,h,a,y,v,p;n:for(l=0;l<n.length;++l)if(h=n[l],h===Error||null!=h&&h.prototype instanceof Error){if(s instanceof h)return i(u).call(c,s)}else if("function"==typeof h){if(a=i(h).call(c,s),a===e)return a;if(a)return i(u).call(c,s)}else if(r.isObject(s)){for(y=f(h),v=0;v<y.length;++v)if(p=y[v],h[p]!=s[p])continue n;return i(u).call(c,s)}return t}}var r=n("./util"),f=n("./es5").keys,i=r.tryCatch,e=r.errorObj;return u}},{"./es5":13,"./util":36}],8:[function(n,t){"use strict";t.exports=function(n){function t(){this._trace=new t.CapturedTrace(u())}function f(){if(r)return new t}function u(){var n=i.length-1;if(n>=0)return i[n]}var r=!1,i=[];return n.prototype._promiseCreated=function(){},n.prototype._pushContext=function(){},n.prototype._popContext=function(){return null},n._peekContext=n.prototype._peekContext=function(){},t.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,i.push(this._trace))},t.prototype._popContext=function(){if(void 0!==this._trace){var n=i.pop(),t=n._promiseCreated;return n._promiseCreated=null,t}return null},t.CapturedTrace=null,t.create=f,t.deactivateLongStackTraces=function(){},t.activateLongStackTraces=function(){var i=n.prototype._pushContext,f=n.prototype._popContext,e=n._peekContext,o=n.prototype._peekContext,s=n.prototype._promiseCreated;t.deactivateLongStackTraces=function(){n.prototype._pushContext=i;n.prototype._popContext=f;n._peekContext=e;n.prototype._peekContext=o;n.prototype._promiseCreated=s;r=!1};r=!0;n.prototype._pushContext=t.prototype._pushContext;n.prototype._popContext=t.prototype._popContext;n._peekContext=n.prototype._peekContext=u;n.prototype._promiseCreated=function(){var n=this._peekContext();n&&null==n._promiseCreated&&(n._promiseCreated=this)}},t}},{}],9:[function(n,t){"use strict";t.exports=function(t,i){function o(n,t){return{promise:t}}function g(){return!1}function pt(n,t,i){var u=this;try{n(t,i,function(n){if("function"!=typeof n)throw new TypeError("onCancel must be a function, got: "+r.toString(n));u._attachCancellationCallback(n)})}catch(f){return f}}function wt(n){if(!this.isCancellable())return this;var t=this._onCancel();void 0!==t?r.isArray(t)?t.push(n):this._setOnCancel([t,n]):this._setOnCancel(n)}function bt(){return this._onCancelField}function kt(n){this._onCancelField=n}function dt(){this._cancellationParent=void 0;this._onCancelField=void 0}function nt(n,t){if(0!=(1&t)){this._cancellationParent=n;var i=n._branchesRemainingToCancel;void 0===i&&(i=0);n._branchesRemainingToCancel=i+1}0!=(2&t)&&n._isBound()&&this._setBoundTo(n._boundTo)}function gt(n,t){0!=(2&t)&&n._isBound()&&this._setBoundTo(n._boundTo)}function ni(){var n=this._boundTo;return void 0!==n&&n instanceof t?n.isFulfilled()?n.value():void 0:n}function ti(){this._trace=new e(this._peekContext())}function ii(n,t){var i,u;ai(n)&&(i=this._trace,(void 0!==i&&t&&(i=i._parent),void 0!==i)?i.attachExtraTrace(n):n.__stackCleaned__||(u=v(n),r.notEnumerableProp(n,"stack",u.message+"\n"+u.stack.join("\n")),r.notEnumerableProp(n,"__stackCleaned__",!0)))}function ri(n,t,i,r,u){var f,e;if(void 0===n&&null!==t&&w){if(void 0!==u&&u._returnedNonUndefined())return;if(f=r._bitField,0==(65535&f))return;i&&(i+=" ");e="a promise was created in a "+i+"handler but was not returned from it";r._warn(e,!0,t)}}function ui(n,t){var i=n+" is deprecated and will be removed in a future version.";return t&&(i+=" Use "+t+" instead."),a(i)}function a(n,i,r){var o,f,e;u.warnings&&(f=new li(n),i?r._attachExtraTrace(f):u.longStackTraces&&(o=t._peekContext())?o.attachExtraTrace(f):(e=v(f),f.stack=e.message+"\n"+e.stack.join("\n")),l("warning",f)||it(f,"",!0))}function fi(n,t){for(var i=0;i<t.length-1;++i)t[i].push("From previous event:"),t[i]=t[i].join("\n");return i<t.length&&(t[i]=t[i].join("\n")),n+"\n"+t.join("\n")}function ei(n){for(var t=0;t<n.length;++t)(0===n[t].length||t+1<n.length&&n[t][0]===n[t+1][0])&&(n.splice(t,1),t--)}function oi(n){for(var t,o,i=n[0],r=1;r<n.length;++r){for(var u=n[r],f=i.length-1,s=i[f],e=-1,t=u.length-1;t>=0;--t)if(u[t]===s){e=t;break}for(t=e;t>=0;--t){if(o=u[t],i[f]!==o)break;i.pop();f--}i=u}}function tt(n){for(var r=[],i=0;i<n.length;++i){var t=n[i],u="    (No stack trace)"===t||h.test(t),f=u&&k(t);u&&!f&&(ht&&" "!==t.charAt(0)&&(t="    "+t),r.push(t))}return r}function si(n){for(var r,t=n.stack.replace(/\s+$/g,"").split("\n"),i=0;i<t.length;++i)if(r=t[i],"    (No stack trace)"===r||h.test(r))break;return i>0&&(t=t.slice(i)),t}function v(n){var t=n.stack,i=n.toString();return t="string"==typeof t&&t.length>0?si(n):["    (No stack trace)"],{message:i,stack:tt(t)}}function it(n,t,i){var u,f;"undefined"!=typeof console&&(r.isObject(n)?(f=n.stack,u=t+c(f,n)):u=t+String(n),"function"==typeof s?s(u,i):("function"==typeof console.log||"object"==typeof console.log)&&console.log(u))}function rt(n,t,i,r){var u=!1;try{"function"==typeof t&&(u=!0,"rejectionHandled"===n?t(r):t(i,r))}catch(e){f.throwLater(e)}"unhandledRejection"===n?l(n,i,r)||u||it(i,"Unhandled rejection "):l(n,r)}function ut(n){var t,i,u;if("function"==typeof n)t="[function "+(n.name||"anonymous")+"]";else{if(t=n&&"function"==typeof n.toString?n.toString():r.toString(n),i=/\[object [a-zA-Z0-9$_]+\]/,i.test(t))try{u=JSON.stringify(n);t=u}catch(f){}0===t.length&&(t="(empty array)")}return"(<"+hi(t)+">, no stack trace)"}function hi(n){var t=41;return n.length<t?n:n.substr(0,t-3)+"..."}function y(){return"function"==typeof d}function p(n){var t=n.match(pi);if(t)return{fileName:t[1],line:parseInt(t[2],10)}}function ci(n,t){var r,i;if(y()){for(var u,o,s=n.stack.split("\n"),h=t.stack.split("\n"),f=-1,e=-1,r=0;r<s.length;++r)if(i=p(s[r]),i){u=i.fileName;f=i.line;break}for(r=0;r<h.length;++r)if(i=p(h[r]),i){o=i.fileName;e=i.line;break}0>f||0>e||!u||!o||u!==o||f>=e||(k=function(n){if(st.test(n))return!0;var t=p(n);return t&&t.fileName===u&&f<=t.line&&t.line<=e?!0:!1})}}function e(n){this._parent=n;this._promisesCreated=0;var t=this._length=1+(void 0===n?0:n._length);d(this,e);t>32&&this.uncycle()}var ft,et,s,ot=t._getDomain,f=t._async,li=n("./errors").Warning,r=n("./util"),ai=r.canAttachTrace,st=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,h=null,c=null,ht=!1,ct=!(0==r.env("BLUEBIRD_DEBUG")||!r.env("BLUEBIRD_DEBUG")&&"development"!==r.env("NODE_ENV")),lt=!(0==r.env("BLUEBIRD_WARNINGS")||!ct&&!r.env("BLUEBIRD_WARNINGS")),vi=!(0==r.env("BLUEBIRD_LONG_STACK_TRACES")||!ct&&!r.env("BLUEBIRD_LONG_STACK_TRACES")),w=0!=r.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&(lt||!!r.env("BLUEBIRD_W_FORGOTTEN_RETURN")),b,d,u;t.prototype.suppressUnhandledRejections=function(){var n=this._target();n._bitField=-1048577&n._bitField|524288};t.prototype._ensurePossibleRejectionHandled=function(){0==(524288&this._bitField)&&(this._setRejectionIsUnhandled(),f.invokeLater(this._notifyUnhandledRejection,this,void 0))};t.prototype._notifyUnhandledRejectionIsHandled=function(){rt("rejectionHandled",ft,void 0,this)};t.prototype._setReturnedNonUndefined=function(){this._bitField=268435456|this._bitField};t.prototype._returnedNonUndefined=function(){return 0!=(268435456&this._bitField)};t.prototype._notifyUnhandledRejection=function(){if(this._isRejectionUnhandled()){var n=this._settledValue();this._setUnhandledRejectionIsNotified();rt("unhandledRejection",et,n,this)}};t.prototype._setUnhandledRejectionIsNotified=function(){this._bitField=262144|this._bitField};t.prototype._unsetUnhandledRejectionIsNotified=function(){this._bitField=-262145&this._bitField};t.prototype._isUnhandledRejectionNotified=function(){return(262144&this._bitField)>0};t.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField};t.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField;this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())};t.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0};t.prototype._warn=function(n,t,i){return a(n,t,i||this)};t.onPossiblyUnhandledRejection=function(n){var t=ot();et="function"==typeof n?null===t?n:t.bind(n):void 0};t.onUnhandledRejectionHandled=function(n){var t=ot();ft="function"==typeof n?null===t?n:t.bind(n):void 0};b=function(){};t.longStackTraces=function(){if(f.haveItemsQueued()&&!u.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n    See http://goo.gl/MqrFmX\n");if(!u.longStackTraces&&y()){var n=t.prototype._captureStackTrace,r=t.prototype._attachExtraTrace;u.longStackTraces=!0;b=function(){if(f.haveItemsQueued()&&!u.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n    See http://goo.gl/MqrFmX\n");t.prototype._captureStackTrace=n;t.prototype._attachExtraTrace=r;i.deactivateLongStackTraces();f.enableTrampoline();u.longStackTraces=!1};t.prototype._captureStackTrace=ti;t.prototype._attachExtraTrace=ii;i.activateLongStackTraces();f.disableTrampolineIfNecessary()}};t.hasLongStackTraces=function(){return u.longStackTraces&&y()};var at=function(){try{var n=document.createEvent("CustomEvent");return n.initCustomEvent("testingtheevent",!1,!0,{}),r.global.dispatchEvent(n),function(n,t){var i=document.createEvent("CustomEvent");return i.initCustomEvent(n.toLowerCase(),!1,!0,t),!r.global.dispatchEvent(i)}}catch(t){}return function(){return!1}}(),vt=function(){return r.isNode?function(){return process.emit.apply(process,arguments)}:r.global?function(n){var i="on"+n.toLowerCase(),t=r.global[i];return t?(t.apply(r.global,[].slice.call(arguments,1)),!0):!1}:function(){return!1}}(),yi={promiseCreated:o,promiseFulfilled:o,promiseRejected:o,promiseResolved:o,promiseCancelled:o,promiseChained:function(n,t,i){return{promise:t,child:i}},warning:function(n,t){return{warning:t}},unhandledRejection:function(n,t,i){return{reason:t,promise:i}},rejectionHandled:o},l=function(n){var i=!1,t;try{i=vt.apply(null,arguments)}catch(r){f.throwLater(r);i=!0}t=!1;try{t=at(n,yi[n].apply(null,arguments))}catch(r){f.throwLater(r);t=!0}return t||i};t.config=function(n){if(n=Object(n),"longStackTraces"in n&&(n.longStackTraces?t.longStackTraces():!n.longStackTraces&&t.hasLongStackTraces()&&b()),"warnings"in n){var i=n.warnings;u.warnings=!!i;w=u.warnings;r.isObject(i)&&"wForgottenReturn"in i&&(w=!!i.wForgottenReturn)}if("cancellation"in n&&n.cancellation&&!u.cancellation){if(f.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");t.prototype._clearCancellationData=dt;t.prototype._propagateFrom=nt;t.prototype._onCancel=bt;t.prototype._setOnCancel=kt;t.prototype._attachCancellationCallback=wt;t.prototype._execute=pt;yt=nt;u.cancellation=!0}"monitoring"in n&&(n.monitoring&&!u.monitoring?(u.monitoring=!0,t.prototype._fireEvent=l):!n.monitoring&&u.monitoring&&(u.monitoring=!1,t.prototype._fireEvent=g))};t.prototype._fireEvent=g;t.prototype._execute=function(n,t,i){try{n(t,i)}catch(r){return r}};t.prototype._onCancel=function(){};t.prototype._setOnCancel=function(){};t.prototype._attachCancellationCallback=function(){};t.prototype._captureStackTrace=function(){};t.prototype._attachExtraTrace=function(){};t.prototype._clearCancellationData=function(){};t.prototype._propagateFrom=function(){};var yt=gt,k=function(){return!1},pi=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;return r.inherits(e,Error),i.CapturedTrace=e,e.prototype.uncycle=function(){var u=this._length,s,n,c,i,r,h,e;if(!(2>u)){for(var t=[],o={},n=0,f=this;void 0!==f;++n)t.push(f),f=f._parent;for(u=this._length=n,n=u-1;n>=0;--n)s=t[n].stack,void 0===o[s]&&(o[s]=n);for(n=0;u>n;++n)if(c=t[n].stack,i=o[c],void 0!==i&&i!==n){for(i>0&&(t[i-1]._parent=void 0,t[i-1]._length=1),t[n]._parent=void 0,t[n]._length=1,r=n>0?t[n-1]:this,u-1>i?(r._parent=t[i+1],r._parent.uncycle(),r._length=r._parent._length+1):(r._parent=void 0,r._length=1),h=r._length+1,e=n-2;e>=0;--e)t[e]._length=h,h++;return}}},e.prototype.attachExtraTrace=function(n){if(!n.__stackCleaned__){this.uncycle();for(var u=v(n),f=u.message,t=[u.stack],i=this;void 0!==i;)t.push(tt(i.stack.split("\n"))),i=i._parent;oi(t);ei(t);r.notEnumerableProp(n,"stack",fi(f,t));r.notEnumerableProp(n,"__stackCleaned__",!0)}},d=function(){var i=/^\s*at\s*/,t=function(n,t){return"string"==typeof n?n:void 0!==t.name&&void 0!==t.message?t.toString():ut(t)},r,n,u;if("number"==typeof Error.stackTraceLimit&&"function"==typeof Error.captureStackTrace)return Error.stackTraceLimit+=6,h=i,c=t,r=Error.captureStackTrace,k=function(n){return st.test(n)},function(n,t){Error.stackTraceLimit+=6;r(n,t);Error.stackTraceLimit-=6};if(n=new Error,"string"==typeof n.stack&&n.stack.split("\n")[0].indexOf("stackDetection@")>=0)return h=/@/,c=t,ht=!0,function(n){n.stack=(new Error).stack};try{throw new Error;}catch(f){u="stack"in f}return"stack"in n||!u||"number"!=typeof Error.stackTraceLimit?(c=function(n,t){return"string"==typeof n?n:"object"!=typeof t&&"function"!=typeof t||void 0===t.name||void 0===t.message?ut(t):t.toString()},null):(h=i,c=t,function(n){Error.stackTraceLimit+=6;try{throw new Error;}catch(t){n.stack=t.stack}Error.stackTraceLimit-=6})}([]),"undefined"!=typeof console&&"undefined"!=typeof console.warn&&(s=function(n){console.warn(n)},r.isNode&&process.stderr.isTTY?s=function(n,t){var i=t?"\x1b[33m":"\x1b[31m";console.warn(i+n+"\x1b[0m\n")}:r.isNode||"string"!=typeof(new Error).stack||(s=function(n,t){console.warn("%c"+n,t?"color: darkorange":"color: red")})),u={warnings:lt,longStackTraces:!1,cancellation:!1,monitoring:!1},vi&&t.longStackTraces(),{longStackTraces:function(){return u.longStackTraces},warnings:function(){return u.warnings},cancellation:function(){return u.cancellation},monitoring:function(){return u.monitoring},propagateFromFunction:function(){return yt},boundValueFunction:function(){return ni},checkForgottenReturns:ri,setBounds:ci,warn:a,deprecated:ui,CapturedTrace:e,fireDomEvent:at,fireGlobalEvent:vt}}},{"./errors":12,"./util":36}],10:[function(n,t){"use strict";t.exports=function(n){function t(){return this.value}function i(){throw this.reason;}n.prototype["return"]=n.prototype.thenReturn=function(i){return i instanceof n&&i.suppressUnhandledRejections(),this._then(t,void 0,void 0,{value:i},void 0)};n.prototype["throw"]=n.prototype.thenThrow=function(n){return this._then(i,void 0,void 0,{reason:n},void 0)};n.prototype.catchThrow=function(n){if(arguments.length<=1)return this._then(void 0,i,void 0,{reason:n},void 0);var t=arguments[1],r=function(){throw t;};return this.caught(n,r)};n.prototype.catchReturn=function(i){var r,u;return arguments.length<=1?(i instanceof n&&i.suppressUnhandledRejections(),this._then(void 0,t,void 0,{value:i},void 0)):(r=arguments[1],r instanceof n&&r.suppressUnhandledRejections(),u=function(){return r},this.caught(i,u))}}},{}],11:[function(n,t){"use strict";t.exports=function(n,t){function i(){return f(this)}function r(n,i){return u(n,i,t,t)}var u=n.reduce,f=n.all;n.prototype.each=function(n){return this.mapSeries(n)._then(i,void 0,void 0,this,void 0)};n.prototype.mapSeries=function(n){return u(this,n,t,t)};n.each=function(n,t){return r(n,t)._then(i,void 0,void 0,n,void 0)};n.mapSeries=r}},{}],12:[function(n,t){"use strict";function r(n,t){function i(r){return this instanceof i?(u(this,"message","string"==typeof r?r:t),u(this,"name",n),void(Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this))):new i(r)}return y(i,Error),i}function e(n){return this instanceof e?(u(this,"name","OperationalError"),u(this,"message",n),this.cause=n,this.isOperational=!0,void(n instanceof Error?(u(this,"message",n.message),u(this,"stack",n.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor))):new e(n)}var c,l,a=n("./es5"),p=a.freeze,v=n("./util"),y=v.inherits,u=v.notEnumerableProp,w=r("Warning","warning"),b=r("CancellationError","cancellation error"),k=r("TimeoutError","timeout error"),o=r("AggregateError","aggregate error"),s,f,h,i;try{c=TypeError;l=RangeError}catch(d){c=r("TypeError","type error");l=r("RangeError","range error")}for(s="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),f=0;f<s.length;++f)"function"==typeof Array.prototype[s[f]]&&(o.prototype[s[f]]=Array.prototype[s[f]]);a.defineProperty(o.prototype,"length",{value:0,configurable:!1,writable:!0,enumerable:!0});o.prototype.isOperational=!0;h=0;o.prototype.toString=function(){var r=Array(4*h+1).join(" "),f="\n"+r+"AggregateError of:\n",n;for(h++,r=Array(4*h+1).join(" "),n=0;n<this.length;++n){for(var u=this[n]===this?"[Circular AggregateError]":this[n]+"",t=u.split("\n"),i=0;i<t.length;++i)t[i]=r+t[i];u=t.join("\n");f+=u+"\n"}return h--,f};y(e,Error);i=Error.__BluebirdErrorTypes__;i||(i=p({CancellationError:b,TimeoutError:k,OperationalError:e,RejectionError:e,AggregateError:o}),a.defineProperty(Error,"__BluebirdErrorTypes__",{value:i,writable:!1,enumerable:!1,configurable:!1}));t.exports={Error:Error,TypeError:c,RangeError:l,CancellationError:i.CancellationError,OperationalError:i.OperationalError,TimeoutError:i.TimeoutError,AggregateError:i.AggregateError,Warning:w}},{"./es5":13,"./util":36}],13:[function(n,t){var i=function(){"use strict";return void 0===this}();if(i)t.exports={freeze:Object.freeze,defineProperty:Object.defineProperty,getDescriptor:Object.getOwnPropertyDescriptor,keys:Object.keys,names:Object.getOwnPropertyNames,getPrototypeOf:Object.getPrototypeOf,isArray:Array.isArray,isES5:i,propertyIsWritable:function(n,t){var i=Object.getOwnPropertyDescriptor(n,t);return!(i&&!i.writable&&!i.set)}};else{var u={}.hasOwnProperty,f={}.toString,e={}.constructor.prototype,r=function(n){var t=[];for(var i in n)u.call(n,i)&&t.push(i);return t},o=function(n,t){return{value:n[t]}},s=function(n,t,i){return n[t]=i.value,n},h=function(n){return n},c=function(n){try{return Object(n).constructor.prototype}catch(t){return e}},l=function(n){try{return"[object Array]"===f.call(n)}catch(t){return!1}};t.exports={isArray:l,keys:r,names:r,defineProperty:s,getDescriptor:o,freeze:h,getPrototypeOf:c,isES5:i,propertyIsWritable:function(){return!0}}}},{}],14:[function(n,t){"use strict";t.exports=function(n,t){var i=n.map;n.prototype.filter=function(n,r){return i(this,n,r,t)};n.filter=function(n,r,u){return i(n,r,u,t)}}},{}],15:[function(n,t){"use strict";t.exports=function(t,i){function e(n,t,i){this.promise=n;this.type=t;this.handler=i;this.called=!1;this.cancelPromise=null}function o(n){this.finallyHandler=n}function u(n,t){return null!=n.cancelPromise?(arguments.length>1?n.cancelPromise._reject(t):n.cancelPromise._cancel(),n.cancelPromise=null,!0):!1}function s(){return f.call(this,this.promise._target()._settledValue())}function h(n){if(!u(this,n))return(r.e=n,r)}function f(n){var f=this.promise,v=this.handler,c,e,a;if(!this.called&&(this.called=!0,c=this.isFinallyHandler()?v.call(f._boundValue()):v.call(f._boundValue(),n),void 0!==c&&(f._setReturnedNonUndefined(),e=i(c,f),e instanceof t))){if(null!=this.cancelPromise){if(e.isCancelled())return a=new l("late cancellation observer"),f._attachExtraTrace(a),r.e=a,r;e.isPending()&&e._attachCancellationCallback(new o(this))}return e._then(s,h,void 0,this,void 0)}return f.isRejected()?(u(this),r.e=n,r):(u(this),n)}var c=n("./util"),l=t.CancellationError,r=c.errorObj;return e.prototype.isFinallyHandler=function(){return 0===this.type},o.prototype._resultCancelled=function(){u(this.finallyHandler)},t.prototype._passThrough=function(n,t,i,r){return"function"!=typeof n?this.then():this._then(i,r,void 0,new e(this,t,n),void 0)},t.prototype.lastly=t.prototype["finally"]=function(n){return this._passThrough(n,0,f,f)},t.prototype.tap=function(n){return this._passThrough(n,1,f)},e}},{"./util":36}],16:[function(n,t){"use strict";t.exports=function(t,i,r,u,f,e){function v(n,i,r){for(var e,c,o,f=0;f<i.length;++f){if(r._pushContext(),e=h(i[f])(n),r._popContext(),e===s)return r._pushContext(),c=t.reject(s.e),r._popContext(),c;if(o=u(e,r),o instanceof t)return o}return null}function o(n,i,u,f){var e=this._promise=new t(r);e._captureStackTrace();e._setOnCancel(this);this._stack=f;this._generatorFunction=n;this._receiver=i;this._generator=void 0;this._yieldHandlers="function"==typeof u?[u].concat(a):a;this._yieldedPromise=null}var y=n("./errors"),l=y.TypeError,c=n("./util"),s=c.errorObj,h=c.tryCatch,a=[];c.inherits(o,f);o.prototype._isResolved=function(){return null===this._promise};o.prototype._cleanup=function(){this._promise=this._generator=null};o.prototype._promiseCancelled=function(){var n,u,i,r;this._isResolved()||(u="undefined"!=typeof this._generator["return"],u?(this._promise._pushContext(),n=h(this._generator["return"]).call(this._generator,void 0),this._promise._popContext()):(i=new t.CancellationError("generator .return() sentinel"),t.coroutine.returnSentinel=i,this._promise._attachExtraTrace(i),this._promise._pushContext(),n=h(this._generator["throw"]).call(this._generator,i),this._promise._popContext(),n===s&&n.e===i&&(n=null)),r=this._promise,this._cleanup(),n===s?r._rejectCallback(n.e,!1):r.cancel())};o.prototype._promiseFulfilled=function(n){this._yieldedPromise=null;this._promise._pushContext();var t=h(this._generator.next).call(this._generator,n);this._promise._popContext();this._continue(t)};o.prototype._promiseRejected=function(n){this._yieldedPromise=null;this._promise._attachExtraTrace(n);this._promise._pushContext();var t=h(this._generator["throw"]).call(this._generator,n);this._promise._popContext();this._continue(t)};o.prototype._resultCancelled=function(){if(this._yieldedPromise instanceof t){var n=this._yieldedPromise;this._yieldedPromise=null;this._promiseCancelled();n.cancel()}};o.prototype.promise=function(){return this._promise};o.prototype._run=function(){this._generator=this._generatorFunction.call(this._receiver);this._receiver=this._generatorFunction=void 0;this._promiseFulfilled(void 0)};o.prototype._continue=function(n){var e=this._promise,r,i,f;if(n===s)return this._cleanup(),e._rejectCallback(n.e,!1);if(r=n.value,n.done===!0)return this._cleanup(),e._resolveCallback(r);if(i=u(r,this._promise),!(i instanceof t)&&(i=v(i,this._yieldHandlers,this._promise),null===i))return void this._promiseRejected(new l("A value %s was yielded that could not be treated as a promise\n\n    See http://goo.gl/MqrFmX\n\n".replace("%s",r)+"From coroutine:\n"+this._stack.split("\n").slice(1,-7).join("\n")));i=i._target();f=i._bitField;0==(50397184&f)?(this._yieldedPromise=i,i._proxy(this,null)):0!=(33554432&f)?this._promiseFulfilled(i._value()):0!=(16777216&f)?this._promiseRejected(i._reason()):this._promiseCancelled()};t.coroutine=function(n,t){if("function"!=typeof n)throw new l("generatorFunction must be a function\n\n    See http://goo.gl/MqrFmX\n");var i=Object(t).yieldHandler,r=o,u=(new Error).stack;return function(){var f=n.apply(this,arguments),t=new r(void 0,void 0,i,u),e=t.promise();return t._generator=f,t._promiseFulfilled(void 0),e}};t.coroutine.addYieldHandler=function(n){if("function"!=typeof n)throw new l("expecting a function but got "+c.classString(n));a.push(n)};t.spawn=function(n){if(e.deprecated("Promise.spawn()","Promise.coroutine()"),"function"!=typeof n)return i("generatorFunction must be a function\n\n    See http://goo.gl/MqrFmX\n");var r=new o(n,this),u=r.promise();return r._run(t.spawn),u}}},{"./errors":12,"./util":36}],17:[function(n,t){"use strict";t.exports=function(t,i){var r=n("./util");r.canEvaluate;r.tryCatch;r.errorObj;t.join=function(){var n,t=arguments.length-1,u,r;return t>0&&"function"==typeof arguments[t]&&(n=arguments[t]),u=[].slice.call(arguments),n&&u.pop(),r=new i(u).promise(),void 0!==n?r.spread(n):r}}},{"./util":36}],18:[function(n,t){"use strict";t.exports=function(t,i,r,u,f,e){function o(n,t,i,r){this.constructor$(n);this._promise._captureStackTrace();var u=c();this._callback=null===u?t:u.bind(t);this._preservedValues=r===f?new Array(this.length()):null;this._limit=i;this._inFlight=0;this._queue=i>=1?[]:v;this._init$(void 0,-2)}function h(n,t,i,u){if("function"!=typeof t)return r("expecting a function but got "+s.classString(t));var f="object"==typeof i&&null!==i?i.concurrency:0;return f="number"==typeof f&&isFinite(f)&&f>=1?f:0,new o(n,t,f,u).promise()}var c=t._getDomain,s=n("./util"),l=s.tryCatch,a=s.errorObj,v=[];s.inherits(o,i);o.prototype._init=function(){};o.prototype._promiseFulfilled=function(n,i){var o=this._values,y=this.length(),s=this._preservedValues,h=this._limit,f,p,r,v,w;if(0>i){if(i=-1*i-1,o[i]=n,h>=1&&(this._inFlight--,this._drainQueue(),this._isResolved()))return!0}else{if(h>=1&&this._inFlight>=h)return o[i]=n,this._queue.push(i),!1;null!==s&&(s[i]=n);var c=this._promise,b=this._callback,k=c._boundValue();if(c._pushContext(),f=l(b).call(k,n,i,y),p=c._popContext(),e.checkForgottenReturns(f,p,null!==s?"Promise.filter":"Promise.map",c),f===a)return this._reject(f.e),!0;if(r=u(f,this._promise),r instanceof t){if(r=r._target(),v=r._bitField,0==(50397184&v))return h>=1&&this._inFlight++,o[i]=r,r._proxy(this,-1*(i+1)),!1;if(0==(33554432&v))return 0!=(16777216&v)?(this._reject(r._reason()),!0):(this._cancel(),!0);f=r._value()}o[i]=f}return w=++this._totalResolved,w>=y?(null!==s?this._filter(o,s):this._resolve(o),!0):!1};o.prototype._drainQueue=function(){for(var n,t=this._queue,i=this._limit,r=this._values;t.length>0&&this._inFlight<i;){if(this._isResolved())return;n=t.pop();this._promiseFulfilled(r[n],n)}};o.prototype._filter=function(n,t){for(var u=t.length,r=new Array(u),f=0,i=0;u>i;++i)n[i]&&(r[f++]=t[i]);r.length=f;this._resolve(r)};o.prototype.preservedValues=function(){return this._preservedValues};t.prototype.map=function(n,t){return h(this,n,t,null)};t.map=function(n,t,i,r){return h(n,t,i,r)}}},{"./util":36}],19:[function(n,t){"use strict";t.exports=function(t,i,r,u,f){var e=n("./util"),o=e.tryCatch;t.method=function(n){if("function"!=typeof n)throw new t.TypeError("expecting a function but got "+e.classString(n));return function(){var r=new t(i),u,e;return r._captureStackTrace(),r._pushContext(),u=o(n).apply(this,arguments),e=r._popContext(),f.checkForgottenReturns(u,e,"Promise.method",r),r._resolveFromSyncValue(u),r}};t.attempt=t["try"]=function(n){var r,s,h,c,l;return"function"!=typeof n?u("expecting a function but got "+e.classString(n)):(r=new t(i),r._captureStackTrace(),r._pushContext(),arguments.length>1?(f.deprecated("calling Promise.try with more than 1 argument"),h=arguments[1],c=arguments[2],s=e.isArray(h)?o(n).apply(c,h):o(n).call(c,h)):s=o(n)(),l=r._popContext(),f.checkForgottenReturns(s,l,"Promise.try",r),r._resolveFromSyncValue(s),r)};t.prototype._resolveFromSyncValue=function(n){n===e.errorObj?this._rejectCallback(n.e,!1):this._resolveCallback(n,!0)}}},{"./util":36}],20:[function(n,t){"use strict";function u(n){return n instanceof Error&&r.getPrototypeOf(n)===Error.prototype}function f(n){var t,o,f,e;if(u(n)){for(t=new h(n),t.name=n.name,t.message=n.message,t.stack=n.stack,o=r.keys(n),f=0;f<o.length;++f)e=o[f],c.test(e)||(t[e]=n[e]);return t}return i.markAsOriginatingFromRejection(n),n}function e(n,t){return function(i,r){var u,e;null!==n&&(i?(u=f(o(i)),n._attachExtraTrace(u),n._reject(u)):t?(e=[].slice.call(arguments,1),n._fulfill(e)):n._fulfill(r),n=null)}}var i=n("./util"),o=i.maybeWrapAsError,s=n("./errors"),h=s.OperationalError,r=n("./es5"),c=/^(?:name|message|stack|cause)$/;t.exports=e},{"./errors":12,"./es5":13,"./util":36}],21:[function(n,t){"use strict";t.exports=function(t){function o(n,t){var s=this,o;if(!r.isArray(n))return e.call(s,n,t);o=i(t).apply(s._boundValue(),[null].concat(n));o===f&&u.throwLater(o.e)}function e(n,t){var o=this,r=o._boundValue(),e=void 0===n?i(t).call(r,null):i(t).call(r,null,n);e===f&&u.throwLater(e.e)}function s(n,t){var o=this,r,e;n||(r=new Error(n+""),r.cause=n,n=r);e=i(t).call(o._boundValue(),n);e===f&&u.throwLater(e.e)}var r=n("./util"),u=t._async,i=r.tryCatch,f=r.errorObj;t.prototype.asCallback=t.prototype.nodeify=function(n,t){if("function"==typeof n){var i=e;void 0!==t&&Object(t).spread&&(i=o);this._then(i,s,void 0,this,n)}return this}}},{"./util":36}],22:[function(n,t){"use strict";t.exports=function(){function v(){}function rt(n,i){if("function"!=typeof i)throw new l("expecting a function but got "+r.classString(i));if(n.constructor!==t)throw new l("the promise constructor cannot be invoked directly\n\n    See http://goo.gl/MqrFmX\n");}function t(n){this._bitField=0;this._fulfillmentHandler0=void 0;this._rejectionHandler0=void 0;this._promise0=void 0;this._receiver0=void 0;n!==i&&(rt(this,n),this._resolveFromExecutor(n));this._promiseCreated();this._fireEvent("promiseCreated",this)}function ut(n){this.promise._resolveCallback(n)}function ft(n){this.promise._rejectCallback(n,!1)}function s(n){var r=new t(i);r._fulfillmentHandler0=n;r._rejectionHandler0=n;r._promise0=n;r._receiver0=n}var b,y=function(){return new l("circular promise resolution chain\n\n    See http://goo.gl/MqrFmX\n")},p=function(){return new t.PromiseInspection(this._target())},e=function(n){return t.reject(new l(n))},k={},r=n("./util"),h,l,d;b=r.isNode?function(){var n=process.domain;return void 0===n&&(n=null),n}:function(){return null};r.notEnumerableProp(t,"_getDomain",b);var et=n("./es5"),g=n("./async"),c=new g;et.defineProperty(t,"_async",{value:c});h=n("./errors");l=t.TypeError=h.TypeError;t.RangeError=h.RangeError;d=t.CancellationError=h.CancellationError;t.TimeoutError=h.TimeoutError;t.OperationalError=h.OperationalError;t.RejectionError=h.OperationalError;t.AggregateError=h.AggregateError;var i=function(){},nt={},tt={},f=n("./thenables")(t,i),o=n("./promise_array")(t,i,f,e,v),it=n("./context")(t),ot=it.create,u=n("./debuggability")(t,it),st=(u.CapturedTrace,n("./finally")(t,f)),ht=n("./catch_filter")(tt),ct=n("./nodeback"),a=r.errorObj,w=r.tryCatch;return t.prototype.toString=function(){return"[object Promise]"},t.prototype.caught=t.prototype["catch"]=function(n){var f=arguments.length,t,i,o,u;if(f>1){for(i=new Array(f-1),o=0,t=0;f-1>t;++t){if(u=arguments[t],!r.isObject(u))return e("expecting an object but got "+r.classString(u));i[o++]=u}return i.length=o,n=arguments[t],this.then(void 0,ht(i,n,this))}return this.then(void 0,n)},t.prototype.reflect=function(){return this._then(p,p,void 0,this,void 0)},t.prototype.then=function(n,t){if(u.warnings()&&arguments.length>0&&"function"!=typeof n&&"function"!=typeof t){var i=".then() only accepts functions but was passed: "+r.classString(n);arguments.length>1&&(i+=", "+r.classString(t));this._warn(i)}return this._then(n,t,void 0,void 0,void 0)},t.prototype.done=function(n,t){var i=this._then(n,t,void 0,void 0,void 0);i._setIsFinal()},t.prototype.spread=function(n){return"function"!=typeof n?e("expecting a function but got "+r.classString(n)):this.all()._then(n,void 0,void 0,nt,void 0)},t.prototype.toJSON=function(){var n={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(n.fulfillmentValue=this.value(),n.isFulfilled=!0):this.isRejected()&&(n.rejectionReason=this.reason(),n.isRejected=!0),n},t.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new o(this).promise()},t.prototype.error=function(n){return this.caught(r.originatesFromRejection,n)},t.is=function(n){return n instanceof t},t.fromNode=t.fromCallback=function(n){var r=new t(i),f,u;return r._captureStackTrace(),f=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,u=w(n)(ct(r,f)),u===a&&r._rejectCallback(u.e,!0),r._isFateSealed()||r._setAsyncGuaranteed(),r},t.all=function(n){return new o(n).promise()},t.cast=function(n){var r=f(n);return r instanceof t||(r=new t(i),r._captureStackTrace(),r._setFulfilled(),r._rejectionHandler0=n),r},t.resolve=t.fulfilled=t.cast,t.reject=t.rejected=function(n){var r=new t(i);return r._captureStackTrace(),r._rejectCallback(n,!0),r},t.setScheduler=function(n){if("function"!=typeof n)throw new l("expecting a function but got "+r.classString(n));var t=c._schedule;return c._schedule=n,t},t.prototype._then=function(n,r,u,f,e){var p=void 0!==e,s=p?e:new t(i),o=this._target(),a=o._bitField,v,h,l,y;return p||(s._propagateFrom(this,3),s._captureStackTrace(),void 0===f&&0!=(2097152&this._bitField)&&(f=0!=(50397184&a)?this._boundValue():o===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,s)),v=b(),0!=(50397184&a)?(y=o._settlePromiseCtx,0!=(33554432&a)?(l=o._rejectionHandler0,h=n):0!=(16777216&a)?(l=o._fulfillmentHandler0,h=r,o._unsetRejectionIsUnhandled()):(y=o._settlePromiseLateCancellationObserver,l=new d("late cancellation observer"),o._attachExtraTrace(l),h=r),c.invoke(y,o,{handler:null===v?h:"function"==typeof h&&v.bind(h),promise:s,receiver:f,value:l})):o._addCallbacks(n,r,s,f,v),s},t.prototype._length=function(){return 65535&this._bitField},t.prototype._isFateSealed=function(){return 0!=(117506048&this._bitField)},t.prototype._isFollowing=function(){return 67108864==(67108864&this._bitField)},t.prototype._setLength=function(n){this._bitField=-65536&this._bitField|65535&n},t.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField;this._fireEvent("promiseFulfilled",this)},t.prototype._setRejected=function(){this._bitField=16777216|this._bitField;this._fireEvent("promiseRejected",this)},t.prototype._setFollowing=function(){this._bitField=67108864|this._bitField;this._fireEvent("promiseResolved",this)},t.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},t.prototype._isFinal=function(){return(4194304&this._bitField)>0},t.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},t.prototype._setCancelled=function(){this._bitField=65536|this._bitField;this._fireEvent("promiseCancelled",this)},t.prototype._setAsyncGuaranteed=function(){this._bitField=134217728|this._bitField},t.prototype._receiverAt=function(n){var t=0===n?this._receiver0:this[4*n-1];if(t!==k)return void 0===t&&this._isBound()?this._boundValue():t},t.prototype._promiseAt=function(n){return this[4*n-2]},t.prototype._fulfillmentHandlerAt=function(n){return this[4*n-4]},t.prototype._rejectionHandlerAt=function(n){return this[4*n-3]},t.prototype._boundValue=function(){},t.prototype._migrateCallback0=function(n){var i=(n._bitField,n._fulfillmentHandler0),r=n._rejectionHandler0,u=n._promise0,t=n._receiverAt(0);void 0===t&&(t=k);this._addCallbacks(i,r,u,t,null)},t.prototype._migrateCallbackAt=function(n,t){var r=n._fulfillmentHandlerAt(t),u=n._rejectionHandlerAt(t),f=n._promiseAt(t),i=n._receiverAt(t);void 0===i&&(i=k);this._addCallbacks(r,u,f,i,null)},t.prototype._addCallbacks=function(n,t,i,r,u){var f=this._length(),e;return(f>=65531&&(f=0,this._setLength(0)),0===f)?(this._promise0=i,this._receiver0=r,"function"==typeof n&&(this._fulfillmentHandler0=null===u?n:u.bind(n)),"function"==typeof t&&(this._rejectionHandler0=null===u?t:u.bind(t))):(e=4*f-4,this[e+2]=i,this[e+3]=r,"function"==typeof n&&(this[e+0]=null===u?n:u.bind(n)),"function"==typeof t&&(this[e+1]=null===u?t:u.bind(t))),this._setLength(f+1),f},t.prototype._proxy=function(n,t){this._addCallbacks(void 0,void 0,t,n,null)},t.prototype._resolveCallback=function(n,i){var u,r,e,s,o,h;if(0==(117506048&this._bitField)){if(n===this)return this._rejectCallback(y(),!1);if(u=f(n,this),!(u instanceof t))return this._fulfill(n);if(i&&this._propagateFrom(u,2),r=u._target(),r===this)return void this._reject(y());if(e=r._bitField,0==(50397184&e)){for(s=this._length(),s>0&&r._migrateCallback0(this),o=1;s>o;++o)r._migrateCallbackAt(this,o);this._setFollowing();this._setLength(0);this._setFollowee(r)}else 0!=(33554432&e)?this._fulfill(r._value()):0!=(16777216&e)?this._reject(r._reason()):(h=new d("late cancellation observer"),r._attachExtraTrace(h),this._reject(h))}},t.prototype._rejectCallback=function(n,t,i){var f=r.ensureErrorObject(n),e=f===n,o;e||i||!u.warnings()||(o="a promise was rejected with a non-error: "+r.classString(n),this._warn(o,!0));this._attachExtraTrace(f,t?e:!1);this._reject(n)},t.prototype._resolveFromExecutor=function(n){var t=this,i,r;this._captureStackTrace();this._pushContext();i=!0;r=this._execute(n,function(n){t._resolveCallback(n)},function(n){t._rejectCallback(n,i)});i=!1;this._popContext();void 0!==r&&t._rejectCallback(r,!0)},t.prototype._settlePromiseFromHandler=function(n,t,i,f){var o=f._bitField,e,s;0==(65536&o)&&(f._pushContext(),t===nt?i&&"number"==typeof i.length?e=w(n).apply(this._boundValue(),i):(e=a,e.e=new l("cannot .spread() a non-array: "+r.classString(i))):e=w(n).call(t,i),s=f._popContext(),o=f._bitField,0==(65536&o)&&(e===tt?f._reject(i):e===a?f._rejectCallback(e.e,!1):(u.checkForgottenReturns(e,s,"",f,this),f._resolveCallback(e))))},t.prototype._target=function(){for(var n=this;n._isFollowing();)n=n._followee();return n},t.prototype._followee=function(){return this._rejectionHandler0},t.prototype._setFollowee=function(n){this._rejectionHandler0=n},t.prototype._settlePromise=function(n,i,r,u){var f=n instanceof t,e=this._bitField,s=0!=(134217728&e);0!=(65536&e)?(f&&n._invokeInternalOnCancel(),r instanceof st&&r.isFinallyHandler()?(r.cancelPromise=n,w(i).call(r,u)===a&&n._reject(a.e)):i===p?n._fulfill(p.call(r)):r instanceof v?r._promiseCancelled(n):f||n instanceof o?n._cancel():r.cancel()):"function"==typeof i?f?(s&&n._setAsyncGuaranteed(),this._settlePromiseFromHandler(i,r,u,n)):i.call(r,u,n):r instanceof v?r._isResolved()||(0!=(33554432&e)?r._promiseFulfilled(u,n):r._promiseRejected(u,n)):f&&(s&&n._setAsyncGuaranteed(),0!=(33554432&e)?n._fulfill(u):n._reject(u))},t.prototype._settlePromiseLateCancellationObserver=function(n){var r=n.handler,i=n.promise,f=n.receiver,u=n.value;"function"==typeof r?i instanceof t?this._settlePromiseFromHandler(r,f,u,i):r.call(f,u,i):i instanceof t&&i._reject(u)},t.prototype._settlePromiseCtx=function(n){this._settlePromise(n.promise,n.handler,n.receiver,n.value)},t.prototype._settlePromise0=function(n,t){var i=this._promise0,r=this._receiverAt(0);this._promise0=void 0;this._receiver0=void 0;this._settlePromise(i,n,r,t)},t.prototype._clearCallbackDataAtIndex=function(n){var t=4*n-4;this[t+2]=this[t+3]=this[t+0]=this[t+1]=void 0},t.prototype._fulfill=function(n){var t=this._bitField,i;if(!((117506048&t)>>>16)){if(n===this)return i=y(),this._attachExtraTrace(i),this._reject(i);this._setFulfilled();this._rejectionHandler0=n;(65535&t)>0&&(0!=(134217728&t)?this._settlePromises():c.settlePromises(this))}},t.prototype._reject=function(n){var t=this._bitField;if(!((117506048&t)>>>16))return this._setRejected(),this._fulfillmentHandler0=n,this._isFinal()?c.fatalError(n,r.isNode):void((65535&t)>0?c.settlePromises(this):this._ensurePossibleRejectionHandled())},t.prototype._fulfillPromises=function(n,t){for(var i=1;n>i;i++){var r=this._fulfillmentHandlerAt(i),u=this._promiseAt(i),f=this._receiverAt(i);this._clearCallbackDataAtIndex(i);this._settlePromise(u,r,f,t)}},t.prototype._rejectPromises=function(n,t){for(var i=1;n>i;i++){var r=this._rejectionHandlerAt(i),u=this._promiseAt(i),f=this._receiverAt(i);this._clearCallbackDataAtIndex(i);this._settlePromise(u,r,f,t)}},t.prototype._settlePromises=function(){var n=this._bitField,t=65535&n,i,r;t>0&&(0!=(16842752&n)?(i=this._fulfillmentHandler0,this._settlePromise0(this._rejectionHandler0,i,n),this._rejectPromises(t,i)):(r=this._rejectionHandler0,this._settlePromise0(this._fulfillmentHandler0,r,n),this._fulfillPromises(t,r)),this._setLength(0));this._clearCancellationData()},t.prototype._settledValue=function(){var n=this._bitField;return 0!=(33554432&n)?this._rejectionHandler0:0!=(16777216&n)?this._fulfillmentHandler0:void 0},t.defer=t.pending=function(){u.deprecated("Promise.defer","new Promise");var n=new t(i);return{promise:n,resolve:ut,reject:ft}},r.notEnumerableProp(t,"_makeSelfResolutionError",y),n("./method")(t,i,f,e,u),n("./bind")(t,i,f,u),n("./cancel")(t,o,e,u),n("./direct_resolve")(t),n("./synchronous_inspection")(t),n("./join")(t,o,f,i,u),t.Promise=t,n("./map.js")(t,o,e,f,i,u),n("./using.js")(t,e,f,ot,i,u),n("./timers.js")(t,i,u),n("./generators.js")(t,e,i,f,v,u),n("./nodeify.js")(t),n("./call_get.js")(t),n("./props.js")(t,o,f,e),n("./race.js")(t,i,f,e),n("./reduce.js")(t,o,e,f,i,u),n("./settle.js")(t,o,u),n("./some.js")(t,o,e),n("./promisify.js")(t,i),n("./any.js")(t),n("./each.js")(t,i),n("./filter.js")(t,i),r.toFastProperties(t),r.toFastProperties(t.prototype),s({a:1}),s({b:2}),s({c:3}),s(1),s(function(){}),s(void 0),s(!1),s(new t(i)),u.setBounds(g.firstLineError,r.lastLineError),t}},{"./any.js":1,"./async":2,"./bind":3,"./call_get.js":5,"./cancel":6,"./catch_filter":7,"./context":8,"./debuggability":9,"./direct_resolve":10,"./each.js":11,"./errors":12,"./es5":13,"./filter.js":14,"./finally":15,"./generators.js":16,"./join":17,"./map.js":18,"./method":19,"./nodeback":20,"./nodeify.js":21,"./promise_array":23,"./promisify.js":24,"./props.js":25,"./race.js":27,"./reduce.js":28,"./settle.js":30,"./some.js":31,"./synchronous_inspection":32,"./thenables":33,"./timers.js":34,"./using.js":35,"./util":36}],23:[function(n,t){"use strict";t.exports=function(t,i,r,u,f){function s(n){switch(n){case-2:return[];case-3:return{}}}function e(n){var r=this._promise=new t(i);n instanceof t&&r._propagateFrom(n,3);r._setOnCancel(this);this._values=n;this._length=0;this._totalResolved=0;this._init(void 0,-2)}var o=n("./util");return o.isArray,o.inherits(e,f),e.prototype.length=function(){return this._length},e.prototype.promise=function(){return this._promise},e.prototype._init=function h(n,i){var f=r(this._values,this._promise),e,c;if(f instanceof t){if(f=f._target(),e=f._bitField,this._values=f,0==(50397184&e))return this._promise._setAsyncGuaranteed(),f._then(h,this._reject,void 0,this,i);if(0==(33554432&e))return 0!=(16777216&e)?this._reject(f._reason()):this._cancel();f=f._value()}return(f=o.asArray(f),null===f)?(c=u("expecting an array or an iterable object but got "+o.classString(f)).reason(),void this._promise._rejectCallback(c,!1)):0===f.length?void(-5===i?this._resolveEmptyArray():this._resolve(s(i))):void this._iterate(f)},e.prototype._iterate=function(n){var o=this.getActualLength(n.length),i;this._length=o;this._values=this.shouldCopyValues()?new Array(o):this._values;for(var s=this._promise,e=!1,f=null,u=0;o>u;++u)i=r(n[u],s),i instanceof t?(i=i._target(),f=i._bitField):f=null,e?null!==f&&i.suppressUnhandledRejections():null!==f?0==(50397184&f)?(i._proxy(this,u),this._values[u]=i):e=0!=(33554432&f)?this._promiseFulfilled(i._value(),u):0!=(16777216&f)?this._promiseRejected(i._reason(),u):this._promiseCancelled(u):e=this._promiseFulfilled(i,u);e||s._setAsyncGuaranteed()},e.prototype._isResolved=function(){return null===this._values},e.prototype._resolve=function(n){this._values=null;this._promise._fulfill(n)},e.prototype._cancel=function(){!this._isResolved()&&this._promise.isCancellable()&&(this._values=null,this._promise._cancel())},e.prototype._reject=function(n){this._values=null;this._promise._rejectCallback(n,!1)},e.prototype._promiseFulfilled=function(n,t){this._values[t]=n;var i=++this._totalResolved;return i>=this._length?(this._resolve(this._values),!0):!1},e.prototype._promiseCancelled=function(){return this._cancel(),!0},e.prototype._promiseRejected=function(n){return this._totalResolved++,this._reject(n),!0},e.prototype._resultCancelled=function(){var n,i;if(!this._isResolved())if(n=this._values,this._cancel(),n instanceof t)n.cancel();else for(i=0;i<n.length;++i)n[i]instanceof t&&n[i].cancel()},e.prototype.shouldCopyValues=function(){return!0},e.prototype.getActualLength=function(n){return n},e}},{"./util":36}],24:[function(n,t){"use strict";t.exports=function(t,i){function c(n){return!it.test(n)}function e(n){try{return n.__isPromisified__===!0}catch(t){return!1}}function l(n,t,i){var u=r.getDataPropertyOrDefault(n,t+i,tt);return u?e(u):!1}function a(n,t,i){for(var f,e,u,r=0;r<n.length;r+=2)if(f=n[r],i.test(f))for(e=f.replace(i,""),u=0;u<n.length;u+=2)if(n[u]===e)throw new s("Cannot promisify an API that has normal methods with '%s'-suffix\n\n    See http://goo.gl/MqrFmX\n".replace("%s",t));}function v(n,t,i,u){for(var v=r.inheritedDataKeys(n),s=[],c=0;c<v.length;++c){var f=v[c],o=n[f],y=u===h?!0:h(f,o,n);"function"!=typeof o||e(o)||l(n,f,t)||!u(f,o,n,y)||s.push(f,o)}return a(s,t,i),s}function y(n,u,e,o,s,h){function l(){var e=u,r,o,s;u===f&&(e=this);r=new t(i);r._captureStackTrace();o="string"==typeof c&&this!==a?this[c]:n;s=b(r,h);try{o.apply(e,k(arguments,s))}catch(l){r._rejectCallback(d(l),!0,!0)}return r._isFateSealed()||r._setAsyncGuaranteed(),r}var a=function(){return this}(),c=n;return"string"==typeof c&&(n=o),r.notEnumerableProp(l,"__isPromisified__",!0),l}function o(n,t,i,e,o){for(var a,p=new RegExp(rt(t)+"$"),c=v(n,t,p,i),h=0,w=c.length;w>h;h+=2){var s=c[h],l=c[h+1],y=s+t;e===u?n[y]=u(s,f,s,l,t,o):(a=e(l,function(){return u(s,f,s,l,t,o)}),r.notEnumerableProp(a,"__isPromisified__",!0),n[y]=a)}return r.toFastProperties(n),n}function p(n,t,i){return u(n,t,void 0,n,null,i)}var w,f={},r=n("./util"),b=n("./nodeback"),k=r.withAppended,d=r.maybeWrapAsError,g=r.canEvaluate,s=n("./errors").TypeError,nt="Async",tt={__isPromisified__:!0},it=new RegExp("^(?:arity|length|name|arguments|caller|callee|prototype|__isPromisified__)$"),h=function(n){return r.isIdentifier(n)&&"_"!==n.charAt(0)&&"constructor"!==n},rt=function(n){return n.replace(/([$])/,"\\$")},u=g?w:y;t.promisify=function(n,t){if("function"!=typeof n)throw new s("expecting a function but got "+r.classString(n));if(e(n))return n;t=Object(t);var u=void 0===t.context?f:t.context,o=!!t.multiArgs,i=p(n,u,o);return r.copyDescriptors(n,i,c),i};t.promisifyAll=function(n,t){var l,i,f,e,a,c,v;if("function"!=typeof n&&"object"!=typeof n)throw new s("the target of promisifyAll must be an object or a function\n\n    See http://goo.gl/MqrFmX\n");if(t=Object(t),l=!!t.multiArgs,i=t.suffix,"string"!=typeof i&&(i=nt),f=t.filter,"function"!=typeof f&&(f=h),e=t.promisifier,"function"!=typeof e&&(e=u),!r.isIdentifier(i))throw new RangeError("suffix must be a valid identifier\n\n    See http://goo.gl/MqrFmX\n");for(a=r.inheritedDataKeys(n),c=0;c<a.length;++c)v=n[a[c]],"constructor"!==a[c]&&r.isClass(v)&&(o(v.prototype,i,f,e,l),o(v,i,f,e,l));return o(n,i,f,e,l)}}},{"./errors":12,"./nodeback":20,"./util":36}],25:[function(n,t){"use strict";t.exports=function(t,i,r,u){function f(n){var i,o=!1,u,r,t,f;if(void 0!==e&&n instanceof e)i=h(n),o=!0;else for(u=a.keys(n),r=u.length,i=new Array(2*r),t=0;r>t;++t)f=u[t],i[t]=n[f],i[t+r]=f;this.constructor$(i);this._isMap=o;this._init$(void 0,-3)}function o(n){var e,i=r(n);return l(i)?(e=i instanceof t?i._then(t.props,void 0,void 0,void 0,void 0):new f(i).promise(),i instanceof t&&e._propagateFrom(i,2),e):u("cannot await properties of a non-object\n\n    See http://goo.gl/MqrFmX\n")}var e,s=n("./util"),l=s.isObject,a=n("./es5"),h,c;"function"==typeof Map&&(e=Map);h=function(){function i(i,r){this[n]=i;this[n+t]=r;n++}var n=0,t=0;return function(r){t=r.size;n=0;var u=new Array(2*r.size);return r.forEach(i,u),u}}();c=function(n){for(var u,f,i=new e,r=n.length/2|0,t=0;r>t;++t)u=n[r+t],f=n[t],i.set(u,f);return i};s.inherits(f,i);f.prototype._init=function(){};f.prototype._promiseFulfilled=function(n,t){var u,i;if(this._values[t]=n,u=++this._totalResolved,u>=this._length){if(this._isMap)i=c(this._values);else{i={};for(var f=this.length(),r=0,e=this.length();e>r;++r)i[this._values[r+f]]=this._values[r]}return this._resolve(i),!0}return!1};f.prototype.shouldCopyValues=function(){return!1};f.prototype.getActualLength=function(n){return n>>1};t.prototype.props=function(){return o(this)};t.props=function(n){return o(n)}}},{"./es5":13,"./util":36}],26:[function(n,t){"use strict";function r(n,t,i,r,u){for(var f=0;u>f;++f)i[f+r]=n[f+t],n[f+t]=void 0}function i(n){this._capacity=n;this._length=0;this._front=0}i.prototype._willBeOverCapacity=function(n){return this._capacity<n};i.prototype._pushOne=function(n){var t=this.length(),i;this._checkCapacity(t+1);i=this._front+t&this._capacity-1;this[i]=n;this._length=t+1};i.prototype._unshiftOne=function(n){var t=this._capacity,r,i;this._checkCapacity(this.length()+1);r=this._front;i=(r-1&t-1^t)-t;this[i]=n;this._front=i;this._length=this.length()+1};i.prototype.unshift=function(n,t,i){this._unshiftOne(i);this._unshiftOne(t);this._unshiftOne(n)};i.prototype.push=function(n,t,i){var r=this.length()+3,u,f;if(this._willBeOverCapacity(r))return this._pushOne(n),this._pushOne(t),void this._pushOne(i);u=this._front+r-3;this._checkCapacity(r);f=this._capacity-1;this[u+0&f]=n;this[u+1&f]=t;this[u+2&f]=i;this._length=r};i.prototype.shift=function(){var n=this._front,t=this[n];return this[n]=void 0,this._front=n+1&this._capacity-1,this._length--,t};i.prototype.length=function(){return this._length};i.prototype._checkCapacity=function(n){this._capacity<n&&this._resizeTo(this._capacity<<1)};i.prototype._resizeTo=function(n){var t=this._capacity;this._capacity=n;var i=this._front,u=this._length,f=i+u&t-1;r(this,0,this,t,f)};t.exports=i},{}],27:[function(n,t){"use strict";t.exports=function(t,i,r,u){function f(n,f){var l=r(n),s,c;if(l instanceof t)return o(l);if(n=e.asArray(n),null===n)return u("expecting an array or an iterable object but got "+e.classString(n));s=new t(i);void 0!==f&&s._propagateFrom(f,3);for(var a=s._fulfill,v=s._reject,h=0,y=n.length;y>h;++h)c=n[h],(void 0!==c||h in n)&&t.cast(c)._then(a,v,void 0,s,null);return s}var e=n("./util"),o=function(n){return n.then(function(t){return f(t,n)})};t.race=function(n){return f(n,void 0)};t.prototype.race=function(){return f(this,void 0)}}},{"./util":36}],28:[function(n,t){"use strict";t.exports=function(t,i,r,u,f,e){function o(n,i,r,u){this.constructor$(n);var e=v();this._fn=null===e?i:e.bind(i);void 0!==r&&(r=t.resolve(r),r._attachCancellationCallback(this));this._initialValue=r;this._currentCancellable=null;this._eachValues=u===f?[]:void 0;this._promise._captureStackTrace();this._init$(void 0,-5)}function h(n,t){this.isFulfilled()?t._resolve(n):t._reject(n)}function c(n,t,i,u){if("function"!=typeof t)return r("expecting a function but got "+s.classString(t));var f=new o(n,t,i,u);return f.promise()}function a(n){this.accum=n;this.array._gotAccum(n);var i=u(this.value,this.array._promise);return i instanceof t?(this.array._currentCancellable=i,i._then(l,void 0,void 0,this,void 0)):l.call(this,i)}function l(n){var i=this.array,r=i._promise,f=y(i._fn),u,o;return r._pushContext(),u=void 0!==i._eachValues?f.call(r._boundValue(),n,this.index,this.length):f.call(r._boundValue(),this.accum,n,this.index,this.length),u instanceof t&&(i._currentCancellable=u),o=r._popContext(),e.checkForgottenReturns(u,o,void 0!==i._eachValues?"Promise.each":"Promise.reduce",r),u}var v=t._getDomain,s=n("./util"),y=s.tryCatch;s.inherits(o,i);o.prototype._gotAccum=function(n){void 0!==this._eachValues&&n!==f&&this._eachValues.push(n)};o.prototype._eachComplete=function(n){return this._eachValues.push(n),this._eachValues};o.prototype._init=function(){};o.prototype._resolveEmptyArray=function(){this._resolve(void 0!==this._eachValues?this._eachValues:this._initialValue)};o.prototype.shouldCopyValues=function(){return!1};o.prototype._resolve=function(n){this._promise._resolveCallback(n);this._values=null};o.prototype._resultCancelled=function(n){return n===this._initialValue?this._cancel():void(this._isResolved()||(this._resultCancelled$(),this._currentCancellable instanceof t&&this._currentCancellable.cancel(),this._initialValue instanceof t&&this._initialValue.cancel()))};o.prototype._iterate=function(n){var i,r,u,f;if(this._values=n,u=n.length,void 0!==this._initialValue?(i=this._initialValue,r=0):(i=t.resolve(n[0]),r=1),this._currentCancellable=i,!i.isRejected())for(;u>r;++r)f={accum:null,value:n[r],index:r,length:u,array:this},i=i._then(a,void 0,void 0,f,void 0);void 0!==this._eachValues&&(i=i._then(this._eachComplete,void 0,void 0,this,void 0));i._then(h,h,void 0,i,this)};t.prototype.reduce=function(n,t){return c(this,n,t,null)};t.reduce=function(n,t,i,r){return c(n,t,i,r)}}},{"./util":36}],29:[function(n,t){"use strict";var i,r=n("./util"),e=function(){throw new Error("No async scheduler available\n\n    See http://goo.gl/MqrFmX\n");},u,f;r.isNode&&"undefined"==typeof MutationObserver?(u=global.setImmediate,f=process.nextTick,i=r.isRecentNode?function(n){u.call(global,n)}:function(n){f.call(process,n)}):i="undefined"==typeof MutationObserver||"undefined"!=typeof window&&window.navigator&&window.navigator.standalone?"undefined"!=typeof setImmediate?function(n){setImmediate(n)}:"undefined"!=typeof setTimeout?function(n){setTimeout(n,0)}:e:function(){var t=document.createElement("div"),i={attributes:!0},n=!1,r=document.createElement("div"),f=new MutationObserver(function(){t.classList.toggle("foo");n=!1}),u;return f.observe(r,i),u=function(){n||(n=!0,r.classList.toggle("foo"))},function(n){var r=new MutationObserver(function(){r.disconnect();n()});r.observe(t,i);u()}}();t.exports=i},{"./util":36}],30:[function(n,t){"use strict";t.exports=function(t,i,r){function u(n){this.constructor$(n)}var f=t.PromiseInspection,e=n("./util");e.inherits(u,i);u.prototype._promiseResolved=function(n,t){this._values[n]=t;var i=++this._totalResolved;return i>=this._length?(this._resolve(this._values),!0):!1};u.prototype._promiseFulfilled=function(n,t){var i=new f;return i._bitField=33554432,i._settledValueField=n,this._promiseResolved(t,i)};u.prototype._promiseRejected=function(n,t){var i=new f;return i._bitField=16777216,i._settledValueField=n,this._promiseResolved(t,i)};t.settle=function(n){return r.deprecated(".settle()",".reflect()"),new u(n).promise()};t.prototype.settle=function(){return t.settle(this)}}},{"./util":36}],31:[function(n,t){"use strict";t.exports=function(t,i,r){function u(n){this.constructor$(n);this._howMany=0;this._unwrap=!1;this._initialized=!1}function f(n,t){if((0|t)!==t||0>t)return r("expecting a positive integer\n\n    See http://goo.gl/MqrFmX\n");var i=new u(n),f=i.promise();return i.setHowMany(t),i.init(),f}var e=n("./util"),s=n("./errors").RangeError,h=n("./errors").AggregateError,c=e.isArray,o={};e.inherits(u,i);u.prototype._init=function(){if(this._initialized){if(0===this._howMany)return void this._resolve([]);this._init$(void 0,-5);var n=c(this._values);!this._isResolved()&&n&&this._howMany>this._canPossiblyFulfill()&&this._reject(this._getRangeError(this.length()))}};u.prototype.init=function(){this._initialized=!0;this._init()};u.prototype.setUnwrap=function(){this._unwrap=!0};u.prototype.howMany=function(){return this._howMany};u.prototype.setHowMany=function(n){this._howMany=n};u.prototype._promiseFulfilled=function(n){return this._addFulfilled(n),this._fulfilled()===this.howMany()?(this._values.length=this.howMany(),1===this.howMany()&&this._unwrap?this._resolve(this._values[0]):this._resolve(this._values),!0):!1};u.prototype._promiseRejected=function(n){return this._addRejected(n),this._checkOutcome()};u.prototype._promiseCancelled=function(){return this._values instanceof t||null==this._values?this._cancel():(this._addRejected(o),this._checkOutcome())};u.prototype._checkOutcome=function(){if(this.howMany()>this._canPossiblyFulfill()){for(var t=new h,n=this.length();n<this._values.length;++n)this._values[n]!==o&&t.push(this._values[n]);return t.length>0?this._reject(t):this._cancel(),!0}return!1};u.prototype._fulfilled=function(){return this._totalResolved};u.prototype._rejected=function(){return this._values.length-this.length()};u.prototype._addRejected=function(n){this._values.push(n)};u.prototype._addFulfilled=function(n){this._values[this._totalResolved++]=n};u.prototype._canPossiblyFulfill=function(){return this.length()-this._rejected()};u.prototype._getRangeError=function(n){var t="Input array must contain at least "+this._howMany+" items but contains only "+n+" items";return new s(t)};u.prototype._resolveEmptyArray=function(){this._reject(this._getRangeError(0))};t.some=function(n,t){return f(n,t)};t.prototype.some=function(n){return f(this,n)};t._SomePromiseArray=u}},{"./errors":12,"./util":36}],32:[function(n,t){"use strict";t.exports=function(n){function t(n){void 0!==n?(n=n._target(),this._bitField=n._bitField,this._settledValueField=n._isFateSealed()?n._settledValue():void 0):(this._bitField=0,this._settledValueField=void 0)}t.prototype._settledValue=function(){return this._settledValueField};var i=t.prototype.value=function(){if(!this.isFulfilled())throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n    See http://goo.gl/MqrFmX\n");return this._settledValue()},r=t.prototype.error=t.prototype.reason=function(){if(!this.isRejected())throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n    See http://goo.gl/MqrFmX\n");return this._settledValue()},u=t.prototype.isFulfilled=function(){return 0!=(33554432&this._bitField)},f=t.prototype.isRejected=function(){return 0!=(16777216&this._bitField)},e=t.prototype.isPending=function(){return 0==(50397184&this._bitField)},o=t.prototype.isResolved=function(){return 0!=(50331648&this._bitField)};t.prototype.isCancelled=n.prototype._isCancelled=function(){return 65536==(65536&this._bitField)};n.prototype.isCancelled=function(){return this._target()._isCancelled()};n.prototype.isPending=function(){return e.call(this._target())};n.prototype.isRejected=function(){return f.call(this._target())};n.prototype.isFulfilled=function(){return u.call(this._target())};n.prototype.isResolved=function(){return o.call(this._target())};n.prototype.value=function(){return i.call(this._target())};n.prototype.reason=function(){var n=this._target();return n._unsetRejectionIsUnhandled(),r.call(n)};n.prototype._value=function(){return this._settledValue()};n.prototype._reason=function(){return this._unsetRejectionIsUnhandled(),this._settledValue()};n.PromiseInspection=t}},{}],33:[function(n,t){"use strict";t.exports=function(t,i){function f(n,u){var e,f;if(c(n)){if(n instanceof t)return n;if(e=o(n),e===r)return u&&u._pushContext(),f=t.reject(e.e),u&&u._popContext(),f;if("function"==typeof e)return s(n)?(f=new t(i),n._then(f._fulfill,f._reject,void 0,f,null),f):h(n,e,u)}return n}function e(n){return n.then}function o(n){try{return e(n)}catch(t){return r.e=t,r}}function s(n){return l.call(n,"_promise0")}function h(n,f,e){function c(n){o&&(o._resolveCallback(n),o=null)}function l(n){o&&(o._rejectCallback(n,s,!0),o=null)}var o=new t(i),a=o,s,h;return e&&e._pushContext(),o._captureStackTrace(),e&&e._popContext(),s=!0,h=u.tryCatch(f).call(n,c,l),s=!1,o&&h===r&&(o._rejectCallback(h.e,!0,!0),o=null),a}var u=n("./util"),r=u.errorObj,c=u.isObject,l={}.hasOwnProperty;return f}},{"./util":36}],34:[function(n,t){"use strict";t.exports=function(t,i,r){function u(n){this.handle=n}function e(n){return clearTimeout(this.handle),n}function o(n){throw clearTimeout(this.handle),n;}var l=n("./util"),s=t.TimeoutError,h,f,c;u.prototype._resultCancelled=function(){clearTimeout(this.handle)};h=function(n){return f(+this).thenReturn(n)};f=t.delay=function(n,f){var e,o;return void 0!==f?(e=t.resolve(f)._then(h,null,null,n,void 0),r.cancellation()&&f instanceof t&&e._setOnCancel(f)):(e=new t(i),o=setTimeout(function(){e._fulfill()},+n),r.cancellation()&&e._setOnCancel(new u(o))),e._setAsyncGuaranteed(),e};t.prototype.delay=function(n){return f(n,this)};c=function(n,t,i){var r;r="string"!=typeof t?t instanceof Error?t:new s("operation timed out"):new s(t);l.markAsOriginatingFromRejection(r);n._attachExtraTrace(r);n._reject(r);null!=i&&i.cancel()};t.prototype.timeout=function(n,t){n=+n;var i,f,s=new u(setTimeout(function(){i.isPending()&&c(i,t,f)},n));return r.cancellation()?(f=this.then(),i=f._then(e,o,void 0,s,void 0),i._setOnCancel(s)):i=this._then(e,o,void 0,s,void 0),i}}},{"./util":36}],35:[function(n,t){"use strict";t.exports=function(t,i,r,u,f,e){function c(n){setTimeout(function(){throw n;},0)}function v(n){var t=r(n);return t!==n&&"function"==typeof n._isDisposable&&"function"==typeof n._getDisposer&&n._isDisposable()&&t._setDisposable(n._getDisposer()),t}function y(n,i){function u(){if(e>=s)return o._fulfill();var f=v(n[e++]);if(f instanceof t&&f._isDisposable()){try{f=r(f._getDisposer().tryDispose(i),n.promise)}catch(h){return c(h)}if(f instanceof t)return f._then(u,c,null,null,null)}u()}var e=0,s=n.length,o=new t(f);return u(),o}function o(n,t,i){this._data=n;this._promise=t;this._context=i}function s(n,t,i){this.constructor$(n,t,i)}function p(n){return o.isDisposer(n)?(this.resources[this.index]._setDisposable(n),n.promise()):n}function l(n){this.length=n;this.promise=null;this[n-1]=null}var h=n("./util"),w=n("./errors").TypeError,b=n("./util").inherits,a=h.errorObj,k=h.tryCatch;o.prototype.data=function(){return this._data};o.prototype.promise=function(){return this._promise};o.prototype.resource=function(){return this.promise().isFulfilled()?this.promise().value():null};o.prototype.tryDispose=function(n){var i=this.resource(),t=this._context,r;return void 0!==t&&t._pushContext(),r=null!==i?this.doDispose(i,n):null,void 0!==t&&t._popContext(),this._promise._unsetDisposable(),this._data=null,r};o.isDisposer=function(n){return null!=n&&"function"==typeof n.resource&&"function"==typeof n.tryDispose};b(s,o);s.prototype.doDispose=function(n,t){var i=this.data();return i.call(n,n,t)};l.prototype._resultCancelled=function(){for(var i,r=this.length,n=0;r>n;++n)i=this[n],i instanceof t&&i.cancel()};t.using=function(){var s=arguments.length,c,w,g,f,u,tt,nt,b,n,d,v;if(2>s)return i("you must pass at least 2 arguments to Promise.using");if(c=arguments[s-1],"function"!=typeof c)return i("expecting a function but got "+h.classString(c));for(g=!0,2===s&&Array.isArray(arguments[0])?(w=arguments[0],s=w.length,g=!1):(w=arguments,s--),f=new l(s),n=0;s>n;++n)u=w[n],o.isDisposer(u)?(tt=u,u=u.promise(),u._setDisposable(tt)):(nt=r(u),nt instanceof t&&(u=nt._then(p,null,null,{resources:f,index:n},void 0))),f[n]=u;for(b=new Array(f.length),n=0;n<b.length;++n)b[n]=t.resolve(f[n]).reflect();return d=t.all(b).then(function(n){for(var i,r,u,t=0;t<n.length;++t){if(i=n[t],i.isRejected())return a.e=i.error(),a;if(!i.isFulfilled())return void d.cancel();n[t]=i.value()}return v._pushContext(),c=k(c),r=g?c.apply(void 0,n):c(n),u=v._popContext(),e.checkForgottenReturns(r,u,"Promise.using",v),r}),v=d.lastly(function(){var n=new t.PromiseInspection(d);return y(f,n)}),f.promise=v,v._setOnCancel(f),v};t.prototype._setDisposable=function(n){this._bitField=131072|this._bitField;this._disposer=n};t.prototype._isDisposable=function(){return(131072&this._bitField)>0};t.prototype._getDisposer=function(){return this._disposer};t.prototype._unsetDisposable=function(){this._bitField=-131073&this._bitField;this._disposer=void 0};t.prototype.disposer=function(n){if("function"==typeof n)return new s(n,this,u());throw new w;}}},{"./errors":12,"./util":36}],36:[function(n,t){"use strict";function p(){try{var n=s;return s=null,n.apply(this,arguments)}catch(t){return o.e=t,o}}function w(n){return s=n,p}function f(n){return null==n||n===!0||n===!1||"string"==typeof n||"number"==typeof n}function b(n){return"function"==typeof n||"object"==typeof n&&null!==n}function k(n){return f(n)?new Error(u(n)):n}function d(n,t){for(var u=n.length,r=new Array(u+1),i=0;u>i;++i)r[i]=n[i];return r[i]=t,r}function g(n,t,r){if(!i.isES5)return{}.hasOwnProperty.call(n,t)?n[t]:void 0;var u=Object.getOwnPropertyDescriptor(n,t);if(null!=u)return null==u.get&&null==u.set?u.value:r}function c(n,t,r){if(f(n))return n;var u={value:r,configurable:!0,enumerable:!1,writable:!0};return i.defineProperty(n,t,u),n}function nt(n){throw n;}function tt(n){try{if("function"==typeof n){var t=i.names(n.prototype),r=i.isES5&&t.length>1,u=t.length>0&&!(1===t.length&&"constructor"===t[0]),f=vt.test(n+"")&&i.names(n).length>0;if(r||u||f)return!0}return!1}catch(e){return!1}}function it(n){function t(){}t.prototype=n;for(var i=8;i--;)new t;return n}function rt(n){return yt.test(n)}function ut(n,t,i){for(var u=new Array(n),r=0;n>r;++r)u[r]=t+r+i;return u}function u(n){try{return n+""}catch(t){return"[no string representation]"}}function l(n){return null!==n&&"object"==typeof n&&"string"==typeof n.message&&"string"==typeof n.name}function ft(n){try{c(n,"isOperational",!0)}catch(t){}}function et(n){return null==n?!1:n instanceof Error.__BluebirdErrorTypes__.OperationalError||n.isOperational===!0}function e(n){return l(n)&&i.propertyIsWritable(n,"stack")}function a(n){return{}.toString.call(n)}function ot(n,t,r){for(var f,e=i.names(n),u=0;u<e.length;++u)if(f=e[u],r(f))try{i.defineProperty(t,f,i.getDescriptor(n,f))}catch(o){}}function st(n,t){return h?process.env[n]:t}var i=n("./es5"),ht="undefined"==typeof navigator,o={e:{}},s,ct="undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:void 0!==this?this:null,lt=function(n,t){function i(){this.constructor=n;this.constructor$=t;for(var i in t.prototype)r.call(t.prototype,i)&&"$"!==i.charAt(i.length-1)&&(this[i+"$"]=t.prototype[i])}var r={}.hasOwnProperty;return i.prototype=t.prototype,n.prototype=new i,n.prototype},at=function(){var n=[Array.prototype,Object.prototype,Function.prototype],r=function(t){for(var i=0;i<n.length;++i)if(n[i]===t)return!0;return!1},u,t;return i.isES5?(u=Object.getOwnPropertyNames,function(n){for(var h,e,t,o,f=[],s=Object.create(null);null!=n&&!r(n);){try{h=u(n)}catch(c){return f}for(e=0;e<h.length;++e)t=h[e],s[t]||(s[t]=!0,o=Object.getOwnPropertyDescriptor(n,t),null!=o&&null==o.get&&null==o.set&&f.push(t));n=i.getPrototypeOf(n)}return f}):(t={}.hasOwnProperty,function(i){var f,u,e;if(r(i))return[];f=[];n:for(u in i)if(t.call(i,u))f.push(u);else{for(e=0;e<n.length;++e)if(t.call(n[e],u))continue n;f.push(u)}return f})}(),vt=/this\s*\.\s*\S+\s*=/,yt=/^[a-z$_][a-z$_0-9]*$/i,pt=function(){return"stack"in new Error?function(n){return e(n)?n:new Error(u(n))}:function(n){if(e(n))return n;try{throw new Error(u(n));}catch(t){return t}}}(),v=function(n){return i.isArray(n)?n:null},y,h,r;"undefined"!=typeof Symbol&&Symbol.iterator&&(y="function"==typeof Array.from?function(n){return Array.from(n)}:function(n){for(var t,i=[],r=n[Symbol.iterator]();!(t=r.next()).done;)i.push(t.value);return i},v=function(n){return i.isArray(n)?n:null!=n&&"function"==typeof n[Symbol.iterator]?y(n):null});h="undefined"!=typeof process&&"[object process]"===a(process).toLowerCase();r={isClass:tt,isIdentifier:rt,inheritedDataKeys:at,getDataPropertyOrDefault:g,thrower:nt,isArray:i.isArray,asArray:v,notEnumerableProp:c,isPrimitive:f,isObject:b,isError:l,canEvaluate:ht,errorObj:o,tryCatch:w,inherits:lt,withAppended:d,maybeWrapAsError:k,toFastProperties:it,filledRange:ut,toString:u,canAttachTrace:e,ensureErrorObject:pt,originatesFromRejection:et,markAsOriginatingFromRejection:ft,classString:a,copyDescriptors:ot,hasDevTools:"undefined"!=typeof chrome&&chrome&&"function"==typeof chrome.loadTimes,isNode:h,env:st,global:ct};r.isRecentNode=r.isNode&&function(){var n=process.versions.node.split(".").map(Number);return 0===n[0]&&n[1]>10||n[0]>0}();r.isNode&&r.toFastProperties(process);try{throw new Error;}catch(wt){r.lastLineError=wt}t.exports=r},{"./es5":13}]},{},[4])(4)});"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise);tl=namespace("tl");tl.Products=function(){var n=this;this.urlPrefix=window.location.protocol+"//"+window.location.host;this.urlCompareList=this.urlPrefix+"/products/products-compare/mids/";this.urlPrintList=this.urlPrefix+"/products/model-list-print/mids/";this.urlEmailList=this.urlPrefix+"/products/model-list-email/mids/";this.urlProductImages=$("#azureBlobStorageHost").val()+"/";this.DOMRefs={msgCompareListAdd:$("#msgCompareListAdd"),msgCompareListRemove:$("#msgCompareListRemove"),msgCompareListEmpty:$("#msgCompareListEmpty"),msgCompareListOnlyOne:$("#msgCompareListOnlyOne"),compareListPanel:$("#compareListPanel"),compareListHead:$("#compareListHead"),compareListBody:$("#compareListBody"),compareListToggle:$("#compareListToggle"),compareListHide:$("#compareListHide"),compareListNow:$("#compareListNow"),compareListImages:$("#compareListImages"),compareListClear:$("#compareListClear")};this.storageKeys={selectedModels:"tl.products.selectedModels"};this.updateCompareListState();this.attachCompareListEvents()};tl.Products.prototype.toggleCompareList=function(){var n=this;n.DOMRefs.compareListBody.slideToggle({direction:"up"},300);n.DOMRefs.compareListToggle.find(".fas").hasClass("fa-plus")?(n.DOMRefs.compareListToggle.find(".fas").removeClass("fa-plus").addClass("fa-minus"),n.DOMRefs.compareListToggle.attr("title","Close Compare List")):(n.DOMRefs.compareListToggle.find(".fas").removeClass("fa-minus").addClass("fa-plus"),n.DOMRefs.compareListToggle.attr("title","Open Compare List"))};tl.Products.prototype.inSelectedModelsList=function(n){var t=this,i;return window.sessionStorage.getItem(t.storageKeys.selectedModels)&&(i=JSON.parse(window.sessionStorage.getItem(t.storageKeys.selectedModels))||[],i.indexOf(n)>=0)?!0:!1};tl.Products.prototype.selectedModelsListAdd=function(n,t,i){var r=this,u=JSON.parse(window.sessionStorage.getItem(r.storageKeys.selectedModels))||[],f=r.selectedModelsListGet();f.modelCount<10?(typeof t=="undefined"&&(t="model"),typeof i=="undefined"&&(i=!0),u.push(n),window.sessionStorage.setItem(r.storageKeys.selectedModels,JSON.stringify(u)),r.updateCompareListState()):alert("You can compare a maximum of 10 products.")};tl.Products.prototype.selectedModelsListClear=function(){var n=this;window.sessionStorage.getItem(n.storageKeys.selectedModels)&&($(".selectModel").find(".selectBox").removeClass("selectBox-checked").addClass("selectBox-unchecked"),window.sessionStorage.removeItem(n.storageKeys.selectedModels));n.updateCompareListState()};tl.Products.prototype.updateCompareListState=function(){var n=this,t=n.selectedModelsListGet();t.modelCount?($(".productCount",n.DOMRefs.compareListHead).html(t.modelCount),$.ajax({url:"/api/products/ajxGetCompareModelDetails",type:"GET",data:{mids:t.modelIDs},success:function(t){var r="",f=$(".compareThumbs",n.DOMRefs.compareListImages),i,u;for(f.empty(),i=0;i<t.data.length;i++)r=r+'<img src="'+n.urlProductImages+t.data[i].ContainerName+"/"+t.data[i].ImageFileName+'" title="'+t.data[i].PartNumber+'" alt="'+t.data[i].PartNumber+'" class="compareImgBlank">';if(t.data.length<12)for(u=t.data.length;u<12;u++)r=r+'<img src="//assets.tripplite.com/core-site-images/compareProductBlank.png" alt="" class="compareImgBlank">';f.append(r);n.DOMRefs.compareListPanel.show().animate({bottom:"0px"},300)},error:function(){console.log("Error retrieving compare list model details.")}})):n.DOMRefs.compareListPanel.show().animate({bottom:"-75px"},300)};tl.Products.prototype.selectedModelsListCompare=function(n,t){var i=this,r=i.selectedModelsListGet(),u=typeof t!="undefined"?!0:!1;typeof n=="undefined"&&(n=0);r.modelCount?window.location.href="/products/products-compare/pgid/"+n+"/mids/"+r.modelIDs:alert(i.DOMRefs.msgCompareListEmpty.val())};tl.Products.prototype.selectedModelsListGet=function(){var u=this,n=JSON.parse(window.sessionStorage.getItem(u.storageKeys.selectedModels))||[],i={modelCount:n.length,modelIDs:n},t,r;if(n.length)for(t=0;t<n.length;t++)r=n[t],t===0?tl.utilities.getCleanProductNumber(n[t],function(n){var t=typeof n!="undefined"&&n?n:r;i.modelIDs=t}):tl.utilities.getCleanProductNumber(n[t],function(n){var t=typeof n!="undefined"&&n?n:r;i.modelIDs+=","+t});return i};tl.Products.prototype.selectedModelsListRemove=function(n,t,i){var r=this,u=JSON.parse(window.sessionStorage.getItem(r.storageKeys.selectedModels))||[],f=u.indexOf(n);typeof t=="undefined"&&(t="model");typeof i=="undefined"&&(i=!0);f>=0&&(u.splice(f,1),window.sessionStorage.setItem(r.storageKeys.selectedModels,JSON.stringify(u)),r.updateCompareListState())};tl.Products.prototype.attachCompareListEvents=function(){var n=this;n.DOMRefs.compareListNow.click(function(t){t.preventDefault();n.selectedModelsListCompare(0,1)});n.DOMRefs.compareListClear.click(function(t){t.preventDefault();n.selectedModelsListClear()});n.DOMRefs.compareListToggle.click(function(t){t.preventDefault();n.toggleCompareList()});n.DOMRefs.compareListHide.click(function(t){t.preventDefault();n.DOMRefs.compareListPanel.show().animate({bottom:"-200px"},300)})};tl.gtmCheckPrices=function(n,t){var i=n,r=t;dataLayer.push({event:"gtm.checkPrices.click",modelNumber:i,productLine:r})};tl.gtmBuyNow=function(n,t){var i=n,r=t;dataLayer.push({event:"gtm.buyNow.click",modelNumber:i,reseller:r})};$(document).ready(function(){objProductSection=new tl.Products});tl=namespace("tl");tl.Visitor=function(){this.preferences=tl.Visitor.Preferences();this.localStorageKey="tl.visitor";this.preferences.loadFromLocalStorage()};tl.Visitor.prototype.deleteFromLocalStorage=function(){var n=this;tl.utilities.supportsLocalStorage()&&localStorage.getItem(n.localStorageKey)&&localStorage.removeItem(n.localStorageKey)};tl.Visitor.Preferences=function(){var t="tl.visitor",f={initShow:"standard"},e={showAccessoriesPopover:!0},i={sortBy:"modelNumber",displayStyle:"list"},r={sortBy:"modelNumber",displayStyle:"list"},o={showIntroModal:!0},u={sortBy:"newest",displayStyle:"grid"},s={expandAllTopics:!1},n={homePage:{initShow:f.initShow},threePhaseSolutionsPage:{showAccessoriesPopover:e.showAccessoriesPopover},cableFinderPage:{sortBy:i.sortBy,displayStyle:i.displayStyle},categoryPage:{sortBy:r.sortBy,displayStyle:r.displayStyle},mdcDesignerPage:{showIntroModal:o.showIntroModal},newProductPage:{sortBy:u.sortBy,displayStyle:u.displayStyle},productPage:{expandAllTopics:s.expandAllTopics}};return{homePage:{initShow:function(n){return f.initShow=n||f.initShow}},threePhaseSolutionsPage:{showAccessoriesPopover:function(n){return n!==undefined&&(e.showAccessoriesPopover=n),e.showAccessoriesPopover}},cableFinderPage:{sortBy:function(n){return i.sortBy=n||i.sortBy},displayStyle:function(n){return i.displayStyle=n||i.displayStyle}},categoryPage:{sortBy:function(n){return r.sortBy=n||r.sortBy},displayStyle:function(n){return r.displayStyle=n||r.displayStyle}},mdcDesignerPage:{showIntroModal:function(n){return n!==undefined&&(o.showIntroModal=n),o.showIntroModal}},newProductPage:{sortBy:function(n){return u.sortBy=n||u.sortBy},displayStyle:function(n){return u.displayStyle=n||u.displayStyle}},productPage:{expandAllTopics:function(n){return n!==undefined&&(s.expandAllTopics=n),s.expandAllTopics}},memento:function(){return{homePage:{initShow:f.initShow},threePhaseSolutionsPage:{showAccessoriesPopover:e.showAccessoriesPopover},cableFinderPage:{sortBy:i.sortBy,displayStyle:i.displayStyle},categoryPage:{sortBy:r.sortBy,displayStyle:r.displayStyle},mdcDesignerPage:{showIntroModal:o.showIntroModal},newProductPage:{sortBy:u.sortBy,displayStyle:u.displayStyle},productPage:{expandAllTopics:s.expandAllTopics}}},getHistory:function(){return n},setHistory:function(t){objPrefs=t||this.memento();n.homePage.initShow=objPrefs.homePage.initShow;n.threePhaseSolutionsPage.showAccessoriesPopover=objPrefs.threePhaseSolutionsPage.showAccessoriesPopover;n.cableFinderPage.sortBy=objPrefs.cableFinderPage.sortBy;n.cableFinderPage.displayStyle=objPrefs.cableFinderPage.displayStyle;n.categoryPage.sortBy=objPrefs.categoryPage.sortBy;n.categoryPage.displayStyle=objPrefs.categoryPage.displayStyle;n.mdcDesignerPage.showIntroModal=objPrefs.mdcDesignerPage.showIntroModal;n.newProductPage.sortBy=objPrefs.newProductPage.sortBy;n.newProductPage.displayStyle=objPrefs.newProductPage.displayStyle;n.productPage.expandAllTopics=objPrefs.productPage.expandAllTopics},reset:function(t){var i=t||n;this.homePage.initShow(i.homePage.initShow);this.threePhaseSolutionsPage.showAccessoriesPopover(i.threePhaseSolutionsPage.showAccessoriesPopover);this.cableFinderPage.sortBy(i.cableFinderPage.sortBy);this.cableFinderPage.displayStyle(i.cableFinderPage.displayStyle);this.categoryPage.sortBy(i.categoryPage.sortBy);this.categoryPage.displayStyle(i.categoryPage.displayStyle);this.mdcDesignerPage.showIntroModal(i.mdcDesignerPage.showIntroModal);this.newProductPage.sortBy(i.newProductPage.sortBy);this.newProductPage.displayStyle(i.newProductPage.displayStyle);this.productPage.expandAllTopics(i.productPage.expandAllTopics)},deleteFromLocalStorage:function(){var n,i;tl.utilities.supportsLocalStorage()&&window.localStorage.hasOwnProperty(t)&&(n=JSON.parse(window.localStorage[t]),n.hasOwnProperty("preferences")&&delete n.preferences,i=JSON.stringify(n),window.localStorage[t]=i);return},loadFromLocalStorage:function(){if(tl.utilities.supportsLocalStorage()&&window.localStorage.hasOwnProperty(t)){var n=JSON.parse(window.localStorage[t]);if(n.hasOwnProperty("preferences"))for(pref in n.preferences)if(this.hasOwnProperty(pref))if(typeof n.preferences[pref]=="object")for(innerPref in n.preferences[pref])this[pref].hasOwnProperty(innerPref)&&this[pref][innerPref](n.preferences[pref][innerPref]);else this[pref](n.preferences[pref])}return this.setHistory(),this.memento()},saveToLocalStorage:function(){var n,i;return tl.utilities.supportsLocalStorage()&&(n={},window.localStorage.hasOwnProperty(t)&&(n=JSON.parse(window.localStorage[t])),n.preferences=this.memento(),i=JSON.stringify(n),window.localStorage[t]=i),this.setHistory(),this.memento()}}};products=namespace("tl.products");products.Finder=function(){this.attributeOptions={};this.modelAttributes={};this.upsrbAttributes={};this.runtimeModels={};this.keywordSearchModels={};this.mountFinderDeviceModels={};this.subgroupModels={};this.selectionsTracker={}};products.Finder.prototype.addVirtualQuantityToAttributeOptions=function(){var n="",i,t;if(this.attributeOptions.hasOwnProperty(1525)?n="1525qty":this.attributeOptions.hasOwnProperty(2062)?n="2062qty":this.attributeOptions.hasOwnProperty(2046)?n="2046qty":this.attributeOptions.hasOwnProperty(2221)&&(n="2221qty"),n!==""){this.attributeOptions[n]={};this.attributeOptions[n].options={};n==="1525qty"&&(this.attributeOptions[n].filterStyleId=6);for(i in this.modelAttributes)this.modelAttributes[i].attributes.hasOwnProperty(n)&&(t=parseInt(this.modelAttributes[i].attributes[n]),this.modelAttributes[i].attributes[n]=t,this.attributeOptions[n].options[t]={},this.attributeOptions[n].options[t].selectable=!0,this.attributeOptions[n].options[t].selected=!1)}};products.Finder.prototype.applyLazyLoadingGroupImages=function(){$("#products .item img.list-group-image").lazyload({threshold:600,effect:"fadeIn"})};products.Finder.prototype.calcMaxRuntime=function(n){var t=typeof n!="undefined"?n:30;return maxRt=t<10?20:Math.round(t*2)};products.Finder.prototype.dataLayerAddFilterClick=function(n){var t=this,n=n||undefined,i=n===undefined?$():$(n)};products.Finder.prototype.findMatchInGroups=function(n){var n=n||{},t=n.hasOwnProperty("groupOne")?n.groupOne:[],i=n.hasOwnProperty("groupTwo")?n.groupTwo:[],f=n.hasOwnProperty("groupOneDelim")?n.groupOneDelim:",",o=n.hasOwnProperty("groupTwoDelim")?n.groupTwoDelim:",",r=[],e=[],s=new RegExp(f+"\\s+","g"),u;switch(typeof t){case"object":t.constructor===Array&&(r=t.map(function(n){return n.toUpperCase()}));break;case"string":r=t.toString().toUpperCase().replace(s,f).split(f)}switch(typeof i){case"object":i.constructor===Array&&(e=i.map(function(n){return n.toUpperCase()}));break;case"string":e=i.toString().toUpperCase().replace(s,o).split(o)}for(u=0;u<=r.length;u++)if(e.indexOf(r[u])!==-1)return!0;return!1};products.Finder.prototype.getModelsByAttribute=function(n){var t=[],e=[],h=[],c=[],y=[],l,a,i,r,o,v,s,u,f,p;for(l in this.modelAttributes){a=this.modelAttributes[l].attributes;switch(n){case"1080":case"1085":(a.hasOwnProperty(1080)||a.hasOwnProperty(1085))&&t.push(l);break;default:a.hasOwnProperty(n)&&t.push(l)}}switch(n){case"1080":case"1085":for(i in this.attributeOptions[1080].options)this.attributeOptions[1080].options[i].selected&&h.push(i);for(i in this.attributeOptions[1085].options)this.attributeOptions[1085].options[i].selected&&c.push(i);break;case"1975":for(i in this.attributeOptions[1975].options)this.attributeOptions[1975].options[i].selected&&y.push(i)}for(r=0;r<t.length;r++){o=this.modelAttributes[t[r]].attributes;switch(n){case"1975":var u=!0,f=this.modelAttributes[t[r]].attributes[n],p=f.toString().toUpperCase().replace(/;\s+/g,";").split(";");for(v=0;v<y.length;v++)p.indexOf(y[v].toUpperCase())===-1&&(u=!1);u&&e.indexOf(t[r])<0&&e.push(t[r]);break;default:for(s in this.attributeOptions[n].options)if(this.attributeOptions[n].options[s].selected){u=!1;switch(n){case"1080":case"1085":var k=o.hasOwnProperty(1080)?o[1080]:"",d=o.hasOwnProperty(1085)?o[1085]:"",w=k.toString().toUpperCase().replace(/;\s+/g,";").split(";"),b=d.toString().toUpperCase().replace(/;\s+/g,";").split(";");if(h.length&&c.length){var g=this.findMatchInGroups({groupOne:h,groupTwo:w}),nt=this.findMatchInGroups({groupOne:h,groupTwo:b}),tt=this.findMatchInGroups({groupOne:c,groupTwo:w}),it=this.findMatchInGroups({groupOne:c,groupTwo:b});(g&&it||nt&&tt)&&(u=!0)}else(w.indexOf(s.toUpperCase())!==-1||b.indexOf(s.toUpperCase())!==-1)&&(u=!0);break;default:f=o[n];typeof f=="object"?f.hasOwnProperty(s)&&(u=!0):typeof f=="boolean"?f&&(u=!0):(p=f.toString().toUpperCase().replace(/;\s+/g,";").split(";"),p.indexOf(s.toUpperCase())!==-1&&(u=!0))}u&&e.indexOf(t[r])<0&&e.push(t[r])}}}return e.length>0?e:t};products.Finder.prototype.getSortedModelIDs=function(n){var f=[],i=[],e=[],o=this.modelAttributes,u,r,t;if(n=="avgPriceHigh"||n=="avgPriceLow")for(r in this.modelAttributes)u=this.modelAttributes[r],u.avgPrice==null?e.push(u):i.push(u);else for(r in this.modelAttributes)i.push(this.modelAttributes[r]);for(i.sort(function(t,i){switch(n){default:return t.modelID>i.modelID?1:-1;case"modelNumber":return t.modelNumber.toString()>i.modelNumber.toString()?1:-1;case"avgRating":return t.avgRating<i.avgRating?1:-1;case"popular":return t.clickCount<i.clickCount?1:-1;case"rank":return t.rank<i.rank?1:-1;case"avgPriceHigh":return t.avgPrice<i.avgPrice?1:-1;case"avgPriceLow":return t.avgPrice>i.avgPrice?1:-1;case"newest":return new Date(t.publishDate)<new Date(i.publishDate)?1:-1;case"featured":return t.featuredRank<i.featuredRank?1:-1;case/keyAttr-[0-9]+/.test(n)&&n:var r=n.split("-"),u=parseInt(t.attributes[r[1]])||t.attributes[r[1]],f=parseInt(i.attributes[r[1]])||i.attributes[r[1]];if(r.length==3)switch(r[2]){case"low":return u>f?1:-1;case"high":return u<f?1:-1}return u>f?1:-1}}),t=0;t<i.length;t++)f.push(i[t].modelID);if(n=="avgPriceHigh"||n=="avgPriceLow")for(t=0;t<e.length;t++)f.push(e[t].modelID);return f};products.Finder.prototype.getVisibleModelsCount=function(){var n=0;for(var t in this.modelAttributes)this.modelAttributes[t].display&&n++;return n};products.Finder.prototype.isPositiveInteger=function(n){return parseFloat(n)===n>>>0};products.Finder.prototype.hasAttributeOptionSelected=function(){var n,t;for(n in this.attributeOptions)if(this.attributeOptions[n].hasOwnProperty("options"))for(t in this.attributeOptions[n].options)if(this.attributeOptions[n].options[t].selected)return!0;return!1};products.Finder.prototype.resetAllModelDisplayAndAttributeOptions=function(){var t,n,i;for(t in this.modelAttributes)this.modelAttributes[t].display=!0;for(n in this.attributeOptions)for(i in this.attributeOptions[n].options)this.attributeOptions[n].options[i].selectable=!0};products.Finder.prototype.updateAttributeOption=function(n,t,i){var u=[1692,1845,1962,1963,1965,1967,1968,1969,1970,1971,1972,1973,1975,2022,2024,2025,2026,2027,2028,2029,2030,2031,2043,2102,2103,2328,2356],r;if(u=u.concat([2131,2132,2134,2135,2136,2137,2138,2139,2140,2159,2175]),typeof n!="undefined"&&typeof t!="undefined"&&typeof i!="undefined"&&this.attributeOptions.hasOwnProperty(n)){if(u.indexOf(n)>=0)for(r in this.attributeOptions[n].options)this.attributeOptions[n].options[r].selected&&(this.attributeOptions[n].options[r].selected=!1,this.updateSelectionsTracker(n,r,!1));this.attributeOptions[n].options.hasOwnProperty(t)&&(this.attributeOptions[n].options[t].selected=i,this.updateSelectionsTracker(n,t,i))}};products.Finder.prototype.updateAttributeOptionsBySelectionsTracker=function(){var n,t;if(Object.keys(this.selectionsTracker).length)for(n in this.selectionsTracker)if(this.attributeOptions.hasOwnProperty(n))for(t in this.selectionsTracker[n])this.attributeOptions[n].options.hasOwnProperty(t)&&(this.attributeOptions[n].options[t].selected=!0)};products.Finder.prototype.updateAttributeOptionsByVisibleModelsAttributes=function(){var t="",i="",e,o,n,r,h,f,s,u;for(e in this.modelAttributes){o=this.modelAttributes[e].display?!0:!1;for(n in this.modelAttributes[e].attributes)if(this.attributeOptions.hasOwnProperty(n)&&(r=this.modelAttributes[e].attributes[n],h=[4,6,7].indexOf(parseInt(this.attributeOptions[n].filterStyleId))>=0?!0:!1,o))if(typeof r=="object")for(f in r)this.attributeOptions[n].options.hasOwnProperty(f)&&(this.attributeOptions[n].options[f].selectable=!0);else if(typeof r=="boolean"){if(r===!0)for(f in this.attributeOptions[n].options)this.attributeOptions[n].options[f].selectable=!0}else{if(s=r.toString().replace(/;\s+/g,";").split(";"),[1080,1085].indexOf(parseInt(n))>=0){for(u in this.attributeOptions[1080].options)if(this.attributeOptions[1080].options[u].selected){t=u;break}for(u in this.attributeOptions[1085].options)if(this.attributeOptions[1085].options[u].selected){i=u;break}}s.forEach(function(r){var u;switch(n){case"1080":case"1085":if(this.attributeOptions[1080].options.hasOwnProperty(r)&&(t.length?this.attributeOptions[1080].options[t].selectable=!0:this.attributeOptions[1080].options[r].selectable=!0,i.length&&this.attributeOptions[1080].options.hasOwnProperty(i))){this.attributeOptions[1080].options[i].selectable=!1;for(u in this.modelAttributes)this.modelAttributes[u].display&&this.modelAttributes[u].attributes[1080]==i&&this.modelAttributes[u].attributes[1085]==i&&(this.attributeOptions[1080].options[i].selectable=!0)}if(this.attributeOptions[1085].options.hasOwnProperty(r)&&(i.length?this.attributeOptions[1085].options[i].selectable=!0:this.attributeOptions[1085].options[r].selectable=!0,t.length&&this.attributeOptions[1085].options.hasOwnProperty(t))){this.attributeOptions[1085].options[t].selectable=!1;for(u in this.modelAttributes)this.modelAttributes[u].display&&this.modelAttributes[u].attributes[1080]==t&&this.modelAttributes[u].attributes[1085]==t&&(this.attributeOptions[1085].options[t].selectable=!0)}break;default:this.attributeOptions[n].options.hasOwnProperty(r)&&(this.attributeOptions[n].options[r].selectable=!0)}},this)}}};products.Finder.prototype.updateModelDisplayByAttributesOptions=function(){var t=[],r=[],n=[],u,f,i,e,o,s;if(Object.keys(this.runtimeModels).length){for(u in this.runtimeModels)t.push(u);t.length&&n.push(t)}Object.keys(this.mountFinderDeviceModels).length&&this.mountFinderDeviceModels.length&&n.push(this.mountFinderDeviceModels);Object.keys(this.subgroupModels).length&&this.subgroupModels.length&&n.push(this.subgroupModels);Object.keys(this.keywordSearchModels).length&&this.keywordSearchModels.length&&n.push(this.keywordSearchModels);for(f in this.modelAttributes)r.push(f);for(i in this.attributeOptions){t=r;for(e in this.attributeOptions[i].options)if(this.attributeOptions[i].options[e].selected){t=this.getModelsByAttribute(i);break}n.push(t)}if(n.length){o=n.reduce(function(n,t){return t.filter(function(t){return n.indexOf(t)===-1?!1:!0})});for(s in this.modelAttributes)this.modelAttributes[s].display=!1;o.forEach(function(n){this.modelAttributes[n].display=!0},this)}};products.Finder.prototype.updateModelDisplayHavingPrices=function(){if(this.modelsHavingPrices.length)for(var n in this.modelAttributes)this.modelAttributes[n].display&&this.modelsHavingPrices.indexOf(n)===-1&&(this.modelAttributes[n].display=!1)};products.Finder.prototype.updateSelectionsTracker=function(n,t,i){typeof n!="undefined"&&typeof t!="undefined"&&typeof i!="undefined"&&(i?(this.selectionsTracker.hasOwnProperty(n)||(this.selectionsTracker[n]={}),this.selectionsTracker[n][t]={}):this.selectionsTracker.hasOwnProperty(n)&&(this.selectionsTracker[n].hasOwnProperty(t)&&delete this.selectionsTracker[n][t],Object.keys(this.selectionsTracker[n]).length===0&&delete this.selectionsTracker[n]))};products.Finder.prototype.UPSRB_updateModelDisplayAndSelectableAttributes=function(){var e,i,r,s="",h="",c="",l=[],a=[],v=[],u=[],f,n,y,p,t,w,o,b;for(t in this.attributeOptions)for(f in this.attributeOptions[t].options)if(this.attributeOptions[t].options[f].selected){switch(parseInt(t)){case 9e3:s=f;break;case 9001:h=f;break;case 9002:c=f}break}for(n in this.upsrbAttributes)e=this.upsrbAttributes[n].MODEL_ID,i=this.upsrbAttributes[n].UPS_MANUFACTURER,r=this.upsrbAttributes[n].UPS_MODEL_NUMBER,battVersion=this.upsrbAttributes[n].VERSION,s.length>0&&s===i&&l.push(n),h.length>0&&h===r&&a.push(n),c.length>0&&c===battVersion&&v.push(n);if(l.length>0&&u.push(l),a.length>0&&u.push(a),v.length>0&&u.push(v),u.length){y=u.reduce(function(n,t){return t.filter(function(t){return n.indexOf(t)===-1?!1:!0})});for(p in this.modelAttributes)this.modelAttributes[p].display=!1;for(t in this.attributeOptions)for(w in this.attributeOptions[t].options)this.attributeOptions[t].options[w].selectable=!1;for(o=0,b=y.length;o<b;o++)currBattery=this.upsrbAttributes[y[o]],e=currBattery.MODEL_ID,i=currBattery.UPS_MANUFACTURER,r=currBattery.UPS_MODEL_NUMBER,battVersion=currBattery.VERSION,this.modelAttributes.hasOwnProperty(e)&&(this.modelAttributes[e].display=!0),this.attributeOptions[9e3].options.hasOwnProperty(i)&&(this.attributeOptions[9e3].options[i].selectable=!0),this.attributeOptions[9001].options.hasOwnProperty(r)&&(this.attributeOptions[9001].options[r].selectable=!0),this.attributeOptions[9002].options.hasOwnProperty(battVersion)&&(this.attributeOptions[9002].options[battVersion].selectable=!0)}else this.resetAllModelDisplayAndAttributeOptions()};products=namespace("tl.products");products.Category=function(){var n=this;this.objProduct=objProductSection;this.objFinder=new products.Finder;this.objVisitor=new tl.Visitor;this.objVisitorPrefs=this.objVisitor.preferences;this.urlPrefix=window.location.protocol+"//"+window.location.host;this.trackFilterClick=!0;this.modelsFetchCount=0;this.modelsFetchMax=1e4;this.isIE11=/Trident.*rv[ :]*11\./.test(navigator.userAgent);this.allModelsCreated=!1;this.DOMRefs={activeTabOverride:$("#active-tab-override"),mainColumn:$("#mainColumn"),modelList:$("#modelList"),modelListLoadMore:$("#modelListLoadMore"),popEmail:$("#popEmail"),emailBody:$("#popEmail #emailBody"),popCheckPrices:$("#popCheckPrices"),productLineID:$("#productLineID"),productGroupID:$("#productGroupID"),productLineName:$("#productLineName"),productGroupName:$("#productGroupName"),groupUrlKeywords:$("#groupUrlKeywords"),sesGroupName:$("#sesGroupName"),rbLoadRuntimeSQLNoMatches:$("#rbLoadRuntimeSQLNoMatches"),rbResult:$("#rbResult"),rbResults:$("#rbResults"),rbType:$("#rbType"),rbTotalOutlets:$("#rbTotalOutlets"),rbTotalPorts:$("#rbTotalPorts"),rbChargingPorts:$("#rbChargingPorts"),rbRuntimErrorRetrieving:$("#rbRuntimErrorRetrieving"),rbInvalidMinimum:$("#rbInvalidMinimum"),rbInvalidMinAndMax:$("#rbInvalidMinAndMax"),rbFiltersSelectionsSaved:$("#rbFiltersSelectionsSaved"),rbFiltersSelectionsDeleted:$("#rbFiltersSelectionsDeleted"),rbModelsPrintSelect:$("#rbModelsPrintSelect"),rbModelsEmailSelect:$("#rbModelsEmailSelect"),rbModelsEmailCountExceeded:$("#rbModelsEmailCountExceeded"),rbWishlistConfirm:$("#wlConfirm"),rbMoreInfo:$("#rbMoreInfo"),rbAddToFavorites:$("#rbAddToFavorites"),rbMenuProductServices:$("#rbMenuProductServices"),rbWhereToBuy:$("#rbWhereToBuy"),rbCheckPrices:$("#rbCheckPrices"),rbOrderingHelp:$("#rbOrderingHelp"),rbOnsiteServices:$("#rbOnsiteServices"),rbCompare:$("#rbCompare"),azureBlobStorageHost:$("#azureBlobStorageHost"),coreSiteImageContainer:$("#coreSiteImageContainer"),sgids:$("#subgroupIDs"),styleID:$("#styleID"),helpIcon:$(".icoHelp"),listTools:$("#listTools"),tools:$("#tools"),sort:$("#sort"),view:$("#view"),sortByMenu:$("#sortByMenu"),matchCount:$("#matchCount"),matchText:$("#matchText"),requestContext:$("#requestContext"),filterByHasPrice:$("#filterByHasPrice"),tabMountFinder:$("#tab-mount-finder"),mountFinderPane:$("#mount-finder-pane"),sidebar:$("#filter-list-pane"),loadAndRuntimePane:$("#load-and-runtime-pane"),productGroupFilters:$("#product-group-filters"),productFilters:$("#productFilters"),allFiltersModal:$("#all-filters-modal"),modalFilters:$("#modal-filters"),modalFiltersSideNav:$("#modal-filters-sidenav"),btnClearAllFilterSelections:$("#btnClearAllFilterSelections"),tagFilters:$("#tagFilters"),productTypes:$("#productTypes"),productSubgroupItem:$(".productSubgroupItem"),topFilter:$("#topFilter"),totalLoad:$("#totalLoad"),upsLoad:$("#totalLoad #upsLoad"),runtime:$("#runtime"),upsMinRt:$("#runtime #upsMinRt"),upsMaxRt:$("#runtime #upsMaxRt"),btnLoadRuntime:$("#runtime button"),tabControl:$("#product-group-filters").find(".tab-cat-control"),tabPane:$("#product-group-filters").find(".tab-pane"),tabLoadRuntimes:$("#tab-cat-load-runtime"),deviceTypeIds:$("#deviceTypeIds"),mountFinderDeviceManufacturer:$("#mountFinderDeviceManufacturer"),selectDeviceManufacturer:$("#selectDeviceManufacturer"),mountFinderDeviceModelNumber:$("#mountFinderDeviceModelNumber"),selectDeviceModelNumber:$("#selectDeviceModelNumber"),keywordSearchBox:$("#keywordSearchBox"),selectionsTracker:$("#selectionsTracker"),btnSaveFilters:$("#btnSaveFilters"),btnDeleteFilters:$("#btnDeleteFilters"),list:$("#list"),productsItem:$("#modelList .item"),selectModel:$("#modelList .selectModel"),listCondensed:$("#listCondensed"),grid:$("#grid"),popCompareTable:$("#popCompareTable"),popCompare:$("#popCompare"),userFilters:$("#userFilters"),userFilterButtons:$("#userFilterButtons"),modelMessage:$("#modelMessage"),modelListMessage:$(".modelListMessage"),noMatchingProductsMessage:$("#noMatchingProductsMessage"),voltageIncompatibleMessage:$("#voltageIncompatibleMessage"),productGroupCarousel:$("#product-group-carousel"),productGroupCarouselControlLeft:$("#product-group-carousel-control-left"),productGroupCarouselControlRight:$("#product-group-carousel-control-right"),popLoadCalc:$("#popLoadCalc"),popLists:$("#popLists"),messageModelDescr:$("#device-descr"),messageContainer:$("#device-notes"),mountFinderImg:$("#mount-finder-img"),followingProductsWorkWith:$("#following-products-copy"),hasVESA:$("#hasVESA"),shareLink:$("#shareLink"),compareFullPage:$("#compareFullPage"),highlightDiffs:$("#highlightDiffs"),hideSimilar:$("#hideSimilar"),btnShare:$("#btnShare"),btnCompare:$("#btnCompare"),compareLink:$(".compareLink"),comparePrint:$("#comparePrint"),compareEmail:$("#compareEmail"),btnPrint:$("#btnPrint"),btnEmail:$("#btnEmail"),btnPopout:$("#popoutToggle"),btnDownload:$("#btnDownload"),btnClipboard:$("#copyClipboard"),loading:$("#loading"),productListItem:$("#productListItem")};this.DOMEls={div:$(document.createElement("div")),h3:$(document.createElement("h3")),h4:$(document.createElement("h4")),h5:$(document.createElement("h5")),ul:$(document.createElement("ul")),li:$(document.createElement("li")),em:$(document.createElement("em")),inp:$(document.createElement("input")),bold:$(document.createElement("strong"))};this.storageKeys={selectedFilters:"tl.products.category.pgid."+this.DOMRefs.productGroupID.val()+".selectedFilters",selectedModels:this.objProduct.storageKeys.selectedModels};this.isUPSRB=parseInt(n.DOMRefs.productGroupID.val())===17?!0:!1;this.requestContext=this.DOMRefs.requestContext.data("json");n.toggleLoadingIcon(!0);n.getModelAttributesPromise().then(function(){n.DOMRefs.selectionsTracker.val()!=null&&n.DOMRefs.selectionsTracker.val()!=""&&(n.objFinder.selectionsTracker=JSON.parse(n.DOMRefs.selectionsTracker.val()));Object.keys(n.objFinder.selectionsTracker).length?(n.DOMRefs.loading.show(),n.createInitialProductListItems(n.modelsFetchMax)):n.createInitialProductListItems()}).catch(function(n){console.log(n)});n.DOMRefs.modelListLoadMore.click(function(){n.DOMRefs.modelListLoadMore.hide();n.DOMRefs.loading.show();setTimeout(function(){n.revealProductListItems();n.DOMRefs.loading.hide()},0)});n.DOMRefs.activeTabOverride.val()==2&&(n.DOMRefs.tabControl.removeClass("active"),n.DOMRefs.tabPane.removeClass("active"),n.DOMRefs.tabMountFinder.addClass("active"),n.DOMRefs.mountFinderPane.addClass("active"),n.DOMRefs.keywordSearchBox.css("visibility","hidden"))};products.Category.prototype.init=function(){var n=this;this.DOMRefs.filterByHasPrice.length&&this.DOMRefs.filterByHasPrice.data("value")&&this.updateModelsHavingPrices();this.addVirtualQuantityToAttributeOptions();this.attachDisplaySwitchEvents();this.attachSideBarEvents();this.attachPopUpEvents();this.attachToolsButtonEvents();this.attachFilterStorageEvents();this.attachUPSRBModelLinkEvents();this.attachProductSubgroupEvents();this.attachProductSubgroupCarouselEvents();this.DOMRefs.userFilters.on("click","button",function(){var t=$(this);t.hasClass("remove")&&n.deselectFilter(t.data("btn-value"))});tl.utilities.supportsLocalStorage()?(window.localStorage[this.storageKeys.selectedFilters]!==undefined&&(this.objFinder.attributeOptions=JSON.parse(window.localStorage[this.storageKeys.selectedFilters])),this.checkoffSelectedModels(),this.attachModelSelectEvents()):(this.DOMRefs.btnSaveFilters.parent().hide(),this.DOMRefs.selectModel.hide(),this.DOMRefs.tools.css("visibility","hidden"));this.isUPSRB||this.updateAttributeOptionsByVisibleModelsAttributes();this.filterSidebarBySelectableAttributeOptions();this.updateAttributeOptionsBySelectionsTracker();this.applyPreSelectedAttributeOptions();this.applyVisitorViewPreference();this.applySortByValue();this.isUPSRB&&this.toggleUPSRBVersionFilter();this.applyLazyLoadingGroupImages();this.objFinder.hasAttributeOptionSelected()==!1&&this.updateAndFilterByAttributesAndModelObjects();$(".panel.panel-default.hidden",this.DOMRefs.sidebar).each(function(n,t){$(t).removeClass("hidden")});this.DOMRefs.popEmail.modal({show:!1});this.DOMRefs.popCompare.modal({show:!1});this.DOMRefs.modelListMessage.is(":visible")||this.DOMRefs.modelList.fadeIn("fast")};products.Category.prototype.applyLazyLoadingGroupImages=function(){for(var n,r,t=this,u=t.DOMRefs.productsItem.find(".itemImage").find("img"),i=0;i<u.length;i++)n=$(u[i]),r=n.attr("src"),(typeof r=="undefined"||r.indexOf("data:image")!=-1)&&(t.isIE11&&(t.modelsFetchCount==24&&n.attr("src",n.attr("data-original")),n.load(function(){n.lazyload({threshold:600,effect:"fadeIn"})})),n.lazyload({threshold:600,effect:"fadeIn"}))};products.Category.prototype.addVirtualQuantityToAttributeOptions=function(){var n=this;n.objFinder.addVirtualQuantityToAttributeOptions("");n.objFinder.attributeOptions.hasOwnProperty(1525)?n.buildAndInsertVirtualQuantityFilter(1525):n.objFinder.attributeOptions.hasOwnProperty(2062)?n.buildAndInsertVirtualQuantityFilter(2062):n.objFinder.attributeOptions.hasOwnProperty(2046)?n.buildAndInsertVirtualQuantityFilter(2046):n.objFinder.attributeOptions.hasOwnProperty(2221)&&n.buildAndInsertVirtualQuantityFilter(2221)};products.Category.prototype.applyPreSelectedAttributeOptions=function(){var n=this;for(var r in n.objFinder.attributeOptions){var i=$("#filter_"+r).length?$("#filter_"+r):$("#filter_sf"),u=i.data("filter-styleid"),t=[];switch(u){case 7:t=i.find(".filter input");break;case 10:t=i.find(".filter input");break;case 11:t=i.find(".colors");break;case 12:t=i.find("#attr_"+r+" input");break;case 15:t=i.find(".tag");break;case 16:t=i.find(".filter input")}t.length&&t.each(function(){var t=$(this),i=[8,11,15].indexOf(u)>=0?t.data("value"):t.val();n.objFinder.attributeOptions[r].options.hasOwnProperty(i)&&n.objFinder.attributeOptions[r].options[i].selected&&!t.is(":checked")&&(n.trackFilterClick=!1,t.click(),n.trackFilterClick=!0)})}(n.DOMRefs.upsLoad.val()!=""||n.DOMRefs.upsMinRt.val()!=""||n.DOMRefs.upsMaxRt.val()!="")&&n.DOMRefs.btnLoadRuntime.click();$(document).keypress(function(t){if(t.keyCode===13&&n.DOMRefs.tabLoadRuntimes.hasClass("active"))return n.DOMRefs.btnLoadRuntime.click(),!1})};products.Category.prototype.applySortByValue=function(n){for(var t=this,r,u=[],e=n||t.DOMRefs.sortByMenu.attr("data-sort"),f=t.objFinder.getSortedModelIDs(e),i=0;i<=f.length;i++)r=t.DOMRefs.productsItem.filter("#model_"+f[i]),u.push(r[0]);t.DOMRefs.productsItem.detach();t.DOMRefs.modelList.append(u)};products.Category.prototype.applyViewList=function(){var n=this;n.DOMRefs.productsItem.find(".itemImage").find("img").each(function(){var n=$(this),t=n.attr("data-small-image");n.attr("data-original",t);n.css("visibility","visible")});n.DOMRefs.modelList.css("display","grid").removeClass("grid").addClass("list");n.DOMRefs.list.removeClass("invert").blur().siblings().addClass("invert");n.DOMRefs.matchCount.css("color","#414042");n.DOMRefs.matchText.css("color","#414042")};products.Category.prototype.applyViewGrid=function(){var n=this;n.DOMRefs.productsItem.find(".itemImage").find("img").each(function(){var n=$(this),t=n.attr("data-medium-image");n.attr("data-original",t);n.css("visibility","visible")});n.DOMRefs.modelList.css("display","grid").removeClass("list").addClass("grid");n.DOMRefs.grid.removeClass("invert").blur().siblings().addClass("invert");n.DOMRefs.matchCount.css("color","#414042");n.DOMRefs.matchText.css("color","#414042")};products.Category.prototype.applyVisitorViewPreference=function(){var n=this,i=n.objVisitorPrefs.memento(),t=i.categoryPage.displayStyle||undefined;if(t!==undefined)switch(t){case"list":n.applyViewList();break;case"grid":n.applyViewGrid()}n.isIE11&&(n.DOMRefs.view.hide(),n.applyViewList())};products.Category.prototype.attachDisplaySwitchEvents=function(){var n=this;n.DOMRefs.list.click(function(t){t.preventDefault();n.applyViewList();n.updateVisitorPreferences()});n.DOMRefs.grid.click(function(t){t.preventDefault();n.applyViewGrid();n.DOMRefs.productsItem.find(".itemImage").find("img").each(function(){var n=$(this),t=n.attr("src"),i;typeof t!="undefined"&&t.substring(0,4)!="data"&&(i=n.attr("data-medium-image"),n.attr("src",i))});n.updateVisitorPreferences()})};products.Category.prototype.attachFilterStorageEvents=function(){var n=this;n.DOMRefs.btnSaveFilters.click(function(){var t=JSON.stringify(n.objFinder.attributeOptions);tl.utilities.supportsLocalStorage()&&(window.localStorage[n.storageKeys.selectedFilters]=t,alert(n.DOMRefs.rbFiltersSelectionsSaved.val()))});n.DOMRefs.btnDeleteFilters.click(function(){tl.utilities.supportsLocalStorage()&&window.localStorage[n.storageKeys.selectedFilters]!==undefined&&(window.localStorage.removeItem(n.storageKeys.selectedFilters),alert(n.DOMRefs.rbFiltersSelectionsDeleted.val()))})};products.Category.prototype.attachModelCompareEvents=function(){var n=this;n.DOMRefs.compareFullPage.click(function(t){t.preventDefault();n.objProduct.selectedModelsListCompare(pgid=n.DOMRefs.productGroupID.val(),fullPage=!0)});n.DOMRefs.highlightDiffs.click(function(n){var r,t,f,e,i,o,u;if(n.preventDefault(),$(this).hasClass("active"))$(this).removeClass("active").text("Highlight Differences"),$("#compareTable tbody td.warning").removeClass("warning");else for($(this).addClass("active").text("Remove Highlights"),r=document.getElementById("compareTable").getElementsByTagName("tbody")[0],t=0;f=r.rows[t];t++){for(e=!1,i=1;u=f.cells[i];i++)i+1<=r.rows[t].cells.length-1&&r.rows[t].cells[i].innerHTML.toLowerCase()!==r.rows[t].cells[i+1].innerHTML.toLowerCase()&&(e=!0);if(e)for(o=1;u=f.cells[o];o++)u.className=u.className+" warning"}});n.DOMRefs.hideSimilar.click(function(n){var r,t,u,f,i,e;if(n.preventDefault(),$(this).hasClass("active"))$(this).removeClass("active").text("Hide Similarities"),$("#compareTable tbody tr.hidden").removeClass("hidden");else for($(this).addClass("active").text("Show All Rows"),r=document.getElementById("compareTable").getElementsByTagName("tbody")[0],t=0;u=r.rows[t];t++){for(f=!0,i=1;e=u.cells[i];i++)i+1<=r.rows[t].cells.length-1&&r.rows[t].cells[i].innerHTML.toLowerCase()!==r.rows[t].cells[i+1].innerHTML.toLowerCase()&&(f=!1);f&&(u.className=u.className+" hidden")}});n.DOMRefs.comparePrint.click(function(n){n.preventDefault();alert("Sorry, not implemented yet.")});n.DOMRefs.compareEmail.click(function(n){n.preventDefault();alert("Sorry, not implemented yet.")})};products.Category.prototype.attachModelSelectEvents=function(){var n=this;n.DOMRefs.modelList.on("click",".selectModel",function(t){t.preventDefault();var r=$(this),i=r.data("clean-model-number"),u=r.data("model-number");i!=null&&i!==""&&(n.objProduct.inSelectedModelsList(i)?(r.find(".selectBox").removeClass("selectBox-checked").addClass("selectBox-unchecked"),n.objProduct.selectedModelsListRemove(i=i,u=u)):(r.find(".selectBox").removeClass("selectBox-unchecked").addClass("selectBox-checked"),n.objProduct.selectedModelsListAdd(i=i,u=u)))});n.DOMRefs.modelList.on("click",".fav",function(n){var t,i,r;n.preventDefault();t=$(this);i="#model_"+t.parent().attr("data-clean-model-number");t.hasClass("selected")?(r=$(i).find(".itemCta").find(".wishlist").attr("data-itemId"),tl.objWishlist.deleteItem(r),tl.objWishlist.saveToLocalStorage(),t.removeClass("selected"),tl.updateWishlistCounter()):$(i).find(".itemCta").find(".wishlist").trigger("click")});n.DOMRefs.modelList.on("click",".wishlist",function(t){t.preventDefault();var i=$(this),r=n.DOMRefs.rbWishlistConfirm.val();tl.objWishlist.saveWishlistItem(i,utilities,r)});n.DOMRefs.modelList.on("click",".modalLink",function(n){n.preventDefault();var f=tl.ajxLoading,t=$(this).data("target"),e=$(this).data("href"),i=$(this).data("target-header"),r=$(t).find(".modal-header").find("h3"),u=$(t).find(".modal-body");r.empty();i!==undefined&&r.html(i);u.empty().append(f);u.load(e)})};products.Category.prototype.attachPopUpEvents=function(){var n=this;n.DOMRefs.helpIcon.on("click",function(n){n.stopPropagation();var i=$("#popHelp"),t=$(this).closest(".filterHead").data("target");t=t.replace("filter_","help_");$(".helpTopic",i).hide();$(t).show();i.modal("show")});n.DOMRefs.popLoadCalc.on("click",function(n){n.preventDefault();var t=$(this),i=t.attr("href"),r=t.data("width"),u=t.data("height");tl.utilities.popup(i,r,u,!1,0)});n.DOMRefs.popLists.on("click","button.listApply",function(){var t=$(this).parents(".filterList").find("input");t.each(function(){var t=$(this);t.is(":checked")?n.userFilterAdd(t.val(),t.data("filter-text"),"filterBtn"):n.userFilterRemoveByFilterValue(t.val())});n.toggleFilterBar();$(this).parents(".filterList").css("display","none")});n.DOMRefs.popLists.on("click","button.close",function(){$(this).parents(".filterList").css("display","none")});n.DOMRefs.popLists.on("click","button.listClose",function(){$(this).parents(".filterList").css("display","none")})};products.Category.prototype.attachSideBarEvents=function(){var n=this,t;n.DOMRefs.tabControl.on("click",function(){var t=$(this).attr("id");t=="tab-cat-filter"?n.DOMRefs.keywordSearchBox.css("visibility","visible"):n.DOMRefs.keywordSearchBox.css("visibility","hidden")});n.DOMRefs.keywordSearchBox.on("keypress",function(){event.keyCode==13&&event.preventDefault()});n.DOMRefs.keywordSearchBox.on("keyup",function(){function u(){n.createRemainingProductListItemsHiddenPromise(n.modelsFetchMax).then(function(){n.toggleLoadingIcon(!1);var f,i,t,u,e,o,s;for(n.objFinder.keywordSearchModels=[],f=r.val().toUpperCase(),i=$(".item",n.DOMRefs.modelList),t=0;t<i.length;t++)u=$(".itemDetails",i[t])[0],e=u.textContent||u.innerText,o=$(".itemAnchor",i[t])[0],s=$(o).attr("data-clean-model-number"),e.toUpperCase().indexOf(f)>-1&&n.objFinder.keywordSearchModels.push(s);n.updateAndFilterByAttributesAndModelObjects()})}var r=$(this),i=n.modelsFetchCount>=n.modelsFetchMax?0:1e3;i>0&&(n.DOMRefs.modelListLoadMore.hide(),n.toggleLoadingIcon(!0));clearTimeout(t);t=setTimeout(u,i)});n.DOMRefs.keywordSearchBox.on("keydown",function(){clearTimeout(t)});n.DOMRefs.selectDeviceManufacturer.change(function(){var t=$(this).val();(n.clearAllFilterSelections(),n.objFinder.mountFinderDeviceModels=[],n.updateAndFilterByAttributesAndModelObjects(),n.DOMRefs.selectDeviceModelNumber.attr("disabled","disabled"),n.DOMRefs.selectDeviceModelNumber.prop("disabled","disabled"),n.DOMRefs.selectDeviceModelNumber.children("option:not(:first)").remove(),n.resetMountFinderContent(),t!="")&&$.ajax({url:"/api/products/getMountFinderDevicesByBrand",type:"GET",data:{brandName:t,deviceTypeIds:n.DOMRefs.deviceTypeIds.val()},dataType:"json",contentType:"application/json",cache:!1,success:function(t){var r=Object.entries(t),i,u;if(r.length>0){for(i=0;i<r.length;i++)u='<option data-description="'+encodeURI(r[i][1].ManufacturerShortDescription)+'" data-image="'+r[i][1].PrimaryImageUrl+'">'+r[i][0]+"<\/option>",n.DOMRefs.selectDeviceModelNumber.append(u);n.DOMRefs.selectDeviceModelNumber.removeProp("disabled");n.DOMRefs.selectDeviceModelNumber.removeAttr("disabled")}else n.DOMRefs.selectDeviceModelNumber.attr("disabled","disabled"),n.DOMRefs.selectDeviceModelNumber.prop("disabled","disabled")},error:function(){alert("Sorry, an error has occurred. Please try again in a few minutes.")}})});n.DOMRefs.selectDeviceModelNumber.change(function(){var t=$(this).val();n.clearAllFilterSelections();n.modelsFetchCount<n.modelsFetchMax?n.createRemainingProductListItemsHiddenPromise(n.modelsFetchMax).then(function(){n.toggleLoadingIcon(!1);n.getTrippModelNumbersByMountFinderDeviceModelNumber(t)}):n.getTrippModelNumbersByMountFinderDeviceModelNumber(t)});n.DOMRefs.productTypes.on("change",".type input",function(){var t=$(this),u=t.parents(".typeList").data("attrid"),i=!1,r;n.userFilterRemoveByClassName("typeBtn");t.is(":checked")&&(t.val()==""||(r="<strong>"+n.DOMRefs.rbType.val()+"<\/strong>: "+t.data("filter-text"),n.userFilterAdd(t.val(),r,"typeBtn"),i=!0,n.dataLayerAddFilterClick(t)));n.toggleFilterBar();n.updateAttributeOption(attrID=u,attrVal=t.val(),selected=i);n.updateAndFilterByAttributesAndModelObjects()});n.DOMRefs.productTypes.on("change",".typeList .filter input",function(){var t=$(this),u=t.parents(".typeList").data("attrid"),i=!1,r;t.is(":checked")?t.val()==""||(r="<strong>"+n.DOMRefs.rbType.val()+"<\/strong>: "+t.data("filter-text"),n.userFilterAdd(t.val(),r,"typeBtn"),i=!0,n.dataLayerAddFilterClick(t)):n.userFilterRemoveByFilterValue(t.val());n.toggleFilterBar();n.updateAttributeOption(attrID=u,attrVal=t.val(),selected=i);n.updateAndFilterByAttributesAndModelObjects()});n.DOMRefs.productTypes.on("change",".subType input",function(){var t=$(this),r=t.parents(".subTypeList").data("attrid"),i=!1;n.userFilterRemoveByClassName("subTypeBtn");t.is(":checked")&&(t.val()==""||(n.userFilterAdd(t.val(),t.data("filter-text"),"subTypeBtn"),i=!0),n.dataLayerAddFilterClick(t));n.toggleFilterBar();n.updateAttributeOption(attrID=r,attrVal=t.val(),selected=i);n.updateAndFilterByAttributesAndModelObjects()});n.DOMRefs.sidebar.on("change",".filterOptions input",function(){var t=$(this),e=t.parents(".filterOptions"),i=e.data("attrid"),r=t.val(),o=!1,f=$("#filter-list-pane .filterOptions[data-attrid='"+i+"']"),u=f.find(".filter input[value='"+r+"']");n.toggleLoadingIcon(!0);setTimeout(function(){n.createRemainingProductListItemsHiddenPromise(n.modelsFetchMax).then(function(){if(i=="many"&&(i=t.parents(".filter").data("attrid")),t.is(":checked")){var s=["2046qty,2062qty,2221qty"].indexOf(i)>=0?!0:!1,h=e.hasClass("radios")?!0:!1;(s||h)&&($(".filter input:checked",f).each(function(){n.userFilterRemoveByFilterValue($(this).val());n.updateAttributeOption(attrID=i,attrVal=$(this).val(),selected=!1)}),$(".filter input",f).prop("checked",!1).attr("checked",!1));u.prop("checked",!0);u.attr("checked",!0);n.userFilterAdd(r,t.data("filter-text"),"filterBtn");o=!0;n.dataLayerAddFilterClick(t)}else n.userFilterRemoveByFilterValue(r),u.prop("checked",!1),u.attr("checked",!1);n.toggleFilterBar();n.updateAttributeOption(attrID=i,attrVal=r,selected=o);n.updateAndFilterByAttributesAndModelObjects()})},0)});n.DOMRefs.sidebar.on("click",".seeAll a",function(n){var t=$(this).data("target"),i=$("#"+t);i.css({display:"block",left:n.pageX-420,top:n.pageY-500})});n.DOMRefs.loadAndRuntimePane.on("click",".btnRange",function(){var u=$(this),t=u.closest(".range"),i=t.find(".inputMin").val(),r=t.find(".inputMax").val();n.toggleLoadingIcon(!0);setTimeout(function(){n.createRemainingProductListItemsHiddenPromise(n.modelsFetchMax).then(function(){if(!n.objFinder.isPositiveInteger(i)){alert(n.DOMRefs.rbInvalidMinimum.val());return}if(!n.objFinder.isPositiveInteger(r))if(t.attr("id")==="filter_9999")r=n.objFinder.calcMaxRuntime(i);else{alert(n.DOMRefs.rbInvalidMinAndMax.val());return}var f=t.parent().find("h5").text()+": "+i+"-"+r;n.userFilterRemoveByClassName("rangeBtn");n.userFilterAdd(f,f,"rangeBtn");n.toggleFilterBar();u.parents("#runtime").length&&n.updateRuntimeModels()})},0)});n.DOMRefs.sidebar.on("click",".boxLink",function(){var t=$(this),i=t.data("value"),u=t.parents(".filterOptions").data("attrid"),r=!1;n.toggleLoadingIcon(!0);setTimeout(function(){n.createRemainingProductListItemsHiddenPromise(n.modelsFetchMax).then(function(){t.attr("disabled")||(t.hasClass("boxLinkActive")?(n.userFilterRemoveByFilterValue(i),t.removeClass("boxLinkActive"),r=!1):(n.userFilterAdd(i,t.data("filter-text"),"filterBtn"),t.addClass("boxLinkActive"),r=!0,n.dataLayerAddFilterClick(t)),n.toggleFilterBar(),n.updateAttributeOption(attrID=u,attrVal=i,selected=r),n.updateAndFilterByAttributesAndModelObjects())})},0)});n.DOMRefs.sidebar.on("click",".colors",function(){var t=$(this),i=t.data("value"),u=t.parents(".filterOptions").data("attrid"),r=!1;n.toggleLoadingIcon(!0);setTimeout(function(){n.createRemainingProductListItemsHiddenPromise(n.modelsFetchMax).then(function(){t.attr("disabled")||(t.hasClass("colorActive")?(n.userFilterRemoveByFilterValue(i),t.removeClass("colorActive"),r=!1):(n.userFilterAdd(i,t.data("filter-text"),"filterBtn"),t.addClass("colorActive"),r=!0,n.dataLayerAddFilterClick(t)),n.toggleFilterBar(),n.updateAttributeOption(attrID=u,attrVal=i,selected=r),n.updateAndFilterByAttributesAndModelObjects())})},0)});n.DOMRefs.tagFilters.on("click",".tag",function(){var t=$(this),i=t.data("value"),u=t.parents(".filterOptions").data("attrid"),r=!1;n.toggleLoadingIcon(!0);setTimeout(function(){n.createRemainingProductListItemsHiddenPromise(n.modelsFetchMax).then(function(){t.attr("disabled")||(t.hasClass("tagActive")?(n.userFilterRemoveByFilterValue(i),t.removeClass("tagActive"),r=!1):(n.userFilterAdd(i,t.data("filter-text"),"filterBtn"),t.addClass("tagActive"),r=!0,n.dataLayerAddFilterClick(t)),n.toggleFilterBar(),n.updateAttributeOption(attrID=u,attrVal=i,selected=r),n.updateAndFilterByAttributesAndModelObjects())})},0)});n.DOMRefs.modalFiltersSideNav.find("li").click(function(){var t=$(this).find("a").attr("data-href");return n.DOMRefs.modalFiltersSideNav.find("li").removeClass("active"),n.DOMRefs.modalFilters.find(".tab-pane").removeClass("active"),$(this).addClass("active"),$(t).addClass("active"),!1});n.DOMRefs.sidebar.on("click","#btnClearAllFilterSelections",function(){n.clearAllFilterSelections()})};products.Category.prototype.attachToolsButtonEvents=function(){var n=this;n.DOMRefs.btnShare.click(function(t){var r,f,s,h;t.preventDefault();var u={},i="",c=n.DOMRefs.groupUrlKeywords.val(),e=n.urlPrefix+"/products/"+c.toLowerCase()+"~"+n.DOMRefs.productGroupID.val(),o=n.DOMRefs.sgids.val();for(r in n.objFinder.attributeOptions)for(f in n.objFinder.attributeOptions[r].options)n.objFinder.attributeOptions[r].options[f].selected&&(u.hasOwnProperty(r)?u[r]+="|"+f:u[r]=f);for(r in u)i!=""&&(i+="&"),i+=r+"="+u[r];n.DOMRefs.totalLoad.length&&n.DOMRefs.runtime.length&&(n.DOMRefs.upsLoad.val()!=""||n.DOMRefs.upsMinRt.val()!=""||n.DOMRefs.upsMaxRt.val()!="")&&(s=n.DOMRefs.upsLoad.parents(".filterOptions").data("attrid"),h=n.DOMRefs.upsMinRt.parents(".filterOptions").data("attrid"),i!=""&&(i+="&"),i+=s+"="+n.DOMRefs.upsLoad.val(),i+="&",i+=h+"="+n.DOMRefs.upsMinRt.val()+":"+n.DOMRefs.upsMaxRt.val());i=encodeURI(i);i=i.replace(/\+/g,"%2B");i=i.replace(/%20&%20/g,"%20%26%20");o.length&&(e+="-"+o);i.length&&(e+="?"+i);$(".pageUrl",n.DOMRefs.shareLink).val(e);n.DOMRefs.shareLink.slideDown(400,function(){$(".pageUrl",n.DOMRefs.shareLink).select()});n.DOMRefs.shareLink.on("click",".close",function(t){n.DOMRefs.shareLink.slideUp();t.preventDefault()})});n.DOMRefs.btnCompare.on("click",function(t){t.preventDefault();n.objProduct.selectedModelsListCompare(pgid=n.DOMRefs.productGroupID.val(),fullPage=!0)});n.DOMRefs.modelList.on("click",".compareLink",function(t){t.preventDefault();n.objProduct.selectedModelsListCompare(pgid=n.DOMRefs.productGroupID.val(),fullPage=!0)});n.DOMRefs.btnPrint.click(function(t){var i,r;t.preventDefault();i=[];for(r in n.objFinder.modelAttributes)n.objFinder.modelAttributes[r].display&&i.push(r);if(i.length){var f=i.join(),e=JSON.stringify({mids:f}),u=window.open("","_blank");u.document.body.innerHTML="<div style='margin-top: 30px; text-align:center;'><img src='https://assets.tripplite.com/core-site-images/loadingSmall.gif' /><p style='font-family:Arial,Helvetica,sans-serif;'>Please wait, building your printable list...<\/p><\/div>";$.ajax({url:"/products/product-list-print",type:"POST",data:e,dataType:"html",contentType:"application/json",cache:!1,success:function(n){u.document.body.innerHTML=n},error:function(){alert("Sorry, an error has occurred. Please try again in a few minutes.")}})}else alert(n.DOMRefs.rbModelsPrintSelect.val())});n.DOMRefs.btnEmail.click(function(t){var i,r;t.preventDefault();i=[];for(r in n.objFinder.modelAttributes)n.objFinder.modelAttributes[r].display&&i.push(r);if(i.length)if(i.length>50)alert(n.DOMRefs.rbModelsEmailCountExceeded.val());else{var u=$(this),f=u.attr("href"),e=u.data("width"),o=u.data("height");f=f+"/mids/"+i.join();tl.utilities.popup(f,e,o,!1,1)}else alert(n.DOMRefs.rbModelsEmailSelect.val())});n.DOMRefs.sort.find(".dropdown-menu").find("a").on("click",function(){var t=$(this).attr("value");$(this).parents(".dropdown").find(".dropdown-toggle").html($(this).text()+" <span class='caret'><\/span>");n.DOMRefs.sortByMenu.attr("data-sort",t);n.modelsFetchCount<n.modelsFetchMax?(n.toggleLoadingIcon(!0),setTimeout(function(){n.revealProductListItems(n.modelsFetchMax).then(function(){n.toggleLoadingIcon(!1);n.applySortByValue(t);n.applyLazyLoadingGroupImages()})},0)):(n.applySortByValue(t),n.applyLazyLoadingGroupImages())});n.DOMRefs.btnClipboard.on("click",function(n){n.preventDefault();tl.utilities.copyClipboard("category")});n.DOMRefs.btnPopout.on("click",function(t){t.preventDefault();n.DOMRefs.btnPopout.toggleClass("invert");n.DOMRefs.btnPopout.hasClass("invert")?($(".gtmProductSubgroup").each(function(){$(this).removeAttr("target").removeAttr("rel")}),$(".gtmMoreInfo").each(function(){$(this).removeAttr("target").removeAttr("rel")})):($(".gtmProductSubgroup").each(function(){$(this).attr("target","_blank").attr("rel","noopener")}),$(".gtmMoreInfo").each(function(){$(this).attr("target","_blank").attr("rel","noopener")}))})};products.Category.prototype.attachUPSRBModelLinkEvents=function(){var n=this;n.isUPSRB&&$(".thumbnail > a, a.modelNumber",n.DOMRefs.productsItem).click(function(t){var u=0,f=0,e=0,i=n.DOMEls.div.clone().attr("id","upsrb-message").addClass("alert alert-danger"),r,o;$("#upsrb-message").remove();for(r in n.objFinder.attributeOptions)for(o in n.objFinder.attributeOptions[r].options)if(n.objFinder.attributeOptions[r].options[o].selectable)switch(parseInt(r)){case 9e3:u++;break;case 9001:f++;break;case 9002:e++}u!==1||f!==1?(t.preventDefault(),i.html("Please select BRAND and UPS MODEL to proceed"),i.insertBefore(n.DOMRefs.modelList)):e>1&&(t.preventDefault(),i.html("Select a UPS VERSION for a final recommendation and important installation tips"),i.insertBefore(n.DOMRefs.modelList))})};products.Category.prototype.attachProductSubgroupEvents=function(){var n=this;n.DOMRefs.productSubgroupItem.click(function(t){t.preventDefault();var r=n.DOMRefs.productGroupID.val(),i="";$(this).hasClass("active")?(i=n.DOMRefs.sesGroupName.val().toLowerCase(),location=tl.basePath+"/products/"+i+"~"+r):location=$(this).attr("href")})};products.Category.prototype.attachProductSubgroupCarouselEvents=function(){var n=this,t=n.DOMRefs.productGroupCarousel.find(".product-subgroup").length;t>8&&n.DOMRefs.productGroupCarouselControlRight.show();var i=Math.ceil(t/8),r="#product-subgroup-carousel-1",u="#product-subgroup-carousel-"+i;n.DOMRefs.productGroupCarousel.on("slid.bs.carousel",function(){$(u).hasClass("active")?(n.DOMRefs.productGroupCarouselControlLeft.show(),n.DOMRefs.productGroupCarouselControlRight.hide()):$(r).hasClass("active")?(n.DOMRefs.productGroupCarouselControlLeft.hide(),n.DOMRefs.productGroupCarouselControlRight.show()):(n.DOMRefs.productGroupCarouselControlLeft.show(),n.DOMRefs.productGroupCarouselControlRight.show())})};products.Category.prototype.buildAndInsertVirtualQuantityFilter=function(n){var t=this,e,a,r,y,h,o,u,i;if(typeof n!="undefined"){var p=t.DOMRefs.rbTotalOutlets.val(),w=t.DOMRefs.rbChargingPorts.val(),b=t.DOMRefs.rbTotalPorts.val(),c=n===1525?p:n===2046?w:b,l=$("#attr_"+n),f=l.clone();f.attr("id","attr_"+n+"qty");e=f.children(".dropdown-toggle");a="&nbsp;<span class='caret'><\/span>";e.html(c).append(a);e.attr("data-attrid",n+"qty");e.attr("data-target","#filter_"+n+"qty");r=f.children(".filterOptions");r.attr("id","filter_"+n+"qty");r.attr("data-attrid",n+"qty");r.attr("data-filter-styleid","7");r.empty();for(i in t.objFinder.attributeOptions[n+"qty"].options)r.append(t.DOMEls.li.clone().addClass("filter").append('<input type="checkbox" class="m-Right5" data-filter-text="'+i+'" value="'+i+'">').append(i));f.insertBefore(l);var v=$("a[data-href='#modal-filters-"+n+"']"),k=v.parent("li"),s=v.clone();s.attr("data-href","#modal-filters-"+n+"qty");s.html(c);y=t.DOMEls.li.clone().addClass("clickMe").append(s);y.insertBefore(k);h=$("#modal-filters-"+n);o=h.clone();o.attr("id","modal-filters-"+n+"qty");u=o.children(".filterOptions");u.attr("id","filter_"+n+"qty");u.attr("data-attrid",n+"qty");u.attr("data-filter-styleid","7");u.empty();for(i in t.objFinder.attributeOptions[n+"qty"].options)u.append(t.DOMEls.li.clone().addClass("filter").append('<input type="checkbox" class="m-Right5" data-filter-text="'+i+'" value="'+i+'">').append(i));o.insertBefore(h)}};products.Category.prototype.checkoffSelectedModels=function(){var n=this;$("#modelList .selectModel").each(function(){var t=$(this),i=t.data("id");n.objProduct.inSelectedModelsList(i)?t.find(".selectBox").removeClass("selectBox-unchecked").addClass("selectBox-checked"):t.find(".selectBox").removeClass("selectBox-checked").addClass("selectBox-unchecked")})};products.Category.prototype.clearAllFilterSelections=function(){var n=this,t=$("button.remove",n.DOMRefs.userFilterButtons);$.each(t,function(t,i){n.deselectFilter($(i).data("btn-value"))})};products.Category.prototype.dataLayerAddFilterClick=function(n){var i=n||$(),r=i.parents(".filterOptions").data("attrid"),t=i.parents("#attr_"+r),u=t.find(".filterHead > h5").text();t.length==0&&(t=i.parents("#productTypes"),u=t.find(".panel-heading > .panel-title").text())};products.Category.prototype.deselectAllFilterOptions=function(){var i=this,n,t;n=$(".type input:checked",i.DOMRefs.sidebar);n.length&&n.each(function(){t=$(this);t.val()!=""&&t.prop("checked",!1)});n=$(".subType input:checked",i.DOMRefs.sidebar);n.length&&n.each(function(){t=$(this);t.val()!=""&&t.prop("checked",!1)});n=$(".filter input:checked",i.DOMRefs.sidebar);n.length&&n.each(function(){t=$(this);t.prop("checked",!1)});n=$(".boxLinkActive",i.DOMRefs.sidebar);n.length&&n.each(function(){t=$(this);t.prop("checked",!1)});n=$(".colorActive",i.DOMRefs.sidebar);n.length&&n.each(function(){t=$(this);t.prop("checked",!1)});n=$(".tagActive",i.DOMRefs.tagFilters);n.length&&n.each(function(){t=$(this);t.prop("checked",!1)})};products.Category.prototype.deselectFilter=function(n){var r=this,i,t,u,f;i=$(".type input",r.DOMRefs.sidebar);i.length&&i.each(function(){return t=$(this),t.val()==n?($('.type input[value=""]',r.DOMRefs.sidebar).click(),!0):void 0});i=$(".subType input",r.DOMRefs.sidebar);i.length&&i.each(function(){return t=$(this),t.val()==n?($('.subType input[value=""]',r.DOMRefs.sidebar).click(),!0):void 0});i=$(".filter input",r.DOMRefs.sidebar);i.length&&i.each(function(){return t=$(this),t.val()==n?(t.prop("checked",!1),t.trigger("change"),!0):void 0});i=$(".boxLinkActive",r.DOMRefs.sidebar);i.length&&i.each(function(){return t=$(this),t.data("value")==n?(t.trigger("click"),!0):void 0});i=$(".colorActive",r.DOMRefs.sidebar);i.length&&i.each(function(){return t=$(this),t.data("value")==n?(t.trigger("click"),!0):void 0});i=$(".tagActive",r.DOMRefs.tagFilters);i.length&&i.each(function(){return t=$(this),t.data("value")==n?(t.trigger("click"),!0):void 0});u=typeof n=="string"?n.search(":"):-1;u>=0&&(f=n.slice(0,u),i=$(".range",r.DOMRefs.loadAndRuntimePane),i.each(function(){return t=$(this),t.parent().find("h5").text()==f?(t.find(".inputMin").val(""),t.find(".inputMax").val(""),t.parents("#runtime").length&&(r.DOMRefs.upsLoad.val(""),r.updateRuntimeModels("clearRTModels"),r.userFilterRemoveByFilterValue(n),r.toggleFilterBar()),!0):void 0}))};products.Category.prototype.emailSelectedModels=function(){var n=this,t=n.objProduct.selectedModelsListGet();if(t.modelCount)if(t.modelCount>200)alert(n.DOMRefs.rbModelsEmailSelect.val());else{var i=$(this),r=i.attr("href"),u=i.data("width"),f=i.data("height");r=r+"&mids="+t.modelIDs;tl.utilities.popup(r,u,f,!1,1)}else alert(n.DOMRefs.rbModelsEmailSelect.val())};products.Category.prototype.filterModelListByModelAttributesDisplay=function(){var n=this;for(var t in n.objFinder.modelAttributes)n.objFinder.modelAttributes[t].display?$("#model_"+t).removeClass("hide"):$("#model_"+t).addClass("hide");n.applyLazyLoadingGroupImages()};products.Category.prototype.filterSidebarBySelectableAttributeOptions=function(){var i=this,e,s,n,t,u,f;for(e in i.objFinder.attributeOptions){s=document.querySelectorAll("#filter_"+e);s=s.length?s:document.querySelectorAll("#tagFilters #filter_"+e);var o=s.length?s:document.querySelectorAll("#filter_sf"),c=o.length?parseInt(o[0].getAttribute("data-filter-styleid")):0,r=[];switch(c){case 7:case 8:case 10:case 16:for(u=0;u<o.length;u++)if(r=o[u].querySelectorAll(".filter input"),r.length)for(f=0;f<r.length;f++)n=r[f],t=n.parentNode,i.objFinder.attributeOptions[e].options.hasOwnProperty(n.value)?i.objFinder.attributeOptions[e].options[n.value].selectable?(i.isIE11||(n.classList.contains("hidden")&&n.classList.remove("hidden"),n.hasAttribute("disabled")&&n.removeAttribute("disabled")),t.classList.contains("hidden")&&t.classList.remove("hidden")):(i.isIE11||n.hasAttribute("disabled")||n.setAttribute("disabled",!0),t.classList.contains("hidden")||t.classList.add("hidden")):t.classList.contains("hidden")||t.classList.add("hidden");break;case 11:for(u=0;u<o.length;u++)if(r=o[u].querySelectorAll(".colors"),r.length)for(f=0;f<r.length;f++){var n=r[f],h=n.getAttribute("data-value"),t=n.parentNode;i.objFinder.attributeOptions[e].options.hasOwnProperty(h)?i.objFinder.attributeOptions[e].options[h].selectable?(i.isIE11||(n.classList.contains("hide")&&n.classList.remove("hide"),n.hasAttribute("hide")&&n.removeAttribute("hide")),t.classList.contains("hide")&&t.classList.remove("hide")):(i.isIE11||n.hasAttribute("hide")||n.setAttribute("hide",!0),t.classList.contains("hide")||t.classList.add("hide")):t.classList.contains("hide")||t.classList.add("hide")}break;case 12:for(u=0;u<o.length;u++)if(r=o[u].querySelectorAll("#attr_"+e+" input"),r.length)for(f=0;f<r.length;f++)n=r[f],t=n.parentNode,i.objFinder.attributeOptions[e].options.hasOwnProperty(n.value)?i.objFinder.attributeOptions[e].options[n.value].selectable?(!i.isIE11&&n.hasAttribute("disabled")&&n.removeAttribute("disabled"),t.classList.contains("hidden")&&t.classList.remove("hidden")):(i.isIE11||n.hasAttribute("disabled")||n.setAttribute("disabled",!0),t.classList.contains("hidden")||t.classList.add("hidden")):t.classList.contains("hidden")||t.classList.add("hidden");break;case 15:for(u=0;u<o.length;u++)if(r=o[u].querySelectorAll(".tag"),r.length)for(f=0;f<r.length;f++){var n=r[f],t=n.parentNode,h=n.getAttribute("data-value");i.objFinder.attributeOptions[e].options.hasOwnProperty(h)?i.objFinder.attributeOptions[e].options[h].selectable?n.classList.contains("hide")&&n.classList.remove("hide"):n.classList.contains("hide")||n.classList.add("hide"):n.classList.contains("hide")||t.classList.add("hide")}}}i.hideFiltersWithNoSelectableAttributeOptions()};products.Category.prototype.getModelAttributesPromise=function(){var n=this,t=n.requestContext;return t.Sort="featured",new Promise(function(i,r){i($.ajax({url:"/api/products/getProductGroupProductAttributes",contentType:"application/json; charset=utf-8",dataType:"json",type:"POST",data:JSON.stringify(t),success:function(t){t.Success&&(n.objFinder.attributeOptions=t.Data.attributeOptions,n.objFinder.modelAttributes=t.Data.modelAttributes,n.objFinder.upsrbAttributes=t.Data.upsrbAttributes,n.modelsFetchMax=Object.keys(t.Data.modelAttributes).length)},error:function(){console.log("error retrieving product group attributes")},cache:!1}));r(new Error("fail"))})};products.Category.prototype.getModelListPromise=function(n,t){var i=this;return new Promise(function(r,u){var s=Object.keys(i.objFinder.modelAttributes).length,h=i.modelsFetchCount==0,e=t||!1?0:i.modelsFetchCount,o=n||(e==0?24:e==24?96:i.modelsFetchMax),f=i.requestContext;f.Start=e;f.Limit=o;f.Sort=i.DOMRefs.sortByMenu.attr("data-sort")||"featured";i.modelsFetchCount<i.modelsFetchMax?r($.ajax({url:"/api/products/getProductGroupProductList",contentType:"application/json; charset=utf-8",dataType:"json",type:"POST",data:JSON.stringify(f),success:function(n){n.Success&&(i.modelsFetchCount=o,i.DOMRefs.loading.hide(),i.DOMRefs.modelList.append(n.Data),i.DOMRefs.productsItem=$("#modelList").find(".item"),i.checkoffSelectedModels(),tl.objWishlist.updateFavIcons(),h?i.init():(i.applySortByValue(),i.applyVisitorViewPreference(),i.applyLazyLoadingGroupImages()),i.modelsFetchCount<s?i.DOMRefs.modelListLoadMore.show():i.DOMRefs.modelListLoadMore.hide(),i.DOMRefs.tagFilters.show())},error:function(){console.log("error retrieving product list")},cache:!1})):r();u(new Error("fail"))})};products.Category.prototype.getTrippModelNumbersByMountFinderDeviceModelNumber=function(n){var t=this;if(n==""){t.resetMountFinderContent();t.objFinder.mountFinderDeviceModels=[];t.updateAndFilterByAttributesAndModelObjects();return}$.ajax({url:"/api/products/getTrippModelNumbersByMountFinderDeviceModelNumber",type:"GET",data:{deviceModelNumber:n},dataType:"json",contentType:"application/json",cache:!1,success:function(n){var u;if(n.Success){var r=n.Data,i=t.DOMRefs.selectDeviceModelNumber.find("option:selected"),f=typeof i.attr("data-image")=="undefined"||i.attr("data-image").length==0?"https://assets.tripplite.com/core-site-images/image-unavailable.png":i.attr("data-image");r.length&&(t.objFinder.mountFinderDeviceModels=r,t.updateAndFilterByAttributesAndModelObjects());t.DOMRefs.mountFinderImg.find("img").attr("src",f);t.DOMRefs.mountFinderImg.fadeIn();u=decodeURI(i.attr("data-description"));t.DOMRefs.messageModelDescr.empty().append(u);t.objFinder.getVisibleModelsCount()==0?t.DOMRefs.followingProductsWorkWith.hide():t.DOMRefs.followingProductsWorkWith.show();t.DOMRefs.messageContainer.empty()}n.Message!==""&&n.Message!==null?t.DOMRefs.messageContainer.empty().append(n.Message):t.DOMRefs.messageContainer.empty().append('<div class="validated"><i class="far fa-check-square fa-lg"><\/i>&nbsp;&nbsp;VESA Mount Compatible<\/div><div class="validated"><i class="far fa-check-square fa-lg"><\/i>&nbsp;&nbsp;Screen Size Compatible<\/div><div class="validated"><i class="far fa-check-square fa-lg"><\/i>&nbsp;&nbsp;Screen Weight Compatible<\/div>')},error:function(){alert("Sorry, an error has occurred. Please try again in a few minutes.")}})};products.Category.prototype.hideFiltersWithNoSelectableAttributeOptions=function(){var n=this,r=!0,t,e;for(t in n.objFinder.attributeOptions){var u=!0,f=$("[data-href='#modal-filters-"+t+"']",n.DOMRefs.modalFiltersSideNav).parent("li"),i=$("#attr_"+t);for(e in n.objFinder.attributeOptions[t].options)if(n.objFinder.attributeOptions[t].options[e].selectable){u=!1;r=!1;continue}u?(f.hide(),i.hide()):(f.show(),i.attr("data-is-key-attribute")=="True"&&i.show());n.DOMRefs.tabMountFinder.hasClass("active")||(r?n.DOMRefs.sidebar.removeClass("active"):n.DOMRefs.sidebar.addClass("active"))}};products.Category.prototype.insertUPSRBNotes=function(){var n=this,p,e,o,s,u,f,h="",c="",l="",a=0,v=0,y=0,r,i,t;$("#upsrb-notes").remove();$("#upsrb-message").remove();for(r in n.objFinder.attributeOptions)for(i in n.objFinder.attributeOptions[r].options)if(n.objFinder.attributeOptions[r].options[i].selectable)switch(parseInt(r)){case 9e3:a++;h=i;break;case 9001:v++;c=i;break;case 9002:y++;l=i}if(a===1&&v===1&&y<=1)for(t in n.objFinder.upsrbAttributes)if(p=n.objFinder.upsrbAttributes[t].MODEL_ID,e=n.objFinder.upsrbAttributes[t].UPS_MANUFACTURER,o=n.objFinder.upsrbAttributes[t].UPS_MODEL_NUMBER,s=n.objFinder.upsrbAttributes[t].VERSION,u=n.objFinder.upsrbAttributes[t].NOTES,h===e&&c===o&&l===s){u.length>0&&(f=n.DOMEls.div.clone(),f.attr("id","upsrb-notes").html(u).addClass("alert alert-warning"),f.insertAfter(n.DOMRefs.modelList));break}};products.Category.prototype.printSelectedModels=function(){var n=this,t=n.objProduct.selectedModelsListGet();if(t.modelCount)if(t.modelCount>200)alert(n.DOMRefs.rbModelsPrintSelect.val());else{var i=$(this),r=i.attr("href"),u=i.data("width"),f=i.data("height");r=r+"&mids="+t.modelIDs;tl.utilities.popup(r,u,f,!1,1)}else alert(n.DOMRefs.rbModelsPrintSelect.val())};products.Category.prototype.resetMountFinderContent=function(){var n=this;n.DOMRefs.messageModelDescr.empty();n.DOMRefs.messageContainer.empty();n.DOMRefs.mountFinderImg.hide();n.DOMRefs.mountFinderImg.find("img").attr("src","");n.DOMRefs.followingProductsWorkWith.hide()};products.Category.prototype.toggleFilterBar=function(){var n=this;$(".btn-group",n.DOMRefs.userFilters).length?n.DOMRefs.userFilters.removeClass("hidden"):n.DOMRefs.userFilters.addClass("hidden")};products.Category.prototype.toggleModelsListAndMessage=function(n){var t=this,i=n||"list";switch(i){case"noMatchingProductsMessage":t.DOMRefs.modelList.hide();t.DOMRefs.noMatchingProductsMessage.show();break;case"voltageIncompatibleMessage":t.DOMRefs.modelList.hide();t.DOMRefs.voltageIncompatibleMessage.show();break;default:t.DOMRefs.modelList.show();t.DOMRefs.modelListMessage.hide()}};products.Category.prototype.toggleUPSRBVersionFilter=function(){var t=this,e=$("#filter_9002 input:checked"),i=0,r=0,u=0,n,f;for(n in t.objFinder.attributeOptions)for(f in t.objFinder.attributeOptions[n].options)if(t.objFinder.attributeOptions[n].options[f].selectable)switch(parseInt(n)){case 9e3:i++;break;case 9001:r++;break;case 9002:u++}$("#attr_9002").addClass("hide");i==1&&r==1&&u>1&&$("#attr_9002").removeClass("hide");e.length>0&&$("#attr_9002").removeClass("hide")};products.Category.prototype.updateAndFilterByAttributesAndModelObjects=function(){var n=this;n.updateModelDisplayAndAttributesOptions();n.filterModelListByModelAttributesDisplay();n.filterSidebarBySelectableAttributeOptions();n.updateMatchCountByVisibleModels()};products.Category.prototype.updateAttributeOption=function(n,t,i){var r=this;typeof n!="undefined"&&typeof t!="undefined"&&typeof i!="undefined"&&(r.objFinder.updateAttributeOption(n,t,i),r.DOMRefs.selectionsTracker.val(JSON.stringify(r.objFinder.selectionsTracker)))};products.Category.prototype.updateAttributeOptionsBySelectionsTracker=function(){var n=this;if(n.DOMRefs.selectionsTracker.val()!=null&&n.DOMRefs.selectionsTracker.val()!=""){if(n.objFinder.selectionsTracker=JSON.parse(n.DOMRefs.selectionsTracker.val()),n.objFinder.updateAttributeOptionsBySelectionsTracker(),n.DOMRefs.runtime.length){var i=n.DOMRefs.upsLoad.parents(".filterOptions").data("attrid"),r=n.DOMRefs.upsMinRt.parents(".filterOptions").data("attrid"),t=[];n.objFinder.selectionsTracker.hasOwnProperty(i)&&n.DOMRefs.upsLoad.val(Object.keys(n.objFinder.selectionsTracker[i])[0]);n.objFinder.selectionsTracker.hasOwnProperty(r)&&(t=Object.keys(n.objFinder.selectionsTracker[r])[0].split(":"),n.DOMRefs.upsMinRt.val(t[0]),n.DOMRefs.upsMaxRt.val(t[1]))}n.deselectAllFilterOptions()}};products.Category.prototype.updateAttributeOptionsByVisibleModelsAttributes=function(){var n=this,t,i,r,u;for(t in n.objFinder.attributeOptions)if(i=[6,7].indexOf(parseInt(n.objFinder.attributeOptions[t].filterStyleId))>=0?!0:!1,r=!1,i&&$("#filter_"+t+" input:checked",n.DOMRefs.sidebar).length>0&&(r=!0),!i||i&&!r)for(u in n.objFinder.attributeOptions[t].options)n.objFinder.attributeOptions[t].options[u].selectable=!1;n.objFinder.updateAttributeOptionsByVisibleModelsAttributes()};products.Category.prototype.updateMatchCount=function(n){var t=this;t.DOMRefs.matchCount.text(n);t.DOMRefs.matchText.text(n===1?t.DOMRefs.rbResult.val():t.DOMRefs.rbResults.val())};products.Category.prototype.updateMatchCountByVisibleModels=function(){var n=this,t=n.objFinder.getVisibleModelsCount();n.updateMatchCount(t)};products.Category.prototype.updateModelDisplayAndAttributesOptions=function(){if(objSelf=this,objSelf.isUPSRB)objSelf.objFinder.UPSRB_updateModelDisplayAndSelectableAttributes(),objSelf.insertUPSRBNotes(),objSelf.toggleUPSRBVersionFilter();else{if(objSelf.objFinder.updateModelDisplayByAttributesOptions(),objSelf.DOMRefs.filterByHasPrice.length&&objSelf.DOMRefs.filterByHasPrice.data("value")&&objSelf.objFinder.updateModelDisplayHavingPrices(),objSelf.DOMRefs.keywordSearchBox.val()!=""&&objSelf.objFinder.keywordSearchModels.length==0)for(var n in objSelf.objFinder.modelAttributes)objSelf.objFinder.modelAttributes[n].display=!1;objSelf.updateAttributeOptionsByVisibleModelsAttributes()}};products.Category.prototype.updateModelListRuntimeDetails=function(n){var t=this,s=typeof n!="undefined"?!0:!1,u,e,o,r,f,i;if($(".runtime-group",t.DOMRefs.productsItem).each(function(n,t){t.remove()}),!s)for(f in t.objFinder.runtimeModels){for(r=t.objFinder.runtimeModels[f],e=$("#model_"+f,t.DOMRefs.modelList),o=$(".itemName",e),u=t.DOMEls.div.clone().addClass("rt"),runtimeHeadLeft=t.DOMEls.div.clone().addClass("rt-cell rt-cell40 rt-head").append(t.DOMEls.bold.clone().html("Runtime")),runtimeHeadRight=t.DOMEls.div.clone().addClass("rt-cell rt-cell60 rt-head").append(t.DOMEls.bold.clone().html("Battery Packs")),u.append(runtimeHeadLeft).append(runtimeHeadRight),i=0;i<r.length;i++)runtimeMins=t.DOMEls.div.clone().addClass("rt-cell rt-cell40").html(Math.round(r[i].minutes_runtime)+" min"),runtimeBatt=t.DOMEls.div.clone().addClass("rt-cell rt-cell60"),runtimeBatt.html(r[i].battery_description=="Included Batteries"||r[i].battery_description=="INCLUDED BATTERIES"?"Included Batteries":"("+r[i].battery_qty+") "+r[i].battery_description),u.append(runtimeMins).append(runtimeBatt);u.insertAfter(o)}};products.Category.prototype.updateModelsHavingPrices=function(){var n=this;$("a.checkPrices").each(function(t,i){var r=$(i).parents(".item").attr("id").substring(6);n.objFinder.modelsHavingPrices.push(r)})};products.Category.prototype.updateRuntimeModels=function(n){var t=this,r=typeof n!="undefined"?!0:!1,f=t.objFinder.isPositiveInteger(t.DOMRefs.upsLoad.val())?t.DOMRefs.upsLoad.val():1500,i=t.objFinder.isPositiveInteger(t.DOMRefs.upsMinRt.val())?t.DOMRefs.upsMinRt.val():30,u=t.objFinder.isPositiveInteger(t.DOMRefs.upsMaxRt.val())?t.DOMRefs.upsMaxRt.val():t.objFinder.calcMaxRuntime(i);r?(t.objFinder.runtimeModels={},t.updateAndFilterByAttributesAndModelObjects(),t.updateModelListRuntimeDetails(r)):$.ajax({url:"/api/products/getModelsByRuntimes",data:{load:f,minRT:i,maxRT:u},success:function(n){n.Success?(t.objFinder.runtimeModels=n.Data,t.updateAndFilterByAttributesAndModelObjects(),t.updateModelListRuntimeDetails()):(t.userFilterRemoveByFilterValue(t.DOMRefs.runtime.find("h5").text()+": "+i+"-"+u),n.Message=="SQL_NO_MATCHES"?alert(t.DOMRefs.rbLoadRuntimeSQLNoMatches.val()):alert(t.DOMRefs.rbRuntimErrorRetrieving.val()+": "+n.Message))},cache:!1})};products.Category.prototype.userFilterAdd=function(n,t,i){var r=this,e='<button type="button" class="btn btn-grey invert" data-btn-value="'+n+'">'+t+"<\/button>",o='<button type="button" class="btn btn-grey remove" data-btn-value="'+n+'"><span>&times;<\/span><\/button>',u='<div class="'+i+' btn-group btn-group-xs">'+e+o+"<\/div>",f;switch(i){case"typeBtn":r.DOMRefs.userFilterButtons.prepend(u);break;case"subTypeBtn":f=$(".typeBtn",r.DOMRefs.userFilters);f.length?$(u).insertAfter(f):r.DOMRefs.userFilterButtons.prepend(u);break;default:r.DOMRefs.userFilterButtons.append(u)}};products.Category.prototype.userFilterRemoveByFilterValue=function(n){var t=this;$("button",t.DOMRefs.userFilters).each(function(){var t=$(this);t.data("btn-value")==n&&t.parents(".btn-group").remove()})};products.Category.prototype.userFilterRemoveByClassName=function(n){var t=this,i=$(".btn-group",t.DOMRefs.userFilters);i.each(function(){currButton=$(this);currButton.hasClass(n)&&currButton.remove()})};products.Category.prototype.updateVisitorPreferences=function(){var n=this,t,r=n.objVisitorPrefs.memento(),i="";if(n.DOMRefs.view.find("a").each(function(){if(!$(this).hasClass("invert")){var n=$(this).attr("id");switch(n){case"grid":i="1";break;case"list":i="2"}}}),i!==undefined){switch(parseInt(i)){case 1:t="grid";break;case 2:t="list";break;case 3:t="listCondensed"}t!==r.categoryPage.displayStyle&&(n.DOMRefs.styleID.val(i),n.objVisitorPrefs.categoryPage.displayStyle(t),n.objVisitorPrefs.saveToLocalStorage())}};products.Category.prototype.jumpBreadcrumbProductGroup=function(){var n=$("#breadcrumb-productGroups").find("option:selected"),t=n.data("keywords");!0&&(location=tl.basePath+"/products/"+t+"~"+n.data("id"))};products.Category.prototype.createInitialProductListItems=function(n){var t=this;return new Promise(function(i,r){var u=document.createDocumentFragment(),c=Object.keys(t.objFinder.modelAttributes).length,f=n||24,e=0,o,s,h;t.modelsFetchCount=f;for(o in t.objFinder.modelAttributes){if(e++,e>f)break;s=t.objFinder.modelAttributes[o];h=t.createProductListItem(s);u.appendChild(h)}t.DOMRefs.modelList.append(u);t.DOMRefs.productsItem=$("#modelList").find(".item");t.init();t.modelsFetchCount<c?t.DOMRefs.modelListLoadMore.show():t.DOMRefs.modelListLoadMore.hide();t.DOMRefs.tagFilters.show();t.DOMRefs.loading.hide();i(!0);r(new Error("fail"))}).then(function(){t.isIE11||setTimeout(function(){t.createRemainingProductListItemsHidden(t.modelsFetchMax)},1e3)})};products.Category.prototype.createRemainingProductListItemsHidden=function(n){var t=this,e=document.createDocumentFragment(),r=t.modelsFetchCount,h=n||(r==0?24:r==24?96:t.modelsFetchMax),u=0,o="",s,f,i;if(!t.allModelsCreated){for(s in t.objFinder.modelAttributes)if(u++,!(u<=r)){if(u>h)break;f=t.objFinder.modelAttributes[s];t.isIE11?(i=t.createProductListItemString(f),o+=i):(i=t.createProductListItem(f),e.appendChild(i))}t.isIE11?document.getElementById("modelList").innerHTML+=o:t.DOMRefs.modelList.append(e);t.DOMRefs.productsItem=$("#modelList").find(".item");t.checkoffSelectedModels();t.applyVisitorViewPreference();tl.objWishlist.updateFavIcons();t.allModelsCreated=n==t.modelsFetchMax||t.modelsFetchCount==t.modelsFetchMax}};products.Category.prototype.createRemainingProductListItemsHiddenPromise=function(n){var t=this;return new Promise(function(i,r){t.createRemainingProductListItemsHidden(n);t.modelsFetchCount=n;t.toggleLoadingIcon(!1);i();r()})};products.Category.prototype.createProductListItemString=function(n){var i=this,c=n.modelID,u="/"+n.urlKeywords+"~"+c,f=n.imageFileName!=""?i.DOMRefs.azureBlobStorageHost.val()+"/small-image/"+n.imageFileName.replace(/-(l|xl|m|s|t)/g,"-s"):i.DOMRefs.coreSiteImageContainer.val()+"placeholder.png",l=n.imageFileName!=""?i.DOMRefs.azureBlobStorageHost.val()+"/medium-image/"+n.imageFileName.replace(/-(l|xl|m|s|t)/g,"-m"):i.DOMRefs.coreSiteImageContainer.val()+"placeholder.png",e=n.keyAttributes,t='<div class="item product-line-'+n.productLine+'" id="model_'+n.modelID+'">',o,h,r,s;for(t+='<div class="itemImage">',t+='<a class="gtmMoreInfo" href="'+u+'" data-number="'+n.modelNumber+'" data-source="category" data-model-number="'+n.modelNumber+'" data-clean-model-number="'+n.modelID+'">',t+='<img class="img-responsive" data-medium-image="'+l+'" data-small-image="'+f+'" data-original="'+f+'" alt="'+n.modelNumber+'" />',t+='<span class="fav gtmAddFavs" data-source="category" data-model-number="'+n.modelNumber+'" data-clean-model-number="'+n.modelID+'">',t+='<i class="fas fa-heart-circle fa-2x"><\/i>',t+="<\/span>",t+="<\/a>",t+="<\/div>",t+='<div class="itemDetails">',t+="<div>",n.isNew&&(t+='<span class="tag tag-blue">New<\/span>'),t+='<a class="itemAnchor gtmMoreInfo" href="'+u+'" data-number="'+n.modelNumber+'" data-source="category" data-model-number="'+n.modelNumber+'" data-clean-model-number="'+n.modelID+'"><span class="itemNumber">'+n.modelNumber+"<\/span><\/a>",i.requestContext.IsGeneric||i.requestContext.Pid!=0||(i.requestContext.ShowAvgRating&&n.avgRating!=0&&(o=Math.round(n.avgRating*2)/2,h=o*20,t+='<div class="rating rating-stars stars69x13"> \t\t\t\t\t\t\t<div class="rating-stars-grad" style="width: '+h+'%!important;"><\/div> \t\t\t\t\t\t \t<div class="rating-stars-img" title="'+o+'/5"><\/div> \t\t\t\t\t    <\/div>'),i.requestContext.ShowCompareOption&&(t+='<span class="compareSpan"> \t                        <a class="selectModel gtmAddCompare" href="javascript:void(0);" data-id="'+n.modelNumber+'" data-model-number="'+n.modelNumber+'" data-clean-model-number="'+n.modelID+'" data-thumbnail="'+n.imageFileName+'" data-number="'+n.modelNumber+'" data-source="product"> \t\t\t\t\t\t\t\t<span class="selectBox selectBox-unchecked"><\/span> \t\t\t\t\t\t\t<\/a> \t\t\t\t\t\t\t<a class="compareLink" href="/products/model-compare" title="Compare selected products"> &nbsp;'+i.DOMRefs.rbCompare.val()+" <\/a> \t\t\t\t\t\t<\/span>")),t+="<\/div>",t+='<p class="itemName" data-product-name="'+n.productName+'">'+n.productName+"<\/p>",t+="<\/div>",t+='<div class="itemSpecs"><ul>',r=0;r<e.length;r++)for(s in e[r])t+="<li><span>"+s+":&nbsp;<\/span>"+e[r][s]+"<\/li>";t+="<\/ul><\/div>";t+='<div class="itemCta">';t+='<a class="btn btn-xs btn-blue gtmMoreInfo" href="'+u+'" data-number="'+n.modelNumber+'" data-source="category">'+i.DOMRefs.rbMoreInfo.val()+"<\/a>";t+='<a class="btn btn-xs btn-grey invert wishlist gtmAddFavs" href="javascript:void(0);" data-number="'+n.modelNumber+'" data-source="category" data-itemId="'+i.stripTerm(n.modelNumber)+'" data-partNumber="'+n.modelNumber+'" data-productNumber="'+i.stripTerm(n.modelNumber)+'" data-description="'+n.productName+'" data-quantity="1" data-imageFile="'+f+'" data-keywords="'+n.urlKeywords+'">'+i.DOMRefs.rbAddToFavorites.val()+"<\/a>";n.hasServiceProduct&&(t+='<a class="services3ph btn btn-xs btn-grey invert gtmServices" href="'+u+'#section-services" data-number="'+n.modelNumber+'" data-source="category">'+i.DOMRefs.rbMenuProductServices.val()+"<\/a>");switch(n.useCallToAction){case 1:t+='<a class="btn btn-xs btn-grey invert wtb kuwtb gtmWtb" data-source="category" data-number="'+n+'" data-partNumber="'+n.modelNumber+'" href="/where-to-buy/resellers" title="'+i.DOMRefs.rbWhereToBuy.val()+'">'+i.DOMRefs.rbWhereToBuy.val()+"<\/a>";break;case 2:case 8:t+='<a class="btn btn-xs btn-grey invert checkPrices modalLink gtmCheckPrice" data-source="category" data-number="'+n.modelNumber+'" data-href="/products/check-prices?sSku='+n.modelID+'&popup=1" data-toggle="modal" data-target="#popCheckPrices">'+i.DOMRefs.rbCheckPrices.val()+"<\/a>";break;case 3:t+='<a class="btn btn-xs btn-grey invert hwo gtmHelpOther kuhwo" data-source="category" data-number="'+n.modelNumber+'" title="'+i.DOMRefs.rbOrderingHelp.val()+'" data-partNumber="'+n.PartNumber+'" data-toggle="modal" data-target="#non3phase-ordering-modal">'+i.DOMRefs.rbOrderingHelp.val()+"<\/a>";break;case 4:t+='<a class="btn btn-xs btn-grey invert hwo gtmHelp3P kuhwo" data-source="category" data-number="'+n.modelNumber+'" title="'+i.DOMRefs.rbOrderingHelp.val()+'" data-partNumber="'+n.modelNumber+'" data-toggle="modal" data-target="#three-phase-ordering-modal">'+i.DOMRefs.rbOrderingHelp.val()+"<\/a>";break;case 5:t+='<a class="btn btn-xs btn-grey invert hwo gtmHelpHc kuhwo" data-source="category" data-number="'+n.modelNumber+'" title="'+i.DOMRefs.rbOrderingHelp.val()+'" data-partNumber="'+n.modelNumber+'" data-toggle="modal" data-target="#healthcare-ordering-modal">'+i.DOMRefs.rbOrderingHelp.val()+"<\/a>";break;case 6:t+='<a class="btn btn-xs btn-grey invert gtmServices" data-source="category" data-number="'+n.modelNumber+'" title="'+i.DOMRefs.rbOnsiteServices.val()+'" data-partNumber="'+n.PartNumber+'" data-toggle="modal" data-target="#onsite-services-3phase-modal">'+i.DOMRefs.rbOrderingHelp.val()+"<\/a>";break;case 7:t+='<a class="btn btn-xs btn-grey invert gtmServices" data-source="category" data-number="'+n.modelNumber+'" title="'+i.DOMRefs.rbOnsiteServices.val()+'" data-partNumber="'+n.PartNumber+'" data-toggle="modal" data-target="#onsite-services-non3phase-modal">'+i.DOMRefs.rbOrderingHelp.val()+"<\/a>"}return t+="<\/div>",t+"<\/div>"};products.Category.prototype.createProductListItem=function(n){var t=this,r=t.createProductListItemImage(n),u=t.createProductListItemDetails(n),f=t.createProductListItemSpecs(n.keyAttributes),i=document.createElement("div");return i.className="item product-line-"+n.productLine+" hide",i.setAttribute("id","model_"+n.modelID),i.appendChild(r),i.appendChild(u),i.appendChild(f),t.requestContext.ShowToolboxOptions&&!t.requestContext.IsGeneric&&t.requestContext.Pid==0&&i.appendChild(t.createProductListItemCtas(n)),i};products.Category.prototype.createProductListItemCtas=function(n){var i=this,u=document.createDocumentFragment(),h=n.modelID,o="/"+n.urlKeywords+"~"+h,c=n.imageFileName!=""?i.DOMRefs.azureBlobStorageHost.val()+"/small-image/"+n.imageFileName.replace(/-(l|xl|m|s|t)/g,"-s"):i.DOMRefs.coreSiteImageContainer.val()+"placeholder.png",f,r,e,t,s;(i.requestContext.IsGeneric||i.requestContext.FinderType=="product")&&(o="/products/product-find-it?cleanProductNumber="+h+"&nolinks=1");i.requestContext.FinderType=="product"&&n.partnerDetailUrl!=null&&(o=n.partnerDetailUrl);f=document.createElement("a");f.className="btn btn-xs btn-blue gtmMoreInfo";f.setAttribute("href",o);f.setAttribute("data-number",n.modelNumber);f.setAttribute("data-source","category");f.innerHTML=i.DOMRefs.rbMoreInfo.val();u.appendChild(f);r=document.createElement("a");r.className="btn btn-xs btn-grey invert wishlist gtmAddFavs";r.setAttribute("href","javascript:void(0);");r.setAttribute("data-number",n.modelNumber);r.setAttribute("data-source","category");r.setAttribute("data-itemId",i.stripTerm(n.modelNumber));r.setAttribute("data-partNumber",n.modelNumber);r.setAttribute("data-productNumber",i.stripTerm(n.modelNumber));r.setAttribute("data-description",n.ProductName);r.setAttribute("data-quantity","1");r.setAttribute("data-imageFile",c);r.setAttribute("data-keywords",n.urlKeywords);r.innerHTML=i.DOMRefs.rbAddToFavorites.val();u.appendChild(r);n.hasServiceProduct&&(e=document.createElement("a"),e.className="services3ph btn btn-xs btn-grey invert gtmServices",e.setAttribute("href",o+"#section-services"),e.setAttribute("data-number",n.modelNumber),e.setAttribute("data-source","category"),e.innerHTML=i.DOMRefs.rbMenuProductServices.val(),u.appendChild(e));t=document.createElement("a");t.innerHTML=i.DOMRefs.rbOrderingHelp.val();t.setAttribute("data-source","category");t.setAttribute("data-number",n.modelNumber);t.setAttribute("data-toggle","modal");switch(n.useCallToAction){case 1:t.innerHTML=i.DOMRefs.rbWhereToBuy.val();t.className="btn btn-xs btn-grey invert wtb kuwtb gtmWtb";t.setAttribute("title",i.DOMRefs.rbWhereToBuy.val());t.setAttribute("href","/where-to-buy/resellers");t.setAttribute("data-partNumber",n.modelNumber);t.removeAttribute("data-toggle");u.appendChild(t);break;case 2:case 8:t.innerHTML=i.DOMRefs.rbCheckPrices.val();t.className="checkPrices btn btn-xs btn-grey invert modalLink gtmCheckPrice";t.setAttribute("data-href","/products/check-prices?sSku="+h+"&popup=1");t.setAttribute("data-target","#popCheckPrices");u.appendChild(t);break;case 3:t.className="btn btn-xs btn-grey invert hwo gtmHelpOther kuhwo";t.setAttribute("title",i.DOMRefs.rbOrderingHelp.val());t.setAttribute("data-partNumber",n.PartNumber);t.setAttribute("data-target","#non3phase-ordering-modal");u.appendChild(t);break;case 4:t.className="btn btn-xs btn-grey invert hwo gtmHelp3P kuhwo";t.setAttribute("title",i.DOMRefs.rbOrderingHelp.val());t.setAttribute("data-partNumber",n.modelNumber);t.setAttribute("data-target","#three-phase-ordering-modal");u.appendChild(t);break;case 5:t.className="btn btn-xs btn-grey invert hwo gtmHelpHc kuhwo";t.setAttribute("title",i.DOMRefs.rbOrderingHelp.val());t.setAttribute("data-partNumber",n.modelNumber);t.setAttribute("data-target","#healthcare-ordering-modal");u.appendChild(t);break;case 6:t.className="btn btn-xs btn-grey invert gtmServices";t.setAttribute("title",i.DOMRefs.rbOnsiteServices.val());t.setAttribute("data-partNumber",n.PartNumber);t.setAttribute("data-target","#onsite-services-3phase-modal");u.appendChild(t);break;case 7:t.className="btn btn-xs btn-grey invert gtmServices";t.setAttribute("title",i.DOMRefs.rbOnsiteServices.val());t.setAttribute("data-partNumber",n.PartNumber);t.setAttribute("data-target","#onsite-services-non3phase-modal");u.appendChild(t)}return s=document.createElement("div"),s.className="itemCta",s.appendChild(u),s};products.Category.prototype.createProductListItemDetails=function(n){var e=this,k=n.modelID,d="/"+n.urlKeywords+"~"+k,o=document.createElement("div"),r,l,a,i,v,s,p,t,u,h,c,w,f;if(o.className="itemDetails",r=document.createElement("div"),n.isNew&&(l=document.createElement("span"),l.className="tag tag-blue",l.innerHTML="New",r.appendChild(l)),a=document.createElement("span"),a.className="itemNumber",a.innerHTML=n.modelNumber,i=document.createElement("a"),i.className="itemAnchor gtmMoreInfo",i.setAttribute("href",d),i.setAttribute("data-source","category"),i.setAttribute("data-number",n.modelNumber),i.setAttribute("data-model-number",n.modelNumber),i.setAttribute("data-clean-model-number",n.modelID),i.appendChild(a),r.appendChild(i),!e.requestContext.IsGeneric&&e.requestContext.Pid==0){if(e.requestContext.ShowAvgRating&&n.avgRating!=0){var b=Math.round(n.avgRating*2)/2,g=b*20,y=document.createElement("div");y.className="rating-stars-grad";y.setAttribute("style","width: "+g+"%!important;");v=document.createElement("div");v.className="rating-stars-img";v.setAttribute("title",b+"/5");s=document.createElement("div");s.className="rating rating-stars stars69x13";s.appendChild(y);s.appendChild(v);r.appendChild(s)}e.requestContext.ShowCompareOption&&(p=document.createElement("span"),p.className="selectBox selectBox-unchecked",t=document.createElement("a"),t.className="selectModel gtmAddCompare",t.setAttribute("href","javascript:void(0);"),t.setAttribute("data-id",n.modelNumber),t.setAttribute("data-source","product"),t.setAttribute("data-number",n.modelNumber),t.setAttribute("data-model-number",n.modelNumber),t.setAttribute("data-clean-model-number",n.modelID),t.setAttribute("data-thumbnail",n.imageFileName),t.appendChild(p),u=document.createElement("a"),u.className="compareLink",u.setAttribute("href","/products/model-compare"),u.setAttribute("title","Compare selected products"),u.innerHTML="&nbsp;"+e.DOMRefs.rbCompare.val(),h=document.createElement("span"),h.className="compareSpan",h.appendChild(t),h.appendChild(u),r.appendChild(h))}return o.appendChild(r),c=document.createElement("p"),c.className="itemName",c.setAttribute("data-product-name",n.productName),c.innerHTML=n.productName,o.appendChild(c),n.avgPrice!=null&&(w=document.createElement("span"),w.innerHTML="Avg. Price: ",f=document.createElement("p"),f.className="itemPrice",f.setAttribute("data-product-name",n.productName),f.appendChild(w),f.innerHTML="$"+n.avgPrice,o.appendChild(f)),o};products.Category.prototype.createProductListItemImage=function(n){var u=this,s=n.modelID,h="/"+n.urlKeywords+"~"+s,e=n.imageFileName!=""?u.DOMRefs.azureBlobStorageHost.val()+"/small-image/"+n.imageFileName.replace(/-(l|xl|m|s|t)/g,"-s"):u.DOMRefs.coreSiteImageContainer.val()+"placeholder.png",c=n.imageFileName!=""?u.DOMRefs.azureBlobStorageHost.val()+"/medium-image/"+n.imageFileName.replace(/-(l|xl|m|s|t)/g,"-m"):u.DOMRefs.coreSiteImageContainer.val()+"placeholder.png",o=document.createElement("i"),i,r,t,f;return o.className="fas fa-heart-circle fa-2x",i=document.createElement("span"),i.className="fav gtmAddFavs",i.setAttribute("data-source","category"),i.setAttribute("data-model-number",n.modelNumber),i.setAttribute("data-clean-model-number",n.modelID),i.appendChild(o),r=document.createElement("img"),r.className="img-responsive",r.setAttribute("data-medium-image",c),r.setAttribute("data-small-image",e),r.setAttribute("data-original",e),r.setAttribute("alt",n.modelNumber),t=document.createElement("a"),t.className="gtmMoreInfo",t.setAttribute("href",h),t.setAttribute("data-source","category"),t.setAttribute("data-number",n.modelNumber),t.setAttribute("data-model-number",n.modelNumber),t.setAttribute("data-clean-model-number",n.modelID),t.appendChild(r),t.appendChild(i),f=document.createElement("div"),f.className="itemImage",f.appendChild(t),f};products.Category.prototype.createProductListItemSpecs=function(n){for(var u,f,i,e,r,s=this,o=document.createDocumentFragment(),t=0;t<n.length;t++)for(u in n[t])f=document.createElement("span"),f.innerHTML=u+":&nbsp;",i=document.createElement("li"),i.appendChild(f),i.appendChild(document.createTextNode(n[t][u])),o.appendChild(i);return e=document.createElement("ul"),e.appendChild(o),r=document.createElement("div"),r.className="itemSpecs",r.appendChild(e),r};products.Category.prototype.revealProductListItems=function(n){var t=this,f=Object.keys(t.objFinder.modelAttributes).length,i=t.modelsFetchCount,r=n||(i==0?24:i==24?96:t.modelsFetchMax),u=0;return new Promise(function(n){var o,e;if(t.createRemainingProductListItemsHidden(r),t.modelsFetchCount<t.modelsFetchMax){t.modelsFetchCount=r;for(o in t.objFinder.modelAttributes)if(u++,!(u<=i)){if(u>r)break;e=$("#model_"+o);e.hasClass("hide")&&e.removeClass("hide")}t.applyLazyLoadingGroupImages();t.modelsFetchCount<f?t.DOMRefs.modelListLoadMore.show():t.DOMRefs.modelListLoadMore.hide()}n(!0)})};products.Category.prototype.stripTerm=function(n){var t=this,i=n;return n.replace(/[^A-Za-z0-9]/g,"")};products.Category.prototype.toggleLoadingIcon=function(n){var t=this;if(t.modelsFetchCount==t.modelsFetchMax){t.DOMRefs.modelListLoadMore.hide();t.DOMRefs.modelList.show();t.DOMRefs.loading.hide();return}n?(t.DOMRefs.modelListLoadMore.hide(),t.DOMRefs.modelList.hide(),t.DOMRefs.loading.show()):(t.DOMRefs.loading.hide(),t.DOMRefs.modelList.show())};$(document).ready(function(){productCategoryPage=new products.Category;$("[data-toggle='tooltip']").tooltip();$(".tab-cat-control").click(function(){$("#products").find(".item").find("img.list-group-image").trigger("appear")})});$(window).load(function(){var n=$("#keywordSearchBox").val();typeof n!="undefined"&&n.length&&$("#keywordSearchBox").keyup()});products=namespace("tl.products");products.OrderingHelp=function(){var n=this;this.modelNumber="";this.DOMRefs={non3PhaseModal:$("#non3phase-ordering-modal"),threePhaseModal:$("#three-phase-ordering-modal"),healthcareModal:$("#healthcare-ordering-modal"),microDataCenterModal:$("#micro-data-center-modal"),formOrderingContainer:$(".form-ordering-container"),name:$(".end_user_name"),email:$(".end_user_email"),comments:$(".comments"),formOrderingSubmit:$(".formOrderingSubmit"),submitSuccess:$("#submitSuccess"),submitFail:$("#submitFail")};this.attachModalEvents()};products.OrderingHelp.prototype.attachModalEvents=function(){var n=this;n.DOMRefs.non3PhaseModal.on("show.bs.modal",function(t){n.modelNumber=$(t.relatedTarget).attr("data-number")});n.DOMRefs.threePhaseModal.on("show.bs.modal",function(t){n.modelNumber=$(t.relatedTarget).attr("data-number")});n.DOMRefs.healthcareModal.on("show.bs.modal",function(t){n.modelNumber=$(t.relatedTarget).attr("data-number")});n.DOMRefs.microDataCenterModal.on("show.bs.modal",function(t){n.modelNumber=$(t.relatedTarget).attr("data-number")})};products.OrderingHelp.prototype.closeModal=function(n){event.preventDefault();var t=this,i=n;switch(i){case"3":t.DOMRefs.non3PhaseModal.find(t.DOMRefs.name).val("");t.DOMRefs.non3PhaseModal.find(t.DOMRefs.email).val("");t.DOMRefs.non3PhaseModal.find(t.DOMRefs.comments).val("");t.DOMRefs.non3PhaseModal.find(t.DOMRefs.formOrderingSubmit).removeClass("disabled");t.DOMRefs.non3PhaseModal.find(t.DOMRefs.formOrderingContainer).find("div.btn-success").remove();break;case"4":t.DOMRefs.threePhaseModal.find(t.DOMRefs.name).val("");t.DOMRefs.threePhaseModal.find(t.DOMRefs.email).val("");t.DOMRefs.threePhaseModal.find(t.DOMRefs.comments).val("");t.DOMRefs.threePhaseModal.find(t.DOMRefs.formOrderingSubmit).removeClass("disabled");t.DOMRefs.threePhaseModal.find(t.DOMRefs.formOrderingContainer).find("div.btn-success").remove();break;case"5":t.DOMRefs.healthcareModal.find(t.DOMRefs.name).val("");t.DOMRefs.healthcareModal.find(t.DOMRefs.email).val("");t.DOMRefs.healthcareModal.find(t.DOMRefs.comments).val("");t.DOMRefs.healthcareModal.find(t.DOMRefs.formOrderingSubmit).removeClass("disabled");t.DOMRefs.healthcareModal.find(t.DOMRefs.formOrderingContainer).find("div.btn-success").remove();break;case"8":t.DOMRefs.microDataCenterModal.find(t.DOMRefs.name).val("");t.DOMRefs.microDataCenterModal.find(t.DOMRefs.email).val("");t.DOMRefs.microDataCenterModal.find(t.DOMRefs.comments).val("");t.DOMRefs.microDataCenterModal.find(t.DOMRefs.formOrderingSubmit).removeClass("disabled");t.DOMRefs.microDataCenterModal.find(t.DOMRefs.formOrderingContainer).find("div.btn-success").remove();break;default:t.DOMRefs.healthcareModal.find(t.DOMRefs.name).val("");t.DOMRefs.healthcareModal.find(t.DOMRefs.email).val("");t.DOMRefs.healthcareModal.find(t.DOMRefs.comments).val("");t.DOMRefs.healthcareModal.find(t.DOMRefs.formOrderingSubmit).removeClass("disabled");t.DOMRefs.healthcareModal.find(t.DOMRefs.formOrderingContainer).find("div.btn-success").remove()}};products.OrderingHelp.prototype.sendEmail=function(n){event.preventDefault();var t=this,o=n,r="",u="",i="",s=t.DOMRefs.submitSuccess.val(),h=t.DOMRefs.submitFail.val(),f=1,e=1;switch(o){case"3":r=t.DOMRefs.non3PhaseModal.find(t.DOMRefs.name).val();u=t.DOMRefs.non3PhaseModal.find(t.DOMRefs.email).val();i=t.DOMRefs.non3PhaseModal.find(t.DOMRefs.comments).val().length==0?"(no questions)":t.DOMRefs.non3PhaseModal.find(t.DOMRefs.comments).val();t.modelNumber.length>0&&(i="["+t.modelNumber+"] "+i);r.length===0?t.DOMRefs.non3PhaseModal.find(t.DOMRefs.name).addClass("error"):(t.DOMRefs.non3PhaseModal.find(t.DOMRefs.name).removeClass("error"),f=0);u.length===0?t.DOMRefs.non3PhaseModal.find(t.DOMRefs.email).addClass("error"):(t.DOMRefs.non3PhaseModal.find(t.DOMRefs.email).removeClass("error"),e=0);f===0&&e===0&&$.ajax({url:"/api/products/emailOrderingHelp",data:{formType:o,endUserName:r,endUserEmail:u,comments:i},success:function(){t.DOMRefs.non3PhaseModal.find(t.DOMRefs.formOrderingSubmit).addClass("disabled");t.DOMRefs.non3PhaseModal.find(t.DOMRefs.formOrderingContainer).append("<div class='btn-success'>"+s+"<\/div>")},error:function(){t.DOMRefs.non3PhaseModal.find(t.DOMRefs.formOrderingContainer).append("<div class='btn-danger'>"+h+"<\/div>")}});break;case"4":r=t.DOMRefs.threePhaseModal.find(t.DOMRefs.name).val();u=t.DOMRefs.threePhaseModal.find(t.DOMRefs.email).val();i=t.DOMRefs.threePhaseModal.find(t.DOMRefs.comments).val().length==0?"(no questions)":t.DOMRefs.threePhaseModal.find(t.DOMRefs.comments).val();t.modelNumber.length>0&&(i="["+t.modelNumber+"] "+i);r.length===0?t.DOMRefs.threePhaseModal.find(t.DOMRefs.name).addClass("error"):(t.DOMRefs.threePhaseModal.find(t.DOMRefs.name).removeClass("error"),f=0);u.length===0?t.DOMRefs.threePhaseModal.find(t.DOMRefs.email).addClass("error"):(t.DOMRefs.threePhaseModal.find(t.DOMRefs.email).removeClass("error"),e=0);f===0&&e===0&&$.ajax({url:"/api/products/emailOrderingHelp",data:{formType:o,endUserName:r,endUserEmail:u,comments:i},success:function(){t.DOMRefs.threePhaseModal.find(t.DOMRefs.formOrderingSubmit).addClass("disabled");t.DOMRefs.threePhaseModal.find(t.DOMRefs.formOrderingContainer).append("<div class='btn-success'>"+s+"<\/div>")},error:function(){t.DOMRefs.threePhaseModal.find(t.DOMRefs.formOrderingContainer).append("<div class='btn-danger'>"+h+"<\/div>")}});break;case"5":r=t.DOMRefs.healthcareModal.find(t.DOMRefs.name).val();u=t.DOMRefs.healthcareModal.find(t.DOMRefs.email).val();i=t.DOMRefs.healthcareModal.find(t.DOMRefs.comments).val().length==0?"(no questions)":t.DOMRefs.healthcareModal.find(t.DOMRefs.comments).val();t.modelNumber.length>0&&(i="["+t.modelNumber+"] "+i);r.length===0?t.DOMRefs.healthcareModal.find(t.DOMRefs.name).addClass("error"):(t.DOMRefs.healthcareModal.find(t.DOMRefs.name).removeClass("error"),f=0);u.length===0?t.DOMRefs.healthcareModal.find(t.DOMRefs.email).addClass("error"):(t.DOMRefs.healthcareModal.find(t.DOMRefs.email).removeClass("error"),e=0);f===0&&e===0&&$.ajax({url:"/api/products/emailOrderingHelp",data:{formType:o,endUserName:r,endUserEmail:u,comments:i},success:function(){t.DOMRefs.healthcareModal.find(t.DOMRefs.formOrderingSubmit).addClass("disabled");t.DOMRefs.healthcareModal.find(t.DOMRefs.formOrderingContainer).append("<div class='btn-success'>"+s+"<\/div>")},error:function(){t.DOMRefs.healthcareModal.find(t.DOMRefs.formOrderingContainer).append("<div class='btn-danger'>"+h+"<\/div>")}});break;case"8":r=t.DOMRefs.microDataCenterModal.find(t.DOMRefs.name).val();u=t.DOMRefs.microDataCenterModal.find(t.DOMRefs.email).val();i=t.DOMRefs.microDataCenterModal.find(t.DOMRefs.comments).val().length==0?"(no questions)":t.DOMRefs.microDataCenterModal.find(t.DOMRefs.comments).val();t.modelNumber.length>0&&(i="["+t.modelNumber+"] "+i);r.length===0?t.DOMRefs.microDataCenterModal.find(t.DOMRefs.name).addClass("error"):(t.DOMRefs.microDataCenterModal.find(t.DOMRefs.name).removeClass("error"),f=0);u.length===0?t.DOMRefs.microDataCenterModal.find(t.DOMRefs.email).addClass("error"):(t.DOMRefs.microDataCenterModal.find(t.DOMRefs.email).removeClass("error"),e=0);f===0&&e===0&&$.ajax({url:"/api/products/emailOrderingHelp",data:{formType:o,endUserName:r,endUserEmail:u,comments:i},success:function(){t.DOMRefs.microDataCenterModal.find(t.DOMRefs.formOrderingSubmit).addClass("disabled");t.DOMRefs.microDataCenterModal.find(t.DOMRefs.formOrderingContainer).append("<div class='btn-success'>"+s+"<\/div>")},error:function(){t.DOMRefs.microDataCenterModal.find(t.DOMRefs.formOrderingContainer).append("<div class='btn-danger'>"+h+"<\/div>")}})}};$(document).ready(function(){objOrderingHelp=new products.OrderingHelp})