/* Highcharts JS v3.0.6 (2013-10-04) Standalone Highcharts Framework License: MIT License */ var HighchartsAdapter = (function () { function o(c) { function a(a, b, d) { a.removeEventListener(b, d, !1); } function d(a, b, d) { d = a.HCProxiedMethods[d.toString()]; a.detachEvent('on' + b, d); } function b(b, c) { var f = b.HCEvents, i, g, k, j; if (b.removeEventListener) i = a; else if (b.attachEvent) i = d; else return; c ? ((g = {}), (g[c] = !0)) : (g = f); for (j in g) if (f[j]) for (k = f[j].length; k--; ) i(b, j, f[j][k]); } c.HCExtended || Highcharts.extend(c, { HCExtended: !0, HCEvents: {}, bind: function (b, a) { var d = this, c = this.HCEvents, g; if (d.addEventListener) d.addEventListener(b, a, !1); else if (d.attachEvent) { g = function (b) { a.call(d, b); }; if (!d.HCProxiedMethods) d.HCProxiedMethods = {}; d.HCProxiedMethods[a.toString()] = g; d.attachEvent('on' + b, g); } c[b] === r && (c[b] = []); c[b].push(a); }, unbind: function (c, h) { var f, i; c ? ((f = this.HCEvents[c] || []), h ? ((i = HighchartsAdapter.inArray(h, f)), i > -1 && (f.splice(i, 1), (this.HCEvents[c] = f)), this.removeEventListener ? a(this, c, h) : this.attachEvent && d(this, c, h)) : (b(this, c), (this.HCEvents[c] = []))) : (b(this), (this.HCEvents = {})); }, trigger: function (b, a) { var d = this.HCEvents[b] || [], c = d.length, g, k, j; k = function () { a.defaultPrevented = !0; }; for (g = 0; g < c; g++) { j = d[g]; if (a.stopped) break; a.preventDefault = k; a.target = this; a.type = b; j.call(this, a) === !1 && a.preventDefault(); } }, }); return c; } var r, l = document, p = [], m = [], q, n; Math.easeInOutSine = function (c, a, d, b) { return (-d / 2) * (Math.cos((Math.PI * c) / b) - 1) + a; }; return { init: function (c) { if (!l.defaultView) (this._getStyle = function (a, d) { var b; return a.style[d] ? a.style[d] : (d === 'opacity' && (d = 'filter'), (b = a.currentStyle[ d.replace(/\-(\w)/g, function (a, b) { return b.toUpperCase(); }) ]), d === 'filter' && (b = b.replace(/alpha\(opacity=([0-9]+)\)/, function (b, a) { return a / 100; })), b === '' ? 1 : b); }), (this.adapterRun = function (a, d) { var b = { width: 'clientWidth', height: 'clientHeight' }[d]; if (b) return ( (a.style.zoom = 1), a[b] - 2 * parseInt(HighchartsAdapter._getStyle(a, 'padding'), 10) ); }); if (!Array.prototype.forEach) this.each = function (a, d) { for (var b = 0, c = a.length; b < c; b++) if (d.call(a[b], a[b], b, a) === !1) return b; }; if (!Array.prototype.indexOf) this.inArray = function (a, d) { var b, c = 0; if (d) for (b = d.length; c < b; c++) if (d[c] === a) return c; return -1; }; if (!Array.prototype.filter) this.grep = function (a, d) { for (var b = [], c = 0, h = a.length; c < h; c++) d(a[c], c) && b.push(a[c]); return b; }; n = function (a, c, b) { this.options = c; this.elem = a; this.prop = b; }; n.prototype = { update: function () { var a; a = this.paths; var d = this.elem, b = d.element; a && b ? d.attr('d', c.step(a[0], a[1], this.now, this.toD)) : d.attr ? b && d.attr(this.prop, this.now) : ((a = {}), (a[d] = this.now + this.unit), Highcharts.css(d, a)); this.options.step && this.options.step.call(this.elem, this.now, this); }, custom: function (a, c, b) { var e = this, h = function (a) { return e.step(a); }, f; this.startTime = +new Date(); this.start = a; this.end = c; this.unit = b; this.now = this.start; this.pos = this.state = 0; h.elem = this.elem; h() && m.push(h) === 1 && (q = setInterval(function () { for (f = 0; f < m.length; f++) m[f]() || m.splice(f--, 1); m.length || clearInterval(q); }, 13)); }, step: function (a) { var c = +new Date(), b; b = this.options; var e; if (this.elem.stopAnimation) b = !1; else if (a || c >= b.duration + this.startTime) { this.now = this.end; this.pos = this.state = 1; this.update(); a = this.options.curAnim[this.prop] = !0; for (e in b.curAnim) b.curAnim[e] !== !0 && (a = !1); a && b.complete && b.complete.call(this.elem); b = !1; } else (e = c - this.startTime), (this.state = e / b.duration), (this.pos = b.easing(e, 0, 1, b.duration)), (this.now = this.start + (this.end - this.start) * this.pos), this.update(), (b = !0); return b; }, }; this.animate = function (a, d, b) { var e, h = '', f, i, g; a.stopAnimation = !1; if (typeof b !== 'object' || b === null) (e = arguments), (b = { duration: e[2], easing: e[3], complete: e[4] }); if (typeof b.duration !== 'number') b.duration = 400; b.easing = Math[b.easing] || Math.easeInOutSine; b.curAnim = Highcharts.extend({}, d); for (g in d) (i = new n(a, b, g)), (f = null), g === 'd' ? ((i.paths = c.init(a, a.d, d.d)), (i.toD = d.d), (e = 0), (f = 1)) : a.attr ? (e = a.attr(g)) : ((e = parseFloat(HighchartsAdapter._getStyle(a, g)) || 0), g !== 'opacity' && (h = 'px')), f || (f = parseFloat(d[g])), i.custom(e, f, h); }; }, _getStyle: function (c, a) { return window.getComputedStyle(c).getPropertyValue(a); }, getScript: function (c, a) { var d = l.getElementsByTagName('head')[0], b = l.createElement('script'); b.type = 'text/javascript'; b.src = c; b.onload = a; d.appendChild(b); }, inArray: function (c, a) { return a.indexOf ? a.indexOf(c) : p.indexOf.call(a, c); }, adapterRun: function (c, a) { return parseInt(HighchartsAdapter._getStyle(c, a), 10); }, grep: function (c, a) { return p.filter.call(c, a); }, map: function (c, a) { for (var d = [], b = 0, e = c.length; b < e; b++) d[b] = a.call(c[b], c[b], b, c); return d; }, offset: function (c) { for (var a = 0, d = 0; c; ) (a += c.offsetLeft), (d += c.offsetTop), (c = c.offsetParent); return { left: a, top: d }; }, addEvent: function (c, a, d) { o(c).bind(a, d); }, removeEvent: function (c, a, d) { o(c).unbind(a, d); }, fireEvent: function (c, a, d, b) { var e; l.createEvent && (c.dispatchEvent || c.fireEvent) ? ((e = l.createEvent('Events')), e.initEvent(a, !0, !0), (e.target = c), Highcharts.extend(e, d), c.dispatchEvent ? c.dispatchEvent(e) : c.fireEvent(a, e)) : c.HCExtended === !0 && ((d = d || {}), c.trigger(a, d)); d && d.defaultPrevented && (b = null); b && b(d); }, washMouseEvent: function (c) { return c; }, stop: function (c) { c.stopAnimation = !0; }, each: function (c, a) { return Array.prototype.forEach.call(c, a); }, }; })();