/* qTip2 v2.2.1 | Plugins: tips modal viewport svg imagemap ie6 | Styles: core basic css3 | qtip2.com | Licensed MIT | Sun Sep 07 2014 00:09:27 */
!function(a,b,c){!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):jQuery&&!jQuery.fn.qtip&&a(jQuery)}(function(d){"use strict";function e(a,b,c,e){this.id=c,this.target=a,this.tooltip=F,this.elements={target:a},this._id=S+"-"+c,this.timers={img:{}},this.options=b,this.plugins={},this.cache={event:{},target:d(),disabled:E,attr:e,onTooltip:E,lastClass:""},this.rendered=this.destroyed=this.disabled=this.waiting=this.hiddenDuringWait=this.positioning=this.triggering=E}function f(a){return a===F||"object"!==d.type(a)}function g(a){return!(d.isFunction(a)||a&&a.attr||a.length||"object"===d.type(a)&&(a.jquery||a.then))}function h(a){var b,c,e,h;return f(a)?E:(f(a.metadata)&&(a.metadata={type:a.metadata}),"content"in a&&(b=a.content,f(b)||b.jquery||b.done?b=a.content={text:c=g(b)?E:b}:c=b.text,"ajax"in b&&(e=b.ajax,h=e&&e.once!==E,delete b.ajax,b.text=function(a,b){var f=c||d(this).attr(b.options.content.attr)||"Loading...",g=d.ajax(d.extend({},e,{context:b})).then(e.success,F,e.error).then(function(a){return a&&h&&b.set("content.text",a),a},function(a,c,d){b.destroyed||0===a.status||b.set("content.text",c+": "+d)});return h?f:(b.set("content.text",f),g)}),"title"in b&&(d.isPlainObject(b.title)&&(b.button=b.title.button,b.title=b.title.text),g(b.title||E)&&(b.title=E))),"position"in a&&f(a.position)&&(a.position={my:a.position,at:a.position}),"show"in a&&f(a.show)&&(a.show=a.show.jquery?{target:a.show}:a.show===D?{ready:D}:{event:a.show}),"hide"in a&&f(a.hide)&&(a.hide=a.hide.jquery?{target:a.hide}:{event:a.hide}),"style"in a&&f(a.style)&&(a.style={classes:a.style}),d.each(R,function(){this.sanitize&&this.sanitize(a)}),a)}function i(a,b){for(var c,d=0,e=a,f=b.split(".");e=e[f[d++]];)d0?setTimeout(d.proxy(a,this),b):void a.call(this)}function m(a){this.tooltip.hasClass(ab)||(clearTimeout(this.timers.show),clearTimeout(this.timers.hide),this.timers.show=l.call(this,function(){this.toggle(D,a)},this.options.show.delay))}function n(a){if(!this.tooltip.hasClass(ab)&&!this.destroyed){var b=d(a.relatedTarget),c=b.closest(W)[0]===this.tooltip[0],e=b[0]===this.options.show.target[0];if(clearTimeout(this.timers.show),clearTimeout(this.timers.hide),this!==b[0]&&"mouse"===this.options.position.target&&c||this.options.hide.fixed&&/mouse(out|leave|move)/.test(a.type)&&(c||e))try{a.preventDefault(),a.stopImmediatePropagation()}catch(f){}else this.timers.hide=l.call(this,function(){this.toggle(E,a)},this.options.hide.delay,this)}}function o(a){!this.tooltip.hasClass(ab)&&this.options.hide.inactive&&(clearTimeout(this.timers.inactive),this.timers.inactive=l.call(this,function(){this.hide(a)},this.options.hide.inactive))}function p(a){this.rendered&&this.tooltip[0].offsetWidth>0&&this.reposition(a)}function q(a,c,e){d(b.body).delegate(a,(c.split?c:c.join("."+S+" "))+"."+S,function(){var a=y.api[d.attr(this,U)];a&&!a.disabled&&e.apply(a,arguments)})}function r(a,c,f){var g,i,j,k,l,m=d(b.body),n=a[0]===b?m:a,o=a.metadata?a.metadata(f.metadata):F,p="html5"===f.metadata.type&&o?o[f.metadata.name]:F,q=a.data(f.metadata.name||"qtipopts");try{q="string"==typeof q?d.parseJSON(q):q}catch(r){}if(k=d.extend(D,{},y.defaults,f,"object"==typeof q?h(q):F,h(p||o)),i=k.position,k.id=c,"boolean"==typeof k.content.text){if(j=a.attr(k.content.attr),k.content.attr===E||!j)return E;k.content.text=j}if(i.container.length||(i.container=m),i.target===E&&(i.target=n),k.show.target===E&&(k.show.target=n),k.show.solo===D&&(k.show.solo=i.container.closest("body")),k.hide.target===E&&(k.hide.target=n),k.position.viewport===D&&(k.position.viewport=i.container),i.container=i.container.eq(0),i.at=new A(i.at,D),i.my=new A(i.my),a.data(S))if(k.overwrite)a.qtip("destroy",!0);else if(k.overwrite===E)return E;return a.attr(T,c),k.suppress&&(l=a.attr("title"))&&a.removeAttr("title").attr(cb,l).attr("title",""),g=new e(a,k,c,!!j),a.data(S,g),g}function s(a){return a.charAt(0).toUpperCase()+a.slice(1)}function t(a,b){var d,e,f=b.charAt(0).toUpperCase()+b.slice(1),g=(b+" "+rb.join(f+" ")+f).split(" "),h=0;if(qb[b])return a.css(qb[b]);for(;d=g[h++];)if((e=a.css(d))!==c)return qb[b]=d,e}function u(a,b){return Math.ceil(parseFloat(t(a,b)))}function v(a,b){this._ns="tip",this.options=b,this.offset=b.offset,this.size=[b.width,b.height],this.init(this.qtip=a)}function w(a,b){this.options=b,this._ns="-modal",this.init(this.qtip=a)}function x(a){this._ns="ie6",this.init(this.qtip=a)}var y,z,A,B,C,D=!0,E=!1,F=null,G="x",H="y",I="width",J="height",K="top",L="left",M="bottom",N="right",O="center",P="flipinvert",Q="shift",R={},S="qtip",T="data-hasqtip",U="data-qtip-id",V=["ui-widget","ui-tooltip"],W="."+S,X="click dblclick mousedown mouseup mousemove mouseleave mouseenter".split(" "),Y=S+"-fixed",Z=S+"-default",$=S+"-focus",_=S+"-hover",ab=S+"-disabled",bb="_replacedByqTip",cb="oldtitle",db={ie:function(){for(var a=4,c=b.createElement("div");(c.innerHTML="")&&c.getElementsByTagName("i")[0];a+=1);return a>4?a:0/0}(),iOS:parseFloat((""+(/CPU.*OS ([0-9_]{1,5})|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))||E};z=e.prototype,z._when=function(a){return d.when.apply(d,a)},z.render=function(a){if(this.rendered||this.destroyed)return this;var b,c=this,e=this.options,f=this.cache,g=this.elements,h=e.content.text,i=e.content.title,j=e.content.button,k=e.position,l=("."+this._id+" ",[]);return d.attr(this.target[0],"aria-describedby",this._id),f.posClass=this._createPosClass((this.position={my:k.my,at:k.at}).my),this.tooltip=g.tooltip=b=d("
",{id:this._id,"class":[S,Z,e.style.classes,f.posClass].join(" "),width:e.style.width||"",height:e.style.height||"",tracking:"mouse"===k.target&&k.adjust.mouse,role:"alert","aria-live":"polite","aria-atomic":E,"aria-describedby":this._id+"-content","aria-hidden":D}).toggleClass(ab,this.disabled).attr(U,this.id).data(S,this).appendTo(k.container).append(g.content=d("
",{"class":S+"-content",id:this._id+"-content","aria-atomic":D})),this.rendered=-1,this.positioning=D,i&&(this._createTitle(),d.isFunction(i)||l.push(this._updateTitle(i,E))),j&&this._createButton(),d.isFunction(h)||l.push(this._updateContent(h,E)),this.rendered=D,this._setWidget(),d.each(R,function(a){var b;"render"===this.initialize&&(b=this(c))&&(c.plugins[a]=b)}),this._unassignEvents(),this._assignEvents(),this._when(l).then(function(){c._trigger("render"),c.positioning=E,c.hiddenDuringWait||!e.show.ready&&!a||c.toggle(D,f.event,E),c.hiddenDuringWait=E}),y.api[this.id]=this,this},z.destroy=function(a){function b(){if(!this.destroyed){this.destroyed=D;var a,b=this.target,c=b.attr(cb);this.rendered&&this.tooltip.stop(1,0).find("*").remove().end().remove(),d.each(this.plugins,function(){this.destroy&&this.destroy()});for(a in this.timers)clearTimeout(this.timers[a]);b.removeData(S).removeAttr(U).removeAttr(T).removeAttr("aria-describedby"),this.options.suppress&&c&&b.attr("title",c).removeAttr(cb),this._unassignEvents(),this.options=this.elements=this.cache=this.timers=this.plugins=this.mouse=F,delete y.api[this.id]}}return this.destroyed?this.target:(a===D&&"hide"!==this.triggering||!this.rendered?b.call(this):(this.tooltip.one("tooltiphidden",d.proxy(b,this)),!this.triggering&&this.hide()),this.target)},B=z.checks={builtin:{"^id$":function(a,b,c,e){var f=c===D?y.nextid:c,g=S+"-"+f;f!==E&&f.length>0&&!d("#"+g).length?(this._id=g,this.rendered&&(this.tooltip[0].id=this._id,this.elements.content[0].id=this._id+"-content",this.elements.title[0].id=this._id+"-title")):a[b]=e},"^prerender":function(a,b,c){c&&!this.rendered&&this.render(this.options.show.ready)},"^content.text$":function(a,b,c){this._updateContent(c)},"^content.attr$":function(a,b,c,d){this.options.content.text===this.target.attr(d)&&this._updateContent(this.target.attr(c))},"^content.title$":function(a,b,c){return c?(c&&!this.elements.title&&this._createTitle(),void this._updateTitle(c)):this._removeTitle()},"^content.button$":function(a,b,c){this._updateButton(c)},"^content.title.(text|button)$":function(a,b,c){this.set("content."+b,c)},"^position.(my|at)$":function(a,b,c){"string"==typeof c&&(this.position[b]=a[b]=new A(c,"at"===b))},"^position.container$":function(a,b,c){this.rendered&&this.tooltip.appendTo(c)},"^show.ready$":function(a,b,c){c&&(!this.rendered&&this.render(D)||this.toggle(D))},"^style.classes$":function(a,b,c,d){this.rendered&&this.tooltip.removeClass(d).addClass(c)},"^style.(width|height)":function(a,b,c){this.rendered&&this.tooltip.css(b,c)},"^style.widget|content.title":function(){this.rendered&&this._setWidget()},"^style.def":function(a,b,c){this.rendered&&this.tooltip.toggleClass(Z,!!c)},"^events.(render|show|move|hide|focus|blur)$":function(a,b,c){this.rendered&&this.tooltip[(d.isFunction(c)?"":"un")+"bind"]("tooltip"+b,c)},"^(show|hide|position).(event|target|fixed|inactive|leave|distance|viewport|adjust)":function(){if(this.rendered){var a=this.options.position;this.tooltip.attr("tracking","mouse"===a.target&&a.adjust.mouse),this._unassignEvents(),this._assignEvents()}}}},z.get=function(a){if(this.destroyed)return this;var b=i(this.options,a.toLowerCase()),c=b[0][b[1]];return c.precedance?c.string():c};var eb=/^position\.(my|at|adjust|target|container|viewport)|style|content|show\.ready/i,fb=/^prerender|show\.ready/i;z.set=function(a,b){if(this.destroyed)return this;{var c,e=this.rendered,f=E,g=this.options;this.checks}return"string"==typeof a?(c=a,a={},a[c]=b):a=d.extend({},a),d.each(a,function(b,c){if(e&&fb.test(b))return void delete a[b];var h,j=i(g,b.toLowerCase());h=j[0][j[1]],j[0][j[1]]=c&&c.nodeType?d(c):c,f=eb.test(b)||f,a[b]=[j[0],j[1],c,h]}),h(g),this.positioning=D,d.each(a,d.proxy(j,this)),this.positioning=E,this.rendered&&this.tooltip[0].offsetWidth>0&&f&&this.reposition("mouse"===g.position.target?F:this.cache.event),this},z._update=function(a,b){var c=this,e=this.cache;return this.rendered&&a?(d.isFunction(a)&&(a=a.call(this.elements.target,e.event,this)||""),d.isFunction(a.then)?(e.waiting=D,a.then(function(a){return e.waiting=E,c._update(a,b)},F,function(a){return c._update(a,b)})):a===E||!a&&""!==a?E:(a.jquery&&a.length>0?b.empty().append(a.css({display:"block",visibility:"visible"})):b.html(a),this._waitForContent(b).then(function(a){c.rendered&&c.tooltip[0].offsetWidth>0&&c.reposition(e.event,!a.length)}))):E},z._waitForContent=function(a){var b=this.cache;return b.waiting=D,(d.fn.imagesLoaded?a.imagesLoaded():d.Deferred().resolve([])).done(function(){b.waiting=E}).promise()},z._updateContent=function(a,b){this._update(a,this.elements.content,b)},z._updateTitle=function(a,b){this._update(a,this.elements.title,b)===E&&this._removeTitle(E)},z._createTitle=function(){var a=this.elements,b=this._id+"-title";a.titlebar&&this._removeTitle(),a.titlebar=d("
",{"class":S+"-titlebar "+(this.options.style.widget?k("header"):"")}).append(a.title=d("
",{id:b,"class":S+"-title","aria-atomic":D})).insertBefore(a.content).delegate(".qtip-close","mousedown keydown mouseup keyup mouseout",function(a){d(this).toggleClass("ui-state-active ui-state-focus","down"===a.type.substr(-4))}).delegate(".qtip-close","mouseover mouseout",function(a){d(this).toggleClass("ui-state-hover","mouseover"===a.type)}),this.options.content.button&&this._createButton()},z._removeTitle=function(a){var b=this.elements;b.title&&(b.titlebar.remove(),b.titlebar=b.title=b.button=F,a!==E&&this.reposition())},z._createPosClass=function(a){return S+"-pos-"+(a||this.options.position.my).abbrev()},z.reposition=function(c,e){if(!this.rendered||this.positioning||this.destroyed)return this;this.positioning=D;var f,g,h,i,j=this.cache,k=this.tooltip,l=this.options.position,m=l.target,n=l.my,o=l.at,p=l.viewport,q=l.container,r=l.adjust,s=r.method.split(" "),t=k.outerWidth(E),u=k.outerHeight(E),v=0,w=0,x=k.css("position"),y={left:0,top:0},z=k[0].offsetWidth>0,A=c&&"scroll"===c.type,B=d(a),C=q[0].ownerDocument,F=this.mouse;if(d.isArray(m)&&2===m.length)o={x:L,y:K},y={left:m[0],top:m[1]};else if("mouse"===m)o={x:L,y:K},(!r.mouse||this.options.hide.distance)&&j.origin&&j.origin.pageX?c=j.origin:!c||c&&("resize"===c.type||"scroll"===c.type)?c=j.event:F&&F.pageX&&(c=F),"static"!==x&&(y=q.offset()),C.body.offsetWidth!==(a.innerWidth||C.documentElement.clientWidth)&&(g=d(b.body).offset()),y={left:c.pageX-y.left+(g&&g.left||0),top:c.pageY-y.top+(g&&g.top||0)},r.mouse&&A&&F&&(y.left-=(F.scrollX||0)-B.scrollLeft(),y.top-=(F.scrollY||0)-B.scrollTop());else{if("event"===m?c&&c.target&&"scroll"!==c.type&&"resize"!==c.type?j.target=d(c.target):c.target||(j.target=this.elements.target):"event"!==m&&(j.target=d(m.jquery?m:this.elements.target)),m=j.target,m=d(m).eq(0),0===m.length)return this;m[0]===b||m[0]===a?(v=db.iOS?a.innerWidth:m.width(),w=db.iOS?a.innerHeight:m.height(),m[0]===a&&(y={top:(p||m).scrollTop(),left:(p||m).scrollLeft()})):R.imagemap&&m.is("area")?f=R.imagemap(this,m,o,R.viewport?s:E):R.svg&&m&&m[0].ownerSVGElement?f=R.svg(this,m,o,R.viewport?s:E):(v=m.outerWidth(E),w=m.outerHeight(E),y=m.offset()),f&&(v=f.width,w=f.height,g=f.offset,y=f.position),y=this.reposition.offset(m,y,q),(db.iOS>3.1&&db.iOS<4.1||db.iOS>=4.3&&db.iOS<4.33||!db.iOS&&"fixed"===x)&&(y.left-=B.scrollLeft(),y.top-=B.scrollTop()),(!f||f&&f.adjustable!==E)&&(y.left+=o.x===N?v:o.x===O?v/2:0,y.top+=o.y===M?w:o.y===O?w/2:0)}return y.left+=r.x+(n.x===N?-t:n.x===O?-t/2:0),y.top+=r.y+(n.y===M?-u:n.y===O?-u/2:0),R.viewport?(h=y.adjusted=R.viewport(this,y,l,v,w,t,u),g&&h.left&&(y.left+=g.left),g&&h.top&&(y.top+=g.top),h.my&&(this.position.my=h.my)):y.adjusted={left:0,top:0},j.posClass!==(i=this._createPosClass(this.position.my))&&k.removeClass(j.posClass).addClass(j.posClass=i),this._trigger("move",[y,p.elem||p],c)?(delete y.adjusted,e===E||!z||isNaN(y.left)||isNaN(y.top)||"mouse"===m||!d.isFunction(l.effect)?k.css(y):d.isFunction(l.effect)&&(l.effect.call(k,this,d.extend({},y)),k.queue(function(a){d(this).css({opacity:"",height:""}),db.ie&&this.style.removeAttribute("filter"),a()})),this.positioning=E,this):this},z.reposition.offset=function(a,c,e){function f(a,b){c.left+=b*a.scrollLeft(),c.top+=b*a.scrollTop()}if(!e[0])return c;var g,h,i,j,k=d(a[0].ownerDocument),l=!!db.ie&&"CSS1Compat"!==b.compatMode,m=e[0];do"static"!==(h=d.css(m,"position"))&&("fixed"===h?(i=m.getBoundingClientRect(),f(k,-1)):(i=d(m).position(),i.left+=parseFloat(d.css(m,"borderLeftWidth"))||0,i.top+=parseFloat(d.css(m,"borderTopWidth"))||0),c.left-=i.left+(parseFloat(d.css(m,"marginLeft"))||0),c.top-=i.top+(parseFloat(d.css(m,"marginTop"))||0),g||"hidden"===(j=d.css(m,"overflow"))||"visible"===j||(g=d(m)));while(m=m.offsetParent);return g&&(g[0]!==k[0]||l)&&f(g,1),c};var gb=(A=z.reposition.Corner=function(a,b){a=(""+a).replace(/([A-Z])/," $1").replace(/middle/gi,O).toLowerCase(),this.x=(a.match(/left|right/i)||a.match(/center/)||["inherit"])[0].toLowerCase(),this.y=(a.match(/top|bottom|center/i)||["inherit"])[0].toLowerCase(),this.forceY=!!b;var c=a.charAt(0);this.precedance="t"===c||"b"===c?H:G}).prototype;gb.invert=function(a,b){this[a]=this[a]===L?N:this[a]===N?L:b||this[a]},gb.string=function(a){var b=this.x,c=this.y,d=b!==c?"center"===b||"center"!==c&&(this.precedance===H||this.forceY)?[c,b]:[b,c]:[b];return a!==!1?d.join(" "):d},gb.abbrev=function(){var a=this.string(!1);return a[0].charAt(0)+(a[1]&&a[1].charAt(0)||"")},gb.clone=function(){return new A(this.string(),this.forceY)},z.toggle=function(a,c){var e=this.cache,f=this.options,g=this.tooltip;if(c){if(/over|enter/.test(c.type)&&e.event&&/out|leave/.test(e.event.type)&&f.show.target.add(c.target).length===f.show.target.length&&g.has(c.relatedTarget).length)return this;e.event=d.event.fix(c)}if(this.waiting&&!a&&(this.hiddenDuringWait=D),!this.rendered)return a?this.render(1):this;if(this.destroyed||this.disabled)return this;var h,i,j,k=a?"show":"hide",l=this.options[k],m=(this.options[a?"hide":"show"],this.options.position),n=this.options.content,o=this.tooltip.css("width"),p=this.tooltip.is(":visible"),q=a||1===l.target.length,r=!c||l.target.length<2||e.target[0]===c.target;return(typeof a).search("boolean|number")&&(a=!p),h=!g.is(":animated")&&p===a&&r,i=h?F:!!this._trigger(k,[90]),this.destroyed?this:(i!==E&&a&&this.focus(c),!i||h?this:(d.attr(g[0],"aria-hidden",!a),a?(this.mouse&&(e.origin=d.event.fix(this.mouse)),d.isFunction(n.text)&&this._updateContent(n.text,E),d.isFunction(n.title)&&this._updateTitle(n.title,E),!C&&"mouse"===m.target&&m.adjust.mouse&&(d(b).bind("mousemove."+S,this._storeMouse),C=D),o||g.css("width",g.outerWidth(E)),this.reposition(c,arguments[2]),o||g.css("width",""),l.solo&&("string"==typeof l.solo?d(l.solo):d(W,l.solo)).not(g).not(l.target).qtip("hide",d.Event("tooltipsolo"))):(clearTimeout(this.timers.show),delete e.origin,C&&!d(W+'[tracking="true"]:visible',l.solo).not(g).length&&(d(b).unbind("mousemove."+S),C=E),this.blur(c)),j=d.proxy(function(){a?(db.ie&&g[0].style.removeAttribute("filter"),g.css("overflow",""),"string"==typeof l.autofocus&&d(this.options.show.autofocus,g).focus(),this.options.show.target.trigger("qtip-"+this.id+"-inactive")):g.css({display:"",visibility:"",opacity:"",left:"",top:""}),this._trigger(a?"visible":"hidden")},this),l.effect===E||q===E?(g[k](),j()):d.isFunction(l.effect)?(g.stop(1,1),l.effect.call(g,this),g.queue("fx",function(a){j(),a()})):g.fadeTo(90,a?1:0,j),a&&l.target.trigger("qtip-"+this.id+"-inactive"),this))},z.show=function(a){return this.toggle(D,a)},z.hide=function(a){return this.toggle(E,a)},z.focus=function(a){if(!this.rendered||this.destroyed)return this;var b=d(W),c=this.tooltip,e=parseInt(c[0].style.zIndex,10),f=y.zindex+b.length;return c.hasClass($)||this._trigger("focus",[f],a)&&(e!==f&&(b.each(function(){this.style.zIndex>e&&(this.style.zIndex=this.style.zIndex-1)}),b.filter("."+$).qtip("blur",a)),c.addClass($)[0].style.zIndex=f),this},z.blur=function(a){return!this.rendered||this.destroyed?this:(this.tooltip.removeClass($),this._trigger("blur",[this.tooltip.css("zIndex")],a),this)},z.disable=function(a){return this.destroyed?this:("toggle"===a?a=!(this.rendered?this.tooltip.hasClass(ab):this.disabled):"boolean"!=typeof a&&(a=D),this.rendered&&this.tooltip.toggleClass(ab,a).attr("aria-disabled",a),this.disabled=!!a,this)},z.enable=function(){return this.disable(E)},z._createButton=function(){var a=this,b=this.elements,c=b.tooltip,e=this.options.content.button,f="string"==typeof e,g=f?e:"Close tooltip";b.button&&b.button.remove(),b.button=e.jquery?e:d(" ",{"class":"qtip-close "+(this.options.style.widget?"":S+"-icon"),title:g,"aria-label":g}).prepend(d(" ",{"class":"ui-icon ui-icon-close",html:"×"})),b.button.appendTo(b.titlebar||c).attr("role","button").click(function(b){return c.hasClass(ab)||a.hide(b),E})},z._updateButton=function(a){if(!this.rendered)return E;var b=this.elements.button;a?this._createButton():b.remove()},z._setWidget=function(){var a=this.options.style.widget,b=this.elements,c=b.tooltip,d=c.hasClass(ab);c.removeClass(ab),ab=a?"ui-state-disabled":"qtip-disabled",c.toggleClass(ab,d),c.toggleClass("ui-helper-reset "+k(),a).toggleClass(Z,this.options.style.def&&!a),b.content&&b.content.toggleClass(k("content"),a),b.titlebar&&b.titlebar.toggleClass(k("header"),a),b.button&&b.button.toggleClass(S+"-icon",!a)},z._storeMouse=function(a){return(this.mouse=d.event.fix(a)).type="mousemove",this},z._bind=function(a,b,c,e,f){if(a&&c&&b.length){var g="."+this._id+(e?"-"+e:"");return d(a).bind((b.split?b:b.join(g+" "))+g,d.proxy(c,f||this)),this}},z._unbind=function(a,b){return a&&d(a).unbind("."+this._id+(b?"-"+b:"")),this},z._trigger=function(a,b,c){var e=d.Event("tooltip"+a);return e.originalEvent=c&&d.extend({},c)||this.cache.event||F,this.triggering=a,this.tooltip.trigger(e,[this].concat(b||[])),this.triggering=E,!e.isDefaultPrevented()},z._bindEvents=function(a,b,c,e,f,g){var h=c.filter(e).add(e.filter(c)),i=[];h.length&&(d.each(b,function(b,c){var e=d.inArray(c,a);e>-1&&i.push(a.splice(e,1)[0])}),i.length&&(this._bind(h,i,function(a){var b=this.rendered?this.tooltip[0].offsetWidth>0:!1;(b?g:f).call(this,a)}),c=c.not(h),e=e.not(h))),this._bind(c,a,f),this._bind(e,b,g)},z._assignInitialEvents=function(a){function b(a){return this.disabled||this.destroyed?E:(this.cache.event=a&&d.event.fix(a),this.cache.target=a&&d(a.target),clearTimeout(this.timers.show),void(this.timers.show=l.call(this,function(){this.render("object"==typeof a||c.show.ready)},c.prerender?0:c.show.delay)))}var c=this.options,e=c.show.target,f=c.hide.target,g=c.show.event?d.trim(""+c.show.event).split(" "):[],h=c.hide.event?d.trim(""+c.hide.event).split(" "):[];this._bind(this.elements.target,["remove","removeqtip"],function(){this.destroy(!0)},"destroy"),/mouse(over|enter)/i.test(c.show.event)&&!/mouse(out|leave)/i.test(c.hide.event)&&h.push("mouseleave"),this._bind(e,"mousemove",function(a){this._storeMouse(a),this.cache.onTarget=D}),this._bindEvents(g,h,e,f,b,function(){return this.timers?void clearTimeout(this.timers.show):E}),(c.show.ready||c.prerender)&&b.call(this,a)},z._assignEvents=function(){var c=this,e=this.options,f=e.position,g=this.tooltip,h=e.show.target,i=e.hide.target,j=f.container,k=f.viewport,l=d(b),q=(d(b.body),d(a)),r=e.show.event?d.trim(""+e.show.event).split(" "):[],s=e.hide.event?d.trim(""+e.hide.event).split(" "):[];d.each(e.events,function(a,b){c._bind(g,"toggle"===a?["tooltipshow","tooltiphide"]:["tooltip"+a],b,null,g)}),/mouse(out|leave)/i.test(e.hide.event)&&"window"===e.hide.leave&&this._bind(l,["mouseout","blur"],function(a){/select|option/.test(a.target.nodeName)||a.relatedTarget||this.hide(a)}),e.hide.fixed?i=i.add(g.addClass(Y)):/mouse(over|enter)/i.test(e.show.event)&&this._bind(i,"mouseleave",function(){clearTimeout(this.timers.show)}),(""+e.hide.event).indexOf("unfocus")>-1&&this._bind(j.closest("html"),["mousedown","touchstart"],function(a){var b=d(a.target),c=this.rendered&&!this.tooltip.hasClass(ab)&&this.tooltip[0].offsetWidth>0,e=b.parents(W).filter(this.tooltip[0]).length>0;b[0]===this.target[0]||b[0]===this.tooltip[0]||e||this.target.has(b[0]).length||!c||this.hide(a)}),"number"==typeof e.hide.inactive&&(this._bind(h,"qtip-"+this.id+"-inactive",o,"inactive"),this._bind(i.add(g),y.inactiveEvents,o)),this._bindEvents(r,s,h,i,m,n),this._bind(h.add(g),"mousemove",function(a){if("number"==typeof e.hide.distance){var b=this.cache.origin||{},c=this.options.hide.distance,d=Math.abs;(d(a.pageX-b.pageX)>=c||d(a.pageY-b.pageY)>=c)&&this.hide(a)}this._storeMouse(a)}),"mouse"===f.target&&f.adjust.mouse&&(e.hide.event&&this._bind(h,["mouseenter","mouseleave"],function(a){return this.cache?void(this.cache.onTarget="mouseenter"===a.type):E}),this._bind(l,"mousemove",function(a){this.rendered&&this.cache.onTarget&&!this.tooltip.hasClass(ab)&&this.tooltip[0].offsetWidth>0&&this.reposition(a)})),(f.adjust.resize||k.length)&&this._bind(d.event.special.resize?k:q,"resize",p),f.adjust.scroll&&this._bind(q.add(f.container),"scroll",p)},z._unassignEvents=function(){var c=this.options,e=c.show.target,f=c.hide.target,g=d.grep([this.elements.target[0],this.rendered&&this.tooltip[0],c.position.container[0],c.position.viewport[0],c.position.container.closest("html")[0],a,b],function(a){return"object"==typeof a});e&&e.toArray&&(g=g.concat(e.toArray())),f&&f.toArray&&(g=g.concat(f.toArray())),this._unbind(g)._unbind(g,"destroy")._unbind(g,"inactive")},d(function(){q(W,["mouseenter","mouseleave"],function(a){var b="mouseenter"===a.type,c=d(a.currentTarget),e=d(a.relatedTarget||a.target),f=this.options;b?(this.focus(a),c.hasClass(Y)&&!c.hasClass(ab)&&clearTimeout(this.timers.hide)):"mouse"===f.position.target&&f.position.adjust.mouse&&f.hide.event&&f.show.target&&!e.closest(f.show.target[0]).length&&this.hide(a),c.toggleClass(_,b)}),q("["+U+"]",X,o)}),y=d.fn.qtip=function(a,b,e){var f=(""+a).toLowerCase(),g=F,i=d.makeArray(arguments).slice(1),j=i[i.length-1],k=this[0]?d.data(this[0],S):F;return!arguments.length&&k||"api"===f?k:"string"==typeof a?(this.each(function(){var a=d.data(this,S);if(!a)return D;if(j&&j.timeStamp&&(a.cache.event=j),!b||"option"!==f&&"options"!==f)a[f]&&a[f].apply(a,i);else{if(e===c&&!d.isPlainObject(b))return g=a.get(b),E;a.set(b,e)}}),g!==F?g:this):"object"!=typeof a&&arguments.length?void 0:(k=h(d.extend(D,{},a)),this.each(function(a){var b,c;return c=d.isArray(k.id)?k.id[a]:k.id,c=!c||c===E||c.length<1||y.api[c]?y.nextid++:c,b=r(d(this),c,k),b===E?D:(y.api[c]=b,d.each(R,function(){"initialize"===this.initialize&&this(b)}),void b._assignInitialEvents(j))}))},d.qtip=e,y.api={},d.each({attr:function(a,b){if(this.length){var c=this[0],e="title",f=d.data(c,"qtip");if(a===e&&f&&"object"==typeof f&&f.options.suppress)return arguments.length<2?d.attr(c,cb):(f&&f.options.content.attr===e&&f.cache.attr&&f.set("content.text",b),this.attr(cb,b))}return d.fn["attr"+bb].apply(this,arguments)},clone:function(a){var b=(d([]),d.fn["clone"+bb].apply(this,arguments));return a||b.filter("["+cb+"]").attr("title",function(){return d.attr(this,cb)}).removeAttr(cb),b}},function(a,b){if(!b||d.fn[a+bb])return D;var c=d.fn[a+bb]=d.fn[a];d.fn[a]=function(){return b.apply(this,arguments)||c.apply(this,arguments)}}),d.ui||(d["cleanData"+bb]=d.cleanData,d.cleanData=function(a){for(var b,c=0;(b=d(a[c])).length;c++)if(b.attr(T))try{b.triggerHandler("removeqtip")}catch(e){}d["cleanData"+bb].apply(this,arguments)}),y.version="2.2.1",y.nextid=0,y.inactiveEvents=X,y.zindex=15e3,y.defaults={prerender:E,id:E,overwrite:D,suppress:D,content:{text:D,attr:"title",title:E,button:E},position:{my:"top left",at:"bottom right",target:E,container:E,viewport:E,adjust:{x:0,y:0,mouse:D,scroll:D,resize:D,method:"flipinvert flipinvert"},effect:function(a,b){d(this).animate(b,{duration:200,queue:E})}},show:{target:E,event:"mouseenter",effect:D,delay:90,solo:E,ready:E,autofocus:E},hide:{target:E,event:"mouseleave",effect:D,delay:0,fixed:E,inactive:E,leave:"window",distance:E},style:{classes:"",widget:E,width:E,height:E,def:D},events:{render:F,move:F,show:F,hide:F,toggle:F,visible:F,hidden:F,focus:F,blur:F}};var hb,ib="margin",jb="border",kb="color",lb="background-color",mb="transparent",nb=" !important",ob=!!b.createElement("canvas").getContext,pb=/rgba?\(0, 0, 0(, 0)?\)|transparent|#123456/i,qb={},rb=["Webkit","O","Moz","ms"];if(ob)var sb=a.devicePixelRatio||1,tb=function(){var a=b.createElement("canvas").getContext("2d");return a.backingStorePixelRatio||a.webkitBackingStorePixelRatio||a.mozBackingStorePixelRatio||a.msBackingStorePixelRatio||a.oBackingStorePixelRatio||1}(),ub=sb/tb;else var vb=function(a,b,c){return" '};d.extend(v.prototype,{init:function(a){var b,c;c=this.element=a.elements.tip=d("
",{"class":S+"-tip"}).prependTo(a.tooltip),ob?(b=d(" ").appendTo(this.element)[0].getContext("2d"),b.lineJoin="miter",b.miterLimit=1e5,b.save()):(b=vb("shape",'coordorigin="0,0"',"position:absolute;"),this.element.html(b+b),a._bind(d("*",c).add(c),["click","mousedown"],function(a){a.stopPropagation()},this._ns)),a._bind(a.tooltip,"tooltipmove",this.reposition,this._ns,this),this.create()},_swapDimensions:function(){this.size[0]=this.options.height,this.size[1]=this.options.width},_resetDimensions:function(){this.size[0]=this.options.width,this.size[1]=this.options.height},_useTitle:function(a){var b=this.qtip.elements.titlebar;return b&&(a.y===K||a.y===O&&this.element.position().top+this.size[1]/2+this.options.offsetl&&!pb.test(e[1])&&(e[0]=e[1]),this.border=l=p.border!==D?p.border:l):this.border=l=0,k=this.size=this._calculateSize(b),n.css({width:k[0],height:k[1],lineHeight:k[1]+"px"}),j=b.precedance===H?[s(r.x===L?l:r.x===N?k[0]-q[0]-l:(k[0]-q[0])/2),s(r.y===K?k[1]-q[1]:0)]:[s(r.x===L?k[0]-q[0]:0),s(r.y===K?l:r.y===M?k[1]-q[1]-l:(k[1]-q[1])/2)],ob?(g=o[0].getContext("2d"),g.restore(),g.save(),g.clearRect(0,0,6e3,6e3),h=this._calculateTip(r,q,ub),i=this._calculateTip(r,this.size,ub),o.attr(I,k[0]*ub).attr(J,k[1]*ub),o.css(I,k[0]).css(J,k[1]),this._drawCoords(g,i),g.fillStyle=e[1],g.fill(),g.translate(j[0]*ub,j[1]*ub),this._drawCoords(g,h),g.fillStyle=e[0],g.fill()):(h=this._calculateTip(r),h="m"+h[0]+","+h[1]+" l"+h[2]+","+h[3]+" "+h[4]+","+h[5]+" xe",j[2]=l&&/^(r|b)/i.test(b.string())?8===db.ie?2:1:0,o.css({coordsize:k[0]+l+" "+(k[1]+l),antialias:""+(r.string().indexOf(O)>-1),left:j[0]-j[2]*Number(f===G),top:j[1]-j[2]*Number(f===H),width:k[0]+l,height:k[1]+l}).each(function(a){var b=d(this);b[b.prop?"prop":"attr"]({coordsize:k[0]+l+" "+(k[1]+l),path:h,fillcolor:e[0],filled:!!a,stroked:!a}).toggle(!(!l&&!a)),!a&&b.html(vb("stroke",'weight="'+2*l+'px" color="'+e[1]+'" miterlimit="1000" joinstyle="miter"'))})),a.opera&&setTimeout(function(){m.tip.css({display:"inline-block",visibility:"visible"})},1),c!==E&&this.calculate(b,k)},calculate:function(a,b){if(!this.enabled)return E;var c,e,f=this,g=this.qtip.elements,h=this.element,i=this.options.offset,j=(g.tooltip.hasClass("ui-widget"),{});return a=a||this.corner,c=a.precedance,b=b||this._calculateSize(a),e=[a.x,a.y],c===G&&e.reverse(),d.each(e,function(d,e){var h,k,l;
e===O?(h=c===H?L:K,j[h]="50%",j[ib+"-"+h]=-Math.round(b[c===H?0:1]/2)+i):(h=f._parseWidth(a,e,g.tooltip),k=f._parseWidth(a,e,g.content),l=f._parseRadius(a),j[e]=Math.max(-f.border,d?k:i+(l>h?l:-h)))}),j[a[c]]-=b[c===G?0:1],h.css({margin:"",top:"",bottom:"",left:"",right:""}).css(j),j},reposition:function(a,b,d){function e(a,b,c,d,e){a===Q&&j.precedance===b&&k[d]&&j[c]!==O?j.precedance=j.precedance===G?H:G:a!==Q&&k[d]&&(j[b]=j[b]===O?k[d]>0?d:e:j[b]===d?e:d)}function f(a,b,e){j[a]===O?p[ib+"-"+b]=o[a]=g[ib+"-"+b]-k[b]:(h=g[e]!==c?[k[b],-g[b]]:[-k[b],g[b]],(o[a]=Math.max(h[0],h[1]))>h[0]&&(d[b]-=k[b],o[b]=E),p[g[e]!==c?e:b]=o[a])}if(this.enabled){var g,h,i=b.cache,j=this.corner.clone(),k=d.adjusted,l=b.options.position.adjust.method.split(" "),m=l[0],n=l[1]||l[0],o={left:E,top:E,x:0,y:0},p={};this.corner.fixed!==D&&(e(m,G,H,L,N),e(n,H,G,K,M),(j.string()!==i.corner.string()||i.cornerTop!==k.top||i.cornerLeft!==k.left)&&this.update(j,E)),g=this.calculate(j),g.right!==c&&(g.left=-g.right),g.bottom!==c&&(g.top=-g.bottom),g.user=this.offset,(o.left=m===Q&&!!k.left)&&f(G,L,N),(o.top=n===Q&&!!k.top)&&f(H,K,M),this.element.css(p).toggle(!(o.x&&o.y||j.x===O&&o.y||j.y===O&&o.x)),d.left-=g.left.charAt?g.user:m!==Q||o.top||!o.left&&!o.top?g.left+this.border:0,d.top-=g.top.charAt?g.user:n!==Q||o.left||!o.left&&!o.top?g.top+this.border:0,i.cornerLeft=k.left,i.cornerTop=k.top,i.corner=j.clone()}},destroy:function(){this.qtip._unbind(this.qtip.tooltip,this._ns),this.qtip.elements.tip&&this.qtip.elements.tip.find("*").remove().end().remove()}}),hb=R.tip=function(a){return new v(a,a.options.style.tip)},hb.initialize="render",hb.sanitize=function(a){if(a.style&&"tip"in a.style){var b=a.style.tip;"object"!=typeof b&&(b=a.style.tip={corner:b}),/string|boolean/i.test(typeof b.corner)||(b.corner=D)}},B.tip={"^position.my|style.tip.(corner|mimic|border)$":function(){this.create(),this.qtip.reposition()},"^style.tip.(height|width)$":function(a){this.size=[a.width,a.height],this.update(),this.qtip.reposition()},"^content.title|style.(classes|widget)$":function(){this.update()}},d.extend(D,y.defaults,{style:{tip:{corner:D,mimic:E,width:6,height:6,border:D,offset:0}}});var wb,xb,yb="qtip-modal",zb="."+yb;xb=function(){function a(a){if(d.expr[":"].focusable)return d.expr[":"].focusable;var b,c,e,f=!isNaN(d.attr(a,"tabindex")),g=a.nodeName&&a.nodeName.toLowerCase();return"area"===g?(b=a.parentNode,c=b.name,a.href&&c&&"map"===b.nodeName.toLowerCase()?(e=d("img[usemap=#"+c+"]")[0],!!e&&e.is(":visible")):!1):/input|select|textarea|button|object/.test(g)?!a.disabled:"a"===g?a.href||f:f}function c(a){k.length<1&&a.length?a.not("body").blur():k.first().focus()}function e(a){if(i.is(":visible")){var b,e=d(a.target),h=f.tooltip,j=e.closest(W);b=j.length<1?E:parseInt(j[0].style.zIndex,10)>parseInt(h[0].style.zIndex,10),b||e.closest(W)[0]===h[0]||c(e),g=a.target===k[k.length-1]}}var f,g,h,i,j=this,k={};d.extend(j,{init:function(){return i=j.elem=d("
",{id:"qtip-overlay",html:"
",mousedown:function(){return E}}).hide(),d(b.body).bind("focusin"+zb,e),d(b).bind("keydown"+zb,function(a){f&&f.options.show.modal.escape&&27===a.keyCode&&f.hide(a)}),i.bind("click"+zb,function(a){f&&f.options.show.modal.blur&&f.hide(a)}),j},update:function(b){f=b,k=b.options.show.modal.stealfocus!==E?b.tooltip.find("*").filter(function(){return a(this)}):[]},toggle:function(a,e,g){var k=(d(b.body),a.tooltip),l=a.options.show.modal,m=l.effect,n=e?"show":"hide",o=i.is(":visible"),p=d(zb).filter(":visible:not(:animated)").not(k);return j.update(a),e&&l.stealfocus!==E&&c(d(":focus")),i.toggleClass("blurs",l.blur),e&&i.appendTo(b.body),i.is(":animated")&&o===e&&h!==E||!e&&p.length?j:(i.stop(D,E),d.isFunction(m)?m.call(i,e):m===E?i[n]():i.fadeTo(parseInt(g,10)||90,e?1:0,function(){e||i.hide()}),e||i.queue(function(a){i.css({left:"",top:""}),d(zb).length||i.detach(),a()}),h=e,f.destroyed&&(f=F),j)}}),j.init()},xb=new xb,d.extend(w.prototype,{init:function(a){var b=a.tooltip;return this.options.on?(a.elements.overlay=xb.elem,b.addClass(yb).css("z-index",y.modal_zindex+d(zb).length),a._bind(b,["tooltipshow","tooltiphide"],function(a,c,e){var f=a.originalEvent;if(a.target===b[0])if(f&&"tooltiphide"===a.type&&/mouse(leave|enter)/.test(f.type)&&d(f.relatedTarget).closest(xb.elem[0]).length)try{a.preventDefault()}catch(g){}else(!f||f&&"tooltipsolo"!==f.type)&&this.toggle(a,"tooltipshow"===a.type,e)},this._ns,this),a._bind(b,"tooltipfocus",function(a,c){if(!a.isDefaultPrevented()&&a.target===b[0]){var e=d(zb),f=y.modal_zindex+e.length,g=parseInt(b[0].style.zIndex,10);xb.elem[0].style.zIndex=f-1,e.each(function(){this.style.zIndex>g&&(this.style.zIndex-=1)}),e.filter("."+$).qtip("blur",a.originalEvent),b.addClass($)[0].style.zIndex=f,xb.update(c);try{a.preventDefault()}catch(h){}}},this._ns,this),void a._bind(b,"tooltiphide",function(a){a.target===b[0]&&d(zb).filter(":visible").not(b).last().qtip("focus",a)},this._ns,this)):this},toggle:function(a,b,c){return a&&a.isDefaultPrevented()?this:void xb.toggle(this.qtip,!!b,c)},destroy:function(){this.qtip.tooltip.removeClass(yb),this.qtip._unbind(this.qtip.tooltip,this._ns),xb.toggle(this.qtip,E),delete this.qtip.elements.overlay}}),wb=R.modal=function(a){return new w(a,a.options.show.modal)},wb.sanitize=function(a){a.show&&("object"!=typeof a.show.modal?a.show.modal={on:!!a.show.modal}:"undefined"==typeof a.show.modal.on&&(a.show.modal.on=D))},y.modal_zindex=y.zindex-200,wb.initialize="render",B.modal={"^show.modal.(on|blur)$":function(){this.destroy(),this.init(),this.qtip.elems.overlay.toggle(this.qtip.tooltip[0].offsetWidth>0)}},d.extend(D,y.defaults,{show:{modal:{on:E,effect:D,blur:D,stealfocus:D,escape:D}}}),R.viewport=function(c,d,e,f,g,h,i){function j(a,b,c,e,f,g,h,i,j){var k=d[f],s=u[a],t=v[a],w=c===Q,x=s===f?j:s===g?-j:-j/2,y=t===f?i:t===g?-i:-i/2,z=q[f]+r[f]-(n?0:m[f]),A=z-k,B=k+j-(h===I?o:p)-z,C=x-(u.precedance===a||s===u[b]?y:0)-(t===O?i/2:0);return w?(C=(s===f?1:-1)*x,d[f]+=A>0?A:B>0?-B:0,d[f]=Math.max(-m[f]+r[f],k-C,Math.min(Math.max(-m[f]+r[f]+(h===I?o:p),k+C),d[f],"center"===s?k-x:1e9))):(e*=c===P?2:0,A>0&&(s!==f||B>0)?(d[f]-=C+e,l.invert(a,f)):B>0&&(s!==g||A>0)&&(d[f]-=(s===O?-C:C)+e,l.invert(a,g)),d[f]B&&(d[f]=k,l=u.clone())),d[f]-k}var k,l,m,n,o,p,q,r,s=e.target,t=c.elements.tooltip,u=e.my,v=e.at,w=e.adjust,x=w.method.split(" "),y=x[0],z=x[1]||x[0],A=e.viewport,B=e.container,C=(c.cache,{left:0,top:0});return A.jquery&&s[0]!==a&&s[0]!==b.body&&"none"!==w.method?(m=B.offset()||C,n="static"===B.css("position"),k="fixed"===t.css("position"),o=A[0]===a?A.width():A.outerWidth(E),p=A[0]===a?A.height():A.outerHeight(E),q={left:k?0:A.scrollLeft(),top:k?0:A.scrollTop()},r=A.offset()||C,("shift"!==y||"shift"!==z)&&(l=u.clone()),C={left:"none"!==y?j(G,H,y,w.x,L,N,I,f,h):0,top:"none"!==z?j(H,G,z,w.y,K,M,J,g,i):0,my:l}):C},R.polys={polygon:function(a,b){var c,d,e,f={width:0,height:0,position:{top:1e10,right:0,bottom:0,left:1e10},adjustable:E},g=0,h=[],i=1,j=1,k=0,l=0;for(g=a.length;g--;)c=[parseInt(a[--g],10),parseInt(a[g+1],10)],c[0]>f.position.right&&(f.position.right=c[0]),c[0]f.position.bottom&&(f.position.bottom=c[1]),c[1]0&&e>0&&i>0&&j>0;)for(d=Math.floor(d/2),e=Math.floor(e/2),b.x===L?i=d:b.x===N?i=f.width-d:i+=Math.floor(d/2),b.y===K?j=e:b.y===M?j=f.height-e:j+=Math.floor(e/2),g=h.length;g--&&!(h.length<2);)k=h[g][0]-f.position.left,l=h[g][1]-f.position.top,(b.x===L&&k>=i||b.x===N&&i>=k||b.x===O&&(i>k||k>f.width-i)||b.y===K&&l>=j||b.y===M&&j>=l||b.y===O&&(j>l||l>f.height-j))&&h.splice(g,1);f.position={left:h[0][0],top:h[0][1]}}return f},rect:function(a,b,c,d){return{width:Math.abs(c-a),height:Math.abs(d-b),position:{left:Math.min(a,c),top:Math.min(b,d)}}},_angles:{tc:1.5,tr:7/4,tl:5/4,bc:.5,br:.25,bl:.75,rc:2,lc:1,c:0},ellipse:function(a,b,c,d,e){var f=R.polys._angles[e.abbrev()],g=0===f?0:c*Math.cos(f*Math.PI),h=d*Math.sin(f*Math.PI);return{width:2*c-Math.abs(g),height:2*d-Math.abs(h),position:{left:a+g,top:b+h},adjustable:E}},circle:function(a,b,c,d){return R.polys.ellipse(a,b,c,c,d)}},R.svg=function(a,c,e){for(var f,g,h,i,j,k,l,m,n,o=(d(b),c[0]),p=d(o.ownerSVGElement),q=o.ownerDocument,r=(parseInt(c.css("stroke-width"),10)||0)/2;!o.getBBox;)o=o.parentNode;if(!o.getBBox||!o.parentNode)return E;switch(o.nodeName){case"ellipse":case"circle":m=R.polys.ellipse(o.cx.baseVal.value,o.cy.baseVal.value,(o.rx||o.r).baseVal.value+r,(o.ry||o.r).baseVal.value+r,e);break;case"line":case"polygon":case"polyline":for(l=o.points||[{x:o.x1.baseVal.value,y:o.y1.baseVal.value},{x:o.x2.baseVal.value,y:o.y2.baseVal.value}],m=[],k=-1,i=l.numberOfItems||l.length;++k';d.extend(x.prototype,{_scroll:function(){var b=this.qtip.elements.overlay;b&&(b[0].style.top=d(a).scrollTop()+"px")},init:function(c){var e=c.tooltip;d("select, object").length<1&&(this.bgiframe=c.elements.bgiframe=d(Bb).appendTo(e),c._bind(e,"tooltipmove",this.adjustBGIFrame,this._ns,this)),this.redrawContainer=d("
",{id:S+"-rcontainer"}).appendTo(b.body),c.elements.overlay&&c.elements.overlay.addClass("qtipmodal-ie6fix")&&(c._bind(a,["scroll","resize"],this._scroll,this._ns,this),c._bind(e,["tooltipshow"],this._scroll,this._ns,this)),this.redraw()},adjustBGIFrame:function(){var a,b,c=this.qtip.tooltip,d={height:c.outerHeight(E),width:c.outerWidth(E)},e=this.qtip.plugins.tip,f=this.qtip.elements.tip;b=parseInt(c.css("borderLeftWidth"),10)||0,b={left:-b,top:-b},e&&f&&(a="x"===e.corner.precedance?[I,L]:[J,K],b[a[1]]-=f[a[0]]()),this.bgiframe.css(b).css(d)},redraw:function(){if(this.qtip.rendered<1||this.drawing)return this;var a,b,c,d,e=this.qtip.tooltip,f=this.qtip.options.style,g=this.qtip.options.position.container;return this.qtip.drawing=1,f.height&&e.css(J,f.height),f.width?e.css(I,f.width):(e.css(I,"").appendTo(this.redrawContainer),b=e.width(),1>b%2&&(b+=1),c=e.css("maxWidth")||"",d=e.css("minWidth")||"",a=(c+d).indexOf("%")>-1?g.width()/100:0,c=(c.indexOf("%")>-1?a:1)*parseInt(c,10)||b,d=(d.indexOf("%")>-1?a:1)*parseInt(d,10)||0,b=c+d?Math.min(Math.max(b,d),c):b,e.css(I,Math.round(b)).appendTo(g)),this.drawing=0,this},destroy:function(){this.bgiframe&&this.bgiframe.remove(),this.qtip._unbind([a,this.qtip.tooltip],this._ns)}}),Ab=R.ie6=function(a){return 6===db.ie?new x(a):E},Ab.initialize="render",B.ie6={"^content|style$":function(){this.redraw()}}})}(window,document);
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o0?("all"===l.selectCurrencyValue?!0===l.isCheckboxChecked()?c.each(function(){for(var s=0;s0&&l.currencyFilter(l.selectCurrencyValue),e(".historical:visible").length>0&&l.handleHistorical(),l.showHideProductSection(),l.showNoContent()})},onCurrencyChange:function(){e(".select-currency")[0]&&l.selectCurrency.on("change",function(){var s=e(this).val();l.selectCurrencyValue=s,l.currencyFilter(s),e(".historical:visible").length>0&&l.handleHistorical(),l.showHideProductSection(),l.showNoContent()})},onHistoricalChecked:function(){l.selectHistorical.on("click",function(){l.handleHistorical(),l.showHideProductSection(),l.showHistoricalHeading(),l.showNoContent()})},createHtml:function(){for(var l={},s=c.data,a=c.data.headings,t=0;t
'+g.name+'
'+g.description+"
",x+=n?''+a.balance+'
'+a.tracker+'
'+a.grossratepercent+'
'+a.aerpercent+"
":'
'+a.balance+'
'+a.grossratepercent+'
'+a.aerpercent+"
",n)for(var R=0;R
'+y.balance+'
'+y.tracker+'
'+y.grossRate+'
'+y.aer+"
";else for(var V=0;V
'+y.balance+'
'+y.grossRate+'
'+y.aer+"
";x+="
",x+='
'+a.effective5dec+' ',x+='
'+a.balance+'
'+a.grossratepercent+'
'+a.aerpercent+"
";for(var H=0;H
'+k.balance+'
'+k.grossRate+'
'+k.aer+"
";x+="
",x+=""}else if(h){var T=[],N=[];x='
'+g.name+" ";for(var B=0;B
'+a.balance+'
'+a.grossrate+' '+a.superscript1+'
'+T.percentageRate+''+a.superscript2+"
":'
'+T.date+' '+a.balance+'
'+a.grossrate+' '+a.superscript1+'
'+T.percentageRate+''+a.superscript2+"
";for(var P=0;P
'+N.balance+'
'+N.grossRate+'
'+N.base+"
":'
'+N.balance+'
'+N.grossRate+'
'+N.base+"
";x+="
"}if(u){x+='"}else{x='
'+g.name+' '+g.description+"
",x+='
'+a.currentrate+' '+a.balance+'
'+a.grossratepercent+'
'+a.aerpercent+"
";for(var E=0;E
'+y.balance+'
'+y.grossRate+'
'+y.aer+"
";x+="
"}}for(var A=0;A0?e(this).css({position:"static",left:"auto"}):e(this).css({position:"absolute",left:"-999em"})})},reorderHistorical:function(){e(".product").each(function(){e(this).attr("data-type")===e(this).parents(".products-wrapper").attr("data-heading")&&"true"===e(this).attr("data-historical")&&e(this).parents(".products-wrapper").append(e(this))}),e(".products-wrapper").each(function(){e(this).find('.product[data-historical="true"]').wrapAll('
')})},showHistoricalHeading:function(){var l=e(".product"),s=!1,a=""+c.data.headings.historical+" ";l.each(function(){if("true"===e(this).attr("data-historical")&&e(this).is(":visible"))return void(s=!0)}),s?e(".historical-container").prepend(a):e(".historical-container > h4").remove()},accordion:function(){function l(){c.hide(),s.each(function(){e(this).hasClass("active")&&e(this).removeClass("active")})}var s=e(".filter-wrapper h4"),c=e(".filter-content");e(".filter-wrapper a").on("click",function(e){e.preventDefault()}),c.hide(),l(),s.on("click",function(){e(this).hasClass("active")?l():(l(),e(this).addClass("active"),e(this).next().show())})},rotateCross:function(){e(".filter-wrapper h4 a").on("click",function(){"none"===e(this).find("span").css("transform")?e(this).find("span").css("transform","rotate(45deg)"):e(this).find("span").css("transform","")})},horizontalToVertivalCheckboxes:function(){e(window).resize(function(){e(this).width()>1024?e("fieldset").addClass("horizontal"):e(this).width()<1024&&e("fieldset").removeClass("horizontal")})}},s={baseRatesNotEqual:!1,init:function(){s.createHtml()},createHtml:function(){for(var l=[],a=[],t=c.boeData.headings,i='
'+t.barclaysbank+'
'+t.bankofengland+"
",o='
'+t.barclaysbank+'
'+t.bankofengland+"
",d=0;d
'+a.date+''+t.superscript1+'
'+a.barclaysBaseRate+'
'+a.boeBaseRate+"
"):i+='
'+a.date+'
'+a.barclaysBaseRate+'
'+a.boeBaseRate+"
":o+='
'+a.date+'
'+a.barclaysBaseRate+'
'+a.boeBaseRate+"
"}i+="
",s.baseRatesNotEqual&&(i+='"),o+="
",e(".previous-rates-container").append(i),e(".current-rates-container").append(o)}},c={ratesUrl:e(".business-interest-rates").attr("data-rates-json"),boeRatesUrl:e(".business-interest-rates").attr("data-boe-rates-json"),init:function(){c.getRates(),c.getBoeRates()},getRates:function(){e.ajax({url:c.ratesUrl,dataType:"json",success:function(s){c.data=s.rates.tables,c.data.headings=s.rates.headings,e("#business-interest-rates").length>0&&l.init()},error:function(e){console.log(e.message)}})},getBoeRates:function(){e.ajax({url:c.boeRatesUrl,dataType:"json",success:function(l){c.boeData=l.rates.tables,c.boeData.headings=l.rates.headings,e("#business-interest-rates").length>0&&s.init()},error:function(e){console.log(e.message)}})}};c.init()},l}(jQuery),module.exports=barclays.businessInterestRates;
},{}],4:[function(require,module,exports){
var barclays=window.barclays||{};barclays.busLoansApr=function(a){"use strict";var n={};return n.init=function(){var n,o=a("#business-loan-apr").data("loan-json");if(0===a("#business-loan").length){a.ajax({type:"GET",dataType:"json",url:o,async:!1}).done(function(a){n=a,console.log("DATA",a[0].apr.interest)}).fail(function(a,n,o){console.log(a,n,o)});var s=n[0].apr.interest,r=n[0].amount.min,e=n[0].amount.max;a(".loans-promo.dynamic-rate.rep-res6").text(s+"%"),a(".loans-promo.rep-amt").html("£"+r+" - £"+e)}else console.log("NAY")},n}(jQuery),module.exports=barclays.busLoansApr;
},{}],5:[function(require,module,exports){
var barclays=window.barclays||{};barclays.businessLoan=function(t){"use strict";var n={};return n.init=function(){function n(){noUiSlider.create(a,{start:s.range.amount.min,step:1,connect:"lower",format:wNumb({decimals:0,thousand:",",prefix:"£ "}),range:{min:s.range.amount.min,max:s.range.amount.max}}),a.noUiSlider.on("update",function(t,n){u.value=t[n]}),u.addEventListener?(u.addEventListener("change",function(){a.noUiSlider.set([null,this.value])}),u.addEventListener("focusout",function(){var t=u.value;a.noUiSlider.set(t)}),u.addEventListener("keydown",function(t){13===t.which&&a.noUiSlider.set(this.value)})):(u.attachEvent("onchange",function(){a.noUiSlider.set([null,this.value])}),u.attachEvent("onfocusout",function(){var t=u.value;a.noUiSlider.set(t)}),u.attachEvent("onkeydown",function(){13===e.which&&a.noUiSlider.set(this.value)})),noUiSlider.create(o,{start:s.range.term.min,step:1,connect:"lower",format:wNumb({decimals:0}),range:{min:s.range.term.min,max:s.range.term.max}}),o.noUiSlider.on("update",function(t,n){i.value=t[n]}),i.addEventListener?(i.addEventListener("change",function(){o.noUiSlider.set([null,this.value])}),i.addEventListener("focusout",function(){var t=i.value;o.noUiSlider.set(t)}),i.addEventListener("keydown",function(t){13===t.which&&o.noUiSlider.set(this.value)})):(i.attachEvent("onchange",function(){o.noUiSlider.set([null,this.value])}),i.attachEvent("onfocusout",function(){var t=i.value;o.noUiSlider.set(t)}),i.attachEvent("onkeydown",function(t){13===t.which&&o.noUiSlider.set(this.value)}))}require("../config").init(),t.fn.catchEnter=function(n){t(this).on("keypress",function(a){13===a.which&&(n(t(this)),t(this).blur())})};var a=document.getElementById("slider-amount"),u=document.getElementById("input-amount"),o=document.getElementById("slider-term"),i=document.getElementById("input-term"),r={inputPayments:t("#input-amount"),payments:0,init:function(){r.bindInputs(),r.calculate()},formatInput:function(t){var n=accounting.unformat(t.val());ns.range.amount.max&&(n=s.range.amount.max),t.val(accounting.formatMoney(n,{precision:0})),r.payments=accounting.unformat(r.inputPayments.val()),r.calculate()},bindInputs:function(){var n=function(n){r.formatInput(t(n.target))};r.inputPayments.on("blur",n).catchEnter(r.formatInput)},calculate:function(){c.calculate()}},m={inputPayments:t("#input-term"),payments:0,init:function(){m.bindInputs(),m.calculate()},formatInput:function(t){var n=accounting.unformat(t.val());ns.range.term.max&&(n=s.range.term.max),t.val(accounting.formatNumber(n)),m.payments=accounting.unformat(m.inputPayments.val()),m.calculate()},bindInputs:function(){var n=function(n){m.formatInput(t(n.target))};m.inputPayments.on("blur",n).catchEnter(m.formatInput)},calculate:function(){c.calculate()}},c={outputRepayment:t("#output-monthly-repayment"),outputRepayable:t("#output-total-repayable"),outputBorrowAmount:t("#output-borrow-amount"),outputTerm:t("#output-term"),outputApr:t("#output-apr"),inputAmount:t("#input-amount"),inputTerm:t("#input-term"),repayment:0,total:0,init:function(){r.inputPayments.on("blur",c.calculate),m.inputPayments.on("blur",c.calculate),a.noUiSlider.on("slide",function(){r.formatInput(r.inputPayments),r.calculate(),c.calculate()}),o.noUiSlider.on("slide",function(){m.formatInput(m.inputPayments),m.calculate(),c.calculate()});var t=accounting.unformat(r.inputPayments.val());r.inputPayments.val(accounting.formatMoney(t,{precision:0}));var n=accounting.unformat(m.inputPayments.val());m.inputPayments.val(accounting.formatNumber(n))},calculate:function(){var t=c.getTotals();isFinite(t.repayment)&&c.outputRepayment.html(accounting.formatMoney(t.repayment)),c.outputRepayable.html(accounting.formatMoney(t.total)),c.outputBorrowAmount.html(accounting.formatMoney(r.inputPayments.val())),c.outputTerm.html(accounting.formatNumber(m.inputPayments.val())),c.outputApr.html(s.range.apr.interest+" %")},getTotals:function(){var t=s.range.apr.interest/100,n=1/(1+t/12),a=accounting.unformat(r.inputPayments.val()),e=accounting.unformat(m.inputPayments.val());return c.repayment=a*(n-1)/(n*(Math.pow(n,e)-1)),c.total=c.repayment*e,{repayment:c.repayment,total:c.total}}},l={input:t("input[type=text]"),headingWrapper:t(".heading-wrapper"),inputsWrapper:t(".inputs-wrapper"),amountMin:t(".amount-min"),amountMax:t(".amount-max"),termMin:t(".term-min"),termMax:t(".term-max"),init:function(){l.emptyInput(),l.setRangeValues(),l.setAprValues()},emptyInput:function(){l.input.on("click focus",function(){t(this).val("")})},setRangeValues:function(){l.amountMin.html(accounting.formatMoney(s.range.amount.min)),l.amountMax.html(accounting.formatMoney(s.range.amount.max)),l.termMin.html(s.range.term.min),l.termMax.html(s.range.term.max)},setAprValues:function(){t("#business-loan-apr").length>0&&(t(".loans-promo.dynamic-rate.rep-res6").text(s.range.apr.interest+"%"),t(".loans-promo.rep-amt").html(accounting.formatMoney("£"+s.range.amount.min)+" - £"+accounting.formatMoney(s.range.amount.max)))}},s={range:"",url:t(".business-loan").attr("data-loan-json"),init:function(){s.ajaxRequest()},ajaxRequest:function(){t.ajax({url:s.url,type:"get",success:function(t){s.range=t[0]},error:function(t){console.log(t.message)},complete:function(){t("#business-loan").length>0&&(n(),r.init(),m.init(),c.init(),l.init())}})}};s.init()},n}(jQuery),module.exports=barclays.businessLoan;
},{"../config":7}],7:[function(require,module,exports){
var barclays=window.barclays||{};barclays.accountingSettings=function(n){"use strict";var s={};return s.init=function(){var s=0;n("#business-loan").length>0&&(s=0),accounting.settings={currency:{symbol:"",decimal:".",thousand:",",precision:s},number:{precision:0,thousand:",",decimal:"."}},accounting.settings.currency.format={pos:"%s%v",neg:"-%s%v",zero:"%s%v"}},s}(jQuery),module.exports=barclays.accountingSettings;
},{}],8:[function(require,module,exports){
var barclays=window.barclays||{};barclays.cookiePanel=function(a){"use strict";var e={};return e.init=function(){var e=!1,n=a(".js-cookie-panel");window.barclays&&window.barclays.privacy&&window.barclays.privacy.management&&window.barclays.privacy.management.getCookie&&(e=window.barclays.privacy.management.getCookie("CCP")),e?n.attr("aria-hidden","true"):(a(window).load(function(){n.addClass("open").attr("aria-hidden","false"),n.on("click",".cookie-close",function(a){n.removeClass("open").attr("aria-hidden","true"),a.preventDefault()})}),window.barclays&&window.barclays.privacy&&window.barclays.privacy.management&&window.barclays.privacy.management.autoSetCookies&&window.barclays.privacy.management.autoSetCookies())},e}(jQuery),module.exports=barclays.cookiePanel;
},{}],9:[function(require,module,exports){
module.exports=function(e){"use strict";var s=require("../services/dataservice"),t=require("../services/utilities"),i=function(t,i){this.parentEl=t,this.config=e.extend({},{messages:[],showMultiple:!1},i),this.messages=s.getData("messages")};return i.prototype.show=function(s){e.extend(this.config,s),this.el=e('
');var t=this.config.messages[0].type,i=this.parentEl.parent(".message-region").find("select, input"),r=i.attr("id");i.attr({"aria-describedby":"alert-"+r}),this.el.attr({id:"alert-"+r,"aria-live":"error"===t?"assertive":"polite"});var a=this.config.messages[0].msg;this.config.showMultiple&&(a=this.config.messages.map(function(e){return e.msg}).join("")),this.el.html(a);var o="info"===t?"notification":"notification-error";this.parentEl.closest(".message-region").append(this.el).addClass(o)},i.prototype.hide=function(){this.el&&(this.el.closest(".message-region").removeClass("notification").removeClass("notification-error"),this.el.remove())},i.prototype.validate=function(e,s){this.hide();for(var i=[],r=!0,a=0;a0&&this.show({messages:i}),r},i}(jQuery);
},{"../services/dataservice":21,"../services/utilities":23}],10:[function(require,module,exports){
module.exports=function(){"use strict";var t=require("lite-ready"),e=require("../services/utilities"),i=require("./select"),a=require("./tooltip"),s=function(i,a,s){this.uid=e.generateUID(),this.el=i,this.data=a,this.config=s||{};var l=this;t(function(){l.createMarkup(),l.data.valid=l.first.data.valid&&l.second.data.valid,l.attach()})};return s.prototype.hide=function(){this.el.closest(".row").hide()},s.prototype.show=function(){this.el.closest(".row").show()},s.prototype.createMarkup=function(){var t=this.data;if(t.first&&t.second){var e=$('
'),s=$('
');this.first=new i(e,t.first,this.config),this.second=new i(s,t.second);var l=$(''+this.data.label+" ");this.el.append(l);var d=this.el.data("debttooltip");if(d){var o=$(' '),r=$('
');this.el.append(o),this.el.append(r),this.tooltip=new a(o,d)}var c=$('
');c.append(e),c.append(s),this.el.append(c),this.el.find(".label").addClass("hidden"),this.label=l}},s.prototype.validate=function(){this.first.validate(),this.second.validate(),this.data.valid=this.first.data.valid&&this.second.data.valid},s.prototype.attach=function(){var t=this;this.el.find("select").on("change",function(){t.validate()})},s}();
},{"../services/utilities":23,"./select":14,"./tooltip":15,"lite-ready":78}],11:[function(require,module,exports){
module.exports=function(){"use strict";var t=require("lite-ready"),e=require("./alert"),a=require("./tooltip"),i=require("../services/utilities"),r=function(a,r,n){this.el=a,this.data=r,this.config=n||{},this.data.uid=i.generateUID(),this.data.valid=!this.data.required,this.data.dirty=!1;var l=this;t(function(){r&&l.generateHTML(r),l.alert=new e(l.el,{showMultiple:l.config.showMultipleAlerts})})};return r.prototype.hide=function(){this.el.closest(".debtcalc-Component").hide()},r.prototype.show=function(){this.el.closest(".debtcalc-Component").show()},r.prototype.generateHTML=function(t){var e="debtcalc-"+t.key+"-"+this.data.uid,i=t.value||"",r=''+t.label+" ",n=this.el.data("debttooltip");n&&(r+=' ',r+='
'),r+='',"currency"===t.type?r+='£ ':"percentage"===t.type&&(r+='% '),t.placeholder&&!t.value?r+=' ':r+=' ',r+="
",this.el.append(r),n&&(this.tooltip=new a(this.el.find(".debtcalc-tooltip"),n)),this.input=this.el.find("input"),this.label=this.el.find("label"),this.attach()},r.prototype.setValue=function(t){this.data.value=t,"currency"===this.data.type?this.input.val(i.formatAsCurrency(t)):this.input.val(t),this.validate()},r.prototype.getValue=function(t){return t&&this.data[t]?this.data[t]:this.data.value},r.prototype.getValidationRules=function(){var t=[],e=this.data;if(e.required&&t.push({key:"ERR_REQUIRED",type:"error",test:function(t){return t&&t.length>0}}),"currency"===e.type&&t.push({key:"ERR_NOT_NUM",type:"error",test:function(t){return 0===t.length||0===t.replace(/[0-9,.-]/g,"").length}}),"percentage"===e.type&&t.push({key:"ERR_NOT_NUM",type:"error",test:function(t){return 0===t.length||0===t.replace(/[0-9.-]/g,"").length}}),"currency"!==e.type&&"percentage"!==e.type||"number"!=typeof e.decimals||t.push({key:"ERR_DEC_POS",type:"error",test:function(t){return t%1==0||t.length>0&&t.toString().split(".")[1]&&t.toString().split(".")[1].length<=e.decimals},values:{decimals:e.decimals}}),"number"==typeof e.min){var a="ERR_AMT_MIN";"percentage"===e.type&&(a="ERR_PER_MIN"),t.push({key:a,type:"error",test:function(t){return 0===t.length||i.getCurrencyValue(t)>=e.min},values:{min:i.formatAsCurrency(e.min),max:i.formatAsCurrency(e.max)}})}if("number"==typeof e.max){var r="ERR_AMT_MAX";"percentage"===e.type&&(r="ERR_PER_MAX"),t.push({key:r,type:"error",test:function(t){return 0===t.length||i.getCurrencyValue(t)<=e.max},values:{min:i.formatAsCurrency(e.min),max:i.formatAsCurrency(e.max)}})}return i.extendValidationRules(t,this.config.validationRules)},r.prototype.setValidationRules=function(t){this.config.validationRules=t},r.prototype.validate=function(){var t=this.getValidationRules();this.data.valid=this.alert.validate(this.input.val(),t)},r.prototype.attach=function(){var t=this;if("currency"===this.data.type||"percentage"===this.data.type){if(this.input.siblings()){var e=this.input.siblings().attr("id");this.input.attr("aria-describedby",e)}this.input.on("keyup blur",function(e){if(!/(37|38|89|40)/.test(e.keyCode)){var a="currency"===t.data.type,r=a?i.getCurrencyValue($(this).val()):$(this).val(),n=a?/[^0-9,.]/g:/[^0-9.]/g,l=$(this).val().replace(n,"").length!==$(this).val().length;isNaN(r)||null===r||l?t.data.valid=!1:$(this).val(a?i.formatAsCurrency(r,$(this).val()):$(this).val()),t.data.value=r}!t.data.valid&&t.data.dirty&&t.validate()}),this.input.on("blur",function(){$(this).val().length>0&&(t.data.dirty=!0),t.data.dirty&&t.validate()})}},r}();
},{"../services/utilities":23,"./alert":9,"./tooltip":15,"lite-ready":78}],12:[function(require,module,exports){
module.exports=function(){"use strict";var e=require("../services/dataservice"),t=function(t){this.el=t,this.messages=e.getData("messages")};return t.prototype.show=function(e){var t=e.key||"ERR_UNKNOWN",s=e.msg||t;this.messages&&(s=this.messages[t]||t,e.msg&&(s+=": "+e.msg));var i="info"===e.type?"notification":"notification-error";this.el.attr({"aria-live":"error"===e.type?"assertive":"polite"}).html(s).addClass(i).show();var o=this.el[0].getBoundingClientRect(),r=document.body,n=document.documentElement,a=window.pageYOffset||n.scrollTop||r.scrollTop,l=n.clientTop||r.clientTop||0,c=o.top+a-l;window.scroll(0,c-150),this.el.closest("form").find(":input:visible:enabled:first").focus()},t.prototype.hide=function(){this.el&&this.el.removeClass("notification").removeClass("notification-error").text("").hide()},t}();
},{"../services/dataservice":21}],13:[function(require,module,exports){
module.exports=function(){"use strict";var t=require("lite-ready"),e=require("../services/utilities"),i=require("./tooltip"),a=function(i,a){this.uid=e.generateUID(),this.el=i,this.data=a,this.data.valid=!1;var l=this;t(function(){a&&l.updateModel(a)})};return a.prototype.hide=function(){this.el.closest(".debtcalc-component").hide()},a.prototype.show=function(){this.el.closest(".debtcalc-component").show()},a.prototype.updateModel=function(t){var e=this.el.data("debttooltip"),a=''+t.label;e&&(a+='',a+='
'),a+=" ";for(var l="debtcalc-"+t.key+"-"+this.uid,o=0;o",a+=''+s+" "}this.el.append(a),e&&(this.tooltip=new i(this.el.find(".debtcalc-tooltip"),e)),this.input=this.el.find("input"),this.attach()},a.prototype.attach=function(){var t=this;this.el.find("input").on("click",function(e){t.data.value=e.target.value,t.data.valid=!0})},a}();
},{"../services/utilities":23,"./tooltip":15,"lite-ready":78}],14:[function(require,module,exports){
module.exports=function(){"use strict";var t=require("lite-ready"),e=require("./alert"),a=require("./tooltip"),i=require("../services/utilities"),l=function(a,l,s){this.uid=i.generateUID(),this.el=a,this.data=l,this.config=s||{},this.data.valid=!this.data.required||!!this.data.value,this.data.dirty=!1;var o=this;t(function(){l&&(o.generateHTML(l),o.updateModel(l),o.alert=new e(o.el,{showMultiple:o.config.showMultipleAlerts}))})};return l.prototype.getSelectedLabel=function(){for(var t="",e=0;e'+t.label+"",l=this.el.data("debttooltip");l&&(i+=' ',i+='
'),i+='",this.el.append(i),l&&(this.tooltip=new a(this.el.find(".debtcalc-tooltip"),l)),this.select=this.el.find("select"),this.attach()},l.prototype.setValue=function(t){this.data.value=t,this.el.find("option").attr("selected",!1),this.el.find('option[value="'+t+'"]').attr("selected","selected"),this.validate()},l.prototype.updateModel=function(t){var e=this.el.find("select"),a="";t.placeholder&&!t.value&&(a+=''+t.placeholder+" ");for(var i=0;i"+l+""}e.empty(),e.append(a)},l.prototype.getValidationRules=function(){var t=[];return this.data.required&&t.push({key:"ERR_REQUIRED",test:function(t){return!!t}}),i.extendValidationRules(t,this.config.validationRules)},l.prototype.setValidationRules=function(t){this.config.validationRules=t},l.prototype.validate=function(){var t=this.getValidationRules();this.data.valid=this.alert.validate(this.el.find("select").val(),t)},l.prototype.attach=function(){var t=this;this.el.find("select").on("change",function(e){t.data.dirty=!0,t.validate(),t.data.value=e.target.value}),this.el.find("select").on("blur",function(){t.data.dirty&&t.validate()})},l}();
},{"../services/utilities":23,"./alert":9,"./tooltip":15,"lite-ready":78}],15:[function(require,module,exports){
module.exports=function(){"use strict";var t=function(t,e){this.text=e,this.el=t,this.el.attr("title",e).attr("aria-expanded","false").addClass("icon-tooltip icon-small"),this.attach()};return t.prototype.attach=function(){this.el.on("click",function(t){t.preventDefault()})},t}(jQuery);
},{}],21:[function(require,module,exports){
module.exports=function(t){"use strict";var n={},r={};return n.init=function(n){var e=t.ajax({type:"GET",dataType:"json",url:n});return e.done(function(t){r=t}),e},n.getData=function(t){return t?r[t]:r},n}(jQuery);
},{}],22:[function(require,module,exports){
module.exports=function(){"use strict";var t=require("./analytics"),e=require("./utilities"),o=function(){this.baseTitle=document.querySelector("title").text,this.enabled=!!(window.history&&window.history.pushState&&window.history.replaceState),this.modules={},this.initialModulePriority=["debt1","consolidationloan","comparison"]};return o.prototype.init=function(){var t,e=this.getModuleNameFromURL();if(e&&this.modules[e])t=e;else for(var o=0;oa&&(n=!1),n}},getCurrencyValue:function(t){if(t&&"string"==typeof t){var e=t.replace(/[^0-9.-]/g,"");if(e)return Math.round(100*parseFloat(e))/100}else if("number"==typeof t)return t;return null},keyExistinArray:function(t,e){for(var n=0;n');var t=this.config.messages[0].type;this.el.attr({role:"alert","aria-live":"error"===t?"assertive":"polite"});var i=this.config.messages[0].msg;this.config.showMultiple&&(i=this.config.messages.map(function(e){return e.msg}).join("")),this.el.html(i);var r="info"===t?"notification":"notification-error";this.parentEl.closest(".message-region").append(this.el).addClass(r)},i.prototype.hide=function(){this.el&&(this.el.closest(".message-region").removeClass("notification").removeClass("notification-error"),this.el.remove())},i.prototype.validate=function(e,s){this.hide();for(var i=[],r=!0,o=0;o0&&this.show({messages:i}),r},i}(jQuery);
},{"../services/DataService":62,"../services/Utilities":65}],46:[function(require,module,exports){
module.exports=function(){"use strict";var t=require("lite-ready"),e=require("../services/Utilities"),i=require("../components/Select"),a=require("../components/Tooltip"),s=function(i,a,s){this.uid=e.generateUID(),this.el=i,this.data=a,this.config=s||{};var l=this;t(function(){l.createMarkup(),l.data.valid=l.first.data.valid&&l.second.data.valid,l.attach()})};return s.prototype.hide=function(){this.el.closest(".row").hide()},s.prototype.show=function(){this.el.closest(".row").show()},s.prototype.createMarkup=function(){var t=this.data;if(t.first&&t.second){var e=$('
'),s=$('
');this.first=new i(e,t.first,this.config),this.second=new i(s,t.second);var l=$(''+this.data.label+" ");this.el.append(l);var o=this.el.data("tooltip");if(o){var r=$(' ');this.el.append(r),this.tooltip=new a(r,o)}var d=$('
');d.append(e),d.append(s),this.el.append(d),this.el.find(".label").addClass("hidden"),this.label=l}},s.prototype.validate=function(){this.first.validate(),this.second.validate(),this.data.valid=this.first.data.valid&&this.second.data.valid},s.prototype.attach=function(){var t=this;this.el.find("select").on("change",function(){t.validate()})},s}();
},{"../components/Select":51,"../components/Tooltip":52,"../services/Utilities":65,"lite-ready":78}],47:[function(require,module,exports){
module.exports=function(){"use strict";var t=require("lite-ready"),e=require("./Alert"),a=require("./Tooltip"),i=require("../services/Utilities"),r=function(a,r,n){this.el=a,this.data=r,this.config=n||{},this.data.uid=i.generateUID(),this.data.valid=!this.data.required,this.data.dirty=!1;var l=this;t(function(){r&&l.generateHTML(r),l.alert=new e(l.el,{showMultiple:l.config.showMultipleAlerts})})};return r.prototype.hide=function(){this.el.closest(".mCalc-Component").hide()},r.prototype.show=function(){this.el.closest(".mCalc-Component").show()},r.prototype.generateHTML=function(t){var e="mCalc-"+t.key+"-"+this.data.uid,i=t.value||"",r=''+t.label+" ",n=this.el.data("tooltip");n&&(r+=' '),r+='',"currency"===t.type?r+='£ ':"percentage"===t.type&&(r+='% '),r+=' ',r+="
",this.el.append(r),n&&(this.tooltip=new a(this.el.find(".mCalc-Tooltip"),n)),this.input=this.el.find("input"),this.label=this.el.find("label"),this.attach()},r.prototype.setValue=function(t){this.data.value=t,"currency"===this.data.type?this.input.val(i.formatAsCurrency(t)):this.input.val(t),this.validate()},r.prototype.getValue=function(t){return t&&this.data[t]?this.data[t]:this.data.value},r.prototype.getValidationRules=function(){var t=[],e=this.data;if(e.required&&t.push({key:"ERR_REQUIRED",type:"error",test:function(t){return t&&t.length>0}}),"currency"===e.type&&t.push({key:"ERR_NOT_NUM",type:"error",test:function(t){return 0===t.length||0===t.replace(/[0-9,.\-]/g,"").length}}),"percentage"===e.type&&t.push({key:"ERR_NOT_NUM",type:"error",test:function(t){return 0===t.length||0===t.replace(/[0-9.\-]/g,"").length}}),"currency"!==e.type&&"percentage"!==e.type||"number"!=typeof e.decimals||t.push({key:"ERR_DEC_POS",type:"error",test:function(t){return t%1==0||t.length>0&&t.toString().split(".")[1]&&t.toString().split(".")[1].length<=e.decimals},values:{decimals:e.decimals}}),"number"==typeof e.min){var a="ERR_AMT_MIN";"percentage"===e.type&&(a="ERR_PER_MIN"),t.push({key:a,type:"error",test:function(t){return 0===t.length||i.getCurrencyValue(t)>=e.min},values:{min:i.formatAsCurrency(e.min),max:i.formatAsCurrency(e.max)}})}if("number"==typeof e.max){var r="ERR_AMT_MAX";"percentage"===e.type&&(r="ERR_PER_MAX"),t.push({key:r,type:"error",test:function(t){return 0===t.length||i.getCurrencyValue(t)<=e.max},values:{min:i.formatAsCurrency(e.min),max:i.formatAsCurrency(e.max)}})}return i.extendValidationRules(t,this.config.validationRules)},r.prototype.setValidationRules=function(t){this.config.validationRules=t},r.prototype.validate=function(){var t=this.getValidationRules();this.data.valid=this.alert.validate(this.input.val(),t)},r.prototype.attach=function(){var t=this;"currency"!==this.data.type&&"percentage"!==this.data.type||(this.input.on("input",function(e){var a=i.formatAsCurrency(t.data.value),r="currency"===t.data.type,n=r?i.getCurrencyValue(e.target.value):e.target.value;if(!/(37|38|89|40)/.test(e.keyCode)){var l=r?/[^0-9,.]/g:/[^0-9.]/g,s=e.target.value.replace(l,"").length!==e.target.value.length;if(isNaN(n)||null===n||s||!r)t.data.valid=!1;else{var u=i.formatAsCurrency(n,e.target.value),o=u.length>a.length?1:-1,p=u.length-(a.length-e.target.selectionStart+o),c=u.length-(a.length-e.target.selectionEnd+o);e.target.value=u,setTimeout(function(){e.target.setSelectionRange(p,c)})}t.data.value=n}!t.data.valid&&t.data.dirty&&t.validate()}),this.input.on("blur",function(){$(this).val().length>0&&(t.data.dirty=!0),t.data.dirty&&t.validate()}))},r}();
},{"../services/Utilities":65,"./Alert":45,"./Tooltip":52,"lite-ready":78}],48:[function(require,module,exports){
module.exports=function(){"use strict";var e=require("lite-ready"),t=require("../services/Utilities"),a=require("../components/Input"),i=require("../components/Select"),l=require("../components/Tooltip"),s=function(a,i){this.uid=t.generateUID(),this.el=a,this.data=i;var l=this;e(function(){l.createMarkup(),l.data.valid=l.value.data.valid&&l.frequency.data.valid})};return s.prototype.hide=function(){this.el.closest(".mCalc-Component").hide()},s.prototype.show=function(){this.el.closest(".mCalc-Component").show()},s.prototype.createMarkup=function(){var e=this.el.data("tooltip"),t=this.el,s=this.data;if(s.value&&s.frequency){t.addClass("mCalc-InputJoin");var n=$('
'),r=$('
');if(e){var o=$(' ');this.tooltip=new l(o,e),t.append(o)}t.append(n).append(r),this.value=new a(n,s.value),this.frequency=new i(r,s.frequency),t.find(".label:first").detach().prependTo(t),this.el.find(".label:eq(1)").addClass("hidden");var d=this.el.data("subtext");d&&this.el.find("label:first").after(''+d+"
")}this.label=t.find(".label:first")},s.prototype.validate=function(){this.value.validate(),this.frequency.validate(),this.data.valid=this.value.data.valid&&this.frequency.data.valid},s}();
},{"../components/Input":47,"../components/Select":51,"../components/Tooltip":52,"../services/Utilities":65,"lite-ready":78}],49:[function(require,module,exports){
module.exports=function(){"use strict";var e=require("../services/DataService"),t=function(t){this.el=t,this.messages=e.getData("messages")};return t.prototype.show=function(e){var t=e.key||"ERR_UNKNOWN",s=e.msg||t;this.messages&&(s=this.messages[t]||t,e.msg&&(s+=": "+e.msg));var i="info"===e.type?"notification":"notification-error";this.el.attr({role:"alert","aria-live":"error"===e.type?"assertive":"polite"}).html(s).addClass(i).show();var o=this.el[0].getBoundingClientRect(),r=document.body,n=document.documentElement,l=window.pageYOffset||n.scrollTop||r.scrollTop,a=n.clientTop||r.clientTop||0,c=o.top+l-a;window.scroll(0,c-150),this.el.closest("form").find(":input:visible:enabled:first").focus()},t.prototype.hide=function(){this.el&&this.el.removeClass("notification").removeClass("notification-error").text("").hide()},t}();
},{"../services/DataService":62}],50:[function(require,module,exports){
module.exports=function(){"use strict";var t=require("lite-ready"),e=require("./Alert"),i=require("../services/Utilities"),a=require("../components/Tooltip"),l=function(a,l,n){this.uid=i.generateUID(),this.el=a,this.data=l,this.config=n||{},this.data.valid=!this.data.required||!!this.data.value,this.data.dirty=!1;var o=this;t(function(){l&&(o.updateModel(l),o.alert=new e(o.el,{showMultiple:o.config.showMultipleAlerts}))})};return l.prototype.hide=function(){this.el.closest(".mCalc-Component").hide()},l.prototype.show=function(){this.el.closest(".mCalc-Component").show()},l.prototype.updateModel=function(t){var e=this.el.data("tooltip"),i=''+t.label;e&&(i+=' '),i+=" ";for(var l="mCalc-"+t.key+"-"+this.uid,n=0;n",i+=''+o+" "}this.el.append(i),e&&(this.tooltip=new a(this.el.find(".mCalc-Tooltip"),e)),this.input=this.el.find("input"),this.attach()},l.prototype.getValidationRules=function(){var t=[];return this.data.required&&t.push({key:"ERR_REQUIRED",test:function(t){return!!t}}),i.extendValidationRules(t,this.config.validationRules)},l.prototype.setValidationRules=function(t){this.config.validationRules=t},l.prototype.validate=function(){var t=this.getValidationRules();this.data.valid=this.el.find("input:visible").length<1||this.el.find("input:checked").length>0,this.alert.validate(this.el.find("input:checked").val(),t)},l.prototype.attach=function(){var t=this;this.el.find("input").on("click",function(e){t.data.dirty=!0,t.validate(),t.data.value=e.target.value})},l}();
},{"../components/Tooltip":52,"../services/Utilities":65,"./Alert":45,"lite-ready":78}],51:[function(require,module,exports){
module.exports=function(){"use strict";var t=require("lite-ready"),e=require("./Alert"),a=require("./Tooltip"),i=require("../services/Utilities"),l=function(a,l,s){this.uid=i.generateUID(),this.el=a,this.data=l,this.config=s||{},this.data.valid=!this.data.required||!!this.data.value,this.data.dirty=!1;var o=this;t(function(){l&&(o.generateHTML(l),o.updateModel(l),o.alert=new e(o.el,{showMultiple:o.config.showMultipleAlerts}))})};return l.prototype.getSelectedLabel=function(){for(var t="",e=0;e'+t.label+"",l=this.el.data("tooltip");l&&(i+=' '),i+='",this.el.append(i),l&&(this.tooltip=new a(this.el.find(".mCalc-Tooltip"),l)),this.select=this.el.find("select"),this.attach()},l.prototype.setValue=function(t){this.data.value=t,this.el.find("option").attr("selected",!1),this.el.find('option[value="'+t+'"]').attr("selected","selected"),this.validate()},l.prototype.updateModel=function(t){var e=this.el.find("select"),a="";t.placeholder&&!t.value&&(a+=''+t.placeholder+" ");for(var i=0;i"+l+""}e.empty(),e.append(a)},l.prototype.getValidationRules=function(){var t=[];return this.data.required&&t.push({key:"ERR_REQUIRED",test:function(t){return!!t}}),i.extendValidationRules(t,this.config.validationRules)},l.prototype.setValidationRules=function(t){this.config.validationRules=t},l.prototype.validate=function(){var t=this.getValidationRules();this.data.valid=this.alert.validate(this.el.find("select").val(),t)},l.prototype.attach=function(){var t=this;this.el.find("select").on("change",function(e){t.data.dirty=!0,t.validate(),t.data.value=e.target.value}),this.el.find("select").on("blur",function(){t.data.dirty&&t.validate()})},l}();
},{"../services/Utilities":65,"./Alert":45,"./Tooltip":52,"lite-ready":78}],52:[function(require,module,exports){
module.exports=function(t){"use strict";var i=function(i,o){this.text=o,this.el=i,this.el.attr("title",o).addClass("icon-tooltip icon-small").qtip({position:{my:"bottom center",at:"top center",viewport:t(window)}}),this.attach()};return i.prototype.attach=function(){this.el.on("click",function(t){t.preventDefault()}).on("focus",function(){t(this).qtip("api").show()}).on("blur",function(){t(this).qtip("api").hide()})},i}(jQuery);
},{}],53:[function(require,module,exports){
module.exports=function(){"use strict";var e=require("lite-ready"),t=require("../services/Utilities"),i=require("../services/DataService"),a=require("../components/Radio"),s=require("../components/Select"),o=require("../components/Input"),n=require("../components/Join"),r=require("../components/PageAlert"),l=require("../services/PromoBuilder"),d=function(t,a,s){this.el=t,this.stateManager=a,this.data=s,this.inputs=[];var o=this;e(function(){o.dataService=i,o.pageAlert=new r(t.find(".mCalc-Page-Alert")),o.createApplicantsField(),o.createIncomeFields(),o.createCombinedSpendingField(),o.createReasonField(),o.createDepositField(),o.createPropertyValueField(),o.updateDepositPropertyFieldsVisibility(),l.create("borrow",o.el),o.attachLinks(),o.attachForms()})};return d.prototype.show=function(){this.el.show(),this.applicants.el.find("input:first").focus()},d.prototype.hide=function(){this.el.hide()},d.prototype.createApplicantsField=function(){var e=this,t=this.el.find(".mCalc-Borrow-Applicants");this.applicants=new a(t,this.data.form.fields.applicants);var i=this.data.form.fields.deposit,s=this.data.form.fields.combinedSpending.value;this.applicants.input.on("click",function(t){e.updateIncomeFieldsVisibility(),"1"===t.currentTarget.value?(e.deposit.label.text(i.label),e.combinedSpending.label.text(s.label)):(e.deposit.label.text(i.altLabel),e.combinedSpending.label.text(s.altLabel))})},d.prototype.createReasonField=function(){var e=this,t=this.el.find(".mCalc-Borrow-Reason");this.reason=new s(t,this.data.form.fields.reason,{validationRules:[{key:"ERR_REQUIRED_REASON",replace:"ERR_REQUIRED"}]}),this.reason.select.on("change",function(){e.updateDepositPropertyFieldsVisibility()}),this.inputs.push(this.reason)},d.prototype.createDepositField=function(){var e=this.el.find(".mCalc-Borrow-Deposit");this.deposit=new o(e,this.data.form.fields.deposit,{validationRules:[{key:"ERR_REQUIRED_DEPOSIT",replace:"ERR_REQUIRED"}]}),this.inputs.push(this.deposit)},d.prototype.createPropertyValueField=function(){var e=this,i=this.el.find(".mCalc-Borrow-PropertyValue");this.propertyValue=new o(i,this.data.form.fields.propertyValue,{validationRules:[{key:"ERR_REQUIRED_PROPERTY_VALUE",replace:"ERR_REQUIRED"},{key:"ERR_PROPERTYVALUE_MAX",replace:"ERR_AMT_MAX",type:"error",test:function(i){var a=e.data.form.fields.propertyValue.max;return 0===i.length||t.getCurrencyValue(i)<=a}}]}),this.inputs.push(this.propertyValue)},d.prototype.createIncomeFields=function(){var e=this;this.income=[];for(var i=this.data.form.fields.income.value,a=this.data.form.fields.income.frequency,s=1;s<=this.data.form.fields.applicants.values.length;s++){var o={key:i.key+"-"+s,label:t.formatMessage(i.label,{i:s}),type:i.type,min:i.min,max:i.max,required:i.required},r={key:a.key+"-"+s,label:t.formatMessage(a.label,{i:s}),values:a.values,value:a.value},l=this.el.find(".mCalc-Borrow-Income-"+s);this.data.form.fields["income-"+s]={value:o,frequency:r};var d=new n(l,this.data.form.fields["income-"+s]);d.value.setValidationRules([{key:"ERR_REQUIRED_INCOME",replace:"ERR_REQUIRED"}]),this.income.push(d),this.inputs.push(d),d.frequency.select.on("change",e.updateIncomeMaxValues.bind(this))}this.updateIncomeMaxValues(),this.updateIncomeFieldsVisibility()},d.prototype.createCombinedSpendingField=function(){var e=this,t=this.el.find(".mCalc-Borrow-CombinedSpending");this.combinedSpending=new n(t,this.data.form.fields.combinedSpending),this.combinedSpending.value.setValidationRules([{key:"ERR_REQUIRED_COMBINED_SPENDING",replace:"ERR_REQUIRED"}]),this.updateCombinedSpendingValidation(),this.combinedSpending.frequency.select.on("change",function(){e.updateCombinedSpendingValidation(),e.combinedSpending.value.validate()}),this.inputs.push(this.combinedSpending)},d.prototype.updateCombinedSpendingValidation=function(){var e=this.combinedSpending.value,t=this.combinedSpending.frequency.data.value;e.data.min=e.data[t].min,e.data.max=e.data[t].max},d.prototype.updateIncomeFieldsVisibility=function(){var e=this.data.form.fields.applicants.value,i=this.data.form.fields.income.value,a=1===parseInt(e)?i.altLabel:i.label;this.income[0].label.text(t.formatMessage(a,{i:1}));for(var s=0;s0)this.dataService.setBorrowResults(e),this.stateManager.changeState("BorrowResults");else{var t;e.success?0===e.outputMaxBorrowingAmount&&(t="ERR_DERP"):t="ERR_XHR_FAIL",this.pageAlert.show({type:"error",key:t})}},d.prototype.resultsFail=function(e,t){this.pageAlert.show({type:"error",key:e,msg:t}),this.hideLoading()},d.prototype.getResults=function(){this.showLoading();var e=this;this.dataService.getBorrowResults().done(function(t){t.header&&"success"===t.header.result?e.resultsSuccess(t.body):e.resultsFail(t.header)}).fail(function(){e.resultsFail("ERR_XHR_FAIL")})},d.prototype.attachForms=function(){var e=this;this.el.find(".mCalc-Borrow-Form").on("submit",function(t){for(var i=0;i0)this.dataService.setBorrowResults(e),this.show(!0);else{var t;e.success?0===e.outputMaxBorrowingAmount&&(t="ERR_DERP"):t="ERR_XHR_FAIL",this.pageAlert.show({type:"error",key:t})}},l}();
},{"../components/Input":47,"../components/PageAlert":49,"../services/DataService":62,"../services/PromoBuilder":63,"../services/Utilities":65,"lite-ready":78}],55:[function(require,module,exports){
module.exports=function(){"use strict";var e=require("lite-ready"),t=require("../services/DataService"),a=require("../services/Utilities"),r=require("../components/Radio"),l=require("../components/Select"),i=require("../components/Input"),n=require("../components/DoubleSelect"),s=require("../components/PageAlert"),o=require("../components/Tooltip"),u=require("../services/Analytics"),p=require("../services/PromoBuilder"),E=function(a,r,l){this.el=a,this.stateManager=r,this.data=l,this.inputs=[];var i=this;e(function(){i.dataService=t,i.pageAlert=new s(i.el.find(".mCalc-Page-Alert")),i.totalBorrowing=i.el.find(".mCalc-Cost-TotalBorrowing"),i.createReasonField(),i.createPropertyValueField(),i.createRepaymentTypeField(),i.createRepaymentPlanField(),i.createBorrowField(),i.createInterestField(),i.createRepaymentField(),i.createFlatMaisonetteField(),i.createTermField(),i.createLTVTooltip(),i.updateRepaymentTypeFieldsVisibility(),i.updateLTV(),p.create("cost",a),i.attachForms(),i.attachLinks(),u.registerAllEventsTrack(a)})};return E.prototype.show=function(){this.el.show()},E.prototype.hide=function(){this.el.hide()},E.prototype.createMortgageTypeField=function(){var e=this.el.find(".mCalc-Cost-MortgageType");this.mortgageType=new r(e,this.data.form.fields.mortgageType),this.inputs.push(this.mortgageType)},E.prototype.createReasonField=function(){var e=this,t=this.el.find(".mCalc-Cost-Reason");this.reason=new l(t,this.data.form.fields.reason,{validationRules:[{key:"ERR_REQUIRED_REASON",replace:"ERR_REQUIRED"}]});var a=this.data.form.fields.term;this.reason.select.on("change",function(t){"RML"===t.currentTarget.value?e.term.label.text(a.altLabel):e.term.label.text(a.label)}),this.inputs.push(this.reason)},E.prototype.createPropertyValueField=function(){var e=this,t=this.el.find(".mCalc-Cost-PropertyValue");this.propertyValue=new i(t,this.data.form.fields.propertyValue,{validationRules:[{key:"ERR_REQUIRED_PROPERTY_VALUE",replace:"ERR_REQUIRED"},{key:"ERR_PROPERTYVALUE_MAX",replace:"ERR_AMT_MAX",type:"error",test:function(t){var r=e.data.form.fields.propertyValue.max;return 0===t.length||a.getCurrencyValue(t)<=r}}]}),this.propertyValue.input.on("keyup",function(){e.borrow.data.max=e.propertyValue.data.value,e.interest.data.max=e.propertyValue.data.value,e.repayment.data.max=e.propertyValue.data.value,e.updateInterestValidation(),e.updateRepaymentValidation(),e.borrow.data.value&&e.borrow.validate(),e.interest.data.value&&e.interest.validate(),e.repayment.data.value&&e.repayment.validate(),e.repaymentType.data.dirty&&e.repaymentType.validate(),e.flatMaisonette.data.dirty&&e.flatMaisonette.validate(),e.updateLTV()}),this.inputs.push(this.propertyValue)},E.prototype.createRepaymentTypeField=function(){var e=this,t=this.el.find(".mCalc-Cost-RepaymentType");this.repaymentType=new l(t,this.data.form.fields.repaymentType,{validationRules:[{key:"ERR_REP_MIN",type:"error",test:function(t){var a=e.dataService.getData("validation").ERR_REP_MIN.amt;return"repayment"===t||e.propertyValue.data.value>=a}}]}),this.repaymentType.select.on("change",function(){e.updateRepaymentTypeFieldsVisibility(),e.updateLTV(),(e.term.first.data.value||e.term.second.data.value)&&e.term.validate()}),this.inputs.push(this.repaymentType)},E.prototype.createRepaymentPlanField=function(){var e=this,t=this.el.find(".mCalc-Cost-RepaymentPlan");this.repaymentPlan=new l(t,this.data.form.fields.repaymentPlan,{validationRules:[{key:"ERR_REQUIRED_REPAYMENT_PLAN",replace:"ERR_REQUIRED"}]}),this.repaymentPlan.select.on("change",function(){e.interest.data.value&&(e.updateInterestValidation(),e.interest.validate()),e.repayment.data.value&&(e.updateRepaymentValidation(),e.repayment.validate())}),this.inputs.push(this.repaymentPlan)},E.prototype.createBorrowField=function(){var e=this,t=this.el.find(".mCalc-Cost-Borrow");this.borrow=new i(t,this.data.form.fields.borrow),this.borrow.input.on("keyup",function(){e.updateLTV()}),this.borrow.setValidationRules([{key:"ERR_REQUIRED_AMT",replace:"ERR_REQUIRED"},{key:"ERR_AMT_EXCEED",replace:"ERR_AMT_MAX",type:"error",test:function(t){var r=a.getCurrencyValue(t);return 0===t.length||r<=e.propertyValue.data.value}}]),this.inputs.push(this.borrow)},E.prototype.createInterestField=function(){var e=this,t=this.el.find(".mCalc-Cost-Interest"),a=this.data.form.fields.interest;this.interest=new i(t,a),this.updateInterestValidation(),this.interest.input.on("keyup",function(){e.updateLTV()}),this.interest.input.on("blur",function(){e.repayment.data.dirty&&e.repayment.validate()}),this.inputs.push(this.interest)},E.prototype.updateInterestValidation=function(){var e=this,t=this.interest.data,r=e.dataService.getData("validation");this.interest.setValidationRules([{key:"ERR_REQUIRED_AMT",replace:"ERR_REQUIRED"},{key:"ERR_AMT_EXCEED",replace:"ERR_AMT_MAX",type:"error",test:function(t){var r=a.getCurrencyValue(t);return 0===t.length||r<=e.propertyValue.data.value}},{key:"ERR_INTEREST_AMT",type:"error",test:function(e){var r=a.getCurrencyValue(e);return 0===e.length||r>=t.min&&r<=t.max},values:{min:a.formatAsCurrency(t.min),max:a.formatAsCurrency(t.max)}},{key:"ERR_BORROW_LTV_EXCEED_INTEREST_EQUITY_LIMIT",type:"error",test:function(t){var l=a.getCurrencyValue(t),i=Math.ceil(l/e.propertyValue.data.value*100*10)/10,n=r.ERR_BORROW_LTV_EXCEED.ltv,s=(e.propertyValue.data.value||0)-l,o=r.ERR_INTEREST_EQUITY_LIMIT.amt;return"interest"!==e.repaymentType.data.value||"sell"!==e.repaymentPlan.data.value||s>=o||i<=n}},{key:"ERR_BORROW_LTV_EXCEED_PART_EQUITY_LIMIT",type:"error",test:function(t){var l=a.getCurrencyValue(t)+(e.repayment.data.value||0),i=Math.ceil(l/e.propertyValue.data.value*100*10)/10,n=r.ERR_BORROW_LTV_EXCEED.ltv,s=(e.propertyValue.data.value||0)-l,o=r.ERR_INTEREST_EQUITY_LIMIT.amt;return"part"!==e.repaymentType.data.value||"sell"!==e.repaymentPlan.data.value||s>=o||i<=n}},{key:"ERR_BORROW_LTV_EXCEED_SELL",type:"error",test:function(t){var l=r.ERR_BORROW_LTV_EXCEED.ltv,i=r.ERR_INTEREST_LTV_EXCEED_SELL.ltv,n=a.getCurrencyValue(t),s=Math.ceil(n/e.propertyValue.data.value*100*10)/10,o=e.updateBorrowingAmount(),u=Math.ceil(o/e.propertyValue.data.value*100*10)/10;return"sell"!==e.repaymentPlan.data.value||u<=l||s<=i}},{key:"ERR_INTEREST_LTV_EXCEED_SELL_INTEREST_EQUITY_LIMIT",type:"error",test:function(t){var l=r.ERR_INTEREST_LTV_EXCEED_SELL.ltv,i=a.getCurrencyValue(t),n=Math.ceil(i/e.propertyValue.data.value*100*10)/10,s=(e.propertyValue.data.value||0)-i,o=r.ERR_INTEREST_EQUITY_LIMIT.amt;return"interest"!==e.repaymentType.data.value||"sell"!==e.repaymentPlan.data.value||s>=o||n<=l}},{key:"ERR_INTEREST_LTV_EXCEED_SELL_PART_EQUITY_LIMIT",type:"error",test:function(t){var l=r.ERR_INTEREST_LTV_EXCEED_SELL.ltv,i=a.getCurrencyValue(t),n=Math.ceil(i/e.propertyValue.data.value*100*10)/10,s=(e.propertyValue.data.value||0)-i,o=r.ERR_PART_EQUITY_LIMIT.amt;return"part"!==e.repaymentType.data.value||"sell"!==e.repaymentPlan.data.value||s>=o||n<=l}},{key:"ERR_BORROW_LTV_EXCEED_SELL_INTEREST_EQUITY_LIMIT",type:"error",test:function(t){var l=r.ERR_BORROW_LTV_EXCEED.ltv,i=r.ERR_INTEREST_LTV_EXCEED_SELL.ltv,n=a.getCurrencyValue(t),s=Math.ceil(n/e.propertyValue.data.value*100*10)/10,o=e.updateBorrowingAmount(),u=Math.ceil(o/e.propertyValue.data.value*100*10)/10,p=(e.propertyValue.data.value||0)-n,E=r.ERR_INTEREST_EQUITY_LIMIT.amt;return"interest"!==e.repaymentType.data.value||"sell"!==e.repaymentPlan.data.value||p>=E||u<=l||s<=i}},{key:"ERR_BORROW_LTV_EXCEED_SELL_PART_EQUITY_LIMIT",type:"error",test:function(t){var l=r.ERR_BORROW_LTV_EXCEED.ltv,i=r.ERR_INTEREST_LTV_EXCEED_SELL.ltv,n=a.getCurrencyValue(t),s=Math.ceil(n/e.propertyValue.data.value*100*10)/10,o=e.updateBorrowingAmount(),u=Math.ceil(o/e.propertyValue.data.value*100*10)/10,p=(e.propertyValue.data.value||0)-n,E=r.ERR_PART_EQUITY_LIMIT.amt;return"part"!==e.repaymentType.data.value||"sell"!==e.repaymentPlan.data.value||p>=E||u<=l||s<=i}},{key:"ERR_BORROW_LTV_EXCEED",type:"error",test:function(t){var l=a.getCurrencyValue(t);return"part"===e.repaymentType.data.value&&(l+=e.repayment.data.value||0),Math.ceil(l/e.propertyValue.data.value*100*10)/10<=r.ERR_BORROW_LTV_EXCEED.ltv}},{key:"ERR_INTEREST_LTV_EXCEED_SELL",type:"error",test:function(t){var l=r.ERR_INTEREST_LTV_EXCEED_SELL.ltv,i=a.getCurrencyValue(t),n=Math.ceil(i/e.propertyValue.data.value*100*10)/10;return"sell"!==e.repaymentPlan.data.value||n<=l}},{key:"ERR_INTEREST_EQUITY_LIMIT",type:"error",test:function(t){var l=a.getCurrencyValue(t),i=(e.propertyValue.data.value||0)-l,n=r.ERR_INTEREST_EQUITY_LIMIT.amt;return"interest"!==e.repaymentType.data.value||"sell"!==e.repaymentPlan.data.value||i>=n}},{key:"ERR_PART_EQUITY_LIMIT",type:"error",test:function(t){var l=a.getCurrencyValue(t),i=(e.propertyValue.data.value||0)-l,n=r.ERR_PART_EQUITY_LIMIT.amt;return"part"!==e.repaymentType.data.value||"sell"!==e.repaymentPlan.data.value||i>=n}}])},E.prototype.createRepaymentField=function(){var e=this,t=this.el.find(".mCalc-Cost-Repayment");this.repayment=new i(t,this.data.form.fields.repayment),this.updateRepaymentValidation(),this.repayment.input.on("keyup",function(){e.updateLTV()}).on("blur",function(){e.interest.data.dirty&&e.interest.validate()}),this.inputs.push(this.repayment)},E.prototype.updateRepaymentValidation=function(){var e=this,t=e.dataService.getData("validation");this.repayment.setValidationRules([{key:"ERR_REQUIRED_AMT",replace:"ERR_REQUIRED"},{key:"ERR_AMT_EXCEED",replace:"ERR_AMT_MAX",type:"error",test:function(t){var r=a.getCurrencyValue(t);return 0===t.length||r<=e.propertyValue.data.value}},{key:"ERR_BORROW_LTV_EXCEED_INTEREST_EQUITY_LIMIT",type:"error",test:function(){var a=e.interest.data.value,r=Math.ceil(a/e.propertyValue.data.value*100*10)/10,l=t.ERR_BORROW_LTV_EXCEED.ltv,i=(e.propertyValue.data.value||0)-a,n=t.ERR_INTEREST_EQUITY_LIMIT.amt;return"interest"!==e.repaymentType.data.value||"sell"!==e.repaymentPlan.data.value||i>=n||r<=l}},{key:"ERR_BORROW_LTV_EXCEED_PART_EQUITY_LIMIT",type:"error",test:function(){var a=e.interest.data.value+(e.repayment.data.value||0),r=Math.ceil(a/e.propertyValue.data.value*100*10)/10,l=t.ERR_BORROW_LTV_EXCEED.ltv,i=(e.propertyValue.data.value||0)-a,n=t.ERR_INTEREST_EQUITY_LIMIT.amt;return"part"!==e.repaymentType.data.value||"sell"!==e.repaymentPlan.data.value||i>=n||r<=l}},{key:"ERR_BORROW_LTV_EXCEED_SELL",type:"error",test:function(r){var l=t.ERR_BORROW_LTV_EXCEED.ltv,i=t.ERR_INTEREST_LTV_EXCEED_SELL.ltv,n=a.getCurrencyValue(r),s=Math.ceil(n/e.propertyValue.data.value*100*10)/10,o=e.updateBorrowingAmount(),u=Math.ceil(o/e.propertyValue.data.value*100*10)/10;return"sell"!==e.repaymentPlan.data.value||u<=l||s<=i}},{key:"ERR_INTEREST_LTV_EXCEED_SELL_INTEREST_EQUITY_LIMIT",type:"error",test:function(r){var l=t.ERR_INTEREST_LTV_EXCEED_SELL.ltv,i=a.getCurrencyValue(r),n=Math.ceil(i/e.propertyValue.data.value*100*10)/10,s=(e.propertyValue.data.value||0)-i,o=t.ERR_INTEREST_EQUITY_LIMIT.amt;return"interest"!==e.repaymentType.data.value||"sell"!==e.repaymentPlan.data.value||s>=o||n<=l}},{key:"ERR_INTEREST_LTV_EXCEED_SELL_PART_EQUITY_LIMIT",type:"error",test:function(r){var l=t.ERR_INTEREST_LTV_EXCEED_SELL.ltv,i=a.getCurrencyValue(r),n=Math.ceil(i/e.propertyValue.data.value*100*10)/10,s=(e.propertyValue.data.value||0)-i,o=t.ERR_PART_EQUITY_LIMIT.amt;return"part"!==e.repaymentType.data.value||"sell"!==e.repaymentPlan.data.value||s>=o||n<=l}},{key:"ERR_BORROW_LTV_EXCEED_SELL_INTEREST_EQUITY_LIMIT",type:"error",test:function(r){var l=t.ERR_BORROW_LTV_EXCEED.ltv,i=t.ERR_INTEREST_LTV_EXCEED_SELL.ltv,n=a.getCurrencyValue(r),s=Math.ceil(n/e.propertyValue.data.value*100*10)/10,o=e.updateBorrowingAmount(),u=Math.ceil(o/e.propertyValue.data.value*100*10)/10,p=(e.propertyValue.data.value||0)-n,E=t.ERR_INTEREST_EQUITY_LIMIT.amt;return"interest"!==e.repaymentType.data.value||"sell"!==e.repaymentPlan.data.value||p>=E||u<=l||s<=i}},{key:"ERR_BORROW_LTV_EXCEED_SELL_PART_EQUITY_LIMIT",type:"error",test:function(r){var l=t.ERR_BORROW_LTV_EXCEED.ltv,i=t.ERR_INTEREST_LTV_EXCEED_SELL.ltv,n=a.getCurrencyValue(r),s=Math.ceil(n/e.propertyValue.data.value*100*10)/10,o=e.updateBorrowingAmount(),u=Math.ceil(o/e.propertyValue.data.value*100*10)/10,p=(e.propertyValue.data.value||0)-n,E=t.ERR_PART_EQUITY_LIMIT.amt;return"part"!==e.repaymentType.data.value||"sell"!==e.repaymentPlan.data.value||p>=E||u<=l||s<=i}},{key:"ERR_BORROW_LTV_EXCEED",type:"error",test:function(r){var l=e.interest.data.value+a.getCurrencyValue(r);return Math.ceil(l/e.propertyValue.data.value*100*10)/10<=t.ERR_BORROW_LTV_EXCEED.ltv}},{key:"ERR_INTEREST_EQUITY_LIMIT",type:"error",test:function(){var a=e.interest.data.value,r=(e.propertyValue.data.value||0)-a,l=t.ERR_INTEREST_EQUITY_LIMIT.amt;return"interest"!==e.repaymentType.data.value||"sell"!==e.repaymentPlan.data.value||r>=l}},{key:"ERR_PART_EQUITY_LIMIT",type:"error",test:function(){var a=e.interest.data.value,r=(e.propertyValue.data.value||0)-a,l=t.ERR_PART_EQUITY_LIMIT.amt;return"part"!==e.repaymentType.data.value||"sell"!==e.repaymentPlan.data.value||r>=l}}])},E.prototype.createFlatMaisonetteField=function(){var e=this.el.find(".mCalc-Cost-FlatMaisonette");this.flatMaisonette=new r(e,this.data.form.fields.flatMaisonette,{validationRules:[{key:"ERR_REQUIRED_FLAT_MAISONETTE",replace:"ERR_REQUIRED"}]}),this.flatMaisonette.input.on("click",function(e){"yes"===e.currentTarget.value?($(".mCalc-Cost-LTV-Error").closest(".field-row").addClass("notification error").attr("role","alert"),$('.mCalc-Cost BUTTON[type="submit"]').prop("disabled",!0)):($(".mCalc-Cost-LTV-Error").closest(".field-row").removeClass("notification error").removeAttr("role"),$('.mCalc-Cost BUTTON[type="submit"]').prop("disabled",!1))}),this.inputs.push(this.flatMaisonette)},E.prototype.createTermField=function(){var e=this,t=this.el.find(".mCalc-Cost-Term"),a=this.data.form.fields.term.first.values[0].value,r=this.data.form.fields.term.first.values[this.data.form.fields.term.first.values.length-1].value,l=a>r?a:r;this.term=new n(t,this.data.form.fields.term,{validationRules:[{key:"ERR_REQUIRED_TERM",replace:"ERR_REQUIRED"},{key:"ERR_TERM_INTEREST",type:"error",test:function(){var t=!0;return"repayment"!==e.repaymentType.data.value&&(e.term.first.data.value>25||e.term.first.data.value>24&&e.term.second.data.value>0)&&(t=!1),t}},{key:"ERR_TERM_ZERO",type:"error",test:function(){return 12*e.term.first.data.value+e.term.second.data.value>0}},{key:"INFO_TERM_LOW",type:"info",test:function(){return e.term.first.data.value>4}}]}),this.term.first.select.on("change",function(t){e.term.second.data.value||e.term.second.setValue(0),parseInt(t.target.value)===l?(e.term.second.setValue("0"),e.term.second.select.attr("disabled","disabled")):e.term.second.select.attr("disabled",!1)}),this.inputs.push(this.term)},E.prototype.updateRepaymentTypeFieldsVisibility=function(){switch(this.borrow.hide(),this.interest.hide(),this.repayment.hide(),this.repaymentPlan.hide(),this.totalBorrowing.closest(".row").hide(),this.flatMaisonette.hide(),this.data.form.fields.repaymentType.value){case"interest":this.interest.label.text(this.data.form.fields.interest.altLabel),this.interest.show(),this.repaymentPlan.show();break;case"part":this.interest.label.text(this.data.form.fields.interest.label),this.interest.show(),this.repayment.show(),this.repaymentPlan.show(),this.totalBorrowing.closest(".row").show();break;default:this.borrow.show()}},E.prototype.updateBorrowingAmount=function(){var e=0;switch(this.data.form.fields.repaymentType.value){case"interest":e=this.interest.data.value||0;break;case"part":e=(this.interest.data.value||0)+(this.repayment.data.value||0);break;default:e=this.borrow.data.value||0}return this.totalBorrowing.text("£"+a.formatAsCurrency(e)),e},E.prototype.createLTVTooltip=function(){var e=this.el.find(".mCalc-Cost-LTV").data("tooltip"),t=this.el.find(".mCalc-LTV-Tooltip");this.ltvTooltip=new o(t,e)},E.prototype.updateLTV=function(){var e=this.updateBorrowingAmount(),t=0;return e&&this.propertyValue.data.value&&(t=Math.ceil(e/this.propertyValue.data.value*100*10)/10,t>85&&e>22e4&&e<=5e5?(this.flatMaisonette.show(),"yes"===this.flatMaisonette.data.value&&($(".mCalc-Cost-LTV-Error").closest(".field-row").addClass("notification error").attr("role","alert"),$('.mCalc-Cost BUTTON[type="submit"]').prop("disabled",!0))):(this.flatMaisonette.hide(),$(".mCalc-Cost-LTV-Error").closest(".field-row").removeClass("notification error").removeAttr("role"),$('.mCalc-Cost BUTTON[type="submit"]').prop("disabled",!1)),this.flatMaisonette.validate()),this.el.find(".mCalc-Cost-LTV").text(t+"%"),t},E.prototype.validateForm=function(){var e=[this.reason.data.valid,this.propertyValue.data.valid,this.term.first.data.valid,this.term.second.data.valid,this.repaymentType.data.valid,this.flatMaisonette.data.valid];switch(this.repaymentType.data.value){case"interest":e.push(this.interest.data.valid),e.push(this.repaymentPlan.data.valid);break;case"part":e.push(this.interest.data.valid),e.push(this.repayment.data.valid),e.push(this.repaymentPlan.data.valid);break;default:e.push(this.borrow.data.valid)}return-1===e.indexOf(!1)},E.prototype.resultsSuccess=function(e){this.hideLoading();var t=this.filterResults(e.body.mortgages);if(t&&t.length>0){var r={lookingTo:this.reason.getSelectedLabel().toLowerCase(),propertyValue:a.formatAsCurrency(this.propertyValue.data.value),repaymentType:this.repaymentType.getSelectedLabel().toLowerCase(),termYears:this.term.first.getSelectedLabel().toLowerCase(),termMonths:this.term.second.getSelectedLabel().toLowerCase(),ltv:this.updateLTV(),borrow:a.formatAsCurrency(this.borrow.data.value),interest:a.formatAsCurrency(this.interest.data.value),repayment:a.formatAsCurrency(this.repayment.data.value)};switch(this.repaymentType.data.value){case"repayment":r.loanAmount=a.formatAsCurrency(this.borrow.data.value);break;case"interest":r.loanAmount=a.formatAsCurrency(this.interest.data.value);break;case"part":r.loanAmount=a.formatAsCurrency(this.repayment.data.value+this.interest.data.value)}this.dataService.setCostResults(t,r),this.pageAlert.hide(),this.stateManager.changeState("costResults")}else this.pageAlert.show({type:"error",key:"ERR_NO_PRODUCTS"})},E.prototype.resultsFail=function(e,t){this.pageAlert.show({type:"error",key:e,msg:t}),this.hideLoading()},E.prototype.filterResults=function(e){if(!e)return!1;var t=this.updateLTV(),a=this.updateBorrowingAmount(),r=this.dataService.getData("cost").form.fields;return e.filter(function(e){return"RML"===r.reason.value||"ER"===r.reason.value||!(!(e.eligibility.firstTimeBuyer||e.eligibility.secondHome||e.eligibility.movingHome)&&e.eligibility.remortgage)}).filter(function(e){return!("RML"===r.reason.value||"ER"===r.reason.value)||e.eligibility.remortgage}).filter(function(e){return t<=e.maxLtv}).filter(function(e){return a>=e.minLoanAmount&&a<=e.maxLoanAmount})},E.prototype.showLoading=function(){this.el.closest(".wrapper").addClass("mCalc-Loading"),this.el.find(".btn-calculate").attr("disabled",!0)},E.prototype.hideLoading=function(){this.el.closest(".wrapper").removeClass("mCalc-Loading"),this.el.find(".btn-calculate").attr("disabled",!1).text("Calculate")},E.prototype.attachForms=function(){var e=this;this.el.find(".mCalc-Cost-Form").on("submit",function(t){if(t.preventDefault(),e.pageAlert.hide(),e.validateForm()){e.showLoading();var a={reason:e.reason.data.value,propertyValue:e.propertyValue.data.value,borrow:e.borrow.data.value,interest:e.interest.data.value,repayment:e.repayment.data.value,flatMaisonette:e.flatMaisonette.data.value,termYears:e.term.first.data.value,termMonths:e.term.second.data.value,repaymentType:e.repaymentType.data.value,repaymentPlan:e.repaymentPlan.data.value};a.borrow>5e5&&a.borrow/a.propertyValue>.85?(e.hideLoading(),e.pageAlert.show({type:"error",key:"ERR_NO_PRODUCTS"})):e.dataService.getCostResults(a).done(function(t){t.header&&"success"===t.header.result?e.resultsSuccess(t):e.resultsFail("ERR_DSS_FAIL")}).fail(function(t,a,r){e.resultsFail("ERR_XHR_FAIL",r)})}else for(var r=0;r0?t+" year"+(t>1?"s":""):"Lifetime",e+=' ',e+=''+a+" "}),this.el.find(".mortgageTerm-filter .mortgage-filter-section").append(e)},s.prototype.createTerms=function(){var t=this.el.find(".mCalc-Terms-Toggle"),e=this.el.find(".mCalc-Terms");t.attr("aria-expanded",!1),e.attr("aria-hidden",!0);var a={open:t.data("alt-text"),closed:t.text()};return t.on("click",function(r){r.preventDefault();var i=0;e.children().each(function(){i+=$(this).height()}),e.css("height",i),setTimeout(function(){"true"===t.attr("aria-expanded")?(t.attr("aria-expanded",!1).text(a.closed),e.attr("aria-hidden",!0).removeClass("mCalc-Terms-Open").css("height",0)):(t.attr("aria-expanded",!0).text(a.open),e.attr("aria-hidden",!1).addClass("mCalc-Terms-Open")),setTimeout(function(){e.css("height","")},500)})}),!0},s.prototype.setEnquiryHTML=function(){var t=r.formatMessage(this.data.summary.text,this.data.userData);this.el.find(".mCalc-CostResults-SummaryText").html(t)},s.prototype.buildAipData=function(t,e){var a=[{key:"enquiryType",value:t.reason.value},{key:"repayTermYear",value:Math.ceil(t.term.first.value)},{key:"combinedDeposit",value:Math.ceil(t.propertyValue.value-t.borrow.value)},{key:"propertyValue",value:Math.ceil(t.propertyValue.value)},{key:"mortgageAmount",value:Math.ceil(t.borrow.value)},{key:"applicants",value:"1"}];return e&&window.sessionStorage&&window.sessionStorage.setItem("mortgageData",JSON.stringify(a)),a},s.prototype.populateAipForm=function(t){for(var e="",a=0;a';this.el.find(".mCalc-AIP-Form").prepend(e)},s.prototype.setAvailableHTML=function(){var t=this.data.products.length;this.el.find(".mCalc-CostResults-AvailableText").html(function(){return r.formatMessage($(this).data("template"),{pluralAre:1===t?"is":"are",pluralS:1===t?"":"s",total:t})})},s.prototype.attachLinks=function(){var t=this;this.el.find(".mCalc-link").on("click",function(e){e.preventDefault();var a=t.stateManager.getModuleName($(this).attr("href"));t.stateManager.changeState(a)})},s}();
},{"../../mortgage-table/mortgage-table":66,"../services/DataService":62,"../services/PromoBuilder":63,"../services/Utilities":65,"lite-ready":78}],57:[function(require,module,exports){
module.exports=function(){"use strict";var e=require("lite-ready"),t=require("../services/DataService"),a=require("../components/Select"),i=require("../components/DoubleSelect"),n=require("../components/Input"),r=require("../components/PageAlert"),s=require("../services/PromoBuilder"),l=function(a,i,n){this.el=a,this.stateManager=i,this.data=n,this.inputs=[];var l=this;e(function(){l.dataService=t,l.pageAlert=new r(a.find(".mCalc-Page-Alert")),l.createRepaymentTypeField(),l.createTermField(),l.createRemainingBalanceField(),l.createRemainingInterestBalanceField(),l.createRemainingRepaymentBalanceField(),l.createInterestRateField(),l.createAffordableAmountField(),l.createNewInterestRateField(),l.updateRepaymentTypeFieldsVisibility(),s.create("interest",a),l.attachLinks(),l.attachForms(),l.attachValidation()})};return l.prototype.show=function(){this.el.show(),this.repaymentType.el.focus()},l.prototype.hide=function(){this.el.hide()},l.prototype.createRepaymentTypeField=function(){var e=this,t=this.el.find(".mCalc-Interest-RepaymentType");this.repaymentType=new a(t,this.data.form.fields.repaymentType),this.repaymentType.select.on("change",function(){e.updateRepaymentTypeFieldsVisibility(),(e.remainingTerm.first.data.value||e.remainingTerm.second.data.value)&&e.remainingTerm.validate()}),this.inputs.push(this.repaymentType)},l.prototype.createTermField=function(){var e=this,t=this.el.find(".mCalc-Interest-Term");this.remainingTerm=new i(t,this.data.form.fields.remainingTerm,{validationRules:[{key:"ERR_REQUIRED_TERM",replace:"ERR_REQUIRED"},{key:"ERR_TERM_ZERO",type:"error",test:function(){return 12*e.remainingTerm.first.data.value+e.remainingTerm.second.data.value>0}}]}),this.remainingTerm.first.select.on("change",function(t){e.remainingTerm.second.data.value||e.remainingTerm.second.setValue(0),"35"===t.target.value?(e.remainingTerm.second.setValue("0"),e.remainingTerm.second.select.attr("disabled","disabled")):e.remainingTerm.second.select.attr("disabled",!1)}),this.inputs.push(this.remainingTerm)},l.prototype.createRemainingBalanceField=function(){var e=this.el.find(".mCalc-Interest-Balance");this.mortgageBalance=new n(e,this.data.form.fields.mortgageBalance,{validationRules:[{key:"ERR_REQUIRED_AMT",replace:"ERR_REQUIRED"}]}),this.inputs.push(this.mortgageBalance)},l.prototype.createRemainingInterestBalanceField=function(){var e=this.el.find(".mCalc-Interest-InterestBalance");this.interestBalance=new n(e,this.data.form.fields.interestBalance,{validationRules:[{key:"ERR_REQUIRED_AMT",replace:"ERR_REQUIRED"}]}),this.inputs.push(this.interestBalance)},l.prototype.createRemainingRepaymentBalanceField=function(){var e=this.el.find(".mCalc-Interest-RepaymentBalance");this.repaymentBalance=new n(e,this.data.form.fields.repaymentBalance,{validationRules:[{key:"ERR_REQUIRED_AMT",replace:"ERR_REQUIRED"}]}),this.inputs.push(this.repaymentBalance)},l.prototype.createInterestRateField=function(){var e=this,t=this.el.find(".mCalc-Interest-CurrentRate"),a=this.data.form.fields.currentInterestRate;this.currentInterestRate=new n(t,a),this.currentInterestRate.setValidationRules([{key:"ERR_DEC_POS",replace:"ERR_REQUIRED",values:{decimals:a.decimals}},{key:"ERR_DEC_POS",replace:"ERR_NOT_NUM",values:{decimals:a.decimals}},{key:"ERR_SAMERATE_CURRENT",type:"error",test:function(t){return parseFloat(t)!==parseFloat(e.newInterestRate.data.value)}}]),this.currentInterestRate.input.on("blur",function(){e.newInterestRate.data.dirty&&!e.newInterestRate.data.valid&&e.newInterestRate.validate()}),this.inputs.push(this.currentInterestRate)},l.prototype.createNewInterestRateField=function(){var e=this,t=this.el.find(".mCalc-Interest-NewRate"),a=this.data.form.fields.newInterestRate;this.newInterestRate=new n(t,a),this.newInterestRate.setValidationRules([{key:"ERR_DEC_POS",replace:"ERR_REQUIRED",values:{decimals:a.decimals}},{key:"ERR_DEC_POS",replace:"ERR_NOT_NUM",values:{decimals:a.decimals}},{key:"ERR_SAMERATE_NEW",type:"error",test:function(t){return parseFloat(t)!==parseFloat(e.currentInterestRate.data.value)}}]),this.newInterestRate.input.on("blur",function(){e.currentInterestRate.data.dirty&&!e.currentInterestRate.data.valid&&e.currentInterestRate.validate()}),this.inputs.push(this.newInterestRate)},l.prototype.createAffordableAmountField=function(){var e=this.el.find(".mCalc-Interest-AffordableAmount");this.affordableAmount=new n(e,this.data.form.fields.affordableAmount,{validationRules:[{key:"ERR_REQUIRED_MONTHLY_REPAYMENT",replace:"ERR_REQUIRED"}]}),this.inputs.push(this.affordableAmount)},l.prototype.updateRepaymentTypeFieldsVisibility=function(){switch(this.mortgageBalance.hide(),this.interestBalance.hide(),this.repaymentBalance.hide(),this.data.form.fields.repaymentType.value){case"interest":this.interestBalance.show();break;case"part":this.interestBalance.show(),this.repaymentBalance.show();break;default:this.mortgageBalance.show()}},l.prototype.validateForm=function(){var e=[this.remainingTerm.first.data.valid,this.remainingTerm.second.data.valid,this.currentInterestRate.data.valid,this.newInterestRate.data.valid,this.affordableAmount.data.valid];switch(this.repaymentType.data.value){case"interest":e.push(this.interestBalance.data.valid);break;case"part":e.push(this.repaymentBalance.data.valid),e.push(this.interestBalance.data.valid);break;default:e.push(this.mortgageBalance.data.valid)}return-1===e.indexOf(!1)},l.prototype.getResults=function(){if(this.validateForm())this.stateManager.changeState("InterestResults");else for(var e=0;er;)n-=.01;return n},i.prototype.calculate=function(){var e=this.dataService.getData("interest").form.fields,t={rateCurrent:parseFloat(e.currentInterestRate.value),rateNotional:parseFloat(e.newInterestRate.value),term:a.getRemainingMonths(e.remainingTerm),amountAfford:e.affordableAmount.value};switch(e.repaymentType.value){case"interest":t.amountInterest=e.interestBalance.value;break;case"part":t.amountCapital=e.repaymentBalance.value,t.amountInterest=e.interestBalance.value;break;default:t.amountCapital=e.mortgageBalance.value}return{zeroPctgPayment:this.calculateRepayment(0,t.term,t.amountCapital,t.amountInterest),currentMonthlyRepayment:this.calculateRepayment(t.rateCurrent,t.term,t.amountCapital,t.amountInterest),newMonthlyRepayment:this.calculateRepayment(t.rateNotional,t.term,t.amountCapital,t.amountInterest),maxRate:this.calculateMaxAffordableRate(t.term,t.amountCapital,t.amountInterest,t.amountAfford)}},i.prototype.attachLinks=function(){var e=this;this.el.find(".mCalc-link").on("click",function(t){t.preventDefault();var a=e.stateManager.getModuleName($(this).attr("href"));e.stateManager.changeState(a)})},i.prototype.validateForm=function(e){var t=[e.remainingTerm.first.valid,e.remainingTerm.second.valid,e.currentInterestRate.valid,e.newInterestRate.valid,e.affordableAmount.valid];switch(e.repaymentType.value){case"interest":t.push(e.interestBalance.valid);break;case"part":t.push(e.repaymentBalance.valid),t.push(e.interestBalance.valid);break;default:t.push(e.mortgageBalance.valid)}return-1===t.indexOf(!1)},i}();
},{"../components/Input":47,"../components/PageAlert":49,"../services/DataService":62,"../services/PromoBuilder":63,"../services/Utilities":65,"lite-ready":78}],59:[function(require,module,exports){
module.exports=function(){"use strict";var t=require("../services/Analytics"),e=require("lite-ready"),i=require("../services/PromoBuilder"),r=function(r,a,n){this.el=r,this.stateManager=a,this.data=n,t.registerAllEventsTrack(r);var s=this;e(function(){i.create("intro",s.el),s.attachLinks()})};return r.prototype.show=function(){this.el.show()},r.prototype.hide=function(){this.el.hide()},r.prototype.attachLinks=function(){var t=this;this.el.find(".mCalc-link").on("click",function(e){e.preventDefault();var i=t.stateManager.getModuleName($(this).attr("href"));t.stateManager.changeState(i)})},r}();
},{"../services/Analytics":61,"../services/PromoBuilder":63,"lite-ready":78}],60:[function(require,module,exports){
var barclays=window.barclays||{};barclays.mortgageCalc=function(e){"use strict";var t=require("lite-ready"),s=require("./services/DataService"),r=require("./services/StateManager"),a=require("./modules/Intro"),i=require("./modules/Borrow"),n=require("./modules/BorrowResults"),l=require("./modules/Cost"),o=require("./modules/CostResults"),u=require("./components/PageAlert"),h=require("./modules/Interest"),c=require("./modules/InterestResults"),g=function(e){this.el=e,this.modules={};var a=this;t(function(){a.stateManager=new r,a.dataService=s,a.dataService.init(e.attr("data-json-path")).done(function(){a.init()}).fail(function(e,t,s){a.fail(s)})})};return g.prototype.init=function(){1===this.el.find(".mCalc-Intro").length&&this.stateManager.registerModule("intro",new a(this.el.find(".mCalc-Intro"),this.stateManager,this.dataService.getData("intro")));var e=this.dataService.getData("borrow"),t=this.dataService.getData("borrowResults");e&&(1===this.el.find(".mCalc-Borrow").length&&this.stateManager.registerModule("borrow",new i(this.el.find(".mCalc-Borrow"),this.stateManager,e)),1===this.el.find(".mCalc-BorrowResults").length&&this.stateManager.registerModule("borrowresults",new n(this.el.find(".mCalc-BorrowResults"),this.stateManager,t)));var s=this.dataService.getData("cost"),r=this.dataService.getData("costResults");s&&(1===this.el.find(".mCalc-Cost").length&&this.stateManager.registerModule("cost",new l(this.el.find(".mCalc-Cost"),this.stateManager,s)),1===this.el.find(".mCalc-CostResults").length&&this.stateManager.registerModule("costresults",new o(this.el.find(".mCalc-CostResults"),this.stateManager,r)));var u=this.dataService.getData("interest"),g=this.dataService.getData("interestResults");u&&(1===this.el.find(".mCalc-Interest").length&&this.stateManager.registerModule("interest",new h(this.el.find(".mCalc-Interest"),this.stateManager,u)),1===this.el.find(".mCalc-InterestResults").length&&this.stateManager.registerModule("interestresults",new c(this.el.find(".mCalc-InterestResults"),this.stateManager,g))),this.stateManager.init()},g.prototype.fail=function(e){this.pageAlert=new u(this.el.find(".mCalc-DataError .mCalc-Page-Alert")),this.pageAlert.show({type:"error",key:"ERR_JSON_LOAD",msg:e}),this.el.find(".mCalc-DataError").show()},{init:function(t){return new g(e(t))}}}(jQuery),module.exports=barclays.mortgageCalc;
},{"./components/PageAlert":49,"./modules/Borrow":53,"./modules/BorrowResults":54,"./modules/Cost":55,"./modules/CostResults":56,"./modules/Interest":57,"./modules/InterestResults":58,"./modules/Intro":59,"./services/DataService":62,"./services/StateManager":64,"lite-ready":78}],61:[function(require,module,exports){
module.exports=function(e){"use strict";var t=require("./DataService"),a={},r={prop1:"Personal",prop2:"Personal:Mortgage",prop3:"Personal:Mortgage:MortgageCalculator",prop24:"Mortgage"},n=["A","BUTTON","FORM","INPUT","SELECT"],o=function(t){var a=window.s&&window.s.pageName,n=[],o=e.extend({prop16:window.location.pathname+window.location.hash,prop17:a},r,t);for(var i in o)o.hasOwnProperty(i)&&n.push(i);return o.linkTrackVars=n.join(","),o};return a.registerPageTrack=function(e){var a=o(e);t.getData("config").debug?console.log("PageTrack",a):window.s&&(window.s.clearVars(),window.s.t(a))},a.registerEventTrack=function(e,a,n){var i,s=o(n||{});switch(a){case"download":i="d";break;case"exit":i="e";break;default:i="o"}e=r.prop3+":"+e,t.getData("config").debug?console.log("EventTrack",{Name:e,LinkType:i,Props:s}):window.s&&window.s.tl(!0,i,e)},a.registerAllEventsTrack=function(t){t.find("[data-sitecat]").each(function(){var t=e(this).data("sitecat").split("|"),r=e(this)[0].tagName,o=e(this);-1===n.indexOf(r)&&(o=e(this).find("input,select")),o.each(function(r){var n=e(this)[0].tagName;"SELECT"!==n&&"INPUT"!==n||e(this).on("change",function(){var n=t[r]+":"+e(this).val().replace(/\,/g,"");a.registerEventTrack(n)}),"FORM"===n&&e(this).on("submit",function(){a.registerEventTrack(t[r])}),"A"!==n&&"BUTTON"!==n||e(this).on("click",function(){a.registerEventTrack(t[r])})})})},a}(jQuery);
},{"./DataService":62}],62:[function(require,module,exports){
module.exports=function(e){"use strict";var t={},a={},n=require("../services/Utilities");return t.init=function(t){var n=e.ajax({type:"GET",dataType:"json",url:t});return n.done(function(e){a=e}),n},t.getData=function(e){return e?a[e]:a},t.setBorrowResults=function(e){a.borrowResults.values=e},t.getBorrowResults=function(){for(var t=a.borrow.form.fields,r={applicants:t.applicants.value,reason:t.reason.value,deposit:t.deposit.value,propertyValue:t.propertyValue.value,combinedSpending:n.getMonthlySpend(t.combinedSpending.value.value,t.combinedSpending.frequency.value)},o=0;o"}function r(a){return a.toLowerCase().charAt(0).toUpperCase()+a.slice(1)}var e=require("./DataService"),t={};return t.create=function(r,t){var o=e.getData(r).promoConf,c=e.getData("promos"),s=t.find(".promo-wrapper");if(o&&o.promos&&s.length){var l;switch(o.promos.length){case 1:l="one";break;case 2:l="two";break;case 3:l="three";break;case 4:l="four";break;default:return}s.addClass("promo-wrapper-"+l);var i=o.ctaType||"primary";o.promos.forEach(function(e){var t=c[e];t&&s.append(a(t,r,e,i))})}},t}();
},{"./DataService":62}],64:[function(require,module,exports){
module.exports=function(t){"use strict";var e=require("./Analytics"),o=require("./Utilities"),i=function(){this.baseTitle=document.querySelector("title").text,this.enabled=!!(window.history&&window.history.pushState&&window.history.replaceState),this.modules={},this.initialModulePriority=["intro","cost","borrow","interest"]};return i.prototype.init=function(){var t,e=this.getModuleNameFromURL();if(e&&this.modules[e])t=e;else for(var o=0;o-1&&d(t)}).dataTable(i)}}function e(t,e){_=t.bbbr;var n,o=[];if(z)n=t.cmsPages[0];else if(t.cmsPages){var i=window.location.pathname.replace(/.html|\//g,"");n=a.grep(t.cmsPages,function(a){return S(i,I(a.url))})[0]}else n={type:"",products:t};if(n&&n.products&&n.products.length>0){E="RateSwitchIO"===n.type,H=n.type.indexOf("BTL")>-1,e.pageFootnotes={representativeExampleOverallCost:n.representativeExampleOverallCost,representativeExample:n.representativeExample};var r={};n.products.forEach(function(a,t){var n,i={},r=(a.initialRateHasBbbr?a.initialRate+"% "+a.initialRateTitleTables:a.initialRate+"%")+" "+a.initialRateNote+" ",l=a.earlyRepaymentCharges.split("%"),d=a.annualSummaryForFixed||a.annualSummaryForVariable;if(!U&&d&&(U=!0),i.hasAmortisation=d?"true":"false",i.hasFee=parseFloat(a.applicationFee)>0?"true":"false",i._initialRate=r,0===parseFloat(a.followOnRate))n="N/A";else if("number"==typeof _){var s=parseFloat(a.followOnRate-_).toFixed(2);n=a.followOnRate+"% (BEBR + "+s+"%) "+a.followOnRateNote+" "}else n="N/A"===a.followOnRateTitle?"N/A":a.followOnRate+"% "+a.followOnRateNote+" ";i._followOnRate=n||"N/A",i.mortgageName=""+parseFloat(a.initialRate).toFixed(2)+'% '+a.mortgageName+'
",i.applicationFee=""+(a.isApplicationFeePercentage?a.applicationFee+"%":"£"+a.applicationFee)+"
",i.overallCost=""+a.overallCostTitle+"
",i.initialRate=''+r+"
",i.followOnRateTitle=""+n+"
";var m=Y.table.mortgageData.productTable.showMinMaxAmount,c=Y.table.mortgageData.productTable.minAmountText,p=Y.table.mortgageData.productTable.maxAmountText,g=""+a.maxLtv+"%";m&&"number"==typeof a.minLoanAmount&&"number"==typeof a.maxLoanAmount?(g+=" ("+c+" £"+j(a.minLoanAmount)+", ",g+=p+" £"+j(a.maxLoanAmount)+")"):g+=" ",g+="
",i.howMuchCanBeBorrowedNote=g,i.earlyRepaymentCharges=""+l[0]+(l[1]?"% "+l[1]+" ":"")+"
",i.freeLegal=""+(a.freeLegal?"Yes":"No")+"
",i.aprc=""+a.aprValue+"%
",a.monthlyRepaymentHolder&&(i._fixedTermMonths=a.monthlyRepaymentHolder.fixedTermPeriod,i.initialRepayment="£"+b((parseFloat(a.monthlyRepaymentHolder.monthlyRepaymentForFixedTerm)+parseFloat(a.monthlyRepaymentHolder.interestOnlyPaymentForFixed)).toFixed(2)),i._fixedTermMonths&&(i.initialRepayment+=" ("+i._fixedTermMonths+" months) "),i.initialRepayment+="
",a.monthlyRepaymentHolder.remainingTermPeriod>0?i.followOnRepayment="£"+b((parseFloat(a.monthlyRepaymentHolder.monthlyRepaymentForRemainingTerm)+parseFloat(a.monthlyRepaymentHolder.interestOnlyPaymentForRemainingTerm)).toFixed(2))+" for "+a.monthlyRepaymentHolder.remainingTermPeriod+" months
":i.followOnRepayment="N/A
",i.totalPayment="£"+b(a.totalPayment.toFixed(2))+"
",i._fixedTermPeriod=a.monthlyRepaymentHolder.fixedTermPeriod,i._remainingTermPeriod=a.monthlyRepaymentHolder.remainingTermPeriod),i._annualSummaryForFixed=a.annualSummaryForFixed,i._annualSummaryForVariable=a.annualSummaryForVariable;var h;if(a.mortgageName){var u,f=a.mortgageName.toLowerCase(),v=null;f.indexOf("years")>-1?v="years":f.indexOf("year")>-1?v="year":f.indexOf("yrs")>-1?v="yrs":f.indexOf("yr")>-1?v="yr":(i.mortgageTermIsYear=!1,i.mortgageTerm="Lifetime"),null!==v&&(u=f.split(v),u.length>1&&(h=u[0].match(/(\d+)(?!.*\d)/)),h&&(i.mortgageTermIsYear=!0,i.mortgageTerm=h[0].trim()))}i.mortgageType=a.mortgageType,i.mortgageId=a.uniqueId,i.estimatedRepayment='£-
',e.tableColumns.forEach(function(t){i[t.data]||(i[t.data]=a[t.data])}),i.mortgageTermDisplay="1"===i.mortgageTerm&&"1 year"||i.mortgageTermIsYear&&i.mortgageTerm+" years"||"Lifetime",o.push(i)}),o=o.sort(function(a,t){var e=parseInt(a.mortgageTermIsYear&&a.mortgageTerm||"99"),n=parseInt(t.mortgageTermIsYear&&t.mortgageTerm||"99");return e>n&&1||e'+t.mortgageTermDisplay+" "):a("#mortgage-table-initial-period-filter").append('Lifetime ')}})}else console.info(Y.table.general.noProductsOnPageMessage),e.component.find(".json-load-failed").removeClass("hidden"),e.component.find(".mortgage-filters-tables").addClass("hidden");return o}function n(t,e,n){var r,l=!1,d=a(t.row(e).node()).hasClass("odd"),s=!0===a(t.row(e).node()).find("[data-is-offset]").data("is-offset"),m=0,c=a.map(n,function(a){return"MortgageId"===a.title&&(r=a.data),"hasAmortisation"===a.title&&(l="true"===a.data),a.hidden?o(a):(m++,"")}).join("");return!!c&&i(c,r,d,m,s,l)}function o(t){return t.columnIndex>0?''+a("
").html(t.title).text()+'
":""}function i(t,e,n,o,i,r){var l=Y.table.mortgageData.productTable,d=Y.table.mortgageData.rateSwitchTable;return a(''+(W?"":B?i?d.offsetMessage:"
"+d.detailsTitle+" "+d.detailsMessageLine1+"
"+P(e):"
"+l.detailsMessageLine1+"
"+l.detailsMessageLine2+"
"+A())+"
"+(r&&l.amortisationMessageLine1?"
"+l.amortisationMessageLine1+"
":"")+(r&&l.amortisationMessageLine2?"
"+l.amortisationMessageLine2+"
":"")+(r?'
'+l.amortisationCtaLabel+" ":"")+"
")}function r(t,e){var n=t.api(),o=n.rows({page:"current"}).nodes(),i=null;n.column(0,{page:"current"}).data().each(function(t,e){if(i!==t){var n=e%2==0?"odd":"";a(o).eq(e).before(''+t+" "),i=t}}),c(e)}function l(t){t.table.on("click","tr.group",function(t){a(t.currentTarget).next().trigger("click")}),t.table.on("click",'tr[role="row"]',function(t){a(t.currentTarget).prev().toggleClass("parent")})}function d(a){s(a,a.limit,!0),a.component.find(".mortgage-pagination-all").on("click",function(t){t.preventDefault(),s(a,-1)})}function s(a,t,e){var n=a.table.DataTable().rows({filter:"applied"}).nodes().length;e||a.table.DataTable().page.len(t).draw(),(t>=n||-1===t)&&a.component.find(".mortgage-pagination-all").hide()}function m(t){t.component.find(".mortgage-filter")&&(t.component.find(".mortgage-filters input").attr("id",function(){return this.id+t.id}),t.component.find(".mortgage-filters label").attr("for",function(){return a(this).attr("for")+t.id}),t.component.find(".mortgage-filters-actions a.btn").on("click",function(t){a(t.target).closest(".mortgage-table-component").find(".mortgage-filters").toggleClass("filters-open"),a(t.currentTarget).toggleClass("filters-open")}),t.component.find(".mortgageTerm-filter, .mortgageType-filter, .freeLegal-filter").on("change",function(e){g(t,a(e.currentTarget))}))}function c(t){t.table.find("tr.group").hover(function(t){a(t.currentTarget).next("tr").addClass("hovered")},function(t){a(t.currentTarget).next("tr").removeClass("hovered")}),t.table.find('tr[role="row"]').hover(function(t){a(t.currentTarget).prev("tr").addClass("hovered")},function(t){a(t.currentTarget).prev("tr").removeClass("hovered")})}function p(t){t.component.find(".update-repayments-btn").on("click",function(a){a.preventDefault(),u(t)}),a("#outstanding-amount").on("keyup input",function(e){v(this,e),0!==a(this).val().length?t.component.find(".update-repayments-btn").attr("disabled",!1).removeClass("btn-disabled"):t.component.find(".update-repayments-btn").attr("disabled",!0).addClass("btn-disabled")});for(var e=1;e<36;e++)a("#outstandingYears").append(a(" ").attr("value",e).text(e+(e>1?" years":" year")));for(var n=0;n<12;n++)a("#outstandingMonths").append(a(" ").attr("value",n).text(n+(1!==n?" months":" month")))}function g(t,e){t.component.find(".compare-button-wrapper").addClass("hidden");var n=e.find("input:checked").map(function(){return"^"+a(this).val()+"$"}).get(),o=e.attr("data-table-column");n.length&&o?t.table.DataTable().column(o).search(n.join("|"),!0,!1).draw():o&&t.table.DataTable().column(o).search("").draw();var i=t.component.find(".mCalc-CostResults-AvailableText");if(1===i.length){var r=i.data("template"),l=t.table.DataTable().rows({filter:"applied"}).nodes().length,d={total:l,pluralS:1===l?"":"s"},m=r.replace(/\${\w+}/g,function(a){return a=a.replace(/[^a-zA-Z0-9]/g,""),d[a]});i.html(m)}s(t,-1)}function h(t){t.pageFootnotes&&a((t.pageFootnotes.representativeExample?""+t.pageFootnotes.representativeExample.replace(/\n/g," ")+"
":"")+(t.pageFootnotes.representativeExampleOverallCost?""+t.pageFootnotes.representativeExampleOverallCost.replace(/\n/g," ")+"
":"")).insertAfter(t.table.parent())}function u(t){var e=f(),n=12*Number(a("#outstandingYears").val())+Number(a("#outstandingMonths").val());if(!e)return a(".action-container a").attr("disabled",!0).addClass("btn-disabled"),t.component.find(".mortgage-filters-tables").addClass("hidden"),!1;t.table.find("tbody tr:not(.group,.child)").each(function(){var o,i=a(this).find("[data-initial-rate]").attr("data-initial-rate"),r=i/100,l=1/(1+r/12);o=E?e*r*(n/12)/n:e*(l-1)/(l*(Math.pow(l,n)-1)),t.dataTable.api().cell(a(this).find(".estimated-repayment").closest("td")).data('£'+b(o.toFixed(2))+"
").draw()}),a(".action-container a").attr("disabled",!1).removeClass("btn-disabled"),a(".mortgage-filters-tables").removeClass("hidden"),J=!0}function f(){var t=a("#outstanding-amount"),e=t.val();return e=parseFloat(e.replace(/\s*,\s*|/g,"")),e<1?(t.addClass("notification-error"),a(".calc-error").show(),!1):(t.removeClass("notification-error"),a(".calc-error").hide(),e)}function b(a){var t=a.toString().split(".")[1],e=t&&1===t.length?"0":"";return t||(e=".00"),a.toString().replace(/\B(?=(\d{3})+(?!\d))/g,",")+e}function v(t,e){e.which>=37&&e.which<=40&&e.preventDefault();var n=a(t).val();y(n).length>1&&(n=n.slice(0,-1)),a(t).val(w(n))}function y(a){var t=0;return null!==a.match(/\./g)&&(t=a.match(/\./g)),t}function w(a){var t=a.toString().split(".");return 1===t.length&&(t[0]=a,t[0]=t[0].replace(/\D/g,"").replace(/\B(?=(\d{3})+(?!\d))/g,",")),2===t.length&&(t[1]=t[1].replace(/\D/g,"")),t.join(".")}function T(t){a('
").insertAfter(t.table.parent());var e=t.component.find(".compare-button-wrapper"),n=t.component.find(".comparison-title");if(e.length&&t.component.find(".table-mortgage-compare".length)){var o=[],i=[],r=!1;t.table.on("change",'.product-tools input[type="checkbox"]',function(){o=t.table.find('.product-tools input[type="checkbox"]:checked'),e.find(".compare-button").text(Y.table.mortgageData.comparisonTable.compareButtonLabelPart1+o.length+Y.table.mortgageData.comparisonTable.compareButtonLabelPart2),2===o.length?(C(t),e.removeClass("hidden")):o.length<2&&e.addClass("hidden"),o.length>=Q?(r=!0,t.table.find('.product-tools input[type="checkbox"]').not(o).attr("disabled",!0)):r&&(r=!1,t.table.find('.product-tools input[type="checkbox"]').not(o).removeAttr("disabled"))}),e.on("click",".compare-button",function(e){t.active="comparison";var r=t.component.find(".mCalc-Terms-Toggle");"true"===r.attr("aria-expanded")&&r.trigger("click"),location.hash="_",n.text(Y.table.mortgageData.comparisonTable.comparingTitleLabelPart1+o.length+Y.table.mortgageData.comparisonTable.comparingTitleLabelPart2),x(o,t,i),W||a(".table-mortgage-compare tbody tr").last().addClass("center"),a(e.currentTarget).addClass("hidden"),t.component.find(".mortgage-pagination").addClass("hidden"),a(e.currentTarget).siblings(".back-button").removeClass("hidden")}),e.on("click",".back-button",function(e){t.active="product",t.comparisonTable.api().clear(),a(e.currentTarget).addClass("hidden"),a(e.currentTarget).siblings(".compare-button").removeClass("hidden"),t.component.find(".table-mortgage, .mortgage-filters-actions, .mortgage-filters, .rate-switch-calculator, .mortgage-pagination").removeClass("hidden"),t.component.find(".table-mortgage-compare-container").addClass("hidden"),location.hash="_",location.hash="#mortgageTableTop",C(t)}),t.table.find("thead th").each(function(t){var e=a(this);i.push({rowLabel:e.text(),dataField:e.attr("data-dataField"),order:t})}),U&&i.push({rowLabel:Y.table.mortgageData.comparisonTable.paymentScheduleLabel,dataField:"amortisationCta",order:998}),W||i.push({rowLabel:Y.table.mortgageData.comparisonTable.aipLabel,dataField:"applyCta",order:999}),a(window).on("scroll",function(a){return C(t)})}}function x(t,e,n){var o=e.dataTable.DataTable().data(),i=[];t.each(function(a,t){i.push(t.getAttribute("id").split("-")[1])});var r=0,l=[{data:"order"},{data:"rowLabel"}],d=[a(" ")];o.each(function(t){-1!==i.indexOf(t.mortgageId)&&(r++,t.amortisationCta='Payment schedule ',t.applyCta=e.isRateSwitch?P(t.mortgageId):A(!0),l.push({data:"P"+r}),d.push(a(" ").append(a(t.mortgageName)[0],a(t.mortgageName)[2])),n.forEach(function(a){a["P"+r]=t[a.dataField]}))});var s=e.component.find(".table-mortgage-compare");s.css("min-width",90+190*r),s.find("thead, tbody").empty(),s.find("thead").append(d),W||s.find("tbody tr").last().addClass("center"),e.comparisonTable||(e.comparisonTable=s.on("init.dt",function(){s.find(".link-amortisation").on("click",function(t){t.preventDefault(),e.comparisonTable.api().clear(),e.component.find(".table-mortgage, .mortgage-filters-actions, .mortgage-filters, .rate-switch-calculator, .mortgage-pagination").removeClass("hidden"),e.component.find(".table-mortgage-compare-container, .compare-button-wrapper").addClass("hidden"),location.hash="_",location.hash="#mortgageTableTop",C(e),k(e,a(this).data("mortgage-id"))}),e.component.find(".table-mortgage, .mortgage-filters-actions, .mortgage-filters, .rate-switch-calculator, .table-mortgage-amortisation").addClass("hidden"),a(this).parent().addClass("comparison-table-wrapper"),e.component.find(".table-mortgage-compare-container").removeClass("hidden"),location.hash="#mortgageTableTop";var t=e.component.find(".comparison-table-wrapper");t.scrollLeft()+t.width()!==t[0].scrollWidth&&t.closest(".table-shadow").removeClass("no-shadow"),t.off("scroll"),t.on("scroll",M(F,50))})),s.dataTable({autoWidth:!1,destroy:!0,data:n,info:!1,paging:!1,dom:"rt",columns:l,columnDefs:[{className:"control",orderable:!0},{visible:!1,targets:0}],orderFixed:[0,"asc"]})}function C(t){var e=t.component.find(".sticky-anchor"),n=t.component.find(".sticky");if(e.length){var o=document.body,i=document.documentElement,r=window.pageYOffset||i.scrollTop||o.scrollTop,l=i.clientTop||o.clientTop||0,d=e[0].getBoundingClientRect().top+r-l,s=r+a(window).height(),m=d+n.height();"product"===t.active&&sThe information below shows roughly how your monthly payments will affect your mortgage balance over time. But they don\'t include any other fees or payments you may need to make. id Year Annual payment Mortgage balance repaid Interest repaid Remaining balance id Year Annual payment Mortgage balance repaid Interest repaid Remaining balance
").insertAfter(e),e.on("click",".btn-amortisation",function(e){e.preventDefault(),t.active="amortisation";var n=t.component.find(".mCalc-Terms-Toggle");"true"===n.attr("aria-expanded")&&n.trigger("click"),k(t,a(this).data("mortgage-id"))})}function k(t,e){for(var n,o=t.component.find(".amortisation-heading"),i=t.dataTable.DataTable().data(),r=[],l=0;l"+(m+1)+' ',annualPayment:"£"+b(p.toFixed(2))+"
",repayment:"£"+b(g.toFixed(2))+"
",interest:"£"+b(h.toFixed(2))+"
",balance:"£"+b(u.toFixed(2))+"
"})}for(var f=r.length,v=12*f===n._fixedTermMonths?f:f-1,y=n._annualSummaryForVariable,w=0;w1&&(T+=' data-hidden="true"');var x=y[w].capitalRepayment+y[w].interestRepayment,C=y[w].capitalRepayment,F=y[w].interestRepayment,R=y[w].remainingAmount;R<0&&(R=0),d.annualPayment+=parseFloat(x),d.repayment+=parseFloat(C),d.interest+=parseFloat(F),r.push({id:w+f,year:"',annualPayment:"£"+b(x.toFixed(2))+"
",repayment:"£"+b(C.toFixed(2))+"
",interest:"£"+b(F.toFixed(2))+"
",balance:"£"+b(R.toFixed(2))+"
"})}r.push({id:r.length,year:"Total
",annualPayment:"£"+b(d.annualPayment.toFixed(2))+"
",repayment:"£"+t.userData.mortgageTotal+"
",interest:"£"+b(d.interest.toFixed(2))+"
",balance:"£0.00
"});var k=[{data:"id"},{data:"year"},{data:"annualPayment"},{data:"repayment"},{data:"interest"},{data:"balance"}],P=t.component.find(".table-mortgage-amortisation");t.amortisationTable||(t.amortisationTable=P.on("init.dt",function(){t.table.addClass("hidden"),t.component.find(".mortgage-filters-actions, .mortgage-filters, .rate-switch-calculator, .mortgage-pagination, .compare-button").addClass("hidden"),t.component.find(".table-mortgage-amortisation-container .back-button-amortisation").removeClass("hidden"),t.component.find(".table-mortgage-amortisation-container").removeClass("hidden")})),P.on("order.dt, responsive-resize.dt",function(){P.find(".amortisation-remaining, .amortisation-remaining + .child").attr({"aria-hidden":!0}).hide(),P.find(".amortisation-show-remaining").data("state","closed").attr({"aria-expanded":!1}).removeClass("hide-remaining"),P.find(".show-remaining-text").text(Y.table.mortgageData.amortisationTable.remainingShowLabel)}),P.on("init.dt",function(){N(t.component),P.find(".amortisation-show-details").trigger("click"),P.find(".amortisation-remaining, .amortisation-remaining + .child").attr({"aria-hidden":!0}).hide()}).dataTable({autoWidth:!1,drawCallback:function(){return D(this)},destroy:!0,data:r,info:!1,paging:!1,dom:"rt",responsive:{details:{type:"column",renderer:L}},columns:k,columnDefs:[{className:"control",orderable:!1},{visible:!1,targets:0}],orderFixed:[0,"asc"]}),t.component.on("click",".back-button-amortisation",function(){t.active="product",t.component.find(".amortisation-heading").hide(),t.component.find(".table-mortgage, .mortgage-filters-actions, .mortgage-filters, .rate-switch-calculator, .mortgage-pagination, .compare-button").removeClass("hidden"),t.component.find(".table-mortgage-compare-container, .table-mortgage-amortisation-container, .back-button").addClass("hidden"),t.amortisationTable.api().clear(),N(a('[data-product-id="'+e+'"]'))})}function D(t){var e=t.api(),n=e.rows({page:"current"}).nodes();e.column(1,{page:"current"}).data().each(function(e,o){var i=o%2==0?"odd":"",r=a(e).data("rate");if(r){var l=r.replace(/ (.*)$/,""),d=r.match(/(.*)<\/span>/)[1];a(n).eq(o).before(''+l+' '+d+"
")}var s=a(e).data("hidden-start"),m=a(e).data("hidden");s&&(a(n).eq(o).before(''+Y.table.mortgageData.amortisationTable.remainingShowLabel+' '),t.find(".amortisation-show-remaining").on("click",function(e){e.preventDefault(),"open"===a(this).data("state")?(a(this).attr("aria-expanded",!1).removeClass("hide-remaining").data("state","closed"),a(this).find(".show-remaining-text").text(Y.table.mortgageData.amortisationTable.remainingShowLabel),t.find(".amortisation-remaining, .amortisation-remaining + .child").attr({"aria-hidden":!0}).hide()):(a(this).attr("aria-expanded",!0).addClass("hide-remaining").data("state","open"),a(this).find(".show-remaining-text").text(Y.table.mortgageData.amortisationTable.remainingHideLabel),t.find(".amortisation-remaining, .amortisation-remaining + .child").attr({"aria-hidden":!1}).show())})),m&&a(n).eq(o).addClass("amortisation-remaining").attr({"aria-hidden":!0}).hide()})}function L(t,e,n){var o=a.map(n,function(a){return a.hidden?''+a.title+": "+a.data+" ":""}).join("");return!!o&&a('').append(o)}function P(t){return'"+Y.table.mortgageData.rateSwitchTable.detailsCtaLabel+" "}function A(a){var t=a?Y.table.mortgageData.productTable.detailsCtaLabelShort:Y.table.mortgageData.productTable.detailsCtaLabel,e=Y.table.general.aipUrl;return q?' ':''+t+" "}function M(a,t,e){var n;return function(){function o(){e||(a.apply(i,r),n=null)}var i=this,r=arguments;n?clearTimeout(n):e&&a.apply(i,r),n=setTimeout(o,t||100)}}function O(a){var t,e,n=decodeURIComponent(window.location.search.substring(1)),o=n.split("&");for(e=0;eMortgageMortgageTerm MortgageType MortgageId hasAmortisation hasFee "),l.find("thead th[data-dataField]").each(function(){r.tableColumns.push({data:this.getAttribute("data-dataField")})}),d&&!a("#drum-preview-label").length&&a("body").prepend(''+Y.table.general.drumPreview+" "),r.isRateSwitch&&(r.rateSwitchType=l.attr("data-rateswitch-type")),r.table.find("th.sorting, th.sorting_asc").append('
'),t(r,i),Z(r.tableHeaders),G.push(r)})}else a(".loading-json-container").addClass("hidden"),a(".json-load-failed").removeClass("hidden"),a(".table-authoring-error-message").text("Table JSON configuration failed to load. Check its path and if structure is correct.")};var Z=M(function(){G.forEach(function(t){var e=t.tableHeaders;window.innerWidth<=767&&(!e.attr("data-displaying-mobile")||"false"===e.attr("data-displaying-mobile"))?(e.attr("data-displaying-mobile",!0),e.each(function(t,e){var n=a(e);if(n.find(".tooltip").hide(),n.attr("data-short-title")){var o=a("").append(n.find(".sorter-wrapper"));n.attr("data-full-title")||n.attr("data-full-title",n.text()),o.prepend(n.attr("data-short-title")),n.html(o.html())}})):window.innerWidth>767&&"true"===e.attr("data-displaying-mobile")&&(e.attr("data-displaying-mobile",!1),e.each(function(t,e){var n=a(e);if(n.find(".tooltip").show(),n.attr("data-full-title")){var o=a("
").append(n.find(".sorter-wrapper"));o.prepend(n.attr("data-full-title")),n.html(o.html())}}))})},250);return $}(jQuery),module.exports=barclays.mortgageTable;
},{}],67:[function(require,module,exports){
var barclays=window.barclays||{};barclays.offsetCalculator=function(t){"use strict";function a(){return"1"===t('input:radio[name="priority"]:checked').val()}function e(){t(".c3-tooltip-container").empty()}function r(){n(),!0===a()?(t(".graph1.dot1Info p").html(Gt),t(".graph1.dot2Info p").html(Kt),t(".graph1.dot3Info p").html(Zt),t(".graph2").addClass("close"),t(".graph1").removeClass("close")):(t(".graph2.dot4Info p").html(Xt),t(".graph2.dot5Info p").html(ta),t(".graph2.dot6Info p").html(aa),t(".graph1").addClass("close"),t(".graph2").removeClass("close"))}function n(){var a=Jt-zt,e=Jt-(Qt+1),r=ea[1]-oa,n=r.toFixed(2),l=o(zt),s=o(a),i=o(Qt+1),c=o(e),m=bt(yt(Qa)),p=bt(oa),u=bt(n),v=o(zt),h=o(Jt),g=bt(Qa);Gt=t(".info1Text").html().replace("[info1TextPeakMonth]",l).replace("[info1TextPeakReduction]",s),Kt=t(".info2Text").html().replace("[info2TextOffsetEnd]",i).replace("[info2TextOffsetEndReduced]",c).replace("[info2TextEndSaving]",m),Zt=t(".info3Text").html(),Xt=t(".info4Text").html().replace("[info4InitialPayment]",p).replace("[info4InitialPaySaving]",u),ta=t(".info5Text").html().replace("[info5PeakMonth]",v).replace("[info5OffsetTerm]",h),aa=t(".info6Text").html().replace("[info6TotalSavings]",g).replace("[fullTerm]",h).replace("[strong]","").replace("[/strong]"," ")}function l(a){n();var e,r,l,s,i,c,m,p,u,v,h;if("info1"===a||"info2"===a||"info3"===a){r=t("#chart1"),l=t("#chart1 .c3-tooltip-container");e='
",l.html(e),s=t("#info1").offset(),i=s.left,c=s.top,m=l.width(),p=l.height(),m/2>i?(u=i-f-22+4,t(".c3-tooltip-container .arrow_box").addClass("offPayDot")):u=i-f+ha-m/2+4):"info2"===a?(e+=''+o(Qt+1)+" ",e+=''+Kt+"
",l.html(e),s=t("#info2").offset(),i=s.left,c=s.top,m=l.width(),p=l.height(),u=i-f+ha-m+32+4,t(".c3-tooltip-container .arrow_box").addClass("offDot")):"info3"===a&&(e+=''+o(Jt)+" ",e+=''+Zt+"
",l.html(e),s=t("#info3").offset(),i=s.left,c=s.top,m=l.width(),p=l.height(),u=i-f+ha-m+32+4,t(".c3-tooltip-container .arrow_box").addClass("normDot")),v=c-d+ha-p+h,l.css({top:v+"px",left:u+"px"})}else{r=t("#chart2"),l=t("#chart2 .c3-tooltip-container");h=28;var y=r.offset(),b=y.left,M=y.top;l.css({top:"",left:"",width:"50%"}),t(".arrow_box").removeClass("offPayDot").removeClass("normPayDot"),"info4"===a?(e='",l.html(e),s=t("#info4").offset(),i=s.left,c=s.top,m=l.width(),p=0,u=i-b-22+4,t(".c3-tooltip-container .arrow_box").addClass("offPayDot")):"info5"===a?(e='",l.html(e),s=t("#info5").offset(),i=s.left,c=s.top,m=l.width(),p=0,u=i-b+ha-m/2+4):"info6"===a&&(e='",l.html(e),s=t("#info6").offset(),i=s.left,c=s.top,m=l.width(),p=0,u=i-b+ha-m+32+4,t(".c3-tooltip-container .arrow_box").addClass("normPayDot")),v=c-M+ha+h,l.css({top:v+"px",left:u+"px"})}}function o(a){var e=t(".year").html(),r=t(".month").html(),n=t(".pluralYear").html(),l=t(".pluralMonth").html(),o=Math.floor(a/12),s=o+" "+(o>1?n:e),i=o>0?s:"",c=a%12+" "+(a%12>1?l:r);return""+i+" "+(" "+a%12>0?c:"")+" "}function s(a,e,r){var n,l,s,i,c,m=this,p=m.config,u=m.CLASS,v=p.tooltip_format_name||function(t){return t},h=p.tooltip_format_value||r;for(l=0;l"+t(".atStart").html()+" ",n='"}function i(){var a;t(".converted").each(function(){a=parseInt(t(this).html())/12,t(this).html(a).parent().css("display","block")})}function c(){var e;return e=t(!0===a()?"#chart1":"#chart2"),qt=e.width(),t(window).width()>=649?$t=qt-20:t(window).width()<649&&($t=qt-20),$t>200?$t:200}function m(){t(window).width()>=606?t(".c3-axis.c3-axis-x").attr("transform","translate(0,275)"):t(window).width()<606&&t(".c3-axis.c3-axis-x").attr("transform","translate(0,255)"),t("#chart1>svg, #chart2>svg").attr("width",$t)}function p(a,e){var r,n=t(".normalMortgage").html(),l=t(".offsetMortgage").html(),o=t(".offsetSavings").html(),s=t(".normalMortgagePayments").html(),i=t(".offsetMortgagePayments").html();if(1===a){var c=[n],m=[l],p=["Projected Savings"],u=[o];r=[c,m,u,["Y Axis Ceiling"]];for(var v=0;v<=e;v++)c.push(0),m.push(0),p.push(0),u.push(0)}else{var h=[s],g=[i];r=[h,g,["Y Axis Pay Ceiling"]];for(var f=0;f<=e;f++)h.push(0),g.push(0)}return r}function u(){t("circle.info-dot").css("opacity","0"),t("#resultsStep").removeClass("close"),!0===a()?(t("#chart1, .graph-legend .savings-legend").removeClass("close"),t("#chart2, #step2, #step1").removeClass("close").addClass("close")):(t("#chart1, .graph-legend .savings-legend, #step2, #step1").removeClass("close").addClass("close"),t("#chart2").removeClass("close"))}function v(){var e;e=!0===a()?"":"-Payments";var r,n,l,o,s=t(".c3-chart-lines path.c3-line-Normal-Mortgage"+e).attr("d"),i=t(".c3-chart-lines path.c3-line-Offset-Mortgage"+e).attr("d");r=i.split("L"),r.shift(),n=r.reverse(),n[0]="L"+n[0],l=n.join("L")+" Z",o=s+l,t(".c3-lines-Normal-Mortgage, .c3-lines-Normal-Mortgage-Payments").prepend(t(".shaded")),t("path.shaded").attr("d",o)}function h(){t("#step2").addClass("close"),t("#resultsStep").addClass("close"),t("#step1").removeClass("close"),f(t("#step1"))}function g(){t("#resultsStep").addClass("close"),t("#step2").removeClass("close"),f(t("#step2"))}function f(a){t(window).scrollTop(a.offset().top-80)}function d(){t("#mortgagetermyrs").val()===ba["max-years"].toString()?(t('#mortgagetermmts option[value != "0"]').attr("disabled","disabled"),t('#mortgagetermmts option[value = "0"]').attr("selected","selected").prop("selected","selected")):t("#mortgagetermmts option").removeAttr("disabled")}function y(t){for(var a=0;a=0&&(r=r.replace(/,/g,"")),r=parseFloat(r),""===r||isNaN(r)||P("form",e,1*r)}}function b(){return y(""),xt(),wt(),It(),"partAndPart"===t("#repaymentType").val()&&(Ct(),Pt()),xa=!1,!0===xt()&&!0===wt()&&!0===It()&&(xa=!0,"partAndPart"===t("#repaymentType").val()&&(xa=!0===Ct()&&!0===Pt())),xa}function M(){b()?(R("products","steps"),ft("mainerror1"),q(),"partAndPart"===t("#repaymentType").val()&&(ee=t("#interestonlyamt").val().replace(/,/g,""),re=t("#repaymentamount").val().replace(/,/g,"")),t("#ownRateAmt").val>0&&(ne=t("#ownRateAmt").val()),t("#step1").addClass("close"),t("#step2").removeClass("close"),t("#resultsStep").addClass("close"),f(t("#step2"))):gt("mainerror1")}function x(){y(""),xa=!0;var a=t(".ecursavingsChars").html(),e=t(".eregsavingsChars").html(),r=t(".eavgsavingrateEmpty").html(),n=t(".eavgsavingrateChars").html(),l=t(".eavgsavingrateRange").html(),o=t(".savratewarn").html(),s=t(".eavgcuraccbalEmpty").html(),i=t(".eavgcuraccbalChars").html(),c=t("eavgcuraccbalCharNumber").html(),m=t(".eavgcuraccbalMin").html();pt(t("#cursavings").val().replace(/,/g,""),"^[0-9]{0,10}$")?ft("ecursavings"):dt("ecursavings",a),pt(t("#regsavings").val().replace(/,/g,""),"^[0-9]{0,10}$")?ft("eregsavings"):dt("eregsavings",e),mt(t("#avgsavingrate").val())?dt("eavgsavingrate",r):pt(t("#avgsavingrate").val(),"(^[0-9]{1,2}.[0-9]{0,2}$)|^[0-9]{1,2}$")?ut(t("#avgsavingrate").val(),.01,99.99)?ut(t("#avgsavingrate").val(),.01,10)?ft("eavgsavingrate"):""===t("#savratewarn").val()&&(dt("eavgsavingrate",o),P("form","savratewarn","1")):dt("eavgsavingrate",l):dt("eavgsavingrate",n),mt(t("#avgcuraccbal").val())?dt("eavgcuraccbal",s):pt(t("#avgcuraccbal").val().replace(/,/g,""),"[^0-9]")?dt("eavgcuraccbal",i):pt(t("#avgcuraccbal").val().replace(/,/g,""),"^[0-9]{1,9}$")?ut(t("#avgcuraccbal").val(),0)?ft("eavgcuraccbal"):dt("eavgcuraccbal",m):dt("eavgcuraccbal",c);for(var p=0;p0?(t("#lumpsum"+e+" h3").text("Add another lump sum"),t(".deleteLs").text("Remove last")):t(".deleteLs").text("Remove");Sa.length'+l+" years");t.val(n.toString());var o=a.attr("title");if(o.indexOf("%min%")>=0||o.indexOf("%max%")>=0){var s=o.replace(/%min%/gi,e).replace(/%max%/gi,r);a.attr("title",s)}else a.attr("title","This is the period over which you would like to repay your mortgage, in years and months. Minimum "+e+" years. Maximum "+r+" years.")}function E(t,a,e){var r="";switch(t){case"lsamount":r=' ';break;case"lsmonth":r='';for(var n=0;n"+La[n]+"";r+=" ";break;case"lsyear":r='';var l=new Date,o=1*l.getFullYear(),s=1*l.getFullYear()+ba["max-years"]+1;r+='YYYY ';for(var i=o;i<=s;i++)r+='"+i+" ";r+=" ";break;case"lsfrequency":r='';for(var c=0;c"+ae[c]+"";r+=" "}return r}function V(t,a,e,r,n){a=void 0===a?"":a,e=void 0===e?"":e,r=void 0===n?"":r,n=void 0===n?"":n,Sa[t]=new Array(a,e,r,n)}function Y(t){t=void 0===t?null:t,$(),Ca0&&Ca--,O(e)}}function $(){for(var a=0;a0?t("#ownRateAmt").val():""!==t("#rate").val()?t("#ate").val():t("#lowRate").val(),P("form","rate",te),""===t("#avgsavingrate").val()?P("form","avgsavingrate",t("#saverate").val()):P("form","avgsavingrate",t("#avgsavingrate").val()),B()}function j(a){var e=Math.abs(le[7][$a])+Math.abs(le[8][$a]),r=["Normal Mortgage",t("#mortgageamount").val().replace(/,/g,"")],n=a[3],l=n.length-1,o=t(window).width(),s=l/(.8*o)*12;n.shift(),t.each(n,function(t,e){if(r.push(e),t+1===a[3].length)if(l%60>0)for(var n=a[3].length%60;n<=60;n++)r.push(null);else for(var o=0;o<=s;o++)r.push(null)});for(var i=0;i<=s;i++)r.push(null);var c,m=["Offset Mortgage",t("#mortgageamount").val().replace(/,/g,"")],p=[],u=a[9];u.shift(),t.each(u,function(t,a){0===a?m.push(null):(m.push(a),p.push(a)),c=p.length});var v=["Offset Savings"],h=a[17];h.shift(),t.each(h,function(t,a){t<=$a&&v.push(a)}),ra=1e4*Math.ceil(t("#mortgageamount").val().replace(/,/g,"")/1e4),na=["Y Axis Ceiling",ra];var g,f=["Projected Savings"],d=[];t.each(h,function(t,a){t<=$a||a>ra?f.push(null):(f.push(a),d.push(a))}),g=Math.round(.7*d.length)+v.length,ea=["Normal Mortgage Payments"],t.each(n,function(t){if(ea.push(e),t+1===n.length)if(n.length%60>0)for(var a=n.length%60;a<=60;a++)ea.push(null);else for(var r=0;r<=5;r++)ea.push(null)});var y=["Offset Mortgage Payments"],b=a[7];b.shift(),t.each(b,function(t,a){y.push(a)}),y.push(e),r&&m&&v&&f&&$a&&ea&&y&&na&&g&&l&&c&&Et(r,m,v,f,$a,ea,y,na,g,l,c),Ka=Qa,Za=qa,Xa=za,P("div","benefits",H(ka,Ia)),R("results","cstep"),Ka>1?R("products","cstep yes"):R("products","cstep no")}function z(t,a){if(t.length>0)for(var e=0;e"+t[r]+"","Yes"!==a[r]&&(e+=W(a[r]))):e+=""+t[r]+" ";return e}function W(t){return void 0===t?"":""+t+"
"}function B(){switch(wa){case 3:U(),j(le);break;case 1:it(),st(2),te<0&&R("products","cstep no")}}function U(){if(Va=12*Math.abs(t("#mortgagetermyrs").val())+Math.abs(t("#mortgagetermmts").val()),Ya=Math.abs(Z(t("#mortgageamount").val().replace(/,/g,""),Va,0===te?1:te)),_a=Math.abs(X(t("#avgcuraccbal").val().replace(/,/g,""),t("#avgsavingrate").val())),Fa.length>0)for(var a=0;a0)for(var r=0;r0))return 0;for(var e=0;en?n:l,h=Math.abs(X(r,te)),g=Math.abs(X(n,te)),f=Math.abs(X(l,t("#avgsavingrate").val())),d=Math.abs(X(v,t("#avgsavingrate").val())),y=Math.abs(X(e,te)),b=y0?M:0,p=c-b0?M:0,p=h-M,u=n)),u=u<0?0:u;var x=r+h-m,w=l+f,C=e;p=p>0?p:0;for(var P=new Array(r,h,m,x,n,g,b,p,M,u,l,v,f,d,w,e,y,C),A=0;A<=17;A++)le[A][s]=P[A];r=x,n=u,l=w,e=C,e>n&&0===$a&&($a=s)}}function at(){$a=0;for(var e=Math.abs(t("#mortgageamount").val().replace(/,/g,"")),r=Math.abs(t("#cursavings").val().replace(/,/g,"")),n=Math.abs(t("#cursavings").val().replace(/,/g,""))+Math.abs(t("#avgcuraccbal").val().replace(/,/g,"")),l=0;l<=17;l++)le[l]=new Array(Va);for(var o=1;o<=Va;o++){var s=G(J(o,0,0));r+=Math.abs(t("#regsavings").val().replace(/,/g,""))+Math.abs(s),n+=Math.abs(t("#regsavings").val().replace(/,/g,""))+Math.abs(s);var i=r>e?e:r,c=0,m=0,p=0,u=0,v=0;c=1===o?re:Math.abs(Ra[3]),m=Math.abs(X(c,te)),p=Math.abs(Z(re,Va,0===te?1:te)),u=c>p?p:c+m,v=Math.abs(c)+Math.abs(m)-Math.abs(u),v=v>0?v:0,Ra[0]=Math.abs(c),Ra[1]=Math.abs(m),Ra[2]=Math.abs(u),Ra[3]=Math.abs(v),c=1===o?ee:Math.abs(Da[3]),m=Math.abs(X(c,te)),u=m,v=Math.abs(c)+Math.abs(m)-Math.abs(u),v=v>0?v:0,Da[0]=c,Da[1]=m,Da[2]=u,Da[3]=v;var h,g=Math.abs(Ra[0])+Math.abs(Da[0]),f=Math.abs(Ra[1])+Math.abs(Da[1]),d=Math.abs(X(e,te)),y=Math.abs(X(r,t("#avgsavingrate").val().replace(/,/g,""))),b=Math.abs(X(i,t("#avgsavingrate").val().replace(/,/g,""))),M=Math.abs(X(n,te)),x=M0?w:0;h=P+A-x}var T=e+d-x-h,S=Math.abs(Ra[3])+Math.abs(Da[3]),k=r+y,I=n;T=T<0?0:T,h=h>0?h:0;for(var R=new Array(g,f,C,S,e,d,x,h,w,T,r,i,y,b,k,n,M,I),D=0;D<=17;D++)le[D][o]=R[D];g=S,e=T,r=k,n=I,n>e&&0===$a&&($a=o)}}function et(){var e=Va-z(le[9],0),r=ot(le[8])/Va,n=t(".intOnlyNotReduceTerm").html(),l=t(".ppNotReduceTerm").html(),o=t(".notReduceTerm").html(),s=t(".repayEarly").html(),i=t(".saveMonthly").html();!0===a()?(qa=lt(Math.floor(e/12),e%12),s=s.replace("[early]",qa).replace("[strong]","").replace("[/strong]"," "),ja=qa?s:"intOnly"===t("#repaymentType").val()?n:"partAndPart"===t("#repaymentType").val()?l:o):(qa=yt(r),i=i.replace("[saveMonthly]",qa).replace("[strong]","").replace("[/strong]"," "),ja=i),za=lt(Math.floor((Va-$a)/12),(Va-$a)%12)}function rt(){Ha=ot(le[1]),Wa=ot(le[8]),Ba=ot(le[5])-Wa,Ua=ot(le[13]),Ja=Math.abs(Ua)*(Math.abs(t("#curtaxband").val())/100),Qa=Ha-Ba,Ga=Qa+Ja-Ua}function nt(){var e;if(!0===a()){if(qa){var r=t(".pgInfoAddition").html().replace("[ymaddition]",qa),n=t(".pgInfoAdditionPara").html().replace("[currentSavings]",bt(t("#cursavings").val().replace(/,/g,""))).replace("[savingsMonthly]",bt(Math.abs(le[7][$a])+Math.abs(le[8][$a]))).replace("[timeReduction]",qa);ka[0]=r,Ia[0]=n}else if("intOnly"===t("#repaymentType").val()){var l=t(".intOnlyNotReduce").html();ka[0]=l,Ia[0]=""}else if("partAndPart"===t("#repaymentType").val()){var o=t(".pAndpNotReduce").html();ka[0]=o,Ia[0]=""}else{var s=t(".notReduce").html();ka[0]=s,Ia[0]=""}var i=t(".youCouldSaveInterest").html().replace("[savedInt]",bt(yt(Qa))),c=t(".youCouldSaveIntPara").html().replace("[savedInt]",bt(yt(Qa)));if(ka[1]=i,Ia[1]=c,Ja>0){var m=t(".savePayingTax").html().replace("[savePayingTax]",bt(yt(Ja)));e=t(".saveTaxParaPay").html().replace("[savePayingTax]",bt(yt(Ja))),ka[2]=m,Ia[2]=e}else Ja<=0&&3===ka.length&&(ka.pop(),Ia.pop())}else{var p=t(".saveOnPayments").html().replace("[saveMonthly]",yt(ot(le[8])/Va)),u=t(".savePaymentsPara").html().replace("[projectSavings]",bt(le[15][$a])).replace("[reduceMonthlyTo]",bt(yt(le[7][$a]))).replace("[reductionMonthly]",bt(yt(le[8][$a]))),v=t(".intSaved").html().replace("[intSaved]",bt(Qa)),h=t(".intSavedPara").html().replace("[intReducedBy]",bt(Qa));if(ka[0]=p,Ia[0]=u,ka[1]=v,Ia[1]=h,Ja>0){var g=t(".saveTax").html().replace("[saveTaxInt]",bt(yt(Ja)));e=t(".saveTaxPara").html().replace("[saveTaxInt]",bt(yt(Ja))),ka[2]=g,Ia[2]=e}else Ja<=0&&3===ka.length&&(ka.pop(),Ia.pop())}}function lt(t,a){var e="";return t>0&&(e+=t+" year"),t>1&&(e+="s"),""!==e&&a>0&&(e+=" and "),a>0&&(e+=a+" month"),a>1&&(e+="s"),e}function ot(t){var a=0;if(t.length>0)for(var e=1;e0?P("span","lblRate1",C(A("rate"),"percent")):P("span","lblRate1","Woolwich "+C(A("rate"),"percent")),P("span","lblPropertyValue1",C(A("propertyvalue"),"amount")),P("span","lblMortgageAmount1",C(A("mortgageamount"),"amount")),P("span","lblTerm1",A("mortgagetermyrs")+" y "+A("mortgagetermmts")+" m"),"repayment"===r?P("span","lblRepaymentType1","Repayment"):"intOnly"===r?P("span","lblRepaymentType1","Interest only"):"partAndPart"===r&&P("span","lblRepaymentType1","Part and Part"),P("span","lblLoanToValue2",Math.round(e)+"%"),ne>0?P("span","lblRate2",C(ne,"percent")):A("lowRate")!==A("rate")?P("span","lblRate2",C(A("rate"),"percent")):P("span","lblRate2","Woolwich "+C(A("rate"),"percent")),P("span","lblPropertyValue2",C(A("propertyvalue"),"amount")),P("span","lblMortgageAmount2",C(A("mortgageamount"),"amount")),P("span","lblTerm2",A("mortgagetermyrs")+" y "+A("mortgagetermmts")+" m"),P("span","lblRepaymentType2","Repayment"),P("span","lblCurSavings2",C(A("cursavings"),"amount")),P("span","lblRegSavings2",C(A("regsavings"),"amount")),P("span","lblAvgSavingRate2",C(A("avgsavingrate"),"percent")),P("span","lblAvgCurAccBal2",C(A("avgcuraccbal"),"amount")),P("span","lblTaxRate2",C(A("curtaxband"),"nodecpercent"))}function ct(t){return t+="",t.replace(/^\s+|\s+$/g,"")}function mt(t){return t=ct(t),0===t.length}function pt(t,a){return new RegExp(a,"g").test(t)}function ut(t,a,e){return e=void 0===e?99999999:e,!(1*t<1*a||1*t>1*e)}function vt(t,a,e,r){var n=12*e+1*r,l=new Date,o=new Date,s=new Date;return o.setDate(1),o.setMonth(o.getMonth()+1),s.setDate(1),s.setMonth(s.getMonth()+n),l.setFullYear(t,a-1,1),!(l>s||l"+t(".error-prefix").html()+""+o,gt(a)),t("#"+a).removeClass(r).addClass(n)}}function yt(t){return Math.round(100*t)/100}function bt(t){var a=Math.round(100*t)/100,e=a.toString().split(".");return e[0].length>=4&&(e[0]=e[0].replace(/(\d)(?=(\d{3})+$)/g,"$1,")),e[1]&&1===e[1].length&&(e[1]=e[1]+"0"),e.join(".")}function Mt(){"partAndPart"===A("repaymentType")?t("#einterestonlyamt,#erepaymentamount").removeClass("hrepay"):(P("form","interestonlyamt",""),P("form","repaymentamount",""),ee="",re="",t("#einterestonlyamt,#erepaymentamount").addClass("hrepay"))}function xt(){var a=t("#propertyvalue").val().replace(/,/g,""),e=t(".epropertyvalueEmpty").html(),r=t(".epropertyvalueChars").html(),n=t(".fieldHighLowMsg").html();return xa=!0,t("#propertyvalue").val(bt(a)),mt(a)?dt("epropertyvalue",e):pt(a,"[^0-9]")?dt("epropertyvalue",r):pt(a,"^[0-9]{4,10}$")&&ut(a,0,99999999)?ft("epropertyvalue"):dt("epropertyvalue",n),xa}function wt(){var a=t("#mortgageamount").val().replace(/,/g,""),e=t(".emortgageamountEmpty").html(),r=t(".emortgageamountChars").html(),n=t(".fieldHighLowMsg").html();return xa=!0,t("#mortgageamount").val(bt(a)),mt(a)?dt("emortgageamount",e):pt(a,"[^0-9]")?dt("emortgageamount",r):pt(a,"^[0-9,]{4,10}$")&&ut(a,5e3,Aa)?ft("emortgageamount"):dt("emortgageamount",n),xa}function Ct(){var a=t("#propertyvalue").val().replace(/,/g,""),e=t("#mortgageamount").val().replace(/,/g,""),r="einterestonlyamt",n=t("#interestonlyamt").val().replace(/,/g,""),l=t(".fieldCharsMsg").html(),o=t(".fieldHighLowMsg").html(),s=t(".lessMortMsg").html(),i=t(".ppinterestonlyamtEmpty").html();return xa=!0,t("#propertyvalue").val(bt(a)),t("#mortgageamount").val(bt(e)),t("#interestonlyamt").val(bt(n)),mt(n)?(dt(r,i,"alert"),At()):pt(n,"[^0-9]")?(dt(r,l,"alert"),At()):pt(n,"^[0-9]{4,10}$")?n>Math.abs(e)?(dt(r,s,"alert"),At()):ft(r):(dt(r,o,"alert"),At()),xa}function Pt(){var a=t("#propertyvalue").val().replace(/,/g,""),e=t("#mortgageamount").val().replace(/,/g,""),r=t("#interestonlyamt").val().replace(/,/g,""),n=t("#repaymentamount").val().replace(/,/g,""),l="erepaymentamount",o=t(".fieldCharsMsg").html(),s=t(".fieldHighLowMsg").html(),i=t(".lessMortMsg").html(),c=t(".pperepaymentamountEmpty").html();return xa=!0,t("#propertyvalue").val(bt(a)),t("#mortgageamount").val(bt(e)),t("#interestonlyamt").val(bt(r)),t("#repaymentamount").val(bt(n)),mt(n)?(dt(l,c,"alert"),At()):pt(n,"[^0-9]")?(dt(l,o,"alert"),At()):pt(n,"^[0-9]{4,10}$")?n>Math.abs(e)?(dt(l,i,"alert"),At()):ft(l):(dt(l,s,"alert"),At()),xa}function At(){t("#einterestonlyamt .message2, #erepaymentamount .message2").html(""),t("#einterestonlyamt, #erepaymentamount").removeClass("alert")}function Tt(){y("");var a=t("#propertyvalue").val().replace(/,/g,""),e=t("#mortgageamount").val().replace(/,/g,""),r=t("#interestonlyamt").val().replace(/,/g,""),n=t("#repaymentamount").val().replace(/,/g,""),l=0,o=t(".ppIntdontAddUpMsg").html();t("#propertyvalue").val(bt(a)),t("#mortgageamount").val(bt(e)),t("#interestonlyamt").val(bt(r)),t("#repaymentamount").val(bt(n)),Ct(),wt()&&Ct()?(ft("mainerror1"),n>0&&(l=e-r-n,Math.abs(l)>0&&(t("#einterestonlyamt").addClass("alert").attr("role","alert"),t("#einterestonlyamt.alert .message").html(""),t("#einterestonlyamt.alert .message2").removeClass("error").html(o))),ft("erepaymentamount"),P("form","repaymentamount",e-r),t("#erepaymentamount .message2").html(""),t("#erepaymentamount").removeClass("alert").attr("role","")):gt("mainerror1")}function St(){y("");var a=t("#propertyvalue").val().replace(/,/g,""),e=t("#mortgageamount").val().replace(/,/g,""),r=t("#interestonlyamt").val().replace(/,/g,""),n=t("#repaymentamount").val().replace(/,/g,""),l=0,o=t(".ppRepaydontAddUpMsg").html();if(t("#propertyvalue").val(bt(a)),t("#mortgageamount").val(bt(e)),t("#interestonlyamt").val(bt(r)),t("#repaymentamount").val(bt(n)),Pt(),wt()&&Pt())return ft("mainerror1"),e-n>0?(l=e-r-n,P("form","interestonlyamt",e-n)):(l=0,P("form","interestonlyamt",r)),Math.abs(l)>0&&(t("#erepaymentamount").addClass("alert").attr("role","alert"),t("#erepaymentamount.alert .message").html(""),t("#erepaymentamount.alert .message2").removeClass("error").html(o)),ft("einterestonlyamt"),t("#einterestonlyamt .message2").html(""),t("#einterestonlyamt").removeClass("alert").attr("role",""),!1;gt("mainerror1")}function kt(){y("");var a=t("#propertyvalue").val().replace(/,/g,""),e=t("#mortgageamount").val().replace(/,/g,""),r=t("#interestonlyamt").val().replace(/,/g,""),n=t("#repaymentamount").val().replace(/,/g,""),l=0,o=t(".ppIntdontAddUpMsg").html();t("#propertyvalue").val(bt(a)),t("#mortgageamount").val(bt(e)),t("#interestonlyamt").val(bt(r)),t("#repaymentamount").val(bt(n)),wt()&&(t("#einterestyourratediv input").addClass("notIntRateField"),Rt()),mt(r)||mt(n)||(l=e-r-n,P("form","repaymentamount",e-r),Math.abs(l)>0&&(t("#einterestonlyamt").addClass("alert").attr("role","alert"),t("#einterestonlyamt.alert .message").html(""),t("#einterestonlyamt.alert .message2").removeClass("error").html(o)))}function It(){var a=t("#ownRateAmt").val(),e="einterestyourratediv",r=t(".einterestyourrateEmpty").html(),n=t(".einterestyourrateChars").html(),l=t(".einterestyourrateFormat").html(),o=t(".einterestyourrateRange").html();return xa=!0,t("#"+e).removeClass("valError"),mt(a)?dt(e,r,"alert alert-warning","valError"):pt(a,"[^0-9.]")?dt(e,n,"alert alert-warning","valError"):pt(a,"(^[0-9]{1,2}.[0-9]{0,2}$)|^[0-9]{1,2}$")?ut(a,.01,99.99)?(ft("einterestyourratediv"),
t("#einterestyourratediv input").removeClass("notIntRateField"),Rt()):dt(e,o,"alert alert-warning","valError"):dt(e,l,"alert alert-warning","valError"),xa}function Rt(){y("");var a=t("#propertyvalue").val().replace(/,/g,""),e=t("#mortgageamount").val().replace(/,/g,""),r=0,n=null,l=t(".lowestRateMsg").html(),o=t(".dontOfferRate").html();if(t("#propertyvalue").val(bt(a)),t("#mortgageamount").val(bt(e)),xt()){ft("mainerror1"),r=e/a*100,P("form","maxltv",Ma[Ma.length-1][0]);for(var s=0;s").replace("[/strong]","").replace("[em]","").replace("[/em]"," "),o=o.replace("[loantoval]",Math.round(r)).replace("[em]","").replace("[/em]"," ");var i=t("#einterestyourratediv").hasClass("valError");null!=n?(t("#einterestyourratediv input.notIntRateField").val(n),t("#einterestyourratediv").addClass("alert").removeClass("valError").attr("role","alert"),ft("einterestyourratediv"),t("#einterestyourratediv .message").html(""),t("#einterestyourratediv .message2").removeClass("error").html(l),t("#continue").html("Continue"),ht("payment")):(i||t("#einterestyourratediv").addClass("alert alert-warning"),t("#einterestyourratediv").attr("role","alert"),t("#einterestyourratediv .message2").removeClass("error").html(o),t("#continue").html(t(".continueAnyway").html()))}else gt("mainerror1"),t("#einterestyourratediv .message2").html(""),t("#einterestyourratediv").removeClass("alert alert-warning"),t("#einterestyourratediv input.notIntRateField").val("")}function Dt(t,a){var e;if(t||(t=window.event),t.keyCode?e=t.keyCode:t.which&&(e=t.which),void 0!==a&&8!==e&&46!==e&&37!==e&&39!==e){var r=a.indexOf(".");if(r>=0){return a.substring(r).length<=2}}return!0}var Ft,Nt,Ot,Lt,Et,Vt,Yt,_t,$t,qt,jt,zt,Ht,Wt,Bt,Ut,Jt,Qt,Gt,Kt,Zt,Xt,ta,aa,ea,ra,na,la,oa,sa,ia,ca,ma,pa,ua={},va={},ha=12,ga=t(".pleaseWait").html(),fa=t(".graphLabelOutstandingM").html(),da=t(".graphLabelMonthlyP").html(),ya=t(".cap-years").html(),ba={"max-years":35,"min-years":5,default:25},Ma=[];ua.init=function(){if(require("../config").init(),t(".offset-calc-form").length>0){ma=p(1,300),pa=p(2,300);var n={bindto:"#chart1",data:{columns:ma},tooltip:{contents:s},axis:{x:{label:{text:ya,position:"outer-center"}},y:{label:{text:fa,position:"outer-bottom"}}},transition:{duration:100}},o={bindto:"#chart2",data:{columns:pa},tooltip:{contents:s},axis:{x:{label:{text:ya,position:"outer-center"}},y:{label:{text:da,position:"outer-bottom"}}},transition:{duration:100}};Ft=c3.generate(n),Nt=c3.generate(o),Ot=function(){$t=c(),Ft.resize({width:$t,height:341}),m()},Lt=function(){$t=c(),Nt.resize({width:$t,height:341}),m()},Et=function(n,l,o,s,c,p,h,g,f,d,y){zt=c,va=n,ea=p,sa=100*Math.ceil(ea[1]/100),la=["Y Axis Pay Ceiling",0,sa],Jt=d,Qt=y,oa=h[1];var b={columns:[va,l,o,g]},M={columns:[ea,h,la]};u(),e(),!0===a()?(Ft.load(b),Ot()):(Nt.load(M),Lt()),t(".c3-axis.c3-axis-x").attr("transform","translate(0,244.25)"),t("#chart1 svg, #chart2 svg").prepend(t(".graph-background path")),m(),i(),t(".vertical").css("opacity",""),t(".converted").attr("class",function(t,a){return a.replace("converted","")}),Yt(),Vt(),_t(zt,Jt,y),v(),r()},Vt=t.debounce(function(){var e,r,n,l,o,s,i=[];t("path.horiz1, path.horiz2").attr("class",function(t,a){return a.replace("close","")}),!0===a()?(r=t("#chart1 .c3-axis.c3-axis-x tspan"),e=70,t("path.horiz1").attr("class",function(t,a){return a.replace("close","")}),t("path.horiz2").attr("class",function(t,a){return a+" close"})):(r=t("#chart2 .c3-axis.c3-axis-x tspan"),e=60,t("path.horiz2").attr("class",function(t,a){return a.replace("close","")}),t("path.horiz1").attr("class",function(t,a){return a+" close"})),t(r).each(function(){var a=parseInt(t(this).html());a%60==0&&(t(this).html(a/12),t(this).attr("class","converted").parent().css({opacity:"1",display:"block"}),n=t(this).parent().parent().attr("transform"),l=t(".converted").length,1===l?i.push(ca):i.push(parseInt(n.substring(10,n.indexOf(",")))+e),t(".vertical.v"+l).attr("d","M"+i[l-1]+" "+ia+" L "+i[l-1]+" 25").css("opacity","1"))}),o=i[1]-ca,l<=4?t(i).each(function(a){if(a>0)for(var e=1;e<=4;e++)s=i[a]-o/5*e,t(".vertical.v"+a+"-"+e+"of4").attr("d","M"+s+" "+ia+" L "+s+" 25").css("opacity","1")}):t(i).each(function(a){a>0&&(s=i[a]-o/2,t(".vertical.v"+a+"-inc").attr("d","M"+s+" "+ia+" L "+s+" 25").css("opacity","1"))})},200),Yt=t.debounce(function(){ca=!0===a()?78:68;var e,r,n,l;t(window).width()<606?(ia=235,t(".line1").attr("d","M"+ca+" 25 L 1160 25"),t(".line2").attr("d","M"+ca+" 95 L 1160 95"),t(".line3").attr("d","M"+ca+" 165 L 1160 165"),t(".line4").attr("d","M"+ca+" "+ia+" L 1160 "+ia)):(ia=256,t(".line1").attr("d","M"+ca+" 25 L 1160 25"),t(".line2").attr("d","M"+ca+" 102 L 1160 102"),t(".line3").attr("d","M"+ca+" 179 L 1160 179"),t(".line4").attr("d","M"+ca+" "+ia+" L 1160 "+ia)),t(".yAxisShowVal text").css("opacity","0"),t(".yAxisShowVal").attr("class",function(t,a){return a.replace("yAxisShowVal","")}),t(".highestVal").attr("class",function(t,a){return a.replace("highestVal","")}),!0===a()?(e=parseInt(t("#mortgageamount").val().replace(/,/g,"")),r=parseInt(Math.ceil(t(".c3-shapes-Normal-Mortgage .c3-circle-0").attr("cy"))),r<50?(l=accounting.formatMoney(e),n=-10):(l=accounting.formatMoney(e).slice(0,-4)+"K",n=0),t("#chart1 .c3-axis.c3-axis-y g.tick").last().attr("class",function(t,a){return a+" highestVal yAxisShowVal"}).attr("transform","translate("+n+","+r+")").css("opacity","1"),t("#chart1 .c3-axis.c3-axis-y g.tick").first().attr("class",function(t,a){return a+" yAxisShowVal lowestVal"}).attr("transform","translate(-2,"+ia+")").css("opacity","1")):(e=ea[1],l=accounting.formatMoney(e),r=parseInt(Math.ceil(t(".c3-shapes-Normal-Mortgage-Payments .c3-circle-0").attr("cy"))),t("#chart2 .c3-axis.c3-axis-y g.tick").last().attr("class",function(t,a){return a+" highestVal yAxisShowVal"}).attr("transform","translate(-10,"+r+")").css("opacity","1"),t("#chart2 .c3-axis.c3-axis-y g.tick").first().attr("class",function(t,a){return a+" yAxisShowVal lowestVal"}).attr("transform","translate(-2,"+ia+")").css("opacity","1")),t(".highestVal tspan").html(l),t(".lowestVal tspan").html(0),t(".yAxisShowVal text").css("opacity","1"),t(".c3-axis-y-label").attr("dx","1em").attr("dy","-45.6"),t(".offset-calc-result").animate({opacity:"1"},1e3),P("span","result",ja)},200),_t=t.debounce(function(e,r,n){!0===a()?Ot():Lt(),Ht=".c3-circles-Offset-Savings",Bt=".c3-circles-Normal-Mortgage",Ut=".c3-circles-Offset-Mortgage",Wt=".c3-circles-Offset-Mortgage-Payments",m(),i(),t(".peak-month1").attr("class",function(t,a){return a.replace("peak-month1","")}),t(".norm-info").attr("class",function(t,a){return a.replace("norm-info","")}),t(".offset-info").attr("class",function(t,a){return a.replace("offset-info","")}),t(".peak-month2").attr("class",function(t,a){return a.replace("peak-month2","")}),t(".norm-Payment").attr("class",function(t,a){return a.replace("norm-Payment","")}),t(".off-Payment").attr("class",function(t,a){return a.replace("off-Payment","")}),t(Ht+" .c3-circle-"+e).attr("class",function(t,a){return a+" peak-month1"}),t(Bt+" .c3-circle-"+r).attr("class",function(t,a){return a+" norm-info"}),t(Ut+" .c3-circle-"+n).attr("class",function(t,a){return a+" offset-info"}),t(Wt+" .c3-circle-"+e).attr("class",function(t,a){return a+" peak-month2"}),t(Wt+" .c3-circle-"+r).attr("class",function(t,a){return a+" norm-Payment"}),t(Wt+" .c3-circle-0").attr("class",function(t,a){return a+" off-Payment"});var l=t(".peak-month1").attr("cx"),o=parseInt(l)+50,s=t(".peak-month1").attr("cy"),c=parseInt(s)-13,p=t(".offset-info").attr("cx"),u=parseInt(p)+50,v=t(".offset-info").attr("cy"),h=parseInt(v)-13,g=t(".norm-info").attr("cx"),f=parseInt(g)+50,d=t(".norm-info").attr("cy"),y=parseInt(d)-13,b=t(".off-Payment").attr("cx"),M=parseInt(b)+40,x=t(".off-Payment").attr("cy"),w=parseInt(x)-13,C=t(".peak-month2").attr("cx"),P=parseInt(C)+40,A=t(".peak-month2").attr("cy"),T=parseInt(A)-13,S=t(".norm-Payment").attr("cx"),k=parseInt(S)+40,I=t(".norm-Payment").attr("cy"),R=parseInt(I)-13;t("#chart1 svg").append(t(".graph-info1 svg")),t("#chart1 circle.info-dot").css("opacity","1"),isNaN(o)||""===o?t("#info1").attr("x",-50):t("#info1").attr("x",o).attr("y",c),isNaN(u)||""===u?t("#info2").attr("x",-50):t("#info2").attr("x",u).attr("y",h),isNaN(f)||""===f?t("#info3").attr("x",-50):t("#info3").attr("x",f).attr("y",y),t("#chart2 svg").append(t(".graph-info2 svg")),t("#chart2 circle.info-dot").css("opacity","1"),isNaN(M)||""===M?t("#info4").attr("x",-50):t("#info4").attr("x",M).attr("y",w),isNaN(P)||""===P?t("#info5").attr("x",-50):t("#info5").attr("x",P).attr("y",T),isNaN(k)||""===k?t("#info6").attr("x",-50):t("#info6").attr("x",k).attr("y",R)},100),t("body").on("mouseover touchstart",".info-dot",e).on("click","#info1, #info2, #info3, #info4, #info5, #info5, #info6",function(){l(this.id)}).on("click","a.tooltip",function(){return!1}).on("blur",'.currency INPUT[type="text"]',function(){t(this).val(bt(t(this).val().replace(/,/g,"")))}).on("blur","#mortgageamount",kt).on("blur","#propertyvalue",xt).on("change","#mortgagetermyrs",d).on("blur","#interestonlyamt",Tt).on("blur","#repaymentamount",St).on("click","#ownRateAmt",function(){Dt(event,this.value)}).on("blur","#ownRateAmt",It).on("click","#continue",M).on("click","#calculateResult",w).on("click",".backToStep1",h).on("click",".backToStep2",g).on("change","#repaymentType",Mt).on("click",".addLSButton",function(){D(1)}).on("click",".lsAdd",function(){Y(1)}).on("click",".deleteLs",function(){_(t(this).attr("id").substr(7),1)}).on("click","#priority1, #priority2",function(a){a.stopImmediatePropagation(),t(".offset-calc-result").css("opacity","0"),P("span","result",ga),it(),q()}),t(window).resize(t.debounce(function(){t("#resultsStep").hasClass("close")||(t(".offset-calc-result").css("opacity","0"),jt())},250)),jt=function(){P("span","result",ga),it(),q()};var f={rates:"",url:t(".offset-calc-form").attr("data-mortgage-rates-json"),init:function(){f.ajaxRequest()},ajaxRequest:function(){t.ajax({url:f.url,type:"GET",dataType:"json",success:function(a){f.rates=a[0],void 0!==a[1]&&void 0!==a[1]["mortgage-term-options"]&&(ba=a[1]["mortgage-term-options"]),t.each(f.rates,function(a,e){var r=e.ltv,n=e.rate;t.each(e,function(t,a){if("audience"===t&&"CUST"===a){var e=new Array(r,n);Ma.push(e)}}),Ma.sort(function(t,a){return t[1]-a[1]}),Ma.sort(function(t,a){return t[0]-a[0]})}),L(t("#mortgagetermyrs"),t("#mortgageterm-tooltip"))},error:function(t){console.error(t.message)}})}};f.init()}};var xa,wa=1,Ca=1,Pa=10,Aa=1e7,Ta=["propertyvalue","mortgageamount","mortgagetermyrs","mortgagetermmts","repaymentType","interestonlyamt","repaymentamount","interestrate","ownRateAmt","cursavings","regsavings","avgsavingrate","avgcuraccbal","curtaxband","priority"],Sa=[],ka=[],Ia=[],Ra=[],Da=[],Fa=[],Na=[],Oa=0,La=["Month","January","February","March","April","May","June","July","August","September","October","November","December"],Ea=[];Ea.repayment="repay",Ea.intOnly="intOnly",Ea.partAndPart="partPart";var Va,Ya,_a,$a,qa,ja,za,Ha,Wa,Ba,Ua,Ja,Qa,Ga,Ka,Za,Xa,te,ae=["One-off","Quarterly","Annually"],ee="",re="",ne="",le=["sOpening","sInterest","sPayment","sClosing","oOpening","oInterest","ooInterest","oPayment","oMPayRed","oClosing","nsOpening","nsOOpening","nsInterest","nsOInterest","nsClosing","osOpening","osInterest","osClosing"];return ua}(jQuery);var define,module;void 0!==define&&define.amd?define(function(){"use strict";return barclays.offsetCalculator}):void 0!==module&&module.exports?module.exports=barclays.offsetCalculator:window.barclays.offsetCalculator=barclays.offsetCalculator;
},{"../config":7}],69:[function(require,module,exports){
},{}],68:[function(require,module,exports){
var barclays=window.barclays||{};barclays.overdraftCalc=function(t){"use strict";var e={};t("input.od-input").on("focus",function(){0===Number(t(this).val())&&t(this).val("")}),t("input.od-input").on("blur",function(){""===t(this).val()&&t(this).val("0")});var s,a,i=t("#overdraft-calculator-component").data("json-path"),n=function(){t.ajax({type:"GET",dataType:"json",url:i,async:!1}).done(function(t){s=t.overdrafts.accounts,a=t.overdrafts.errors}).fail(function(t,e,s){console.error("Error loading overdraft-calculator JSON","Request path:"+i,t,e,s)})},o=t(".display-day").text(),r=t(".display-days").text(),u=t(".display-perday").text(),h=t(".display-feefree").text(),l=t(".display-year").text(),p=t(".display-upto").text(),d=t(".display-over").text(),c=t(".display-buffer").text();return e.init=function(){n();var e=function(t,e){this.el=t,this.accounts=e,this.el.find(".nojs").hide(),this.init()};e.prototype.init=function(){function e(t){for(var e=t,s=2;s<=31;s++){var a=document.createElement("option");a.value=s,a.innerHTML=s+" "+r,e.appendChild(a)}}this.inputs={accounts:{el:this.el.find("#dd-accounts"),wrapper:this.el.find("#dd-accounts").parent()},year:{el:this.el.find("#dd-years"),wrapper:this.el.find("#dd-years").parent()},overdraft:{amount:{el:this.el.find(".input.odamount"),input:this.el.find(".input.odamount input"),error:this.el.find(".input.odamount > .notification-error")},days:{el:this.el.find(".input.oddays"),select:this.el.find(".input.oddays select"),error:this.el.find(".input.oddays > .notification-error")}},eb:{checkbox:this.el.find("#needeb"),el:this.el.find(".emergency"),info:this.el.find(".overdraft .ebinfo"),amount:{el:this.el.find(".input.ebamount"),input:this.el.find(".input.ebamount input"),error:this.el.find(".input.ebamount > .notification-error")},days:{el:this.el.find(".input.ebdays"),select:this.el.find(".input.ebdays select"),error:this.el.find(".input.ebdays > .notification-error")}}},this.outputs={ebchargeRes:this.el.find(".ebchargeRes"),ebRmChargeRes:this.el.find(".ebRmChargeRes"),ebRmDaysRes:this.el.find(".ebRmDaysRes"),ebdaysRes:this.el.find(".ebdaysRes"),borrowing:this.el.find(".results-left .borrowing span"),days:this.el.find(".results-left .days span"),odDays:this.el.find(".odchargeDay"),odAmount:this.el.find(".odchargeAmt"),total:this.el.find(".results-right .total span"),breakdown:this.el.find(".results .breakdown"),breakdownResults:this.el.find(".charges-breakdown-results").closest(".row"),breakdownResultsEb:this.el.find(".charges-breakdown-results-eb"),representativeExample:this.el.find(".representative-example"),representativeExampleEb:this.el.find(".representative-example-eb"),emergencyBorrowing:this.el.find(".results .eb")},this.values={account:0,year:1,odamount:0,oddays:0,odcharge:0,ebenabled:!1,ebmaxamount:100,ebamount:0,ebdays:0};var a;for(var i in this.accounts)this.accounts.hasOwnProperty(i)&&(a+=''+this.accounts[i].name+" ");t(this.inputs.accounts.el).append(a),t(this.inputs.accounts.el).find("option:eq(1)").prop("selected",!0),e(document.getElementById("oddays")),e(document.getElementById("ebdays"));for(var n in this.accounts)this.accounts.hasOwnProperty(n)&&(t(this.outputs.representativeExample).append('
'),t(this.outputs.representativeExampleEb).append('
'));for(var o=t(".representative-example .js-rep-text"),u=t(".representative-example-eb .js-rep-text"),h=0;h"+s[e].repexamples.repex[a]+"")}(h),function(e){for(var a=0;a"+s[e].repexamples.ebrepex[a]+"")}(h);this.inputs.eb.el.hide(),this.inputs.year.wrapper.hide(),this.outputs.breakdownResults.hide(),this.updateRepExample(0),this.inputs.eb.checkbox.hide();var l=this;this.inputs.eb.checkbox.on("click",function(){l.redraw()}),this.inputs.eb.checkbox.show(),this.inputs.overdraft.amount.input.val("0"),this.inputs.eb.amount.input.val("0"),this.updatePricing(),this.attach()},e.prototype.attach=function(){var e=this;Object.keys||(Object.keys=function(t){var e=[];for(var s in t)t.hasOwnProperty(s)&&e.push(s);return e}),this.el.find("a.help").on("click",function(t){t.preventDefault()}),this.inputs.accounts.el.on("change",function(){e.selectAccount(t(this).val(),t(this))}),this.inputs.year.el.on("change",function(){e.selectYear(t(this).val(),t(this))}),this.inputs.eb.checkbox.parent().find("label").on("click",function(){e.values.ebenabled=!e.values.ebenabled,e.values.ebenabled?(e.inputs.eb.el.show(),t(this).find("span.ui-icon").css("background-position","-37px -52px")):(e.inputs.eb.el.hide(),t(this).find("span.ui-icon").css("background-position","0px -52px")),e.calculate(),e.toggleRep()}),this.inputs.overdraft.amount.input.on("blur",function(){e.update({odamount:t(this).val()},t(this))}).on("keyup",function(s){13===s.keyCode&&e.update({odamount:t(this).val()},t(this))}),this.inputs.overdraft.days.select.on("change",function(){e.update({oddays:t(this).val()},t(this))}),this.inputs.eb.amount.input.on("blur",function(){e.update({ebamount:t(this).val()},t(this))}).on("keyup",function(s){13===s.keyCode&&e.update({ebamount:t(this).val()},t(this))}),this.inputs.eb.days.select.on("change",function(){e.update({ebdays:t(this).val()},t(this))})},e.prototype.redraw=function(){t("#needeb").is(":checked")?(this.inputs.overdraft.amount.input.val(this.values.odamount),this.inputs.overdraft.days.select.val(this.values.oddays),0===this.values.ebmaxamount?("display: none;"!==t(".borrowing-block").attr("style")&&t(".borrowing-block").slideUp(350),this.inputs.eb.amount.input.attr("disabled",!0),this.inputs.eb.days.select.attr("disabled",!0),this.inputs.eb.info.find("li").hide(),this.values.odamount===this.getMaxLimit(this.values.account)?this.inputs.eb.info.find("li:nth-child(2)").show():this.inputs.eb.info.find("li:first").show(),this.inputs.eb.info.show()):(t(".borrowing-block").slideDown(350),this.inputs.eb.amount.input.attr("disabled",!1),this.inputs.eb.days.select.attr("disabled",!1),this.inputs.eb.info.hide().find("li").hide()),this.inputs.eb.amount.input.val(this.values.ebamount),this.inputs.eb.days.select.val(this.values.ebdays)):("display: none;"!==t(".borrowing-block").attr("style")&&t(".borrowing-block").slideUp(350),this.inputs.eb.info.hide().find("li").hide())},e.prototype.calculate=function(){var e=this.getCharges(this.values.account).bands,s=this.accounts[this.values.account].eb.charge,a=!1;for(var i in e)this.values.odamount<=Math.abs(e[i][0])&&!a&&(this.values.odcharge=this.values.odamount<=15?0:e[i][1],a=!0);var n={};if(n.totalBorrowing=this.values.odamount+this.values.ebamount,n.totalDays=this.values.oddays+(this.values.ebenabled?this.values.ebdays:0)+" "+(this.values.oddays+(this.values.ebenabled?this.values.ebdays:0)!==1?r:o),n.totalCost=this.values.oddays*this.values.odcharge,this.values.odcharge,n.overdraftCharge=this.values.oddays,this.values.ebenabled&&this.values.ebdays>0&&this.values.ebamount>0){n.emergencyBorrowing=[];var h=this.values.ebdays>7?7:this.values.ebdays;n.totalCost+=h*s,n.emergencyBorrowing.ebdays=h+" "+(1!==h?r:o),n.emergencyBorrowing.ebcharge=''+this.formatGBP(s)+' '+u+" ",n.emergencyBorrowing.push(h+" "+(1!==h?r:o)+" - "+this.formatGBP(s)+" "+u);var l=this.values.ebdays-h;l>0?(n.totalCost+=l*this.values.odcharge,t(".remainderCol").show(),n.emergencyBorrowing.rmdays=l+" "+(1!==l?r:o),n.emergencyBorrowing.rmcharge=''+this.formatGBP(this.values.odcharge)+' '+u+" ",n.emergencyBorrowing.push(l+" "+(1!==l?r:o)+" - "+this.formatGBP(this.values.odcharge)+" "+u)):t(".remainderCol").hide()}this.showResults(n)},e.prototype.showResults=function(t){var e=this.outputs;if(e.borrowing.html(this.formatGBP(t.totalBorrowing,0)),e.days.html(t.totalDays),e.total.html(this.formatGBP(t.totalCost),2),t.totalCost?(this.outputs.breakdownResults.show(),t.emergencyBorrowing?this.outputs.breakdownResultsEb.show():this.outputs.breakdownResultsEb.hide()):this.outputs.breakdownResults.hide(),t.overdraftCharge&&(e.odDays.html(this.values.oddays+" "+(1!==oddays?r:o)),0===this.values.odcharge?e.odAmount.html(''+h+" "):e.odAmount.html(''+this.formatGBP(this.values.odcharge)+' '+u+" ")),t.emergencyBorrowing||t.overdraftCharge?e.breakdown.find("p.nocharges").hide():e.breakdown.find("p.nocharges").show(),t.emergencyBorrowing){this.outputs.ebchargeRes.html(t.emergencyBorrowing.ebcharge),this.outputs.ebdaysRes.html(t.emergencyBorrowing.ebdays);var s=this.values.ebdays>7?7:this.values.ebdays;this.values.ebdays-s>0&&(this.outputs.ebRmChargeRes.html(t.emergencyBorrowing.rmcharge),this.outputs.ebRmDaysRes.html(t.emergencyBorrowing.rmdays))}},e.prototype.hideResults=function(){var t=this.outputs;t.overdraftCharge.empty(),t.emergencyBorrowing.empty(),t.breakdown.clearQueue().animate({opacity:.25},250)},e.prototype.showError=function(t,e,s){function i(t){var e="minimum and maximum",s=t.replace(e,"%minimum% and %maximum%");return t.indexOf(e)>=0?s:t}var n={LESS_THAN_100:i(a.lessThan100),NUMERICAL_VALUE:i(a.numericalValue),AMT_INCORRECT:i(a.amtIncorrect),EB_AMT_INCORRECT:i(a.ebAmtIncorrect),DAYS_INCORRECT:i(a.daysIncorrect),UNKNOWN:i(a.unknown)+e};n[e]||(e="UNKNOWN"),t.find("p.errortext").html(this.replaceVars(n[e],s)).show(),t.addClass("notification-error")},e.prototype.hideError=function(t){t.find("p.errortext").html("").hide(),t.closest(".field-row.message-region").removeClass("notification-error")},e.prototype.update=function(t,e){if(e){var s=e.closest("div.input");if(this.isSet(t.account)){this.values.account=t.account,this.values.year=1;var a=this.getMaxLimit(this.values.account);this.values.odamount>a&&(this.values.odamount=a,this.values.ebdays=0),this.values.ebmaxamount=this.calcEbMax(this.values.odamount),this.values.ebamount>this.values.ebmaxamount&&(this.values.ebamount=this.values.ebmaxamount),this.updatePricing(),this.toggleRep()}if(this.isSet(t.year)&&(this.values.year=this.validateNum(t.year),this.updatePricing()),this.isSet(t.odamount)){var i=this.validateNum(t.odamount);i>this.getMaxLimit(this.values.account)||i<0?this.showError(s,"AMT_INCORRECT",{minimum:"£0",maximum:this.formatGBP(this.getMaxLimit(this.values.account),0)}):i<100&&i>0?this.showError(s,"LESS_THAN_100"):i%10?this.showError(s,"AMT_INCORRECT",{minimum:"£0",maximum:this.formatGBP(this.getMaxLimit(this.values.account),0)}):(this.hideError(s),this.values.odamount=i,this.values.ebmaxamount=this.calcEbMax(i),this.values.ebmaxamount31||n<0?this.showError(s,"DAYS_INCORRECT"):(this.hideError(s),this.values.oddays=n,this.values.ebdays+this.values.oddays>31&&(this.values.ebdays=31-this.values.oddays))}if(this.isSet(t.ebamount)){var o=this.validateNum(t.ebamount);o>this.values.ebmaxamount||o<0||o%100?this.showError(s,"EB_AMT_INCORRECT",{minimum:"£0",maximum:this.formatGBP(this.values.ebmaxamount,0)}):(this.hideError(s),this.values.ebamount=o)}if(this.isSet(t.ebdays)){var r=this.validateNum(t.ebdays);r>31||r<0?this.showError(s,"DAYS_INCORRECT"):(this.hideError(s),this.values.ebdays=r,this.values.ebdays+this.values.oddays>31&&(this.values.oddays=31-this.values.ebdays))}this.calculate(),this.redraw()}},e.prototype.updatePricing=function(){var e=this.getCharges(this.values.account),s=this.getMaxLimit(this.values.account),a="",i=1,n="",o="",r="",l=0,m=[],f=[],v=e.bands.length;o+="",r+=" ",e.buffer>0&&(o+="",o+=""+p+" "+this.formatGBP(e.buffer,0)+"
",o+=" ",r+="",r+=''+c+"
",r+=" ",l++,v++);for(var b in e.bands)e.bands.hasOwnProperty(b)&&(l%2==0&&(o+=" ",r+=" "),0===e.bands[b][1]?(o+="",o+=""+p+" "+this.formatGBP(e.bands[b][0],0)+"
",o+=" ",r+="",r+=''+h+"
",r+=" "):parseInt(e.bands[b][0])===s?(o+="",o+=""+d+" "+this.formatGBP(a,0)+"
",o+=" ",r+="",r+=''+this.formatGBP(e.bands[b][1],0)+' '+u+"
",r+=" "):(o+="",o+=""+p+" "+this.formatGBP(e.bands[b][0],0)+"
",o+=" ",r+="",r+=''+this.formatGBP(e.bands[b][1],0)+' '+u+"
",r+=" "),i++,a=e.bands[b][0],l++,l%2!=0&&l!==v||(o+=" ",r+=""),l%2!=0&&l!==v||(m.push(o),f.push(r),o="",r=""));t.each(m,function(t){var e="";1===t&&(e=" charges-right-col"),n+='',n+='',n+=m[t],n+=f[t],n+=" ",n+="
"}),t(".charges-breakdown").html(n)},e.prototype.updateRepExample=function(t){var e=this.accounts[t].name.toLowerCase().replace(/ /g,"-");this.outputs.representativeExample.find(".js-rep-hide").hide(),this.outputs.representativeExampleEb.find(".js-rep-hide").hide(),this.outputs.representativeExample.find("[data-account-name="+e+"]").show(),this.outputs.representativeExampleEb.find("[data-account-name="+e+"]").show()},e.prototype.selectAccount=function(t,e){var s=t;this.updateRepExample(s);var a=this.accounts[s].charges;a.length>1?(this.updateYearDropdown(a),this.inputs.year.wrapper.show()):this.inputs.year.wrapper.hide(),this.update({account:s},e)},e.prototype.updateYearDropdown=function(e){var s;t(this.inputs.year.el).find("option:eq(0)").nextAll().remove();for(var a in e)e.hasOwnProperty(a)&&(s+=''+l+" "+e[a].year+" ");t(this.inputs.year.el).append(s)},e.prototype.selectYear=function(t,e){this.update({year:t},e)},e.prototype.toggleRep=function(){this.el.find(".rep-examples > div").hide();var t=this.accounts[this.values.account].name.replace(/ /gi,"-").toLowerCase();this.el.find(".rep span.account-name").html(this.accounts[this.values.account].name),this.el.find("span.account-max-limit").html(this.formatGBP(this.getMaxLimit(this.values.account),0)),this.el.find(".rep-examples > div."+t).show(),this.values.ebenabled?this.el.find(".rep > .eb").show():this.el.find(".rep > .eb").hide()},e.prototype.getCharges=function(t){var e=this.accounts[t].charges;return e=e.length>1?e[this.values.year>0?this.values.year-1:0]:e[0]},e.prototype.isSet=function(t){return"number"==typeof t||"string"==typeof t},e.prototype.validateNum=function(t){if("number"==typeof t)return t;if("string"==typeof t){t.split(".").length>1&&(t=t.split(".")[0]);var e=parseInt(t.replace(/\D/g,""));return isNaN(e)?0:e}return 0},e.prototype.formatGBP=function(t){Number.prototype.format=function(){return this.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g,"$1,")};var e=Math.round(100*t)/100;return e%1==0?"£"+e.format():e<1?100*e+"p":"£"+e.toFixed(2)},e.prototype.getMaxLimit=function(t){var e=this.getCharges(t).bands,s=0;for(var a in e)e[a][0]>s&&(s=parseInt(e[a][0]));return s},e.prototype.calcEbMax=function(t,e){var s=100*Math.floor(.15*t/100);if("number"==typeof this.accounts[this.values.account].eb.limit&&s>this.accounts[this.values.account].eb.limit&&(s=this.accounts[this.values.account].eb.limit),e)return s;var a=this.getMaxLimit(this.values.account);return 0===t?100:t<667||t===a?0:t+s>a?100*Math.floor((a-t)/100):s},e.prototype.replaceVars=function(t,e){if("object"!=typeof e)return t;var s,a=t.split(""),i=[],n=!1;for(var o in a)a.hasOwnProperty(o)&&("%"===a[o]&&(n=!n,s&&i.push(s),s=""),n&&(" "===a[o]?(s="",n=!1):"%"!==a[o]&&(s+=a[o])));for(var r in i)e[i[r]]&&(t=t.replace("%"+i[r]+"%",e[i[r]]));return t},t(document).ready(function(){barclays.dev=new e(t(".overdraft-calc"),s)})},e}(jQuery),module.exports=barclays.overdraftCalc;
},{}],69:[function(require,module,exports){
var barclays=window.barclays||{};barclays.savingsGoals=function(){"use strict";var a={};return a.init=function(){function a(){p=parseFloat($("#targetSave").val()),m=parseFloat($("#savedAlready").val()),f=n(),d(F),0===g?$("#savePerMonth").val(f).css("color","#ccc"):g<0?$("#savePerMonth").val(0).css("color","#ccc"):$("#savePerMonth").val((Math.ceil(100*u)/100).toFixed(2)).css("color","#ccc")}function e(){p=parseFloat($("#targetSave").val()),m=parseFloat($("#savedAlready").val()),f=p-m;var a=$("#savePerMonth").val(),t=parseInt($("#goalStartMth").val()),r=parseInt($("#goalStartYr").val()),l=parseInt($("#goalEndMth").val()),n=parseInt($("#goalEndYr").val());if(g=o(t,l,r,n),v(F),$("#savePerMonth").css("color",""),s(t,l,r,n))return!1;if(0===p||p<=m)return $(".goal-calc-error.target-error").removeClass("close").attr("role","alert"),$(".outcome-panel.not-achieve-panel, .outcome-panel.achieve-panel").addClass("close"),$(".targetSave.message-region").addClass("notification-error"),$("#savePerMonth").val("0"),!1;if(g<=0||a<1){if($(".goal-calc-error.target-error").addClass("close").removeAttr("role"),$(".targetSave.message-region, #goalStart").removeClass("notification-error"),g<=0)return $(".goal-calc-error.start-date-error").removeClass("close").attr("role","alert"),$("#goalStart").addClass("notification-error"),$(".outcome-panel.not-achieve-panel, .outcome-panel.achieve-panel").addClass("close"),!1;if(a<1)return $(".goal-calc-error.start-date-error").addClass("close").removeAttr("role"),$("#goalStart").removeClass("notification-error"),$(".goal-calc-error.payment-error").removeClass("close").attr("role","alert"),$(".paymentSave.message-region").addClass("notification-error"),$(".outcome-panel.not-achieve-panel, .outcome-panel.achieve-panel").addClass("close"),!1}else{$(".goal-calc-error").addClass("close").removeAttr("role"),$(".message-region").removeClass("notification-error"),$(".targetSave.message-region, #goalStart, #goalEnd").removeClass("notification-error"),h=Number(m+g*a);var d=h/p*100,u=p-h,E=(h-p).toFixed(2);C=f/g,C=Math.ceil(100*C)/100;var Y=Math.ceil(f/a),P=c(r,t,Y);$(".total-saved").text(h.toFixed(2)),$(".save-per-month").text(a),$(".target-date").text($("#goalEndMth option:selected").text()+" "+$("#goalEndYr option:selected").text()),$(".new-save-per-month").text(C.toFixed(2)),$(".new-target-date").text(P),$(".goal-total").text(p.toFixed(2)),$(".shortfallPara").addClass("hide").attr("hidden"),$(".surplusPara").addClass("hide").attr("hidden"),u>0&&($(".shortfallPara").removeClass("hide").removeAttr("hidden"),$(".shortfallPara .shortfall").html(u)),E>0&&($(".surplusPara").removeClass("hide").removeAttr("hidden"),$(".surplusPara .surplus").html(E)),i(h,p,d)}$(".adjust-mth").on("click",function(){$("#savePerMonth").val(C),e()}),$(".adjust-date").on("click",function(){$("#goalEndMth").val(M+1),$("#goalEndYr").val(S),e()})}function t(){var a=$(this).attr("id"),e=parseInt($("#goalStartMth").val()),t=parseInt($("#goalStartYr").val()),o=parseInt($("#goalEndMth").val()),r=parseInt($("#goalEndYr").val());"goalStartMth"===a&&(e=r&&$("#goalEndYr").val(t+2)),"goalStartYr"===a&&t>=r&&$("#goalEndYr").val(t+1),"goalEndMth"===a&&(o12&&($("#goalEndMth").val(Y-10),$("#goalEndYr").val(P+1))}function s(a,e,t,o){return ao||t===o&&e-a<2?($(".goal-calc-error.date-gap-error").removeClass("close").attr("role","alert"),$("#goalEnd").addClass("notification-error"),!0):void 0))}function n(){var a=$("#targetSave").val(),e=$("#savedAlready").val(),t=parseInt($("#goalStartMth").val()),r=parseInt($("#goalStartYr").val()),l=parseInt($("#goalEndMth").val()),n=parseInt($("#goalEndYr").val());return g=o(t,l,r,n),!s(t,l,r,n)&&(0!==g?(u=(a-e)/g,$("#savePerMonth").val(u.toFixed(2))):(u=parseFloat(a-e),$("#savePerMonth").val(parseFloat(u).toFixed(2))),$("#savePerMonth").val(u.toFixed(2)),$(".goal-calc-error").addClass("close").removeAttr("role"),$(".targetSave.message-region, #goalStart, #goalEnd").removeClass("notification-error"),u.toFixed(2))}function c(a,e,t){var o=new Date(a,e-1),r=$(".over50").html();return o.setMonth(o.getMonth()+t),t>600||void 0===o.getFullYear()||isNaN(o.getFullYear())?(v(".adjust-date"),r):(M=o.getMonth(),S=o.getFullYear(),S>P+15||S===P&&M+1>Y?v(".adjust-date"):d(".adjust-date"),x[o.getMonth()]+" "+o.getFullYear()+".")}function i(a,e,t){v(F);var o,r=Math.round(t);a100?"moreThan100":"100",window.loadsettings(o),$("#fillgauge1").empty(),$(".outcome-panel.not-achieve-panel, #goalCalcForm").addClass("close"),$(".outcome-panel.achieve-panel").removeClass("close"),window.updateGauge1(r),$("html, body").animate({scrollTop:$(".outcome-panel.achieve-panel").offset().top-100},200))}function d(a){$(a).css("background-color","").removeAttr("disabled").attr("aria-disabled","false")}function v(a){$(a).css("background-color","#ccc").attr("disabled","disabled").attr("aria-disabled","true")}var g,u,h,p,m,f,C,M,S,F="#goalCalculator #calculate";$(".select-date").on("change",t),$("#targetSave, #savedAlready").on("blur",a),$(".select-date").on("change",a),$("#calculate").on("click",e),$("#savePerMonth").on("click",function(){$(this).val("").css("color","#000"),d(F)});var E=new Date,Y=E.getMonth()+1,P=E.getFullYear(),x=[];$("#goalStartMth option").each(function(){x.push($(this).html())}),x.shift();for(var b=0;b<=15;b++){var y=P+b;$("#goalStartYr").find("option:last-child").after(''+y+" "),$("#goalEndYr").find("option:last-child").after(''+y+" ")}$("#targetSave, #savedAlready, #savePerMonth").val(0),l(),$("#goalCalcForm").find("input.goal-input").on("click, focus",function(){0===Number($(this).val())&&$(this).val("")}),$("#goalCalcForm").find("input.goal-input").on("blur",function(){var a=$(this).val();""===a?$(this).val("0"):$(this).val(r(a))}),$("#goalCalcForm .reset").on("click",function(a){a.preventDefault(),$(".goal-calc-error").addClass("close").removeAttr("role"),$("#targetSave, #savedAlready, #savePerMonth").val(0),l(),d(F)}),$(".outcome-panel .reset").on("click",function(){$(".outcome-panel.not-achieve-panel, .outcome-panel.achieve-panel").addClass("close"),$("#goalCalcForm").removeClass("close"),d(F)})},a}(),module.exports=barclays.savingsGoals;
},{}],71:[function(require,module,exports){
var barclays=window.barclays||{};barclays.tooltips=function(t){"use strict";var o={};return o.init=function(){t(".tooltip").qtip({position:{my:"bottom center",at:"top center",viewport:t(window)}}),t(".tooltip-right").qtip({position:{my:"bottom left",at:"top right",viewport:t(window)}}),t(".tooltip-bottom").qtip({position:{my:"top center",at:"bottom center",viewport:t(window)}}),t(".tooltip-left").qtip({position:{my:"bottom right",at:"top left",viewport:t(window)}})},t(".tooltip, .tooltip-right, .tooltip-bottom, .tooltip-left").focusin(function(){t(this).qtip("toggle",!0)}),t(".tooltip, .tooltip-right, .tooltip-bottom, .tooltip-left").focusout(function(){t(this).qtip("toggle",!1)}),o}(jQuery),module.exports=barclays.tooltips;
},{}],72:[function(require,module,exports){
var ready=require("lite-ready"),
tooltips=require("./modules/tooltips/tooltips"),
businessLoan=require("./modules/business-loan/business-loan"),
busLoansApr=require("./modules/business-loan-apr/business-loan-apr"),
businessInterestRates=require("./modules/business-interest-rates/business-interest-rates"),
savingsGoals=require("./modules/savings-goals/savings-goals"),
cookiePanel=require("./modules/cookies/cookies"),
mortgageTable=require("./modules/mortgage-table/mortgage-table"),
mortgageCalc=require("./modules/mortgage-calculator/mortgage-calculator"),
offsetCalculator=require("./modules/offset-calculator/offset-calculator");
require("console"),window.barclays=window.barclays||{},ready(function(){"use strict";document.getElementById("business-loan")&&businessLoan.init(),document.getElementById("business-interest-rates")&&businessInterestRates.init(),document.getElementById("business-loan-apr")&&busLoansApr.init(),document.getElementsByClassName("tooltip").length>0&&tooltips.init(),document.getElementsByClassName("js-cookie-panel").length>0&&cookiePanel.init(),document.getElementById("goalCalculator")&&savingsGoals.init(),document.getElementsByClassName("table-mortgage").length>0&&mortgageTable.init(),document.getElementById("mortgage-calculator-component")&&$(document).ready(function(){mortgageCalc.init(document.getElementById("mortgage-calculator-component"))}),document.getElementById("offset-calculator")&&offsetCalculator.init(),document.getElementById("debt-mortgages-calculator-component")});
},{"./modules/business-interest-rates/business-interest-rates":3,"./modules/business-loan-apr/business-loan-apr":4,"./modules/business-loan/business-loan":5,"./modules/cookies/cookies":8,"./modules/debt-calculator/debt-calculator":16,"./modules/loans-calculator-apr/loans-calculator-apr":43,"./modules/loans-calculator/loans-calculator":44,"./modules/mortgage-calculator/mortgage-calculator":60,"./modules/mortgage-table/mortgage-table":66,"./modules/offset-calculator/offset-calculator":67,"./modules/savings-goals/savings-goals":69,"./modules/tooltips/tooltips":71,"console":77,"lite-ready":78}],73:[function(require,module,exports){
function replacer(t,e){return util.isUndefined(e)?""+e:util.isNumber(e)&&!isFinite(e)?e.toString():util.isFunction(e)||util.isRegExp(e)?e.toString():e}function truncate(t,e){return util.isString(t)?t.length=0;n--)if(a[n]!=o[n])return!1;for(n=a.length-1;n>=0;n--)if(s=a[n],!_deepEqual(t[s],e[s]))return!1;return!0}function expectedException(t,e){return!(!t||!e)&&("[object RegExp]"==Object.prototype.toString.call(e)?e.test(t):t instanceof e||!0===e.call({},t))}function _throws(t,e,r,i){var s;util.isString(r)&&(i=r,r=null);try{e()}catch(t){s=t}if(i=(r&&r.name?" ("+r.name+").":".")+(i?" "+i:"."),t&&!s&&fail(s,r,"Missing expected exception"+i),!t&&expectedException(s,r)&&fail(s,r,"Got unwanted exception"+i),t&&s&&r&&!expectedException(s,r)||!t&&s)throw s}var util=require("util/"),pSlice=Array.prototype.slice,hasOwn=Object.prototype.hasOwnProperty,assert=module.exports=ok;assert.AssertionError=function(t){this.name="AssertionError",this.actual=t.actual,this.expected=t.expected,this.operator=t.operator,t.message?(this.message=t.message,this.generatedMessage=!1):(this.message=getMessage(this),this.generatedMessage=!0);var e=t.stackStartFunction||fail;if(Error.captureStackTrace)Error.captureStackTrace(this,e);else{var r=new Error;if(r.stack){var i=r.stack,s=e.name,n=i.indexOf("\n"+s);if(n>=0){var a=i.indexOf("\n",n+1);i=i.substring(a+1)}this.stack=i}}},util.inherits(assert.AssertionError,Error),assert.fail=fail,assert.ok=ok,assert.equal=function(t,e,r){t!=e&&fail(t,e,r,"==",assert.equal)},assert.notEqual=function(t,e,r){t==e&&fail(t,e,r,"!=",assert.notEqual)},assert.deepEqual=function(t,e,r){_deepEqual(t,e)||fail(t,e,r,"deepEqual",assert.deepEqual)},assert.notDeepEqual=function(t,e,r){_deepEqual(t,e)&&fail(t,e,r,"notDeepEqual",assert.notDeepEqual)},assert.strictEqual=function(t,e,r){t!==e&&fail(t,e,r,"===",assert.strictEqual)},assert.notStrictEqual=function(t,e,r){t===e&&fail(t,e,r,"!==",assert.notStrictEqual)},assert.throws=function(t,e,r){_throws.apply(this,[!0].concat(pSlice.call(arguments)))},assert.doesNotThrow=function(t,e){_throws.apply(this,[!1].concat(pSlice.call(arguments)))},assert.ifError=function(t){if(t)throw t};var objectKeys=Object.keys||function(t){var e=[];for(var r in t)hasOwn.call(t,r)&&e.push(r);return e};
},{"util/":76}],74:[function(require,module,exports){
"function"==typeof Object.create?module.exports=function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:module.exports=function(t,e){t.super_=e;var o=function(){};o.prototype=e.prototype,t.prototype=new o,t.prototype.constructor=t};
},{}],75:[function(require,module,exports){
module.exports=function(o){return o&&"object"==typeof o&&"function"==typeof o.copy&&"function"==typeof o.fill&&"function"==typeof o.readUInt8};
},{}],76:[function(require,module,exports){
(function (process,global){
function inspect(e,r){var t={seen:[],stylize:stylizeNoColor};return arguments.length>=3&&(t.depth=arguments[2]),arguments.length>=4&&(t.colors=arguments[3]),isBoolean(r)?t.showHidden=r:r&&exports._extend(t,r),isUndefined(t.showHidden)&&(t.showHidden=!1),isUndefined(t.depth)&&(t.depth=2),isUndefined(t.colors)&&(t.colors=!1),isUndefined(t.customInspect)&&(t.customInspect=!0),t.colors&&(t.stylize=stylizeWithColor),formatValue(t,e,t.depth)}function stylizeWithColor(e,r){var t=inspect.styles[r];return t?"["+inspect.colors[t][0]+"m"+e+"["+inspect.colors[t][1]+"m":e}function stylizeNoColor(e,r){return e}function arrayToHash(e){var r={};return e.forEach(function(e,t){r[e]=!0}),r}function formatValue(e,r,t){if(e.customInspect&&r&&isFunction(r.inspect)&&r.inspect!==exports.inspect&&(!r.constructor||r.constructor.prototype!==r)){var n=r.inspect(t,e);return isString(n)||(n=formatValue(e,n,t)),n}var i=formatPrimitive(e,r);if(i)return i;var o=Object.keys(r),s=arrayToHash(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(r)),isError(r)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return formatError(r);if(0===o.length){if(isFunction(r)){var u=r.name?": "+r.name:"";return e.stylize("[Function"+u+"]","special")}if(isRegExp(r))return e.stylize(RegExp.prototype.toString.call(r),"regexp");if(isDate(r))return e.stylize(Date.prototype.toString.call(r),"date");if(isError(r))return formatError(r)}var c="",a=!1,l=["{","}"];if(isArray(r)&&(a=!0,l=["[","]"]),isFunction(r)){c=" [Function"+(r.name?": "+r.name:"")+"]"}if(isRegExp(r)&&(c=" "+RegExp.prototype.toString.call(r)),isDate(r)&&(c=" "+Date.prototype.toUTCString.call(r)),isError(r)&&(c=" "+formatError(r)),0===o.length&&(!a||0==r.length))return l[0]+c+l[1];if(t<0)return isRegExp(r)?e.stylize(RegExp.prototype.toString.call(r),"regexp"):e.stylize("[Object]","special");e.seen.push(r);var p;return p=a?formatArray(e,r,t,s,o):o.map(function(n){return formatProperty(e,r,t,s,n,a)}),e.seen.pop(),reduceToSingleString(p,c,l)}function formatPrimitive(e,r){if(isUndefined(r))return e.stylize("undefined","undefined");if(isString(r)){var t="'"+JSON.stringify(r).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(t,"string")}return isNumber(r)?e.stylize(""+r,"number"):isBoolean(r)?e.stylize(""+r,"boolean"):isNull(r)?e.stylize("null","null"):void 0}function formatError(e){return"["+Error.prototype.toString.call(e)+"]"}function formatArray(e,r,t,n,i){for(var o=[],s=0,u=r.length;s-1&&(u=o?u.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+u.split("\n").map(function(e){return" "+e}).join("\n"))):u=e.stylize("[Circular]","special")),isUndefined(s)){if(o&&i.match(/^\d+$/))return u;s=JSON.stringify(""+i),s.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+u}function reduceToSingleString(e,r,t){var n=0;return e.reduce(function(e,r){return n++,r.indexOf("\n")>=0&&n++,e+r.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60?t[0]+(""===r?"":r+"\n ")+" "+e.join(",\n ")+" "+t[1]:t[0]+r+" "+e.join(", ")+" "+t[1]}function isArray(e){return Array.isArray(e)}function isBoolean(e){return"boolean"==typeof e}function isNull(e){return null===e}function isNullOrUndefined(e){return null==e}function isNumber(e){return"number"==typeof e}function isString(e){return"string"==typeof e}function isSymbol(e){return"symbol"==typeof e}function isUndefined(e){return void 0===e}function isRegExp(e){return isObject(e)&&"[object RegExp]"===objectToString(e)}function isObject(e){return"object"==typeof e&&null!==e}function isDate(e){return isObject(e)&&"[object Date]"===objectToString(e)}function isError(e){return isObject(e)&&("[object Error]"===objectToString(e)||e instanceof Error)}function isFunction(e){return"function"==typeof e}function isPrimitive(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e}function objectToString(e){return Object.prototype.toString.call(e)}function pad(e){return e<10?"0"+e.toString(10):e.toString(10)}function timestamp(){var e=new Date,r=[pad(e.getHours()),pad(e.getMinutes()),pad(e.getSeconds())].join(":");return[e.getDate(),months[e.getMonth()],r].join(" ")}function hasOwnProperty(e,r){return Object.prototype.hasOwnProperty.call(e,r)}var formatRegExp=/%[sdj%]/g;exports.format=function(e){if(!isString(e)){for(var r=[],t=0;t=i)return e;switch(e){case"%s":return String(n[t++]);case"%d":return Number(n[t++]);case"%j":try{return JSON.stringify(n[t++])}catch(e){return"[Circular]"}default:return e}}),s=n[t];t1)for(var r=1;r=3&&(t.depth=arguments[2]),arguments.length>=4&&(t.colors=arguments[3]),isBoolean(r)?t.showHidden=r:r&&exports._extend(t,r),isUndefined(t.showHidden)&&(t.showHidden=!1),isUndefined(t.depth)&&(t.depth=2),isUndefined(t.colors)&&(t.colors=!1),isUndefined(t.customInspect)&&(t.customInspect=!0),t.colors&&(t.stylize=stylizeWithColor),formatValue(t,e,t.depth)}function stylizeWithColor(e,r){var t=inspect.styles[r];return t?"["+inspect.colors[t][0]+"m"+e+"["+inspect.colors[t][1]+"m":e}function stylizeNoColor(e,r){return e}function arrayToHash(e){var r={};return e.forEach(function(e,t){r[e]=!0}),r}function formatValue(e,r,t){if(e.customInspect&&r&&isFunction(r.inspect)&&r.inspect!==exports.inspect&&(!r.constructor||r.constructor.prototype!==r)){var n=r.inspect(t,e);return isString(n)||(n=formatValue(e,n,t)),n}var i=formatPrimitive(e,r);if(i)return i;var o=Object.keys(r),s=arrayToHash(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(r)),isError(r)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return formatError(r);if(0===o.length){if(isFunction(r)){var u=r.name?": "+r.name:"";return e.stylize("[Function"+u+"]","special")}if(isRegExp(r))return e.stylize(RegExp.prototype.toString.call(r),"regexp");if(isDate(r))return e.stylize(Date.prototype.toString.call(r),"date");if(isError(r))return formatError(r)}var c="",a=!1,l=["{","}"];if(isArray(r)&&(a=!0,l=["[","]"]),isFunction(r)){c=" [Function"+(r.name?": "+r.name:"")+"]"}if(isRegExp(r)&&(c=" "+RegExp.prototype.toString.call(r)),isDate(r)&&(c=" "+Date.prototype.toUTCString.call(r)),isError(r)&&(c=" "+formatError(r)),0===o.length&&(!a||0==r.length))return l[0]+c+l[1];if(t<0)return isRegExp(r)?e.stylize(RegExp.prototype.toString.call(r),"regexp"):e.stylize("[Object]","special");e.seen.push(r);var p;return p=a?formatArray(e,r,t,s,o):o.map(function(n){return formatProperty(e,r,t,s,n,a)}),e.seen.pop(),reduceToSingleString(p,c,l)}function formatPrimitive(e,r){if(isUndefined(r))return e.stylize("undefined","undefined");if(isString(r)){var t="'"+JSON.stringify(r).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(t,"string")}return isNumber(r)?e.stylize(""+r,"number"):isBoolean(r)?e.stylize(""+r,"boolean"):isNull(r)?e.stylize("null","null"):void 0}function formatError(e){return"["+Error.prototype.toString.call(e)+"]"}function formatArray(e,r,t,n,i){for(var o=[],s=0,u=r.length;s-1&&(u=o?u.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+u.split("\n").map(function(e){return" "+e}).join("\n"))):u=e.stylize("[Circular]","special")),isUndefined(s)){if(o&&i.match(/^\d+$/))return u;s=JSON.stringify(""+i),s.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=e.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=e.stylize(s,"string"))}return s+": "+u}function reduceToSingleString(e,r,t){var n=0;return e.reduce(function(e,r){return n++,r.indexOf("\n")>=0&&n++,e+r.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60?t[0]+(""===r?"":r+"\n ")+" "+e.join(",\n ")+" "+t[1]:t[0]+r+" "+e.join(", ")+" "+t[1]}function isArray(e){return Array.isArray(e)}function isBoolean(e){return"boolean"==typeof e}function isNull(e){return null===e}function isNullOrUndefined(e){return null==e}function isNumber(e){return"number"==typeof e}function isString(e){return"string"==typeof e}function isSymbol(e){return"symbol"==typeof e}function isUndefined(e){return void 0===e}function isRegExp(e){return isObject(e)&&"[object RegExp]"===objectToString(e)}function isObject(e){return"object"==typeof e&&null!==e}function isDate(e){return isObject(e)&&"[object Date]"===objectToString(e)}function isError(e){return isObject(e)&&("[object Error]"===objectToString(e)||e instanceof Error)}function isFunction(e){return"function"==typeof e}function isPrimitive(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e}function objectToString(e){return Object.prototype.toString.call(e)}function pad(e){return e<10?"0"+e.toString(10):e.toString(10)}function timestamp(){var e=new Date,r=[pad(e.getHours()),pad(e.getMinutes()),pad(e.getSeconds())].join(":");return[e.getDate(),months[e.getMonth()],r].join(" ")}function hasOwnProperty(e,r){return Object.prototype.hasOwnProperty.call(e,r)}var formatRegExp=/%[sdj%]/g;exports.format=function(e){if(!isString(e)){for(var r=[],t=0;t=i)return e;switch(e){case"%s":return String(n[t++]);case"%d":return Number(n[t++]);case"%j":try{return JSON.stringify(n[t++])}catch(e){return"[Circular]"}default:return e}}),s=n[t];t 0){
return $('[data-widget="accessible-autocomplete"] #quicksearch-body.headersearch-open UL');
}
return $('[data-widget="accessible-autocomplete"] UL#common-questions-list');
}
function announceResults() {
var number = results.length,
textToRead = number + " results are available. " + directions;
if (results.length === 0) {
textToRead = "No search results";
}
NAME.access.announcements($('[data-widget="accessible-autocomplete"] [aria-live]'), textToRead);
}
function markSelected($selectionToMark) {
// don't mark anything on the results list if we're back at the input field
if ($selectionToMark.length === 0) {
return;
}
var activeItemId = 'selectedOption';
$selectionToMark.attr('aria-selected', 'true').attr('id', activeItemId).addClass('is-selected').trigger('cssClassChange');
$input.attr('aria-activedescendant', activeItemId);
}
function clearSelected() {
var $results = getResults();
$input.attr('aria-activedescendant', '');
$results.find('[aria-selected="true"]').attr('aria-selected', 'false').attr('id', '').removeClass('is-selected');
}
function closeResults() {
var $results = getResults();
clearSelected();
$results.hide();
$input.attr('aria-expanded', 'false');
}
function autocomplete() {
// save new input value
inputVal = $input.val();
results = [];
// if default search results are visible, aria-hidden is false
var commonSearchAttr = (document.getElementById("commonquestions-body").getAttribute("aria-hidden")) === "false";
// if quick search results are visible, aria-hidden is false
var quickSearchAttr = (document.getElementById("quicksearch-body").getAttribute("aria-hidden")) === "false";
if(commonSearchAttr){
$('ul#common-questions-list li').each(function(){
results.push($(this).find('A').text());
});
}
if(quickSearchAttr) {
$('ul#quick-search--list li').each(function(){
results.push($(this).find('A').text());
});
}
// aria-live results
announceResults();
}
function arrowing(kc) {
var $results = getResults(),
$thisActiveItem = $results.find('.is-selected'),
$nextMenuItem;
if (kc === key.down) {
// find the next list item to be arrowed to
$nextMenuItem = ($thisActiveItem.length !== 0)
? $thisActiveItem.next('li')
: $results.children().eq(0); //first item in list
}
if (kc === key.up) {
// find the previous list to be arrowed to
$nextMenuItem = ($thisActiveItem.length !== 0)
? $thisActiveItem.prev('li')
: $results.children().eq(-1); //last item in list
}
clearSelected();
markSelected($nextMenuItem);
NAME.access.announcements($('[data-widget="accessible-autocomplete"] [aria-live]'), $nextMenuItem.text());
}
function populating() {
var selectedText = $('[data-widget="accessible-autocomplete"] #common-questions-list').find('[aria-selected="true"]').text();
if (selectedText === "") {
selectedText = inputVal;
}
$input.val(selectedText);
}
function eventListeners() {
$(document).on('keyup', '[data-widget="accessible-autocomplete"] #search-input', function (e) {
var kc = e.keyCode;
if (kc === key.up || kc === key.down || kc === key.tab || kc === key.enter || kc === key.esc) {
return;
}
autocomplete();
}).on('keydown', '[data-widget="accessible-autocomplete"] #search-input', function (e) {
var kc = e.keyCode;
if (kc === key.tab) {
closeResults();
return;
}
if (kc === key.enter) {
e.preventDefault();
getResults().find('.is-selected A')[0].click();
}
if (kc === key.up || kc === key.down) {
e.preventDefault();
arrowing(kc);
populating();
return;
}
if (kc === key.esc) {
$input.val(inputVal);
closeResults();
}
}).on('click', '.aem-search-bar__button', function () {
autocomplete();
});
}
function init() {
eventListeners();
}
init();
}(jQuery, NAME));
/**
* @fileOverview Provides functionality for the multi tab.
* @author: Remi Rynkiewicz
* @namespace bcpublic.helpandsupport
*/
var bcpublic = bcpublic || {};
bcpublic.helpandsupport = bcpublic.helpandsupport || {};
bcpublic.helpandsupport.multiTab = (function($) {
'use strict';
var
$window = $(window),
$body = $('body'),
labelsType = 'full', // full / short
touchSupported = Modernizr.touch,
$selector = $('.js-multitab'),
$el,
$tabsWrapper,
$tabs,
$windowWidth,
$tabsEls,
$tabsAlt,
$tabsAltEls,
$content,
$contentList,
$contentEls,
$theresMoreLeft,
$theresMoreRight,
$tabsSelectContainer,
$tabsSelect,
/**
* Binds events to the necessary DOM elements
*
* @method bindEvents
*/
bindEvents = function($el, $tabsWrapper, $tabs, $tabsEls, $tabsAlt, $contentList, $contentEls, $tabsSelect, $theresMoreLeft, $theresMoreRight) {
$tabs.on('click', 'li a', function() {
var $this = $(this);
$this.blur();
var $tab = $this.parent('li');
selectTab($tab, $tabsEls, $tabsAlt, $contentEls);
$tabsSelect.val($tab.attr('data-name'));
$el.trigger('tab-selected', $tab );
});
$tabsSelect.on('change', function(){
var $matchingTab = $tabs.find('li[data-name="' + $(this).val() + '"]');
selectTab($matchingTab, $tabsEls, $tabsAlt, $contentEls);
});
$window.smartresize(function() {
reCalculateTabs($el, $tabsWrapper, $tabs, $tabsEls, $tabsAlt);
}, 500);
if (touchSupported) {
touchEvents($el, $tabsWrapper, $tabs, $theresMoreLeft, $theresMoreRight);
}
function locationHashChanged(e) {
e.preventDefault();
}
window.onhashchange = locationHashChanged;
},
addIdsForElements = function(multitab, index) {
multitab.each(function() {
if (index !== 0) {
//content panels
var tabDataName = $(this).find('.tabs-container ul li'),
tabHref = $(this).find('.tabs-container ul li a'),
panelId = $(this).find('.content > ul > li');
tabDataName.each(function() {
var newTabDataName = $(this).attr('data-name') + index;
$(this).attr('data-name', newTabDataName);
});
tabHref.each(function() {
var newTabHref = $(this).attr('href') + index;
$(this).attr('href', newTabHref);
});
panelId.each(function() {
var newPanelId = $(this).attr('id') + index;
$(this).attr('id', newPanelId);
});
//dropdown
var dropdownLabel = $(this).find('.tabs-select-container label'),
dropdownSelectId = $(this).find('.tabs-select-container select'),
dropdownOptionVal = $(this).find('.tabs-select-container option');
dropdownLabel.each(function() {
$(this).attr('for', 'tab-select' + index);
});
dropdownSelectId.each(function() {
$(this).attr('id', 'tab-select' + index);
});
dropdownOptionVal.each(function() {
var newOptionVal = $(this).attr('value') + index;
$(this).attr('value', newOptionVal);
});
}
});
},
removeIdsFromContentEls = function($contentEls) {
var id;
$contentEls.each(function() {
var $this = $(this);
id = $this.attr('id');
$this[0].removeAttribute('id');
$this.attr('data-name', id);
});
},
touchEvents = function($el, $tabsWrapper, $tabs, $theresMoreLeft, $theresMoreRight) {
var reCalculateVisualClue = function() {
var scrolledFromLeft = $tabsWrapper.scrollLeft(),
scrolledFromRight = $tabs.width() - $tabsWrapper.width() - scrolledFromLeft,
theresMoreLeftLeft,
theresMoreRightRight;
theresMoreLeftLeft = -45 + scrolledFromLeft;
if (theresMoreLeftLeft > 0){
theresMoreLeftLeft = 0;
}
theresMoreRightRight = -45 + scrolledFromRight;
if (theresMoreRightRight > 0){
theresMoreRightRight = 0;
}
$theresMoreLeft.css('left', theresMoreLeftLeft);
$theresMoreRight.css('right', theresMoreRightRight);
},
scrollTabsWrapperToCenter = function(tab){
var tabPosition = tab.position(),
tabCenter = ( 2 * tabPosition.left + tab.width() ) / 2,
toScrollLeft = tabCenter - $tabsWrapper.width() / 2,
maxLeftScroll = $tabs.width() - $tabsWrapper.width();
if (maxLeftScroll <= 0) {
return false;
}
if (toScrollLeft < 0){
toScrollLeft = 0;
}
if (toScrollLeft > maxLeftScroll){
toScrollLeft = maxLeftScroll;
}
$tabsWrapper.animate({
scrollLeft : toScrollLeft
}, 500);
};
$tabsWrapper.on('scroll', function(){
reCalculateVisualClue();
});
reCalculateVisualClue();
$el.on('tab-selected', function(e, $tab){
scrollTabsWrapperToCenter($($tab));
});
},
moreTabHelpers = {
shouldIHighlightMoreLabel : function($tabsAlt) {
var active = $tabsAltEls.filter('.active');
if ( active.hasClass('hidden') ){
$tabsAlt.removeClass('active');
} else {
$tabsAlt.addClass('active');
}
},
overflowTabs: function($el, $tabs, $tabsEls, $tabsAlt) {
var width = $el.width(),
tempWidth = 0,
// calculate amount of label tabs we can fit
weCanFit = (function(){
for (var i=0; i < $tabsEls.length; i++ ){
tempWidth += $tabsEls.filter(':eq('+ i +')').width();
if ( tempWidth > width ){
return ( i - 1 );
}
}
})();
//not enoughSpace so we only show ' + weCanFit + ' elements plus dropdown
$tabs.addClass('not-enough-space');
$tabsEls.removeClass('hidden').filter(':gt(' + (weCanFit - 1) + ')').not('#second-tab').addClass('hidden');
$tabsAltEls.removeClass('hidden first-of-visible').filter(':lt(' + weCanFit +')').addClass('hidden');
$tabsAltEls.filter(':eq('+weCanFit+')').addClass('first-of-visible');
$el.css('min-height', $tabsAlt.find('> ul').height() );
},
populateSecondDropdown: function($tabsEls, $tabsAlt) {
$tabsAlt.append('');
$tabsEls.not('#second-tab').clone().appendTo( $tabsAlt.find('> ul'));
$tabsAltEls = $tabsAlt.find(' > ul > li');
}
},
bindAuthorEvents = function($tabs) {
$tabs.on('click', 'li a', function(e){
e.preventDefault();
});
},
selectTab = function($tab, $tabsEls, $tabsAlt, $contentEls) {
if ($tab.hasClass('selected')){
// close more dropdown
} else {
changeTab($tab, $tabsEls, $tabsAlt, $contentList, $contentEls);
}
},
changeTab = function($tab, $tabsEls, $tabsAlt, $contentList, $contentEls) {
var tabName = $tab.data('name'),
$activeContent = $contentEls.filter('.active'),
$contentElToActivate,
switchActiveTab = function() {
$tabsEls.removeClass('selected');
$tabsEls.filter('[data-name="' + tabName + '"]').addClass('selected');
if ( touchSupported === false ){
$tabsAltEls.removeClass('active');
$tabsAltEls.filter('[data-name="' + tabName + '"]').addClass('active');
moreTabHelpers.shouldIHighlightMoreLabel($tabsAlt);
}
},
switchActiveContent = function() {
$contentList.height(
$activeContent.outerHeight()
);
$activeContent.css({
position: 'absolute'
});
$contentEls.removeClass('active');
setTimeout(function() {
$contentElToActivate.addClass('active');
$contentElToActivate.css({ position : 'static' });
$contentList.height('auto');
}, 350 );
};
if (tabName === undefined) {
return false;
}
$contentElToActivate = $contentEls.filter('[data-name="' + tabName + '"]');
switchActiveTab();
switchActiveContent();
},
isThereEnoughSpace = function($tabsWrapper, $tabs, $tabsEls) {
function disableTabsOverflow(){
$tabsEls.removeClass('hidden');
$tabsAltEls.removeClass('hidden');
$tabs.removeClass('not-enough-space');
}
if (touchSupported === false){
disableTabsOverflow();
}
var width = $tabsWrapper.width(),
tabsWidth = $tabs.width();
if (tabsWidth > width) {
return false;
} else {
return true;
}
},
determineAndSetLabelsType = function($el, $tabsWrapper, $tabs, $tabsEls) {
$windowWidth = $window.width();
var setLabelsType = function(type) {
if (type === 'short' || type === 'full') {
labelsType = type;
$el.removeClass('labels-type-short labels-type-full');
$el.addClass('labels-type-' + type);
}
};
if ($windowWidth > 599) {
setLabelsType('full');
} else {
setLabelsType('short');
}
if ( isThereEnoughSpace($tabsWrapper, $tabs, $tabsEls) === false ) {
setLabelsType('short');
}
},
reCalculateTabs = function($el, $tabsWrapper, $tabs, $tabsEls, $tabsAlt) {
$windowWidth = $window.width();
determineAndSetLabelsType($el, $tabsWrapper, $tabs, $tabsEls);
if (isThereEnoughSpace($tabsWrapper, $tabs, $tabsEls) === false) {
if (touchSupported === false) {
moreTabHelpers.overflowTabs($el, $tabs, $tabsEls, $tabsAlt);
moreTabHelpers.shouldIHighlightMoreLabel($tabsAlt);
}
}
},
handleDeepLink = function($el, $tabsEls, $tabsAlt, $contentList, $contentEls) {
var hashRaw = window.location.hash.slice(1),
hash = decodeURIComponent(hashRaw.replace(/"/g, '\\"')),
$tabToActivate = $tabsEls.filter('[data-name="' + hash + '"]').first();
if (hash) {
if ($tabToActivate.length > 0) {
changeTab($tabToActivate, $tabsEls, $tabsAlt, $contentList, $contentEls);
$el.trigger('tab-selected', $tabToActivate);
return true;
}
}
manageNullDeepLink($el, $tabsEls, $tabsAlt, $contentList, $contentEls);
},
manageNullDeepLink = function($el, $tabsEls, $tabsAlt, $contentList, $contentEls) {
var $appFlagDefaultToTab = $tabsEls.filter('[data-should-we-activate="true"]');
if ($appFlagDefaultToTab.size() === 1) {
changeTab($appFlagDefaultToTab, $tabsEls, $tabsAlt, $contentList, $contentEls);
} else {
$el.each(function(index) {
changeTab($tabsEls.first(), $tabsEls, $tabsAlt, $contentList, $contentEls);
});
}
},
/**
* Initialise the JavaScript for the multi tab
*
* @method init
*/
init = function() {
$selector.each(function(index) {
$el = $(this).attr('id', 'multi-tab' + index);
$tabsWrapper = $el.find('.tabs-wrapper');
$tabs = $tabsWrapper.find('ul.tabs');
$tabsEls = $tabs.find(' > li');
$tabsAlt = $tabs.find(' > li#second-tab');
$content = $el.find('> div.content');
$contentList = $content.find('> ul');
$contentEls = $content.find('li');
$theresMoreLeft = $el.find('.theres-more.left');
$theresMoreRight = $el.find('.theres-more.right');
$tabsSelectContainer = $el.find('.tabs-select-container');
$tabsSelect = $tabsSelectContainer.find('SELECT');
var isLastElementInParent = function($el) {
var lastOne = $el.parent('div').find(' > div:last');
if (lastOne && ( lastOne.attr('id') === $el.attr('id') ) ){
return true;
} else {
return false;
}
};
addIdsForElements($el, index);
removeIdsFromContentEls($contentEls);
if ( touchSupported === false ) {
moreTabHelpers.populateSecondDropdown($tabsEls, $tabsAlt);
}
if (isLastElementInParent($el)) {
$el.addClass('last-el-in-parent');
}
// do not run js for CQ author mode
if ($body.hasClass('cq-wcm-edit') || $body.hasClass('cq-wcm-design')) {
bindAuthorEvents($tabs);
return false;
}
reCalculateTabs($el, $tabsWrapper, $tabs, $tabsEls, $tabsAlt);
bindEvents($el, $tabsWrapper, $tabs, $tabsEls, $tabsAlt, $contentList, $contentEls, $tabsSelect, $theresMoreLeft, $theresMoreRight);
handleDeepLink($el, $tabsEls, $tabsAlt, $contentList, $contentEls);
});
};
$(document).ready(function() {
init();
});
return {
init: init,
reCalculateTabs: reCalculateTabs
};
})(jQuery);
var targetNodes = $(".video");
var MutationObserver = window.MutationObserver || window.WebKitMutationObserver;
var myObserver = new MutationObserver (mutationHandler);
var obsConfig = { childList: true, characterData: true, subtree: true };
//--- Add a target node to the observer. Can only add one node at a time.
targetNodes.each ( function () {
myObserver.observe (this, obsConfig);
} );
function mutationHandler (mutationRecords) {
mutationRecords.forEach ( function (mutation) {
if (typeof mutation.addedNodes == "object") {
$('iframe').each(function () {
$(this).css('height', $(this).attr('height'));
$(this).css('width', $(this).attr('width'));
});
}
} );
}
/**
* Once the DOM has loaded all the content it checks for legals and then removes the hidden js
*/
document.addEventListener('DOMContentLoaded', function() {
var legalStatementSection = document.getElementById('legal-statements'),
legalStatements = legalStatementSection !== null ? legalStatementSection.getElementsByClassName('global-legal-item') : [];
if(legalStatements.length > 0) {
legalStatementSection.className = legalStatementSection.className.replace('hidden', '');
}
$('a[href^="#ref"], [href^="#foot"]').on("click", function() {
const href = $(this).attr("href");
const $target = $(href);
let flag = false, headerHeight=0, headerHeight1;
if ($('HEADER').attr('style')) { // barclays.co.uk style header
headerHeight = parseInt($("HEADER").attr("style").split(": ")[1].split("px;")[0], 10);
headerHeight1 = headerHeight;
}
else {
flag = true; //set for barclaycard header
headerHeight = parseInt($("HEADER").height(), 10);
}
if (screen.width < 768 && flag === false) {
if (($(document).scrollTop() - $target.offset().top) < 0 ) { //up to down navigation
if ($('.segment.segment-transition').length > 0) {
headerHeight = $('.header-main').height() + $('.segment.segment-transition').height();
}
else {
headerHeight = $('.header-main').height();
}
}
else {
if ($('.segment.segment-transition').length > 0) {
headerHeight = $('.header-main').height();
}
else {
headerHeight = 0;
}
}
if (headerHeight1 == 90 ) { //additional header is added here
if ($('.segment.segment-transition').length > 0) {
headerHeight += $('.segment.segment-transition').height();
}
else {
headerHeight += 54;
}
}
}
if (href.indexOf("#") == 0) {
if ($target.length) {
$('html, body').animate({ scrollTop: $target.offset().top - headerHeight});
}
}
});
});
/**
* Created by g01633221 on 20/07/2017.
*/
$(function() {
'use strict';
//if filters panel is present, initialisate them
var filteredTables = $('.filtered-table .mortgage-filters');
if($('.filtered-table .mortgage-filters').length){
filteredTables.each(setTableFilters);
}
function setTableFilters() {
var filtersWrapper = $(this),
filteredTableWrapper = filtersWrapper.parent();
if(filtersWrapper.find('.mortgage-filter')){
//set and Id for the table
filteredTableWrapper.attr('id', 'filtered-table-'+Math.floor(Math.random()*(100)));
//Set number of results for first time
filtersWrapper.find('.filtering-results').text(filteredTableWrapper.find('table tbody tr').length);
filtersWrapper.find('input').attr('id', function() { return this.id + filteredTableWrapper.attr('id') });
filtersWrapper.find('label').attr('for', function() { return $(this).attr('for') + filteredTableWrapper.attr('id') });
filteredTableWrapper.find('.mortgage-filters-actions a.btn').click(function(e){
$(e.target).closest('.filtered-table').find('.mortgage-filters').toggleClass('filters-open');
$(e.currentTarget).toggleClass('filters-open');
});
filtersWrapper.find('.mortgageTerm-filter, .mortgageType-filter, .freeLegal-filter').on('change',function(e){
performFiltering($( this ).closest('.filtered-table').find('table'), $(e.currentTarget).parent());
});
}
}
function performFiltering(table,filtersTargeted){
var checkedOptions = filtersTargeted.find('input:checked').map(function(){return $(this).val();}).get();
if(checkedOptions.length>0){
table.find('tbody tr[data-content-tags]').each(function(){
var row = $(this);
if(findOneTag(checkedOptions,row.data('content-tags').split(';'))){
row.css('display', '');
}
else{
row.css('display', 'none');
}
});
}
else{
table.find('tbody tr').css('display', '');
}
table.parent().find('.filtering-results').text(table.find('tbody tr:visible').length);
setRowsBackground(table);
}
function setRowsBackground(table){
table.find('tbody tr:visible:odd').css('background-color','#FFF');
table.find('tbody tr:visible:even').css('background-color','#efefef');
}
function findOneTag (selectedFilters, tagsInElement) {
return tagsInElement.some(function (tag) {
return selectedFilters.indexOf(tag) >= 0;
});
}
function setRowHeading() {
$('.table.table-responsive tbody tr td:first-of-type').attr('scope','row');
}
setRowHeading();
// initiate RTE tables
function initRteTables() {
var minHeightMultiplier = 13.5;
$('TABLE:not([class])').each(function(){
// create array of TH values;
var thArray = [];
var thFontSize;
var thStringLength;
var thWidth;
var thPadding;
var tdMinHeight;
var headerValue;
$(this).find('TH').each(function(){
thArray.push([$(this).text(),$(this).text().length]);
});
// insert appropriate value in to TD as data-th attribute
$(this).find('TD').each(function() {
$(this).attr('data-th', thArray[$(this).index()][0]);
thStringLength = thArray[$(this).index()][1];
thFontSize = parseFloat(window.getComputedStyle(this, null).getPropertyValue('font-size'));
thWidth = parseFloat(window.getComputedStyle(this, ':before').width);
thPadding = 2 * parseFloat(window.getComputedStyle(this, null).getPropertyValue('padding-top'));
tdMinHeight = (thFontSize * (thStringLength / thWidth) * minHeightMultiplier) + thPadding + thFontSize;
$(this).css('min-height', tdMinHeight);
});
headerValue = $(this).find('TR TH').first().text();
$(this).find('tr:not(:first-child) th:first-child').each(function() {
$(this).attr('data-content', headerValue);
});
});
}
initRteTables();
});
var barclays = barclays || {};
barclays.componentlibrary = barclays.componentlibrary || {};
/**
* Format contact card information and show in tooltip added to phone number in RTE
* Also splitting the paragraph containing the tooltip
*/
barclays.componentlibrary.telDetails = (function () {
'use strict';
var init = function () {
$('.phoneref + .phone-ref-tooltip').on('click', function () {
// resize page with tooltip in iframe on preview
var cq = $('cq').length;
if (cq > 0) {
$(window.document).find('html').css('overflow','auto');
}
// If it does not already exist create container div for this
// tooltip-esque content just after the paragraph that contains this number
var path = $(this).data('path');
if ($(this).parent().next().data('path') !== path) {
var phoneTooltip = $('
')
.attr({
'data-path': path,
'class': 'phone-ref-tooltip-container hidden info notification',
'role': 'alert'
})
.append(
$('
')
.attr({
'class': 'tooltip-heading h4'
})
)
.append(
$('
')
.attr({
'class': 'row'
})
.append(
$('
')
.attr({
'class': 'col-xs-12 col-sm-3 phoneNo'
})
)
.append(
$('
')
.attr({
'class': 'col-xs-12 col-sm-9'
})
.append(
$('
')
.attr({
'class': 'row'
})
.append(
$('
')
.attr({
'class': 'col-xs-12 col-sm-6'
})
.append(
$('
')
.append(
$(' ')
.text('Opening hours:')
)
)
.append(
$('
')
.attr({
'class': 'phoneHours'
})
)
)
.append(
$('
')
.attr({
'class': 'col-xs-12 col-sm-6 phoneMessage'
})
)
)
)
);
$(this).parent().after(phoneTooltip);
getContent(path);
}
// toggle hide/unhide tooltip
var $tooltipDiv = $(this).parent().next('DIV[data-path="' + path + '"]');
if ($tooltipDiv.hasClass('hidden')) {
$tooltipDiv.removeClass('hidden');
$(this).attr('aria-pressed', 'true');
} else {
$tooltipDiv.addClass('hidden');
$(this).attr('aria-pressed', 'false');
}
});
};
var getContent = function (dataPath) {
var results = eval(dataPath);
$('DIV[data-path="' + dataPath + '"] .tooltip-heading.h4').text(results.name);
var phoneDetails = "";
if ($.isArray(results.phonenumbers)) {
for (var i = 0; i < results.phonenumbers.length; i++) {
phoneDetails += "" + results.phonenumbers[i].label + ": " + results.phonenumbers[i].number + "
";
}
} else {
phoneDetails += "" + results.phonenumbers.label + ": " + results.phonenumbers.number + "
";
}
$('DIV[data-path="' + dataPath + '"] .phoneNo').html(phoneDetails);
$('DIV[data-path="' + dataPath + '"] .phoneHours').html(results.openingHoursParsed);
$('DIV[data-path="' + dataPath + '"] .phoneMessage').text(results.customMessage);
return results;
};
return {
init: init
};
})(jQuery);
barclays.componentlibrary.telDetails.init();
var barclays = barclays || {};
barclays.componentlibrary = barclays.componentlibrary || {};
/**
* Format contact card information and show in tooltip added to handoff card in RTE
* Also splitting the paragraph containing the tooltip
*/
barclays.componentlibrary.handoffDetails = (function () {
'use strict';
var init = function () {
$('.handoff-ref-tooltip').on('click', function () {
// resize page with tooltip in iframe on preview
var cq = $('cq').length;
if (cq > 0) {
$(window.document).find('html').css('overflow','auto');
}
// If it does not already exist create container div for this
// tooltip-esque content just after the paragraph that contains this number
var path = $(this).data('path');
if ($(this).parent().next().data('path') !== path) {
var handoffTooltip = $('
')
.attr({
'data-path': path,
'class': 'handoff-ref-tooltip-container hidden info notification',
'role': 'alert'
})
.append(
$('
')
.attr({
'class': 'tooltip-heading h4'
})
)
.append(
$('
')
.attr({
'class': 'row'
})
.append(
$('
')
.attr({
'class': 'col-xs-12 col-sm-6'
})
.append(
$('
')
.append(
$(' ')
.text('Opening hours:')
)
)
.append(
$('
')
.attr({
'class': 'handoffHours'
})
)
)
.append(
$('
')
.attr({
'class': 'col-xs-12 col-sm-6 handoffMessage'
})
)
);
$(this).parent().after(handoffTooltip);
getContent(path);
}
// toggle hide/unhide tooltip
if ($('DIV[data-path="' + path + '"]').hasClass('hidden')) {
$('DIV[data-path="' + path + '"]').removeClass('hidden');
$(this).attr('aria-pressed', 'true');
} else {
$('DIV[data-path="' + path + '"]').addClass('hidden');
$(this).attr('aria-pressed', 'false');
}
});
};
var getContent = function (dataPath) {
var results = eval(dataPath);
$('DIV[data-path="' + dataPath + '"] .tooltip-heading.h4').text(results.teamName);
$('DIV[data-path="' + dataPath + '"] .handoffHours').html(results.openingHoursParsed);
$('DIV[data-path="' + dataPath + '"] .handoffMessage').text(results.customMessage);
return results;
};
return {
init: init
};
})(jQuery);
barclays.componentlibrary.handoffDetails.init();
var barclays = barclays || {};
barclays.componentlibrary = barclays.componentlibrary || {};
/**
* Format contact card information and show in tooltip added to webchat card in RTE
* Also splitting the paragraph containing the tooltip
*/
barclays.componentlibrary.webchatDetails = (function () {
'use strict';
var init = function () {
$('.webchat-ref-tooltip').on('click', function () {
// resize page with tooltip in iframe on preview
var cq = $('cq').length;
if (cq > 0) {
$(window.document).find('html').css('overflow','auto');
}
// If it does not already exist create container div for this
// tooltip-esque content just after the paragraph that contains this number
var path = $(this).data('path');
if ($(this).parent().next().data('path') !== path) {
var webchatTooltip = $('
')
.attr({
'data-path': path,
'class': 'webchat-ref-tooltip-container hidden info notification',
'role': 'alert'
})
.append(
$('
')
.attr({
'class': 'tooltip-heading h4'
})
)
.append(
$('
')
.attr({
'class': 'row'
})
.append(
$('
')
.attr({
'class': 'col-xs-12'
})
.append(
$('
')
.append(
$(' ')
.text('Opening hours:')
)
)
.append(
$('
')
.attr({
'class': 'webchatHours'
})
)
)
);
$(this).parent().after(webchatTooltip);
getContent(path);
}
// toggle hide/unhide tooltip
if ($('DIV[data-path="' + path + '"]').hasClass('hidden')) {
$('DIV[data-path="' + path + '"]').removeClass('hidden');
$(this).attr('aria-pressed', 'true');
} else {
$('DIV[data-path="' + path + '"]').addClass('hidden');
$(this).attr('aria-pressed', 'false');
}
});
};
var getContent = function (dataPath) {
var results = eval(dataPath);
$('DIV[data-path="' + dataPath + '"] .webchatHours').html(results.openingHoursParsed);
return results;
};
return {
init: init
};
})(jQuery);
barclays.componentlibrary.webchatDetails.init();
var barclays = barclays || {};
barclays.componentlibrary = barclays.componentlibrary || {};
/**
* Format contact card information and show in tooltip added to post card in RTE
* Also splitting the paragraph containing the tooltip
*/
barclays.componentlibrary.postDetails = (function () {
'use strict';
var init = function () {
$('.post-ref-tooltip').on('click', function () {
// resize page with accordion in iframe on preview
var cq = $('cq').length;
if (cq > 0) {
$(window.document).find('html').css('overflow','auto');
}
// If it does not already exist create container div for this
// tooltip-esque content just after the paragraph that contains this number
var path = $(this).data('path');
if ($(this).parent().next().data('path') !== path) {
var postTooltip = $('
')
.attr({
'data-path': path,
'class': 'post-ref-tooltip-container hidden info notification',
'role': 'alert'
})
.append(
$('
')
.attr({
'class': 'tooltip-heading h4'
})
)
.append(
$('
')
.attr({
'class': 'row'
})
.append(
$('
')
.attr({
'class': 'col-xs-12 col-sm-4'
})
.append(
$('
')
.append(
$(' ')
.text('Address:')
)
)
.append(
$('
')
.attr({
'class': 'recipient'
})
)
.append(
$('
')
.attr({
'class': 'buildingNum'
})
)
.append(
$('
')
.attr({
'class': 'address1'
})
)
.append(
$('
')
.attr({
'class': 'address2'
})
)
.append(
$('
')
.attr({
'class': 'city'
})
)
.append(
$('
')
.attr({
'class': 'county'
})
)
.append(
$('
')
.attr({
'class': 'postcode'
})
)
.append(
$('
')
.attr({
'class': 'country'
})
)
)
.append(
$('
')
.attr({
'class': 'col-xs-12 col-sm-8'
})
.append(
$('
')
.append(
$(' ')
.text('Opening hours:')
)
)
.append(
$('
')
.attr({
'class': 'postHours'
})
)
)
.append(
$('
')
.attr({
'class': 'col-xs-12 col-sm-6 postMessage'
})
)
);
$(this).parent().after(postTooltip);
getContent(path);
}
// toggle hide/unhide tooltip
if ($('DIV[data-path="' + path + '"]').hasClass('hidden')) {
$('DIV[data-path="' + path + '"]').removeClass('hidden');
$(this).attr('aria-pressed', 'true');
} else {
$('DIV[data-path="' + path + '"]').addClass('hidden');
$(this).attr('aria-pressed', 'false');
}
});
};
var getContent = function (dataPath) {
var results = eval(dataPath);
$('DIV[data-path="' + dataPath + '"] .tooltip-heading.h4').text(results.teamName);
$('DIV[data-path="' + dataPath + '"] .recipient').text(results.recipient);
$('DIV[data-path="' + dataPath + '"] .buildingNum').text(results.buildingNum);
$('DIV[data-path="' + dataPath + '"] .address1').text(results.address1);
$('DIV[data-path="' + dataPath + '"] .address2').text(results.address2);
$('DIV[data-path="' + dataPath + '"] .city').text(results.city);
$('DIV[data-path="' + dataPath + '"] .postcode').text(results.postcode);
$('DIV[data-path="' + dataPath + '"] .country').text(results.country);
$('DIV[data-path="' + dataPath + '"] .postMessage').text(results.customMessage);
$('DIV[data-path="' + dataPath + '"] .postHours').html(results.openingHoursParsed);
return results;
};
return {
init: init
};
})(jQuery);
barclays.componentlibrary.postDetails.init();
var barclays = barclays || {};
barclays.componentlibrary = barclays.componentlibrary || {};
/**
* Format contact card information and show in tooltip added to webchat card in RTE
* Also splitting the paragraph containing the tooltip
*/
barclays.componentlibrary.mysiteDetails = (function () {
'use strict';
var init = function () {
$('.mysite-ref-tooltip').on('click', function () {
// If it does not already exist create container div for this
// tooltip-esque content just after the paragraph that contains this number
var path = $(this).data('path');
if ($(this).parent().next().data('path') !== path) {
var mysiteTooltip = $('
')
.attr({
'data-path': path,
'class': 'mysite-ref-tooltip-container hidden info notification',
'role': 'alert'
})
.append(
$('
')
.attr({
'class': 'tooltip-heading h4'
})
)
.append(
$('
')
.attr({
'class': 'row'
})
.append(
$('
')
.attr({
'class': 'col-xs-12'
})
.append(
$('
')
.append(
$(' ')
.text('Opening hours:')
)
)
.append(
$('
')
.attr({
'class': 'mysiteHours'
})
)
)
);
$(this).parent().after(mysiteTooltip);
getContent(path);
}
// toggle hide/unhide tooltip
if ($('DIV[data-path="' + path + '"]').hasClass('hidden')) {
$('DIV[data-path="' + path + '"]').removeClass('hidden');
$(this).attr('aria-pressed', 'true');
} else {
$('DIV[data-path="' + path + '"]').addClass('hidden');
$(this).attr('aria-pressed', 'false');
}
});
};
var getContent = function (dataPath) {
var results = eval(dataPath);
$('DIV[data-path="' + dataPath + '"] .mysiteHours').html(results.openingHoursParsed);
return results;
};
return {
init: init
};
})(jQuery);
barclays.componentlibrary.mysiteDetails.init();
var barclays = barclays || {};
barclays.componentlibrary = barclays.componentlibrary || {};
/**
* Format contact card information and show in tooltip added to post card in RTE
* Also splitting the paragraph containing the tooltip
*/
barclays.componentlibrary.emailDetails = (function () {
'use strict';
var init = function () {
$('.email-ref-tooltip').on('click', function () {
// resize page with accordion in iframe on preview
var cq = $('cq').length;
if (cq > 0) {
$(window.document).find('html').css('overflow','auto');
}
// If it does not already exist create container div for this
// tooltip-esque content just after the paragraph that contains this number
var path = $(this).data('path');
if ($(this).parent().next().data('path') !== path) {
var emailTooltip = $('
')
.attr({
'data-path': path,
'class': 'email-ref-tooltip-container hidden info notification',
'role': 'alert'
})
.append(
$('
')
.attr({
'class': 'tooltip-heading h4'
})
)
.append(
$('
')
.attr({
'class': 'row'
})
.append(
$('
')
.attr({
'class': 'col-xs-12 col-sm-4'
})
.append(
$('
')
.append(
$(' ')
.text('Email Method:')
)
)
.append(
$('
')
.attr({
'class': 'method'
})
)
.append(
$('
')
.append(
$(' ')
.text('Link target:')
)
)
.append(
$('
')
.attr({
'class': 'formUrl'
})
)
.append(
$('
')
.append(
$(' ')
.text('Email address:')
)
)
.append(
$('
')
.attr({
'class': 'emailAddress'
})
)
)
.append(
$('
')
.attr({
'class': 'col-xs-12 col-sm-8'
})
.append(
$('
')
.append(
$(' ')
.text('Opening hours:')
)
)
.append(
$('
')
.attr({
'class': 'emailHours'
})
)
)
.append(
$('
')
.attr({
'class': 'col-xs-12 col-sm-6 emailMessage'
})
)
);
$(this).parent().after(emailTooltip);
getContent(path);
}
// toggle hide/unhide tooltip
if ($('DIV[data-path="' + path + '"]').hasClass('hidden')) {
$('DIV[data-path="' + path + '"]').removeClass('hidden');
$(this).attr('aria-pressed', 'true');
} else {
$('DIV[data-path="' + path + '"]').addClass('hidden');
$(this).attr('aria-pressed', 'false');
}
});
};
var getContent = function (dataPath) {
var results = eval(dataPath);
var method;
switch (results.method) {
case "auth":
method = "Authenticated form";
break;
case "non-auth":
method = "Non-Authenticated form";
break;
case "email":
method = "Email";
break;
}
if (typeof results["cta"] !== 'undefined') {
$('DIV[data-path="' + dataPath + '"] .formUrl').text(results["cta"].url);
}
if (results.emailAddress !== null){
$('DIV[data-path="' + dataPath + '"] .emailAddress').text(results.emailAddress);
}
if (method !== null) {
$('DIV[data-path="' + dataPath + '"] .method').text(method);
}
$('DIV[data-path="' + dataPath + '"] .emailMessage').text(results.customMessage);
$('DIV[data-path="' + dataPath + '"] .emailHours').html(results.openingHoursParsed);
return results;
};
return {
init: init
};
})(jQuery);
barclays.componentlibrary.emailDetails.init();
$(function() {
'use strict';
var ibanNumber,
openApi = '/services/openbanking/v1.0/iban';
function formatIBAN(num) {
var iban = num,
iban1 = iban.substr(0, 4),
iban2 = iban.substr(4, 4),
iban3 = iban.substr(8);
return iban1 + ' ' + iban2 + ' ' + iban3;
}
function getIBAN(t, r) {
$.ajax({
type: 'GET',
dataType: 'json',
url: openApi + '?sortcode=' + t + '&accountnumber=' + r
})
.done(function (data) {
ibanNumber = data.IBAN;
if (ibanNumber) {
$('.iban-message').removeClass('iban-message-show');
$('.iban-tool-number').addClass('iban-message-show');
$('.iban-number').text(formatIBAN(ibanNumber));
$('.main').removeClass('view-loading-image');
} else {
$('.iban-number').text('');
$('.iban-tool-number').removeClass('iban-message-show');
$('.iban-tool-error-message').addClass('iban-message-show');
$('.main').removeClass('view-loading-image');
}
})
.fail(function (jqXHR, textStatus, errorThrown) {
$('.iban-tool-number').removeClass('iban-message-show');
$('.iban-tool-error-message').addClass('iban-message-show');
$('.main').removeClass('view-loading-image');
});
}
function limitChars(inputObj){
var t = document.getElementById(inputObj.attr('id')),
r = $(t).val(),
e = /\d$/,
n = parseInt(inputObj.attr('maxlength'));
t.value.match(e) || (t.value = t.value.replace(t.value.slice(-1), ''));
if(r.length > n){ $(t).val(r.slice(0, n)); }
checkInputs();
}
function checkInputs() {
var checkTotal = 0,
inputTotal = 0;
$.each($('.validateNoOfDigits'), function () {
checkTotal += parseInt($(this).attr('maxlength'));
inputTotal += parseInt($(this).val().length);
});
if(checkTotal <= inputTotal) {
toggleSubmit('on');
} else {
toggleSubmit('off');
}
}
function toggleSubmit(state) {
if(state === 'on'){
$('#btnSubmit').addClass('btn-primary').removeClass('btn-disabled');
$('#btnSubmit').removeAttr('disabled');
} else {
$('#btnSubmit').removeClass('btn-primary').addClass('btn-disabled');
$('#btnSubmit').attr('disabled', 'disabled');
}
}
// Submit function below
$('.validateNoOfDigits').on('keyup', function() {
limitChars($(this));
}), $('.iban-submit').on('click', function(t) {
t.preventDefault();
// Show preloader image
$('.main').addClass('view-loading-image');
var r = document.getElementById('txtSortCode1').value,
e = document.getElementById('txtSortCode2').value,
n = document.getElementById('txtSortCode3').value,
a = r + e + n,
u = document.getElementById('txtAccountNumber').value;
$('.iban-number').text(getIBAN(a, u))
}), $('#btnReset').on('click', function() {
$.each($('.validateNoOfDigits'), function () {
$(this).val('');
toggleSubmit('off');
});
$('.iban-message').removeClass('iban-message-show');
});
});
// Create a closure to maintain scope of the '$' and barclays
(function (barclays, $, window, document, undefined) {
barclays.componentlibrary = barclays.componentlibrary || {};
barclays.componentlibrary.Modal = {
bindEvents: function () {
var tabFocus = '[data-component-type="Modal"] A, [data-component-type="Modal"] BUTTON';
$(document).on('click', '.close-modal-button', function (e) {
e.preventDefault();
barclays.componentlibrary.Modal.hide();
});
$('BODY').on('keydown', tabFocus, function (e) {
if (e.keyCode === 9) {
barclays.componentlibrary.Modal.trapFocus(e);
}
});
//Esc pressed
$('BODY').on('keyup', '[data-component-type="Modal"].modal-show', function(e){
if (e.keyCode === 27){
if ($('[data-modal-dismiss]').length > 0){
$('[data-modal-dismiss]')[0].click();
} else {
barclays.componentlibrary.Modal.hide();
}
}
});
},
show: function () {
var $modalComponent = $('[data-component-type="Modal"]');
if ($modalComponent.length) {
$modalComponent.addClass('modal-show').focus();
$modalComponent
.find('.modal-content')
.addClass('modal-content-animation')
.attr('aria-hidden', 'false');
}
},
hide: function () {
$(".modal-show")
.find('.modal-content')
.removeClass('modal-content-animation')
.attr('aria-hidden', 'true');
$(".modal-show").removeClass("modal-show");
barclays.componentlibrary.Modal.returnFocus();
},
remove: function () {
$(".modal-show").remove();
barclays.componentlibrary.Modal.returnFocus();
},
returnFocus: function () {
$('BODY').focus();
},
trapFocus: function (e) {
event.preventDefault();
var focusedItem = $(':focus'),
tabbableItems = $('[data-component-type="Modal"] A, [data-component-type="Modal"] BUTTON'),
noOFTabbable = tabbableItems.length,
indexofCurrent = tabbableItems.index(focusedItem);
if (e.shiftKey) { // backward tabbing. From first tabbable element, go to the last.
if (indexofCurrent === 0) {
tabbableItems.eq(noOFTabbable - 1).focus();
} else {
tabbableItems.eq(indexofCurrent - 1).focus();
}
} else { // forward tabbing. From last tabbable item, go back to the first.
if (indexofCurrent === noOFTabbable - 1) {
tabbableItems.eq(0).focus();
} else {
tabbableItems.eq(indexofCurrent + 1).focus();
}
}
}
};
$(function () {
barclays.componentlibrary.Modal.bindEvents();
barclays.componentlibrary.Modal.show();
});
})(window.barclays = window.barclays || {}, jQuery, window, document);
var barclays = barclays || {};
barclays.componentlibrary = barclays.componentlibrary || {};
/**
* Dynamic article component
*/
barclays.componentlibrary.articles = (function () {
'use strict';
var $el,
jsonUrl = '/articles.json',
pathname = window.location.pathname,
jsonUrlBackUp = pathname.split('/en/')[0] + '/en/jcr:content.articles.json',
jsonData,
offsetData,
mainComponentFullClass = '.DynamicArticle',
filterFullClass = '.DynamicArticle-filter',
layoutToggleFullClass = '.DynamicArticle-layout',
articlesDivFullClass = '.DynamicArticle-articles',
articlesFullClass = '.DynamicArticle-item',
categoryFullClass = '.DynamicArticle-category',
dateFullClass = '.DynamicArticle-date',
moreArticlesFullClass = '.DynamicArticle-moreArticles',
layoutListClass = "DynamicArticle--list",
layoutListFullClass = '.' + layoutListClass,
layoutFeatureClass = "DynamicArticle--feature",
activeClass = 'active',
tileStatus = 'tile',
listStatus = 'list',
featureStatus = 'feature',
trueStatus = true,
tileImgPath = '/etc/designs/componentlibrary/images/layout-list.svg',
listImgPath = '/etc/designs/componentlibrary/images/layout-tile.svg',
tileImgAlt = 'Change view to tile - Current layout list',
listImgAlt = 'Change view to list - Current layout tile',
defaultLayout,
defaultNum,
category,
layoutToggleSwitch,
moreArticlesSwitch,
categoryTitleSwitch,
categoryFilter,
creationDateSwitch,
resultsSorted = false;
var setIcon = function(type, $el) {
var imgPath = (type === listStatus) ? listImgPath : (type === tileStatus) ? tileImgPath : null;
var imgAlt = (type === listStatus) ? tileImgAlt : (type === tileStatus) ? listImgAlt : null;
if (imgPath && imgAlt) {
$el.find(layoutToggleFullClass + ' img').attr('src', imgPath).attr('alt', imgAlt);
}
};
/**
* To remove current page article from array
* @param data array or articles
* @returns {*} array of articles after removed current page article
*/
var removeCurrentPageArticle = function (data) {
var articlesData = data.articles;
var { pathname, origin } = window.location;
var checkUrl = pathname.search(".html") > 0 ? pathname : `${origin}${pathname}`;
articlesData = articlesData.filter( function (obj) {
return obj.url !== checkUrl;
});
return articlesData;
};
var renderArticles = function (data, $el) {
var articleData = removeCurrentPageArticle(data),
totalResultsData = articleData.length,
value = [],
filterCategory = $el.data('category-filter-value') || $el.data('category'),
filterCategories = null;
offsetData = $el.data('offset');
var articleDescription = $el.data('default-description');
var hideArticleDescription = $el.data('default-hide-description');
var disableLazyLoading = $el.data('lazy-loading-disabled');
if (filterCategory !== undefined) {
filterCategories = filterCategory.split(',');
}
//clear articles
$el.find(articlesDivFullClass).empty();
var i = 0,
matchedArticles = 0,
articleItemHtml,
articleCategoryInFilterCategory;
var checkNeedleInHaystack = function (haystack, needle) {
return needle.some(function (v) {
return haystack.indexOf(v) >= 0;
});
};
while (matchedArticles < offsetData && i < articleData.length) {
value = articleData[i];
if (value.category !== undefined && filterCategories !== null) {
articleCategoryInFilterCategory = checkNeedleInHaystack(value.category, filterCategories);
} else if (value.category === undefined && filterCategories !== null) {
articleCategoryInFilterCategory = false;
} else {
articleCategoryInFilterCategory = true;
}
if (value !== undefined && articleCategoryInFilterCategory) {
value.articleDateTime = value.articleDateTime || '';
articleItemHtml =
'' +
'';
var isLazy = value.image != null && !disableLazyLoading;
var lastIndex = value.image.lastIndexOf('.');
var imageRendition = value.image.substr(0, lastIndex) + '.xsmall.medium.quality' + value.image.substr(lastIndex);
var lazyClass = isLazy?"lazy":"";
var srcAttribute= isLazy?"data-src":"src";
articleItemHtml += '';
articleItemHtml += '' +
(value.category && value.category[0] ? '
' + value.category[0] + ' ' : '') +
'
' + value.title + ' ' +
'
' + value.articleDateTime + '
';
if (!hideArticleDescription) {
articleItemHtml += '
' + (articleDescription === 'HeroShort' ? value.shortDescription : value.description) + '
';
}
articleItemHtml += '
' +
' ' +
' ';
//img src is empty
if (value.image === '') {
articleItemHtml = articleItemHtml.replace('DynamicArticle-itemImage active', 'DynamicArticle-itemImage');
}
// Remove Date if empty
articleItemHtml = articleItemHtml.replace('
', '');
//add articles
$el.find(articlesDivFullClass).append(articleItemHtml);
// increment matchedArticles
matchedArticles += 1;
}
i += 1;
}
//more articles off
if (i >= totalResultsData) {
$el.find(moreArticlesFullClass).removeClass(activeClass);
}
var myLazyLoad = new LazyLoad({
elements_selector: ".lazy"
});
};
var layoutToggle = function ($el) {
switch ($el.data("default-layout")) {
case listStatus:
$el.find(articlesFullClass).removeClass(layoutListClass);
setIcon(tileStatus, $el);
$el.data('default-layout', tileStatus);
break;
case tileStatus:
$el.find(articlesFullClass).addClass(layoutListClass);
setIcon(listStatus, $el);
$el.data('default-layout', listStatus);
break;
default:
break;
}
};
var sortDateByReverseArticleDateTime = function (a, b) {
if (typeof b.articleDateTime === "undefined" || b.articleDateTime === '') {
return -1;
}
else if (typeof a.articleDateTime === "undefined" || a.articleDateTime === '') {
return 1;
}
return new Date(b.articleDateTime) - new Date(a.articleDateTime);
};
var doSearchSuccess = function (data) {
if (data !== undefined) {
jsonData = data;
}
if (!resultsSorted) {
jsonData.articles.sort(sortDateByReverseArticleDateTime);
resultsSorted = true;
}
$(mainComponentFullClass).each(function () {
$el = $(this);
defaultLayout = $el.data('default-layout');
layoutToggleSwitch = $el.data('toggle-layout');
moreArticlesSwitch = $el.data('more-articles');
categoryTitleSwitch = $el.data('category-title');
categoryFilter = $el.data('category-filter');
creationDateSwitch = $el.data('creation-date');
$el.addClass(activeClass);
//config component
if ((defaultLayout === featureStatus && categoryFilter === trueStatus) || layoutToggleSwitch === trueStatus) {
$el.find(filterFullClass).addClass(activeClass);
$el.find(layoutToggleFullClass).addClass(activeClass);
} else {
$el.find(filterFullClass).removeClass(activeClass);
$el.find(layoutToggleFullClass).removeClass(activeClass);
}
if (moreArticlesSwitch === trueStatus) {
$el.find(moreArticlesFullClass).addClass(activeClass);
} else {
$el.find(moreArticlesFullClass).removeClass(activeClass);
}
//render articles
renderArticles(jsonData, $el);
if (defaultLayout === tileStatus) {
$el.find(articlesFullClass).removeClass(layoutListClass);
$el.find(articlesFullClass).removeClass(layoutFeatureClass);
setIcon(tileStatus, $el);
} else if (defaultLayout === featureStatus) {
$el.find(articlesFullClass).removeClass(layoutListClass);
$el.find(articlesFullClass).addClass(layoutFeatureClass);
} else {
$el.find(articlesFullClass).removeClass(layoutFeatureClass);
$el.find(articlesFullClass).addClass(layoutListClass);
setIcon(listStatus, $el);
}
if (categoryTitleSwitch === trueStatus) {
$el.find(categoryFullClass).addClass(activeClass);
} else {
$el.find(categoryFullClass).removeClass(activeClass);
}
if (creationDateSwitch === trueStatus) {
$el.find(dateFullClass).addClass(activeClass);
} else {
$el.find(dateFullClass).removeClass(activeClass);
}
});
};
var doSearchFail = function () {
$(mainComponentFullClass).removeClass(activeClass);
};
var getData = function (categoryData, defaultNumData, offsetJsonData, $el) {
offsetData = parseInt(offsetJsonData) + parseInt(defaultNumData);
$el.data('offset', offsetData);
$.ajax({
url: jsonUrl,
dataType: 'json',
context: document.body
}).done(doSearchSuccess).fail(doSearchFail);
};
var showMoreStories = function ($el) {
defaultNum = $el.data('default-number');
category = $el.data('category-filter-value') || $el.data('category');
offsetData = $el.data('offset');
offsetData = parseInt(offsetData) + parseInt(defaultNum);
$el.data('offset', offsetData);
doSearchSuccess();
};
var applyFilter = function (parentWrapper, filterText) {
if (filterText === "all") {
parentWrapper.removeAttr('data-category-filter-value').removeData('categoryFilterValue');
} else {
parentWrapper.attr('data-category-filter-value', filterText).data('categoryFilterValue', filterText);
}
$el.data('offset', 6);
showMoreStories(parentWrapper);
};
var init = function () {
// Check JSON source and fallback to backup if required
$.ajax({
url: jsonUrl,
dataType: 'json',
context: document.body,
async: false
}).fail(function () {
jsonUrl = jsonUrlBackUp;
});
$(mainComponentFullClass).each(function (index) {
$el = $(this);
$el.attr('id', 'dynamic-article' + index);
defaultNum = $el.data('default-number');
category = $el.data('category');
var offset = $el.data('offset'),
featureOffset = 0;
if ($el.data('default-layout') === 'feature') {
featureOffset = 6;
}
getData(category, defaultNum, offset + featureOffset, $el);
});
// Layout toggle
$(document).on('click', layoutToggleFullClass, function (e) {
layoutToggle($(this).closest(mainComponentFullClass));
});
$(document).on('keypress', layoutToggleFullClass, function (e) {
if (e.which === 13 || e.which === 32) {
e.preventDefault();
layoutToggle($(this).closest(mainComponentFullClass));
}
});
// More Stories
$(document).on('click', moreArticlesFullClass, function (e) {
e.preventDefault();
showMoreStories($(this).closest(mainComponentFullClass));
});
// Apply/Change filter
$('.category-wrapper > LI > A').on('click', function (e) {
e.preventDefault();
var parentWrapper = $(this).closest(mainComponentFullClass),
filterText = $(this).data('filter-value');
$('.category-wrapper > LI > A').removeClass('active');
$(this).addClass('active');
applyFilter(parentWrapper,filterText);
});
$('.category-select-wrapper SELECT').on('change', function () {
var parentWrapper = $(this).closest(mainComponentFullClass),
filterText = this.value;
applyFilter(parentWrapper,filterText);
});
$(document).on('keypress', moreArticlesFullClass, function (e) {
if (e.which === 13 || e.which === 32) {
e.preventDefault();
showMoreStories($(this).closest(mainComponentFullClass));
}
});
};
return {
init: init
};
})(jQuery);
if ($('[data-component-type="DynamicArticle"]').length > 0){
barclays.componentlibrary.articles.init();
}
var barclays = barclays || {};
barclays.componentlibrary = barclays.componentlibrary || {};
barclays.componentlibrary.featureWrapper = (function () {
'use strict';
var init = function () {
$("DIV[data-component-type='FeatureWrapper'] .same-height .promo-content").css("height", "auto");
$("DIV[data-component-type='FeatureWrapper'] .same-height").each(function(){
var containerHeight = $(this).outerHeight();
var mediaHeight = $(this).find(".promo-media").outerHeight();
$(this).find('.promo-content').css("height", containerHeight - mediaHeight);
});
};
return {
init: init
};
})(jQuery);
barclays.componentlibrary.featureWrapper.init();
$(window).resize(function(){
barclays.componentlibrary.featureWrapper.init();
});
var barclays = barclays || {};
barclays.componentlibrary = barclays.componentlibrary || {};
/**
* Adding Share Price feed functionality
*/
barclays.componentlibrary.sharePriceFeed = (function () {
'use strict';
var headerShowNamedElement = function (name) {
$(".global-header #share-name,.global-header #share-value,.global-header #share-change").removeClass("active");
$(".global-header " + name).addClass("active");
};
var headerIncrementIndex = function (index) {
index = index + 1;
if (index > 2) {
index = 0;
}
return index;
};
var headerStartSharePriceAnimation = function () {
var elements = ["#share-name", "#share-value", "#share-change"];
var index = 0;
setInterval(function () {
index = headerIncrementIndex(index);
headerShowNamedElement(elements[index]);
}, 4000);
};
var handleSharePriceCardError = function ($this) {
$this.find('.sp-price').html('Sorry');
$this.find('.sp-date-time').html('Share price feed is not currently available');
$this.find('.sp-caveat').html('Please try again later');
};
var entityMap = {
'&': '&',
'<': '<',
'>': '>',
'"': '"',
"'": ''',
'/': '/',
'`': '`',
'=': '='
};
var escapeHtml = function (string) {
return String(string).replace(/[&<>"'`=\/]/g, function (s) {
return entityMap[s];
});
};
var escapeHtmlExceptSlash = function (string) {
return String(string).replace(/[&<>"'`=]/g, function (s) {
return entityMap[s];
});
};
var headerFeedInit = function () {
if (typeof barclays.componentlibrary.sharePriceFeedHeader !== 'undefined') {
$.ajax({
url: barclays.componentlibrary.sharePriceFeedHeader.feedLocation,
contentType: 'application/xml; charset=UTF-8',
dataType: 'json',
timeout: 100000,
success: function (data) {
if (typeof data.shares !== "undefined" && typeof data.shares.sharepricedetails !== 'undefined') {
var sharepricedetails = data.shares.sharepricedetails,
arrowClass = '',
linkDestination = barclays.componentlibrary.sharePriceFeedHeader.linkDestination || '',
linkTitle = barclays.componentlibrary.sharePriceFeedHeader.linkTitle || '',
sharepriceName = barclays.componentlibrary.sharePriceFeedHeader.title || sharepricedetails.Ric,
sharepriceElement,
sharepriceElementLiWrapper;
linkDestination = escapeHtmlExceptSlash(linkDestination);
linkTitle = escapeHtml(linkTitle);
sharepriceName = escapeHtml(sharepriceName);
if (sharepricedetails.Change > 0) {
arrowClass = 'increase';
} else if (sharepricedetails.Change < 0) {
arrowClass = 'decrease';
}
sharepriceElement = '' + sharepriceName + ' ' +
'' + escapeHtml(sharepricedetails.CurrentPrice) + ' ' +
'' + escapeHtml(sharepricedetails.Change) + ' ';
if (linkDestination !== '') {
sharepriceElement = '' + sharepriceElement + ' ';
}
sharepriceElementLiWrapper = '' + sharepriceElement + ' ';
$('.global-header .utilities > UL > LI[data-component-type="SharePriceFeed"]').remove();
$('.global-header .utilities > UL > LI:last-child').before(sharepriceElementLiWrapper);
if ($('.global-header').hasClass('mobile')) {
headerStartSharePriceAnimation();
}
}
},
error: function (xhr, status, error) {
}
});
}
};
var cardFeedInit = function () {
$('.share-price-card').each(function () {
var $this = $(this);
$.ajax({
url: $(this).data("feedLocation"),
contentType: 'application/xml; charset=UTF-8',
dataType: 'json',
timeout: 100000,
success: function (data) {
if (typeof data.shares !== "undefined" && typeof data.shares.sharepricedetails !== "undefined") {
var sharepricedetails = data.shares.sharepricedetails,
arrowClass = '',
sharePriceElement,
dateTime,
longDate = moment(sharepricedetails.Date, "DD/MM/YYYY").format('D MMM YYYY');
if (sharepricedetails.Change > 0) {
arrowClass = 'increase';
} else if (sharepricedetails.Change < 0) {
arrowClass = 'decrease';
}
sharePriceElement = '' + escapeHtml(sharepricedetails.CurrentPrice) + ' ' +
'' + escapeHtml(sharepricedetails.Change) + ' ';
dateTime = 'at ' + escapeHtml(sharepricedetails.Time) + ' on ' + longDate;
$this.find('.sp-price').html(sharePriceElement);
$this.find('.sp-date-time').html(dateTime);
} else {
handleSharePriceCardError($this);
}
},
error: function (xhr, status, error) {
handleSharePriceCardError($this);
}
});
});
};
var init = function () {
headerFeedInit();
cardFeedInit();
};
return {
init: init
};
})(jQuery);
$(window).load(function () {
barclays.componentlibrary.sharePriceFeed.init();
});
var barclays = barclays || {};
barclays.componentlibrary = barclays.componentlibrary || {};
// Polyfill for Object.values es7 feature for IE
var objectToValuesPolyfill = function(object) {
return Object.keys(object).map(function(key) { return object[key]; });
};
Object.values = Object.values || objectToValuesPolyfill;
barclays.componentlibrary.decisionTree = (function() {
'use strict';
var dtAnswers = [],
dtId = '#decisiontree-component',
dtDisplayClass = 'dt-display',
dtContentDivClassFull = '.dt-content-container',
dtLoadingClass = 'dt-loading',
dtAdvanceType = $(dtId).data('dt-advance'),
dtOutputPosition = $(dtId).data('output-position'),
dtOutputJson = $(dtId).data('dt-output'),
dtErrorClassDivFull = '.decisiontree-dataerror',
dtErrorClassFull = '.dt-page-alert',
dtInputsClassFull = '.decisiontree-inputs',
dtInputsDivClassFull = '.dt-inputs-container',
dtOutputsClass = 'decisiontree-outputs',
dtOutputsClassFull = '.' + dtOutputsClass,
dtOutputsDivClass = 'dt-outputs-container',
dtOutputsDivClassFull = '.' + dtOutputsDivClass,
dtPromoDivClass = 'promo-wrapper promo-wrapper-four',
backControlClassFull = '.dt-back',
stepBackClass = 'dt-step-back',
stepBackClassFull = '.' + stepBackClass,
itemClass = 'dt-item',
itemClassFull = '.' + itemClass,
questionClass = 'dt-question',
answerClass = 'dt-answer',
answerClassFull = '.' + answerClass,
optionClass = 'dt-option',
answeredClass = 'dt-answered',
answeredClassFull = '.' + answeredClass,
answerImgClass = 'dt-answer-img',
answerInputDivClass = 'dt-input-wrapper',
itemResultClass = 'dt-item-result',
itemResultClassFull = '.' + itemResultClass,
itemResultGeneralClass = 'dt-result-general',
itemResultGeneralClassFull = '.' + itemResultGeneralClass,
resultClass = 'dt-result',
resultClassFull = '.' + resultClass,
answerResultClass = 'dt-answer-result',
logicClass = 'dt-logic',
logicClassFull = '.' + logicClass,
errorClass = 'dt-error',
errorClassFull = '.' + errorClass,
errorFailMsg = 'Error: Failed to contact server',
errorRequiredMsg = 'Error: This is a required field',
generalOneResult = 'Here is an option for you to consider based on the information you\'ve given us.',
generalResult = 'Here are some options for you to consider based on the information you\'ve given us.',
noProductsResult = 'We\'re sorry, based on the answers you have provided there are no products currently available.',
startAgainBtn = 'Start Again',
toolTipItemContent,
answerInputNumType = 'number',
btnType = 'submit',
btnHolderClass = 'btn-holder',
primaryBtnClass = 'btn btn-primary',
secondaryBtnClass = 'btn btn-secondary',
continueClass = 'dt-continue',
restartClass = 'dt-restart',
restartClassFull = '.' + restartClass,
currencySign = '£',
questionItem,
questionItems,
answerID,
optionInd,
counter = 0,
counterResult = 0,
counterOutcome = 0,
prevStage = 0,
currStage = -1,
resultsStage,
goBack = false,
apiAssets = '/api/assets/';
var getJsonData = function (json, el) {
$.ajax({
type: 'GET',
dataType: 'json',
url: json,
async: false
})
.done(el)
.fail(logError);
};
var logError = function() {
$(dtErrorClassFull).html(errorFailMsg);
$(dtErrorClassDivFull).addClass(dtDisplayClass);
//hide tool
$(dtInputsClassFull).removeClass(dtDisplayClass);
$(dtOutputsClassFull).removeClass(dtDisplayClass);
hideLoading();
};
//Show loading spinner
var showLoading = function() {
$(dtId).closest('.wrapper').addClass(dtLoadingClass);
};
//Hide loading spinner
var hideLoading = function() {
$(dtId).closest('.wrapper').removeClass(dtLoadingClass);
};
//create tooltip
var scrollDtTop = function(el, text) {
if (currStage !== 0) {
$('html, body').animate({scrollTop: $(dtId).offset().top - $('.global-header').height() - 20}, 'slow');
}
};
//create tooltip
var createTooltip = function(el, text) {
$(el).addClass('icon-tooltip icon-small')
.qtip({
position: {
my: 'bottom center',
at: 'top center',
viewport: $(window),
},
});
$(el).on('click', function(e) {
e.preventDefault();
$(this).qtip('api').show();
})
.on('focus', function() {
$(this).qtip('api').show();
})
.on('focusout', function() {
$(this).qtip('api').hide();
});
};
//check if arrays are equal
var isEqual = function (value, other) {
// Get the value type
var type = Object.prototype.toString.call(value);
// If the two objects are not the same type, return false
if (type !== Object.prototype.toString.call(other)) {
return false;
}
// If items are not an object or array, return false
if (['[object Array]', '[object Object]'].indexOf(type) < 0) {
return false;
}
// Compare the length of the length of the two items
var valueLen = type === '[object Array]' ? value.length : Object.keys(value).length,
otherLen = type === '[object Array]' ? other.length : Object.keys(other).length;
if (valueLen !== otherLen) {
return false;
}
// Compare two items
var compare = function (item1, item2) {
// Get the object type
var itemType = Object.prototype.toString.call(item1);
// If an object or array, compare recursively
if (['[object Array]', '[object Object]'].indexOf(itemType) >= 0) {
if (!isEqual(item1, item2)) {
return false;
}
} else {
// If the two items are not the same type, return false
if (itemType !== Object.prototype.toString.call(item2)) {
return false;
}
// Else if it's a function, convert to a string and compare
// Otherwise, just compare
if (itemType === '[object Function]') {
if (item1.toString() !== item2.toString()) {
return false;
}
} else {
if (item1 !== item2) {
return false;
}
}
}
};
// Compare properties
if (type === '[object Array]') {
for (var i = 0; i < valueLen; i++) {
var answerValue,
otherValue;
for(var compareKey in value[i]){
answerValue = value[i][compareKey];
otherValue = other[i][compareKey];
//Check if answer exist in unordered products logic
for (var otherKey in other) {
if (other.hasOwnProperty(otherKey)) {
//compare
if (compare(value[i], other[otherKey]) !== false) {
otherValue = Object.values(other[otherKey])[0];
}
//Check if wildcard
if ( (Object.keys(other[otherKey])[0] === compareKey) && (Object.values(other[otherKey])[0] === '*') ) {
other[otherKey] = value[i];
if (compare(value[i], other[otherKey]) !== false) {
otherValue = Object.values(other[otherKey])[0];
}
}
}
}
}
if (otherValue !== undefined) {
//Check if answer isNumeric
var valueInput = $.isNumeric(answerValue);
//num and less than or greater than
if ( (valueInput === true) && ((otherValue.match('^lt-')) || (otherValue.match('^gt-'))) ) {
//greater than
if (otherValue.match('^gt-')) {
otherValue = otherValue.slice(3);
if (parseFloat(answerValue) <= parseFloat(otherValue)) {
return false;
}
}
//less than
if (otherValue.match('^lt-')) {
otherValue = otherValue.slice(3);
if (parseFloat(answerValue) >= parseFloat(otherValue)) {
return false;
}
}
} else {
//Not num and less than or greater than
if ( (valueInput === false) && ((otherValue.match('^lt-')) || (otherValue.match('^gt-'))) ) {
otherValue = otherValue.slice(3);
}
//compare
if (compare(answerValue, otherValue) === false) {
return false;
}
}
} else {
return false;
}
}
} else {
for (var key in value) {
if (value.hasOwnProperty(key)) {
if (compare(value[key], other[key]) === false) {
return false;
}
}
}
}
// If nothing failed, return true
return true;
};
//compare answers and logic flows
var compareLogic = function() {
var dtProductsLogic = [],
answerChosen = dtAnswers,
resultPanels = $(itemResultClassFull).find(logicClassFull);
if ( (dtOutputPosition === 'below') && (!$(dtErrorClassDivFull).hasClass(dtDisplayClass)) ) {
$(itemResultGeneralClassFull).animate({'left' : '0px'}, 800).css({'display': 'block', 'opacity': '1'});
$(dtOutputsClassFull).addClass(dtDisplayClass);
}
//get logic for each product
$.each(resultPanels, function (resultInd, resultEl) {
var stepItem = $(resultEl).find('ul li[data-option-index="0"]');
dtProductsLogic.push([]);
//get stepItem
$.each(stepItem, function (stepInd, stepEl) {
var logicStepItem = $(stepEl).text(),
thisStepRef = $(stepEl).data('step-ref'),
thisStepObj = {};
thisStepObj[thisStepRef] = logicStepItem;
dtProductsLogic[resultInd].push(thisStepObj);
});
//compare each product logic with answers
$.each(dtProductsLogic, function (logicInd, logicEl) {
var productEqual = isEqual(answerChosen, dtProductsLogic[logicInd]);
if (productEqual === true) {
$('#' + itemResultClass + logicInd).animate({'left' : '0px'}, 800).css({'display': 'block', 'opacity': '1'});
}
});
});
//no results
if ($(itemResultClassFull).is(':visible') === false) {
var resultGeneralDiv = '
',
itemResultGeneralQ = '' + noProductsResult + ' ',
itemResultGeneralA = '';
//Add no results panel - inline
if ( ($(itemResultGeneralClassFull).length < 1) && (dtOutputPosition === 'inline') ) {
$(dtInputsDivClassFull).append(resultGeneralDiv);
$(itemResultGeneralClassFull).append(itemResultGeneralA);
$(itemResultGeneralClassFull).append(itemResultGeneralQ);
}
//Add no results panel - below
if (dtOutputPosition === 'below') {
$(itemResultGeneralClassFull).find('h3').text(noProductsResult);
}
//show no results panel
$(itemResultGeneralClassFull).animate({'left' : '0px'}, 800).css({'display': 'block', 'opacity': '1'});
} else {
if (dtOutputPosition === 'below') {
if ($(itemResultClassFull + ':visible').length === 1) {
$(itemResultGeneralClassFull).find('h3').text(generalOneResult);
} else {
$(itemResultGeneralClassFull).find('h3').text(generalResult);
}
}
}
};
//get Question Option JSON Data
var getOptionAnswer = function(response) {
var thisOption = response.answer,
thisAnswerDiv = $(itemClassFull + ':last-child ' + answerClassFull),
thisOptionType = thisAnswerDiv.data('answer-type'),
thisItemID = $(itemClassFull + ':last-child').attr('id').replace('dt-item', '');
//create Question options
switch(thisOptionType) {
case 'icon':
var thisOptionIcon = response.icon;
thisAnswerDiv.find('ul').append('' + thisOption + ' ');
if (thisOptionIcon !== -1) {
answerID = thisAnswerDiv.find('ul li').length;
thisAnswerDiv.find('ul li:last-child')
.attr('id', answerClass + thisItemID + '-' + answerID)
.prepend('
');
}
break;
case 'currency':
answerID = thisAnswerDiv.length;
var questionText = $('#dt-question' + thisItemID).text(),
errorId = errorClass + thisItemID,
continueBtnId = continueClass + thisItemID,
currencySpan = '' + currencySign + ' ',
continueButton = 'Continue ';
if (answerID === 1) {
thisAnswerDiv.append('' + continueButton);
}
break;
default:
var answerID = thisAnswerDiv.find('ul li').length;
thisAnswerDiv.find('ul').append('' + thisOption + ' ');
}
};
//get Product Outcome Value Output JSON Data
var getProductOutcomeValueOutput = function(response) {
var thisProductOutcomeValue = response.answer,
thisOptionOperator = response.operator,
thisProductLogicDiv = $('#' + itemResultClass + counterResult).find(logicClassFull),
thisProductLogicItem = thisProductLogicDiv.find('ul li:eq(' + counterOutcome + ')');
if ( (thisOptionOperator === 'lt') || (thisOptionOperator === 'gt') ) {
thisProductLogicItem.append(thisOptionOperator + '-' + thisProductOutcomeValue);
} else {
thisProductLogicItem.append(thisProductOutcomeValue);
}
//outcome ID counter
counterOutcome++;
};
//Wildcard Outcome Value Output
var setWildcardOutcomeValueOutput = function(response) {
var thisProductOutcomeValue = '*',
thisProductLogicDiv = $('#' + itemResultClass + counterResult).find(logicClassFull),
thisProductLogicItem = thisProductLogicDiv.find('ul li:eq(' + counterOutcome + ')');
thisProductLogicItem.append(thisProductOutcomeValue);
//outcome ID counter
counterOutcome++;
};
//get Product Output JSON Data
var getProductOutput = function(response) {
var elements = response.properties.elements;
response = {};
for (var element in elements){
response[element] = elements[element].value;
}
var thisProduct = response.heading,
thisProductImage = response.imagePath,
thisProductBody = response.body,
thisProductCtaLabel = response.ctaLabel,
thisProductCtaUrl = response.ctaUrl,
thisResultItemClass = itemResultClass,
thisResultsItemId = thisResultItemClass + counterResult,
thisLogicDiv = '';
//Display outputs
if (dtOutputPosition === 'inline') {
var resultsDiv = '
',
itemResultsQ = '' + thisProduct + ' ',
itemResultsA = '';
//Add results panel
$(dtInputsDivClassFull).append(resultsDiv);
$('#' + thisResultsItemId).append(itemResultsQ);
if (thisProductBody !== undefined) {
$('#' + thisResultsItemId).append(thisProductBody);
}
//create DIV for this answer item
$('#' + thisResultsItemId).append(itemResultsA);
} else {
var resultGeneralDiv = '
',
itemResultGeneralQ = '' + generalResult + ' ',
itemResultGeneralA = '',
resultPromo = '';
//Add results panel
if ($(itemResultGeneralClassFull).length < 1) {
$(dtInputsDivClassFull).append(resultGeneralDiv);
$(itemResultGeneralClassFull).append(itemResultGeneralA);
$(itemResultGeneralClassFull).append(itemResultGeneralQ);
}
resultPromo += '';
if (thisProductImage !== undefined) {
resultPromo += '';
}
resultPromo += '';
resultPromo += '
' + thisProduct + ' ';
if (thisProductBody !== undefined) {
resultPromo += '
' + thisProductBody + '
';
}
resultPromo += '';
resultPromo += '
';
resultPromo += ' ';
//Add promo
$(dtOutputsDivClassFull).append(resultPromo);
}
//create DIV for logic
$('#' + thisResultsItemId).append(thisLogicDiv);
//getProductOutcomeValueOutput
var getProductOutcomeValues = function(thisProductDecisionStepPaths, key) {
$.each(thisProductDecisionStepPaths, function (outcomeInd, outcomeText) {
var thisProductQuestionRef = key.toLowerCase().replace(/\s/g,''),
thisProductStepOutcomeValuesPaths = outcomeText,
thisProductDecisionStepWildcard = thisProductStepOutcomeValuesPaths.substr(-('/answers').length) === '/answers',
thisProductStepOutcomeValuesPath;
//create DIV for logic step
$('#' + thisResultsItemId).find(logicClassFull + ' ul').append(' ');
if (thisProductDecisionStepWildcard === true) {
setWildcardOutcomeValueOutput();
} else {
thisProductStepOutcomeValuesPath = thisProductStepOutcomeValuesPaths + '/_jcr_content/data/master.json';
getJsonData(thisProductStepOutcomeValuesPath, getProductOutcomeValueOutput);
}
});
};
//Get reference properties
for (var key in response) {
if ( (key !== 'ctaUrl') && (key !== 'ctaLabel') && (key !== 'heading@ContentType') && (key !== 'body') && (key !== 'title') && (key !== 'heading') && (key !== 'body@ContentType') && (key !== '_children') ) {
//Get Logic
var thisProductDecisionStepPaths = response[key];
getProductOutcomeValues(thisProductDecisionStepPaths, key);
}
}
//result ID counter
counterResult++;
//reset outcome ID counter
counterOutcome = 0;
};
//get Product Options JSON Data
var getProductOptions = function(response) {
var thisProductOptions = response.entities;
//get Product Output JSON Data
$.each(thisProductOptions, function (productInd, productText) {
if (productText.links.length === 1){
var productPath = productText.links[0].href;
var indexOfApiAsset = productPath.indexOf(apiAssets);
if ( indexOfApiAsset > 0){
productPath = productPath.substring( indexOfApiAsset ,productPath.length);
getJsonData(productPath, getProductOutput);
}
} else {
logError(); // error, json isn't in the right format
}
});
//hide Loading spinner
hideLoading();
};
//move to next question
var nextStage = function() {
if (currStage === -1) {
currStage++;
}
var thisItem = '#' + itemClass + currStage,
prevItem = '#' + itemClass + prevStage;
//Paging backwards - animate previous control in opposite direction.
if (goBack === true) {
goBack = false;
//remove last answer from dtAnswers array
dtAnswers.pop();
//show previous question
$(thisItem).animate({'left' : '2000px'}, 800).css({'display': 'none', 'opacity': '0'});
$(prevItem).animate({'left' : '0px'}, 800).css({'display': 'block', 'opacity': '1'});
//hide inline result panel
$(itemResultClassFull).animate({'left' : '2000px'}, 800).css({'display': 'none', 'opacity': '0'});
$(itemResultGeneralClassFull).animate({'left' : '2000px'}, 800).css({'display': 'none', 'opacity': '0'});
//hide promo results
if (dtOutputPosition === 'below') {
$(itemResultGeneralClassFull).removeClass(dtDisplayClass);
$(dtOutputsClassFull).removeClass(dtDisplayClass);
}
if (dtAdvanceType === 'On') {
currStage = prevStage;
prevStage = 0;
} else {
currStage--;
prevStage--;
}
if (currStage === 0) {
$(itemClassFull + ':first-child').animate({'left' : '0px'}, 800).css({'display': 'block', 'opacity': '1'});
}
thisItem = '#' + itemClass + currStage;
prevItem = '#' + itemClass + prevStage;
}
if (currStage > 0) {
$(prevItem).animate({'left' : '-2000px'}, 800).css({'display': 'none', 'opacity': '0', 'left': '2000px'});
$(backControlClassFull).addClass(stepBackClass).attr('tabindex', '0');
} else {
$(backControlClassFull).removeClass(stepBackClass).removeAttr('tabindex');
}
$(thisItem).animate({'left' : '0px'}, 800).css({'display': 'block', 'opacity': '1'}, function() {
$(thisItem).find('input').focus();
});
//Show inline result panel
if (currStage === resultsStage) {
compareLogic();
}
scrollDtTop();
};
//process the user selection
var processSelection = function(selectionId) {
var isInputControl = false,
thisAnswer = '';
//check if INPUT field answer
if (selectionId.substring(0,3) === 'INP') {
selectionId = (selectionId.slice(3));
isInputControl = true;
}
var thisAnswerId = '#' + selectionId,
thisQuestionRef,
answerObj = {};
//log answer input
if (isInputControl === false) {
thisQuestionRef = $(thisAnswerId).closest(answerClassFull).data('question-ref');
thisAnswer = $(thisAnswerId).text();
} else {
thisQuestionRef = $(thisAnswerId).parent().closest(answerClassFull).data('question-ref');
thisAnswer = $(thisAnswerId).val();
}
answerObj[thisQuestionRef] = thisAnswer;
dtAnswers.push(answerObj);
//nextStage config
prevStage = currStage;
if (currStage === 0) {
currStage = currStage + 1;
} else {
currStage = 1 + currStage++;
}
};
//get Answer ID
var getAnswerId = function(selection) {
if ($(selection).hasClass(answeredClass) && $(selection).hasClass(continueClass)) {
var thisInputElement = $(selection).parent().find(answerClassFull),
reqInputElement = 'INP' + thisInputElement[0].id;
return reqInputElement;
} else {
return selection.attr('id');
}
};
//create Non-Linear JSON Data - Day 2 req
var createAdvanceDOM = function(response) {
console.log('createAdvanceDOM');
};
//get Non-Linear JSON Data
var getAdvanceData = function(jsonUrl) {
getJsonData(jsonUrl, createAdvanceDOM);
};
//create Dom Data
var createDOM = function(response) {
var thisQuestionRef = response.title.toLowerCase().replace(/\s/g,''),
thisQuestion = response.question,
thisQuestionBody = response.body,
thisAnswersPath = response.answers,
thisAnswersType = (response.type).toLowerCase(),
thisItemId = itemClass + counter,
questionId = questionClass + counter,
itemDiv = '
',
itemQ = '' + thisQuestion + ' ',
itemA = '
';
//create DIV for this question item, and add the question as a heading
$(dtInputsDivClassFull).append(itemDiv);
$('#' + thisItemId).append(itemQ);
if (thisQuestionBody !== undefined) {
$('#' + thisItemId).append(thisQuestionBody);
}
//create DIV for this answer item
$('#' + thisItemId).append(itemA);
//find Tooltip ref and create
var toolTipRef = $(dtInputsDivClassFull).find('a[href="tooltip"]', 'a[href="Tooltip"]');
toolTipRef.each(function(idx, el) {
toolTipItemContent = $(el).attr('title');
this.tooltip = new createTooltip(el, toolTipItemContent);
});
if (thisAnswersType === 'icon') {
$('#' + thisItemId).find(answerClassFull).append('');
}
if (thisAnswersType === 'button') {
$('#' + thisItemId).find(answerClassFull).append('');
}
//get Question Options JSON Data
$.each(thisAnswersPath, function (optionInd, optionText) {
var thisOptionPaths = optionText,
thisOptionPath;
thisOptionPath = thisOptionPaths + '/_jcr_content/data/master.json';
getJsonData(thisOptionPath, getOptionAnswer);
});
//question ID counter
counter++;
//show first question
$(itemClassFull + ':first').animate({'left' : '0px'}, 800).css({'display': 'block', 'opacity': '1'});
//For results page
resultsStage = $(itemClassFull).length;
//nextStage
nextStage();
};
//get Linear JSON Data
var getData = function(jsonUrl) {
getJsonData(jsonUrl, createDOM);
};
//get Result JSON
var getResultData = function() {
$.getJSON(dtOutputJson).done(getProductOptions).fail(logError);
};
//get Question JSON
var getContentData = function() {
if (dtAdvanceType === 'On') {
questionItem = $(dtContentDivClassFull).find('li:first-child').text();
getAdvanceData(questionItem);
} else {
questionItems = $(dtContentDivClassFull + ' li');
questionItems.each(function(idx, li) {
questionItem = $(li).text();
getData(questionItem);
});
}
};
var init = function() {
//show Loading spinner
showLoading();
//get Content Fragments
getContentData();
//create promo Div
if (dtOutputPosition === 'below') {
var outputDiv = '';
$(dtId).append(outputDiv);
}
//get Results Fragments
getResultData();
//Display Decision Tree
if (!$(dtErrorClassDivFull).hasClass(dtDisplayClass)) {
$(dtInputsClassFull).addClass(dtDisplayClass);
}
//register click on either the answer click, or the continue button associated with input control
$(dtInputsDivClassFull).on('click', answeredClassFull, function(e) {
e.preventDefault();
$(itemClassFull + ':first-child').css('display', 'none');
if ($(this).hasClass(continueClass)) {
if ($(this).parent().find('input').val() < 1) {
$(this).parent().find(errorClassFull).html(errorRequiredMsg);
return false;
} else {
$(errorClassFull).text('');
}
}
var answerGiven = getAnswerId($(this));
processSelection(answerGiven);
nextStage();
});
$(dtInputsDivClassFull).on('keypress', answeredClassFull, function(e) {
if (e.which === 13 || e.which === 32) {
e.preventDefault();
$(itemClassFull + ':first-child').css('display', 'none');
if ($(this).hasClass(continueClass)) {
if ($(this).parent().find('input').val() < 1) {
$(this).parent().find(errorClassFull).html(errorRequiredMsg);
return false;
} else {
$(errorClassFull).text('');
}
}
var answerGiven = getAnswerId($(this));
processSelection(answerGiven);
nextStage();
}
});
//step backwards
$(document).on('click', stepBackClassFull, function(e) {
e.preventDefault();
goBack = true;
nextStage();
});
$(document).on('keypress', stepBackClassFull, function(e) {
if (e.which === 13 || e.which === 32) {
e.preventDefault();
goBack = true;
nextStage();
}
});
// Restart button clicked - reset everything
$(document).on('click', restartClassFull, function(e) {
e.preventDefault();
if (dtOutputPosition === 'below') {
$(itemResultGeneralClassFull).removeClass(dtDisplayClass);
$(dtOutputsClassFull).removeClass(dtDisplayClass);
}
//reset config
dtAnswers = [];
currStage = -1;
nextStage();
//reset questions and results
$(itemClassFull).css({'display': 'none', 'opacity': '0', 'left' : '2000px'});
$(itemResultClassFull).css({'display': 'none', 'opacity': '0', 'left' : '2000px'});
$(itemResultGeneralClassFull).css({'display': 'none', 'opacity': '0', 'left' : '2000px'});
//show first question
$(itemClassFull + ':first').animate({'left' : '0px'}, 800).css({'display': 'block', 'opacity': '1'});
});
$(document).on('keypress', restartClassFull, function(e) {
if (e.which === 13 || e.which === 32) {
e.preventDefault();
if (dtOutputPosition === 'below') {
$(itemResultGeneralClassFull).removeClass(dtDisplayClass);
$(dtOutputsClassFull).removeClass(dtDisplayClass);
}
//reset config
dtAnswers = [];
currStage = -1;
nextStage();
//reset questions and results
$(itemClassFull).css({'display': 'none', 'opacity': '0', 'left' : '2000px'});
$(itemResultClassFull).css({'display': 'none', 'opacity': '0', 'left' : '2000px'});
$(itemResultGeneralClassFull).css({'display': 'none', 'opacity': '0', 'left' : '2000px'});
//show first question
$(itemClassFull + ':first').animate({'left' : '0px'}, 800).css({'display': 'block', 'opacity': '1'});
}
});
};
return {
init: init
};
})(jQuery);
if ($('[data-component-type="DecisionTree"]').length > 0){
barclays.componentlibrary.decisionTree.init();
}
// Create a closure to maintain scope of the '$' and barclays
(function(profileCookieBundle, barclays, $, window, document, undefined) {
barclays.componentlibrary = barclays.componentlibrary || {};
var profileCookieHandler = profileCookieBundle.ProfileCookieHandlerIIFE;
barclays.componentlibrary.ProfileList = {
init: function(){
var cookie = profileCookieHandler.getCookieValue(profileCookieHandler.getProfileCookie("CTFProfile"), "countryList");
if(cookie){
$("#countryList option[value='" + cookie + "']").attr('selected','selected');
}
}
};
$(document).ready(function () {
barclays.componentlibrary.ProfileList.init();
});
})(window.ProfileCookieBundle, window.barclays = window.barclays || {}, jQuery, window, document);
/*@license C3.js v0.4.23 | (c) C3 Team and other contributors | http://c3js.org/*/
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.c3=e()}(this,function(){"use strict";var t,e,i={target:"c3-target",chart:"c3-chart",chartLine:"c3-chart-line",chartLines:"c3-chart-lines",chartBar:"c3-chart-bar",chartBars:"c3-chart-bars",chartText:"c3-chart-text",chartTexts:"c3-chart-texts",chartArc:"c3-chart-arc",chartArcs:"c3-chart-arcs",chartArcsTitle:"c3-chart-arcs-title",chartArcsBackground:"c3-chart-arcs-background",chartArcsGaugeUnit:"c3-chart-arcs-gauge-unit",chartArcsGaugeMax:"c3-chart-arcs-gauge-max",chartArcsGaugeMin:"c3-chart-arcs-gauge-min",selectedCircle:"c3-selected-circle",selectedCircles:"c3-selected-circles",eventRect:"c3-event-rect",eventRects:"c3-event-rects",eventRectsSingle:"c3-event-rects-single",eventRectsMultiple:"c3-event-rects-multiple",zoomRect:"c3-zoom-rect",brush:"c3-brush",focused:"c3-focused",defocused:"c3-defocused",region:"c3-region",regions:"c3-regions",title:"c3-title",tooltipContainer:"c3-tooltip-container",tooltip:"c3-tooltip",tooltipName:"c3-tooltip-name",shape:"c3-shape",shapes:"c3-shapes",line:"c3-line",lines:"c3-lines",bar:"c3-bar",bars:"c3-bars",circle:"c3-circle",circles:"c3-circles",arc:"c3-arc",arcLabelLine:"c3-arc-label-line",arcs:"c3-arcs",area:"c3-area",areas:"c3-areas",empty:"c3-empty",text:"c3-text",texts:"c3-texts",gaugeValue:"c3-gauge-value",grid:"c3-grid",gridLines:"c3-grid-lines",xgrid:"c3-xgrid",xgrids:"c3-xgrids",xgridLine:"c3-xgrid-line",xgridLines:"c3-xgrid-lines",xgridFocus:"c3-xgrid-focus",ygrid:"c3-ygrid",ygrids:"c3-ygrids",ygridLine:"c3-ygrid-line",ygridLines:"c3-ygrid-lines",axis:"c3-axis",axisX:"c3-axis-x",axisXLabel:"c3-axis-x-label",axisY:"c3-axis-y",axisYLabel:"c3-axis-y-label",axisY2:"c3-axis-y2",axisY2Label:"c3-axis-y2-label",legendBackground:"c3-legend-background",legendItem:"c3-legend-item",legendItemEvent:"c3-legend-item-event",legendItemTile:"c3-legend-item-tile",legendItemHidden:"c3-legend-item-hidden",legendItemFocused:"c3-legend-item-focused",dragarea:"c3-dragarea",EXPANDED:"_expanded_",SELECTED:"_selected_",INCLUDED:"_included_"},n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},r=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e},s=function(t){return t||0===t},o=function(t){return"function"==typeof t},c=function(t){return Array.isArray(t)},d=function(t){return"string"==typeof t},l=function(t){return void 0===t},u=function(t){return void 0!==t},h=function(t){return 10*Math.ceil(t/10)},g=function(t){return Math.ceil(t)+.5},f=function(t){return t[1]-t[0]},p=function(t){return null==t||d(t)&&0===t.length||"object"===(void 0===t?"undefined":n(t))&&0===Object.keys(t).length},_=function(t){return!T.isEmpty(t)},x=function(t,e,i){return u(t[e])?t[e]:i},y=function(t,e){var i=!1;return Object.keys(t).forEach(function(n){t[n]===e&&(i=!0)}),i},m=function(t){return"string"==typeof t?t.replace(/ /g,">"):t},S=function(t){var e=t.getBoundingClientRect(),i=[t.pathSegList.getItem(0),t.pathSegList.getItem(1)];return{x:i[0].x,y:Math.min(i[0].y,i[1].y),width:e.width,height:e.height}};function w(t,e){var i=this;i.component=t,i.params=e||{},i.d3=t.d3,i.scale=i.d3.scale.linear(),i.range,i.orient="bottom",i.innerTickSize=6,i.outerTickSize=this.params.withOuterTick?6:0,i.tickPadding=3,i.tickValues=null,i.tickFormat,i.tickArguments,i.tickOffset=0,i.tickCulling=!0,i.tickCentered,i.tickTextCharSize,i.tickTextRotate=i.params.tickTextRotate,i.tickLength,i.axis=i.generateAxis()}(e=w.prototype).axisX=function(t,e,i){t.attr("transform",function(t){return"translate("+Math.ceil(e(t)+i)+", 0)"})},e.axisY=function(t,e){t.attr("transform",function(t){return"translate(0,"+Math.ceil(e(t))+")"})},e.scaleExtent=function(t){var e=t[0],i=t[t.length-1];return e0&&n[0]>0&&n.unshift(n[0]-(n[1]-n[0])),n},e.copyScale=function(){var t,e=this.scale.copy();return this.params.isCategory&&(t=this.scale.domain(),e.domain([t[0],t[1]-1])),e},e.textFormatted=function(t){var e=this.tickFormat?this.tickFormat(t):t;return void 0!==e?e:""},e.updateRange=function(){var t=this;return t.range=t.scale.rangeExtent?t.scale.rangeExtent():t.scaleExtent(t.scale.range()),t.range},e.updateTickTextCharSize=function(t){var e=this;if(e.tickTextCharSize)return e.tickTextCharSize;var i={h:11.5,w:5.5};return t.select("text").text(function(t){return e.textFormatted(t)}).each(function(t){var n=this.getBoundingClientRect(),a=e.textFormatted(t),r=n.height,s=a?n.width/a.length:void 0;r&&s&&(i.h=r,i.w=s)}).text(""),e.tickTextCharSize=i,i},e.transitionise=function(t){return this.params.withoutTransition?t:this.d3.transition(t)},e.isVertical=function(){return"left"===this.orient||"right"===this.orient},e.tspanData=function(t,e,i,n){var a=this,r=a.params.tickMultiline?a.splitTickText(t,i,n):[].concat(a.textFormatted(t));return a.params.tickMultiline&&a.params.tickMultilineMax>0&&(r=a.ellipsify(r,a.params.tickMultilineMax)),r.map(function(t){return{index:e,splitted:t,length:r.length}})},e.splitTickText=function(t,e,i){var n,a,r,s=this,o=s.textFormatted(t),c=s.params.tickWidth;if("[object Array]"===Object.prototype.toString.call(o))return o;return(!c||c<=0)&&(c=s.isVertical()?95:s.params.isCategory?Math.ceil(i(e[1])-i(e[0]))-12:110),function t(e,i){a=void 0;for(var o=1;o=0;a--){var r=i[a].length;if(i[a]=i[a].substr(0,r-n).padEnd(r,"."),(n-=r)<=0)break}return i},e.updateTickLength=function(){this.tickLength=Math.max(this.innerTickSize,0)+this.tickPadding},e.lineY2=function(t){var e=this,i=e.scale(t)+(e.tickCentered?0:e.tickOffset);return e.range[0]0?1:-1):this.tickLength},e.textTransform=function(){var t=this.tickTextRotate;return t?"rotate("+t+")":""},e.textTextAnchor=function(){var t=this.tickTextRotate;return t?t>0?"start":"end":"middle"},e.tspanDx=function(){var t=this.tickTextRotate;return t?8*Math.sin(Math.PI*(t/180)):0},e.tspanDy=function(t,e){var i=this.tickTextCharSize.h;return 0===e&&(i=this.isVertical()?-((t.length-1)*(this.tickTextCharSize.h/2)-3):".71em"),i},e.generateAxis=function(){var t=this,e=t.d3,i=t.params;function n(a){a.each(function(){var a,r,s,o=n.g=e.select(this),c=this.__chart__||t.scale,d=this.__chart__=t.copyScale(),l=t.tickValues?t.tickValues:t.generateTicks(d),u=o.selectAll(".tick").data(l,d),h=u.enter().insert("g",".domain").attr("class","tick").style("opacity",1e-6),g=u.exit().remove(),f=t.transitionise(u).style("opacity",1);i.isCategory?(t.tickOffset=Math.ceil((d(1)-d(0))/2),r=t.tickCentered?0:t.tickOffset,s=t.tickCentered?t.tickOffset:0):t.tickOffset=r=0,h.append("line"),h.append("text"),t.updateRange(),t.updateTickLength(),t.updateTickTextCharSize(o.select(".tick"));var p=f.select("line"),_=f.select("text"),x=u.select("text").selectAll("tspan").data(function(e,i){return t.tspanData(e,i,l,d)});x.enter().append("tspan"),x.exit().remove(),x.text(function(t){return t.splitted});var y=o.selectAll(".domain").data([0]),m=(y.enter().append("path").attr("class","domain"),t.transitionise(y));switch(t.orient){case"bottom":a=t.axisX,p.attr("x1",r).attr("x2",r).attr("y2",function(e,i){return t.lineY2(e,i)}),_.attr("x",0).attr("y",function(e,i){return t.textY(e,i)}).attr("transform",function(e,i){return t.textTransform(e,i)}).style("text-anchor",function(e,i){return t.textTextAnchor(e,i)}),x.attr("x",0).attr("dy",function(e,i){return t.tspanDy(e,i)}).attr("dx",function(e,i){return t.tspanDx(e,i)}),m.attr("d","M"+t.range[0]+","+t.outerTickSize+"V0H"+t.range[1]+"V"+t.outerTickSize);break;case"top":a=t.axisX,p.attr("x1",r).attr("x2",r).attr("y2",function(e,i){return-1*t.lineY2(e,i)}),_.attr("x",0).attr("y",function(e,n){return-1*t.textY(e,n)-(i.isCategory?2:t.tickLength-2)}).attr("transform",function(e,i){return t.textTransform(e,i)}).style("text-anchor",function(e,i){return t.textTextAnchor(e,i)}),x.attr("x",0).attr("dy",function(e,i){return t.tspanDy(e,i)}).attr("dx",function(e,i){return t.tspanDx(e,i)}),m.attr("d","M"+t.range[0]+","+-t.outerTickSize+"V0H"+t.range[1]+"V"+-t.outerTickSize);break;case"left":a=t.axisY,p.attr("x2",-t.innerTickSize).attr("y1",s).attr("y2",s),_.attr("x",-t.tickLength).attr("y",t.tickOffset).style("text-anchor","end"),x.attr("x",-t.tickLength).attr("dy",function(e,i){return t.tspanDy(e,i)}),m.attr("d","M"+-t.outerTickSize+","+t.range[0]+"H0V"+t.range[1]+"H"+-t.outerTickSize);break;case"right":a=t.axisY,p.attr("x2",t.innerTickSize).attr("y1",s).attr("y2",s),_.attr("x",t.tickLength).attr("y",t.tickOffset).style("text-anchor","start"),x.attr("x",t.tickLength).attr("dy",function(e,i){return t.tspanDy(e,i)}),m.attr("d","M"+t.outerTickSize+","+t.range[0]+"H0V"+t.range[1]+"H"+t.outerTickSize)}if(d.rangeBand){var S=d,w=S.rangeBand()/2;c=d=function(t){return S(t)+w}}else c.rangeBand?c=d:g.call(a,d,t.tickOffset);h.call(a,c,t.tickOffset),f.call(a,d,t.tickOffset)})}return n.scale=function(e){return arguments.length?(t.scale=e,n):t.scale},n.orient=function(e){return arguments.length?(t.orient=e in{top:1,right:1,bottom:1,left:1}?e+"":"bottom",n):t.orient},n.tickFormat=function(e){return arguments.length?(t.tickFormat=e,n):t.tickFormat},n.tickCentered=function(e){return arguments.length?(t.tickCentered=e,n):t.tickCentered},n.tickOffset=function(){return t.tickOffset},n.tickInterval=function(){var e;return(e=i.isCategory?2*t.tickOffset:(n.g.select("path.domain").node().getTotalLength()-2*t.outerTickSize)/n.g.selectAll("line").size())===1/0?0:e},n.ticks=function(){return arguments.length?(t.tickArguments=arguments,n):t.tickArguments},n.tickCulling=function(e){return arguments.length?(t.tickCulling=e,n):t.tickCulling},n.tickValues=function(e){if("function"==typeof e)t.tickValues=function(){return e(t.scale.domain())};else{if(!arguments.length)return t.tickValues;t.tickValues=e}return n},n};var v=function(i){function n(i){a(this,n);var s={fn:t,internal:{fn:e}},o=r(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,i,"axis",s));return o.d3=i.d3,o.internal=w,o}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(n,P),n}();(t=v.prototype).init=function(){var t=this.owner,e=t.config,n=t.main;t.axes.x=n.append("g").attr("class",i.axis+" "+i.axisX).attr("clip-path",e.axis_x_inner?"":t.clipPathForXAxis).attr("transform",t.getTranslate("x")).style("visibility",e.axis_x_show?"visible":"hidden"),t.axes.x.append("text").attr("class",i.axisXLabel).attr("transform",e.axis_rotated?"rotate(-90)":"").style("text-anchor",this.textAnchorForXAxisLabel.bind(this)),t.axes.y=n.append("g").attr("class",i.axis+" "+i.axisY).attr("clip-path",e.axis_y_inner?"":t.clipPathForYAxis).attr("transform",t.getTranslate("y")).style("visibility",e.axis_y_show?"visible":"hidden"),t.axes.y.append("text").attr("class",i.axisYLabel).attr("transform",e.axis_rotated?"":"rotate(-90)").style("text-anchor",this.textAnchorForYAxisLabel.bind(this)),t.axes.y2=n.append("g").attr("class",i.axis+" "+i.axisY2).attr("transform",t.getTranslate("y2")).style("visibility",e.axis_y2_show?"visible":"hidden"),t.axes.y2.append("text").attr("class",i.axisY2Label).attr("transform",e.axis_rotated?"":"rotate(-90)").style("text-anchor",this.textAnchorForY2AxisLabel.bind(this))},t.getXAxis=function(t,e,i,n,a,r,s){var o=this.owner,c=o.config,d={isCategory:o.isCategorized(),withOuterTick:a,tickMultiline:c.axis_x_tick_multiline,tickMultilineMax:c.axis_x_tick_multiline?Number(c.axis_x_tick_multilineMax):0,tickWidth:c.axis_x_tick_width,tickTextRotate:s?0:c.axis_x_tick_rotate,withoutTransition:r},l=new this.internal(this,d).axis.scale(t).orient(e);return o.isTimeSeries()&&n&&"function"!=typeof n&&(n=n.map(function(t){return o.parseDate(t)})),l.tickFormat(i).tickValues(n),o.isCategorized()&&(l.tickCentered(c.axis_x_tick_centered),p(c.axis_x_tick_culling)&&(c.axis_x_tick_culling=!1)),l},t.updateXAxisTickValues=function(t,e){var i,n=this.owner,a=n.config;return(a.axis_x_tick_fit||a.axis_x_tick_count)&&(i=this.generateTickValues(n.mapTargetsToUniqueXs(t),a.axis_x_tick_count,n.isTimeSeries())),e?e.tickValues(i):(n.xAxis.tickValues(i),n.subXAxis.tickValues(i)),i},t.getYAxis=function(t,e,i,n,a,r,s){var o=this.owner,c=o.config,d={withOuterTick:a,withoutTransition:r,tickTextRotate:s?0:c.axis_y_tick_rotate},l=new this.internal(this,d).axis.scale(t).orient(e).tickFormat(i);return o.isTimeSeriesY()?l.ticks(o.d3.time[c.axis_y_tick_time_value],c.axis_y_tick_time_interval):l.tickValues(n),l},t.getId=function(t){var e=this.owner.config;return t in e.data_axes?e.data_axes[t]:"y"},t.getXAxisTickFormat=function(){var t=this.owner,e=t.config,i=t.isTimeSeries()?t.defaultAxisTimeFormat:t.isCategorized()?t.categoryName:function(t){return t<0?t.toFixed(0):t};return e.axis_x_tick_format&&(o(e.axis_x_tick_format)?i=e.axis_x_tick_format:t.isTimeSeries()&&(i=function(i){return i?t.axisTimeFormat(e.axis_x_tick_format)(i):""})),o(i)?function(e){return i.call(t,e)}:i},t.getTickValues=function(t,e){return t||(e?e.tickValues():void 0)},t.getXAxisTickValues=function(){return this.getTickValues(this.owner.config.axis_x_tick_values,this.owner.xAxis)},t.getYAxisTickValues=function(){return this.getTickValues(this.owner.config.axis_y_tick_values,this.owner.yAxis)},t.getY2AxisTickValues=function(){return this.getTickValues(this.owner.config.axis_y2_tick_values,this.owner.y2Axis)},t.getLabelOptionByAxisId=function(t){var e,i=this.owner.config;return"y"===t?e=i.axis_y_label:"y2"===t?e=i.axis_y2_label:"x"===t&&(e=i.axis_x_label),e},t.getLabelText=function(t){var e=this.getLabelOptionByAxisId(t);return d(e)?e:e?e.text:null},t.setLabelText=function(t,e){var i=this.owner.config,n=this.getLabelOptionByAxisId(t);d(n)?"y"===t?i.axis_y_label=e:"y2"===t?i.axis_y2_label=e:"x"===t&&(i.axis_x_label=e):n&&(n.text=e)},t.getLabelPosition=function(t,e){var i=this.getLabelOptionByAxisId(t),a=i&&"object"===(void 0===i?"undefined":n(i))&&i.position?i.position:e;return{isInner:a.indexOf("inner")>=0,isOuter:a.indexOf("outer")>=0,isLeft:a.indexOf("left")>=0,isCenter:a.indexOf("center")>=0,isRight:a.indexOf("right")>=0,isTop:a.indexOf("top")>=0,isMiddle:a.indexOf("middle")>=0,isBottom:a.indexOf("bottom")>=0}},t.getXAxisLabelPosition=function(){return this.getLabelPosition("x",this.owner.config.axis_rotated?"inner-top":"inner-right")},t.getYAxisLabelPosition=function(){return this.getLabelPosition("y",this.owner.config.axis_rotated?"inner-right":"inner-top")},t.getY2AxisLabelPosition=function(){return this.getLabelPosition("y2",this.owner.config.axis_rotated?"inner-right":"inner-top")},t.getLabelPositionById=function(t){return"y2"===t?this.getY2AxisLabelPosition():"y"===t?this.getYAxisLabelPosition():this.getXAxisLabelPosition()},t.textForXAxisLabel=function(){return this.getLabelText("x")},t.textForYAxisLabel=function(){return this.getLabelText("y")},t.textForY2AxisLabel=function(){return this.getLabelText("y2")},t.xForAxisLabel=function(t,e){var i=this.owner;return t?e.isLeft?0:e.isCenter?i.width/2:i.width:e.isBottom?-i.height:e.isMiddle?-i.height/2:0},t.dxForAxisLabel=function(t,e){return t?e.isLeft?"0.5em":e.isRight?"-0.5em":"0":e.isTop?"-0.5em":e.isBottom?"0.5em":"0"},t.textAnchorForAxisLabel=function(t,e){return t?e.isLeft?"start":e.isCenter?"middle":"end":e.isBottom?"start":e.isMiddle?"middle":"end"},t.xForXAxisLabel=function(){return this.xForAxisLabel(!this.owner.config.axis_rotated,this.getXAxisLabelPosition())},t.xForYAxisLabel=function(){return this.xForAxisLabel(this.owner.config.axis_rotated,this.getYAxisLabelPosition())},t.xForY2AxisLabel=function(){return this.xForAxisLabel(this.owner.config.axis_rotated,this.getY2AxisLabelPosition())},t.dxForXAxisLabel=function(){return this.dxForAxisLabel(!this.owner.config.axis_rotated,this.getXAxisLabelPosition())},t.dxForYAxisLabel=function(){return this.dxForAxisLabel(this.owner.config.axis_rotated,this.getYAxisLabelPosition())},t.dxForY2AxisLabel=function(){return this.dxForAxisLabel(this.owner.config.axis_rotated,this.getY2AxisLabelPosition())},t.dyForXAxisLabel=function(){var t=this.owner,e=t.config,i=this.getXAxisLabelPosition();return e.axis_rotated?i.isInner?"1.2em":-25-(t.config.axis_x_inner?0:this.getMaxTickWidth("x")):i.isInner?"-0.5em":e.axis_x_height?e.axis_x_height-10:"3em"},t.dyForYAxisLabel=function(){var t=this.owner,e=this.getYAxisLabelPosition();return t.config.axis_rotated?e.isInner?"-0.5em":"3em":e.isInner?"1.2em":-10-(t.config.axis_y_inner?0:this.getMaxTickWidth("y")+10)},t.dyForY2AxisLabel=function(){var t=this.owner,e=this.getY2AxisLabelPosition();return t.config.axis_rotated?e.isInner?"1.2em":"-2.2em":e.isInner?"-0.5em":15+(t.config.axis_y2_inner?0:this.getMaxTickWidth("y2")+15)},t.textAnchorForXAxisLabel=function(){var t=this.owner;return this.textAnchorForAxisLabel(!t.config.axis_rotated,this.getXAxisLabelPosition())},t.textAnchorForYAxisLabel=function(){var t=this.owner;return this.textAnchorForAxisLabel(t.config.axis_rotated,this.getYAxisLabelPosition())},t.textAnchorForY2AxisLabel=function(){var t=this.owner;return this.textAnchorForAxisLabel(t.config.axis_rotated,this.getY2AxisLabelPosition())},t.getMaxTickWidth=function(t,e){var i,n,a,r,s=this.owner,o=s.config,c=0;return e&&s.currentMaxTickWidths[t]?s.currentMaxTickWidths[t]:(s.svg&&(i=s.filterTargetsToShow(s.data.targets),"y"===t?(n=s.y.copy().domain(s.getYDomain(i,"y")),a=this.getYAxis(n,s.yOrient,o.axis_y_tick_format,s.yAxisTickValues,!1,!0,!0)):"y2"===t?(n=s.y2.copy().domain(s.getYDomain(i,"y2")),a=this.getYAxis(n,s.y2Orient,o.axis_y2_tick_format,s.y2AxisTickValues,!1,!0,!0)):(n=s.x.copy().domain(s.getXDomain(i)),a=this.getXAxis(n,s.xOrient,s.xAxisTickFormat,s.xAxisTickValues,!1,!0,!0),this.updateXAxisTickValues(i,a)),(r=s.d3.select("body").append("div").classed("c3",!0)).append("svg").style("visibility","hidden").style("position","fixed").style("top",0).style("left",0).append("g").call(a).each(function(){s.d3.select(this).selectAll("text").each(function(){var t=this.getBoundingClientRect();c2){for(s=n-2,a=t[0],c=((r=t[t.length-1])-a)/(s+1),u=[a],d=0;d0&&t(e[a],i[a],n)})}(b,this,this)}function L(t){var e=this;e.d3=window.d3?window.d3:"undefined"!=typeof require?require("d3"):void 0,e.api=t,e.config=e.getDefaultConfig(),e.data={},e.cache={},e.axes={}}return A.generate=function(t){return new C(t)},A.chart={fn:C.prototype,internal:{fn:L.prototype}},b=A.chart.fn,(T=A.chart.internal.fn).beforeInit=function(){},T.afterInit=function(){},T.init=function(){var t=this,e=t.config;if(t.initParams(),e.data_url)t.convertUrlToData(e.data_url,e.data_mimeType,e.data_headers,e.data_keys,t.initWithData);else if(e.data_json)t.initWithData(t.convertJsonToData(e.data_json,e.data_keys));else if(e.data_rows)t.initWithData(t.convertRowsToData(e.data_rows));else{if(!e.data_columns)throw Error("url or json or rows or columns is required.");t.initWithData(t.convertColumnsToData(e.data_columns))}},T.initParams=function(){var t=this,e=t.d3,i=t.config;t.clipId="c3-"+ +new Date+"-clip",t.clipIdForXAxis=t.clipId+"-xaxis",t.clipIdForYAxis=t.clipId+"-yaxis",t.clipIdForGrid=t.clipId+"-grid",t.clipIdForSubchart=t.clipId+"-subchart",t.clipPath=t.getClipPath(t.clipId),t.clipPathForXAxis=t.getClipPath(t.clipIdForXAxis),t.clipPathForYAxis=t.getClipPath(t.clipIdForYAxis),t.clipPathForGrid=t.getClipPath(t.clipIdForGrid),t.clipPathForSubchart=t.getClipPath(t.clipIdForSubchart),t.dragStart=null,t.dragging=!1,t.flowing=!1,t.cancelClick=!1,t.mouseover=!1,t.transiting=!1,t.color=t.generateColor(),t.levelColor=t.generateLevelColor(),t.dataTimeFormat=i.data_xLocaltime?e.time.format:e.time.format.utc,t.axisTimeFormat=i.axis_x_localtime?e.time.format:e.time.format.utc,t.defaultAxisTimeFormat=t.axisTimeFormat.multi([[".%L",function(t){return t.getMilliseconds()}],[":%S",function(t){return t.getSeconds()}],["%I:%M",function(t){return t.getMinutes()}],["%I %p",function(t){return t.getHours()}],["%-m/%-d",function(t){return t.getDay()&&1!==t.getDate()}],["%-m/%-d",function(t){return 1!==t.getDate()}],["%-m/%-d",function(t){return t.getMonth()}],["%Y/%-m/%-d",function(){return!0}]]),t.hiddenTargetIds=[],t.hiddenLegendIds=[],t.focusedTargetIds=[],t.defocusedTargetIds=[],t.xOrient=i.axis_rotated?i.axis_x_inner?"right":"left":i.axis_x_inner?"top":"bottom",t.yOrient=i.axis_rotated?i.axis_y_inner?"top":"bottom":i.axis_y_inner?"right":"left",t.y2Orient=i.axis_rotated?i.axis_y2_inner?"bottom":"top":i.axis_y2_inner?"left":"right",t.subXOrient=i.axis_rotated?"left":"bottom",t.isLegendRight="right"===i.legend_position,t.isLegendInset="inset"===i.legend_position,t.isLegendTop="top-left"===i.legend_inset_anchor||"top-right"===i.legend_inset_anchor,t.isLegendLeft="top-left"===i.legend_inset_anchor||"bottom-left"===i.legend_inset_anchor,t.legendStep=0,t.legendItemWidth=0,t.legendItemHeight=0,t.currentMaxTickWidths={x:0,y:0,y2:0},t.rotated_padding_left=30,t.rotated_padding_right=i.axis_rotated&&!i.axis_x_show?0:30,t.rotated_padding_top=5,t.withoutFadeIn={},t.intervalForObserveInserted=void 0,t.axes.subx=e.selectAll([])},T.initChartElements=function(){this.initBar&&this.initBar(),this.initLine&&this.initLine(),this.initArc&&this.initArc(),this.initGauge&&this.initGauge(),this.initText&&this.initText()},T.initWithData=function(t){var e,n,a=this,r=a.d3,s=a.config,o=!0;a.axis=new v(a),a.initPie&&a.initPie(),a.initBrush&&a.initBrush(),a.initZoom&&a.initZoom(),s.bindto?"function"==typeof s.bindto.node?a.selectChart=s.bindto:a.selectChart=r.select(s.bindto):a.selectChart=r.selectAll([]),a.selectChart.empty()&&(a.selectChart=r.select(document.createElement("div")).style("opacity",0),a.observeInserted(a.selectChart),o=!1),a.selectChart.html("").classed("c3",!0),a.data.xs={},a.data.targets=a.convertDataToTargets(t),s.data_filter&&(a.data.targets=a.data.targets.filter(s.data_filter)),s.data_hide&&a.addHiddenTargetIds(!0===s.data_hide?a.mapToIds(a.data.targets):s.data_hide),s.legend_hide&&a.addHiddenLegendIds(!0===s.legend_hide?a.mapToIds(a.data.targets):s.legend_hide),a.updateSizes(),a.updateScales(),a.x.domain(r.extent(a.getXDomain(a.data.targets))),a.y.domain(a.getYDomain(a.data.targets,"y")),a.y2.domain(a.getYDomain(a.data.targets,"y2")),a.subX.domain(a.x.domain()),a.subY.domain(a.y.domain()),a.subY2.domain(a.y2.domain()),a.orgXDomain=a.x.domain(),a.brush&&a.brush.scale(a.subX),s.zoom_enabled&&a.zoom.scale(a.x),a.svg=a.selectChart.append("svg").style("overflow","hidden").on("mouseenter",function(){return s.onmouseover.call(a)}).on("mouseleave",function(){return s.onmouseout.call(a)}),a.config.svg_classname&&a.svg.attr("class",a.config.svg_classname),e=a.svg.append("defs"),a.clipChart=a.appendClip(e,a.clipId),a.clipXAxis=a.appendClip(e,a.clipIdForXAxis),a.clipYAxis=a.appendClip(e,a.clipIdForYAxis),a.clipGrid=a.appendClip(e,a.clipIdForGrid),a.clipSubchart=a.appendClip(e,a.clipIdForSubchart),a.updateSvgSize(),n=a.main=a.svg.append("g").attr("transform",a.getTranslate("main")),a.initSubchart&&a.initSubchart(),a.initTooltip&&a.initTooltip(),a.initLegend&&a.initLegend(),a.initTitle&&a.initTitle(),n.append("text").attr("class",i.text+" "+i.empty).attr("text-anchor","middle").attr("dominant-baseline","middle"),a.initRegion(),a.initGrid(),n.append("g").attr("clip-path",a.clipPath).attr("class",i.chart),s.grid_lines_front&&a.initGridLines(),a.initEventRect(),a.initChartElements(),n.insert("rect",s.zoom_privileged?null:"g."+i.regions).attr("class",i.zoomRect).attr("width",a.width).attr("height",a.height).style("opacity",0).on("dblclick.zoom",null),s.axis_x_extent&&a.brush.extent(a.getDefaultExtent()),a.axis.init(),a.updateTargets(a.data.targets),o&&(a.updateDimension(),a.config.oninit.call(a),a.redraw({withTransition:!1,withTransform:!0,withUpdateXDomain:!0,withUpdateOrgXDomain:!0,withTransitionForAxis:!1})),a.bindResize(),a.api.element=a.selectChart.node()},T.smoothLines=function(t,e){var i=this;"grid"===e&&t.each(function(){var t=i.d3.select(this),e=t.attr("x1"),n=t.attr("x2"),a=t.attr("y1"),r=t.attr("y2");t.attr({x1:Math.ceil(e),x2:Math.ceil(n),y1:Math.ceil(a),y2:Math.ceil(r)})})},T.updateSizes=function(){var t=this,e=t.config,i=t.legend?t.getLegendHeight():0,n=t.legend?t.getLegendWidth():0,a=t.isLegendRight||t.isLegendInset?0:i,r=t.hasArcType(),s=e.axis_rotated||r?0:t.getHorizontalAxisHeight("x"),o=e.subchart_show&&!r?e.subchart_size_height+s:0;t.currentWidth=t.getCurrentWidth(),t.currentHeight=t.getCurrentHeight(),t.margin=e.axis_rotated?{top:t.getHorizontalAxisHeight("y2")+t.getCurrentPaddingTop(),right:r?0:t.getCurrentPaddingRight(),bottom:t.getHorizontalAxisHeight("y")+a+t.getCurrentPaddingBottom(),left:o+(r?0:t.getCurrentPaddingLeft())}:{top:4+t.getCurrentPaddingTop(),right:r?0:t.getCurrentPaddingRight(),bottom:s+o+a+t.getCurrentPaddingBottom(),left:r?0:t.getCurrentPaddingLeft()},t.margin2=e.axis_rotated?{top:t.margin.top,right:NaN,bottom:20+a,left:t.rotated_padding_left}:{top:t.currentHeight-o-a,right:NaN,bottom:s+a,left:t.margin.left},t.margin3={top:0,right:NaN,bottom:0,left:0},t.updateSizeForLegend&&t.updateSizeForLegend(i,n),t.width=t.currentWidth-t.margin.left-t.margin.right,t.height=t.currentHeight-t.margin.top-t.margin.bottom,t.width<0&&(t.width=0),t.height<0&&(t.height=0),t.width2=e.axis_rotated?t.margin.left-t.rotated_padding_left-t.rotated_padding_right:t.width,t.height2=e.axis_rotated?t.height:t.currentHeight-t.margin2.top-t.margin2.bottom,t.width2<0&&(t.width2=0),t.height2<0&&(t.height2=0),t.arcWidth=t.width-(t.isLegendRight?n+10:0),t.arcHeight=t.height-(t.isLegendRight?0:10),t.hasType("gauge")&&!e.gauge_fullCircle&&(t.arcHeight+=t.height-t.getGaugeLabelHeight()),t.updateRadius&&t.updateRadius(),t.isLegendRight&&r&&(t.margin3.left=t.arcWidth/2+1.1*t.radiusExpanded)},T.updateTargets=function(t){var e=this;e.updateTargetsForText(t),e.updateTargetsForBar(t),e.updateTargetsForLine(t),e.hasArcType()&&e.updateTargetsForArc&&e.updateTargetsForArc(t),e.updateTargetsForSubchart&&e.updateTargetsForSubchart(t),e.showTargets()},T.showTargets=function(){var t=this;t.svg.selectAll("."+i.target).filter(function(e){return t.isTargetToShow(e.id)}).transition().duration(t.config.transition_duration).style("opacity",1)},T.redraw=function(t,e){var n,a,r,s,o,c,d,l,u,h,g,f,p,_,y,m,S,w,v,b,T,A,P,C,L,V,G,E,O,I=this,R=I.main,k=I.d3,D=I.config,F=I.getShapeIndices(I.isAreaType),X=I.getShapeIndices(I.isBarType),M=I.getShapeIndices(I.isLineType),z=I.hasArcType(),H=I.filterTargetsToShow(I.data.targets),B=I.xv.bind(I);if(n=x(t=t||{},"withY",!0),a=x(t,"withSubchart",!0),r=x(t,"withTransition",!0),c=x(t,"withTransform",!1),d=x(t,"withUpdateXDomain",!1),l=x(t,"withUpdateOrgXDomain",!1),u=x(t,"withTrimXDomain",!0),p=x(t,"withUpdateXAxis",d),h=x(t,"withLegend",!1),g=x(t,"withEventRect",!0),f=x(t,"withDimension",!0),s=x(t,"withTransitionForExit",r),o=x(t,"withTransitionForAxis",r),v=r?D.transition_duration:0,b=s?v:0,T=o?v:0,e=e||I.axis.generateTransitions(T),h&&D.legend_show?I.updateLegend(I.mapToIds(I.data.targets),t,e):f&&I.updateDimension(!0),I.isCategorized()&&0===H.length&&I.x.domain([0,I.axes.x.selectAll(".tick").size()]),H.length?(I.updateXDomain(H,d,l,u),D.axis_x_tick_values||(C=I.axis.updateXAxisTickValues(H))):(I.xAxis.tickValues([]),I.subXAxis.tickValues([])),D.zoom_rescale&&!t.flow&&(G=I.x.orgDomain()),I.y.domain(I.getYDomain(H,"y",G)),I.y2.domain(I.getYDomain(H,"y2",G)),!D.axis_y_tick_values&&D.axis_y_tick_count&&I.yAxis.tickValues(I.axis.generateTickValues(I.y.domain(),D.axis_y_tick_count)),!D.axis_y2_tick_values&&D.axis_y2_tick_count&&I.y2Axis.tickValues(I.axis.generateTickValues(I.y2.domain(),D.axis_y2_tick_count)),I.axis.redraw(e,z),I.axis.updateLabels(r),(d||p)&&H.length)if(D.axis_x_tick_culling&&C){for(L=1;L=0&&k.select(this).style("display",e%V?"none":"block")})}else I.svg.selectAll("."+i.axisX+" .tick text").style("display","block");_=I.generateDrawArea?I.generateDrawArea(F,!1):void 0,y=I.generateDrawBar?I.generateDrawBar(X):void 0,m=I.generateDrawLine?I.generateDrawLine(M,!1):void 0,S=I.generateXYForText(F,X,M,!0),w=I.generateXYForText(F,X,M,!1),n&&(I.subY.domain(I.getYDomain(H,"y")),I.subY2.domain(I.getYDomain(H,"y2"))),I.updateXgridFocus(),R.select("text."+i.text+"."+i.empty).attr("x",I.width/2).attr("y",I.height/2).text(D.data_empty_label_text).transition().style("opacity",H.length?0:1),I.updateGrid(v),I.updateRegion(v),I.updateBar(b),I.updateLine(b),I.updateArea(b),I.updateCircle(),I.hasDataLabel()&&I.updateText(b),I.redrawTitle&&I.redrawTitle(),I.redrawArc&&I.redrawArc(v,b,c),I.redrawSubchart&&I.redrawSubchart(a,e,v,b,F,X,M),R.selectAll("."+i.selectedCircles).filter(I.isBarType.bind(I)).selectAll("circle").remove(),D.interaction_enabled&&!t.flow&&g&&(I.redrawEventRect(),I.updateZoom&&I.updateZoom()),I.updateCircleY(),E=(I.config.axis_rotated?I.circleY:I.circleX).bind(I),O=(I.config.axis_rotated?I.circleX:I.circleY).bind(I),t.flow&&(P=I.generateFlow({targets:H,flow:t.flow,duration:t.flow.duration,drawBar:y,drawLine:m,drawArea:_,cx:E,cy:O,xv:B,xForText:S,yForText:w})),(v||P)&&I.isTabVisible()?k.transition().duration(v).each(function(){var e=[];[I.redrawBar(y,!0),I.redrawLine(m,!0),I.redrawArea(_,!0),I.redrawCircle(E,O,!0),I.redrawText(S,w,t.flow,!0),I.redrawRegion(!0),I.redrawGrid(!0)].forEach(function(t){t.forEach(function(t){e.push(t)})}),A=I.generateWait(),e.forEach(function(t){A.add(t)})}).call(A,function(){P&&P(),D.onrendered&&D.onrendered.call(I)}):(I.redrawBar(y),I.redrawLine(m),I.redrawArea(_),I.redrawCircle(E,O),I.redrawText(S,w,t.flow),I.redrawRegion(),I.redrawGrid(),D.onrendered&&D.onrendered.call(I)),I.mapToIds(I.data.targets).forEach(function(t){I.withoutFadeIn[t]=!0})},T.updateAndRedraw=function(t){var e,i=this,n=i.config;(t=t||{}).withTransition=x(t,"withTransition",!0),t.withTransform=x(t,"withTransform",!1),t.withLegend=x(t,"withLegend",!1),t.withUpdateXDomain=!0,t.withUpdateOrgXDomain=!0,t.withTransitionForExit=!1,t.withTransitionForTransform=x(t,"withTransitionForTransform",t.withTransition),i.updateSizes(),t.withLegend&&n.legend_show||(e=i.axis.generateTransitions(t.withTransitionForAxis?n.transition_duration:0),i.updateScales(),i.updateSvgSize(),i.transformAll(t.withTransitionForTransform,e)),i.redraw(t,e)},T.redrawWithoutRescale=function(){this.redraw({withY:!1,withSubchart:!1,withEventRect:!1,withTransitionForAxis:!1})},T.isTimeSeries=function(){return"timeseries"===this.config.axis_x_type},T.isCategorized=function(){return this.config.axis_x_type.indexOf("categor")>=0},T.isCustomX=function(){var t=this.config;return!this.isTimeSeries()&&(t.data_x||_(t.data_xs))},T.isTimeSeriesY=function(){return"timeseries"===this.config.axis_y_type},T.getTranslate=function(t){var e,i,n=this,a=n.config;return"main"===t?(e=g(n.margin.left),i=g(n.margin.top)):"context"===t?(e=g(n.margin2.left),i=g(n.margin2.top)):"legend"===t?(e=n.margin3.left,i=n.margin3.top):"x"===t?(e=0,i=a.axis_rotated?0:n.height):"y"===t?(e=0,i=a.axis_rotated?n.height:0):"y2"===t?(e=a.axis_rotated?0:n.width,i=a.axis_rotated?1:0):"subx"===t?(e=0,i=a.axis_rotated?0:n.height2):"arc"===t&&(e=n.arcWidth/2,i=n.arcHeight/2-(n.hasType("gauge")?6:0)),"translate("+e+","+i+")"},T.initialOpacity=function(t){return null!==t.value&&this.withoutFadeIn[t.id]?1:0},T.initialOpacityForCircle=function(t){return null!==t.value&&this.withoutFadeIn[t.id]?this.opacityForCircle(t):0},T.opacityForCircle=function(t){var e=(o(this.config.point_show)?this.config.point_show(t):this.config.point_show)?1:0;return s(t.value)?this.isScatterType(t)?.5:e:0},T.opacityForText=function(){return this.hasDataLabel()?1:0},T.xx=function(t){return t?this.x(t.x):null},T.xv=function(t){var e=this,i=t.value;return e.isTimeSeries()?i=e.parseDate(t.value):e.isCategorized()&&"string"==typeof t.value&&(i=e.config.axis_x_categories.indexOf(t.value)),Math.ceil(e.x(i))},T.yv=function(t){var e=t.axis&&"y2"===t.axis?this.y2:this.y;return Math.ceil(e(t.value))},T.subxx=function(t){return t?this.subX(t.x):null},T.transformMain=function(t,e){var n,a,r,s=this;e&&e.axisX?n=e.axisX:(n=s.main.select("."+i.axisX),t&&(n=n.transition())),e&&e.axisY?a=e.axisY:(a=s.main.select("."+i.axisY),t&&(a=a.transition())),e&&e.axisY2?r=e.axisY2:(r=s.main.select("."+i.axisY2),t&&(r=r.transition())),(t?s.main.transition():s.main).attr("transform",s.getTranslate("main")),n.attr("transform",s.getTranslate("x")),a.attr("transform",s.getTranslate("y")),r.attr("transform",s.getTranslate("y2")),s.main.select("."+i.chartArcs).attr("transform",s.getTranslate("arc"))},T.transformAll=function(t,e){var i=this;i.transformMain(t,e),i.config.subchart_show&&i.transformContext(t,e),i.legend&&i.transformLegend(t)},T.updateSvgSize=function(){var t=this,e=t.svg.select(".c3-brush .background");t.svg.attr("width",t.currentWidth).attr("height",t.currentHeight),t.svg.selectAll(["#"+t.clipId,"#"+t.clipIdForGrid]).select("rect").attr("width",t.width).attr("height",t.height),t.svg.select("#"+t.clipIdForXAxis).select("rect").attr("x",t.getXAxisClipX.bind(t)).attr("y",t.getXAxisClipY.bind(t)).attr("width",t.getXAxisClipWidth.bind(t)).attr("height",t.getXAxisClipHeight.bind(t)),t.svg.select("#"+t.clipIdForYAxis).select("rect").attr("x",t.getYAxisClipX.bind(t)).attr("y",t.getYAxisClipY.bind(t)).attr("width",t.getYAxisClipWidth.bind(t)).attr("height",t.getYAxisClipHeight.bind(t)),t.svg.select("#"+t.clipIdForSubchart).select("rect").attr("width",t.width).attr("height",e.size()?e.attr("height"):0),t.svg.select("."+i.zoomRect).attr("width",t.width).attr("height",t.height),t.selectChart.style("max-height",t.currentHeight+"px")},T.updateDimension=function(t){var e=this;t||(e.config.axis_rotated?(e.axes.x.call(e.xAxis),e.axes.subx.call(e.subXAxis)):(e.axes.y.call(e.yAxis),e.axes.y2.call(e.y2Axis))),e.updateSizes(),e.updateScales(),e.updateSvgSize(),e.transformAll(!1)},T.observeInserted=function(t){var e,i=this;"undefined"!=typeof MutationObserver?(e=new MutationObserver(function(n){n.forEach(function(n){"childList"===n.type&&n.previousSibling&&(e.disconnect(),i.intervalForObserveInserted=window.setInterval(function(){t.node().parentNode&&(window.clearInterval(i.intervalForObserveInserted),i.updateDimension(),i.brush&&i.brush.update(),i.config.oninit.call(i),i.redraw({withTransform:!0,withUpdateXDomain:!0,withUpdateOrgXDomain:!0,withTransition:!1,withTransitionForTransform:!1,withLegend:!0}),t.transition().style("opacity",1))},10))})})).observe(t.node(),{attributes:!0,childList:!0,characterData:!0}):window.console.error("MutationObserver not defined.")},T.bindResize=function(){var t=this,e=t.config;if(t.resizeFunction=t.generateResize(),t.resizeFunction.add(function(){e.onresize.call(t)}),e.resize_auto&&t.resizeFunction.add(function(){void 0!==t.resizeTimeout&&window.clearTimeout(t.resizeTimeout),t.resizeTimeout=window.setTimeout(function(){delete t.resizeTimeout,t.api.flush()},100)}),t.resizeFunction.add(function(){e.onresized.call(t)}),t.resizeIfElementDisplayed=function(){null!=t.api&&t.api.element.offsetParent&&t.resizeFunction()},window.attachEvent)window.attachEvent("onresize",t.resizeIfElementDisplayed);else if(window.addEventListener)window.addEventListener("resize",t.resizeIfElementDisplayed,!1);else{var i=window.onresize;i?i.add&&i.remove||(i=t.generateResize()).add(window.onresize):i=t.generateResize(),i.add(t.resizeFunction),window.onresize=function(){t.api.element.offsetParent&&i()}}},T.generateResize=function(){var t=[];function e(){t.forEach(function(t){t()})}return e.add=function(e){t.push(e)},e.remove=function(e){for(var i=0;ie.getTotalLength())break;i--}while(i>0);return i})),"SVGPathSegList"in window||(window.SVGPathSegList=function(t){this._pathElement=t,this._list=this._parsePath(this._pathElement.getAttribute("d")),this._mutationObserverConfig={attributes:!0,attributeFilter:["d"]},this._pathElementMutationObserver=new MutationObserver(this._updateListFromPathMutations.bind(this)),this._pathElementMutationObserver.observe(this._pathElement,this._mutationObserverConfig)},window.SVGPathSegList.prototype.classname="SVGPathSegList",Object.defineProperty(window.SVGPathSegList.prototype,"numberOfItems",{get:function(){return this._checkPathSynchronizedToList(),this._list.length},enumerable:!0}),Object.defineProperty(window.SVGPathElement.prototype,"pathSegList",{get:function(){return this._pathSegList||(this._pathSegList=new window.SVGPathSegList(this)),this._pathSegList},enumerable:!0}),Object.defineProperty(window.SVGPathElement.prototype,"normalizedPathSegList",{get:function(){return this.pathSegList},enumerable:!0}),Object.defineProperty(window.SVGPathElement.prototype,"animatedPathSegList",{get:function(){return this.pathSegList},enumerable:!0}),Object.defineProperty(window.SVGPathElement.prototype,"animatedNormalizedPathSegList",{get:function(){return this.pathSegList},enumerable:!0}),window.SVGPathSegList.prototype._checkPathSynchronizedToList=function(){this._updateListFromPathMutations(this._pathElementMutationObserver.takeRecords())},window.SVGPathSegList.prototype._updateListFromPathMutations=function(t){if(this._pathElement){var e=!1;t.forEach(function(t){"d"==t.attributeName&&(e=!0)}),e&&(this._list=this._parsePath(this._pathElement.getAttribute("d")))}},window.SVGPathSegList.prototype._writeListToPath=function(){this._pathElementMutationObserver.disconnect(),this._pathElement.setAttribute("d",window.SVGPathSegList._pathSegArrayAsString(this._list)),this._pathElementMutationObserver.observe(this._pathElement,this._mutationObserverConfig)},window.SVGPathSegList.prototype.segmentChanged=function(t){this._writeListToPath()},window.SVGPathSegList.prototype.clear=function(){this._checkPathSynchronizedToList(),this._list.forEach(function(t){t._owningPathSegList=null}),this._list=[],this._writeListToPath()},window.SVGPathSegList.prototype.initialize=function(t){return this._checkPathSynchronizedToList(),this._list=[t],t._owningPathSegList=this,this._writeListToPath(),t},window.SVGPathSegList.prototype._checkValidIndex=function(t){if(isNaN(t)||t<0||t>=this.numberOfItems)throw"INDEX_SIZE_ERR"},window.SVGPathSegList.prototype.getItem=function(t){return this._checkPathSynchronizedToList(),this._checkValidIndex(t),this._list[t]},window.SVGPathSegList.prototype.insertItemBefore=function(t,e){return this._checkPathSynchronizedToList(),e>this.numberOfItems&&(e=this.numberOfItems),t._owningPathSegList&&(t=t.clone()),this._list.splice(e,0,t),t._owningPathSegList=this,this._writeListToPath(),t},window.SVGPathSegList.prototype.replaceItem=function(t,e){return this._checkPathSynchronizedToList(),t._owningPathSegList&&(t=t.clone()),this._checkValidIndex(e),this._list[e]=t,t._owningPathSegList=this,this._writeListToPath(),t},window.SVGPathSegList.prototype.removeItem=function(t){this._checkPathSynchronizedToList(),this._checkValidIndex(t);var e=this._list[t];return this._list.splice(t,1),this._writeListToPath(),e},window.SVGPathSegList.prototype.appendItem=function(t){return this._checkPathSynchronizedToList(),t._owningPathSegList&&(t=t.clone()),this._list.push(t),t._owningPathSegList=this,this._writeListToPath(),t},window.SVGPathSegList._pathSegArrayAsString=function(t){var e="",i=!0;return t.forEach(function(t){i?(i=!1,e+=t._asPathString()):e+=" "+t._asPathString()}),e},window.SVGPathSegList.prototype._parsePath=function(t){if(!t||0==t.length)return[];var e=this,i=function(){this.pathSegList=[]};i.prototype.appendSegment=function(t){this.pathSegList.push(t)};var n=function(t){this._string=t,this._currentIndex=0,this._endIndex=this._string.length,this._previousCommand=window.SVGPathSeg.PATHSEG_UNKNOWN,this._skipOptionalSpaces()};n.prototype._isCurrentSpace=function(){var t=this._string[this._currentIndex];return t<=" "&&(" "==t||"\n"==t||"\t"==t||"\r"==t||"\f"==t)},n.prototype._skipOptionalSpaces=function(){for(;this._currentIndex="0"&&t<="9")&&e!=window.SVGPathSeg.PATHSEG_CLOSEPATH?e==window.SVGPathSeg.PATHSEG_MOVETO_ABS?window.SVGPathSeg.PATHSEG_LINETO_ABS:e==window.SVGPathSeg.PATHSEG_MOVETO_REL?window.SVGPathSeg.PATHSEG_LINETO_REL:e:window.SVGPathSeg.PATHSEG_UNKNOWN},n.prototype.initialCommandIsMoveTo=function(){if(!this.hasMoreData())return!0;var t=this.peekSegmentType();return t==window.SVGPathSeg.PATHSEG_MOVETO_ABS||t==window.SVGPathSeg.PATHSEG_MOVETO_REL},n.prototype._parseNumber=function(){var t=0,e=0,i=1,n=0,a=1,r=1,s=this._currentIndex;if(this._skipOptionalSpaces(),this._currentIndex"9")&&"."!=this._string.charAt(this._currentIndex))){for(var o=this._currentIndex;this._currentIndex="0"&&this._string.charAt(this._currentIndex)<="9";)this._currentIndex++;if(this._currentIndex!=o)for(var c=this._currentIndex-1,d=1;c>=o;)e+=d*(this._string.charAt(c--)-"0"),d*=10;if(this._currentIndex=this._endIndex||this._string.charAt(this._currentIndex)<"0"||this._string.charAt(this._currentIndex)>"9")return;for(;this._currentIndex="0"&&this._string.charAt(this._currentIndex)<="9";)i*=10,n+=(this._string.charAt(this._currentIndex)-"0")/i,this._currentIndex+=1}if(this._currentIndex!=s&&this._currentIndex+1=this._endIndex||this._string.charAt(this._currentIndex)<"0"||this._string.charAt(this._currentIndex)>"9")return;for(;this._currentIndex="0"&&this._string.charAt(this._currentIndex)<="9";)t*=10,t+=this._string.charAt(this._currentIndex)-"0",this._currentIndex++}var l=e+n;if(l*=a,t&&(l*=Math.pow(10,r*t)),s!=this._currentIndex)return this._skipOptionalSpacesOrDelimiter(),l}},n.prototype._parseArcFlag=function(){if(!(this._currentIndex>=this._endIndex)){var t=!1,e=this._string.charAt(this._currentIndex++);if("0"==e)t=!1;else{if("1"!=e)return;t=!0}return this._skipOptionalSpacesOrDelimiter(),t}},n.prototype.parseSegment=function(){var t=this._string[this._currentIndex],i=this._pathSegTypeFromChar(t);if(i==window.SVGPathSeg.PATHSEG_UNKNOWN){if(this._previousCommand==window.SVGPathSeg.PATHSEG_UNKNOWN)return null;if((i=this._nextCommandHelper(t,this._previousCommand))==window.SVGPathSeg.PATHSEG_UNKNOWN)return null}else this._currentIndex++;switch(this._previousCommand=i,i){case window.SVGPathSeg.PATHSEG_MOVETO_REL:return new window.SVGPathSegMovetoRel(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_MOVETO_ABS:return new window.SVGPathSegMovetoAbs(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_REL:return new window.SVGPathSegLinetoRel(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_ABS:return new window.SVGPathSegLinetoAbs(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL:return new window.SVGPathSegLinetoHorizontalRel(e,this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS:return new window.SVGPathSegLinetoHorizontalAbs(e,this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL:return new window.SVGPathSegLinetoVerticalRel(e,this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS:return new window.SVGPathSegLinetoVerticalAbs(e,this._parseNumber());case window.SVGPathSeg.PATHSEG_CLOSEPATH:return this._skipOptionalSpaces(),new window.SVGPathSegClosePath(e);case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL:var n={x1:this._parseNumber(),y1:this._parseNumber(),x2:this._parseNumber(),y2:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()};return new window.SVGPathSegCurvetoCubicRel(e,n.x,n.y,n.x1,n.y1,n.x2,n.y2);case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS:return n={x1:this._parseNumber(),y1:this._parseNumber(),x2:this._parseNumber(),y2:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoCubicAbs(e,n.x,n.y,n.x1,n.y1,n.x2,n.y2);case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:return n={x2:this._parseNumber(),y2:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoCubicSmoothRel(e,n.x,n.y,n.x2,n.y2);case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:return n={x2:this._parseNumber(),y2:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoCubicSmoothAbs(e,n.x,n.y,n.x2,n.y2);case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL:return n={x1:this._parseNumber(),y1:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoQuadraticRel(e,n.x,n.y,n.x1,n.y1);case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS:return n={x1:this._parseNumber(),y1:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoQuadraticAbs(e,n.x,n.y,n.x1,n.y1);case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:return new window.SVGPathSegCurvetoQuadraticSmoothRel(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:return new window.SVGPathSegCurvetoQuadraticSmoothAbs(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_ARC_REL:return n={x1:this._parseNumber(),y1:this._parseNumber(),arcAngle:this._parseNumber(),arcLarge:this._parseArcFlag(),arcSweep:this._parseArcFlag(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegArcRel(e,n.x,n.y,n.x1,n.y1,n.arcAngle,n.arcLarge,n.arcSweep);case window.SVGPathSeg.PATHSEG_ARC_ABS:return n={x1:this._parseNumber(),y1:this._parseNumber(),arcAngle:this._parseNumber(),arcLarge:this._parseArcFlag(),arcSweep:this._parseArcFlag(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegArcAbs(e,n.x,n.y,n.x1,n.y1,n.arcAngle,n.arcLarge,n.arcSweep);default:throw"Unknown path seg type."}};var a=new i,r=new n(t);if(!r.initialCommandIsMoveTo())return[];for(;r.hasMoreData();){var s=r.parseSegment();if(!s)return[];a.appendSegment(s)}return a.pathSegList}),String.prototype.padEnd||(String.prototype.padEnd=function(t,e){return t>>=0,e=String(void 0!==e?e:" "),this.length>t?String(this):((t-=this.length)>e.length&&(e+=e.repeat(t/e.length)),String(this)+e.slice(0,t))}),b.axis=function(){},b.axis.labels=function(t){var e=this.internal;arguments.length&&(Object.keys(t).forEach(function(i){e.axis.setLabelText(i,t[i])}),e.axis.updateLabels())},b.axis.max=function(t){var e=this.internal,i=e.config;if(!arguments.length)return{x:i.axis_x_max,y:i.axis_y_max,y2:i.axis_y2_max};"object"===(void 0===t?"undefined":n(t))?(s(t.x)&&(i.axis_x_max=t.x),s(t.y)&&(i.axis_y_max=t.y),s(t.y2)&&(i.axis_y2_max=t.y2)):i.axis_y_max=i.axis_y2_max=t,e.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0})},b.axis.min=function(t){var e=this.internal,i=e.config;if(!arguments.length)return{x:i.axis_x_min,y:i.axis_y_min,y2:i.axis_y2_min};"object"===(void 0===t?"undefined":n(t))?(s(t.x)&&(i.axis_x_min=t.x),s(t.y)&&(i.axis_y_min=t.y),s(t.y2)&&(i.axis_y2_min=t.y2)):i.axis_y_min=i.axis_y2_min=t,e.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0})},b.axis.range=function(t){if(!arguments.length)return{max:this.axis.max(),min:this.axis.min()};u(t.max)&&this.axis.max(t.max),u(t.min)&&this.axis.min(t.min)},b.category=function(t,e){var i=this.internal,n=i.config;return arguments.length>1&&(n.axis_x_categories[t]=e,i.redraw()),n.axis_x_categories[t]},b.categories=function(t){var e=this.internal,i=e.config;return arguments.length?(i.axis_x_categories=t,e.redraw(),i.axis_x_categories):i.axis_x_categories},b.resize=function(t){var e=this.internal.config;e.size_width=t?t.width:null,e.size_height=t?t.height:null,this.flush()},b.flush=function(){this.internal.updateAndRedraw({withLegend:!0,withTransition:!1,withTransitionForTransform:!1})},b.destroy=function(){var t=this.internal;if(window.clearInterval(t.intervalForObserveInserted),void 0!==t.resizeTimeout&&window.clearTimeout(t.resizeTimeout),window.detachEvent)window.detachEvent("onresize",t.resizeIfElementDisplayed);else if(window.removeEventListener)window.removeEventListener("resize",t.resizeIfElementDisplayed);else{var e=window.onresize;e&&e.add&&e.remove&&e.remove(t.resizeFunction)}return t.resizeFunction.remove(),t.selectChart.classed("c3",!1).html(""),Object.keys(t).forEach(function(e){t[e]=null}),null},b.color=function(t){return this.internal.color(t)},b.data=function(t){var e=this.internal.data.targets;return void 0===t?e:e.filter(function(e){return[].concat(t).indexOf(e.id)>=0})},b.data.shown=function(t){return this.internal.filterTargetsToShow(this.data(t))},b.data.values=function(t){var e,i=null;return t&&(i=(e=this.data(t))[0]?e[0].values.map(function(t){return t.value}):null),i},b.data.names=function(t){return this.internal.clearLegendItemTextBoxCache(),this.internal.updateDataAttributes("names",t)},b.data.colors=function(t){return this.internal.updateDataAttributes("colors",t)},b.data.axes=function(t){return this.internal.updateDataAttributes("axes",t)},b.flow=function(t){var e,i,n,a,r,o,c,d=this.internal,l=[],h=d.getMaxDataCount(),g=0,f=0;if(t.json)i=d.convertJsonToData(t.json,t.keys);else if(t.rows)i=d.convertRowsToData(t.rows);else{if(!t.columns)return;i=d.convertColumnsToData(t.columns)}e=d.convertDataToTargets(i,!0),d.data.targets.forEach(function(t){var i,n,a=!1;for(i=0;i1?a.values[a.values.length-1].x-r.x:r.x-d.getXDomain(d.data.targets)[0]:1,n=[r.x-o,r.x],d.updateXDomain(null,!0,!0,!1,n)),d.updateTargets(d.data.targets),d.redraw({flow:{index:r.index,length:g,duration:s(t.duration)?t.duration:d.config.transition_duration,done:t.done,orgDataCount:h},withLegend:!0,withTransition:h>1,withTrimXDomain:!1,withUpdateXAxis:!0})},T.generateFlow=function(t){var e=this,n=e.config,a=e.d3;return function(){var r,s,o,c,d=t.targets,l=t.flow,u=t.drawBar,h=t.drawLine,g=t.drawArea,p=t.cx,_=t.cy,x=t.xv,y=t.xForText,m=t.yForText,S=t.duration,w=l.index,v=l.length,b=e.getValueOnIndex(e.data.targets[0].values,w),T=e.getValueOnIndex(e.data.targets[0].values,w+v),A=e.x.domain(),P=l.duration||S,C=l.done||function(){},L=e.generateWait(),V=e.xgrid||a.selectAll([]),G=e.xgridLines||a.selectAll([]),E=e.mainRegion||a.selectAll([]),O=e.mainText||a.selectAll([]),I=e.mainBar||a.selectAll([]),R=e.mainLine||a.selectAll([]),k=e.mainArea||a.selectAll([]),D=e.mainCircle||a.selectAll([]);e.flowing=!0,e.data.targets.forEach(function(t){t.values.splice(0,v)}),c=e.updateXDomain(d,!0,!0),e.updateXGrid&&e.updateXGrid(!0),l.orgDataCount?r=1===l.orgDataCount||(b&&b.x)===(T&&T.x)?e.x(A[0])-e.x(c[0]):e.isTimeSeries()?e.x(A[0])-e.x(c[0]):e.x(b.x)-e.x(T.x):1!==e.data.targets[0].values.length?r=e.x(A[0])-e.x(c[0]):e.isTimeSeries()?(b=e.getValueOnIndex(e.data.targets[0].values,0),T=e.getValueOnIndex(e.data.targets[0].values,e.data.targets[0].values.length-1),r=e.x(b.x)-e.x(T.x)):r=f(c)/2,s=f(A)/f(c),o="translate("+r+",0) scale("+s+",1)",e.hideXGridFocus(),a.transition().ease("linear").duration(P).each(function(){L.add(e.axes.x.transition().call(e.xAxis)),L.add(I.transition().attr("transform",o)),L.add(R.transition().attr("transform",o)),L.add(k.transition().attr("transform",o)),L.add(D.transition().attr("transform",o)),L.add(O.transition().attr("transform",o)),L.add(E.filter(e.isRegionOnX).transition().attr("transform",o)),L.add(V.transition().attr("transform",o)),L.add(G.transition().attr("transform",o))}).call(L,function(){var t,a=[],r=[],s=[];if(v){for(t=0;t=0&&(e=!0)}),!e)}),s.regions},b.selected=function(t){var e=this.internal,n=e.d3;return n.merge(e.main.selectAll("."+i.shapes+e.getTargetSelectorSuffix(t)).selectAll("."+i.shape).filter(function(){return n.select(this).classed(i.SELECTED)}).map(function(t){return t.map(function(t){var e=t.__data__;return e.data?e.data:e})}))},b.select=function(t,e,n){var a=this.internal,r=a.d3,s=a.config;s.data_selection_enabled&&a.main.selectAll("."+i.shapes).selectAll("."+i.shape).each(function(o,c){var d=r.select(this),l=o.data?o.data.id:o.id,h=a.getToggle(this,o).bind(a),g=s.data_selection_grouped||!t||t.indexOf(l)>=0,f=!e||e.indexOf(c)>=0,p=d.classed(i.SELECTED);d.classed(i.line)||d.classed(i.area)||(g&&f?s.data_selection_isselectable(o)&&!p&&h(!0,d.classed(i.SELECTED,!0),o,c):u(n)&&n&&p&&h(!1,d.classed(i.SELECTED,!1),o,c))})},b.unselect=function(t,e){var n=this.internal,a=n.d3,r=n.config;r.data_selection_enabled&&n.main.selectAll("."+i.shapes).selectAll("."+i.shape).each(function(s,o){var c=a.select(this),d=s.data?s.data.id:s.id,l=n.getToggle(this,s).bind(n),u=r.data_selection_grouped||!t||t.indexOf(d)>=0,h=!e||e.indexOf(o)>=0,g=c.classed(i.SELECTED);c.classed(i.line)||c.classed(i.area)||u&&h&&r.data_selection_isselectable(s)&&g&&l(!1,c.classed(i.SELECTED,!1),s,o)})},b.show=function(t,e){var i,n=this.internal;t=n.mapToTargetIds(t),e=e||{},n.removeHiddenTargetIds(t),(i=n.svg.selectAll(n.selectorTargets(t))).transition().style("opacity",1,"important").call(n.endall,function(){i.style("opacity",null).style("opacity",1)}),e.withLegend&&n.showLegend(t),n.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0,withLegend:!0})},b.hide=function(t,e){var i,n=this.internal;t=n.mapToTargetIds(t),e=e||{},n.addHiddenTargetIds(t),(i=n.svg.selectAll(n.selectorTargets(t))).transition().style("opacity",0,"important").call(n.endall,function(){i.style("opacity",null).style("opacity",0)}),e.withLegend&&n.hideLegend(t),n.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0,withLegend:!0})},b.toggle=function(t,e){var i=this,n=this.internal;n.mapToTargetIds(t).forEach(function(t){n.isTargetToShow(t)?i.hide(t,e):i.show(t,e)})},b.tooltip=function(){},b.tooltip.show=function(t){var e,i,n=this.internal;t.mouse&&(i=t.mouse),t.data?n.isMultipleX()?(i=[n.x(t.data.x),n.getYScale(t.data.id)(t.data.value)],e=null):e=s(t.data.index)?t.data.index:n.getIndexByX(t.data.x):void 0!==t.x?e=n.getIndexByX(t.x):void 0!==t.index&&(e=t.index),n.dispatchEvent("mouseover",e,i),n.dispatchEvent("mousemove",e,i),n.config.tooltip_onshow.call(n,t.data)},b.tooltip.hide=function(){this.internal.dispatchEvent("mouseout",0),this.internal.config.tooltip_onhide.call(this)},b.transform=function(t,e){var i=this.internal,n=["pie","donut"].indexOf(t)>=0?{withTransform:!0}:null;i.transformTo(e,t,n)},T.transformTo=function(t,e,i){var n=this,a=!n.hasArcType(),r=i||{withTransitionForAxis:a};r.withTransitionForTransform=!1,n.transiting=!1,n.setTargetType(t,e),n.updateTargets(n.data.targets),n.updateAndRedraw(r)},b.x=function(t){var e=this.internal;return arguments.length&&(e.updateTargetX(e.data.targets,t),e.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0})),e.data.xs},b.xs=function(t){var e=this.internal;return arguments.length&&(e.updateTargetXs(e.data.targets,t),e.redraw({withUpdateOrgXDomain:!0,withUpdateXDomain:!0})),e.data.xs},b.zoom=function(t){var e=this.internal;return t&&(e.isTimeSeries()&&(t=t.map(function(t){return e.parseDate(t)})),e.brush.extent(t),e.redraw({withUpdateXDomain:!0,withY:e.config.zoom_rescale}),e.config.zoom_onzoom.call(this,e.x.orgDomain())),e.brush.extent()},b.zoom.enable=function(t){var e=this.internal;e.config.zoom_enabled=t,e.updateAndRedraw()},b.unzoom=function(){var t=this.internal;t.brush.clear().update(),t.redraw({withUpdateXDomain:!0})},b.zoom.max=function(t){var e=this.internal,i=e.config,n=e.d3;if(0!==t&&!t)return i.zoom_x_max;i.zoom_x_max=n.max([e.orgXDomain[1],t])},b.zoom.min=function(t){var e=this.internal,i=e.config,n=e.d3;if(0!==t&&!t)return i.zoom_x_min;i.zoom_x_min=n.min([e.orgXDomain[0],t])},b.zoom.range=function(t){if(!arguments.length)return{max:this.domain.max(),min:this.domain.min()};u(t.max)&&this.domain.max(t.max),u(t.min)&&this.domain.min(t.min)},T.initPie=function(){var t=this.d3;this.pie=t.layout.pie().value(function(t){return t.values.reduce(function(t,e){return t+e.value},0)}),this.pie.sort(this.getOrderFunction()||null)},T.updateRadius=function(){var t=this,e=t.config,i=e.gauge_width||e.donut_width,n=t.filterTargetsToShow(t.data.targets).length*t.config.gauge_arcs_minWidth;t.radiusExpanded=Math.min(t.arcWidth,t.arcHeight)/2*(t.hasType("gauge")?.85:1),t.radius=.95*t.radiusExpanded,t.innerRadiusRatio=i?(t.radius-i)/t.radius:.6,t.innerRadius=t.hasType("donut")||t.hasType("gauge")?t.radius*t.innerRadiusRatio:0,t.gaugeArcWidth=i||(n<=t.radius-t.innerRadius?t.radius-t.innerRadius:n<=t.radius?n:t.radius)},T.updateArc=function(){var t=this;t.svgArc=t.getSvgArc(),t.svgArcExpanded=t.getSvgArcExpanded(),t.svgArcExpandedSub=t.getSvgArcExpanded(.98)},T.updateAngle=function(t){var e,i,n,a,r=this,s=r.config,o=!1,c=0;return s?(r.pie(r.filterTargetsToShow(r.data.targets)).forEach(function(e){o||e.data.id!==t.data.id||(o=!0,(t=e).index=c),c++}),isNaN(t.startAngle)&&(t.startAngle=0),isNaN(t.endAngle)&&(t.endAngle=t.startAngle),r.isGaugeType(t.data)&&(e=s.gauge_min,i=s.gauge_max,n=Math.PI*(s.gauge_fullCircle?2:1)/(i-e),a=t.value.375?1.175-36/s.radius:.8)*s.radius/a:0)+","+n*r+")";else if(d&&u&&s.filterTargetsToShow(s.data.targets).length>1){var h=Math.sin(d.endAngle-Math.PI/2);l="translate("+(i=Math.cos(d.endAngle-Math.PI/2)*(s.radiusExpanded+25))+","+(n=h*(s.radiusExpanded+15-Math.abs(10*h))+3)+")"}return l},T.getArcRatio=function(t){var e=this.config,i=Math.PI*(this.hasType("gauge")&&!e.gauge_fullCircle?1:2);return t?(t.endAngle-t.startAngle)/i:null},T.convertToArcData=function(t){return this.addName({id:t.data.id,value:t.value,ratio:this.getArcRatio(t),index:t.index})},T.textForArcLabel=function(t){var e,i,n,a,r,s=this;return s.shouldShowArcLabel()?(i=(e=s.updateAngle(t))?e.value:null,n=s.getArcRatio(e),a=t.data.id,s.hasType("gauge")||s.meetsArcLabelThreshold(n)?(r=s.getArcLabelFormat())?r(i,n,a):s.defaultArcValueFormat(i,n):""):""},T.textForGaugeMinMax=function(t,e){var i=this.getGaugeLabelExtents();return i?i(t,e):t},T.expandArc=function(t){var e,n=this;n.transiting?e=window.setInterval(function(){n.transiting||(window.clearInterval(e),n.legend.selectAll(".c3-legend-item-focused").size()>0&&n.expandArc(t))},10):(t=n.mapToTargetIds(t),n.svg.selectAll(n.selectorTargets(t,"."+i.chartArc)).each(function(t){n.shouldExpand(t.data.id)&&n.d3.select(this).selectAll("path").transition().duration(n.expandDuration(t.data.id)).attr("d",n.svgArcExpanded).transition().duration(2*n.expandDuration(t.data.id)).attr("d",n.svgArcExpandedSub).each(function(t){n.isDonutType(t.data)})}))},T.unexpandArc=function(t){var e=this;e.transiting||(t=e.mapToTargetIds(t),e.svg.selectAll(e.selectorTargets(t,"."+i.chartArc)).selectAll("path").transition().duration(function(t){return e.expandDuration(t.data.id)}).attr("d",e.svgArc),e.svg.selectAll("."+i.arc))},T.expandDuration=function(t){var e=this.config;return this.isDonutType(t)?e.donut_expand_duration:this.isGaugeType(t)?e.gauge_expand_duration:this.isPieType(t)?e.pie_expand_duration:50},T.shouldExpand=function(t){var e=this.config;return this.isDonutType(t)&&e.donut_expand||this.isGaugeType(t)&&e.gauge_expand||this.isPieType(t)&&e.pie_expand},T.shouldShowArcLabel=function(){var t=this.config,e=!0;return this.hasType("donut")?e=t.donut_label_show:this.hasType("pie")&&(e=t.pie_label_show),e},T.meetsArcLabelThreshold=function(t){var e=this.config;return t>=(this.hasType("donut")?e.donut_label_threshold:e.pie_label_threshold)},T.getArcLabelFormat=function(){var t=this.config,e=t.pie_label_format;return this.hasType("gauge")?e=t.gauge_label_format:this.hasType("donut")&&(e=t.donut_label_format),e},T.getGaugeLabelExtents=function(){return this.config.gauge_label_extents},T.getArcTitle=function(){return this.hasType("donut")?this.config.donut_title:""},T.updateTargetsForArc=function(t){var e,n=this,a=n.main,r=n.classChartArc.bind(n),s=n.classArcs.bind(n),o=n.classFocus.bind(n);(e=a.select("."+i.chartArcs).selectAll("."+i.chartArc).data(n.pie(t)).attr("class",function(t){return r(t)+o(t.data)}).enter().append("g").attr("class",r)).append("g").attr("class",s),e.append("text").attr("dy",n.hasType("gauge")?"-.1em":".35em").style("opacity",0).style("text-anchor","middle").style("pointer-events","none")},T.initArc=function(){var t=this;t.arcs=t.main.select("."+i.chart).append("g").attr("class",i.chartArcs).attr("transform",t.getTranslate("arc")),t.arcs.append("text").attr("class",i.chartArcsTitle).style("text-anchor","middle").text(t.getArcTitle())},T.redrawArc=function(t,e,n){var a,r,s,o=this,c=o.d3,d=o.config,l=o.main,u=o.hasType("gauge");if((a=l.selectAll("."+i.arcs).selectAll("."+i.arc).data(o.arcData.bind(o))).enter().append("path").attr("class",o.classArc.bind(o)).style("fill",function(t){return o.color(t.data)}).style("cursor",function(t){return d.interaction_enabled&&d.data_selection_isselectable(t)?"pointer":null}).each(function(t){o.isGaugeType(t.data)&&(t.startAngle=t.endAngle=d.gauge_startingAngle),this._current=t}),u&&((s=l.selectAll("."+i.arcs).selectAll("."+i.arcLabelLine).data(o.arcData.bind(o))).enter().append("rect").attr("class",function(t){return i.arcLabelLine+" "+i.target+" "+i.target+"-"+t.data.id}),1===o.filterTargetsToShow(o.data.targets).length?s.style("display","none"):s.style("fill",function(t){return d.color_pattern.length>0?o.levelColor(t.data.values[0].value):o.color(t.data)}).style("display",d.gauge_labelLine_show?"":"none").each(function(t){var e=0,i=0,n=0,a="";if(o.hiddenTargetIds.indexOf(t.data.id)<0){var r=o.updateAngle(t),s=o.gaugeArcWidth/o.filterTargetsToShow(o.data.targets).length*(r.index+1),d=r.endAngle-Math.PI/2,l=o.radius-s,u=d-(0===l?0:1/l);e=o.radiusExpanded-o.radius+s,i=Math.cos(u)*l,n=Math.sin(u)*l,a="rotate("+180*d/Math.PI+", "+i+", "+n+")"}c.select(this).attr({x:i,y:n,width:e,height:2,transform:a}).style("stroke-dasharray","0, "+(e+2)+", 0")})),a.attr("transform",function(t){return!o.isGaugeType(t.data)&&n?"scale(0)":""}).on("mouseover",d.interaction_enabled?function(t){var e,i;o.transiting||(e=o.updateAngle(t))&&(i=o.convertToArcData(e),o.expandArc(e.data.id),o.api.focus(e.data.id),o.toggleFocusLegend(e.data.id,!0),o.config.data_onmouseover(i,this))}:null).on("mousemove",d.interaction_enabled?function(t){var e,i=o.updateAngle(t);i&&(e=[o.convertToArcData(i)],o.showTooltip(e,this))}:null).on("mouseout",d.interaction_enabled?function(t){var e,i;o.transiting||(e=o.updateAngle(t))&&(i=o.convertToArcData(e),o.unexpandArc(e.data.id),o.api.revert(),o.revertLegend(),o.hideTooltip(),o.config.data_onmouseout(i,this))}:null).on("click",d.interaction_enabled?function(t,e){var i,n=o.updateAngle(t);n&&(i=o.convertToArcData(n),o.toggleShape&&o.toggleShape(this,i,e),o.config.data_onclick.call(o.api,i,this))}:null).each(function(){o.transiting=!0}).transition().duration(t).attrTween("d",function(t){var e,i=o.updateAngle(t);return i?(isNaN(this._current.startAngle)&&(this._current.startAngle=0),isNaN(this._current.endAngle)&&(this._current.endAngle=this._current.startAngle),e=c.interpolate(this._current,i),this._current=e(0),function(i){var n=e(i);return n.data=t.data,o.getArc(n,!0)}):function(){return"M 0 0"}}).attr("transform",n?"scale(1)":"").style("fill",function(t){return o.levelColor?o.levelColor(t.data.values[0].value):o.color(t.data.id)}).call(o.endall,function(){o.transiting=!1}),a.exit().transition().duration(e).style("opacity",0).remove(),l.selectAll("."+i.chartArc).select("text").style("opacity",0).attr("class",function(t){return o.isGaugeType(t.data)?i.gaugeValue:""}).text(o.textForArcLabel.bind(o)).attr("transform",o.transformForArcLabel.bind(o)).style("font-size",function(t){return o.isGaugeType(t.data)&&1===o.filterTargetsToShow(o.data.targets).length?Math.round(o.radius/5)+"px":""}).transition().duration(t).style("opacity",function(t){return o.isTargetToShow(t.data.id)&&o.isArcType(t.data)?1:0}),l.select("."+i.chartArcsTitle).style("opacity",o.hasType("donut")||u?1:0),u){var h=0;(r=o.arcs.select("g."+i.chartArcsBackground).selectAll("path."+i.chartArcsBackground).data(o.data.targets)).enter().append("path"),r.attr("class",function(t,e){return i.chartArcsBackground+" "+i.chartArcsBackground+"-"+e}).attr("d",function(t){if(o.hiddenTargetIds.indexOf(t.id)>=0)return"M 0 0";var e={data:[{value:d.gauge_max}],startAngle:d.gauge_startingAngle,endAngle:-1*d.gauge_startingAngle*(d.gauge_fullCircle?Math.PI:1),index:h++};return o.getArc(e,!0,!0)}),r.exit().remove(),o.arcs.select("."+i.chartArcsGaugeUnit).attr("dy",".75em").text(d.gauge_label_show?d.gauge_units:""),o.arcs.select("."+i.chartArcsGaugeMin).attr("dx",-1*(o.innerRadius+(o.radius-o.innerRadius)/(d.gauge_fullCircle?1:2))+"px").attr("dy","1.2em").text(d.gauge_label_show?o.textForGaugeMinMax(d.gauge_min,!1):""),o.arcs.select("."+i.chartArcsGaugeMax).attr("dx",o.innerRadius+(o.radius-o.innerRadius)/(d.gauge_fullCircle?1:2)+"px").attr("dy","1.2em").text(d.gauge_label_show?o.textForGaugeMinMax(d.gauge_max,!0):"")}},T.initGauge=function(){var t=this.arcs;this.hasType("gauge")&&(t.append("g").attr("class",i.chartArcsBackground),t.append("text").attr("class",i.chartArcsGaugeUnit).style("text-anchor","middle").style("pointer-events","none"),t.append("text").attr("class",i.chartArcsGaugeMin).style("text-anchor","middle").style("pointer-events","none"),t.append("text").attr("class",i.chartArcsGaugeMax).style("text-anchor","middle").style("pointer-events","none"))},T.getGaugeLabelHeight=function(){return this.config.gauge_label_show?20:0},T.hasCaches=function(t){for(var e=0;e=0?i.focused:"")},T.classDefocused=function(t){return" "+(this.defocusedTargetIds.indexOf(t.id)>=0?i.defocused:"")},T.classChartText=function(t){return i.chartText+this.classTarget(t.id)},T.classChartLine=function(t){return i.chartLine+this.classTarget(t.id)},T.classChartBar=function(t){return i.chartBar+this.classTarget(t.id)},T.classChartArc=function(t){return i.chartArc+this.classTarget(t.data.id)},T.getTargetSelectorSuffix=function(t){return t||0===t?("-"+t).replace(/[\s?!@#$%^&*()_=+,.<>'":;\[\]\/|~`{}\\]/g,"-"):""},T.selectorTarget=function(t,e){return(e||"")+"."+i.target+this.getTargetSelectorSuffix(t)},T.selectorTargets=function(t,e){var i=this;return(t=t||[]).length?t.map(function(t){return i.selectorTarget(t,e)}):null},T.selectorLegend=function(t){return"."+i.legendItem+this.getTargetSelectorSuffix(t)},T.selectorLegends=function(t){var e=this;return t&&t.length?t.map(function(t){return e.selectorLegend(t)}):null},T.getClipPath=function(t){return"url("+(window.navigator.appVersion.toLowerCase().indexOf("msie 9.")>=0?"":document.URL.split("#")[0])+"#"+t+")"},T.appendClip=function(t,e){return t.append("clipPath").attr("id",e).append("rect")},T.getAxisClipX=function(t){var e=Math.max(30,this.margin.left);return t?-(1+e):-(e-1)},T.getAxisClipY=function(t){return t?-20:-this.margin.top},T.getXAxisClipX=function(){return this.getAxisClipX(!this.config.axis_rotated)},T.getXAxisClipY=function(){return this.getAxisClipY(!this.config.axis_rotated)},T.getYAxisClipX=function(){return this.config.axis_y_inner?-1:this.getAxisClipX(this.config.axis_rotated)},T.getYAxisClipY=function(){return this.getAxisClipY(this.config.axis_rotated)},T.getAxisClipWidth=function(t){var e=Math.max(30,this.margin.left),i=Math.max(30,this.margin.right);return t?this.width+2+e+i:this.margin.left+20},T.getAxisClipHeight=function(t){return(t?this.margin.bottom:this.margin.top+this.height)+20},T.getXAxisClipWidth=function(){return this.getAxisClipWidth(!this.config.axis_rotated)},T.getXAxisClipHeight=function(){return this.getAxisClipHeight(!this.config.axis_rotated)},T.getYAxisClipWidth=function(){return this.getAxisClipWidth(this.config.axis_rotated)+(this.config.axis_y_inner?20:0)},T.getYAxisClipHeight=function(){return this.getAxisClipHeight(this.config.axis_rotated)},T.generateColor=function(){var t=this.config,e=this.d3,i=t.data_colors,n=_(t.color_pattern)?t.color_pattern:e.scale.category10().range(),a=t.data_color,r=[];return function(t){var e,s=t.id||t.data&&t.data.id||t;return i[s]instanceof Function?e=i[s](t):i[s]?e=i[s]:(r.indexOf(s)<0&&r.push(s),e=n[r.indexOf(s)%n.length],i[s]=e),a instanceof Function?a(e,t):e}},T.generateLevelColor=function(){var t=this.config,e=t.color_pattern,i=t.color_threshold,n="value"===i.unit,a=i.values&&i.values.length?i.values:[],r=i.max||100;return _(t.color_threshold)?function(t){var i,s=e[e.length-1];for(i=0;i=0?n.data.xs[i]=(e&&n.data.xs[i]?n.data.xs[i]:[]).concat(t.map(function(t){return t[r]}).filter(s).map(function(t,e){return n.generateTargetX(t,i,e)})):a.data_x?n.data.xs[i]=n.getOtherTargetXs():_(a.data_xs)&&(n.data.xs[i]=n.getXValuesOfXKey(r,n.data.targets)):n.data.xs[i]=t.map(function(t,e){return e})}),r.forEach(function(t){if(!n.data.xs[t])throw new Error('x is not defined for id = "'+t+'".')}),(i=r.map(function(e,i){var r=a.data_idConverter(e);return{id:r,id_org:e,values:t.map(function(t,s){var o,c=t[n.getXKey(e)],d=null===t[e]||isNaN(t[e])?null:+t[e];return n.isCustomX()&&n.isCategorized()&&!l(c)?(0===i&&0===s&&(a.axis_x_categories=[]),-1===(o=a.axis_x_categories.indexOf(c))&&(o=a.axis_x_categories.length,a.axis_x_categories.push(c))):o=n.generateTargetX(c,e,s),(l(t[e])||n.data.xs[e].length<=s)&&(o=void 0),{x:o,value:d,id:r}}).filter(function(t){return u(t.x)})}})).forEach(function(t){var e;a.data_xSort&&(t.values=t.values.sort(function(t,e){return(t.x||0===t.x?t.x:1/0)-(e.x||0===e.x?e.x:1/0)})),e=0,t.values.forEach(function(t){t.index=e++}),n.data.xs[t.id].sort(function(t,e){return t-e})}),n.hasNegativeValue=n.hasNegativeValueInTargets(i),n.hasPositiveValue=n.hasPositiveValueInTargets(i),a.data_type&&n.setTargetType(n.mapToIds(i).filter(function(t){return!(t in a.data_types)}),a.data_type),i.forEach(function(t){n.addCache(t.id_org,t)}),i},T.isX=function(t){var e=this.config;return e.data_x&&t===e.data_x||_(e.data_xs)&&y(e.data_xs,t)},T.isNotX=function(t){return!this.isX(t)},T.getXKey=function(t){var e=this.config;return e.data_x?e.data_x:_(e.data_xs)?e.data_xs[t]:null},T.getXValuesOfXKey=function(t,e){var i,n=this;return(e&&_(e)?n.mapToIds(e):[]).forEach(function(e){n.getXKey(e)===t&&(i=n.data.xs[e])}),i},T.getIndexByX=function(t){var e=this.filterByX(this.data.targets,t);return e.length?e[0].index:null},T.getXValue=function(t,e){return t in this.data.xs&&this.data.xs[t]&&s(this.data.xs[t][e])?this.data.xs[t][e]:e},T.getOtherTargetXs=function(){var t=Object.keys(this.data.xs);return t.length?this.data.xs[t[0]]:null},T.getOtherTargetX=function(t){var e=this.getOtherTargetXs();return e&&t1},T.isMultipleX=function(){return _(this.config.data_xs)||!this.config.data_xSort||this.hasType("scatter")},T.addName=function(t){var e;return t&&(e=this.config.data_names[t.id],t.name=void 0!==e?e:t.id),t},T.getValueOnIndex=function(t,e){var i=t.filter(function(t){return t.index===e});return i.length?i[0]:null},T.updateTargetX=function(t,e){var i=this;t.forEach(function(t){t.values.forEach(function(n,a){n.x=i.generateTargetX(e[a],t.id,a)}),i.data.xs[t.id]=e})},T.updateTargetXs=function(t,e){var i=this;t.forEach(function(t){e[t.id]&&i.updateTargetX([t],e[t.id])})},T.generateTargetX=function(t,e,i){var n=this;return n.isTimeSeries()?t?n.parseDate(t):n.parseDate(n.getXValue(e,i)):n.isCustomX()&&!n.isCategorized()?s(t)?+t:n.getXValue(e,i):i},T.cloneTarget=function(t){return{id:t.id,id_org:t.id_org,values:t.values.map(function(t){return{x:t.x,value:t.value,id:t.id}})}},T.updateXs=function(){var t=this;t.data.targets.length&&(t.xs=[],t.data.targets[0].values.forEach(function(e){t.xs[e.index]=e.x}))},T.getPrevX=function(t){var e=this.xs[t-1];return void 0!==e?e:null},T.getNextX=function(t){var e=this.xs[t+1];return void 0!==e?e:null},T.getMaxDataCount=function(){return this.d3.max(this.data.targets,function(t){return t.values.length})},T.getMaxDataCountTarget=function(t){var e,i=t.length,n=0;return i>1?t.forEach(function(t){t.values.length>n&&(e=t,n=t.values.length)}):e=i?t[0]:null,e},T.getEdgeX=function(t){return t.length?[this.d3.min(t,function(t){return t.values[0].x}),this.d3.max(t,function(t){return t.values[t.values.length-1].x})]:[0,0]},T.mapToIds=function(t){return t.map(function(t){return t.id})},T.mapToTargetIds=function(t){return t?[].concat(t):this.mapToIds(this.data.targets)},T.hasTarget=function(t,e){var i,n=this.mapToIds(t);for(i=0;ie?1:t>=e?0:NaN})},T.addHiddenTargetIds=function(t){t=t instanceof Array?t:new Array(t);for(var e=0;e0})},T.isOrderDesc=function(){var t=this.config;return"string"==typeof t.data_order&&"desc"===t.data_order.toLowerCase()},T.isOrderAsc=function(){var t=this.config;return"string"==typeof t.data_order&&"asc"===t.data_order.toLowerCase()},T.getOrderFunction=function(){var t=this.config,e=this.isOrderAsc(),i=this.isOrderDesc();if(e||i)return function(t,e){var n=function(t,e){return t+Math.abs(e.value)},a=t.values.reduce(n,0),r=e.values.reduce(n,0);return i?r-a:a-r};if(o(t.data_order))return t.data_order;if(c(t.data_order)){var n=t.data_order;return function(t,e){return n.indexOf(t.id)-n.indexOf(e.id)}}},T.orderTargets=function(t){var e=this.getOrderFunction();return e&&(t.sort(e),(this.isOrderAsc()||this.isOrderDesc())&&t.reverse()),t},T.filterByX=function(t,e){return this.d3.merge(t.map(function(t){return t.values})).filter(function(t){return t.x-e==0})},T.filterRemoveNull=function(t){return t.filter(function(t){return s(t.value)})},T.filterByXDomain=function(t,e){return t.map(function(t){return{id:t.id,id_org:t.id_org,values:t.values.filter(function(t){return e[0]<=t.x&&t.x<=e[1]})}})},T.hasDataLabel=function(){var t=this.config;return!("boolean"!=typeof t.data_labels||!t.data_labels)||!("object"!==n(t.data_labels)||!_(t.data_labels))},T.getDataLabelLength=function(t,e,i){var n=this,a=[0,0];return n.selectChart.select("svg").selectAll(".dummy").data([t,e]).enter().append("text").text(function(t){return n.dataLabelFormat(t.id)(t)}).each(function(t,e){a[e]=1.3*this.getBoundingClientRect()[i]}).remove(),a},T.isNoneArc=function(t){return this.hasTarget(this.data.targets,t.id)},T.isArc=function(t){return"data"in t&&this.hasTarget(this.data.targets,t.data.id)},T.findSameXOfValues=function(t,e){var i,n=t[e].x,a=[];for(i=e-1;i>=0&&n===t[i].x;i--)a.push(t[i]);for(i=e;i0)for(s=o.hasNegativeValueInTargets(t),e=0;e=0})).length)for(n=a[0],s&&l[n]&&l[n].forEach(function(t,e){l[n][e]=t<0?t:0}),i=1;i0||(l[n][e]+=+t)});return o.d3.min(Object.keys(l).map(function(t){return o.d3.min(l[t])}))},T.getYDomainMax=function(t){var e,i,n,a,r,s,o=this,c=o.config,d=o.mapToIds(t),l=o.getValuesAsIdKeyed(t);if(c.data_groups.length>0)for(s=o.hasPositiveValueInTargets(t),e=0;e=0})).length)for(n=a[0],s&&l[n]&&l[n].forEach(function(t,e){l[n][e]=t>0?t:0}),i=1;i=0&&b>=0,g=v<=0&&b<=0,(s(S)&&h||s(w)&&g)&&(A=!1),A&&(h&&(v=0),g&&(b=0)),r=o=.1*(a=Math.abs(b-v)),void 0!==T&&(b=T+(c=Math.max(Math.abs(v),Math.abs(b))),v=T-c),C?(d=p.getDataLabelLength(v,b,"width"),l=f(p.y.range()),r+=a*((u=[d[0]/l,d[1]/l])[1]/(1-u[0]-u[1])),o+=a*(u[0]/(1-u[0]-u[1]))):L&&(d=p.getDataLabelLength(v,b,"height"),r+=p.axis.convertPixelsToAxisPadding(d[1],a),o+=p.axis.convertPixelsToAxisPadding(d[0],a)),"y"===e&&_(x.axis_y_padding)&&(r=p.axis.getPadding(x.axis_y_padding,"top",r,a),o=p.axis.getPadding(x.axis_y_padding,"bottom",o,a)),"y2"===e&&_(x.axis_y2_padding)&&(r=p.axis.getPadding(x.axis_y2_padding,"top",r,a),o=p.axis.getPadding(x.axis_y2_padding,"bottom",o,a)),A&&(h&&(o=v),g&&(r=-b)),n=[v-o,b+r],P?n.reverse():n)},T.getXDomainMin=function(t){var e=this,i=e.config;return u(i.axis_x_min)?e.isTimeSeries()?this.parseDate(i.axis_x_min):i.axis_x_min:e.d3.min(t,function(t){return e.d3.min(t.values,function(t){return t.x})})},T.getXDomainMax=function(t){var e=this,i=e.config;return u(i.axis_x_max)?e.isTimeSeries()?this.parseDate(i.axis_x_max):i.axis_x_max:e.d3.max(t,function(t){return e.d3.max(t.values,function(t){return t.x})})},T.getXDomainPadding=function(t){var e,i,a,r,o=this.config,c=t[1]-t[0];return i=this.isCategorized()?0:this.hasType("bar")?(e=this.getMaxDataCount())>1?c/(e-1)/2:.5:.01*c,"object"===n(o.axis_x_padding)&&_(o.axis_x_padding)?(a=s(o.axis_x_padding.left)?o.axis_x_padding.left:i,r=s(o.axis_x_padding.right)?o.axis_x_padding.right:i):a=r="number"==typeof o.axis_x_padding?o.axis_x_padding:i,{left:a,right:r}},T.getXDomain=function(t){var e=this,i=[e.getXDomainMin(t),e.getXDomainMax(t)],n=i[0],a=i[1],r=e.getXDomainPadding(i),s=0,o=0;return n-a!=0||e.isCategorized()||(e.isTimeSeries()?(n=new Date(.5*n.getTime()),a=new Date(1.5*a.getTime())):(n=0===n?1:.5*n,a=0===a?-1:1.5*a)),(n||0===n)&&(s=e.isTimeSeries()?new Date(n.getTime()-r.left):n-r.left),(a||0===a)&&(o=e.isTimeSeries()?new Date(a.getTime()+r.right):a+r.right),[s,o]},T.updateXDomain=function(t,e,i,n,a){var r=this,s=r.config;return i&&(r.x.domain(a||r.d3.extent(r.getXDomain(t))),r.orgXDomain=r.x.domain(),s.zoom_enabled&&r.zoom.scale(r.x).updateScaleExtent(),r.subX.domain(r.x.domain()),r.brush&&r.brush.scale(r.subX)),e&&(r.x.domain(a||(!r.brush||r.brush.empty()?r.orgXDomain:r.brush.extent())),s.zoom_enabled&&r.zoom.scale(r.x).updateScaleExtent()),n&&r.x.domain(r.trimXDomain(r.x.orgDomain())),r.x.domain()},T.trimXDomain=function(t){var e=this.getZoomDomain(),i=e[0],n=e[1];return t[0]<=i&&(t[1]=+t[1]+(i-t[0]),t[0]=i),n<=t[1]&&(t[0]=+t[0]-(t[1]-n),t[1]=n),t},T.drag=function(t){var e,n,a,r,s,o,c,d,l=this,u=l.config,h=l.main,g=l.d3;l.hasArcType()||u.data_selection_enabled&&(u.zoom_enabled&&!l.zoom.altDomain||u.data_selection_multiple&&(e=l.dragStart[0],n=l.dragStart[1],a=t[0],r=t[1],s=Math.min(e,a),o=Math.max(e,a),c=u.data_selection_grouped?l.margin.top:Math.min(n,r),d=u.data_selection_grouped?l.height:Math.max(n,r),h.select("."+i.dragarea).attr("x",s).attr("y",c).attr("width",o-s).attr("height",d-c),h.selectAll("."+i.shapes).selectAll("."+i.shape).filter(function(t){return u.data_selection_isselectable(t)}).each(function(t,e){var n,a,r,u,h,f,p=g.select(this),_=p.classed(i.SELECTED),x=p.classed(i.INCLUDED),y=!1;if(p.classed(i.circle))n=1*p.attr("cx"),a=1*p.attr("cy"),h=l.togglePoint,y=sc&&(o=o.filter(function(t){return(""+t).indexOf(".")<0}));return o},T.getGridFilterToRemove=function(t){return t?function(e){var i=!1;return[].concat(t).forEach(function(t){("value"in t&&e.value===t.value||"class"in t&&e.class===t.class)&&(i=!0)}),i}:function(){return!0}},T.removeGridLines=function(t,e){var n=this.config,a=this.getGridFilterToRemove(t),r=function(t){return!a(t)},s=e?i.xgridLines:i.ygridLines,o=e?i.xgridLine:i.ygridLine;this.main.select("."+s).selectAll("."+o).filter(a).transition().duration(n.transition_duration).style("opacity",0).remove(),e?n.grid_x_lines=n.grid_x_lines.filter(r):n.grid_y_lines=n.grid_y_lines.filter(r)},T.initEventRect=function(){this.main.select("."+i.chart).append("g").attr("class",i.eventRects).style("fill-opacity",0)},T.redrawEventRect=function(){var t,e,n=this,a=n.config,r=n.isMultipleX(),s=n.main.select("."+i.eventRects).style("cursor",a.zoom_enabled?a.axis_rotated?"ns-resize":"ew-resize":null).classed(i.eventRectsMultiple,r).classed(i.eventRectsSingle,!r);s.selectAll("."+i.eventRect).remove(),n.eventRect=s.selectAll("."+i.eventRect),r?(t=n.eventRect.data([0]),n.generateEventRectsForMultipleXs(t.enter()),n.updateEventRect(t)):(e=n.getMaxDataCountTarget(n.data.targets),s.datum(e?e.values:[]),n.eventRect=s.selectAll("."+i.eventRect),t=n.eventRect.data(function(t){return t}),n.generateEventRectsForSingleX(t.enter()),n.updateEventRect(t),t.exit().remove())},T.updateEventRect=function(t){var e,i,n,a,r,s,o=this,c=o.config;t=t||o.eventRect.data(function(t){return t}),o.isMultipleX()?(e=0,i=0,n=o.width,a=o.height):(!o.isCustomX()&&!o.isTimeSeries()||o.isCategorized()?(r=o.getEventRectWidth(),s=function(t){return o.x(t.x)-r/2}):(o.updateXs(),r=function(t){var e=o.getPrevX(t.index),i=o.getNextX(t.index);return null===e&&null===i?c.axis_rotated?o.height:o.width:(null===e&&(e=o.x.domain()[0]),null===i&&(i=o.x.domain()[1]),Math.max(0,(o.x(i)-o.x(e))/2))},s=function(t){var e=o.getPrevX(t.index),i=o.getNextX(t.index),n=o.data.xs[t.id][t.index];return null===e&&null===i?0:(null===e&&(e=o.x.domain()[0]),(o.x(n)+o.x(e))/2)}),e=c.axis_rotated?0:s,i=c.axis_rotated?s:0,n=c.axis_rotated?o.width:r,a=c.axis_rotated?r:o.height),t.attr("class",o.classEvent.bind(o)).attr("x",e).attr("y",i).attr("width",n).attr("height",a)},T.generateEventRectsForSingleX=function(t){var e=this,n=e.d3,a=e.config;t.append("rect").attr("class",e.classEvent.bind(e)).style("cursor",a.data_selection_enabled&&a.data_selection_grouped?"pointer":null).on("mouseover",function(t){var n=t.index;e.dragging||e.flowing||e.hasArcType()||(a.point_focus_expand_enabled&&e.expandCircles(n,null,!0),e.expandBars(n,null,!0),e.main.selectAll("."+i.shape+"-"+n).each(function(t){a.data_onmouseover.call(e.api,t)}))}).on("mouseout",function(t){var n=t.index;e.config&&(e.hasArcType()||(e.hideXGridFocus(),e.hideTooltip(),e.unexpandCircles(),e.unexpandBars(),e.main.selectAll("."+i.shape+"-"+n).each(function(t){a.data_onmouseout.call(e.api,t)})))}).on("mousemove",function(t){var r,s=t.index,o=e.svg.select("."+i.eventRect+"-"+s);e.dragging||e.flowing||e.hasArcType()||(e.isStepType(t)&&"step-after"===e.config.line_step_type&&n.mouse(this)[0]=0}).classed(i.legendItemFocused,e).transition().duration(100).style("opacity",function(){return(e?n.opacityForLegend:n.opacityForUnfocusedLegend).call(n,n.d3.select(this))})},T.revertLegend=function(){var t=this,e=t.d3;t.legend.selectAll("."+i.legendItem).classed(i.legendItemFocused,!1).transition().duration(100).style("opacity",function(){return t.opacityForLegend(e.select(this))})},T.showLegend=function(t){var e=this,i=e.config;i.legend_show||(i.legend_show=!0,e.legend.style("visibility","visible"),e.legendHasRendered||e.updateLegendWithDefaults()),e.removeHiddenLegendIds(t),e.legend.selectAll(e.selectorLegends(t)).style("visibility","visible").transition().style("opacity",function(){return e.opacityForLegend(e.d3.select(this))})},T.hideLegend=function(t){var e=this,i=e.config;i.legend_show&&p(t)&&(i.legend_show=!1,e.legend.style("visibility","hidden")),e.addHiddenLegendIds(t),e.legend.selectAll(e.selectorLegends(t)).style("opacity",0).style("visibility","hidden")},T.clearLegendItemTextBoxCache=function(){this.legendItemTextBox={}},T.updateLegend=function(t,e,n){var a,r,s,o,c,d,l,h,g,f,p,_,y,m,S,w,v=this,b=v.config,T=4,A=10,P=0,C=0,L=10,V=b.legend_item_tile_width+5,G=0,E={},O={},I={},R=[0],k={},D=0;function F(e,n,a){var r,s,o,c,d=0===a,l=a===t.length-1,u=(o=e,c=n,v.legendItemTextBox[c]||(v.legendItemTextBox[c]=v.getTextRect(o.textContent,i.legendItem,o)),v.legendItemTextBox[c]),h=u.width+V+(!l||v.isLegendRight||v.isLegendInset?A:0)+b.legend_padding,g=u.height+T,f=v.isLegendRight||v.isLegendInset?g:h,p=v.isLegendRight||v.isLegendInset?v.getLegendHeight():v.getLegendWidth();function _(t,e){e||(r=(p-G-f)/2)=P)&&(P=h),(!C||g>=C)&&(C=g),s=v.isLegendRight||v.isLegendInset?C:P,b.legend_equally?(Object.keys(O).forEach(function(t){O[t]=P}),Object.keys(I).forEach(function(t){I[t]=C}),(r=(p-s*t.length)/2)0&&0===w.size()&&(w=v.legend.insert("g","."+i.legendItem).attr("class",i.legendBackground).append("rect")),y=v.legend.selectAll("text").data(t).text(function(t){return u(b.data_names[t])?b.data_names[t]:t}).each(function(t,e){F(this,t,e)}),(p?y.transition():y).attr("x",r).attr("y",c),m=v.legend.selectAll("rect."+i.legendItemEvent).data(t),(p?m.transition():m).attr("width",function(t){return O[t]}).attr("height",function(t){return I[t]}).attr("x",s).attr("y",d),S=v.legend.selectAll("line."+i.legendItemTile).data(t),(p?S.transition():S).style("stroke",v.levelColor?function(t){return v.levelColor(v.cache[t].values[0].value)}:v.color).attr("x1",l).attr("y1",g).attr("x2",h).attr("y2",g),w&&(p?w.transition():w).attr("height",v.getLegendHeight()-12).attr("width",P*(D+1)+10),v.legend.selectAll("."+i.legendItem).classed(i.legendItemHidden,function(t){return!v.isTargetToShow(t)}),v.updateLegendItemWidth(P),v.updateLegendItemHeight(C),v.updateLegendStep(D),v.updateSizes(),v.updateScales(),v.updateSvgSize(),v.transformAll(_,n),v.legendHasRendered=!0},T.initRegion=function(){this.region=this.main.append("g").attr("clip-path",this.clipPath).attr("class",i.regions)},T.updateRegion=function(t){var e=this,n=e.config;e.region.style("visibility",e.hasArcType()?"hidden":"visible"),e.mainRegion=e.main.select("."+i.regions).selectAll("."+i.region).data(n.regions),e.mainRegion.enter().append("g").append("rect").style("fill-opacity",0),e.mainRegion.attr("class",e.classRegion.bind(e)),e.mainRegion.exit().transition().duration(t).style("opacity",0).remove()},T.redrawRegion=function(t){var e=this,i=e.mainRegion.selectAll("rect").each(function(){var t=e.d3.select(this.parentNode).datum();e.d3.select(this).datum(t)}),n=e.regionX.bind(e),a=e.regionY.bind(e),r=e.regionWidth.bind(e),o=e.regionHeight.bind(e);return[(t?i.transition():i).attr("x",n).attr("y",a).attr("width",r).attr("height",o).style("fill-opacity",function(t){return s(t.opacity)?t.opacity:.1})]},T.regionX=function(t){var e=this,i=e.config,n="y"===t.axis?e.y:e.y2;return"y"===t.axis||"y2"===t.axis?i.axis_rotated&&"start"in t?n(t.start):0:i.axis_rotated?0:"start"in t?e.x(e.isTimeSeries()?e.parseDate(t.start):t.start):0},T.regionY=function(t){var e=this,i=e.config,n="y"===t.axis?e.y:e.y2;return"y"===t.axis||"y2"===t.axis?i.axis_rotated?0:"end"in t?n(t.end):0:i.axis_rotated&&"start"in t?e.x(e.isTimeSeries()?e.parseDate(t.start):t.start):0},T.regionWidth=function(t){var e,i=this,n=i.config,a=i.regionX(t),r="y"===t.axis?i.y:i.y2;return(e="y"===t.axis||"y2"===t.axis?n.axis_rotated&&"end"in t?r(t.end):i.width:n.axis_rotated?i.width:"end"in t?i.x(i.isTimeSeries()?i.parseDate(t.end):t.end):i.width)i.bar_width_max?i.bar_width_max:n},T.getBars=function(t,e){return(e?this.main.selectAll("."+i.bars+this.getTargetSelectorSuffix(e)):this.main).selectAll("."+i.bar+(s(t)?"-"+t:""))},T.expandBars=function(t,e,n){n&&this.unexpandBars(),this.getBars(t,e).classed(i.EXPANDED,!0)},T.unexpandBars=function(t){this.getBars(t).classed(i.EXPANDED,!1)},T.generateDrawBar=function(t,e){var i=this.config,n=this.generateGetBarPoints(t,e);return function(t,e){var a=n(t,e),r=i.axis_rotated?1:0,s=i.axis_rotated?0:1;return"M "+a[0][r]+","+a[0][s]+" L"+a[1][r]+","+a[1][s]+" L"+a[2][r]+","+a[2][s]+" L"+a[3][r]+","+a[3][s]+" z"}},T.generateGetBarPoints=function(t,e){var i=this,n=e?i.subXAxis:i.xAxis,a=t.__max__+1,r=i.getBarW(n,a),s=i.getShapeX(r,a,t,!!e),o=i.getShapeY(!!e),c=i.getShapeOffset(i.isBarType,t,!!e),d=r*(i.config.bar_space/2),l=e?i.getSubYScale:i.getYScale;return function(t,e){var n=l.call(i,t.id)(0),a=c(t,e)||n,u=s(t),h=o(t);return i.config.axis_rotated&&(0=0&&(d+=o(a[s].value)-c))}),d}},T.isWithinShape=function(t,e){var n,a=this,r=a.d3.select(t);return a.isTargetToShow(e.id)?"circle"===t.nodeName?n=a.isStepType(e)?a.isWithinStep(t,a.getYScale(e.id)(e.value)):a.isWithinCircle(t,1.5*a.pointSelectR(e)):"path"===t.nodeName&&(n=!r.classed(i.bar)||a.isWithinBar(t)):n=!1,n},T.getInterpolate=function(t){var e=this,i=e.isInterpolationType(e.config.spline_interpolation_type)?e.config.spline_interpolation_type:"cardinal";return e.isSplineType(t)?i:e.isStepType(t)?e.config.line_step_type:"linear"},T.initLine=function(){this.main.select("."+i.chart).append("g").attr("class",i.chartLines)},T.updateTargetsForLine=function(t){var e,n=this,a=n.config,r=n.classChartLine.bind(n),s=n.classLines.bind(n),o=n.classAreas.bind(n),c=n.classCircles.bind(n),d=n.classFocus.bind(n);(e=n.main.select("."+i.chartLines).selectAll("."+i.chartLine).data(t).attr("class",function(t){return r(t)+d(t)}).enter().append("g").attr("class",r).style("opacity",0).style("pointer-events","none")).append("g").attr("class",s),e.append("g").attr("class",o),e.append("g").attr("class",function(t){return n.generateClass(i.selectedCircles,t.id)}),e.append("g").attr("class",c).style("cursor",function(t){return a.data_selection_isselectable(t)?"pointer":null}),t.forEach(function(t){n.main.selectAll("."+i.selectedCircles+n.getTargetSelectorSuffix(t.id)).selectAll("."+i.selectedCircle).each(function(e){e.value=t.values[e.index].value})})},T.updateLine=function(t){var e=this;e.mainLine=e.main.selectAll("."+i.lines).selectAll("."+i.line).data(e.lineData.bind(e)),e.mainLine.enter().append("path").attr("class",e.classLine.bind(e)).style("stroke",e.color),e.mainLine.style("opacity",e.initialOpacity.bind(e)).style("shape-rendering",function(t){return e.isStepType(t)?"crispEdges":""}).attr("transform",null),e.mainLine.exit().transition().duration(t).style("opacity",0).remove()},T.redrawLine=function(t,e){return[(e?this.mainLine.transition(Math.random().toString()):this.mainLine).attr("d",t).style("stroke",this.color).style("opacity",1)]},T.generateDrawLine=function(t,e){var i=this,n=i.config,a=i.d3.svg.line(),r=i.generateGetLinePoints(t,e),s=e?i.getSubYScale:i.getYScale,o=function(t){return(e?i.subxx:i.xx).call(i,t)},c=function(t,e){return n.data_groups.length>0?r(t,e)[0][1]:s.call(i,t.id)(t.value)};return a=n.axis_rotated?a.x(c).y(o):a.x(o).y(c),n.line_connectNull||(a=a.defined(function(t){return null!=t.value})),function(t){var r,o=n.line_connectNull?i.filterRemoveNull(t.values):t.values,c=e?i.x:i.subX,d=s.call(i,t.id),l=0,u=0;return i.isLineType(t)?n.data_regions[t.id]?r=i.lineWithRegions(o,c,d,n.data_regions[t.id]):(i.isStepType(t)&&(o=i.convertValuesToStep(o)),r=a.interpolate(i.getInterpolate(t))(o)):(o[0]&&(l=c(o[0].x),u=d(o[0].value)),r=n.axis_rotated?"M "+u+" "+l:"M "+l+" "+u),r||"M 0 0"}},T.generateGetLinePoints=function(t,e){var i=this,n=i.config,a=t.__max__+1,r=i.getShapeX(0,a,t,!!e),s=i.getShapeY(!!e),o=i.getShapeOffset(i.isLineType,t,!!e),c=e?i.getSubYScale:i.getYScale;return function(t,e){var a=c.call(i,t.id)(0),d=o(t,e)||a,l=r(t),u=s(t);return n.axis_rotated&&(00?r(t,e)[0][1]:s.call(i,t.id)(i.getAreaBaseValue(t.id))},d=function(t,e){return n.data_groups.length>0?r(t,e)[1][1]:s.call(i,t.id)(t.value)};return a=n.axis_rotated?a.x0(c).x1(d).y(o):a.x(o).y0(n.area_above?0:c).y1(d),n.line_connectNull||(a=a.defined(function(t){return null!==t.value})),function(t){var e,r=n.line_connectNull?i.filterRemoveNull(t.values):t.values,s=0,o=0;return i.isAreaType(t)?(i.isStepType(t)&&(r=i.convertValuesToStep(r)),e=a.interpolate(i.getInterpolate(t))(r)):(r[0]&&(s=i.x(r[0].x),o=i.getYScale(t.id)(r[0].value)),e=n.axis_rotated?"M "+o+" "+s:"M "+s+" "+o),e||"M 0 0"}},T.getAreaBaseValue=function(){return 0},T.generateGetAreaPoints=function(t,e){var i=this,n=i.config,a=t.__max__+1,r=i.getShapeX(0,a,t,!!e),s=i.getShapeY(!!e),o=i.getShapeOffset(i.isAreaType,t,!!e),c=e?i.getSubYScale:i.getYScale;return function(t,e){var a=c.call(i,t.id)(0),d=o(t,e)||a,l=r(t),u=s(t);return n.axis_rotated&&(00?(t=i.getShapeIndices(i.isLineType),e=i.generateGetLinePoints(t),i.circleY=function(t,i){return e(t,i)[0][1]}):i.circleY=function(t){return i.getYScale(t.id)(t.value)}},T.getCircles=function(t,e){return(e?this.main.selectAll("."+i.circles+this.getTargetSelectorSuffix(e)):this.main).selectAll("."+i.circle+(s(t)?"-"+t:""))},T.expandCircles=function(t,e,n){var a=this.pointExpandedR.bind(this);n&&this.unexpandCircles(),this.getCircles(t,e).classed(i.EXPANDED,!0).attr("r",a)},T.unexpandCircles=function(t){var e=this,n=e.pointR.bind(e);e.getCircles(t).filter(function(){return e.d3.select(this).classed(i.EXPANDED)}).classed(i.EXPANDED,!1).attr("r",n)},T.pointR=function(t){var e=this.config;return this.isStepType(t)?0:o(e.point_r)?e.point_r(t):e.point_r},T.pointExpandedR=function(t){var e=this.config;return e.point_focus_expand_enabled?o(e.point_focus_expand_r)?e.point_focus_expand_r(t):e.point_focus_expand_r?e.point_focus_expand_r:1.75*this.pointR(t):this.pointR(t)},T.pointSelectR=function(t){var e=this.config;return o(e.point_select_r)?e.point_select_r(t):e.point_select_r?e.point_select_r:4*this.pointR(t)},T.isWithinCircle=function(t,e){var i=this.d3,n=i.mouse(t),a=i.select(t),r=+a.attr("cx"),s=+a.attr("cy");return Math.sqrt(Math.pow(r-n[0],2)+Math.pow(s-n[1],2))0?e:320/(this.hasType("gauge")&&!t.gauge_fullCircle?2:1)},T.getCurrentPaddingTop=function(){var t=this.config,e=s(t.padding_top)?t.padding_top:0;return this.title&&this.title.node()&&(e+=this.getTitlePadding()),e},T.getCurrentPaddingBottom=function(){var t=this.config;return s(t.padding_bottom)?t.padding_bottom:0},T.getCurrentPaddingLeft=function(t){var e=this.config;return s(e.padding_left)?e.padding_left:e.axis_rotated?!e.axis_x_show||e.axis_x_inner?1:Math.max(h(this.getAxisWidthByAxisId("x",t)),40):!e.axis_y_show||e.axis_y_inner?this.axis.getYAxisLabelPosition().isOuter?30:1:h(this.getAxisWidthByAxisId("y",t))},T.getCurrentPaddingRight=function(){var t=this,e=t.config,i=t.isLegendRight?t.getLegendWidth()+20:0;return s(e.padding_right)?e.padding_right+1:e.axis_rotated?10+i:!e.axis_y2_show||e.axis_y2_inner?2+i+(t.axis.getY2AxisLabelPosition().isOuter?20:0):h(t.getAxisWidthByAxisId("y2"))+i},T.getParentRectValue=function(t){for(var e,i=this.selectChart.node();i&&"BODY"!==i.tagName;){try{e=i.getBoundingClientRect()[t]}catch(n){"width"===t&&(e=i.offsetWidth)}if(e)break;i=i.parentNode}return e},T.getParentWidth=function(){return this.getParentRectValue("width")},T.getParentHeight=function(){var t=this.selectChart.style("height");return t.indexOf("px")>0?+t.replace("px",""):0},T.getSvgLeft=function(t){var e=this,n=e.config,a=n.axis_rotated||!n.axis_rotated&&!n.axis_y_inner,r=n.axis_rotated?i.axisX:i.axisY,s=e.main.select("."+r).node(),o=s&&a?s.getBoundingClientRect():{right:0},c=e.selectChart.node().getBoundingClientRect(),d=e.hasArcType(),l=o.right-c.left-(d?0:e.getCurrentPaddingLeft(t));return l>0?l:0},T.getAxisWidthByAxisId=function(t,e){var i=this.axis.getLabelPositionById(t);return this.axis.getMaxTickWidth(t,e)+(i.isInner?20:40)},T.getHorizontalAxisHeight=function(t){var e=this,i=e.config,n=30;return"x"!==t||i.axis_x_show?"x"===t&&i.axis_x_height?i.axis_x_height:"y"!==t||i.axis_y_show?"y2"!==t||i.axis_y2_show?("x"===t&&!i.axis_rotated&&i.axis_x_tick_rotate&&(n=30+e.axis.getMaxTickWidth(t)*Math.cos(Math.PI*(90-i.axis_x_tick_rotate)/180)),"y"===t&&i.axis_rotated&&i.axis_y_tick_rotate&&(n=30+e.axis.getMaxTickWidth(t)*Math.cos(Math.PI*(90-i.axis_y_tick_rotate)/180)),n+(e.axis.getLabelPositionById(t).isInner?0:10)+("y2"===t?-10:0)):e.rotated_padding_top:!i.legend_show||e.isLegendRight||e.isLegendInset?1:10:8},T.getEventRectWidth=function(){return Math.max(0,this.xAxis.tickInterval())},T.initBrush=function(){var t=this,e=t.d3;t.brush=e.svg.brush().on("brush",function(){t.redrawForBrush()}),t.brush.update=function(){return t.context&&t.context.select("."+i.brush).call(this),this},t.brush.scale=function(e){return t.config.axis_rotated?this.y(e):this.x(e)}},T.initSubchart=function(){var t=this,e=t.config,n=t.context=t.svg.append("g").attr("transform",t.getTranslate("context")),a=e.subchart_show?"visible":"hidden";n.style("visibility",a),n.append("g").attr("clip-path",t.clipPathForSubchart).attr("class",i.chart),n.select("."+i.chart).append("g").attr("class",i.chartBars),n.select("."+i.chart).append("g").attr("class",i.chartLines),n.append("g").attr("clip-path",t.clipPath).attr("class",i.brush).call(t.brush),t.axes.subx=n.append("g").attr("class",i.axisX).attr("transform",t.getTranslate("subx")).attr("clip-path",e.axis_rotated?"":t.clipPathForXAxis).style("visibility",e.subchart_axis_x_show?a:"hidden")},T.updateTargetsForSubchart=function(t){var e,n=this,a=n.context,r=n.config,s=n.classChartBar.bind(n),o=n.classBars.bind(n),c=n.classChartLine.bind(n),d=n.classLines.bind(n),l=n.classAreas.bind(n);r.subchart_show&&(a.select("."+i.chartBars).selectAll("."+i.chartBar).data(t).attr("class",s).enter().append("g").style("opacity",0).attr("class",s).append("g").attr("class",o),(e=a.select("."+i.chartLines).selectAll("."+i.chartLine).data(t).attr("class",c).enter().append("g").style("opacity",0).attr("class",c)).append("g").attr("class",d),e.append("g").attr("class",l),a.selectAll("."+i.brush+" rect").attr(r.axis_rotated?"width":"height",r.axis_rotated?n.width2:n.height2))},T.updateBarForSubchart=function(t){var e=this;e.contextBar=e.context.selectAll("."+i.bars).selectAll("."+i.bar).data(e.barData.bind(e)),e.contextBar.enter().append("path").attr("class",e.classBar.bind(e)).style("stroke","none").style("fill",e.color),e.contextBar.style("opacity",e.initialOpacity.bind(e)),e.contextBar.exit().transition().duration(t).style("opacity",0).remove()},T.redrawBarForSubchart=function(t,e,i){(e?this.contextBar.transition(Math.random().toString()).duration(i):this.contextBar).attr("d",t).style("opacity",1)},T.updateLineForSubchart=function(t){var e=this;e.contextLine=e.context.selectAll("."+i.lines).selectAll("."+i.line).data(e.lineData.bind(e)),e.contextLine.enter().append("path").attr("class",e.classLine.bind(e)).style("stroke",e.color),e.contextLine.style("opacity",e.initialOpacity.bind(e)),e.contextLine.exit().transition().duration(t).style("opacity",0).remove()},T.redrawLineForSubchart=function(t,e,i){(e?this.contextLine.transition(Math.random().toString()).duration(i):this.contextLine).attr("d",t).style("opacity",1)},T.updateAreaForSubchart=function(t){var e=this,n=e.d3;e.contextArea=e.context.selectAll("."+i.areas).selectAll("."+i.area).data(e.lineData.bind(e)),e.contextArea.enter().append("path").attr("class",e.classArea.bind(e)).style("fill",e.color).style("opacity",function(){return e.orgAreaOpacity=+n.select(this).style("opacity"),0}),e.contextArea.style("opacity",0),e.contextArea.exit().transition().duration(t).style("opacity",0).remove()},T.redrawAreaForSubchart=function(t,e,i){(e?this.contextArea.transition(Math.random().toString()).duration(i):this.contextArea).attr("d",t).style("fill",this.color).style("opacity",this.orgAreaOpacity)},T.redrawSubchart=function(t,e,i,n,a,r,s){var o,c,d,l=this,u=l.d3,h=l.config;l.context.style("visibility",h.subchart_show?"visible":"hidden"),h.subchart_show&&(u.event&&"zoom"===u.event.type&&l.brush.extent(l.x.orgDomain()).update(),t&&(l.brush.empty()||l.brush.extent(l.x.orgDomain()).update(),o=l.generateDrawArea(a,!0),c=l.generateDrawBar(r,!0),d=l.generateDrawLine(s,!0),l.updateBarForSubchart(i),l.updateLineForSubchart(i),l.updateAreaForSubchart(i),l.redrawBarForSubchart(c,i,i),l.redrawLineForSubchart(d,i,i),l.redrawAreaForSubchart(o,i,i)))},T.redrawForBrush=function(){var t=this,e=t.x;t.redraw({withTransition:!1,withY:t.config.zoom_rescale,withSubchart:!1,withUpdateXDomain:!0,withDimension:!1}),t.config.subchart_onbrush.call(t.api,e.orgDomain())},T.transformContext=function(t,e){var n;e&&e.axisSubX?n=e.axisSubX:(n=this.context.select("."+i.axisX),t&&(n=n.transition())),this.context.attr("transform",this.getTranslate("context")),n.attr("transform",this.getTranslate("subx"))},T.getDefaultExtent=function(){var t=this,e=t.config,i=o(e.axis_x_extent)?e.axis_x_extent(t.getXDomain(t.data.targets)):e.axis_x_extent;return t.isTimeSeries()&&(i=[t.parseDate(i[0]),t.parseDate(i[1])]),i},T.initText=function(){this.main.select("."+i.chart).append("g").attr("class",i.chartTexts),this.mainText=this.d3.selectAll([])},T.updateTargetsForText=function(t){var e=this,n=e.classChartText.bind(e),a=e.classTexts.bind(e),r=e.classFocus.bind(e);e.main.select("."+i.chartTexts).selectAll("."+i.chartText).data(t).attr("class",function(t){return n(t)+r(t)}).enter().append("g").attr("class",n).style("opacity",0).style("pointer-events","none").append("g").attr("class",a)},T.updateText=function(t){var e=this,n=e.config,a=e.barOrLineData.bind(e),r=e.classText.bind(e);e.mainText=e.main.selectAll("."+i.texts).selectAll("."+i.text).data(a),e.mainText.enter().append("text").attr("class",r).attr("text-anchor",function(t){return n.axis_rotated?t.value<0?"end":"start":"middle"}).style("stroke","none").style("fill",function(t){return e.color(t)}).style("fill-opacity",0),e.mainText.text(function(t,i,n){return e.dataLabelFormat(t.id)(t.value,t.id,i,n)}),e.mainText.exit().transition().duration(t).style("fill-opacity",0).remove()},T.redrawText=function(t,e,i,n){return[(n?this.mainText.transition():this.mainText).attr("x",t).attr("y",e).style("fill",this.color).style("fill-opacity",i?0:this.opacityForText.bind(this))]},T.getTextRect=function(t,e,i){var n,a=this.d3.select("body").append("div").classed("c3",!0),r=a.append("svg").style("visibility","hidden").style("position","fixed").style("top",0).style("left",0),s=this.d3.select(i).style("font");return r.selectAll(".dummy").data([t]).enter().append("text").classed(e||"",!0).style("font",s).text(t).each(function(){n=this.getBoundingClientRect()}),a.remove(),n},T.generateXYForText=function(t,e,i,n){var a=this,r=a.generateGetAreaPoints(t,!1),s=a.generateGetBarPoints(e,!1),o=a.generateGetLinePoints(i,!1),c=n?a.getXForText:a.getYForText;return function(t,e){var i=a.isAreaType(t)?r:a.isBarType(t)?s:o;return c.call(a,i(t,e),t,this)}},T.getXForText=function(t,e,i){var n,a,r=this,s=i.getBoundingClientRect();return r.config.axis_rotated?(a=r.isBarType(e)?4:6,n=t[2][1]+a*(e.value<0?-1:1)):n=r.hasType("bar")?(t[2][0]+t[0][0])/2:t[0][0],null===e.value&&(n>r.width?n=r.width-s.width:n<0&&(n=4)),n},T.getYForText=function(t,e,i){var n,a=this,r=i.getBoundingClientRect();return a.config.axis_rotated?n=(t[0][0]+t[2][0]+.6*r.height)/2:(n=t[2][1],e.value<0||0===e.value&&!a.hasPositiveValue?(n+=r.height,a.isBarType(e)&&a.isSafari()?n-=3:!a.isBarType(e)&&a.isChrome()&&(n+=3)):n+=a.isBarType(e)?-3:-6),null!==e.value||a.config.axis_rotated||(nthis.height&&(n=this.height-4)),n},T.initTitle=function(){this.title=this.svg.append("text").text(this.config.title_text).attr("class",this.CLASS.title)},T.redrawTitle=function(){var t=this;t.title.attr("x",t.xForTitle.bind(t)).attr("y",t.yForTitle.bind(t))},T.xForTitle=function(){var t=this,e=t.config,i=e.title_position||"left";return i.indexOf("right")>=0?t.currentWidth-t.getTextRect(t.title.node().textContent,t.CLASS.title,t.title.node()).width-e.title_padding.right:i.indexOf("center")>=0?(t.currentWidth-t.getTextRect(t.title.node().textContent,t.CLASS.title,t.title.node()).width)/2:e.title_padding.left},T.yForTitle=function(){var t=this;return t.config.title_padding.top+t.getTextRect(t.title.node().textContent,t.CLASS.title,t.title.node()).height},T.getTitlePadding=function(){return this.yForTitle()+this.config.title_padding.bottom},T.initTooltip=function(){var t,e=this,n=e.config;if(e.tooltip=e.selectChart.style("position","relative").append("div").attr("class",i.tooltipContainer).style("position","absolute").style("pointer-events","none").style("display","none"),n.tooltip_init_show){if(e.isTimeSeries()&&d(n.tooltip_init_x)){for(n.tooltip_init_x=e.parseDate(n.tooltip_init_x),t=0;t"+(s||0===s?""+s+" ":"")),void 0!==(o=m(f(t[r].value,t[r].ratio,t[r].id,t[r].index,t))))){if(null===t[r].name)continue;c=m(g(t[r].name,t[r].ratio,t[r].id,t[r].index)),d=l.levelColor?l.levelColor(t[r].value):n(t[r].id),a+="",a+=" "+c+" ",a+=""+o+" ",a+=" "}return a+""},T.tooltipPosition=function(t,e,i,n){var a,r,s,o,c,d=this,l=d.config,u=d.d3,h=d.hasArcType(),g=u.mouse(n);return h?(r=(d.width-(d.isLegendRight?d.getLegendWidth():0))/2+g[0],o=(d.hasType("gauge")?d.height:d.height/2)+g[1]+20):(a=d.getSvgLeft(!0),l.axis_rotated?(s=(r=a+g[0]+100)+e,c=d.currentWidth-d.getCurrentPaddingRight(),o=d.x(t[0].x)+20):(s=(r=a+d.getCurrentPaddingLeft(!0)+d.x(t[0].x)+20)+e,c=a+d.currentWidth-d.getCurrentPaddingRight(),o=g[1]+15),s>c&&(r-=s-c+20),o+i>d.currentHeight&&(o-=i+30)),o<0&&(o=0),{top:o,left:r}},T.showTooltip=function(t,e){var i,n,a,r=this,o=r.config,c=r.hasArcType(),d=t.filter(function(t){return t&&s(t.value)}),l=o.tooltip_position||T.tooltipPosition;0!==d.length&&o.tooltip_show&&(r.tooltip.html(o.tooltip_contents.call(r,t,r.axis.getXAxisTickFormat(),r.getYFormat(c),r.color)).style("display","block"),i=r.tooltip.property("offsetWidth"),n=r.tooltip.property("offsetHeight"),a=l.call(this,d,i,n,e),r.tooltip.style("top",a.top+"px").style("left",a.left+"px"))},T.hideTooltip=function(){this.tooltip.style("display","none")},T.setTargetType=function(t,e){var i=this,n=i.config;i.mapToTargetIds(t).forEach(function(t){i.withoutFadeIn[t]=e===n.data_types[t],n.data_types[t]=e}),t||(n.data_type=e)},T.hasType=function(t,e){var i=this.config.data_types,n=!1;return(e=e||this.data.targets)&&e.length?e.forEach(function(e){var a=i[e.id];(a&&a.indexOf(t)>=0||!a&&"line"===t)&&(n=!0)}):Object.keys(i).length?Object.keys(i).forEach(function(e){i[e]===t&&(n=!0)}):n=this.config.data_type===t,n},T.hasArcType=function(t){return this.hasType("pie",t)||this.hasType("donut",t)||this.hasType("gauge",t)},T.isLineType=function(t){var e=this.config,i=d(t)?t:t.id;return!e.data_types[i]||["line","spline","area","area-spline","step","area-step"].indexOf(e.data_types[i])>=0},T.isStepType=function(t){var e=d(t)?t:t.id;return["step","area-step"].indexOf(this.config.data_types[e])>=0},T.isSplineType=function(t){var e=d(t)?t:t.id;return["spline","area-spline"].indexOf(this.config.data_types[e])>=0},T.isAreaType=function(t){var e=d(t)?t:t.id;return["area","area-spline","area-step"].indexOf(this.config.data_types[e])>=0},T.isBarType=function(t){var e=d(t)?t:t.id;return"bar"===this.config.data_types[e]},T.isScatterType=function(t){var e=d(t)?t:t.id;return"scatter"===this.config.data_types[e]},T.isPieType=function(t){var e=d(t)?t:t.id;return"pie"===this.config.data_types[e]},T.isGaugeType=function(t){var e=d(t)?t:t.id;return"gauge"===this.config.data_types[e]},T.isDonutType=function(t){var e=d(t)?t:t.id;return"donut"===this.config.data_types[e]},T.isArcType=function(t){return this.isPieType(t)||this.isDonutType(t)||this.isGaugeType(t)},T.lineData=function(t){return this.isLineType(t)?[t]:[]},T.arcData=function(t){return this.isArcType(t.data)?[t]:[]},T.barData=function(t){return this.isBarType(t)?t.values:[]},T.lineOrScatterData=function(t){return this.isLineType(t)||this.isScatterType(t)?t.values:[]},T.barOrLineData=function(t){return this.isBarType(t)||this.isLineType(t)?t.values:[]},T.isInterpolationType=function(t){return["linear","linear-closed","basis","basis-open","basis-closed","bundle","cardinal","cardinal-open","cardinal-closed","monotone"].indexOf(t)>=0},T.isSafari=function(){var t=window.navigator.userAgent;return t.indexOf("Safari")>=0&&t.indexOf("Chrome")<0},T.isChrome=function(){return window.navigator.userAgent.indexOf("Chrome")>=0},T.initZoom=function(){var t,e=this,i=e.d3,n=e.config;e.zoom=i.behavior.zoom().on("zoomstart",function(){t=i.event.sourceEvent,e.zoom.altDomain=i.event.sourceEvent.altKey?e.x.orgDomain():null,n.zoom_onzoomstart.call(e.api,i.event.sourceEvent)}).on("zoom",function(){e.redrawForZoom.call(e)}).on("zoomend",function(){var a=i.event.sourceEvent;a&&t.clientX===a.clientX&&t.clientY===a.clientY||(e.redrawEventRect(),e.updateZoom(),n.zoom_onzoomend.call(e.api,e.x.orgDomain()))}),e.zoom.scale=function(t){return n.axis_rotated?this.y(t):this.x(t)},e.zoom.orgScaleExtent=function(){var t=n.zoom_extent?n.zoom_extent:[1,10];return[t[0],Math.max(e.getMaxDataCount()/t[1],t[1])]},e.zoom.updateScaleExtent=function(){var t=f(e.x.orgDomain())/f(e.getZoomDomain()),i=this.orgScaleExtent();return this.scaleExtent([i[0]*t,i[1]*t]),this}},T.getZoomDomain=function(){var t=this.config,e=this.d3;return[e.min([this.orgXDomain[0],t.zoom_x_min]),e.max([this.orgXDomain[1],t.zoom_x_max])]},T.updateZoom=function(){var t=this.config.zoom_enabled?this.zoom:function(){};this.main.select("."+i.zoomRect).call(t).on("dblclick.zoom",null),this.main.selectAll("."+i.eventRect).call(t).on("dblclick.zoom",null)},T.redrawForZoom=function(){var t=this,e=t.d3,i=t.config,n=t.zoom,a=t.x;if(i.zoom_enabled&&0!==t.filterTargetsToShow(t.data.targets).length){if("mousemove"===e.event.sourceEvent.type&&n.altDomain)return a.domain(n.altDomain),void n.scale(a).updateScaleExtent();t.isCategorized()&&a.orgDomain()[0]===t.orgXDomain[0]&&a.domain([t.orgXDomain[0]-1e-10,a.orgDomain()[1]]),t.redraw({withTransition:!1,withY:i.zoom_rescale,withSubchart:!1,withEventRect:!1,withDimension:!1}),"mousemove"===e.event.sourceEvent.type&&(t.cancelClick=!0),i.zoom_onzoom.call(t.api,a.orgDomain())}},A});
!function(){function n(n){return n&&(n.ownerDocument||n.document||n).documentElement}function t(n){return n&&(n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView)}function e(n,t){return t>n?-1:n>t?1:n>=t?0:NaN}function r(n){return null===n?NaN:+n}function i(n){return!isNaN(n)}function u(n){return{left:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)<0?r=u+1:i=u}return r},right:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)>0?i=u:r=u+1}return r}}}function o(n){return n.length}function a(n){for(var t=1;n*t%1;)t*=10;return t}function l(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function c(){this._=Object.create(null)}function f(n){return(n+="")===bo||n[0]===_o?_o+n:n}function s(n){return(n+="")[0]===_o?n.slice(1):n}function h(n){return f(n)in this._}function p(n){return(n=f(n))in this._&&delete this._[n]}function g(){var n=[];for(var t in this._)n.push(s(t));return n}function v(){var n=0;for(var t in this._)++n;return n}function d(){for(var n in this._)return!1;return!0}function y(){this._=Object.create(null)}function m(n){return n}function M(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function x(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=wo.length;r>e;++e){var i=wo[e]+t;if(i in n)return i}}function b(){}function _(){}function w(n){function t(){for(var t,r=e,i=-1,u=r.length;++ie;e++)for(var i,u=n[e],o=0,a=u.length;a>o;o++)(i=u[o])&&t(i,o,e);return n}function Z(n){return ko(n,qo),n}function V(n){var t,e;return function(r,i,u){var o,a=n[u].update,l=a.length;for(u!=e&&(e=u,t=0),i>=t&&(t=i+1);!(o=a[t])&&++t0&&(n=n.slice(0,a));var c=To.get(n);return c&&(n=c,l=B),a?t?i:r:t?b:u}function $(n,t){return function(e){var r=ao.event;ao.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{ao.event=r}}}function B(n,t){var e=$(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function W(e){var r=".dragsuppress-"+ ++Do,i="click"+r,u=ao.select(t(e)).on("touchmove"+r,S).on("dragstart"+r,S).on("selectstart"+r,S);if(null==Ro&&(Ro="onselectstart"in e?!1:x(e.style,"userSelect")),Ro){var o=n(e).style,a=o[Ro];o[Ro]="none"}return function(n){if(u.on(r,null),Ro&&(o[Ro]=a),n){var t=function(){u.on(i,null)};u.on(i,function(){S(),t()},!0),setTimeout(t,0)}}}function J(n,e){e.changedTouches&&(e=e.changedTouches[0]);var r=n.ownerSVGElement||n;if(r.createSVGPoint){var i=r.createSVGPoint();if(0>Po){var u=t(n);if(u.scrollX||u.scrollY){r=ao.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var o=r[0][0].getScreenCTM();Po=!(o.f||o.e),r.remove()}}return Po?(i.x=e.pageX,i.y=e.pageY):(i.x=e.clientX,i.y=e.clientY),i=i.matrixTransform(n.getScreenCTM().inverse()),[i.x,i.y]}var a=n.getBoundingClientRect();return[e.clientX-a.left-n.clientLeft,e.clientY-a.top-n.clientTop]}function G(){return ao.event.changedTouches[0].identifier}function K(n){return n>0?1:0>n?-1:0}function Q(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function nn(n){return n>1?0:-1>n?Fo:Math.acos(n)}function tn(n){return n>1?Io:-1>n?-Io:Math.asin(n)}function en(n){return((n=Math.exp(n))-1/n)/2}function rn(n){return((n=Math.exp(n))+1/n)/2}function un(n){return((n=Math.exp(2*n))-1)/(n+1)}function on(n){return(n=Math.sin(n/2))*n}function an(){}function ln(n,t,e){return this instanceof ln?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof ln?new ln(n.h,n.s,n.l):_n(""+n,wn,ln):new ln(n,t,e)}function cn(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?u+(o-u)*n/60:180>n?o:240>n?u+(o-u)*(240-n)/60:u}function i(n){return Math.round(255*r(n))}var u,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,u=2*e-o,new mn(i(n+120),i(n),i(n-120))}function fn(n,t,e){return this instanceof fn?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof fn?new fn(n.h,n.c,n.l):n instanceof hn?gn(n.l,n.a,n.b):gn((n=Sn((n=ao.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new fn(n,t,e)}function sn(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new hn(e,Math.cos(n*=Yo)*t,Math.sin(n)*t)}function hn(n,t,e){return this instanceof hn?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof hn?new hn(n.l,n.a,n.b):n instanceof fn?sn(n.h,n.c,n.l):Sn((n=mn(n)).r,n.g,n.b):new hn(n,t,e)}function pn(n,t,e){var r=(n+16)/116,i=r+t/500,u=r-e/200;return i=vn(i)*na,r=vn(r)*ta,u=vn(u)*ea,new mn(yn(3.2404542*i-1.5371385*r-.4985314*u),yn(-.969266*i+1.8760108*r+.041556*u),yn(.0556434*i-.2040259*r+1.0572252*u))}function gn(n,t,e){return n>0?new fn(Math.atan2(e,t)*Zo,Math.sqrt(t*t+e*e),n):new fn(NaN,NaN,n)}function vn(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function dn(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function yn(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function mn(n,t,e){return this instanceof mn?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof mn?new mn(n.r,n.g,n.b):_n(""+n,mn,cn):new mn(n,t,e)}function Mn(n){return new mn(n>>16,n>>8&255,255&n)}function xn(n){return Mn(n)+""}function bn(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function _n(n,t,e){var r,i,u,o=0,a=0,l=0;if(r=/([a-z]+)\((.*)\)/.exec(n=n.toLowerCase()))switch(i=r[2].split(","),r[1]){case"hsl":return e(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return t(Nn(i[0]),Nn(i[1]),Nn(i[2]))}return(u=ua.get(n))?t(u.r,u.g,u.b):(null==n||"#"!==n.charAt(0)||isNaN(u=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&u)>>4,o=o>>4|o,a=240&u,a=a>>4|a,l=15&u,l=l<<4|l):7===n.length&&(o=(16711680&u)>>16,a=(65280&u)>>8,l=255&u)),t(o,a,l))}function wn(n,t,e){var r,i,u=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-u,l=(o+u)/2;return a?(i=.5>l?a/(o+u):a/(2-o-u),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=NaN,i=l>0&&1>l?0:r),new ln(r,i,l)}function Sn(n,t,e){n=kn(n),t=kn(t),e=kn(e);var r=dn((.4124564*n+.3575761*t+.1804375*e)/na),i=dn((.2126729*n+.7151522*t+.072175*e)/ta),u=dn((.0193339*n+.119192*t+.9503041*e)/ea);return hn(116*i-16,500*(r-i),200*(i-u))}function kn(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function Nn(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function En(n){return"function"==typeof n?n:function(){return n}}function An(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Cn(t,e,n,r)}}function Cn(n,t,e,r){function i(){var n,t=l.status;if(!t&&Ln(l)||t>=200&&300>t||304===t){try{n=e.call(u,l)}catch(r){return void o.error.call(u,r)}o.load.call(u,n)}else o.error.call(u,l)}var u={},o=ao.dispatch("beforesend","progress","load","error"),a={},l=new XMLHttpRequest,c=null;return!this.XDomainRequest||"withCredentials"in l||!/^(http(s)?:)?\/\//.test(n)||(l=new XDomainRequest),"onload"in l?l.onload=l.onerror=i:l.onreadystatechange=function(){l.readyState>3&&i()},l.onprogress=function(n){var t=ao.event;ao.event=n;try{o.progress.call(u,l)}finally{ao.event=t}},u.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",u)},u.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",u):t},u.responseType=function(n){return arguments.length?(c=n,u):c},u.response=function(n){return e=n,u},["get","post"].forEach(function(n){u[n]=function(){return u.send.apply(u,[n].concat(co(arguments)))}}),u.send=function(e,r,i){if(2===arguments.length&&"function"==typeof r&&(i=r,r=null),l.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),l.setRequestHeader)for(var f in a)l.setRequestHeader(f,a[f]);return null!=t&&l.overrideMimeType&&l.overrideMimeType(t),null!=c&&(l.responseType=c),null!=i&&u.on("error",i).on("load",function(n){i(null,n)}),o.beforesend.call(u,l),l.send(null==r?null:r),u},u.abort=function(){return l.abort(),u},ao.rebind(u,o,"on"),null==r?u:u.get(zn(r))}function zn(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function Ln(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function qn(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var i=e+t,u={c:n,t:i,n:null};return aa?aa.n=u:oa=u,aa=u,la||(ca=clearTimeout(ca),la=1,fa(Tn)),u}function Tn(){var n=Rn(),t=Dn()-n;t>24?(isFinite(t)&&(clearTimeout(ca),ca=setTimeout(Tn,t)),la=0):(la=1,fa(Tn))}function Rn(){for(var n=Date.now(),t=oa;t;)n>=t.t&&t.c(n-t.t)&&(t.c=null),t=t.n;return n}function Dn(){for(var n,t=oa,e=1/0;t;)t.c?(t.t8?function(n){return n/e}:function(n){return n*e},symbol:n}}function jn(n){var t=n.decimal,e=n.thousands,r=n.grouping,i=n.currency,u=r&&e?function(n,t){for(var i=n.length,u=[],o=0,a=r[0],l=0;i>0&&a>0&&(l+a+1>t&&(a=Math.max(1,t-l)),u.push(n.substring(i-=a,i+a)),!((l+=a+1)>t));)a=r[o=(o+1)%r.length];return u.reverse().join(e)}:m;return function(n){var e=ha.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",l=e[4]||"",c=e[5],f=+e[6],s=e[7],h=e[8],p=e[9],g=1,v="",d="",y=!1,m=!0;switch(h&&(h=+h.substring(1)),(c||"0"===r&&"="===o)&&(c=r="0",o="="),p){case"n":s=!0,p="g";break;case"%":g=100,d="%",p="f";break;case"p":g=100,d="%",p="r";break;case"b":case"o":case"x":case"X":"#"===l&&(v="0"+p.toLowerCase());case"c":m=!1;case"d":y=!0,h=0;break;case"s":g=-1,p="r"}"$"===l&&(v=i[0],d=i[1]),"r"!=p||h||(p="g"),null!=h&&("g"==p?h=Math.max(1,Math.min(21,h)):"e"!=p&&"f"!=p||(h=Math.max(0,Math.min(20,h)))),p=pa.get(p)||Fn;var M=c&&s;return function(n){var e=d;if(y&&n%1)return"";var i=0>n||0===n&&0>1/n?(n=-n,"-"):"-"===a?"":a;if(0>g){var l=ao.formatPrefix(n,h);n=l.scale(n),e=l.symbol+d}else n*=g;n=p(n,h);var x,b,_=n.lastIndexOf(".");if(0>_){var w=m?n.lastIndexOf("e"):-1;0>w?(x=n,b=""):(x=n.substring(0,w),b=n.substring(w))}else x=n.substring(0,_),b=t+n.substring(_+1);!c&&s&&(x=u(x,1/0));var S=v.length+x.length+b.length+(M?0:i.length),k=f>S?new Array(S=f-S+1).join(r):"";return M&&(x=u(k+x,k.length?f-b.length:1/0)),i+=v,n=x+b,("<"===o?i+n+k:">"===o?k+i+n:"^"===o?k.substring(0,S>>=1)+i+n+k.substring(S):i+(M?n:k+n))+e}}}function Fn(n){return n+""}function Hn(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function On(n,t,e){function r(t){var e=n(t),r=u(e,1);return r-t>t-e?e:r}function i(e){return t(e=n(new va(e-1)),1),e}function u(n,e){return t(n=new va(+n),e),n}function o(n,r,u){var o=i(n),a=[];if(u>1)for(;r>o;)e(o)%u||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{va=Hn;var r=new Hn;return r._=n,o(r,t,e)}finally{va=Date}}n.floor=n,n.round=r,n.ceil=i,n.offset=u,n.range=o;var l=n.utc=In(n);return l.floor=l,l.round=In(r),l.ceil=In(i),l.offset=In(u),l.range=a,n}function In(n){return function(t,e){try{va=Hn;var r=new Hn;return r._=t,n(r,e)._}finally{va=Date}}}function Yn(n){function t(n){function t(t){for(var e,i,u,o=[],a=-1,l=0;++aa;){if(r>=c)return-1;if(i=t.charCodeAt(a++),37===i){if(o=t.charAt(a++),u=C[o in ya?t.charAt(a++):o],!u||(r=u(n,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){_.lastIndex=0;var r=_.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){x.lastIndex=0;var r=x.exec(t.slice(e));return r?(n.w=b.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){N.lastIndex=0;var r=N.exec(t.slice(e));return r?(n.m=E.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,A.c.toString(),t,r)}function l(n,t,r){return e(n,A.x.toString(),t,r)}function c(n,t,r){return e(n,A.X.toString(),t,r)}function f(n,t,e){var r=M.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var s=n.dateTime,h=n.date,p=n.time,g=n.periods,v=n.days,d=n.shortDays,y=n.months,m=n.shortMonths;t.utc=function(n){function e(n){try{va=Hn;var t=new va;return t._=n,r(t)}finally{va=Date}}var r=t(n);return e.parse=function(n){try{va=Hn;var t=r.parse(n);return t&&t._}finally{va=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ct;var M=ao.map(),x=Vn(v),b=Xn(v),_=Vn(d),w=Xn(d),S=Vn(y),k=Xn(y),N=Vn(m),E=Xn(m);g.forEach(function(n,t){M.set(n.toLowerCase(),t)});var A={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return m[n.getMonth()]},B:function(n){return y[n.getMonth()]},c:t(s),d:function(n,t){return Zn(n.getDate(),t,2)},e:function(n,t){return Zn(n.getDate(),t,2)},H:function(n,t){return Zn(n.getHours(),t,2)},I:function(n,t){return Zn(n.getHours()%12||12,t,2)},j:function(n,t){return Zn(1+ga.dayOfYear(n),t,3)},L:function(n,t){return Zn(n.getMilliseconds(),t,3)},m:function(n,t){return Zn(n.getMonth()+1,t,2)},M:function(n,t){return Zn(n.getMinutes(),t,2)},p:function(n){return g[+(n.getHours()>=12)]},S:function(n,t){return Zn(n.getSeconds(),t,2)},U:function(n,t){return Zn(ga.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Zn(ga.mondayOfYear(n),t,2)},x:t(h),X:t(p),y:function(n,t){return Zn(n.getFullYear()%100,t,2)},Y:function(n,t){return Zn(n.getFullYear()%1e4,t,4)},Z:at,"%":function(){return"%"}},C={a:r,A:i,b:u,B:o,c:a,d:tt,e:tt,H:rt,I:rt,j:et,L:ot,m:nt,M:it,p:f,S:ut,U:Bn,w:$n,W:Wn,x:l,X:c,y:Gn,Y:Jn,Z:Kn,"%":lt};return t}function Zn(n,t,e){var r=0>n?"-":"",i=(r?-n:n)+"",u=i.length;return r+(e>u?new Array(e-u+1).join(t)+i:i)}function Vn(n){return new RegExp("^(?:"+n.map(ao.requote).join("|")+")","i")}function Xn(n){for(var t=new c,e=-1,r=n.length;++e68?1900:2e3)}function nt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function tt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function et(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function rt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function it(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function ut(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ot(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function at(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=xo(t)/60|0,i=xo(t)%60;return e+Zn(r,"0",2)+Zn(i,"0",2)}function lt(n,t,e){Ma.lastIndex=0;var r=Ma.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ct(n){for(var t=n.length,e=-1;++e=0?1:-1,a=o*e,l=Math.cos(t),c=Math.sin(t),f=u*c,s=i*l+f*Math.cos(a),h=f*o*Math.sin(a);ka.add(Math.atan2(h,s)),r=n,i=l,u=c}var t,e,r,i,u;Na.point=function(o,a){Na.point=n,r=(t=o)*Yo,i=Math.cos(a=(e=a)*Yo/2+Fo/4),u=Math.sin(a)},Na.lineEnd=function(){n(t,e)}}function dt(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function yt(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function mt(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function Mt(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function xt(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function bt(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function _t(n){return[Math.atan2(n[1],n[0]),tn(n[2])]}function wt(n,t){return xo(n[0]-t[0])a;++a)i.point((e=n[a])[0],e[1]);return void i.lineEnd()}var l=new Tt(e,n,null,!0),c=new Tt(e,null,l,!1);l.o=c,u.push(l),o.push(c),l=new Tt(r,n,null,!1),c=new Tt(r,null,l,!0),l.o=c,u.push(l),o.push(c)}}),o.sort(t),qt(u),qt(o),u.length){for(var a=0,l=e,c=o.length;c>a;++a)o[a].e=l=!l;for(var f,s,h=u[0];;){for(var p=h,g=!0;p.v;)if((p=p.n)===h)return;f=p.z,i.lineStart();do{if(p.v=p.o.v=!0,p.e){if(g)for(var a=0,c=f.length;c>a;++a)i.point((s=f[a])[0],s[1]);else r(p.x,p.n.x,1,i);p=p.n}else{if(g){f=p.p.z;for(var a=f.length-1;a>=0;--a)i.point((s=f[a])[0],s[1])}else r(p.x,p.p.x,-1,i);p=p.p}p=p.o,f=p.z,g=!g}while(!p.v);i.lineEnd()}}}function qt(n){if(t=n.length){for(var t,e,r=0,i=n[0];++r0){for(b||(u.polygonStart(),b=!0),u.lineStart();++o1&&2&t&&e.push(e.pop().concat(e.shift())),p.push(e.filter(Dt))}var p,g,v,d=t(u),y=i.invert(r[0],r[1]),m={point:o,lineStart:l,lineEnd:c,polygonStart:function(){m.point=f,m.lineStart=s,m.lineEnd=h,p=[],g=[]},polygonEnd:function(){m.point=o,m.lineStart=l,m.lineEnd=c,p=ao.merge(p);var n=Ot(y,g);p.length?(b||(u.polygonStart(),b=!0),Lt(p,Ut,n,e,u)):n&&(b||(u.polygonStart(),b=!0),u.lineStart(),e(null,null,1,u),u.lineEnd()),b&&(u.polygonEnd(),b=!1),p=g=null},sphere:function(){u.polygonStart(),u.lineStart(),e(null,null,1,u),u.lineEnd(),u.polygonEnd()}},M=Pt(),x=t(M),b=!1;return m}}function Dt(n){return n.length>1}function Pt(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:b,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function Ut(n,t){return((n=n.x)[0]<0?n[1]-Io-Uo:Io-n[1])-((t=t.x)[0]<0?t[1]-Io-Uo:Io-t[1])}function jt(n){var t,e=NaN,r=NaN,i=NaN;return{lineStart:function(){n.lineStart(),t=1},point:function(u,o){var a=u>0?Fo:-Fo,l=xo(u-e);xo(l-Fo)0?Io:-Io),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(u,r),t=0):i!==a&&l>=Fo&&(xo(e-i)Uo?Math.atan((Math.sin(t)*(u=Math.cos(r))*Math.sin(e)-Math.sin(r)*(i=Math.cos(t))*Math.sin(n))/(i*u*o)):(t+r)/2}function Ht(n,t,e,r){var i;if(null==n)i=e*Io,r.point(-Fo,i),r.point(0,i),r.point(Fo,i),r.point(Fo,0),r.point(Fo,-i),r.point(0,-i),r.point(-Fo,-i),r.point(-Fo,0),r.point(-Fo,i);else if(xo(n[0]-t[0])>Uo){var u=n[0]a;++a){var c=t[a],f=c.length;if(f)for(var s=c[0],h=s[0],p=s[1]/2+Fo/4,g=Math.sin(p),v=Math.cos(p),d=1;;){d===f&&(d=0),n=c[d];var y=n[0],m=n[1]/2+Fo/4,M=Math.sin(m),x=Math.cos(m),b=y-h,_=b>=0?1:-1,w=_*b,S=w>Fo,k=g*M;if(ka.add(Math.atan2(k*_*Math.sin(w),v*x+k*Math.cos(w))),u+=S?b+_*Ho:b,S^h>=e^y>=e){var N=mt(dt(s),dt(n));bt(N);var E=mt(i,N);bt(E);var A=(S^b>=0?-1:1)*tn(E[2]);(r>A||r===A&&(N[0]||N[1]))&&(o+=S^b>=0?1:-1)}if(!d++)break;h=y,g=M,v=x,s=n}}return(-Uo>u||Uo>u&&-Uo>ka)^1&o}function It(n){function t(n,t){return Math.cos(n)*Math.cos(t)>u}function e(n){var e,u,l,c,f;return{lineStart:function(){c=l=!1,f=1},point:function(s,h){var p,g=[s,h],v=t(s,h),d=o?v?0:i(s,h):v?i(s+(0>s?Fo:-Fo),h):0;if(!e&&(c=l=v)&&n.lineStart(),v!==l&&(p=r(e,g),(wt(e,p)||wt(g,p))&&(g[0]+=Uo,g[1]+=Uo,v=t(g[0],g[1]))),v!==l)f=0,v?(n.lineStart(),p=r(g,e),n.point(p[0],p[1])):(p=r(e,g),n.point(p[0],p[1]),n.lineEnd()),e=p;else if(a&&e&&o^v){var y;d&u||!(y=r(g,e,!0))||(f=0,o?(n.lineStart(),n.point(y[0][0],y[0][1]),n.point(y[1][0],y[1][1]),n.lineEnd()):(n.point(y[1][0],y[1][1]),n.lineEnd(),n.lineStart(),n.point(y[0][0],y[0][1])))}!v||e&&wt(e,g)||n.point(g[0],g[1]),e=g,l=v,u=d},lineEnd:function(){l&&n.lineEnd(),e=null},clean:function(){return f|(c&&l)<<1}}}function r(n,t,e){var r=dt(n),i=dt(t),o=[1,0,0],a=mt(r,i),l=yt(a,a),c=a[0],f=l-c*c;if(!f)return!e&&n;var s=u*l/f,h=-u*c/f,p=mt(o,a),g=xt(o,s),v=xt(a,h);Mt(g,v);var d=p,y=yt(g,d),m=yt(d,d),M=y*y-m*(yt(g,g)-1);if(!(0>M)){var x=Math.sqrt(M),b=xt(d,(-y-x)/m);if(Mt(b,g),b=_t(b),!e)return b;var _,w=n[0],S=t[0],k=n[1],N=t[1];w>S&&(_=w,w=S,S=_);var E=S-w,A=xo(E-Fo)E;if(!A&&k>N&&(_=k,k=N,N=_),C?A?k+N>0^b[1]<(xo(b[0]-w)Fo^(w<=b[0]&&b[0]<=S)){var z=xt(d,(-y+x)/m);return Mt(z,g),[b,_t(z)]}}}function i(t,e){var r=o?n:Fo-n,i=0;return-r>t?i|=1:t>r&&(i|=2),-r>e?i|=4:e>r&&(i|=8),i}var u=Math.cos(n),o=u>0,a=xo(u)>Uo,l=ve(n,6*Yo);return Rt(t,e,l,o?[0,-n]:[-Fo,n-Fo])}function Yt(n,t,e,r){return function(i){var u,o=i.a,a=i.b,l=o.x,c=o.y,f=a.x,s=a.y,h=0,p=1,g=f-l,v=s-c;if(u=n-l,g||!(u>0)){if(u/=g,0>g){if(h>u)return;p>u&&(p=u)}else if(g>0){if(u>p)return;u>h&&(h=u)}if(u=e-l,g||!(0>u)){if(u/=g,0>g){if(u>p)return;u>h&&(h=u)}else if(g>0){if(h>u)return;p>u&&(p=u)}if(u=t-c,v||!(u>0)){if(u/=v,0>v){if(h>u)return;p>u&&(p=u)}else if(v>0){if(u>p)return;u>h&&(h=u)}if(u=r-c,v||!(0>u)){if(u/=v,0>v){if(u>p)return;u>h&&(h=u)}else if(v>0){if(h>u)return;p>u&&(p=u)}return h>0&&(i.a={x:l+h*g,y:c+h*v}),1>p&&(i.b={x:l+p*g,y:c+p*v}),i}}}}}}function Zt(n,t,e,r){function i(r,i){return xo(r[0]-n)0?0:3:xo(r[0]-e)0?2:1:xo(r[1]-t)0?1:0:i>0?3:2}function u(n,t){return o(n.x,t.x)}function o(n,t){var e=i(n,1),r=i(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function l(n){for(var t=0,e=d.length,r=n[1],i=0;e>i;++i)for(var u,o=1,a=d[i],l=a.length,c=a[0];l>o;++o)u=a[o],c[1]<=r?u[1]>r&&Q(c,u,n)>0&&++t:u[1]<=r&&Q(c,u,n)<0&&--t,c=u;return 0!==t}function c(u,a,l,c){var f=0,s=0;if(null==u||(f=i(u,l))!==(s=i(a,l))||o(u,a)<0^l>0){do c.point(0===f||3===f?n:e,f>1?r:t);while((f=(f+l+4)%4)!==s)}else c.point(a[0],a[1])}function f(i,u){return i>=n&&e>=i&&u>=t&&r>=u}function s(n,t){f(n,t)&&a.point(n,t)}function h(){C.point=g,d&&d.push(y=[]),S=!0,w=!1,b=_=NaN}function p(){v&&(g(m,M),x&&w&&E.rejoin(),v.push(E.buffer())),C.point=s,w&&a.lineEnd()}function g(n,t){n=Math.max(-Ha,Math.min(Ha,n)),t=Math.max(-Ha,Math.min(Ha,t));var e=f(n,t);if(d&&y.push([n,t]),S)m=n,M=t,x=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:b,y:_},b:{x:n,y:t}};A(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}b=n,_=t,w=e}var v,d,y,m,M,x,b,_,w,S,k,N=a,E=Pt(),A=Yt(n,t,e,r),C={point:s,lineStart:h,lineEnd:p,polygonStart:function(){a=E,v=[],d=[],k=!0},polygonEnd:function(){a=N,v=ao.merge(v);var t=l([n,r]),e=k&&t,i=v.length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),c(null,null,1,a),a.lineEnd()),i&&Lt(v,u,t,c,a),a.polygonEnd()),v=d=y=null}};return C}}function Vt(n){var t=0,e=Fo/3,r=ae(n),i=r(t,e);return i.parallels=function(n){return arguments.length?r(t=n[0]*Fo/180,e=n[1]*Fo/180):[t/Fo*180,e/Fo*180]},i}function Xt(n,t){function e(n,t){var e=Math.sqrt(u-2*i*Math.sin(t))/i;return[e*Math.sin(n*=i),o-e*Math.cos(n)]}var r=Math.sin(n),i=(r+Math.sin(t))/2,u=1+r*(2*i-r),o=Math.sqrt(u)/i;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/i,tn((u-(n*n+e*e)*i*i)/(2*i))]},e}function $t(){function n(n,t){Ia+=i*n-r*t,r=n,i=t}var t,e,r,i;$a.point=function(u,o){$a.point=n,t=r=u,e=i=o},$a.lineEnd=function(){n(t,e)}}function Bt(n,t){Ya>n&&(Ya=n),n>Va&&(Va=n),Za>t&&(Za=t),t>Xa&&(Xa=t)}function Wt(){function n(n,t){o.push("M",n,",",t,u)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function i(){o.push("Z")}var u=Jt(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return u=Jt(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Jt(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Gt(n,t){Ca+=n,za+=t,++La}function Kt(){function n(n,r){var i=n-t,u=r-e,o=Math.sqrt(i*i+u*u);qa+=o*(t+n)/2,Ta+=o*(e+r)/2,Ra+=o,Gt(t=n,e=r)}var t,e;Wa.point=function(r,i){Wa.point=n,Gt(t=r,e=i)}}function Qt(){Wa.point=Gt}function ne(){function n(n,t){var e=n-r,u=t-i,o=Math.sqrt(e*e+u*u);qa+=o*(r+n)/2,Ta+=o*(i+t)/2,Ra+=o,o=i*n-r*t,Da+=o*(r+n),Pa+=o*(i+t),Ua+=3*o,Gt(r=n,i=t)}var t,e,r,i;Wa.point=function(u,o){Wa.point=n,Gt(t=r=u,e=i=o)},Wa.lineEnd=function(){n(t,e)}}function te(n){function t(t,e){n.moveTo(t+o,e),n.arc(t,e,o,0,Ho)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function i(){a.point=t}function u(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:i,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=i,a.point=t},pointRadius:function(n){return o=n,a},result:b};return a}function ee(n){function t(n){return(a?r:e)(n)}function e(t){return ue(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){M=NaN,S.point=u,t.lineStart()}function u(e,r){var u=dt([e,r]),o=n(e,r);i(M,x,m,b,_,w,M=o[0],x=o[1],m=e,b=u[0],_=u[1],w=u[2],a,t),t.point(M,x)}function o(){S.point=e,t.lineEnd()}function l(){
r(),S.point=c,S.lineEnd=f}function c(n,t){u(s=n,h=t),p=M,g=x,v=b,d=_,y=w,S.point=u}function f(){i(M,x,m,b,_,w,p,g,s,v,d,y,a,t),S.lineEnd=o,o()}var s,h,p,g,v,d,y,m,M,x,b,_,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=l},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function i(t,e,r,a,l,c,f,s,h,p,g,v,d,y){var m=f-t,M=s-e,x=m*m+M*M;if(x>4*u&&d--){var b=a+p,_=l+g,w=c+v,S=Math.sqrt(b*b+_*_+w*w),k=Math.asin(w/=S),N=xo(xo(w)-1)u||xo((m*z+M*L)/x-.5)>.3||o>a*p+l*g+c*v)&&(i(t,e,r,a,l,c,A,C,N,b/=S,_/=S,w,d,y),y.point(A,C),i(A,C,N,b,_,w,f,s,h,p,g,v,d,y))}}var u=.5,o=Math.cos(30*Yo),a=16;return t.precision=function(n){return arguments.length?(a=(u=n*n)>0&&16,t):Math.sqrt(u)},t}function re(n){var t=ee(function(t,e){return n([t*Zo,e*Zo])});return function(n){return le(t(n))}}function ie(n){this.stream=n}function ue(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function oe(n){return ae(function(){return n})()}function ae(n){function t(n){return n=a(n[0]*Yo,n[1]*Yo),[n[0]*h+l,c-n[1]*h]}function e(n){return n=a.invert((n[0]-l)/h,(c-n[1])/h),n&&[n[0]*Zo,n[1]*Zo]}function r(){a=Ct(o=se(y,M,x),u);var n=u(v,d);return l=p-n[0]*h,c=g+n[1]*h,i()}function i(){return f&&(f.valid=!1,f=null),t}var u,o,a,l,c,f,s=ee(function(n,t){return n=u(n,t),[n[0]*h+l,c-n[1]*h]}),h=150,p=480,g=250,v=0,d=0,y=0,M=0,x=0,b=Fa,_=m,w=null,S=null;return t.stream=function(n){return f&&(f.valid=!1),f=le(b(o,s(_(n)))),f.valid=!0,f},t.clipAngle=function(n){return arguments.length?(b=null==n?(w=n,Fa):It((w=+n)*Yo),i()):w},t.clipExtent=function(n){return arguments.length?(S=n,_=n?Zt(n[0][0],n[0][1],n[1][0],n[1][1]):m,i()):S},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(p=+n[0],g=+n[1],r()):[p,g]},t.center=function(n){return arguments.length?(v=n[0]%360*Yo,d=n[1]%360*Yo,r()):[v*Zo,d*Zo]},t.rotate=function(n){return arguments.length?(y=n[0]%360*Yo,M=n[1]%360*Yo,x=n.length>2?n[2]%360*Yo:0,r()):[y*Zo,M*Zo,x*Zo]},ao.rebind(t,s,"precision"),function(){return u=n.apply(this,arguments),t.invert=u.invert&&e,r()}}function le(n){return ue(n,function(t,e){n.point(t*Yo,e*Yo)})}function ce(n,t){return[n,t]}function fe(n,t){return[n>Fo?n-Ho:-Fo>n?n+Ho:n,t]}function se(n,t,e){return n?t||e?Ct(pe(n),ge(t,e)):pe(n):t||e?ge(t,e):fe}function he(n){return function(t,e){return t+=n,[t>Fo?t-Ho:-Fo>t?t+Ho:t,e]}}function pe(n){var t=he(n);return t.invert=he(-n),t}function ge(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*r+a*i;return[Math.atan2(l*u-f*o,a*r-c*i),tn(f*u+l*o)]}var r=Math.cos(n),i=Math.sin(n),u=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*u-l*o;return[Math.atan2(l*u+c*o,a*r+f*i),tn(f*r-a*i)]},e}function ve(n,t){var e=Math.cos(n),r=Math.sin(n);return function(i,u,o,a){var l=o*t;null!=i?(i=de(e,i),u=de(e,u),(o>0?u>i:i>u)&&(i+=o*Ho)):(i=n+o*Ho,u=n-.5*l);for(var c,f=i;o>0?f>u:u>f;f-=l)a.point((c=_t([e,-r*Math.cos(f),-r*Math.sin(f)]))[0],c[1])}}function de(n,t){var e=dt(t);e[0]-=n,bt(e);var r=nn(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Uo)%(2*Math.PI)}function ye(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function me(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function Me(n){return n.source}function xe(n){return n.target}function be(n,t,e,r){var i=Math.cos(t),u=Math.sin(t),o=Math.cos(r),a=Math.sin(r),l=i*Math.cos(n),c=i*Math.sin(n),f=o*Math.cos(e),s=o*Math.sin(e),h=2*Math.asin(Math.sqrt(on(r-t)+i*o*on(e-n))),p=1/Math.sin(h),g=h?function(n){var t=Math.sin(n*=h)*p,e=Math.sin(h-n)*p,r=e*l+t*f,i=e*c+t*s,o=e*u+t*a;return[Math.atan2(i,r)*Zo,Math.atan2(o,Math.sqrt(r*r+i*i))*Zo]}:function(){return[n*Zo,t*Zo]};return g.distance=h,g}function _e(){function n(n,i){var u=Math.sin(i*=Yo),o=Math.cos(i),a=xo((n*=Yo)-t),l=Math.cos(a);Ja+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*u-e*o*l)*a),e*u+r*o*l),t=n,e=u,r=o}var t,e,r;Ga.point=function(i,u){t=i*Yo,e=Math.sin(u*=Yo),r=Math.cos(u),Ga.point=n},Ga.lineEnd=function(){Ga.point=Ga.lineEnd=b}}function we(n,t){function e(t,e){var r=Math.cos(t),i=Math.cos(e),u=n(r*i);return[u*i*Math.sin(t),u*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),i=t(r),u=Math.sin(i),o=Math.cos(i);return[Math.atan2(n*u,r*o),Math.asin(r&&e*u/r)]},e}function Se(n,t){function e(n,t){o>0?-Io+Uo>t&&(t=-Io+Uo):t>Io-Uo&&(t=Io-Uo);var e=o/Math.pow(i(t),u);return[e*Math.sin(u*n),o-e*Math.cos(u*n)]}var r=Math.cos(n),i=function(n){return Math.tan(Fo/4+n/2)},u=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(i(t)/i(n)),o=r*Math.pow(i(n),u)/u;return u?(e.invert=function(n,t){var e=o-t,r=K(u)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/u,2*Math.atan(Math.pow(o/r,1/u))-Io]},e):Ne}function ke(n,t){function e(n,t){var e=u-t;return[e*Math.sin(i*n),u-e*Math.cos(i*n)]}var r=Math.cos(n),i=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),u=r/i+n;return xo(i)i;i++){for(;r>1&&Q(n[e[r-2]],n[e[r-1]],n[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function qe(n,t){return n[0]-t[0]||n[1]-t[1]}function Te(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Re(n,t,e,r){var i=n[0],u=e[0],o=t[0]-i,a=r[0]-u,l=n[1],c=e[1],f=t[1]-l,s=r[1]-c,h=(a*(l-c)-s*(i-u))/(s*o-a*f);return[i+h*o,l+h*f]}function De(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Pe(){rr(this),this.edge=this.site=this.circle=null}function Ue(n){var t=cl.pop()||new Pe;return t.site=n,t}function je(n){Be(n),ol.remove(n),cl.push(n),rr(n)}function Fe(n){var t=n.circle,e=t.x,r=t.cy,i={x:e,y:r},u=n.P,o=n.N,a=[n];je(n);for(var l=u;l.circle&&xo(e-l.circle.x)f;++f)c=a[f],l=a[f-1],nr(c.edge,l.site,c.site,i);l=a[0],c=a[s-1],c.edge=Ke(l.site,c.site,null,i),$e(l),$e(c)}function He(n){for(var t,e,r,i,u=n.x,o=n.y,a=ol._;a;)if(r=Oe(a,o)-u,r>Uo)a=a.L;else{if(i=u-Ie(a,o),!(i>Uo)){r>-Uo?(t=a.P,e=a):i>-Uo?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var l=Ue(n);if(ol.insert(t,l),t||e){if(t===e)return Be(t),e=Ue(t.site),ol.insert(l,e),l.edge=e.edge=Ke(t.site,l.site),$e(t),void $e(e);if(!e)return void(l.edge=Ke(t.site,l.site));Be(t),Be(e);var c=t.site,f=c.x,s=c.y,h=n.x-f,p=n.y-s,g=e.site,v=g.x-f,d=g.y-s,y=2*(h*d-p*v),m=h*h+p*p,M=v*v+d*d,x={x:(d*m-p*M)/y+f,y:(h*M-v*m)/y+s};nr(e.edge,c,g,x),l.edge=Ke(c,n,null,x),e.edge=Ke(n,g,null,x),$e(t),$e(e)}}function Oe(n,t){var e=n.site,r=e.x,i=e.y,u=i-t;if(!u)return r;var o=n.P;if(!o)return-(1/0);e=o.site;var a=e.x,l=e.y,c=l-t;if(!c)return a;var f=a-r,s=1/u-1/c,h=f/c;return s?(-h+Math.sqrt(h*h-2*s*(f*f/(-2*c)-l+c/2+i-u/2)))/s+r:(r+a)/2}function Ie(n,t){var e=n.N;if(e)return Oe(e,t);var r=n.site;return r.y===t?r.x:1/0}function Ye(n){this.site=n,this.edges=[]}function Ze(n){for(var t,e,r,i,u,o,a,l,c,f,s=n[0][0],h=n[1][0],p=n[0][1],g=n[1][1],v=ul,d=v.length;d--;)if(u=v[d],u&&u.prepare())for(a=u.edges,l=a.length,o=0;l>o;)f=a[o].end(),r=f.x,i=f.y,c=a[++o%l].start(),t=c.x,e=c.y,(xo(r-t)>Uo||xo(i-e)>Uo)&&(a.splice(o,0,new tr(Qe(u.site,f,xo(r-s)Uo?{x:s,y:xo(t-s)Uo?{x:xo(e-g)Uo?{x:h,y:xo(t-h)Uo?{x:xo(e-p)=-jo)){var p=l*l+c*c,g=f*f+s*s,v=(s*p-c*g)/h,d=(l*g-f*p)/h,s=d+a,y=fl.pop()||new Xe;y.arc=n,y.site=i,y.x=v+o,y.y=s+Math.sqrt(v*v+d*d),y.cy=s,n.circle=y;for(var m=null,M=ll._;M;)if(y.yd||d>=a)return;if(h>g){if(u){if(u.y>=c)return}else u={x:d,y:l};e={x:d,y:c}}else{if(u){if(u.yr||r>1)if(h>g){if(u){if(u.y>=c)return}else u={x:(l-i)/r,y:l};e={x:(c-i)/r,y:c}}else{if(u){if(u.yp){if(u){if(u.x>=a)return}else u={x:o,y:r*o+i};e={x:a,y:r*a+i}}else{if(u){if(u.xu||s>o||r>h||i>p)){if(g=n.point){var g,v=t-n.x,d=e-n.y,y=v*v+d*d;if(l>y){var m=Math.sqrt(l=y);r=t-m,i=e-m,u=t+m,o=e+m,a=g}}for(var M=n.nodes,x=.5*(f+h),b=.5*(s+p),_=t>=x,w=e>=b,S=w<<1|_,k=S+4;k>S;++S)if(n=M[3&S])switch(3&S){case 0:c(n,f,s,x,b);break;case 1:c(n,x,s,h,b);break;case 2:c(n,f,b,x,p);break;case 3:c(n,x,b,h,p)}}}(n,r,i,u,o),a}function vr(n,t){n=ao.rgb(n),t=ao.rgb(t);var e=n.r,r=n.g,i=n.b,u=t.r-e,o=t.g-r,a=t.b-i;return function(n){return"#"+bn(Math.round(e+u*n))+bn(Math.round(r+o*n))+bn(Math.round(i+a*n))}}function dr(n,t){var e,r={},i={};for(e in n)e in t?r[e]=Mr(n[e],t[e]):i[e]=n[e];for(e in t)e in n||(i[e]=t[e]);return function(n){for(e in r)i[e]=r[e](n);return i}}function yr(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function mr(n,t){var e,r,i,u=hl.lastIndex=pl.lastIndex=0,o=-1,a=[],l=[];for(n+="",t+="";(e=hl.exec(n))&&(r=pl.exec(t));)(i=r.index)>u&&(i=t.slice(u,i),a[o]?a[o]+=i:a[++o]=i),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,l.push({i:o,x:yr(e,r)})),u=pl.lastIndex;return ur;++r)a[(e=l[r]).i]=e.x(n);return a.join("")})}function Mr(n,t){for(var e,r=ao.interpolators.length;--r>=0&&!(e=ao.interpolators[r](n,t)););return e}function xr(n,t){var e,r=[],i=[],u=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(Mr(n[e],t[e]));for(;u>e;++e)i[e]=n[e];for(;o>e;++e)i[e]=t[e];return function(n){for(e=0;a>e;++e)i[e]=r[e](n);return i}}function br(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function _r(n){return function(t){return 1-n(1-t)}}function wr(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function Sr(n){return n*n}function kr(n){return n*n*n}function Nr(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Er(n){return function(t){return Math.pow(t,n)}}function Ar(n){return 1-Math.cos(n*Io)}function Cr(n){return Math.pow(2,10*(n-1))}function zr(n){return 1-Math.sqrt(1-n*n)}function Lr(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/Ho*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*Ho/t)}}function qr(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function Tr(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Rr(n,t){n=ao.hcl(n),t=ao.hcl(t);var e=n.h,r=n.c,i=n.l,u=t.h-e,o=t.c-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return sn(e+u*n,r+o*n,i+a*n)+""}}function Dr(n,t){n=ao.hsl(n),t=ao.hsl(t);var e=n.h,r=n.s,i=n.l,u=t.h-e,o=t.s-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return cn(e+u*n,r+o*n,i+a*n)+""}}function Pr(n,t){n=ao.lab(n),t=ao.lab(t);var e=n.l,r=n.a,i=n.b,u=t.l-e,o=t.a-r,a=t.b-i;return function(n){return pn(e+u*n,r+o*n,i+a*n)+""}}function Ur(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function jr(n){var t=[n.a,n.b],e=[n.c,n.d],r=Hr(t),i=Fr(t,e),u=Hr(Or(e,t,-i))||0;t[0]*e[1]180?t+=360:t-n>180&&(n+=360),r.push({i:e.push(Ir(e)+"rotate(",null,")")-2,x:yr(n,t)})):t&&e.push(Ir(e)+"rotate("+t+")")}function Vr(n,t,e,r){n!==t?r.push({i:e.push(Ir(e)+"skewX(",null,")")-2,x:yr(n,t)}):t&&e.push(Ir(e)+"skewX("+t+")")}function Xr(n,t,e,r){if(n[0]!==t[0]||n[1]!==t[1]){var i=e.push(Ir(e)+"scale(",null,",",null,")");r.push({i:i-4,x:yr(n[0],t[0])},{i:i-2,x:yr(n[1],t[1])})}else 1===t[0]&&1===t[1]||e.push(Ir(e)+"scale("+t+")")}function $r(n,t){var e=[],r=[];return n=ao.transform(n),t=ao.transform(t),Yr(n.translate,t.translate,e,r),Zr(n.rotate,t.rotate,e,r),Vr(n.skew,t.skew,e,r),Xr(n.scale,t.scale,e,r),n=t=null,function(n){for(var t,i=-1,u=r.length;++i=0;)e.push(i[r])}function oi(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(u=n.children)&&(i=u.length))for(var i,u,o=-1;++oe;++e)(t=n[e][1])>i&&(r=e,i=t);return r}function yi(n){return n.reduce(mi,0)}function mi(n,t){return n+t[1]}function Mi(n,t){return xi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function xi(n,t){for(var e=-1,r=+n[0],i=(n[1]-r)/t,u=[];++e<=t;)u[e]=i*e+r;return u}function bi(n){return[ao.min(n),ao.max(n)]}function _i(n,t){return n.value-t.value}function wi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function Si(n,t){n._pack_next=t,t._pack_prev=n}function ki(n,t){var e=t.x-n.x,r=t.y-n.y,i=n.r+t.r;return.999*i*i>e*e+r*r}function Ni(n){function t(n){f=Math.min(n.x-n.r,f),s=Math.max(n.x+n.r,s),h=Math.min(n.y-n.r,h),p=Math.max(n.y+n.r,p)}if((e=n.children)&&(c=e.length)){var e,r,i,u,o,a,l,c,f=1/0,s=-(1/0),h=1/0,p=-(1/0);if(e.forEach(Ei),r=e[0],r.x=-r.r,r.y=0,t(r),c>1&&(i=e[1],i.x=i.r,i.y=0,t(i),c>2))for(u=e[2],zi(r,i,u),t(u),wi(r,u),r._pack_prev=u,wi(u,i),i=r._pack_next,o=3;c>o;o++){zi(r,i,u=e[o]);var g=0,v=1,d=1;for(a=i._pack_next;a!==i;a=a._pack_next,v++)if(ki(a,u)){g=1;break}if(1==g)for(l=r._pack_prev;l!==a._pack_prev&&!ki(l,u);l=l._pack_prev,d++);g?(d>v||v==d&&i.ro;o++)u=e[o],u.x-=y,u.y-=m,M=Math.max(M,u.r+Math.sqrt(u.x*u.x+u.y*u.y));n.r=M,e.forEach(Ai)}}function Ei(n){n._pack_next=n._pack_prev=n}function Ai(n){delete n._pack_next,delete n._pack_prev}function Ci(n,t,e,r){var i=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,i)for(var u=-1,o=i.length;++u=0;)t=i[u],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Pi(n,t,e){return n.a.parent===t.parent?n.a:e}function Ui(n){return 1+ao.max(n,function(n){return n.y})}function ji(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Fi(n){var t=n.children;return t&&t.length?Fi(t[0]):n}function Hi(n){var t,e=n.children;return e&&(t=e.length)?Hi(e[t-1]):n}function Oi(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Ii(n,t){var e=n.x+t[3],r=n.y+t[0],i=n.dx-t[1]-t[3],u=n.dy-t[0]-t[2];return 0>i&&(e+=i/2,i=0),0>u&&(r+=u/2,u=0),{x:e,y:r,dx:i,dy:u}}function Yi(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Zi(n){return n.rangeExtent?n.rangeExtent():Yi(n.range())}function Vi(n,t,e,r){var i=e(n[0],n[1]),u=r(t[0],t[1]);return function(n){return u(i(n))}}function Xi(n,t){var e,r=0,i=n.length-1,u=n[r],o=n[i];return u>o&&(e=r,r=i,i=e,e=u,u=o,o=e),n[r]=t.floor(u),n[i]=t.ceil(o),n}function $i(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:Sl}function Bi(n,t,e,r){var i=[],u=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]2?Bi:Vi,l=r?Wr:Br;return o=i(n,t,l,e),a=i(t,n,l,Mr),u}function u(n){return o(n)}var o,a;return u.invert=function(n){return a(n)},u.domain=function(t){return arguments.length?(n=t.map(Number),i()):n},u.range=function(n){return arguments.length?(t=n,i()):t},u.rangeRound=function(n){return u.range(n).interpolate(Ur)},u.clamp=function(n){return arguments.length?(r=n,i()):r},u.interpolate=function(n){return arguments.length?(e=n,i()):e},u.ticks=function(t){return Qi(n,t)},u.tickFormat=function(t,e){return nu(n,t,e)},u.nice=function(t){return Gi(n,t),i()},u.copy=function(){return Wi(n,t,e,r)},i()}function Ji(n,t){return ao.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Gi(n,t){return Xi(n,$i(Ki(n,t)[2])),Xi(n,$i(Ki(n,t)[2])),n}function Ki(n,t){null==t&&(t=10);var e=Yi(n),r=e[1]-e[0],i=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),u=t/r*i;return.15>=u?i*=10:.35>=u?i*=5:.75>=u&&(i*=2),e[0]=Math.ceil(e[0]/i)*i,e[1]=Math.floor(e[1]/i)*i+.5*i,e[2]=i,e}function Qi(n,t){return ao.range.apply(ao,Ki(n,t))}function nu(n,t,e){var r=Ki(n,t);if(e){var i=ha.exec(e);if(i.shift(),"s"===i[8]){var u=ao.formatPrefix(Math.max(xo(r[0]),xo(r[1])));return i[7]||(i[7]="."+tu(u.scale(r[2]))),i[8]="f",e=ao.format(i.join("")),function(n){return e(u.scale(n))+u.symbol}}i[7]||(i[7]="."+eu(i[8],r)),e=i.join("")}else e=",."+tu(r[2])+"f";return ao.format(e)}function tu(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function eu(n,t){var e=tu(t[2]);return n in kl?Math.abs(e-tu(Math.max(xo(t[0]),xo(t[1]))))+ +("e"!==n):e-2*("%"===n)}function ru(n,t,e,r){function i(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function u(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(i(t))}return o.invert=function(t){return u(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(i)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(i)),o):t},o.nice=function(){var t=Xi(r.map(i),e?Math:El);return n.domain(t),r=t.map(u),o},o.ticks=function(){var n=Yi(r),o=[],a=n[0],l=n[1],c=Math.floor(i(a)),f=Math.ceil(i(l)),s=t%1?2:t;if(isFinite(f-c)){if(e){for(;f>c;c++)for(var h=1;s>h;h++)o.push(u(c)*h);o.push(u(c))}else for(o.push(u(c));c++0;h--)o.push(u(c)*h);for(c=0;o[c]l;f--);o=o.slice(c,f)}return o},o.tickFormat=function(n,e){if(!arguments.length)return Nl;arguments.length<2?e=Nl:"function"!=typeof e&&(e=ao.format(e));var r=Math.max(1,t*n/o.ticks().length);return function(n){var o=n/u(Math.round(i(n)));return t-.5>o*t&&(o*=t),r>=o?e(n):""}},o.copy=function(){return ru(n.copy(),t,e,r)},Ji(o,n)}function iu(n,t,e){function r(t){return n(i(t))}var i=uu(t),u=uu(1/t);return r.invert=function(t){return u(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(i)),r):e},r.ticks=function(n){return Qi(e,n)},r.tickFormat=function(n,t){return nu(e,n,t)},r.nice=function(n){return r.domain(Gi(e,n))},r.exponent=function(o){return arguments.length?(i=uu(t=o),u=uu(1/t),n.domain(e.map(i)),r):t},r.copy=function(){return iu(n.copy(),t,e)},Ji(r,n)}function uu(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function ou(n,t){function e(e){return u[((i.get(e)||("range"===t.t?i.set(e,n.push(e)):NaN))-1)%u.length]}function r(t,e){return ao.range(n.length).map(function(n){return t+e*n})}var i,u,o;return e.domain=function(r){if(!arguments.length)return n;n=[],i=new c;for(var u,o=-1,a=r.length;++o e?[NaN,NaN]:[e>0?a[e-1]:n[0],e t?NaN:t/u+n,[t,t+1/u]},r.copy=function(){return lu(n,t,e)},i()}function cu(n,t){function e(e){return e>=e?t[ao.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return cu(n,t)},e}function fu(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Qi(n,t)},t.tickFormat=function(t,e){return nu(n,t,e)},t.copy=function(){return fu(n)},t}function su(){return 0}function hu(n){return n.innerRadius}function pu(n){return n.outerRadius}function gu(n){return n.startAngle}function vu(n){return n.endAngle}function du(n){return n&&n.padAngle}function yu(n,t,e,r){return(n-e)*t-(t-r)*n>0?0:1}function mu(n,t,e,r,i){var u=n[0]-t[0],o=n[1]-t[1],a=(i?r:-r)/Math.sqrt(u*u+o*o),l=a*o,c=-a*u,f=n[0]+l,s=n[1]+c,h=t[0]+l,p=t[1]+c,g=(f+h)/2,v=(s+p)/2,d=h-f,y=p-s,m=d*d+y*y,M=e-r,x=f*p-h*s,b=(0>y?-1:1)*Math.sqrt(Math.max(0,M*M*m-x*x)),_=(x*y-d*b)/m,w=(-x*d-y*b)/m,S=(x*y+d*b)/m,k=(-x*d+y*b)/m,N=_-g,E=w-v,A=S-g,C=k-v;return N*N+E*E>A*A+C*C&&(_=S,w=k),[[_-l,w-c],[_*e/M,w*e/M]]}function Mu(n){function t(t){function o(){c.push("M",u(n(f),a))}for(var l,c=[],f=[],s=-1,h=t.length,p=En(e),g=En(r);++s1?n.join("L"):n+"Z"}function bu(n){return n.join("L")+"Z"}function _u(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1&&i.push("H",r[0]),i.join("")}function wu(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1){a=t[1],u=n[l],l++,r+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(u[0]-a[0])+","+(u[1]-a[1])+","+u[0]+","+u[1];for(var c=2;c9&&(i=3*t/Math.sqrt(i),o[a]=i*e,o[a+1]=i*r));for(a=-1;++a<=l;)i=(n[Math.min(l,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),u.push([i||0,o[a]*i||0]);return u}function Fu(n){return n.length<3?xu(n):n[0]+Au(n,ju(n))}function Hu(n){for(var t,e,r,i=-1,u=n.length;++i=t?o(n-t):void(f.c=o)}function o(e){var i=g.active,u=g[i];u&&(u.timer.c=null,u.timer.t=NaN,--g.count,delete g[i],u.event&&u.event.interrupt.call(n,n.__data__,u.index));for(var o in g)if(r>+o){var c=g[o];c.timer.c=null,c.timer.t=NaN,--g.count,delete g[o]}f.c=a,qn(function(){return f.c&&a(e||1)&&(f.c=null,f.t=NaN),1},0,l),g.active=r,v.event&&v.event.start.call(n,n.__data__,t),p=[],v.tween.forEach(function(e,r){(r=r.call(n,n.__data__,t))&&p.push(r)}),h=v.ease,s=v.duration}function a(i){for(var u=i/s,o=h(u),a=p.length;a>0;)p[--a].call(n,o);return u>=1?(v.event&&v.event.end.call(n,n.__data__,t),--g.count?delete g[r]:delete n[e],1):void 0}var l,f,s,h,p,g=n[e]||(n[e]={active:0,count:0}),v=g[r];v||(l=i.time,f=qn(u,0,l),v=g[r]={tween:new c,time:l,timer:f,delay:i.delay,duration:i.duration,ease:i.ease,index:t},i=null,++g.count)}function no(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function to(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function eo(n){return n.toISOString()}function ro(n,t,e){function r(t){return n(t)}function i(n,e){var r=n[1]-n[0],i=r/e,u=ao.bisect(Kl,i);return u==Kl.length?[t.year,Ki(n.map(function(n){return n/31536e6}),e)[2]]:u?t[i/Kl[u-1]1?{floor:function(t){for(;e(t=n.floor(t));)t=io(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=io(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Yi(r.domain()),u=null==n?i(e,10):"number"==typeof n?i(e,n):!n.range&&[{range:n},t];return u&&(n=u[0],t=u[1]),n.range(e[0],io(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return ro(n.copy(),t,e)},Ji(r,n)}function io(n){return new Date(n)}function uo(n){return JSON.parse(n.responseText)}function oo(n){var t=fo.createRange();return t.selectNode(fo.body),t.createContextualFragment(n.responseText)}var ao={version:"3.5.17"},lo=[].slice,co=function(n){return lo.call(n)},fo=this.document;if(fo)try{co(fo.documentElement.childNodes)[0].nodeType}catch(so){co=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}if(Date.now||(Date.now=function(){return+new Date}),fo)try{fo.createElement("DIV").style.setProperty("opacity",0,"")}catch(ho){var po=this.Element.prototype,go=po.setAttribute,vo=po.setAttributeNS,yo=this.CSSStyleDeclaration.prototype,mo=yo.setProperty;po.setAttribute=function(n,t){go.call(this,n,t+"")},po.setAttributeNS=function(n,t,e){vo.call(this,n,t,e+"")},yo.setProperty=function(n,t,e){mo.call(this,n,t+"",e)}}ao.ascending=e,ao.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:NaN},ao.min=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ir&&(e=r)}else{for(;++i=r){e=r;break}for(;++ir&&(e=r)}return e},ao.max=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ie&&(e=r)}else{for(;++i=r){e=r;break}for(;++ie&&(e=r)}return e},ao.extent=function(n,t){var e,r,i,u=-1,o=n.length;if(1===arguments.length){for(;++u=r){e=i=r;break}for(;++ur&&(e=r),r>i&&(i=r))}else{for(;++u=r){e=i=r;break}for(;++ur&&(e=r),r>i&&(i=r))}return[e,i]},ao.sum=function(n,t){var e,r=0,u=n.length,o=-1;if(1===arguments.length)for(;++o1?l/(f-1):void 0},ao.deviation=function(){var n=ao.variance.apply(this,arguments);return n?Math.sqrt(n):n};var Mo=u(e);ao.bisectLeft=Mo.left,ao.bisect=ao.bisectRight=Mo.right,ao.bisector=function(n){return u(1===n.length?function(t,r){return e(n(t),r)}:n)},ao.shuffle=function(n,t,e){(u=arguments.length)<3&&(e=n.length,2>u&&(t=0));for(var r,i,u=e-t;u;)i=Math.random()*u--|0,r=n[u+t],n[u+t]=n[i+t],n[i+t]=r;return n},ao.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},ao.pairs=function(n){for(var t,e=0,r=n.length-1,i=n[0],u=new Array(0>r?0:r);r>e;)u[e]=[t=i,i=n[++e]];return u},ao.transpose=function(n){if(!(i=n.length))return[];for(var t=-1,e=ao.min(n,o),r=new Array(e);++t=0;)for(r=n[i],t=r.length;--t>=0;)e[--o]=r[t];return e};var xo=Math.abs;ao.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),(t-n)/e===1/0)throw new Error("infinite range");var r,i=[],u=a(xo(e)),o=-1;if(n*=u,t*=u,e*=u,0>e)for(;(r=n+e*++o)>t;)i.push(r/u);else for(;(r=n+e*++o)=u.length)return r?r.call(i,o):e?o.sort(e):o;for(var l,f,s,h,p=-1,g=o.length,v=u[a++],d=new c;++p=u.length)return n;var r=[],i=o[e++];return n.forEach(function(n,i){r.push({key:n,values:t(i,e)})}),i?r.sort(function(n,t){return i(n.key,t.key)}):r}var e,r,i={},u=[],o=[];return i.map=function(t,e){return n(e,t,0)},i.entries=function(e){return t(n(ao.map,e,0),0)},i.key=function(n){return u.push(n),i},i.sortKeys=function(n){return o[u.length-1]=n,i},i.sortValues=function(n){return e=n,i},i.rollup=function(n){return r=n,i},i},ao.set=function(n){var t=new y;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},l(y,{has:h,add:function(n){return this._[f(n+="")]=!0,n},remove:p,values:g,size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,s(t))}}),ao.behavior={},ao.rebind=function(n,t){for(var e,r=1,i=arguments.length;++r=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},ao.event=null,ao.requote=function(n){return n.replace(So,"\\$&")};var So=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ko={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},No=function(n,t){return t.querySelector(n)},Eo=function(n,t){return t.querySelectorAll(n)},Ao=function(n,t){var e=n.matches||n[x(n,"matchesSelector")];return(Ao=function(n,t){return e.call(n,t)})(n,t)};"function"==typeof Sizzle&&(No=function(n,t){return Sizzle(n,t)[0]||null},Eo=Sizzle,Ao=Sizzle.matchesSelector),ao.selection=function(){return ao.select(fo.documentElement)};var Co=ao.selection.prototype=[];Co.select=function(n){var t,e,r,i,u=[];n=A(n);for(var o=-1,a=this.length;++o=0&&"xmlns"!==(e=n.slice(0,t))&&(n=n.slice(t+1)),Lo.hasOwnProperty(e)?{space:Lo[e],local:n}:n}},Co.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=ao.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(z(t,n[t]));return this}return this.each(z(n,t))},Co.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=T(n)).length,i=-1;if(t=e.classList){for(;++ii){if("string"!=typeof n){2>i&&(e="");for(r in n)this.each(P(r,n[r],e));return this}if(2>i){var u=this.node();return t(u).getComputedStyle(u,null).getPropertyValue(n)}r=""}return this.each(P(n,e,r))},Co.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(U(t,n[t]));return this}return this.each(U(n,t))},Co.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},Co.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},Co.append=function(n){return n=j(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},Co.insert=function(n,t){return n=j(n),t=A(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},Co.remove=function(){return this.each(F)},Co.data=function(n,t){function e(n,e){var r,i,u,o=n.length,s=e.length,h=Math.min(o,s),p=new Array(s),g=new Array(s),v=new Array(o);if(t){var d,y=new c,m=new Array(o);for(r=-1;++rr;++r)g[r]=H(e[r]);for(;o>r;++r)v[r]=n[r]}g.update=p,g.parentNode=p.parentNode=v.parentNode=n.parentNode,a.push(g),l.push(p),f.push(v)}var r,i,u=-1,o=this.length;if(!arguments.length){for(n=new Array(o=(r=this[0]).length);++uu;u++){i.push(t=[]),t.parentNode=(e=this[u]).parentNode;for(var a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return E(i)},Co.order=function(){for(var n=-1,t=this.length;++n=0;)(e=r[i])&&(u&&u!==e.nextSibling&&u.parentNode.insertBefore(e,u),u=e);return this},Co.sort=function(n){n=I.apply(this,arguments);for(var t=-1,e=this.length;++tn;n++)for(var e=this[n],r=0,i=e.length;i>r;r++){var u=e[r];if(u)return u}return null},Co.size=function(){var n=0;return Y(this,function(){++n}),n};var qo=[];ao.selection.enter=Z,ao.selection.enter.prototype=qo,qo.append=Co.append,qo.empty=Co.empty,qo.node=Co.node,qo.call=Co.call,qo.size=Co.size,qo.select=function(n){for(var t,e,r,i,u,o=[],a=-1,l=this.length;++ar){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(X(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(X(n,t,e))};var To=ao.map({mouseenter:"mouseover",mouseleave:"mouseout"});fo&&To.forEach(function(n){"on"+n in fo&&To.remove(n)});var Ro,Do=0;ao.mouse=function(n){return J(n,k())};var Po=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;ao.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=k().changedTouches),t)for(var r,i=0,u=t.length;u>i;++i)if((r=t[i]).identifier===e)return J(n,r)},ao.behavior.drag=function(){function n(){this.on("mousedown.drag",u).on("touchstart.drag",o)}function e(n,t,e,u,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-M[0],e=r[1]-M[1],g|=n|e,M=r,p({type:"drag",x:r[0]+c[0],y:r[1]+c[1],dx:n,dy:e}))}function l(){t(h,v)&&(y.on(u+d,null).on(o+d,null),m(g),p({type:"dragend"}))}var c,f=this,s=ao.event.target.correspondingElement||ao.event.target,h=f.parentNode,p=r.of(f,arguments),g=0,v=n(),d=".drag"+(null==v?"":"-"+v),y=ao.select(e(s)).on(u+d,a).on(o+d,l),m=W(s),M=t(h,v);i?(c=i.apply(f,arguments),c=[c.x-M[0],c.y-M[1]]):c=[0,0],p({type:"dragstart"})}}var r=N(n,"drag","dragstart","dragend"),i=null,u=e(b,ao.mouse,t,"mousemove","mouseup"),o=e(G,ao.touch,m,"touchmove","touchend");return n.origin=function(t){return arguments.length?(i=t,n):i},ao.rebind(n,r,"on")},ao.touches=function(n,t){return arguments.length<2&&(t=k().touches),t?co(t).map(function(t){var e=J(n,t);return e.identifier=t.identifier,e}):[]};var Uo=1e-6,jo=Uo*Uo,Fo=Math.PI,Ho=2*Fo,Oo=Ho-Uo,Io=Fo/2,Yo=Fo/180,Zo=180/Fo,Vo=Math.SQRT2,Xo=2,$o=4;ao.interpolateZoom=function(n,t){var e,r,i=n[0],u=n[1],o=n[2],a=t[0],l=t[1],c=t[2],f=a-i,s=l-u,h=f*f+s*s;if(jo>h)r=Math.log(c/o)/Vo,e=function(n){return[i+n*f,u+n*s,o*Math.exp(Vo*n*r)]};else{var p=Math.sqrt(h),g=(c*c-o*o+$o*h)/(2*o*Xo*p),v=(c*c-o*o-$o*h)/(2*c*Xo*p),d=Math.log(Math.sqrt(g*g+1)-g),y=Math.log(Math.sqrt(v*v+1)-v);r=(y-d)/Vo,e=function(n){var t=n*r,e=rn(d),a=o/(Xo*p)*(e*un(Vo*t+d)-en(d));return[i+a*f,u+a*s,o*e/rn(Vo*t+d)]}}return e.duration=1e3*r,e},ao.behavior.zoom=function(){function n(n){n.on(L,s).on(Wo+".zoom",p).on("dblclick.zoom",g).on(R,h)}function e(n){return[(n[0]-k.x)/k.k,(n[1]-k.y)/k.k]}function r(n){return[n[0]*k.k+k.x,n[1]*k.k+k.y]}function i(n){k.k=Math.max(A[0],Math.min(A[1],n))}function u(n,t){t=r(t),k.x+=n[0]-t[0],k.y+=n[1]-t[1]}function o(t,e,r,o){t.__chart__={x:k.x,y:k.y,k:k.k},i(Math.pow(2,o)),u(d=e,r),t=ao.select(t),C>0&&(t=t.transition().duration(C)),t.call(n.event)}function a(){b&&b.domain(x.range().map(function(n){return(n-k.x)/k.k}).map(x.invert)),w&&w.domain(_.range().map(function(n){return(n-k.y)/k.k}).map(_.invert))}function l(n){z++||n({type:"zoomstart"})}function c(n){a(),n({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function f(n){--z||(n({type:"zoomend"}),d=null)}function s(){function n(){a=1,u(ao.mouse(i),h),c(o)}function r(){s.on(q,null).on(T,null),p(a),f(o)}var i=this,o=D.of(i,arguments),a=0,s=ao.select(t(i)).on(q,n).on(T,r),h=e(ao.mouse(i)),p=W(i);Il.call(i),l(o)}function h(){function n(){var n=ao.touches(g);return p=k.k,n.forEach(function(n){n.identifier in d&&(d[n.identifier]=e(n))}),n}function t(){var t=ao.event.target;ao.select(t).on(x,r).on(b,a),_.push(t);for(var e=ao.event.changedTouches,i=0,u=e.length;u>i;++i)d[e[i].identifier]=null;var l=n(),c=Date.now();if(1===l.length){if(500>c-M){var f=l[0];o(g,f,d[f.identifier],Math.floor(Math.log(k.k)/Math.LN2)+1),S()}M=c}else if(l.length>1){var f=l[0],s=l[1],h=f[0]-s[0],p=f[1]-s[1];y=h*h+p*p}}function r(){var n,t,e,r,o=ao.touches(g);Il.call(g);for(var a=0,l=o.length;l>a;++a,r=null)if(e=o[a],r=d[e.identifier]){if(t)break;n=e,t=r}if(r){var f=(f=e[0]-n[0])*f+(f=e[1]-n[1])*f,s=y&&Math.sqrt(f/y);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+r[0])/2,(t[1]+r[1])/2],i(s*p)}M=null,u(n,t),c(v)}function a(){if(ao.event.touches.length){for(var t=ao.event.changedTouches,e=0,r=t.length;r>e;++e)delete d[t[e].identifier];for(var i in d)return void n()}ao.selectAll(_).on(m,null),w.on(L,s).on(R,h),N(),f(v)}var p,g=this,v=D.of(g,arguments),d={},y=0,m=".zoom-"+ao.event.changedTouches[0].identifier,x="touchmove"+m,b="touchend"+m,_=[],w=ao.select(g),N=W(g);t(),l(v),w.on(L,null).on(R,t)}function p(){var n=D.of(this,arguments);m?clearTimeout(m):(Il.call(this),v=e(d=y||ao.mouse(this)),l(n)),m=setTimeout(function(){m=null,f(n)},50),S(),i(Math.pow(2,.002*Bo())*k.k),u(d,v),c(n)}function g(){var n=ao.mouse(this),t=Math.log(k.k)/Math.LN2;o(this,n,e(n),ao.event.shiftKey?Math.ceil(t)-1:Math.floor(t)+1)}var v,d,y,m,M,x,b,_,w,k={x:0,y:0,k:1},E=[960,500],A=Jo,C=250,z=0,L="mousedown.zoom",q="mousemove.zoom",T="mouseup.zoom",R="touchstart.zoom",D=N(n,"zoomstart","zoom","zoomend");return Wo||(Wo="onwheel"in fo?(Bo=function(){return-ao.event.deltaY*(ao.event.deltaMode?120:1)},"wheel"):"onmousewheel"in fo?(Bo=function(){return ao.event.wheelDelta},"mousewheel"):(Bo=function(){return-ao.event.detail},"MozMousePixelScroll")),n.event=function(n){n.each(function(){var n=D.of(this,arguments),t=k;Hl?ao.select(this).transition().each("start.zoom",function(){k=this.__chart__||{x:0,y:0,k:1},l(n)}).tween("zoom:zoom",function(){var e=E[0],r=E[1],i=d?d[0]:e/2,u=d?d[1]:r/2,o=ao.interpolateZoom([(i-k.x)/k.k,(u-k.y)/k.k,e/k.k],[(i-t.x)/t.k,(u-t.y)/t.k,e/t.k]);return function(t){var r=o(t),a=e/r[2];this.__chart__=k={x:i-r[0]*a,y:u-r[1]*a,k:a},c(n)}}).each("interrupt.zoom",function(){f(n)}).each("end.zoom",function(){f(n)}):(this.__chart__=k,l(n),c(n),f(n))})},n.translate=function(t){return arguments.length?(k={x:+t[0],y:+t[1],k:k.k},a(),n):[k.x,k.y]},n.scale=function(t){return arguments.length?(k={x:k.x,y:k.y,k:null},i(+t),a(),n):k.k},n.scaleExtent=function(t){return arguments.length?(A=null==t?Jo:[+t[0],+t[1]],n):A},n.center=function(t){return arguments.length?(y=t&&[+t[0],+t[1]],n):y},n.size=function(t){return arguments.length?(E=t&&[+t[0],+t[1]],n):E},n.duration=function(t){return arguments.length?(C=+t,n):C},n.x=function(t){return arguments.length?(b=t,x=t.copy(),k={x:0,y:0,k:1},n):b},n.y=function(t){return arguments.length?(w=t,_=t.copy(),k={x:0,y:0,k:1},n):w},ao.rebind(n,D,"on")};var Bo,Wo,Jo=[0,1/0];ao.color=an,an.prototype.toString=function(){return this.rgb()+""},ao.hsl=ln;var Go=ln.prototype=new an;Go.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,this.l/n)},Go.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,n*this.l)},Go.rgb=function(){return cn(this.h,this.s,this.l)},ao.hcl=fn;var Ko=fn.prototype=new an;Ko.brighter=function(n){return new fn(this.h,this.c,Math.min(100,this.l+Qo*(arguments.length?n:1)))},Ko.darker=function(n){return new fn(this.h,this.c,Math.max(0,this.l-Qo*(arguments.length?n:1)))},Ko.rgb=function(){return sn(this.h,this.c,this.l).rgb()},ao.lab=hn;var Qo=18,na=.95047,ta=1,ea=1.08883,ra=hn.prototype=new an;ra.brighter=function(n){return new hn(Math.min(100,this.l+Qo*(arguments.length?n:1)),this.a,this.b)},ra.darker=function(n){return new hn(Math.max(0,this.l-Qo*(arguments.length?n:1)),this.a,this.b)},ra.rgb=function(){return pn(this.l,this.a,this.b)},ao.rgb=mn;var ia=mn.prototype=new an;ia.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,i=30;return t||e||r?(t&&i>t&&(t=i),e&&i>e&&(e=i),r&&i>r&&(r=i),new mn(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new mn(i,i,i)},ia.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new mn(n*this.r,n*this.g,n*this.b)},ia.hsl=function(){return wn(this.r,this.g,this.b)},ia.toString=function(){return"#"+bn(this.r)+bn(this.g)+bn(this.b)};var ua=ao.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});ua.forEach(function(n,t){ua.set(n,Mn(t))}),ao.functor=En,ao.xhr=An(m),ao.dsv=function(n,t){function e(n,e,u){arguments.length<3&&(u=e,e=null);var o=Cn(n,t,null==e?r:i(e),u);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:i(n)):e},o}function r(n){return e.parse(n.responseText)}function i(n){return function(t){return e.parse(t.responseText,n)}}function u(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),l=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var i=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(i(n),e)}:i})},e.parseRows=function(n,t){function e(){if(f>=c)return o;if(i)return i=!1,u;var t=f;if(34===n.charCodeAt(t)){for(var e=t;e++f;){var r=n.charCodeAt(f++),a=1;if(10===r)i=!0;else if(13===r)i=!0,10===n.charCodeAt(f)&&(++f,++a);else if(r!==l)continue;return n.slice(t,f-a)}return n.slice(t)}for(var r,i,u={},o={},a=[],c=n.length,f=0,s=0;(r=e())!==o;){for(var h=[];r!==u&&r!==o;)h.push(r),r=e();t&&null==(h=t(h,s++))||a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new y,i=[];return t.forEach(function(n){for(var t in n)r.has(t)||i.push(r.add(t))}),[i.map(o).join(n)].concat(t.map(function(t){return i.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(u).join("\n")},e},ao.csv=ao.dsv(",","text/csv"),ao.tsv=ao.dsv(" ","text/tab-separated-values");var oa,aa,la,ca,fa=this[x(this,"requestAnimationFrame")]||function(n){setTimeout(n,17)};ao.timer=function(){qn.apply(this,arguments)},ao.timer.flush=function(){Rn(),Dn()},ao.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var sa=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Un);ao.formatPrefix=function(n,t){var e=0;return(n=+n)&&(0>n&&(n*=-1),t&&(n=ao.round(n,Pn(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),sa[8+e/3]};var ha=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,pa=ao.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=ao.round(n,Pn(n,t))).toFixed(Math.max(0,Math.min(20,Pn(n*(1+1e-15),t))))}}),ga=ao.time={},va=Date;Hn.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){da.setUTCDate.apply(this._,arguments)},setDay:function(){da.setUTCDay.apply(this._,arguments)},setFullYear:function(){da.setUTCFullYear.apply(this._,arguments)},setHours:function(){da.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){da.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){da.setUTCMinutes.apply(this._,arguments)},setMonth:function(){da.setUTCMonth.apply(this._,arguments)},setSeconds:function(){da.setUTCSeconds.apply(this._,arguments)},setTime:function(){da.setTime.apply(this._,arguments)}};var da=Date.prototype;ga.year=On(function(n){return n=ga.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),ga.years=ga.year.range,ga.years.utc=ga.year.utc.range,ga.day=On(function(n){var t=new va(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),ga.days=ga.day.range,ga.days.utc=ga.day.utc.range,ga.dayOfYear=function(n){var t=ga.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=ga[n]=On(function(n){return(n=ga.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});ga[n+"s"]=e.range,ga[n+"s"].utc=e.utc.range,ga[n+"OfYear"]=function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)}}),ga.week=ga.sunday,ga.weeks=ga.sunday.range,ga.weeks.utc=ga.sunday.utc.range,ga.weekOfYear=ga.sundayOfYear;var ya={"-":"",_:" ",0:"0"},ma=/^\s*\d+/,Ma=/^%/;ao.locale=function(n){return{numberFormat:jn(n),timeFormat:Yn(n)}};var xa=ao.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],
shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});ao.format=xa.numberFormat,ao.geo={},ft.prototype={s:0,t:0,add:function(n){st(n,this.t,ba),st(ba.s,this.s,this),this.s?this.t+=ba.t:this.s=ba.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var ba=new ft;ao.geo.stream=function(n,t){n&&_a.hasOwnProperty(n.type)?_a[n.type](n,t):ht(n,t)};var _a={Feature:function(n,t){ht(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,i=e.length;++rn?4*Fo+n:n,Na.lineStart=Na.lineEnd=Na.point=b}};ao.geo.bounds=function(){function n(n,t){M.push(x=[f=n,h=n]),s>t&&(s=t),t>p&&(p=t)}function t(t,e){var r=dt([t*Yo,e*Yo]);if(y){var i=mt(y,r),u=[i[1],-i[0],0],o=mt(u,i);bt(o),o=_t(o);var l=t-g,c=l>0?1:-1,v=o[0]*Zo*c,d=xo(l)>180;if(d^(v>c*g&&c*t>v)){var m=o[1]*Zo;m>p&&(p=m)}else if(v=(v+360)%360-180,d^(v>c*g&&c*t>v)){var m=-o[1]*Zo;s>m&&(s=m)}else s>e&&(s=e),e>p&&(p=e);d?g>t?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t):h>=f?(f>t&&(f=t),t>h&&(h=t)):t>g?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t)}else n(t,e);y=r,g=t}function e(){b.point=t}function r(){x[0]=f,x[1]=h,b.point=n,y=null}function i(n,e){if(y){var r=n-g;m+=xo(r)>180?r+(r>0?360:-360):r}else v=n,d=e;Na.point(n,e),t(n,e)}function u(){Na.lineStart()}function o(){i(v,d),Na.lineEnd(),xo(m)>Uo&&(f=-(h=180)),x[0]=f,x[1]=h,y=null}function a(n,t){return(t-=n)<0?t+360:t}function l(n,t){return n[0]-t[0]}function c(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nka?(f=-(h=180),s=-(p=90)):m>Uo?p=90:-Uo>m&&(s=-90),x[0]=f,x[1]=h}};return function(n){p=h=-(f=s=1/0),M=[],ao.geo.stream(n,b);var t=M.length;if(t){M.sort(l);for(var e,r=1,i=M[0],u=[i];t>r;++r)e=M[r],c(e[0],i)||c(e[1],i)?(a(i[0],e[1])>a(i[0],i[1])&&(i[1]=e[1]),a(e[0],i[1])>a(i[0],i[1])&&(i[0]=e[0])):u.push(i=e);for(var o,e,g=-(1/0),t=u.length-1,r=0,i=u[t];t>=r;i=e,++r)e=u[r],(o=a(i[1],e[0]))>g&&(g=o,f=e[0],h=i[1])}return M=x=null,f===1/0||s===1/0?[[NaN,NaN],[NaN,NaN]]:[[f,s],[h,p]]}}(),ao.geo.centroid=function(n){Ea=Aa=Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,ja);var t=Da,e=Pa,r=Ua,i=t*t+e*e+r*r;return jo>i&&(t=qa,e=Ta,r=Ra,Uo>Aa&&(t=Ca,e=za,r=La),i=t*t+e*e+r*r,jo>i)?[NaN,NaN]:[Math.atan2(e,t)*Zo,tn(r/Math.sqrt(i))*Zo]};var Ea,Aa,Ca,za,La,qa,Ta,Ra,Da,Pa,Ua,ja={sphere:b,point:St,lineStart:Nt,lineEnd:Et,polygonStart:function(){ja.lineStart=At},polygonEnd:function(){ja.lineStart=Nt}},Fa=Rt(zt,jt,Ht,[-Fo,-Fo/2]),Ha=1e9;ao.geo.clipExtent=function(){var n,t,e,r,i,u,o={stream:function(n){return i&&(i.valid=!1),i=u(n),i.valid=!0,i},extent:function(a){return arguments.length?(u=Zt(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),i&&(i.valid=!1,i=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(ao.geo.conicEqualArea=function(){return Vt(Xt)}).raw=Xt,ao.geo.albers=function(){return ao.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},ao.geo.albersUsa=function(){function n(n){var u=n[0],o=n[1];return t=null,e(u,o),t||(r(u,o),t)||i(u,o),t}var t,e,r,i,u=ao.geo.albers(),o=ao.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=ao.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=u.scale(),e=u.translate(),r=(n[0]-e[0])/t,i=(n[1]-e[1])/t;return(i>=.12&&.234>i&&r>=-.425&&-.214>r?o:i>=.166&&.234>i&&r>=-.214&&-.115>r?a:u).invert(n)},n.stream=function(n){var t=u.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,i){t.point(n,i),e.point(n,i),r.point(n,i)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(u.precision(t),o.precision(t),a.precision(t),n):u.precision()},n.scale=function(t){return arguments.length?(u.scale(t),o.scale(.35*t),a.scale(t),n.translate(u.translate())):u.scale()},n.translate=function(t){if(!arguments.length)return u.translate();var c=u.scale(),f=+t[0],s=+t[1];return e=u.translate(t).clipExtent([[f-.455*c,s-.238*c],[f+.455*c,s+.238*c]]).stream(l).point,r=o.translate([f-.307*c,s+.201*c]).clipExtent([[f-.425*c+Uo,s+.12*c+Uo],[f-.214*c-Uo,s+.234*c-Uo]]).stream(l).point,i=a.translate([f-.205*c,s+.212*c]).clipExtent([[f-.214*c+Uo,s+.166*c+Uo],[f-.115*c-Uo,s+.234*c-Uo]]).stream(l).point,n},n.scale(1070)};var Oa,Ia,Ya,Za,Va,Xa,$a={point:b,lineStart:b,lineEnd:b,polygonStart:function(){Ia=0,$a.lineStart=$t},polygonEnd:function(){$a.lineStart=$a.lineEnd=$a.point=b,Oa+=xo(Ia/2)}},Ba={point:Bt,lineStart:b,lineEnd:b,polygonStart:b,polygonEnd:b},Wa={point:Gt,lineStart:Kt,lineEnd:Qt,polygonStart:function(){Wa.lineStart=ne},polygonEnd:function(){Wa.point=Gt,Wa.lineStart=Kt,Wa.lineEnd=Qt}};ao.geo.path=function(){function n(n){return n&&("function"==typeof a&&u.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=i(u)),ao.geo.stream(n,o)),u.result()}function t(){return o=null,n}var e,r,i,u,o,a=4.5;return n.area=function(n){return Oa=0,ao.geo.stream(n,i($a)),Oa},n.centroid=function(n){return Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,i(Wa)),Ua?[Da/Ua,Pa/Ua]:Ra?[qa/Ra,Ta/Ra]:La?[Ca/La,za/La]:[NaN,NaN]},n.bounds=function(n){return Va=Xa=-(Ya=Za=1/0),ao.geo.stream(n,i(Ba)),[[Ya,Za],[Va,Xa]]},n.projection=function(n){return arguments.length?(i=(e=n)?n.stream||re(n):m,t()):e},n.context=function(n){return arguments.length?(u=null==(r=n)?new Wt:new te(n),"function"!=typeof a&&u.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(u.pointRadius(+t),+t),n):a},n.projection(ao.geo.albersUsa()).context(null)},ao.geo.transform=function(n){return{stream:function(t){var e=new ie(t);for(var r in n)e[r]=n[r];return e}}},ie.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},ao.geo.projection=oe,ao.geo.projectionMutator=ae,(ao.geo.equirectangular=function(){return oe(ce)}).raw=ce.invert=ce,ao.geo.rotation=function(n){function t(t){return t=n(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t}return n=se(n[0]%360*Yo,n[1]*Yo,n.length>2?n[2]*Yo:0),t.invert=function(t){return t=n.invert(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t},t},fe.invert=ce,ao.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=se(-n[0]*Yo,-n[1]*Yo,0).invert,i=[];return e(null,null,1,{point:function(n,e){i.push(n=t(n,e)),n[0]*=Zo,n[1]*=Zo}}),{type:"Polygon",coordinates:[i]}}var t,e,r=[0,0],i=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=ve((t=+r)*Yo,i*Yo),n):t},n.precision=function(r){return arguments.length?(e=ve(t*Yo,(i=+r)*Yo),n):i},n.angle(90)},ao.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Yo,i=n[1]*Yo,u=t[1]*Yo,o=Math.sin(r),a=Math.cos(r),l=Math.sin(i),c=Math.cos(i),f=Math.sin(u),s=Math.cos(u);return Math.atan2(Math.sqrt((e=s*o)*e+(e=c*f-l*s*a)*e),l*f+c*s*a)},ao.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return ao.range(Math.ceil(u/d)*d,i,d).map(h).concat(ao.range(Math.ceil(c/y)*y,l,y).map(p)).concat(ao.range(Math.ceil(r/g)*g,e,g).filter(function(n){return xo(n%d)>Uo}).map(f)).concat(ao.range(Math.ceil(a/v)*v,o,v).filter(function(n){return xo(n%y)>Uo}).map(s))}var e,r,i,u,o,a,l,c,f,s,h,p,g=10,v=g,d=90,y=360,m=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(u).concat(p(l).slice(1),h(i).reverse().slice(1),p(c).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(u=+t[0][0],i=+t[1][0],c=+t[0][1],l=+t[1][1],u>i&&(t=u,u=i,i=t),c>l&&(t=c,c=l,l=t),n.precision(m)):[[u,c],[i,l]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(m)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],y=+t[1],n):[d,y]},n.minorStep=function(t){return arguments.length?(g=+t[0],v=+t[1],n):[g,v]},n.precision=function(t){return arguments.length?(m=+t,f=ye(a,o,90),s=me(r,e,m),h=ye(c,l,90),p=me(u,i,m),n):m},n.majorExtent([[-180,-90+Uo],[180,90-Uo]]).minorExtent([[-180,-80-Uo],[180,80+Uo]])},ao.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||i.apply(this,arguments)]}}var t,e,r=Me,i=xe;return n.distance=function(){return ao.geo.distance(t||r.apply(this,arguments),e||i.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(i=t,e="function"==typeof t?null:t,n):i},n.precision=function(){return arguments.length?n:0},n},ao.geo.interpolate=function(n,t){return be(n[0]*Yo,n[1]*Yo,t[0]*Yo,t[1]*Yo)},ao.geo.length=function(n){return Ja=0,ao.geo.stream(n,Ga),Ja};var Ja,Ga={sphere:b,point:b,lineStart:_e,lineEnd:b,polygonStart:b,polygonEnd:b},Ka=we(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(ao.geo.azimuthalEqualArea=function(){return oe(Ka)}).raw=Ka;var Qa=we(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},m);(ao.geo.azimuthalEquidistant=function(){return oe(Qa)}).raw=Qa,(ao.geo.conicConformal=function(){return Vt(Se)}).raw=Se,(ao.geo.conicEquidistant=function(){return Vt(ke)}).raw=ke;var nl=we(function(n){return 1/n},Math.atan);(ao.geo.gnomonic=function(){return oe(nl)}).raw=nl,Ne.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Io]},(ao.geo.mercator=function(){return Ee(Ne)}).raw=Ne;var tl=we(function(){return 1},Math.asin);(ao.geo.orthographic=function(){return oe(tl)}).raw=tl;var el=we(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(ao.geo.stereographic=function(){return oe(el)}).raw=el,Ae.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Io]},(ao.geo.transverseMercator=function(){var n=Ee(Ae),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Ae,ao.geom={},ao.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,i=En(e),u=En(r),o=n.length,a=[],l=[];for(t=0;o>t;t++)a.push([+i.call(this,n[t],t),+u.call(this,n[t],t),t]);for(a.sort(qe),t=0;o>t;t++)l.push([a[t][0],-a[t][1]]);var c=Le(a),f=Le(l),s=f[0]===c[0],h=f[f.length-1]===c[c.length-1],p=[];for(t=c.length-1;t>=0;--t)p.push(n[a[c[t]][2]]);for(t=+s;t=r&&c.x<=u&&c.y>=i&&c.y<=o?[[r,o],[u,o],[u,i],[r,i]]:[];f.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(u(n,t)/Uo)*Uo,y:Math.round(o(n,t)/Uo)*Uo,i:t}})}var r=Ce,i=ze,u=r,o=i,a=sl;return n?t(n):(t.links=function(n){return ar(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return ar(e(n)).cells.forEach(function(e,r){for(var i,u,o=e.site,a=e.edges.sort(Ve),l=-1,c=a.length,f=a[c-1].edge,s=f.l===o?f.r:f.l;++l=c,h=r>=f,p=h<<1|s;n.leaf=!1,n=n.nodes[p]||(n.nodes[p]=hr()),s?i=c:a=c,h?o=f:l=f,u(n,t,e,r,i,o,a,l)}var f,s,h,p,g,v,d,y,m,M=En(a),x=En(l);if(null!=t)v=t,d=e,y=r,m=i;else if(y=m=-(v=d=1/0),s=[],h=[],g=n.length,o)for(p=0;g>p;++p)f=n[p],f.xy&&(y=f.x),f.y>m&&(m=f.y),s.push(f.x),h.push(f.y);else for(p=0;g>p;++p){var b=+M(f=n[p],p),_=+x(f,p);v>b&&(v=b),d>_&&(d=_),b>y&&(y=b),_>m&&(m=_),s.push(b),h.push(_)}var w=y-v,S=m-d;w>S?m=d+w:y=v+S;var k=hr();if(k.add=function(n){u(k,n,+M(n,++p),+x(n,p),v,d,y,m)},k.visit=function(n){pr(n,k,v,d,y,m)},k.find=function(n){return gr(k,n[0],n[1],v,d,y,m)},p=-1,null==t){for(;++p=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=vl.get(e)||gl,r=dl.get(r)||m,br(r(e.apply(null,lo.call(arguments,1))))},ao.interpolateHcl=Rr,ao.interpolateHsl=Dr,ao.interpolateLab=Pr,ao.interpolateRound=Ur,ao.transform=function(n){var t=fo.createElementNS(ao.ns.prefix.svg,"g");return(ao.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new jr(e?e.matrix:yl)})(n)},jr.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var yl={a:1,b:0,c:0,d:1,e:0,f:0};ao.interpolateTransform=$r,ao.layout={},ao.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++ea*a/y){if(v>l){var c=t.charge/l;n.px-=u*c,n.py-=o*c}return!0}if(t.point&&l&&v>l){var c=t.pointCharge/l;n.px-=u*c,n.py-=o*c}}return!t.charge}}function t(n){n.px=ao.event.x,n.py=ao.event.y,l.resume()}var e,r,i,u,o,a,l={},c=ao.dispatch("start","tick","end"),f=[1,1],s=.9,h=ml,p=Ml,g=-30,v=xl,d=.1,y=.64,M=[],x=[];return l.tick=function(){if((i*=.99)<.005)return e=null,c.end({type:"end",alpha:i=0}),!0;var t,r,l,h,p,v,y,m,b,_=M.length,w=x.length;for(r=0;w>r;++r)l=x[r],h=l.source,p=l.target,m=p.x-h.x,b=p.y-h.y,(v=m*m+b*b)&&(v=i*o[r]*((v=Math.sqrt(v))-u[r])/v,m*=v,b*=v,p.x-=m*(y=h.weight+p.weight?h.weight/(h.weight+p.weight):.5),p.y-=b*y,h.x+=m*(y=1-y),h.y+=b*y);if((y=i*d)&&(m=f[0]/2,b=f[1]/2,r=-1,y))for(;++r<_;)l=M[r],l.x+=(m-l.x)*y,l.y+=(b-l.y)*y;if(g)for(ri(t=ao.geom.quadtree(M),i,a),r=-1;++r<_;)(l=M[r]).fixed||t.visit(n(l));for(r=-1;++r<_;)l=M[r],l.fixed?(l.x=l.px,l.y=l.py):(l.x-=(l.px-(l.px=l.x))*s,l.y-=(l.py-(l.py=l.y))*s);c.tick({type:"tick",alpha:i})},l.nodes=function(n){return arguments.length?(M=n,l):M},l.links=function(n){return arguments.length?(x=n,l):x},l.size=function(n){return arguments.length?(f=n,l):f},l.linkDistance=function(n){return arguments.length?(h="function"==typeof n?n:+n,l):h},l.distance=l.linkDistance,l.linkStrength=function(n){return arguments.length?(p="function"==typeof n?n:+n,l):p},l.friction=function(n){return arguments.length?(s=+n,l):s},l.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,l):g},l.chargeDistance=function(n){return arguments.length?(v=n*n,l):Math.sqrt(v)},l.gravity=function(n){return arguments.length?(d=+n,l):d},l.theta=function(n){return arguments.length?(y=n*n,l):Math.sqrt(y)},l.alpha=function(n){return arguments.length?(n=+n,i?n>0?i=n:(e.c=null,e.t=NaN,e=null,c.end({type:"end",alpha:i=0})):n>0&&(c.start({type:"start",alpha:i=n}),e=qn(l.tick)),l):i},l.start=function(){function n(n,r){if(!e){for(e=new Array(i),l=0;i>l;++l)e[l]=[];for(l=0;c>l;++l){var u=x[l];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var o,a=e[t],l=-1,f=a.length;++lt;++t)(r=M[t]).index=t,r.weight=0;for(t=0;c>t;++t)r=x[t],"number"==typeof r.source&&(r.source=M[r.source]),"number"==typeof r.target&&(r.target=M[r.target]),++r.source.weight,++r.target.weight;for(t=0;i>t;++t)r=M[t],isNaN(r.x)&&(r.x=n("x",s)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof h)for(t=0;c>t;++t)u[t]=+h.call(this,x[t],t);else for(t=0;c>t;++t)u[t]=h;if(o=[],"function"==typeof p)for(t=0;c>t;++t)o[t]=+p.call(this,x[t],t);else for(t=0;c>t;++t)o[t]=p;if(a=[],"function"==typeof g)for(t=0;i>t;++t)a[t]=+g.call(this,M[t],t);else for(t=0;i>t;++t)a[t]=g;return l.resume()},l.resume=function(){return l.alpha(.1)},l.stop=function(){return l.alpha(0)},l.drag=function(){return r||(r=ao.behavior.drag().origin(m).on("dragstart.force",Qr).on("drag.force",t).on("dragend.force",ni)),arguments.length?void this.on("mouseover.force",ti).on("mouseout.force",ei).call(r):r},ao.rebind(l,c,"on")};var ml=20,Ml=1,xl=1/0;ao.layout.hierarchy=function(){function n(i){var u,o=[i],a=[];for(i.depth=0;null!=(u=o.pop());)if(a.push(u),(c=e.call(n,u,u.depth))&&(l=c.length)){for(var l,c,f;--l>=0;)o.push(f=c[l]),f.parent=u,f.depth=u.depth+1;r&&(u.value=0),u.children=c}else r&&(u.value=+r.call(n,u,u.depth)||0),delete u.children;return oi(i,function(n){var e,i;t&&(e=n.children)&&e.sort(t),r&&(i=n.parent)&&(i.value+=n.value)}),a}var t=ci,e=ai,r=li;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(ui(t,function(n){n.children&&(n.value=0)}),oi(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},ao.layout.partition=function(){function n(t,e,r,i){var u=t.children;if(t.x=e,t.y=t.depth*i,t.dx=r,t.dy=i,u&&(o=u.length)){var o,a,l,c=-1;for(r=t.value?r/t.value:0;++cs?-1:1),g=ao.sum(c),v=g?(s-l*p)/g:0,d=ao.range(l),y=[];return null!=e&&d.sort(e===bl?function(n,t){return c[t]-c[n]}:function(n,t){return e(o[n],o[t])}),d.forEach(function(n){y[n]={data:o[n],value:a=c[n],startAngle:f,endAngle:f+=a*v+p,padAngle:h}}),y}var t=Number,e=bl,r=0,i=Ho,u=0;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(i=t,n):i},n.padAngle=function(t){return arguments.length?(u=t,n):u},n};var bl={};ao.layout.stack=function(){function n(a,l){if(!(h=a.length))return a;var c=a.map(function(e,r){return t.call(n,e,r)}),f=c.map(function(t){return t.map(function(t,e){return[u.call(n,t,e),o.call(n,t,e)]})}),s=e.call(n,f,l);c=ao.permute(c,s),f=ao.permute(f,s);var h,p,g,v,d=r.call(n,f,l),y=c[0].length;for(g=0;y>g;++g)for(i.call(n,c[0][g],v=d[g],f[0][g][1]),p=1;h>p;++p)i.call(n,c[p][g],v+=f[p-1][g][1],f[p][g][1]);return a}var t=m,e=gi,r=vi,i=pi,u=si,o=hi;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:_l.get(t)||gi,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:wl.get(t)||vi,n):r},n.x=function(t){return arguments.length?(u=t,n):u},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(i=t,n):i},n};var _l=ao.map({"inside-out":function(n){var t,e,r=n.length,i=n.map(di),u=n.map(yi),o=ao.range(r).sort(function(n,t){return i[n]-i[t]}),a=0,l=0,c=[],f=[];for(t=0;r>t;++t)e=o[t],l>a?(a+=u[e],c.push(e)):(l+=u[e],f.push(e));return f.reverse().concat(c)},reverse:function(n){return ao.range(n.length).reverse()},"default":gi}),wl=ao.map({silhouette:function(n){var t,e,r,i=n.length,u=n[0].length,o=[],a=0,l=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;u>e;++e)l[e]=(a-o[e])/2;return l},wiggle:function(n){var t,e,r,i,u,o,a,l,c,f=n.length,s=n[0],h=s.length,p=[];for(p[0]=l=c=0,e=1;h>e;++e){for(t=0,i=0;f>t;++t)i+=n[t][e][1];for(t=0,u=0,a=s[e][0]-s[e-1][0];f>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;u+=o*n[t][e][1]}p[e]=l-=i?u/i*a:0,c>l&&(c=l)}for(e=0;h>e;++e)p[e]-=c;return p},expand:function(n){var t,e,r,i=n.length,u=n[0].length,o=1/i,a=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];if(r)for(t=0;i>t;t++)n[t][e][1]/=r;else for(t=0;i>t;t++)n[t][e][1]=o}for(e=0;u>e;++e)a[e]=0;return a},zero:vi});ao.layout.histogram=function(){function n(n,u){for(var o,a,l=[],c=n.map(e,this),f=r.call(this,c,u),s=i.call(this,f,c,u),u=-1,h=c.length,p=s.length-1,g=t?1:1/h;++u0)for(u=-1;++u=f[0]&&a<=f[1]&&(o=l[ao.bisect(s,a,1,p)-1],o.y+=g,o.push(n[u]));return l}var t=!0,e=Number,r=bi,i=Mi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=En(t),n):r},n.bins=function(t){return arguments.length?(i="number"==typeof t?function(n){return xi(n,t)}:En(t),n):i},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},ao.layout.pack=function(){function n(n,u){var o=e.call(this,n,u),a=o[0],l=i[0],c=i[1],f=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,oi(a,function(n){n.r=+f(n.value)}),oi(a,Ni),r){var s=r*(t?1:Math.max(2*a.r/l,2*a.r/c))/2;oi(a,function(n){n.r+=s}),oi(a,Ni),oi(a,function(n){n.r-=s})}return Ci(a,l/2,c/2,t?1:1/Math.max(2*a.r/l,2*a.r/c)),o}var t,e=ao.layout.hierarchy().sort(_i),r=0,i=[1,1];return n.size=function(t){return arguments.length?(i=t,n):i},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},ii(n,e)},ao.layout.tree=function(){function n(n,i){var f=o.call(this,n,i),s=f[0],h=t(s);if(oi(h,e),h.parent.m=-h.z,ui(h,r),c)ui(s,u);else{var p=s,g=s,v=s;ui(s,function(n){n.xg.x&&(g=n),n.depth>v.depth&&(v=n)});var d=a(p,g)/2-p.x,y=l[0]/(g.x+a(g,p)/2+d),m=l[1]/(v.depth||1);ui(s,function(n){n.x=(n.x+d)*y,n.y=n.depth*m})}return f}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var i,u=t.children,o=0,a=u.length;a>o;++o)r.push((u[o]=i={_:u[o],parent:t,children:(i=u[o].children)&&i.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=i);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){Di(n);var u=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-u):n.z=u}else r&&(n.z=r.z+a(n._,r._));n.parent.A=i(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function i(n,t,e){if(t){for(var r,i=n,u=n,o=t,l=i.parent.children[0],c=i.m,f=u.m,s=o.m,h=l.m;o=Ti(o),i=qi(i),o&&i;)l=qi(l),u=Ti(u),u.a=n,r=o.z+s-i.z-c+a(o._,i._),r>0&&(Ri(Pi(o,n,e),n,r),c+=r,f+=r),s+=o.m,c+=i.m,h+=l.m,f+=u.m;o&&!Ti(u)&&(u.t=o,u.m+=s-f),i&&!qi(l)&&(l.t=i,l.m+=c-h,e=n)}return e}function u(n){n.x*=l[0],n.y=n.depth*l[1]}var o=ao.layout.hierarchy().sort(null).value(null),a=Li,l=[1,1],c=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(c=null==(l=t)?u:null,n):c?null:l},n.nodeSize=function(t){return arguments.length?(c=null==(l=t)?null:u,n):c?l:null},ii(n,o)},ao.layout.cluster=function(){function n(n,u){var o,a=t.call(this,n,u),l=a[0],c=0;oi(l,function(n){var t=n.children;t&&t.length?(n.x=ji(t),n.y=Ui(t)):(n.x=o?c+=e(n,o):0,n.y=0,o=n)});var f=Fi(l),s=Hi(l),h=f.x-e(f,s)/2,p=s.x+e(s,f)/2;return oi(l,i?function(n){n.x=(n.x-l.x)*r[0],n.y=(l.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(p-h)*r[0],n.y=(1-(l.y?n.y/l.y:1))*r[1]}),a}var t=ao.layout.hierarchy().sort(null).value(null),e=Li,r=[1,1],i=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(i=null==(r=t),n):i?null:r},n.nodeSize=function(t){return arguments.length?(i=null!=(r=t),n):i?r:null},ii(n,t)},ao.layout.treemap=function(){function n(n,t){for(var e,r,i=-1,u=n.length;++it?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var u=e.children;if(u&&u.length){var o,a,l,c=s(e),f=[],h=u.slice(),g=1/0,v="slice"===p?c.dx:"dice"===p?c.dy:"slice-dice"===p?1&e.depth?c.dy:c.dx:Math.min(c.dx,c.dy);for(n(h,c.dx*c.dy/e.value),f.area=0;(l=h.length)>0;)f.push(o=h[l-1]),f.area+=o.area,"squarify"!==p||(a=r(f,v))<=g?(h.pop(),g=a):(f.area-=f.pop().area,i(f,v,c,!1),v=Math.min(c.dx,c.dy),f.length=f.area=0,g=1/0);f.length&&(i(f,v,c,!0),f.length=f.area=0),u.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var u,o=s(t),a=r.slice(),l=[];for(n(a,o.dx*o.dy/t.value),l.area=0;u=a.pop();)l.push(u),l.area+=u.area,null!=u.z&&(i(l,u.z?o.dx:o.dy,o,!a.length),l.length=l.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,i=0,u=1/0,o=-1,a=n.length;++oe&&(u=e),e>i&&(i=e));return r*=r,t*=t,r?Math.max(t*i*g/r,r/(t*u*g)):1/0}function i(n,t,e,r){var i,u=-1,o=n.length,a=e.x,c=e.y,f=t?l(n.area/t):0;
if(t==e.dx){for((r||f>e.dy)&&(f=e.dy);++ue.dx)&&(f=e.dx);++ue&&(t=1),1>e&&(n=0),function(){var e,r,i;do e=2*Math.random()-1,r=2*Math.random()-1,i=e*e+r*r;while(!i||i>1);return n+t*e*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var n=ao.random.normal.apply(ao,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=ao.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},ao.scale={};var Sl={floor:m,ceil:m};ao.scale.linear=function(){return Wi([0,1],[0,1],Mr,!1)};var kl={s:1,g:1,p:1,r:1,e:1};ao.scale.log=function(){return ru(ao.scale.linear().domain([0,1]),10,!0,[1,10])};var Nl=ao.format(".0e"),El={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};ao.scale.pow=function(){return iu(ao.scale.linear(),1,[0,1])},ao.scale.sqrt=function(){return ao.scale.pow().exponent(.5)},ao.scale.ordinal=function(){return ou([],{t:"range",a:[[]]})},ao.scale.category10=function(){return ao.scale.ordinal().range(Al)},ao.scale.category20=function(){return ao.scale.ordinal().range(Cl)},ao.scale.category20b=function(){return ao.scale.ordinal().range(zl)},ao.scale.category20c=function(){return ao.scale.ordinal().range(Ll)};var Al=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(xn),Cl=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(xn),zl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(xn),Ll=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(xn);ao.scale.quantile=function(){return au([],[])},ao.scale.quantize=function(){return lu(0,1,[0,1])},ao.scale.threshold=function(){return cu([.5],[0,1])},ao.scale.identity=function(){return fu([0,1])},ao.svg={},ao.svg.arc=function(){function n(){var n=Math.max(0,+e.apply(this,arguments)),c=Math.max(0,+r.apply(this,arguments)),f=o.apply(this,arguments)-Io,s=a.apply(this,arguments)-Io,h=Math.abs(s-f),p=f>s?0:1;if(n>c&&(g=c,c=n,n=g),h>=Oo)return t(c,p)+(n?t(n,1-p):"")+"Z";var g,v,d,y,m,M,x,b,_,w,S,k,N=0,E=0,A=[];if((y=(+l.apply(this,arguments)||0)/2)&&(d=u===ql?Math.sqrt(n*n+c*c):+u.apply(this,arguments),p||(E*=-1),c&&(E=tn(d/c*Math.sin(y))),n&&(N=tn(d/n*Math.sin(y)))),c){m=c*Math.cos(f+E),M=c*Math.sin(f+E),x=c*Math.cos(s-E),b=c*Math.sin(s-E);var C=Math.abs(s-f-2*E)<=Fo?0:1;if(E&&yu(m,M,x,b)===p^C){var z=(f+s)/2;m=c*Math.cos(z),M=c*Math.sin(z),x=b=null}}else m=M=0;if(n){_=n*Math.cos(s-N),w=n*Math.sin(s-N),S=n*Math.cos(f+N),k=n*Math.sin(f+N);var L=Math.abs(f-s+2*N)<=Fo?0:1;if(N&&yu(_,w,S,k)===1-p^L){var q=(f+s)/2;_=n*Math.cos(q),w=n*Math.sin(q),S=k=null}}else _=w=0;if(h>Uo&&(g=Math.min(Math.abs(c-n)/2,+i.apply(this,arguments)))>.001){v=c>n^p?0:1;var T=g,R=g;if(Fo>h){var D=null==S?[_,w]:null==x?[m,M]:Re([m,M],[S,k],[x,b],[_,w]),P=m-D[0],U=M-D[1],j=x-D[0],F=b-D[1],H=1/Math.sin(Math.acos((P*j+U*F)/(Math.sqrt(P*P+U*U)*Math.sqrt(j*j+F*F)))/2),O=Math.sqrt(D[0]*D[0]+D[1]*D[1]);R=Math.min(g,(n-O)/(H-1)),T=Math.min(g,(c-O)/(H+1))}if(null!=x){var I=mu(null==S?[_,w]:[S,k],[m,M],c,T,p),Y=mu([x,b],[_,w],c,T,p);g===T?A.push("M",I[0],"A",T,",",T," 0 0,",v," ",I[1],"A",c,",",c," 0 ",1-p^yu(I[1][0],I[1][1],Y[1][0],Y[1][1]),",",p," ",Y[1],"A",T,",",T," 0 0,",v," ",Y[0]):A.push("M",I[0],"A",T,",",T," 0 1,",v," ",Y[0])}else A.push("M",m,",",M);if(null!=S){var Z=mu([m,M],[S,k],n,-R,p),V=mu([_,w],null==x?[m,M]:[x,b],n,-R,p);g===R?A.push("L",V[0],"A",R,",",R," 0 0,",v," ",V[1],"A",n,",",n," 0 ",p^yu(V[1][0],V[1][1],Z[1][0],Z[1][1]),",",1-p," ",Z[1],"A",R,",",R," 0 0,",v," ",Z[0]):A.push("L",V[0],"A",R,",",R," 0 0,",v," ",Z[0])}else A.push("L",_,",",w)}else A.push("M",m,",",M),null!=x&&A.push("A",c,",",c," 0 ",C,",",p," ",x,",",b),A.push("L",_,",",w),null!=S&&A.push("A",n,",",n," 0 ",L,",",1-p," ",S,",",k);return A.push("Z"),A.join("")}function t(n,t){return"M0,"+n+"A"+n+","+n+" 0 1,"+t+" 0,"+-n+"A"+n+","+n+" 0 1,"+t+" 0,"+n}var e=hu,r=pu,i=su,u=ql,o=gu,a=vu,l=du;return n.innerRadius=function(t){return arguments.length?(e=En(t),n):e},n.outerRadius=function(t){return arguments.length?(r=En(t),n):r},n.cornerRadius=function(t){return arguments.length?(i=En(t),n):i},n.padRadius=function(t){return arguments.length?(u=t==ql?ql:En(t),n):u},n.startAngle=function(t){return arguments.length?(o=En(t),n):o},n.endAngle=function(t){return arguments.length?(a=En(t),n):a},n.padAngle=function(t){return arguments.length?(l=En(t),n):l},n.centroid=function(){var n=(+e.apply(this,arguments)+ +r.apply(this,arguments))/2,t=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-Io;return[Math.cos(t)*n,Math.sin(t)*n]},n};var ql="auto";ao.svg.line=function(){return Mu(m)};var Tl=ao.map({linear:xu,"linear-closed":bu,step:_u,"step-before":wu,"step-after":Su,basis:zu,"basis-open":Lu,"basis-closed":qu,bundle:Tu,cardinal:Eu,"cardinal-open":ku,"cardinal-closed":Nu,monotone:Fu});Tl.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Rl=[0,2/3,1/3,0],Dl=[0,1/3,2/3,0],Pl=[0,1/6,2/3,1/6];ao.svg.line.radial=function(){var n=Mu(Hu);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},wu.reverse=Su,Su.reverse=wu,ao.svg.area=function(){return Ou(m)},ao.svg.area.radial=function(){var n=Ou(Hu);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},ao.svg.chord=function(){function n(n,a){var l=t(this,u,n,a),c=t(this,o,n,a);return"M"+l.p0+r(l.r,l.p1,l.a1-l.a0)+(e(l,c)?i(l.r,l.p1,l.r,l.p0):i(l.r,l.p1,c.r,c.p0)+r(c.r,c.p1,c.a1-c.a0)+i(c.r,c.p1,l.r,l.p0))+"Z"}function t(n,t,e,r){var i=t.call(n,e,r),u=a.call(n,i,r),o=l.call(n,i,r)-Io,f=c.call(n,i,r)-Io;return{r:u,a0:o,a1:f,p0:[u*Math.cos(o),u*Math.sin(o)],p1:[u*Math.cos(f),u*Math.sin(f)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>Fo)+",1 "+t}function i(n,t,e,r){return"Q 0,0 "+r}var u=Me,o=xe,a=Iu,l=gu,c=vu;return n.radius=function(t){return arguments.length?(a=En(t),n):a},n.source=function(t){return arguments.length?(u=En(t),n):u},n.target=function(t){return arguments.length?(o=En(t),n):o},n.startAngle=function(t){return arguments.length?(l=En(t),n):l},n.endAngle=function(t){return arguments.length?(c=En(t),n):c},n},ao.svg.diagonal=function(){function n(n,i){var u=t.call(this,n,i),o=e.call(this,n,i),a=(u.y+o.y)/2,l=[u,{x:u.x,y:a},{x:o.x,y:a},o];return l=l.map(r),"M"+l[0]+"C"+l[1]+" "+l[2]+" "+l[3]}var t=Me,e=xe,r=Yu;return n.source=function(e){return arguments.length?(t=En(e),n):t},n.target=function(t){return arguments.length?(e=En(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},ao.svg.diagonal.radial=function(){var n=ao.svg.diagonal(),t=Yu,e=n.projection;return n.projection=function(n){return arguments.length?e(Zu(t=n)):t},n},ao.svg.symbol=function(){function n(n,r){return(Ul.get(t.call(this,n,r))||$u)(e.call(this,n,r))}var t=Xu,e=Vu;return n.type=function(e){return arguments.length?(t=En(e),n):t},n.size=function(t){return arguments.length?(e=En(t),n):e},n};var Ul=ao.map({circle:$u,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Fl)),e=t*Fl;return"M0,"+-t+"L"+e+",0 0,"+t+" "+-e+",0Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});ao.svg.symbolTypes=Ul.keys();var jl=Math.sqrt(3),Fl=Math.tan(30*Yo);Co.transition=function(n){for(var t,e,r=Hl||++Zl,i=Ku(n),u=[],o=Ol||{time:Date.now(),ease:Nr,delay:0,duration:250},a=-1,l=this.length;++au;u++){i.push(t=[]);for(var e=this[u],a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return Wu(i,this.namespace,this.id)},Yl.tween=function(n,t){var e=this.id,r=this.namespace;return arguments.length<2?this.node()[r][e].tween.get(n):Y(this,null==t?function(t){t[r][e].tween.remove(n)}:function(i){i[r][e].tween.set(n,t)})},Yl.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function i(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function u(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?$r:Mr,a=ao.ns.qualify(n);return Ju(this,"attr."+n,t,a.local?u:i)},Yl.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(i));return r&&function(n){this.setAttribute(i,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(i.space,i.local));return r&&function(n){this.setAttributeNS(i.space,i.local,r(n))}}var i=ao.ns.qualify(n);return this.tween("attr."+n,i.local?r:e)},Yl.style=function(n,e,r){function i(){this.style.removeProperty(n)}function u(e){return null==e?i:(e+="",function(){var i,u=t(this).getComputedStyle(this,null).getPropertyValue(n);return u!==e&&(i=Mr(u,e),function(t){this.style.setProperty(n,i(t),r)})})}var o=arguments.length;if(3>o){if("string"!=typeof n){2>o&&(e="");for(r in n)this.style(r,n[r],e);return this}r=""}return Ju(this,"style."+n,e,u)},Yl.styleTween=function(n,e,r){function i(i,u){var o=e.call(this,i,u,t(this).getComputedStyle(this,null).getPropertyValue(n));return o&&function(t){this.style.setProperty(n,o(t),r)}}return arguments.length<3&&(r=""),this.tween("style."+n,i)},Yl.text=function(n){return Ju(this,"text",n,Gu)},Yl.remove=function(){var n=this.namespace;return this.each("end.transition",function(){var t;this[n].count<2&&(t=this.parentNode)&&t.removeChild(this)})},Yl.ease=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].ease:("function"!=typeof n&&(n=ao.ease.apply(ao,arguments)),Y(this,function(r){r[e][t].ease=n}))},Yl.delay=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].delay:Y(this,"function"==typeof n?function(r,i,u){r[e][t].delay=+n.call(r,r.__data__,i,u)}:(n=+n,function(r){r[e][t].delay=n}))},Yl.duration=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].duration:Y(this,"function"==typeof n?function(r,i,u){r[e][t].duration=Math.max(1,n.call(r,r.__data__,i,u))}:(n=Math.max(1,n),function(r){r[e][t].duration=n}))},Yl.each=function(n,t){var e=this.id,r=this.namespace;if(arguments.length<2){var i=Ol,u=Hl;try{Hl=e,Y(this,function(t,i,u){Ol=t[r][e],n.call(t,t.__data__,i,u)})}finally{Ol=i,Hl=u}}else Y(this,function(i){var u=i[r][e];(u.event||(u.event=ao.dispatch("start","end","interrupt"))).on(n,t)});return this},Yl.transition=function(){for(var n,t,e,r,i=this.id,u=++Zl,o=this.namespace,a=[],l=0,c=this.length;c>l;l++){a.push(n=[]);for(var t=this[l],f=0,s=t.length;s>f;f++)(e=t[f])&&(r=e[o][i],Qu(e,f,o,u,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),n.push(e)}return Wu(a,o,u)},ao.svg.axis=function(){function n(n){n.each(function(){var n,c=ao.select(this),f=this.__chart__||e,s=this.__chart__=e.copy(),h=null==l?s.ticks?s.ticks.apply(s,a):s.domain():l,p=null==t?s.tickFormat?s.tickFormat.apply(s,a):m:t,g=c.selectAll(".tick").data(h,s),v=g.enter().insert("g",".domain").attr("class","tick").style("opacity",Uo),d=ao.transition(g.exit()).style("opacity",Uo).remove(),y=ao.transition(g.order()).style("opacity",1),M=Math.max(i,0)+o,x=Zi(s),b=c.selectAll(".domain").data([0]),_=(b.enter().append("path").attr("class","domain"),ao.transition(b));v.append("line"),v.append("text");var w,S,k,N,E=v.select("line"),A=y.select("line"),C=g.select("text").text(p),z=v.select("text"),L=y.select("text"),q="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=no,w="x",k="y",S="x2",N="y2",C.attr("dy",0>q?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+q*u+"V0H"+x[1]+"V"+q*u)):(n=to,w="y",k="x",S="y2",N="x2",C.attr("dy",".32em").style("text-anchor",0>q?"end":"start"),_.attr("d","M"+q*u+","+x[0]+"H0V"+x[1]+"H"+q*u)),E.attr(N,q*i),z.attr(k,q*M),A.attr(S,0).attr(N,q*i),L.attr(w,0).attr(k,q*M),s.rangeBand){var T=s,R=T.rangeBand()/2;f=s=function(n){return T(n)+R}}else f.rangeBand?f=s:d.call(n,s,f);v.call(n,f,s),y.call(n,s,s)})}var t,e=ao.scale.linear(),r=Vl,i=6,u=6,o=3,a=[10],l=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Xl?t+"":Vl,n):r},n.ticks=function(){return arguments.length?(a=co(arguments),n):a},n.tickValues=function(t){return arguments.length?(l=t,n):l},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(i=+t,u=+arguments[e-1],n):i},n.innerTickSize=function(t){return arguments.length?(i=+t,n):i},n.outerTickSize=function(t){return arguments.length?(u=+t,n):u},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var Vl="bottom",Xl={top:1,right:1,bottom:1,left:1};ao.svg.brush=function(){function n(t){t.each(function(){var t=ao.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=t.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),t.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=t.selectAll(".resize").data(v,m);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return $l[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var l,s=ao.transition(t),h=ao.transition(o);c&&(l=Zi(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),r(s)),f&&(l=Zi(f),h.attr("y",l[0]).attr("height",l[1]-l[0]),i(s)),e(s)})}function e(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+s[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function r(n){n.select(".extent").attr("x",s[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",s[1]-s[0])}function i(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function u(){function u(){32==ao.event.keyCode&&(C||(M=null,L[0]-=s[1],L[1]-=h[1],C=2),S())}function v(){32==ao.event.keyCode&&2==C&&(L[0]+=s[1],L[1]+=h[1],C=0,S())}function d(){var n=ao.mouse(b),t=!1;x&&(n[0]+=x[0],n[1]+=x[1]),C||(ao.event.altKey?(M||(M=[(s[0]+s[1])/2,(h[0]+h[1])/2]),L[0]=s[+(n[0]f?(i=r,r=f):i=f),v[0]!=r||v[1]!=i?(e?a=null:o=null,v[0]=r,v[1]=i,!0):void 0}function m(){d(),k.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),ao.select("body").style("cursor",null),q.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),z(),w({type:"brushend"})}var M,x,b=this,_=ao.select(ao.event.target),w=l.of(b,arguments),k=ao.select(b),N=_.datum(),E=!/^(n|s)$/.test(N)&&c,A=!/^(e|w)$/.test(N)&&f,C=_.classed("extent"),z=W(b),L=ao.mouse(b),q=ao.select(t(b)).on("keydown.brush",u).on("keyup.brush",v);if(ao.event.changedTouches?q.on("touchmove.brush",d).on("touchend.brush",m):q.on("mousemove.brush",d).on("mouseup.brush",m),k.interrupt().selectAll("*").interrupt(),C)L[0]=s[0]-L[0],L[1]=h[0]-L[1];else if(N){var T=+/w$/.test(N),R=+/^n/.test(N);x=[s[1-T]-L[0],h[1-R]-L[1]],L[0]=s[T],L[1]=h[R]}else ao.event.altKey&&(M=L.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),ao.select("body").style("cursor",_.style("cursor")),w({type:"brushstart"}),d()}var o,a,l=N(n,"brushstart","brush","brushend"),c=null,f=null,s=[0,0],h=[0,0],p=!0,g=!0,v=Bl[0];return n.event=function(n){n.each(function(){var n=l.of(this,arguments),t={x:s,y:h,i:o,j:a},e=this.__chart__||t;this.__chart__=t,Hl?ao.select(this).transition().each("start.brush",function(){o=e.i,a=e.j,s=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=xr(s,t.x),r=xr(h,t.y);return o=a=null,function(i){s=t.x=e(i),h=t.y=r(i),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){o=t.i,a=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,v=Bl[!c<<1|!f],n):c},n.y=function(t){return arguments.length?(f=t,v=Bl[!c<<1|!f],n):f},n.clamp=function(t){return arguments.length?(c&&f?(p=!!t[0],g=!!t[1]):c?p=!!t:f&&(g=!!t),n):c&&f?[p,g]:c?p:f?g:null},n.extent=function(t){var e,r,i,u,l;return arguments.length?(c&&(e=t[0],r=t[1],f&&(e=e[0],r=r[0]),o=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(l=e,e=r,r=l),e==s[0]&&r==s[1]||(s=[e,r])),f&&(i=t[0],u=t[1],c&&(i=i[1],u=u[1]),a=[i,u],f.invert&&(i=f(i),u=f(u)),i>u&&(l=i,i=u,u=l),i==h[0]&&u==h[1]||(h=[i,u])),n):(c&&(o?(e=o[0],r=o[1]):(e=s[0],r=s[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(l=e,e=r,r=l))),f&&(a?(i=a[0],u=a[1]):(i=h[0],u=h[1],f.invert&&(i=f.invert(i),u=f.invert(u)),i>u&&(l=i,i=u,u=l))),c&&f?[[e,i],[r,u]]:c?[e,r]:f&&[i,u])},n.clear=function(){return n.empty()||(s=[0,0],h=[0,0],o=a=null),n},n.empty=function(){return!!c&&s[0]==s[1]||!!f&&h[0]==h[1]},ao.rebind(n,l,"on")};var $l={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Bl=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Wl=ga.format=xa.timeFormat,Jl=Wl.utc,Gl=Jl("%Y-%m-%dT%H:%M:%S.%LZ");Wl.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?eo:Gl,eo.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},eo.toString=Gl.toString,ga.second=On(function(n){return new va(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),ga.seconds=ga.second.range,ga.seconds.utc=ga.second.utc.range,ga.minute=On(function(n){return new va(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),ga.minutes=ga.minute.range,ga.minutes.utc=ga.minute.utc.range,ga.hour=On(function(n){var t=n.getTimezoneOffset()/60;return new va(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),ga.hours=ga.hour.range,ga.hours.utc=ga.hour.utc.range,ga.month=On(function(n){return n=ga.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),ga.months=ga.month.range,ga.months.utc=ga.month.utc.range;var Kl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Ql=[[ga.second,1],[ga.second,5],[ga.second,15],[ga.second,30],[ga.minute,1],[ga.minute,5],[ga.minute,15],[ga.minute,30],[ga.hour,1],[ga.hour,3],[ga.hour,6],[ga.hour,12],[ga.day,1],[ga.day,2],[ga.week,1],[ga.month,1],[ga.month,3],[ga.year,1]],nc=Wl.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",zt]]),tc={range:function(n,t,e){return ao.range(Math.ceil(n/e)*e,+t,e).map(io)},floor:m,ceil:m};Ql.year=ga.year,ga.scale=function(){return ro(ao.scale.linear(),Ql,nc)};var ec=Ql.map(function(n){return[n[0].utc,n[1]]}),rc=Jl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",zt]]);ec.year=ga.year.utc,ga.scale.utc=function(){return ro(ao.scale.linear(),ec,rc)},ao.text=An(function(n){return n.responseText}),ao.json=function(n,t){return Cn(n,"application/json",uo,t)},ao.html=function(n,t){return Cn(n,"text/html",oo,t)},ao.xml=An(function(n){return n.responseXML}),"function"==typeof define&&define.amd?(this.d3=ao,define(ao)):"object"==typeof module&&module.exports?module.exports=ao:this.d3=ao}();
/*! iFrame Resizer version 1.0
* Desc: Force cross domain iframes to size to content.
* Requires: iframeResizer_child.js on host page.
*/
!function(){function X(e,d,f){"addEventListener" in window?e.addEventListener(d,f,!1):"attachEvent" in window&&e.attachEvent("on"+d,f)
}function W(){var d,c=["moz","webkit","o","ms"];
for(d=0;
d tag, found <"+b.tagName+">.")
}N.call(b)
}function c(f){if(f=f||{},"object"!=typeof f){throw new TypeError("Options is not an object.")
}for(var e in z){z.hasOwnProperty(e)&&(A[e]=f.hasOwnProperty(e)?f[e]:z[e])
}}window.iFrameResize=function(b,a){c(b),Array.prototype.forEach.call(document.querySelectorAll(a||"iframe"),d)
}
}function L(b){b.fn.iFrameResize=function(a){return A=b.extend({},z,a),this.filter("iframe").each(N).end()
}
}var K=0,J=!0,I="message",H=I.length,G="[iFrameSizer]",F=G.length,E="",D=null,C=window.requestAnimationFrame,B={max:1,scroll:1,bodyScroll:1,documentElementScroll:1},A={},z={autoResize:!0,bodyBackground:null,bodyMargin:null,bodyMarginV1:8,bodyPadding:null,checkOrigin:!0,enablePublicMethods:!1,heightCalculationMethod:"offset",interval:32,log:!1,messageCallback:function(){},resizedCallback:function(){},scrolling:!1,sizeHeight:!0,sizeWidth:!1};
W(),X(window,"message",U),M(),"jQuery" in window&&L(jQuery)
}();
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t=t||self).jsPDF={})}(this,function(n){"use strict";
/** @license
* jsPDF - PDF Document creation from JavaScript
* Version 1.5.2 Built on 2018-12-20T15:49:00.470Z
* CommitID 81f5c40ca4
*
* Copyright (c) 2010-2016 James Hall , https://github.com/MrRio/jsPDF
* 2010 Aaron Spike, https://github.com/acspike
* 2012 Willow Systems Corporation, willow-systems.com
* 2012 Pablo Hess, https://github.com/pablohess
* 2012 Florian Jenett, https://github.com/fjenett
* 2013 Warren Weckesser, https://github.com/warrenweckesser
* 2013 Youssef Beddad, https://github.com/lifof
* 2013 Lee Driscoll, https://github.com/lsdriscoll
* 2013 Stefan Slonevskiy, https://github.com/stefslon
* 2013 Jeremy Morel, https://github.com/jmorel
* 2013 Christoph Hartmann, https://github.com/chris-rock
* 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria
* 2014 James Makes, https://github.com/dollaruw
* 2014 Diego Casorran, https://github.com/diegocr
* 2014 Steven Spungin, https://github.com/Flamenco
* 2014 Kenneth Glassey, https://github.com/Gavvers
*
* Licensed under the MIT License
*
* Contributor(s):
* siefkenj, ahwolf, rickygu, Midnith, saintclair, eaparango,
* kim3er, mfo, alnorth, Flamenco
*/function se(t){return(se="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var t;!function(t){if("object"!==se(t.console)){t.console={};for(var e,n,r=t.console,i=function(){},o=["memory"],a="assert,clear,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,markTimeline,profile,profiles,profileEnd,show,table,time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn".split(",");e=o.pop();)r[e]||(r[e]={});for(;n=a.pop();)r[n]||(r[n]=i)}var s,l,h,u,c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";void 0===t.btoa&&(t.btoa=function(t){var e,n,r,i,o,a=0,s=0,l="",h=[];if(!t)return t;for(;e=(o=t.charCodeAt(a++)<<16|t.charCodeAt(a++)<<8|t.charCodeAt(a++))>>18&63,n=o>>12&63,r=o>>6&63,i=63&o,h[s++]=c.charAt(e)+c.charAt(n)+c.charAt(r)+c.charAt(i),a>16&255,n=a>>8&255,r=255&a,h[l++]=64==i?String.fromCharCode(e):64==o?String.fromCharCode(e,n):String.fromCharCode(e,n,r),s>>0,r=new Array(n),i=1>>0,i=0;i>>0;if("function"!=typeof t)throw new TypeError("predicate must be a function");for(var r=arguments[1],i=0;i>16&255,r=l>>8&255,i=255&l}if(void 0===r||void 0===o&&n===r&&r===i)if("string"==typeof n)e=n+" "+a[0];else switch(t.precision){case 2:e=Z(n/255)+" "+a[0];break;case 3:default:e=Q(n/255)+" "+a[0]}else if(void 0===o||"object"===se(o)){if(o&&!isNaN(o.a)&&0===o.a)return e=["1.000","1.000","1.000",a[1]].join(" ");if("string"==typeof n)e=[n,r,i,a[1]].join(" ");else switch(t.precision){case 2:e=[Z(n/255),Z(r/255),Z(i/255),a[1]].join(" ");break;default:case 3:e=[Q(n/255),Q(r/255),Q(i/255),a[1]].join(" ")}}else if("string"==typeof n)e=[n,r,i,o,a[2]].join(" ");else switch(t.precision){case 2:e=[Z(n/255),Z(r/255),Z(i/255),Z(o/255),a[2]].join(" ");break;case 3:default:e=[Q(n/255),Q(r/255),Q(i/255),Q(o/255),a[2]].join(" ")}return e},ct=l.__private__.getFilters=function(){return o},ft=l.__private__.putStream=function(t){var e=(t=t||{}).data||"",n=t.filters||ct(),r=t.alreadyAppliedFilters||[],i=t.addLength1||!1,o=e.length,a={};!0===n&&(n=["FlateEncode"]);var s=t.additionalKeyValues||[],l=(a=void 0!==ae.API.processDataByFilters?ae.API.processDataByFilters(e,n):{data:e,reverseChain:[]}).reverseChain+(Array.isArray(r)?r.join(" "):r.toString());0!==a.data.length&&(s.push({key:"Length",value:a.data.length}),!0===i&&s.push({key:"Length1",value:o})),0!=l.length&&(l.split("/").length-1==1?s.push({key:"Filter",value:l}):s.push({key:"Filter",value:"["+l+"]"})),tt("<<");for(var h=0;h>"),0!==a.data.length&&(tt("stream"),tt(a.data),tt("endstream"))},dt=l.__private__.putPage=function(t){t.mediaBox;var e=t.number,n=t.data,r=t.objId,i=t.contentsObjId;ot(r,!0);V[x].mediaBox.topRightX,V[x].mediaBox.bottomLeftX,V[x].mediaBox.topRightY,V[x].mediaBox.bottomLeftY;tt("<>"),tt("endobj");var o=n.join("\n");return ot(i,!0),ft({data:o,filters:ct()}),tt("endobj"),r},pt=l.__private__.putPages=function(){var t,e,n=[];for(t=1;t<=W;t++)V[t].objId=X(),V[t].contentsObjId=X();for(t=1;t<=W;t++)n.push(dt({number:t,data:I[t],objId:V[t].objId,contentsObjId:V[t].contentsObjId,mediaBox:V[t].mediaBox,cropBox:V[t].cropBox,bleedBox:V[t].bleedBox,trimBox:V[t].trimBox,artBox:V[t].artBox,userUnit:V[t].userUnit,rootDictionaryObjId:st,resourceDictionaryObjId:lt}));ot(st,!0),tt("<>"),tt("endobj"),it.publish("postPutPages")},gt=function(){!function(){for(var t in rt)rt.hasOwnProperty(t)&&(!1===s||!0===s&&K.hasOwnProperty(t))&&(e=rt[t],it.publish("putFont",{font:e,out:tt,newObject:J,putStream:ft}),!0!==e.isAlreadyPutted&&(e.objectNumber=J(),tt("<<"),tt("/Type /Font"),tt("/BaseFont /"+e.postScriptName),tt("/Subtype /Type1"),"string"==typeof e.encoding&&tt("/Encoding /"+e.encoding),tt("/FirstChar 32"),tt("/LastChar 255"),tt(">>"),tt("endobj")));var e}(),it.publish("putResources"),ot(lt,!0),tt("<<"),function(){for(var t in tt("/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]"),tt("/Font <<"),rt)rt.hasOwnProperty(t)&&(!1===s||!0===s&&K.hasOwnProperty(t))&&tt("/"+t+" "+rt[t].objectNumber+" 0 R");tt(">>"),tt("/XObject <<"),it.publish("putXobjectDict"),tt(">>")}(),tt(">>"),tt("endobj"),it.publish("postPutResources")},mt=function(t,e,n){H.hasOwnProperty(e)||(H[e]={}),H[e][n]=t},yt=function(t,e,n,r,i){i=i||!1;var o="F"+(Object.keys(rt).length+1).toString(10),a={id:o,postScriptName:t,fontName:e,fontStyle:n,encoding:r,isStandardFont:i,metadata:{}};return it.publish("addFont",{font:a,instance:this}),void 0!==o&&(rt[o]=a,mt(o,e,n)),o},vt=l.__private__.pdfEscape=l.pdfEscape=function(t,e){return function(t,e){var n,r,i,o,a,s,l,h,u;if(i=(e=e||{}).sourceEncoding||"Unicode",a=e.outputEncoding,(e.autoencode||a)&&rt[$].metadata&&rt[$].metadata[i]&&rt[$].metadata[i].encoding&&(o=rt[$].metadata[i].encoding,!a&&rt[$].encoding&&(a=rt[$].encoding),!a&&o.codePages&&(a=o.codePages[0]),"string"==typeof a&&(a=o[a]),a)){for(l=!1,s=[],n=0,r=t.length;n>8&&(l=!0);t=s.join("")}for(n=t.length;void 0===l&&0!==n;)t.charCodeAt(n-1)>>8&&(l=!0),n--;if(!l)return t;for(s=e.noBOM?[]:[254,255],n=0,r=t.length;n>8)>>8)throw new Error("Character at position "+n+" of string '"+t+"' exceeds 16bits. Cannot be encoded into UCS-2 BE");s.push(u),s.push(h-(u<<8))}return String.fromCharCode.apply(void 0,s)}(t,e).replace(/\\/g,"\\\\").replace(/\(/g,"\\(").replace(/\)/g,"\\)")},wt=l.__private__.beginPage=function(t,e){var n,r="string"==typeof e&&e.toLowerCase();if("string"==typeof t&&f(t.toLowerCase())&&(t=f(t.toLowerCase())[0],e=f(t.toLowerCase())[1]),Array.isArray(t)&&(e=t[1],t=t[0]),(isNaN(t)||isNaN(e))&&(t=i[0],e=i[1]),r){switch(r.substr(0,1)){case"l":t>"),tt("endobj")},St=l.__private__.putCatalog=function(t){var e=(t=t||{}).rootDictionaryObjId||st;switch(J(),tt("<<"),tt("/Type /Catalog"),tt("/Pages "+e+" 0 R"),L||(L="fullwidth"),L){case"fullwidth":tt("/OpenAction [3 0 R /FitH null]");break;case"fullheight":tt("/OpenAction [3 0 R /FitV null]");break;case"fullpage":tt("/OpenAction [3 0 R /Fit]");break;case"original":tt("/OpenAction [3 0 R /XYZ null null 1]");break;default:var n=""+L;"%"===n.substr(n.length-1)&&(L=parseInt(L)/100),"number"==typeof L&&tt("/OpenAction [3 0 R /XYZ null null "+Z(L)+"]")}switch(S||(S="continuous"),S){case"continuous":tt("/PageLayout /OneColumn");break;case"single":tt("/PageLayout /SinglePage");break;case"two":case"twoleft":tt("/PageLayout /TwoColumnLeft");break;case"tworight":tt("/PageLayout /TwoColumnRight")}A&&tt("/PageMode /"+A),it.publish("putCatalog"),tt(">>"),tt("endobj")},_t=l.__private__.putTrailer=function(){tt("trailer"),tt("<<"),tt("/Size "+(U+1)),tt("/Root "+U+" 0 R"),tt("/Info "+(U-1)+" 0 R"),tt("/ID [ <"+p+"> <"+p+"> ]"),tt(">>")},Ft=l.__private__.putHeader=function(){tt("%PDF-"+h),tt("%ºß¬à")},Pt=l.__private__.putXRef=function(){var t=1,e="0000000000";for(tt("xref"),tt("0 "+(U+1)),tt("0000000000 65535 f "),t=1;t<=U;t++){"function"==typeof z[t]?tt((e+z[t]()).slice(-10)+" 00000 n "):void 0!==z[t]?tt((e+z[t]).slice(-10)+" 00000 n "):tt("0000000000 00000 n ")}},kt=l.__private__.buildDocument=function(){k=!1,B=U=0,C=[],z=[],G=[],st=X(),lt=X(),it.publish("buildDocument"),Ft(),pt(),function(){it.publish("putAdditionalObjects");for(var t=0;t