Remove att-abs-tpls.js 81/19281/1
authorOfir Sonsino <os0695@att.com>
Tue, 17 Oct 2017 13:03:12 +0000 (16:03 +0300)
committerOfir Sonsino <os0695@att.com>
Tue, 17 Oct 2017 13:03:12 +0000 (16:03 +0300)
Change-Id: I458f153050fb1a08fc0d77384844daaec8859bf8
Issue-ID: VID-39
Signed-off-by: Ofir Sonsino <os0695@att.com>
epsdk-app-onap/src/main/webapp/app/fusion/external/ebz/sandbox/att-abs-tpls.js
epsdk-app-onap/src/main/webapp/app/fusion/external/ebz/sandbox/att-abs-tpls.min.js

index 217e16a..b69d626 100755 (executable)
@@ -671,5213 +671,6 @@ angular.module('att.abs.position', [])
     };\r
 }]);\r
 \r
-/*!\r
- * VERSION: 1.7.3\r
- * DATE: 2014-01-14\r
- * UPDATES AND DOCS AT: http://www.greensock.com\r
- *\r
- * @license Copyright (c) 2008-2014, GreenSock. All rights reserved.\r
- * This work is subject to the terms at http://www.greensock.com/terms_of_use.html or for\r
- * Club GreenSock members, the software agreement that was issued with your membership.\r
- * \r
- * @author: Jack Doyle, jack@greensock.com\r
- **/\r
-(window._gsQueue || (window._gsQueue = [])).push( function() {\r
-\r
-       "use strict";\r
-\r
-       var _doc = document.documentElement,\r
-               _window = window,\r
-               _max = function(element, axis) {\r
-                       var dim = (axis === "x") ? "Width" : "Height",\r
-                               scroll = "scroll" + dim,\r
-                               client = "client" + dim,\r
-                               body = document.body;\r
-                       return (element === _window || element === _doc || element === body) ? Math.max(_doc[scroll], body[scroll]) - (_window["inner" + dim] || Math.max(_doc[client], body[client])) : element[scroll] - element["offset" + dim];\r
-               },\r
-\r
-               ScrollToPlugin = window._gsDefine.plugin({\r
-                       propName: "scrollTo",\r
-                       API: 2,\r
-                       version:"1.7.3",\r
-\r
-                       //called when the tween renders for the first time. This is where initial values should be recorded and any setup routines should run.\r
-                       init: function(target, value, tween) {\r
-                               this._wdw = (target === _window);\r
-                               this._target = target;\r
-                               this._tween = tween;\r
-                               if (typeof(value) !== "object") {\r
-                                       value = {y:value}; //if we don't receive an object as the parameter, assume the user intends "y".\r
-                               }\r
-                               this._autoKill = (value.autoKill !== false);\r
-                               this.x = this.xPrev = this.getX();\r
-                               this.y = this.yPrev = this.getY();\r
-                               if (value.x != null) {\r
-                                       this._addTween(this, "x", this.x, (value.x === "max") ? _max(target, "x") : value.x, "scrollTo_x", true);\r
-                                       this._overwriteProps.push("scrollTo_x");\r
-                               } else {\r
-                                       this.skipX = true;\r
-                               }\r
-                               if (value.y != null) {\r
-                                       this._addTween(this, "y", this.y, (value.y === "max") ? _max(target, "y") : value.y, "scrollTo_y", true);\r
-                                       this._overwriteProps.push("scrollTo_y");\r
-                               } else {\r
-                                       this.skipY = true;\r
-                               }\r
-                               return true;\r
-                       },\r
-\r
-                       //called each time the values should be updated, and the ratio gets passed as the only parameter (typically it's a value between 0 and 1, but it can exceed those when using an ease like Elastic.easeOut or Back.easeOut, etc.)\r
-                       set: function(v) {\r
-                               this._super.setRatio.call(this, v);\r
-\r
-                               var x = (this._wdw || !this.skipX) ? this.getX() : this.xPrev,\r
-                                       y = (this._wdw || !this.skipY) ? this.getY() : this.yPrev,\r
-                                       yDif = y - this.yPrev,\r
-                                       xDif = x - this.xPrev;\r
-\r
-                               if (this._autoKill) {\r
-                                       //note: iOS has a bug that throws off the scroll by several pixels, so we need to check if it's within 7 pixels of the previous one that we set instead of just looking for an exact match.\r
-                                       if (!this.skipX && (xDif > 7 || xDif < -7) && x < _max(this._target, "x")) {\r
-                                               this.skipX = true; //if the user scrolls separately, we should stop tweening!\r
-                                       }\r
-                                       if (!this.skipY && (yDif > 7 || yDif < -7) && y < _max(this._target, "y")) {\r
-                                               this.skipY = true; //if the user scrolls separately, we should stop tweening!\r
-                                       }\r
-                                       if (this.skipX && this.skipY) {\r
-                                               this._tween.kill();\r
-                                       }\r
-                               }\r
-                               if (this._wdw) {\r
-                                       _window.scrollTo((!this.skipX) ? this.x : x, (!this.skipY) ? this.y : y);\r
-                               } else {\r
-                                       if (!this.skipY) {\r
-                                               this._target.scrollTop = this.y;\r
-                                       }\r
-                                       if (!this.skipX) {\r
-                                               this._target.scrollLeft = this.x;\r
-                                       }\r
-                               }\r
-                               this.xPrev = this.x;\r
-                               this.yPrev = this.y;\r
-                       }\r
-\r
-               }),\r
-               p = ScrollToPlugin.prototype;\r
-\r
-       ScrollToPlugin.max = _max;\r
-\r
-       p.getX = function() {\r
-               return (!this._wdw) ? this._target.scrollLeft : (_window.pageXOffset != null) ? _window.pageXOffset : (_doc.scrollLeft != null) ? _doc.scrollLeft : document.body.scrollLeft;\r
-       };\r
-\r
-       p.getY = function() {\r
-               return (!this._wdw) ? this._target.scrollTop : (_window.pageYOffset != null) ? _window.pageYOffset : (_doc.scrollTop != null) ? _doc.scrollTop : document.body.scrollTop;\r
-       };\r
-\r
-       p._kill = function(lookup) {\r
-               if (lookup.scrollTo_x) {\r
-                       this.skipX = true;\r
-               }\r
-               if (lookup.scrollTo_y) {\r
-                       this.skipY = true;\r
-               }\r
-               return this._super._kill.call(this, lookup);\r
-       };\r
-\r
-}); if (window._gsDefine) { window._gsQueue.pop()(); }\r
-/*!\r
- * VERSION: 1.12.1\r
- * DATE: 2014-06-26\r
- * UPDATES AND DOCS AT: http://www.greensock.com\r
- * \r
- * Includes all of the following: TweenLite, TweenMax, TimelineLite, TimelineMax, EasePack, CSSPlugin, RoundPropsPlugin, BezierPlugin, AttrPlugin, DirectionalRotationPlugin\r
- *\r
- * @license Copyright (c) 2008-2014, GreenSock. All rights reserved.\r
- * This work is subject to the terms at http://www.greensock.com/terms_of_use.html or for\r
- * Club GreenSock members, the software agreement that was issued with your membership.\r
- * \r
- * @author: Jack Doyle, jack@greensock.com\r
- **/\r
-\r
-(window._gsQueue || (window._gsQueue = [])).push( function() {\r
-\r
-       "use strict";\r
-\r
-       window._gsDefine("TweenMax", ["core.Animation","core.SimpleTimeline","TweenLite"], function(Animation, SimpleTimeline, TweenLite) {\r
-\r
-               var _slice = [].slice,\r
-                       TweenMax = function(target, duration, vars) {\r
-                               TweenLite.call(this, target, duration, vars);\r
-                               this._cycle = 0;\r
-                               this._yoyo = (this.vars.yoyo === true);\r
-                               this._repeat = this.vars.repeat || 0;\r
-                               this._repeatDelay = this.vars.repeatDelay || 0;\r
-                               this._dirty = true; //ensures that if there is any repeat, the totalDuration will get recalculated to accurately report it.\r
-                               this.render = TweenMax.prototype.render; //speed optimization (avoid prototype lookup on this "hot" method)\r
-                       },\r
-                       _tinyNum = 0.0000000001,\r
-                       TweenLiteInternals = TweenLite._internals,\r
-                       _isSelector = TweenLiteInternals.isSelector,\r
-                       _isArray = TweenLiteInternals.isArray,\r
-                       p = TweenMax.prototype = TweenLite.to({}, 0.1, {}),\r
-                       _blankArray = [];\r
-\r
-               TweenMax.version = "1.12.1";\r
-               p.constructor = TweenMax;\r
-               p.kill()._gc = false;\r
-               TweenMax.killTweensOf = TweenMax.killDelayedCallsTo = TweenLite.killTweensOf;\r
-               TweenMax.getTweensOf = TweenLite.getTweensOf;\r
-               TweenMax.lagSmoothing = TweenLite.lagSmoothing;\r
-               TweenMax.ticker = TweenLite.ticker;\r
-               TweenMax.render = TweenLite.render;\r
-\r
-               p.invalidate = function() {\r
-                       this._yoyo = (this.vars.yoyo === true);\r
-                       this._repeat = this.vars.repeat || 0;\r
-                       this._repeatDelay = this.vars.repeatDelay || 0;\r
-                       this._uncache(true);\r
-                       return TweenLite.prototype.invalidate.call(this);\r
-               };\r
-               \r
-               p.updateTo = function(vars, resetDuration) {\r
-                       var curRatio = this.ratio, p;\r
-                       if (resetDuration && this._startTime < this._timeline._time) {\r
-                               this._startTime = this._timeline._time;\r
-                               this._uncache(false);\r
-                               if (this._gc) {\r
-                                       this._enabled(true, false);\r
-                               } else {\r
-                                       this._timeline.insert(this, this._startTime - this._delay); //ensures that any necessary re-sequencing of Animations in the timeline occurs to make sure the rendering order is correct.\r
-                               }\r
-                       }\r
-                       for (p in vars) {\r
-                               this.vars[p] = vars[p];\r
-                       }\r
-                       if (this._initted) {\r
-                               if (resetDuration) {\r
-                                       this._initted = false;\r
-                               } else {\r
-                                       if (this._gc) {\r
-                                               this._enabled(true, false);\r
-                                       }\r
-                                       if (this._notifyPluginsOfEnabled && this._firstPT) {\r
-                                               TweenLite._onPluginEvent("_onDisable", this); //in case a plugin like MotionBlur must perform some cleanup tasks\r
-                                       }\r
-                                       if (this._time / this._duration > 0.998) { //if the tween has finished (or come extremely close to finishing), we just need to rewind it to 0 and then render it again at the end which forces it to re-initialize (parsing the new vars). We allow tweens that are close to finishing (but haven't quite finished) to work this way too because otherwise, the values are so small when determining where to project the starting values that binary math issues creep in and can make the tween appear to render incorrectly when run backwards. \r
-                                               var prevTime = this._time;\r
-                                               this.render(0, true, false);\r
-                                               this._initted = false;\r
-                                               this.render(prevTime, true, false);\r
-                                       } else if (this._time > 0) {\r
-                                               this._initted = false;\r
-                                               this._init();\r
-                                               var inv = 1 / (1 - curRatio),\r
-                                                       pt = this._firstPT, endValue;\r
-                                               while (pt) {\r
-                                                       endValue = pt.s + pt.c; \r
-                                                       pt.c *= inv;\r
-                                                       pt.s = endValue - pt.c;\r
-                                                       pt = pt._next;\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
-                       return this;\r
-               };\r
-                               \r
-               p.render = function(time, suppressEvents, force) {\r
-                       if (!this._initted) if (this._duration === 0 && this.vars.repeat) { //zero duration tweens that render immediately have render() called from TweenLite's constructor, before TweenMax's constructor has finished setting _repeat, _repeatDelay, and _yoyo which are critical in determining totalDuration() so we need to call invalidate() which is a low-kb way to get those set properly.\r
-                               this.invalidate();\r
-                       }\r
-                       var totalDur = (!this._dirty) ? this._totalDuration : this.totalDuration(),\r
-                               prevTime = this._time,\r
-                               prevTotalTime = this._totalTime, \r
-                               prevCycle = this._cycle,\r
-                               duration = this._duration,\r
-                               prevRawPrevTime = this._rawPrevTime,\r
-                               isComplete, callback, pt, cycleDuration, r, type, pow, rawPrevTime, i;\r
-                       if (time >= totalDur) {\r
-                               this._totalTime = totalDur;\r
-                               this._cycle = this._repeat;\r
-                               if (this._yoyo && (this._cycle & 1) !== 0) {\r
-                                       this._time = 0;\r
-                                       this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0;\r
-                               } else {\r
-                                       this._time = duration;\r
-                                       this.ratio = this._ease._calcEnd ? this._ease.getRatio(1) : 1;\r
-                               }\r
-                               if (!this._reversed) {\r
-                                       isComplete = true;\r
-                                       callback = "onComplete";\r
-                               }\r
-                               if (duration === 0) if (this._initted || !this.vars.lazy || force) { //zero-duration tweens are tricky because we must discern the momentum/direction of time in order to determine whether the starting values should be rendered or the ending values. If the "playhead" of its timeline goes past the zero-duration tween in the forward direction or lands directly on it, the end values should be rendered, but if the timeline's "playhead" moves past it in the backward direction (from a postitive time to a negative time), the starting values must be rendered.\r
-                                       if (this._startTime === this._timeline._duration) { //if a zero-duration tween is at the VERY end of a timeline and that timeline renders at its end, it will typically add a tiny bit of cushion to the render time to prevent rounding errors from getting in the way of tweens rendering their VERY end. If we then reverse() that timeline, the zero-duration tween will trigger its onReverseComplete even though technically the playhead didn't pass over it again. It's a very specific edge case we must accommodate.\r
-                                               time = 0;\r
-                                       }\r
-                                       if (time === 0 || prevRawPrevTime < 0 || prevRawPrevTime === _tinyNum) if (prevRawPrevTime !== time) {\r
-                                               force = true;\r
-                                               if (prevRawPrevTime > _tinyNum) {\r
-                                                       callback = "onReverseComplete";\r
-                                               }\r
-                                       }\r
-                                       this._rawPrevTime = rawPrevTime = (!suppressEvents || time || prevRawPrevTime === time) ? time : _tinyNum; //when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration tween, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect. We set the _rawPrevTime to be a precise tiny number to indicate this scenario rather than using another property/variable which would increase memory usage. This technique is less readable, but more efficient.\r
-                               }\r
-                               \r
-                       } else if (time < 0.0000001) { //to work around occasional floating point math artifacts, round super small values to 0.\r
-                               this._totalTime = this._time = this._cycle = 0;\r
-                               this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0;\r
-                               if (prevTotalTime !== 0 || (duration === 0 && prevRawPrevTime > 0 && prevRawPrevTime !== _tinyNum)) {\r
-                                       callback = "onReverseComplete";\r
-                                       isComplete = this._reversed;\r
-                               }\r
-                               if (time < 0) {\r
-                                       this._active = false;\r
-                                       if (duration === 0) if (this._initted || !this.vars.lazy || force) { //zero-duration tweens are tricky because we must discern the momentum/direction of time in order to determine whether the starting values should be rendered or the ending values. If the "playhead" of its timeline goes past the zero-duration tween in the forward direction or lands directly on it, the end values should be rendered, but if the timeline's "playhead" moves past it in the backward direction (from a postitive time to a negative time), the starting values must be rendered.\r
-                                               if (prevRawPrevTime >= 0) {\r
-                                                       force = true;\r
-                                               }\r
-                                               this._rawPrevTime = rawPrevTime = (!suppressEvents || time || prevRawPrevTime === time) ? time : _tinyNum; //when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration tween, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect. We set the _rawPrevTime to be a precise tiny number to indicate this scenario rather than using another property/variable which would increase memory usage. This technique is less readable, but more efficient.\r
-                                       }\r
-                               } else if (!this._initted) { //if we render the very beginning (time == 0) of a fromTo(), we must force the render (normal tweens wouldn't need to render at a time of 0 when the prevTime was also 0). This is also mandatory to make sure overwriting kicks in immediately.\r
-                                       force = true;\r
-                               }\r
-                       } else {\r
-                               this._totalTime = this._time = time;\r
-                               \r
-                               if (this._repeat !== 0) {\r
-                                       cycleDuration = duration + this._repeatDelay;\r
-                                       this._cycle = (this._totalTime / cycleDuration) >> 0; //originally _totalTime % cycleDuration but floating point errors caused problems, so I normalized it. (4 % 0.8 should be 0 but Flash reports it as 0.79999999!)\r
-                                       if (this._cycle !== 0) if (this._cycle === this._totalTime / cycleDuration) {\r
-                                               this._cycle--; //otherwise when rendered exactly at the end time, it will act as though it is repeating (at the beginning)\r
-                                       }\r
-                                       this._time = this._totalTime - (this._cycle * cycleDuration);\r
-                                       if (this._yoyo) if ((this._cycle & 1) !== 0) {\r
-                                               this._time = duration - this._time;\r
-                                       }\r
-                                       if (this._time > duration) {\r
-                                               this._time = duration;\r
-                                       } else if (this._time < 0) {\r
-                                               this._time = 0;\r
-                                       }\r
-                               }\r
-\r
-                               if (this._easeType) {\r
-                                       r = this._time / duration;\r
-                                       type = this._easeType;\r
-                                       pow = this._easePower;\r
-                                       if (type === 1 || (type === 3 && r >= 0.5)) {\r
-                                               r = 1 - r;\r
-                                       }\r
-                                       if (type === 3) {\r
-                                               r *= 2;\r
-                                       }\r
-                                       if (pow === 1) {\r
-                                               r *= r;\r
-                                       } else if (pow === 2) {\r
-                                               r *= r * r;\r
-                                       } else if (pow === 3) {\r
-                                               r *= r * r * r;\r
-                                       } else if (pow === 4) {\r
-                                               r *= r * r * r * r;\r
-                                       }\r
-\r
-                                       if (type === 1) {\r
-                                               this.ratio = 1 - r;\r
-                                       } else if (type === 2) {\r
-                                               this.ratio = r;\r
-                                       } else if (this._time / duration < 0.5) {\r
-                                               this.ratio = r / 2;\r
-                                       } else {\r
-                                               this.ratio = 1 - (r / 2);\r
-                                       }\r
-\r
-                               } else {\r
-                                       this.ratio = this._ease.getRatio(this._time / duration);\r
-                               }\r
-                               \r
-                       }\r
-                               \r
-                       if (prevTime === this._time && !force && prevCycle === this._cycle) {\r
-                               if (prevTotalTime !== this._totalTime) if (this._onUpdate) if (!suppressEvents) { //so that onUpdate fires even during the repeatDelay - as long as the totalTime changed, we should trigger onUpdate.\r
-                                       this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || _blankArray);\r
-                               }\r
-                               return;\r
-                       } else if (!this._initted) {\r
-                               this._init();\r
-                               if (!this._initted || this._gc) { //immediateRender tweens typically won't initialize until the playhead advances (_time is greater than 0) in order to ensure that overwriting occurs properly. Also, if all of the tweening properties have been overwritten (which would cause _gc to be true, as set in _init()), we shouldn't continue otherwise an onStart callback could be called for example.\r
-                                       return;\r
-                               } else if (!force && this._firstPT && ((this.vars.lazy !== false && this._duration) || (this.vars.lazy && !this._duration))) { //we stick it in the queue for rendering at the very end of the tick - this is a performance optimization because browsers invalidate styles and force a recalculation if you read, write, and then read style data (so it's better to read/read/read/write/write/write than read/write/read/write/read/write). The down side, of course, is that usually you WANT things to render immediately because you may have code running right after that which depends on the change. Like imagine running TweenLite.set(...) and then immediately after that, creating a nother tween that animates the same property to another value; the starting values of that 2nd tween wouldn't be accurate if lazy is true.\r
-                                       this._time = prevTime;\r
-                                       this._totalTime = prevTotalTime;\r
-                                       this._rawPrevTime = prevRawPrevTime;\r
-                                       this._cycle = prevCycle;\r
-                                       TweenLiteInternals.lazyTweens.push(this);\r
-                                       this._lazy = time;\r
-                                       return;\r
-                               }\r
-                               //_ease is initially set to defaultEase, so now that init() has run, _ease is set properly and we need to recalculate the ratio. Overall this is faster than using conditional logic earlier in the method to avoid having to set ratio twice because we only init() once but renderTime() gets called VERY frequently.\r
-                               if (this._time && !isComplete) {\r
-                                       this.ratio = this._ease.getRatio(this._time / duration);\r
-                               } else if (isComplete && this._ease._calcEnd) {\r
-                                       this.ratio = this._ease.getRatio((this._time === 0) ? 0 : 1);\r
-                               }\r
-                       }\r
-                       if (this._lazy !== false) {\r
-                               this._lazy = false;\r
-                       }\r
-\r
-                       if (!this._active) if (!this._paused && this._time !== prevTime && time >= 0) {\r
-                               this._active = true; //so that if the user renders a tween (as opposed to the timeline rendering it), the timeline is forced to re-render and align it with the proper time/frame on the next rendering cycle. Maybe the tween already finished but the user manually re-renders it as halfway done.\r
-                       }\r
-                       if (prevTotalTime === 0) {\r
-                               if (this._initted === 2 && time > 0) {\r
-                                       //this.invalidate();\r
-                                       this._init(); //will just apply overwriting since _initted of (2) means it was a from() tween that had immediateRender:true\r
-                               }\r
-                               if (this._startAt) {\r
-                                       if (time >= 0) {\r
-                                               this._startAt.render(time, suppressEvents, force);\r
-                                       } else if (!callback) {\r
-                                               callback = "_dummyGS"; //if no callback is defined, use a dummy value just so that the condition at the end evaluates as true because _startAt should render AFTER the normal render loop when the time is negative. We could handle this in a more intuitive way, of course, but the render loop is the MOST important thing to optimize, so this technique allows us to avoid adding extra conditional logic in a high-frequency area.\r
-                                       }\r
-                               }\r
-                               if (this.vars.onStart) if (this._totalTime !== 0 || duration === 0) if (!suppressEvents) {\r
-                                       this.vars.onStart.apply(this.vars.onStartScope || this, this.vars.onStartParams || _blankArray);\r
-                               }\r
-                       }\r
-                       \r
-                       pt = this._firstPT;\r
-                       while (pt) {\r
-                               if (pt.f) {\r
-                                       pt.t[pt.p](pt.c * this.ratio + pt.s);\r
-                               } else {\r
-                                       pt.t[pt.p] = pt.c * this.ratio + pt.s;\r
-                               }\r
-                               pt = pt._next;\r
-                       }\r
-                       \r
-                       if (this._onUpdate) {\r
-                               if (time < 0) if (this._startAt && this._startTime) { //if the tween is positioned at the VERY beginning (_startTime 0) of its parent timeline, it's illegal for the playhead to go back further, so we should not render the recorded startAt values.\r
-                                       this._startAt.render(time, suppressEvents, force); //note: for performance reasons, we tuck this conditional logic inside less traveled areas (most tweens don't have an onUpdate). We'd just have it at the end before the onComplete, but the values should be updated before any onUpdate is called, so we ALSO put it here and then if it's not called, we do so later near the onComplete.\r
-                               }\r
-                               if (!suppressEvents) if (this._totalTime !== prevTotalTime || isComplete) {\r
-                                       this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || _blankArray);\r
-                               }\r
-                       }\r
-                       if (this._cycle !== prevCycle) if (!suppressEvents) if (!this._gc) if (this.vars.onRepeat) {\r
-                               this.vars.onRepeat.apply(this.vars.onRepeatScope || this, this.vars.onRepeatParams || _blankArray);\r
-                       }\r
-                       if (callback) if (!this._gc) { //check gc because there's a chance that kill() could be called in an onUpdate\r
-                               if (time < 0 && this._startAt && !this._onUpdate && this._startTime) { //if the tween is positioned at the VERY beginning (_startTime 0) of its parent timeline, it's illegal for the playhead to go back further, so we should not render the recorded startAt values.\r
-                                       this._startAt.render(time, suppressEvents, force);\r
-                               }\r
-                               if (isComplete) {\r
-                                       if (this._timeline.autoRemoveChildren) {\r
-                                               this._enabled(false, false);\r
-                                       }\r
-                                       this._active = false;\r
-                               }\r
-                               if (!suppressEvents && this.vars[callback]) {\r
-                                       this.vars[callback].apply(this.vars[callback + "Scope"] || this, this.vars[callback + "Params"] || _blankArray);\r
-                               }\r
-                               if (duration === 0 && this._rawPrevTime === _tinyNum && rawPrevTime !== _tinyNum) { //the onComplete or onReverseComplete could trigger movement of the playhead and for zero-duration tweens (which must discern direction) that land directly back on their start time, we don't want to fire again on the next render. Think of several addPause()'s in a timeline that forces the playhead to a certain spot, but what if it's already paused and another tween is tweening the "time" of the timeline? Each time it moves [forward] past that spot, it would move back, and since suppressEvents is true, it'd reset _rawPrevTime to _tinyNum so that when it begins again, the callback would fire (so ultimately it could bounce back and forth during that tween). Again, this is a very uncommon scenario, but possible nonetheless.\r
-                                       this._rawPrevTime = 0;\r
-                               }\r
-                       }\r
-               };\r
-               \r
-//---- STATIC FUNCTIONS -----------------------------------------------------------------------------------------------------------\r
-               \r
-               TweenMax.to = function(target, duration, vars) {\r
-                       return new TweenMax(target, duration, vars);\r
-               };\r
-               \r
-               TweenMax.from = function(target, duration, vars) {\r
-                       vars.runBackwards = true;\r
-                       vars.immediateRender = (vars.immediateRender != false);\r
-                       return new TweenMax(target, duration, vars);\r
-               };\r
-               \r
-               TweenMax.fromTo = function(target, duration, fromVars, toVars) {\r
-                       toVars.startAt = fromVars;\r
-                       toVars.immediateRender = (toVars.immediateRender != false && fromVars.immediateRender != false);\r
-                       return new TweenMax(target, duration, toVars);\r
-               };\r
-               \r
-               TweenMax.staggerTo = TweenMax.allTo = function(targets, duration, vars, stagger, onCompleteAll, onCompleteAllParams, onCompleteAllScope) {\r
-                       stagger = stagger || 0;\r
-                       var delay = vars.delay || 0,\r
-                               a = [],\r
-                               finalComplete = function() {\r
-                                       if (vars.onComplete) {\r
-                                               vars.onComplete.apply(vars.onCompleteScope || this, arguments);\r
-                                       }\r
-                                       onCompleteAll.apply(onCompleteAllScope || this, onCompleteAllParams || _blankArray);\r
-                               },\r
-                               l, copy, i, p;\r
-                       if (!_isArray(targets)) {\r
-                               if (typeof(targets) === "string") {\r
-                                       targets = TweenLite.selector(targets) || targets;\r
-                               }\r
-                               if (_isSelector(targets)) {\r
-                                       targets = _slice.call(targets, 0);\r
-                               }\r
-                       }\r
-                       l = targets.length;\r
-                       for (i = 0; i < l; i++) {\r
-                               copy = {};\r
-                               for (p in vars) {\r
-                                       copy[p] = vars[p];\r
-                               }\r
-                               copy.delay = delay;\r
-                               if (i === l - 1 && onCompleteAll) {\r
-                                       copy.onComplete = finalComplete;\r
-                               }\r
-                               a[i] = new TweenMax(targets[i], duration, copy);\r
-                               delay += stagger;\r
-                       }\r
-                       return a;\r
-               };\r
-               \r
-               TweenMax.staggerFrom = TweenMax.allFrom = function(targets, duration, vars, stagger, onCompleteAll, onCompleteAllParams, onCompleteAllScope) {\r
-                       vars.runBackwards = true;\r
-                       vars.immediateRender = (vars.immediateRender != false);\r
-                       return TweenMax.staggerTo(targets, duration, vars, stagger, onCompleteAll, onCompleteAllParams, onCompleteAllScope);\r
-               };\r
-               \r
-               TweenMax.staggerFromTo = TweenMax.allFromTo = function(targets, duration, fromVars, toVars, stagger, onCompleteAll, onCompleteAllParams, onCompleteAllScope) {\r
-                       toVars.startAt = fromVars;\r
-                       toVars.immediateRender = (toVars.immediateRender != false && fromVars.immediateRender != false);\r
-                       return TweenMax.staggerTo(targets, duration, toVars, stagger, onCompleteAll, onCompleteAllParams, onCompleteAllScope);\r
-               };\r
-                               \r
-               TweenMax.delayedCall = function(delay, callback, params, scope, useFrames) {\r
-                       return new TweenMax(callback, 0, {delay:delay, onComplete:callback, onCompleteParams:params, onCompleteScope:scope, onReverseComplete:callback, onReverseCompleteParams:params, onReverseCompleteScope:scope, immediateRender:false, useFrames:useFrames, overwrite:0});\r
-               };\r
-               \r
-               TweenMax.set = function(target, vars) {\r
-                       return new TweenMax(target, 0, vars);\r
-               };\r
-               \r
-               TweenMax.isTweening = function(target) {\r
-                       return (TweenLite.getTweensOf(target, true).length > 0);\r
-               };\r
-               \r
-               var _getChildrenOf = function(timeline, includeTimelines) {\r
-                               var a = [],\r
-                                       cnt = 0,\r
-                                       tween = timeline._first;\r
-                               while (tween) {\r
-                                       if (tween instanceof TweenLite) {\r
-                                               a[cnt++] = tween;\r
-                                       } else {\r
-                                               if (includeTimelines) {\r
-                                                       a[cnt++] = tween;\r
-                                               }\r
-                                               a = a.concat(_getChildrenOf(tween, includeTimelines));\r
-                                               cnt = a.length;\r
-                                       }\r
-                                       tween = tween._next;\r
-                               }\r
-                               return a;\r
-                       }, \r
-                       getAllTweens = TweenMax.getAllTweens = function(includeTimelines) {\r
-                               return _getChildrenOf(Animation._rootTimeline, includeTimelines).concat( _getChildrenOf(Animation._rootFramesTimeline, includeTimelines) );\r
-                       };\r
-               \r
-               TweenMax.killAll = function(complete, tweens, delayedCalls, timelines) {\r
-                       if (tweens == null) {\r
-                               tweens = true;\r
-                       }\r
-                       if (delayedCalls == null) {\r
-                               delayedCalls = true;\r
-                       }\r
-                       var a = getAllTweens((timelines != false)),\r
-                               l = a.length,\r
-                               allTrue = (tweens && delayedCalls && timelines),\r
-                               isDC, tween, i;\r
-                       for (i = 0; i < l; i++) {\r
-                               tween = a[i];\r
-                               if (allTrue || (tween instanceof SimpleTimeline) || ((isDC = (tween.target === tween.vars.onComplete)) && delayedCalls) || (tweens && !isDC)) {\r
-                                       if (complete) {\r
-                                               tween.totalTime(tween._reversed ? 0 : tween.totalDuration());\r
-                                       } else {\r
-                                               tween._enabled(false, false);\r
-                                       }\r
-                               }\r
-                       }\r
-               };\r
-               \r
-               TweenMax.killChildTweensOf = function(parent, complete) {\r
-                       if (parent == null) {\r
-                               return;\r
-                       }\r
-                       var tl = TweenLiteInternals.tweenLookup,\r
-                               a, curParent, p, i, l;\r
-                       if (typeof(parent) === "string") {\r
-                               parent = TweenLite.selector(parent) || parent;\r
-                       }\r
-                       if (_isSelector(parent)) {\r
-                               parent = _slice.call(parent, 0);\r
-                       }\r
-                       if (_isArray(parent)) {\r
-                               i = parent.length;\r
-                               while (--i > -1) {\r
-                                       TweenMax.killChildTweensOf(parent[i], complete);\r
-                               }\r
-                               return;\r
-                       }\r
-                       a = [];\r
-                       for (p in tl) {\r
-                               curParent = tl[p].target.parentNode;\r
-                               while (curParent) {\r
-                                       if (curParent === parent) {\r
-                                               a = a.concat(tl[p].tweens);\r
-                                       }\r
-                                       curParent = curParent.parentNode;\r
-                               }\r
-                       }\r
-                       l = a.length;\r
-                       for (i = 0; i < l; i++) {\r
-                               if (complete) {\r
-                                       a[i].totalTime(a[i].totalDuration());\r
-                               }\r
-                               a[i]._enabled(false, false);\r
-                       }\r
-               };\r
-\r
-               var _changePause = function(pause, tweens, delayedCalls, timelines) {\r
-                       tweens = (tweens !== false);\r
-                       delayedCalls = (delayedCalls !== false);\r
-                       timelines = (timelines !== false);\r
-                       var a = getAllTweens(timelines),\r
-                               allTrue = (tweens && delayedCalls && timelines),\r
-                               i = a.length,\r
-                               isDC, tween;\r
-                       while (--i > -1) {\r
-                               tween = a[i];\r
-                               if (allTrue || (tween instanceof SimpleTimeline) || ((isDC = (tween.target === tween.vars.onComplete)) && delayedCalls) || (tweens && !isDC)) {\r
-                                       tween.paused(pause);\r
-                               }\r
-                       }\r
-               };\r
-               \r
-               TweenMax.pauseAll = function(tweens, delayedCalls, timelines) {\r
-                       _changePause(true, tweens, delayedCalls, timelines);\r
-               };\r
-               \r
-               TweenMax.resumeAll = function(tweens, delayedCalls, timelines) {\r
-                       _changePause(false, tweens, delayedCalls, timelines);\r
-               };\r
-\r
-               TweenMax.globalTimeScale = function(value) {\r
-                       var tl = Animation._rootTimeline,\r
-                               t = TweenLite.ticker.time;\r
-                       if (!arguments.length) {\r
-                               return tl._timeScale;\r
-                       }\r
-                       value = value || _tinyNum; //can't allow zero because it'll throw the math off\r
-                       tl._startTime = t - ((t - tl._startTime) * tl._timeScale / value);\r
-                       tl = Animation._rootFramesTimeline;\r
-                       t = TweenLite.ticker.frame;\r
-                       tl._startTime = t - ((t - tl._startTime) * tl._timeScale / value);\r
-                       tl._timeScale = Animation._rootTimeline._timeScale = value;\r
-                       return value;\r
-               };\r
-               \r
-       \r
-//---- GETTERS / SETTERS ----------------------------------------------------------------------------------------------------------\r
-               \r
-               p.progress = function(value) {\r
-                       return (!arguments.length) ? this._time / this.duration() : this.totalTime( this.duration() * ((this._yoyo && (this._cycle & 1) !== 0) ? 1 - value : value) + (this._cycle * (this._duration + this._repeatDelay)), false);\r
-               };\r
-               \r
-               p.totalProgress = function(value) {\r
-                       return (!arguments.length) ? this._totalTime / this.totalDuration() : this.totalTime( this.totalDuration() * value, false);\r
-               };\r
-               \r
-               p.time = function(value, suppressEvents) {\r
-                       if (!arguments.length) {\r
-                               return this._time;\r
-                       }\r
-                       if (this._dirty) {\r
-                               this.totalDuration();\r
-                       }\r
-                       if (value > this._duration) {\r
-                               value = this._duration;\r
-                       }\r
-                       if (this._yoyo && (this._cycle & 1) !== 0) {\r
-                               value = (this._duration - value) + (this._cycle * (this._duration + this._repeatDelay));\r
-                       } else if (this._repeat !== 0) {\r
-                               value += this._cycle * (this._duration + this._repeatDelay);\r
-                       }\r
-                       return this.totalTime(value, suppressEvents);\r
-               };\r
-\r
-               p.duration = function(value) {\r
-                       if (!arguments.length) {\r
-                               return this._duration; //don't set _dirty = false because there could be repeats that haven't been factored into the _totalDuration yet. Otherwise, if you create a repeated TweenMax and then immediately check its duration(), it would cache the value and the totalDuration would not be correct, thus repeats wouldn't take effect.\r
-                       }\r
-                       return Animation.prototype.duration.call(this, value);\r
-               };\r
-\r
-               p.totalDuration = function(value) {\r
-                       if (!arguments.length) {\r
-                               if (this._dirty) {\r
-                                       //instead of Infinity, we use 999999999999 so that we can accommodate reverses\r
-                                       this._totalDuration = (this._repeat === -1) ? 999999999999 : this._duration * (this._repeat + 1) + (this._repeatDelay * this._repeat);\r
-                                       this._dirty = false;\r
-                               }\r
-                               return this._totalDuration;\r
-                       }\r
-                       return (this._repeat === -1) ? this : this.duration( (value - (this._repeat * this._repeatDelay)) / (this._repeat + 1) );\r
-               };\r
-               \r
-               p.repeat = function(value) {\r
-                       if (!arguments.length) {\r
-                               return this._repeat;\r
-                       }\r
-                       this._repeat = value;\r
-                       return this._uncache(true);\r
-               };\r
-               \r
-               p.repeatDelay = function(value) {\r
-                       if (!arguments.length) {\r
-                               return this._repeatDelay;\r
-                       }\r
-                       this._repeatDelay = value;\r
-                       return this._uncache(true);\r
-               };\r
-               \r
-               p.yoyo = function(value) {\r
-                       if (!arguments.length) {\r
-                               return this._yoyo;\r
-                       }\r
-                       this._yoyo = value;\r
-                       return this;\r
-               };\r
-               \r
-               \r
-               return TweenMax;\r
-               \r
-       }, true);\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*\r
- * ----------------------------------------------------------------\r
- * TimelineLite\r
- * ----------------------------------------------------------------\r
- */\r
-       window._gsDefine("TimelineLite", ["core.Animation","core.SimpleTimeline","TweenLite"], function(Animation, SimpleTimeline, TweenLite) {\r
-\r
-               var TimelineLite = function(vars) {\r
-                               SimpleTimeline.call(this, vars);\r
-                               this._labels = {};\r
-                               this.autoRemoveChildren = (this.vars.autoRemoveChildren === true);\r
-                               this.smoothChildTiming = (this.vars.smoothChildTiming === true);\r
-                               this._sortChildren = true;\r
-                               this._onUpdate = this.vars.onUpdate;\r
-                               var v = this.vars,\r
-                                       val, p;\r
-                               for (p in v) {\r
-                                       val = v[p];\r
-                                       if (_isArray(val)) if (val.join("").indexOf("{self}") !== -1) {\r
-                                               v[p] = this._swapSelfInParams(val);\r
-                                       }\r
-                               }\r
-                               if (_isArray(v.tweens)) {\r
-                                       this.add(v.tweens, 0, v.align, v.stagger);\r
-                               }\r
-                       },\r
-                       _tinyNum = 0.0000000001,\r
-                       _isSelector = TweenLite._internals.isSelector,\r
-                       _isArray = TweenLite._internals.isArray,\r
-                       _blankArray = [],\r
-                       _globals = window._gsDefine.globals,\r
-                       _copy = function(vars) {\r
-                               var copy = {}, p;\r
-                               for (p in vars) {\r
-                                       copy[p] = vars[p];\r
-                               }\r
-                               return copy;\r
-                       },\r
-                       _pauseCallback = function(tween, callback, params, scope) {\r
-                               tween._timeline.pause(tween._startTime);\r
-                               if (callback) {\r
-                                       callback.apply(scope || tween._timeline, params || _blankArray);\r
-                               }\r
-                       },\r
-                       _slice = _blankArray.slice,\r
-                       p = TimelineLite.prototype = new SimpleTimeline();\r
-\r
-               TimelineLite.version = "1.12.1";\r
-               p.constructor = TimelineLite;\r
-               p.kill()._gc = false;\r
-\r
-               p.to = function(target, duration, vars, position) {\r
-                       var Engine = (vars.repeat && _globals.TweenMax) || TweenLite;\r
-                       return duration ? this.add( new Engine(target, duration, vars), position) : this.set(target, vars, position);\r
-               };\r
-\r
-               p.from = function(target, duration, vars, position) {\r
-                       return this.add( ((vars.repeat && _globals.TweenMax) || TweenLite).from(target, duration, vars), position);\r
-               };\r
-\r
-               p.fromTo = function(target, duration, fromVars, toVars, position) {\r
-                       var Engine = (toVars.repeat && _globals.TweenMax) || TweenLite;\r
-                       return duration ? this.add( Engine.fromTo(target, duration, fromVars, toVars), position) : this.set(target, toVars, position);\r
-               };\r
-\r
-               p.staggerTo = function(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams, onCompleteAllScope) {\r
-                       var tl = new TimelineLite({onComplete:onCompleteAll, onCompleteParams:onCompleteAllParams, onCompleteScope:onCompleteAllScope, smoothChildTiming:this.smoothChildTiming}),\r
-                               i;\r
-                       if (typeof(targets) === "string") {\r
-                               targets = TweenLite.selector(targets) || targets;\r
-                       }\r
-                       if (_isSelector(targets)) { //senses if the targets object is a selector. If it is, we should translate it into an array.\r
-                               targets = _slice.call(targets, 0);\r
-                       }\r
-                       stagger = stagger || 0;\r
-                       for (i = 0; i < targets.length; i++) {\r
-                               if (vars.startAt) {\r
-                                       vars.startAt = _copy(vars.startAt);\r
-                               }\r
-                               tl.to(targets[i], duration, _copy(vars), i * stagger);\r
-                       }\r
-                       return this.add(tl, position);\r
-               };\r
-\r
-               p.staggerFrom = function(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams, onCompleteAllScope) {\r
-                       vars.immediateRender = (vars.immediateRender != false);\r
-                       vars.runBackwards = true;\r
-                       return this.staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams, onCompleteAllScope);\r
-               };\r
-\r
-               p.staggerFromTo = function(targets, duration, fromVars, toVars, stagger, position, onCompleteAll, onCompleteAllParams, onCompleteAllScope) {\r
-                       toVars.startAt = fromVars;\r
-                       toVars.immediateRender = (toVars.immediateRender != false && fromVars.immediateRender != false);\r
-                       return this.staggerTo(targets, duration, toVars, stagger, position, onCompleteAll, onCompleteAllParams, onCompleteAllScope);\r
-               };\r
-\r
-               p.call = function(callback, params, scope, position) {\r
-                       return this.add( TweenLite.delayedCall(0, callback, params, scope), position);\r
-               };\r
-\r
-               p.set = function(target, vars, position) {\r
-                       position = this._parseTimeOrLabel(position, 0, true);\r
-                       if (vars.immediateRender == null) {\r
-                               vars.immediateRender = (position === this._time && !this._paused);\r
-                       }\r
-                       return this.add( new TweenLite(target, 0, vars), position);\r
-               };\r
-\r
-               TimelineLite.exportRoot = function(vars, ignoreDelayedCalls) {\r
-                       vars = vars || {};\r
-                       if (vars.smoothChildTiming == null) {\r
-                               vars.smoothChildTiming = true;\r
-                       }\r
-                       var tl = new TimelineLite(vars),\r
-                               root = tl._timeline,\r
-                               tween, next;\r
-                       if (ignoreDelayedCalls == null) {\r
-                               ignoreDelayedCalls = true;\r
-                       }\r
-                       root._remove(tl, true);\r
-                       tl._startTime = 0;\r
-                       tl._rawPrevTime = tl._time = tl._totalTime = root._time;\r
-                       tween = root._first;\r
-                       while (tween) {\r
-                               next = tween._next;\r
-                               if (!ignoreDelayedCalls || !(tween instanceof TweenLite && tween.target === tween.vars.onComplete)) {\r
-                                       tl.add(tween, tween._startTime - tween._delay);\r
-                               }\r
-                               tween = next;\r
-                       }\r
-                       root.add(tl, 0);\r
-                       return tl;\r
-               };\r
-\r
-               p.add = function(value, position, align, stagger) {\r
-                       var curTime, l, i, child, tl, beforeRawTime;\r
-                       if (typeof(position) !== "number") {\r
-                               position = this._parseTimeOrLabel(position, 0, true, value);\r
-                       }\r
-                       if (!(value instanceof Animation)) {\r
-                               if ((value instanceof Array) || (value && value.push && _isArray(value))) {\r
-                                       align = align || "normal";\r
-                                       stagger = stagger || 0;\r
-                                       curTime = position;\r
-                                       l = value.length;\r
-                                       for (i = 0; i < l; i++) {\r
-                                               if (_isArray(child = value[i])) {\r
-                                                       child = new TimelineLite({tweens:child});\r
-                                               }\r
-                                               this.add(child, curTime);\r
-                                               if (typeof(child) !== "string" && typeof(child) !== "function") {\r
-                                                       if (align === "sequence") {\r
-                                                               curTime = child._startTime + (child.totalDuration() / child._timeScale);\r
-                                                       } else if (align === "start") {\r
-                                                               child._startTime -= child.delay();\r
-                                                       }\r
-                                               }\r
-                                               curTime += stagger;\r
-                                       }\r
-                                       return this._uncache(true);\r
-                               } else if (typeof(value) === "string") {\r
-                                       return this.addLabel(value, position);\r
-                               } else if (typeof(value) === "function") {\r
-                                       value = TweenLite.delayedCall(0, value);\r
-                               } else {\r
-                                       throw("Cannot add " + value + " into the timeline; it is not a tween, timeline, function, or string.");\r
-                               }\r
-                       }\r
-\r
-                       SimpleTimeline.prototype.add.call(this, value, position);\r
-\r
-                       //if the timeline has already ended but the inserted tween/timeline extends the duration, we should enable this timeline again so that it renders properly. We should also align the playhead with the parent timeline's when appropriate.\r
-                       if (this._gc || this._time === this._duration) if (!this._paused) if (this._duration < this.duration()) {\r
-                               //in case any of the ancestors had completed but should now be enabled...\r
-                               tl = this;\r
-                               beforeRawTime = (tl.rawTime() > value._startTime); //if the tween is placed on the timeline so that it starts BEFORE the current rawTime, we should align the playhead (move the timeline). This is because sometimes users will create a timeline, let it finish, and much later append a tween and expect it to run instead of jumping to its end state. While technically one could argue that it should jump to its end state, that's not what users intuitively expect.\r
-                               while (tl._timeline) {\r
-                                       if (beforeRawTime && tl._timeline.smoothChildTiming) {\r
-                                               tl.totalTime(tl._totalTime, true); //moves the timeline (shifts its startTime) if necessary, and also enables it.\r
-                                       } else if (tl._gc) {\r
-                                               tl._enabled(true, false);\r
-                                       }\r
-                                       tl = tl._timeline;\r
-                               }\r
-                       }\r
-\r
-                       return this;\r
-               };\r
-\r
-               p.remove = function(value) {\r
-                       if (value instanceof Animation) {\r
-                               return this._remove(value, false);\r
-                       } else if (value instanceof Array || (value && value.push && _isArray(value))) {\r
-                               var i = value.length;\r
-                               while (--i > -1) {\r
-                                       this.remove(value[i]);\r
-                               }\r
-                               return this;\r
-                       } else if (typeof(value) === "string") {\r
-                               return this.removeLabel(value);\r
-                       }\r
-                       return this.kill(null, value);\r
-               };\r
-\r
-               p._remove = function(tween, skipDisable) {\r
-                       SimpleTimeline.prototype._remove.call(this, tween, skipDisable);\r
-                       var last = this._last;\r
-                       if (!last) {\r
-                               this._time = this._totalTime = this._duration = this._totalDuration = 0;\r
-                       } else if (this._time > last._startTime + last._totalDuration / last._timeScale) {\r
-                               this._time = this.duration();\r
-                               this._totalTime = this._totalDuration;\r
-                       }\r
-                       return this;\r
-               };\r
-\r
-               p.append = function(value, offsetOrLabel) {\r
-                       return this.add(value, this._parseTimeOrLabel(null, offsetOrLabel, true, value));\r
-               };\r
-\r
-               p.insert = p.insertMultiple = function(value, position, align, stagger) {\r
-                       return this.add(value, position || 0, align, stagger);\r
-               };\r
-\r
-               p.appendMultiple = function(tweens, offsetOrLabel, align, stagger) {\r
-                       return this.add(tweens, this._parseTimeOrLabel(null, offsetOrLabel, true, tweens), align, stagger);\r
-               };\r
-\r
-               p.addLabel = function(label, position) {\r
-                       this._labels[label] = this._parseTimeOrLabel(position);\r
-                       return this;\r
-               };\r
-\r
-               p.addPause = function(position, callback, params, scope) {\r
-                       return this.call(_pauseCallback, ["{self}", callback, params, scope], this, position);\r
-               };\r
-\r
-               p.removeLabel = function(label) {\r
-                       delete this._labels[label];\r
-                       return this;\r
-               };\r
-\r
-               p.getLabelTime = function(label) {\r
-                       return (this._labels[label] != null) ? this._labels[label] : -1;\r
-               };\r
-\r
-               p._parseTimeOrLabel = function(timeOrLabel, offsetOrLabel, appendIfAbsent, ignore) {\r
-                       var i;\r
-                       //if we're about to add a tween/timeline (or an array of them) that's already a child of this timeline, we should remove it first so that it doesn't contaminate the duration().\r
-                       if (ignore instanceof Animation && ignore.timeline === this) {\r
-                               this.remove(ignore);\r
-                       } else if (ignore && ((ignore instanceof Array) || (ignore.push && _isArray(ignore)))) {\r
-                               i = ignore.length;\r
-                               while (--i > -1) {\r
-                                       if (ignore[i] instanceof Animation && ignore[i].timeline === this) {\r
-                                               this.remove(ignore[i]);\r
-                                       }\r
-                               }\r
-                       }\r
-                       if (typeof(offsetOrLabel) === "string") {\r
-                               return this._parseTimeOrLabel(offsetOrLabel, (appendIfAbsent && typeof(timeOrLabel) === "number" && this._labels[offsetOrLabel] == null) ? timeOrLabel - this.duration() : 0, appendIfAbsent);\r
-                       }\r
-                       offsetOrLabel = offsetOrLabel || 0;\r
-                       if (typeof(timeOrLabel) === "string" && (isNaN(timeOrLabel) || this._labels[timeOrLabel] != null)) { //if the string is a number like "1", check to see if there's a label with that name, otherwise interpret it as a number (absolute value).\r
-                               i = timeOrLabel.indexOf("=");\r
-                               if (i === -1) {\r
-                                       if (this._labels[timeOrLabel] == null) {\r
-                                               return appendIfAbsent ? (this._labels[timeOrLabel] = this.duration() + offsetOrLabel) : offsetOrLabel;\r
-                                       }\r
-                                       return this._labels[timeOrLabel] + offsetOrLabel;\r
-                               }\r
-                               offsetOrLabel = parseInt(timeOrLabel.charAt(i-1) + "1", 10) * Number(timeOrLabel.substr(i+1));\r
-                               timeOrLabel = (i > 1) ? this._parseTimeOrLabel(timeOrLabel.substr(0, i-1), 0, appendIfAbsent) : this.duration();\r
-                       } else if (timeOrLabel == null) {\r
-                               timeOrLabel = this.duration();\r
-                       }\r
-                       return Number(timeOrLabel) + offsetOrLabel;\r
-               };\r
-\r
-               p.seek = function(position, suppressEvents) {\r
-                       return this.totalTime((typeof(position) === "number") ? position : this._parseTimeOrLabel(position), (suppressEvents !== false));\r
-               };\r
-\r
-               p.stop = function() {\r
-                       return this.paused(true);\r
-               };\r
-\r
-               p.gotoAndPlay = function(position, suppressEvents) {\r
-                       return this.play(position, suppressEvents);\r
-               };\r
-\r
-               p.gotoAndStop = function(position, suppressEvents) {\r
-                       return this.pause(position, suppressEvents);\r
-               };\r
-\r
-               p.render = function(time, suppressEvents, force) {\r
-                       if (this._gc) {\r
-                               this._enabled(true, false);\r
-                       }\r
-                       var totalDur = (!this._dirty) ? this._totalDuration : this.totalDuration(),\r
-                               prevTime = this._time,\r
-                               prevStart = this._startTime,\r
-                               prevTimeScale = this._timeScale,\r
-                               prevPaused = this._paused,\r
-                               tween, isComplete, next, callback, internalForce;\r
-                       if (time >= totalDur) {\r
-                               this._totalTime = this._time = totalDur;\r
-                               if (!this._reversed) if (!this._hasPausedChild()) {\r
-                                       isComplete = true;\r
-                                       callback = "onComplete";\r
-                                       if (this._duration === 0) if (time === 0 || this._rawPrevTime < 0 || this._rawPrevTime === _tinyNum) if (this._rawPrevTime !== time && this._first) {\r
-                                               internalForce = true;\r
-                                               if (this._rawPrevTime > _tinyNum) {\r
-                                                       callback = "onReverseComplete";\r
-                                               }\r
-                                       }\r
-                               }\r
-                               this._rawPrevTime = (this._duration || !suppressEvents || time || this._rawPrevTime === time) ? time : _tinyNum; //when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration timeline or tween, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect. We set the _rawPrevTime to be a precise tiny number to indicate this scenario rather than using another property/variable which would increase memory usage. This technique is less readable, but more efficient.\r
-                               time = totalDur + 0.0001; //to avoid occasional floating point rounding errors - sometimes child tweens/timelines were not being fully completed (their progress might be 0.999999999999998 instead of 1 because when _time - tween._startTime is performed, floating point errors would return a value that was SLIGHTLY off). Try (999999999999.7 - 999999999999) * 1 = 0.699951171875 instead of 0.7.\r
-\r
-                       } else if (time < 0.0000001) { //to work around occasional floating point math artifacts, round super small values to 0.\r
-                               this._totalTime = this._time = 0;\r
-                               if (prevTime !== 0 || (this._duration === 0 && this._rawPrevTime !== _tinyNum && (this._rawPrevTime > 0 || (time < 0 && this._rawPrevTime >= 0)))) {\r
-                                       callback = "onReverseComplete";\r
-                                       isComplete = this._reversed;\r
-                               }\r
-                               if (time < 0) {\r
-                                       this._active = false;\r
-                                       if (this._duration === 0) if (this._rawPrevTime >= 0 && this._first) { //zero-duration timelines are tricky because we must discern the momentum/direction of time in order to determine whether the starting values should be rendered or the ending values. If the "playhead" of its timeline goes past the zero-duration tween in the forward direction or lands directly on it, the end values should be rendered, but if the timeline's "playhead" moves past it in the backward direction (from a postitive time to a negative time), the starting values must be rendered.\r
-                                               internalForce = true;\r
-                                       }\r
-                                       this._rawPrevTime = time;\r
-                               } else {\r
-                                       this._rawPrevTime = (this._duration || !suppressEvents || time || this._rawPrevTime === time) ? time : _tinyNum; //when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration timeline or tween, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect. We set the _rawPrevTime to be a precise tiny number to indicate this scenario rather than using another property/variable which would increase memory usage. This technique is less readable, but more efficient.\r
-\r
-                                       time = 0; //to avoid occasional floating point rounding errors (could cause problems especially with zero-duration tweens at the very beginning of the timeline)\r
-                                       if (!this._initted) {\r
-                                               internalForce = true;\r
-                                       }\r
-                               }\r
-\r
-                       } else {\r
-                               this._totalTime = this._time = this._rawPrevTime = time;\r
-                       }\r
-                       if ((this._time === prevTime || !this._first) && !force && !internalForce) {\r
-                               return;\r
-                       } else if (!this._initted) {\r
-                               this._initted = true;\r
-                       }\r
-\r
-                       if (!this._active) if (!this._paused && this._time !== prevTime && time > 0) {\r
-                               this._active = true;  //so that if the user renders the timeline (as opposed to the parent timeline rendering it), it is forced to re-render and align it with the proper time/frame on the next rendering cycle. Maybe the timeline already finished but the user manually re-renders it as halfway done, for example.\r
-                       }\r
-\r
-                       if (prevTime === 0) if (this.vars.onStart) if (this._time !== 0) if (!suppressEvents) {\r
-                               this.vars.onStart.apply(this.vars.onStartScope || this, this.vars.onStartParams || _blankArray);\r
-                       }\r
-\r
-                       if (this._time >= prevTime) {\r
-                               tween = this._first;\r
-                               while (tween) {\r
-                                       next = tween._next; //record it here because the value could change after rendering...\r
-                                       if (this._paused && !prevPaused) { //in case a tween pauses the timeline when rendering\r
-                                               break;\r
-                                       } else if (tween._active || (tween._startTime <= this._time && !tween._paused && !tween._gc)) {\r
-                                               if (!tween._reversed) {\r
-                                                       tween.render((time - tween._startTime) * tween._timeScale, suppressEvents, force);\r
-                                               } else {\r
-                                                       tween.render(((!tween._dirty) ? tween._totalDuration : tween.totalDuration()) - ((time - tween._startTime) * tween._timeScale), suppressEvents, force);\r
-                                               }\r
-                                       }\r
-                                       tween = next;\r
-                               }\r
-                       } else {\r
-                               tween = this._last;\r
-                               while (tween) {\r
-                                       next = tween._prev; //record it here because the value could change after rendering...\r
-                                       if (this._paused && !prevPaused) { //in case a tween pauses the timeline when rendering\r
-                                               break;\r
-                                       } else if (tween._active || (tween._startTime <= prevTime && !tween._paused && !tween._gc)) {\r
-                                               if (!tween._reversed) {\r
-                                                       tween.render((time - tween._startTime) * tween._timeScale, suppressEvents, force);\r
-                                               } else {\r
-                                                       tween.render(((!tween._dirty) ? tween._totalDuration : tween.totalDuration()) - ((time - tween._startTime) * tween._timeScale), suppressEvents, force);\r
-                                               }\r
-                                       }\r
-                                       tween = next;\r
-                               }\r
-                       }\r
-\r
-                       if (this._onUpdate) if (!suppressEvents) {\r
-                               this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || _blankArray);\r
-                       }\r
-\r
-                       if (callback) if (!this._gc) if (prevStart === this._startTime || prevTimeScale !== this._timeScale) if (this._time === 0 || totalDur >= this.totalDuration()) { //if one of the tweens that was rendered altered this timeline's startTime (like if an onComplete reversed the timeline), it probably isn't complete. If it is, don't worry, because whatever call altered the startTime would complete if it was necessary at the new time. The only exception is the timeScale property. Also check _gc because there's a chance that kill() could be called in an onUpdate\r
-                               if (isComplete) {\r
-                                       if (this._timeline.autoRemoveChildren) {\r
-                                               this._enabled(false, false);\r
-                                       }\r
-                                       this._active = false;\r
-                               }\r
-                               if (!suppressEvents && this.vars[callback]) {\r
-                                       this.vars[callback].apply(this.vars[callback + "Scope"] || this, this.vars[callback + "Params"] || _blankArray);\r
-                               }\r
-                       }\r
-               };\r
-\r
-               p._hasPausedChild = function() {\r
-                       var tween = this._first;\r
-                       while (tween) {\r
-                               if (tween._paused || ((tween instanceof TimelineLite) && tween._hasPausedChild())) {\r
-                                       return true;\r
-                               }\r
-                               tween = tween._next;\r
-                       }\r
-                       return false;\r
-               };\r
-\r
-               p.getChildren = function(nested, tweens, timelines, ignoreBeforeTime) {\r
-                       ignoreBeforeTime = ignoreBeforeTime || -9999999999;\r
-                       var a = [],\r
-                               tween = this._first,\r
-                               cnt = 0;\r
-                       while (tween) {\r
-                               if (tween._startTime < ignoreBeforeTime) {\r
-                                       //do nothing\r
-                               } else if (tween instanceof TweenLite) {\r
-                                       if (tweens !== false) {\r
-                                               a[cnt++] = tween;\r
-                                       }\r
-                               } else {\r
-                                       if (timelines !== false) {\r
-                                               a[cnt++] = tween;\r
-                                       }\r
-                                       if (nested !== false) {\r
-                                               a = a.concat(tween.getChildren(true, tweens, timelines));\r
-                                               cnt = a.length;\r
-                                       }\r
-                               }\r
-                               tween = tween._next;\r
-                       }\r
-                       return a;\r
-               };\r
-\r
-               p.getTweensOf = function(target, nested) {\r
-                       var disabled = this._gc,\r
-                               a = [],\r
-                               cnt = 0,\r
-                               tweens, i;\r
-                       if (disabled) {\r
-                               this._enabled(true, true); //getTweensOf() filters out disabled tweens, and we have to mark them as _gc = true when the timeline completes in order to allow clean garbage collection, so temporarily re-enable the timeline here.\r
-                       }\r
-                       tweens = TweenLite.getTweensOf(target);\r
-                       i = tweens.length;\r
-                       while (--i > -1) {\r
-                               if (tweens[i].timeline === this || (nested && this._contains(tweens[i]))) {\r
-                                       a[cnt++] = tweens[i];\r
-                               }\r
-                       }\r
-                       if (disabled) {\r
-                               this._enabled(false, true);\r
-                       }\r
-                       return a;\r
-               };\r
-\r
-               p._contains = function(tween) {\r
-                       var tl = tween.timeline;\r
-                       while (tl) {\r
-                               if (tl === this) {\r
-                                       return true;\r
-                               }\r
-                               tl = tl.timeline;\r
-                       }\r
-                       return false;\r
-               };\r
-\r
-               p.shiftChildren = function(amount, adjustLabels, ignoreBeforeTime) {\r
-                       ignoreBeforeTime = ignoreBeforeTime || 0;\r
-                       var tween = this._first,\r
-                               labels = this._labels,\r
-                               p;\r
-                       while (tween) {\r
-                               if (tween._startTime >= ignoreBeforeTime) {\r
-                                       tween._startTime += amount;\r
-                               }\r
-                               tween = tween._next;\r
-                       }\r
-                       if (adjustLabels) {\r
-                               for (p in labels) {\r
-                                       if (labels[p] >= ignoreBeforeTime) {\r
-                                               labels[p] += amount;\r
-                                       }\r
-                               }\r
-                       }\r
-                       return this._uncache(true);\r
-               };\r
-\r
-               p._kill = function(vars, target) {\r
-                       if (!vars && !target) {\r
-                               return this._enabled(false, false);\r
-                       }\r
-                       var tweens = (!target) ? this.getChildren(true, true, false) : this.getTweensOf(target),\r
-                               i = tweens.length,\r
-                               changed = false;\r
-                       while (--i > -1) {\r
-                               if (tweens[i]._kill(vars, target)) {\r
-                                       changed = true;\r
-                               }\r
-                       }\r
-                       return changed;\r
-               };\r
-\r
-               p.clear = function(labels) {\r
-                       var tweens = this.getChildren(false, true, true),\r
-                               i = tweens.length;\r
-                       this._time = this._totalTime = 0;\r
-                       while (--i > -1) {\r
-                               tweens[i]._enabled(false, false);\r
-                       }\r
-                       if (labels !== false) {\r
-                               this._labels = {};\r
-                       }\r
-                       return this._uncache(true);\r
-               };\r
-\r
-               p.invalidate = function() {\r
-                       var tween = this._first;\r
-                       while (tween) {\r
-                               tween.invalidate();\r
-                               tween = tween._next;\r
-                       }\r
-                       return this;\r
-               };\r
-\r
-               p._enabled = function(enabled, ignoreTimeline) {\r
-                       if (enabled === this._gc) {\r
-                               var tween = this._first;\r
-                               while (tween) {\r
-                                       tween._enabled(enabled, true);\r
-                                       tween = tween._next;\r
-                               }\r
-                       }\r
-                       return SimpleTimeline.prototype._enabled.call(this, enabled, ignoreTimeline);\r
-               };\r
-\r
-               p.duration = function(value) {\r
-                       if (!arguments.length) {\r
-                               if (this._dirty) {\r
-                                       this.totalDuration(); //just triggers recalculation\r
-                               }\r
-                               return this._duration;\r
-                       }\r
-                       if (this.duration() !== 0 && value !== 0) {\r
-                               this.timeScale(this._duration / value);\r
-                       }\r
-                       return this;\r
-               };\r
-\r
-               p.totalDuration = function(value) {\r
-                       if (!arguments.length) {\r
-                               if (this._dirty) {\r
-                                       var max = 0,\r
-                                               tween = this._last,\r
-                                               prevStart = 999999999999,\r
-                                               prev, end;\r
-                                       while (tween) {\r
-                                               prev = tween._prev; //record it here in case the tween changes position in the sequence...\r
-                                               if (tween._dirty) {\r
-                                                       tween.totalDuration(); //could change the tween._startTime, so make sure the tween's cache is clean before analyzing it.\r
-                                               }\r
-                                               if (tween._startTime > prevStart && this._sortChildren && !tween._paused) { //in case one of the tweens shifted out of order, it needs to be re-inserted into the correct position in the sequence\r
-                                                       this.add(tween, tween._startTime - tween._delay);\r
-                                               } else {\r
-                                                       prevStart = tween._startTime;\r
-                                               }\r
-                                               if (tween._startTime < 0 && !tween._paused) { //children aren't allowed to have negative startTimes unless smoothChildTiming is true, so adjust here if one is found.\r
-                                                       max -= tween._startTime;\r
-                                                       if (this._timeline.smoothChildTiming) {\r
-                                                               this._startTime += tween._startTime / this._timeScale;\r
-                                                       }\r
-                                                       this.shiftChildren(-tween._startTime, false, -9999999999);\r
-                                                       prevStart = 0;\r
-                                               }\r
-                                               end = tween._startTime + (tween._totalDuration / tween._timeScale);\r
-                                               if (end > max) {\r
-                                                       max = end;\r
-                                               }\r
-                                               tween = prev;\r
-                                       }\r
-                                       this._duration = this._totalDuration = max;\r
-                                       this._dirty = false;\r
-                               }\r
-                               return this._totalDuration;\r
-                       }\r
-                       if (this.totalDuration() !== 0) if (value !== 0) {\r
-                               this.timeScale(this._totalDuration / value);\r
-                       }\r
-                       return this;\r
-               };\r
-\r
-               p.usesFrames = function() {\r
-                       var tl = this._timeline;\r
-                       while (tl._timeline) {\r
-                               tl = tl._timeline;\r
-                       }\r
-                       return (tl === Animation._rootFramesTimeline);\r
-               };\r
-\r
-               p.rawTime = function() {\r
-                       return this._paused ? this._totalTime : (this._timeline.rawTime() - this._startTime) * this._timeScale;\r
-               };\r
-\r
-               return TimelineLite;\r
-\r
-       }, true);\r
-       \r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-       \r
-       \r
-       \r
-       \r
-       \r
-/*\r
- * ----------------------------------------------------------------\r
- * TimelineMax\r
- * ----------------------------------------------------------------\r
- */\r
-       window._gsDefine("TimelineMax", ["TimelineLite","TweenLite","easing.Ease"], function(TimelineLite, TweenLite, Ease) {\r
-\r
-               var TimelineMax = function(vars) {\r
-                               TimelineLite.call(this, vars);\r
-                               this._repeat = this.vars.repeat || 0;\r
-                               this._repeatDelay = this.vars.repeatDelay || 0;\r
-                               this._cycle = 0;\r
-                               this._yoyo = (this.vars.yoyo === true);\r
-                               this._dirty = true;\r
-                       },\r
-                       _tinyNum = 0.0000000001,\r
-                       _blankArray = [],\r
-                       _easeNone = new Ease(null, null, 1, 0),\r
-                       p = TimelineMax.prototype = new TimelineLite();\r
-\r
-               p.constructor = TimelineMax;\r
-               p.kill()._gc = false;\r
-               TimelineMax.version = "1.12.1";\r
-\r
-               p.invalidate = function() {\r
-                       this._yoyo = (this.vars.yoyo === true);\r
-                       this._repeat = this.vars.repeat || 0;\r
-                       this._repeatDelay = this.vars.repeatDelay || 0;\r
-                       this._uncache(true);\r
-                       return TimelineLite.prototype.invalidate.call(this);\r
-               };\r
-\r
-               p.addCallback = function(callback, position, params, scope) {\r
-                       return this.add( TweenLite.delayedCall(0, callback, params, scope), position);\r
-               };\r
-\r
-               p.removeCallback = function(callback, position) {\r
-                       if (callback) {\r
-                               if (position == null) {\r
-                                       this._kill(null, callback);\r
-                               } else {\r
-                                       var a = this.getTweensOf(callback, false),\r
-                                               i = a.length,\r
-                                               time = this._parseTimeOrLabel(position);\r
-                                       while (--i > -1) {\r
-                                               if (a[i]._startTime === time) {\r
-                                                       a[i]._enabled(false, false);\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
-                       return this;\r
-               };\r
-\r
-               p.tweenTo = function(position, vars) {\r
-                       vars = vars || {};\r
-                       var copy = {ease:_easeNone, overwrite:(vars.delay ? 2 : 1), useFrames:this.usesFrames(), immediateRender:false},//note: set overwrite to 1 (true/all) by default unless there's a delay so that we avoid a racing situation that could happen if, for example, an onmousemove creates the same tweenTo() over and over again.\r
-                               duration, p, t;\r
-                       for (p in vars) {\r
-                               copy[p] = vars[p];\r
-                       }\r
-                       copy.time = this._parseTimeOrLabel(position);\r
-                       duration = (Math.abs(Number(copy.time) - this._time) / this._timeScale) || 0.001;\r
-                       t = new TweenLite(this, duration, copy);\r
-                       copy.onStart = function() {\r
-                               t.target.paused(true);\r
-                               if (t.vars.time !== t.target.time() && duration === t.duration()) { //don't make the duration zero - if it's supposed to be zero, don't worry because it's already initting the tween and will complete immediately, effectively making the duration zero anyway. If we make duration zero, the tween won't run at all.\r
-                                       t.duration( Math.abs( t.vars.time - t.target.time()) / t.target._timeScale );\r
-                               }\r
-                               if (vars.onStart) { //in case the user had an onStart in the vars - we don't want to overwrite it.\r
-                                       vars.onStart.apply(vars.onStartScope || t, vars.onStartParams || _blankArray);\r
-                               }\r
-                       };\r
-                       return t;\r
-               };\r
-\r
-               p.tweenFromTo = function(fromPosition, toPosition, vars) {\r
-                       vars = vars || {};\r
-                       fromPosition = this._parseTimeOrLabel(fromPosition);\r
-                       vars.startAt = {onComplete:this.seek, onCompleteParams:[fromPosition], onCompleteScope:this};\r
-                       vars.immediateRender = (vars.immediateRender !== false);\r
-                       var t = this.tweenTo(toPosition, vars);\r
-                       return t.duration((Math.abs( t.vars.time - fromPosition) / this._timeScale) || 0.001);\r
-               };\r
-\r
-               p.render = function(time, suppressEvents, force) {\r
-                       if (this._gc) {\r
-                               this._enabled(true, false);\r
-                       }\r
-                       var totalDur = (!this._dirty) ? this._totalDuration : this.totalDuration(),\r
-                               dur = this._duration,\r
-                               prevTime = this._time,\r
-                               prevTotalTime = this._totalTime,\r
-                               prevStart = this._startTime,\r
-                               prevTimeScale = this._timeScale,\r
-                               prevRawPrevTime = this._rawPrevTime,\r
-                               prevPaused = this._paused,\r
-                               prevCycle = this._cycle,\r
-                               tween, isComplete, next, callback, internalForce, cycleDuration;\r
-                       if (time >= totalDur) {\r
-                               if (!this._locked) {\r
-                                       this._totalTime = totalDur;\r
-                                       this._cycle = this._repeat;\r
-                               }\r
-                               if (!this._reversed) if (!this._hasPausedChild()) {\r
-                                       isComplete = true;\r
-                                       callback = "onComplete";\r
-                                       if (this._duration === 0) if (time === 0 || prevRawPrevTime < 0 || prevRawPrevTime === _tinyNum) if (prevRawPrevTime !== time && this._first) {\r
-                                               internalForce = true;\r
-                                               if (prevRawPrevTime > _tinyNum) {\r
-                                                       callback = "onReverseComplete";\r
-                                               }\r
-                                       }\r
-                               }\r
-                               this._rawPrevTime = (this._duration || !suppressEvents || time || this._rawPrevTime === time) ? time : _tinyNum; //when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration timeline or tween, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect. We set the _rawPrevTime to be a precise tiny number to indicate this scenario rather than using another property/variable which would increase memory usage. This technique is less readable, but more efficient.\r
-                               if (this._yoyo && (this._cycle & 1) !== 0) {\r
-                                       this._time = time = 0;\r
-                               } else {\r
-                                       this._time = dur;\r
-                                       time = dur + 0.0001; //to avoid occasional floating point rounding errors - sometimes child tweens/timelines were not being fully completed (their progress might be 0.999999999999998 instead of 1 because when _time - tween._startTime is performed, floating point errors would return a value that was SLIGHTLY off). Try (999999999999.7 - 999999999999) * 1 = 0.699951171875 instead of 0.7. We cannot do less then 0.0001 because the same issue can occur when the duration is extremely large like 999999999999 in which case adding 0.00000001, for example, causes it to act like nothing was added.\r
-                               }\r
-\r
-                       } else if (time < 0.0000001) { //to work around occasional floating point math artifacts, round super small values to 0.\r
-                               if (!this._locked) {\r
-                                       this._totalTime = this._cycle = 0;\r
-                               }\r
-                               this._time = 0;\r
-                               if (prevTime !== 0 || (dur === 0 && prevRawPrevTime !== _tinyNum && (prevRawPrevTime > 0 || (time < 0 && prevRawPrevTime >= 0)) && !this._locked)) { //edge case for checking time < 0 && prevRawPrevTime >= 0: a zero-duration fromTo() tween inside a zero-duration timeline (yeah, very rare)\r
-                                       callback = "onReverseComplete";\r
-                                       isComplete = this._reversed;\r
-                               }\r
-                               if (time < 0) {\r
-                                       this._active = false;\r
-                                       if (dur === 0) if (prevRawPrevTime >= 0 && this._first) { //zero-duration timelines are tricky because we must discern the momentum/direction of time in order to determine whether the starting values should be rendered or the ending values. If the "playhead" of its timeline goes past the zero-duration tween in the forward direction or lands directly on it, the end values should be rendered, but if the timeline's "playhead" moves past it in the backward direction (from a postitive time to a negative time), the starting values must be rendered.\r
-                                               internalForce = true;\r
-                                       }\r
-                                       this._rawPrevTime = time;\r
-                               } else {\r
-                                       this._rawPrevTime = (dur || !suppressEvents || time || this._rawPrevTime === time) ? time : _tinyNum; //when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration timeline or tween, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect. We set the _rawPrevTime to be a precise tiny number to indicate this scenario rather than using another property/variable which would increase memory usage. This technique is less readable, but more efficient.\r
-                                       time = 0; //to avoid occasional floating point rounding errors (could cause problems especially with zero-duration tweens at the very beginning of the timeline)\r
-                                       if (!this._initted) {\r
-                                               internalForce = true;\r
-                                       }\r
-                               }\r
-\r
-                       } else {\r
-                               if (dur === 0 && prevRawPrevTime < 0) { //without this, zero-duration repeating timelines (like with a simple callback nested at the very beginning and a repeatDelay) wouldn't render the first time through.\r
-                                       internalForce = true;\r
-                               }\r
-                               this._time = this._rawPrevTime = time;\r
-                               if (!this._locked) {\r
-                                       this._totalTime = time;\r
-                                       if (this._repeat !== 0) {\r
-                                               cycleDuration = dur + this._repeatDelay;\r
-                                               this._cycle = (this._totalTime / cycleDuration) >> 0; //originally _totalTime % cycleDuration but floating point errors caused problems, so I normalized it. (4 % 0.8 should be 0 but it gets reported as 0.79999999!)\r
-                                               if (this._cycle !== 0) if (this._cycle === this._totalTime / cycleDuration) {\r
-                                                       this._cycle--; //otherwise when rendered exactly at the end time, it will act as though it is repeating (at the beginning)\r
-                                               }\r
-                                               this._time = this._totalTime - (this._cycle * cycleDuration);\r
-                                               if (this._yoyo) if ((this._cycle & 1) !== 0) {\r
-                                                       this._time = dur - this._time;\r
-                                               }\r
-                                               if (this._time > dur) {\r
-                                                       this._time = dur;\r
-                                                       time = dur + 0.0001; //to avoid occasional floating point rounding error\r
-                                               } else if (this._time < 0) {\r
-                                                       this._time = time = 0;\r
-                                               } else {\r
-                                                       time = this._time;\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
-\r
-                       if (this._cycle !== prevCycle) if (!this._locked) {\r
-                               /*\r
-                               make sure children at the end/beginning of the timeline are rendered properly. If, for example,\r
-                               a 3-second long timeline rendered at 2.9 seconds previously, and now renders at 3.2 seconds (which\r
-                               would get transated to 2.8 seconds if the timeline yoyos or 0.2 seconds if it just repeats), there\r
-                               could be a callback or a short tween that's at 2.95 or 3 seconds in which wouldn't render. So\r
-                               we need to push the timeline to the end (and/or beginning depending on its yoyo value). Also we must\r
-                               ensure that zero-duration tweens at the very beginning or end of the TimelineMax work.\r
-                               */\r
-                               var backwards = (this._yoyo && (prevCycle & 1) !== 0),\r
-                                       wrap = (backwards === (this._yoyo && (this._cycle & 1) !== 0)),\r
-                                       recTotalTime = this._totalTime,\r
-                                       recCycle = this._cycle,\r
-                                       recRawPrevTime = this._rawPrevTime,\r
-                                       recTime = this._time;\r
-\r
-                               this._totalTime = prevCycle * dur;\r
-                               if (this._cycle < prevCycle) {\r
-                                       backwards = !backwards;\r
-                               } else {\r
-                                       this._totalTime += dur;\r
-                               }\r
-                               this._time = prevTime; //temporarily revert _time so that render() renders the children in the correct order. Without this, tweens won't rewind correctly. We could arhictect things in a "cleaner" way by splitting out the rendering queue into a separate method but for performance reasons, we kept it all inside this method.\r
-\r
-                               this._rawPrevTime = (dur === 0) ? prevRawPrevTime - 0.0001 : prevRawPrevTime;\r
-                               this._cycle = prevCycle;\r
-                               this._locked = true; //prevents changes to totalTime and skips repeat/yoyo behavior when we recursively call render()\r
-                               prevTime = (backwards) ? 0 : dur;\r
-                               this.render(prevTime, suppressEvents, (dur === 0));\r
-                               if (!suppressEvents) if (!this._gc) {\r
-                                       if (this.vars.onRepeat) {\r
-                                               this.vars.onRepeat.apply(this.vars.onRepeatScope || this, this.vars.onRepeatParams || _blankArray);\r
-                                       }\r
-                               }\r
-                               if (wrap) {\r
-                                       prevTime = (backwards) ? dur + 0.0001 : -0.0001;\r
-                                       this.render(prevTime, true, false);\r
-                               }\r
-                               this._locked = false;\r
-                               if (this._paused && !prevPaused) { //if the render() triggered callback that paused this timeline, we should abort (very rare, but possible)\r
-                                       return;\r
-                               }\r
-                               this._time = recTime;\r
-                               this._totalTime = recTotalTime;\r
-                               this._cycle = recCycle;\r
-                               this._rawPrevTime = recRawPrevTime;\r
-                       }\r
-\r
-                       if ((this._time === prevTime || !this._first) && !force && !internalForce) {\r
-                               if (prevTotalTime !== this._totalTime) if (this._onUpdate) if (!suppressEvents) { //so that onUpdate fires even during the repeatDelay - as long as the totalTime changed, we should trigger onUpdate.\r
-                                       this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || _blankArray);\r
-                               }\r
-                               return;\r
-                       } else if (!this._initted) {\r
-                               this._initted = true;\r
-                       }\r
-\r
-                       if (!this._active) if (!this._paused && this._totalTime !== prevTotalTime && time > 0) {\r
-                               this._active = true;  //so that if the user renders the timeline (as opposed to the parent timeline rendering it), it is forced to re-render and align it with the proper time/frame on the next rendering cycle. Maybe the timeline already finished but the user manually re-renders it as halfway done, for example.\r
-                       }\r
-\r
-                       if (prevTotalTime === 0) if (this.vars.onStart) if (this._totalTime !== 0) if (!suppressEvents) {\r
-                               this.vars.onStart.apply(this.vars.onStartScope || this, this.vars.onStartParams || _blankArray);\r
-                       }\r
-\r
-                       if (this._time >= prevTime) {\r
-                               tween = this._first;\r
-                               while (tween) {\r
-                                       next = tween._next; //record it here because the value could change after rendering...\r
-                                       if (this._paused && !prevPaused) { //in case a tween pauses the timeline when rendering\r
-                                               break;\r
-                                       } else if (tween._active || (tween._startTime <= this._time && !tween._paused && !tween._gc)) {\r
-                                               if (!tween._reversed) {\r
-                                                       tween.render((time - tween._startTime) * tween._timeScale, suppressEvents, force);\r
-                                               } else {\r
-                                                       tween.render(((!tween._dirty) ? tween._totalDuration : tween.totalDuration()) - ((time - tween._startTime) * tween._timeScale), suppressEvents, force);\r
-                                               }\r
-\r
-                                       }\r
-                                       tween = next;\r
-                               }\r
-                       } else {\r
-                               tween = this._last;\r
-                               while (tween) {\r
-                                       next = tween._prev; //record it here because the value could change after rendering...\r
-                                       if (this._paused && !prevPaused) { //in case a tween pauses the timeline when rendering\r
-                                               break;\r
-                                       } else if (tween._active || (tween._startTime <= prevTime && !tween._paused && !tween._gc)) {\r
-                                               if (!tween._reversed) {\r
-                                                       tween.render((time - tween._startTime) * tween._timeScale, suppressEvents, force);\r
-                                               } else {\r
-                                                       tween.render(((!tween._dirty) ? tween._totalDuration : tween.totalDuration()) - ((time - tween._startTime) * tween._timeScale), suppressEvents, force);\r
-                                               }\r
-                                       }\r
-                                       tween = next;\r
-                               }\r
-                       }\r
-\r
-                       if (this._onUpdate) if (!suppressEvents) {\r
-                               this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || _blankArray);\r
-                       }\r
-                       if (callback) if (!this._locked) if (!this._gc) if (prevStart === this._startTime || prevTimeScale !== this._timeScale) if (this._time === 0 || totalDur >= this.totalDuration()) { //if one of the tweens that was rendered altered this timeline's startTime (like if an onComplete reversed the timeline), it probably isn't complete. If it is, don't worry, because whatever call altered the startTime would complete if it was necessary at the new time. The only exception is the timeScale property. Also check _gc because there's a chance that kill() could be called in an onUpdate\r
-                               if (isComplete) {\r
-                                       if (this._timeline.autoRemoveChildren) {\r
-                                               this._enabled(false, false);\r
-                                       }\r
-                                       this._active = false;\r
-                               }\r
-                               if (!suppressEvents && this.vars[callback]) {\r
-                                       this.vars[callback].apply(this.vars[callback + "Scope"] || this, this.vars[callback + "Params"] || _blankArray);\r
-                               }\r
-                       }\r
-               };\r
-\r
-               p.getActive = function(nested, tweens, timelines) {\r
-                       if (nested == null) {\r
-                               nested = true;\r
-                       }\r
-                       if (tweens == null) {\r
-                               tweens = true;\r
-                       }\r
-                       if (timelines == null) {\r
-                               timelines = false;\r
-                       }\r
-                       var a = [],\r
-                               all = this.getChildren(nested, tweens, timelines),\r
-                               cnt = 0,\r
-                               l = all.length,\r
-                               i, tween;\r
-                       for (i = 0; i < l; i++) {\r
-                               tween = all[i];\r
-                               if (tween.isActive()) {\r
-                                       a[cnt++] = tween;\r
-                               }\r
-                       }\r
-                       return a;\r
-               };\r
-\r
-\r
-               p.getLabelAfter = function(time) {\r
-                       if (!time) if (time !== 0) { //faster than isNan()\r
-                               time = this._time;\r
-                       }\r
-                       var labels = this.getLabelsArray(),\r
-                               l = labels.length,\r
-                               i;\r
-                       for (i = 0; i < l; i++) {\r
-                               if (labels[i].time > time) {\r
-                                       return labels[i].name;\r
-                               }\r
-                       }\r
-                       return null;\r
-               };\r
-\r
-               p.getLabelBefore = function(time) {\r
-                       if (time == null) {\r
-                               time = this._time;\r
-                       }\r
-                       var labels = this.getLabelsArray(),\r
-                               i = labels.length;\r
-                       while (--i > -1) {\r
-                               if (labels[i].time < time) {\r
-                                       return labels[i].name;\r
-                               }\r
-                       }\r
-                       return null;\r
-               };\r
-\r
-               p.getLabelsArray = function() {\r
-                       var a = [],\r
-                               cnt = 0,\r
-                               p;\r
-                       for (p in this._labels) {\r
-                               a[cnt++] = {time:this._labels[p], name:p};\r
-                       }\r
-                       a.sort(function(a,b) {\r
-                               return a.time - b.time;\r
-                       });\r
-                       return a;\r
-               };\r
-\r
-\r
-//---- GETTERS / SETTERS -------------------------------------------------------------------------------------------------------\r
-\r
-               p.progress = function(value) {\r
-                       return (!arguments.length) ? this._time / this.duration() : this.totalTime( this.duration() * ((this._yoyo && (this._cycle & 1) !== 0) ? 1 - value : value) + (this._cycle * (this._duration + this._repeatDelay)), false);\r
-               };\r
-\r
-               p.totalProgress = function(value) {\r
-                       return (!arguments.length) ? this._totalTime / this.totalDuration() : this.totalTime( this.totalDuration() * value, false);\r
-               };\r
-\r
-               p.totalDuration = function(value) {\r
-                       if (!arguments.length) {\r
-                               if (this._dirty) {\r
-                                       TimelineLite.prototype.totalDuration.call(this); //just forces refresh\r
-                                       //Instead of Infinity, we use 999999999999 so that we can accommodate reverses.\r
-                                       this._totalDuration = (this._repeat === -1) ? 999999999999 : this._duration * (this._repeat + 1) + (this._repeatDelay * this._repeat);\r
-                               }\r
-                               return this._totalDuration;\r
-                       }\r
-                       return (this._repeat === -1) ? this : this.duration( (value - (this._repeat * this._repeatDelay)) / (this._repeat + 1) );\r
-               };\r
-\r
-               p.time = function(value, suppressEvents) {\r
-                       if (!arguments.length) {\r
-                               return this._time;\r
-                       }\r
-                       if (this._dirty) {\r
-                               this.totalDuration();\r
-                       }\r
-                       if (value > this._duration) {\r
-                               value = this._duration;\r
-                       }\r
-                       if (this._yoyo && (this._cycle & 1) !== 0) {\r
-                               value = (this._duration - value) + (this._cycle * (this._duration + this._repeatDelay));\r
-                       } else if (this._repeat !== 0) {\r
-                               value += this._cycle * (this._duration + this._repeatDelay);\r
-                       }\r
-                       return this.totalTime(value, suppressEvents);\r
-               };\r
-\r
-               p.repeat = function(value) {\r
-                       if (!arguments.length) {\r
-                               return this._repeat;\r
-                       }\r
-                       this._repeat = value;\r
-                       return this._uncache(true);\r
-               };\r
-\r
-               p.repeatDelay = function(value) {\r
-                       if (!arguments.length) {\r
-                               return this._repeatDelay;\r
-                       }\r
-                       this._repeatDelay = value;\r
-                       return this._uncache(true);\r
-               };\r
-\r
-               p.yoyo = function(value) {\r
-                       if (!arguments.length) {\r
-                               return this._yoyo;\r
-                       }\r
-                       this._yoyo = value;\r
-                       return this;\r
-               };\r
-\r
-               p.currentLabel = function(value) {\r
-                       if (!arguments.length) {\r
-                               return this.getLabelBefore(this._time + 0.00000001);\r
-                       }\r
-                       return this.seek(value, true);\r
-               };\r
-\r
-               return TimelineMax;\r
-\r
-       }, true);\r
-       \r
-\r
-\r
-\r
-\r
-       \r
-       \r
-       \r
-       \r
-       \r
-       \r
-       \r
-/*\r
- * ----------------------------------------------------------------\r
- * BezierPlugin\r
- * ----------------------------------------------------------------\r
- */\r
-       (function() {\r
-\r
-               var _RAD2DEG = 180 / Math.PI,\r
-                       _r1 = [],\r
-                       _r2 = [],\r
-                       _r3 = [],\r
-                       _corProps = {},\r
-                       Segment = function(a, b, c, d) {\r
-                               this.a = a;\r
-                               this.b = b;\r
-                               this.c = c;\r
-                               this.d = d;\r
-                               this.da = d - a;\r
-                               this.ca = c - a;\r
-                               this.ba = b - a;\r
-                       },\r
-                       _correlate = ",x,y,z,left,top,right,bottom,marginTop,marginLeft,marginRight,marginBottom,paddingLeft,paddingTop,paddingRight,paddingBottom,backgroundPosition,backgroundPosition_y,",\r
-                       cubicToQuadratic = function(a, b, c, d) {\r
-                               var q1 = {a:a},\r
-                                       q2 = {},\r
-                                       q3 = {},\r
-                                       q4 = {c:d},\r
-                                       mab = (a + b) / 2,\r
-                                       mbc = (b + c) / 2,\r
-                                       mcd = (c + d) / 2,\r
-                                       mabc = (mab + mbc) / 2,\r
-                                       mbcd = (mbc + mcd) / 2,\r
-                                       m8 = (mbcd - mabc) / 8;\r
-                               q1.b = mab + (a - mab) / 4;\r
-                               q2.b = mabc + m8;\r
-                               q1.c = q2.a = (q1.b + q2.b) / 2;\r
-                               q2.c = q3.a = (mabc + mbcd) / 2;\r
-                               q3.b = mbcd - m8;\r
-                               q4.b = mcd + (d - mcd) / 4;\r
-                               q3.c = q4.a = (q3.b + q4.b) / 2;\r
-                               return [q1, q2, q3, q4];\r
-                       },\r
-                       _calculateControlPoints = function(a, curviness, quad, basic, correlate) {\r
-                               var l = a.length - 1,\r
-                                       ii = 0,\r
-                                       cp1 = a[0].a,\r
-                                       i, p1, p2, p3, seg, m1, m2, mm, cp2, qb, r1, r2, tl;\r
-                               for (i = 0; i < l; i++) {\r
-                                       seg = a[ii];\r
-                                       p1 = seg.a;\r
-                                       p2 = seg.d;\r
-                                       p3 = a[ii+1].d;\r
-\r
-                                       if (correlate) {\r
-                                               r1 = _r1[i];\r
-                                               r2 = _r2[i];\r
-                                               tl = ((r2 + r1) * curviness * 0.25) / (basic ? 0.5 : _r3[i] || 0.5);\r
-                                               m1 = p2 - (p2 - p1) * (basic ? curviness * 0.5 : (r1 !== 0 ? tl / r1 : 0));\r
-                                               m2 = p2 + (p3 - p2) * (basic ? curviness * 0.5 : (r2 !== 0 ? tl / r2 : 0));\r
-                                               mm = p2 - (m1 + (((m2 - m1) * ((r1 * 3 / (r1 + r2)) + 0.5) / 4) || 0));\r
-                                       } else {\r
-                                               m1 = p2 - (p2 - p1) * curviness * 0.5;\r
-                                               m2 = p2 + (p3 - p2) * curviness * 0.5;\r
-                                               mm = p2 - (m1 + m2) / 2;\r
-                                       }\r
-                                       m1 += mm;\r
-                                       m2 += mm;\r
-\r
-                                       seg.c = cp2 = m1;\r
-                                       if (i !== 0) {\r
-                                               seg.b = cp1;\r
-                                       } else {\r
-                                               seg.b = cp1 = seg.a + (seg.c - seg.a) * 0.6; //instead of placing b on a exactly, we move it inline with c so that if the user specifies an ease like Back.easeIn or Elastic.easeIn which goes BEYOND the beginning, it will do so smoothly.\r
-                                       }\r
-\r
-                                       seg.da = p2 - p1;\r
-                                       seg.ca = cp2 - p1;\r
-                                       seg.ba = cp1 - p1;\r
-\r
-                                       if (quad) {\r
-                                               qb = cubicToQuadratic(p1, cp1, cp2, p2);\r
-                                               a.splice(ii, 1, qb[0], qb[1], qb[2], qb[3]);\r
-                                               ii += 4;\r
-                                       } else {\r
-                                               ii++;\r
-                                       }\r
-\r
-                                       cp1 = m2;\r
-                               }\r
-                               seg = a[ii];\r
-                               seg.b = cp1;\r
-                               seg.c = cp1 + (seg.d - cp1) * 0.4; //instead of placing c on d exactly, we move it inline with b so that if the user specifies an ease like Back.easeOut or Elastic.easeOut which goes BEYOND the end, it will do so smoothly.\r
-                               seg.da = seg.d - seg.a;\r
-                               seg.ca = seg.c - seg.a;\r
-                               seg.ba = cp1 - seg.a;\r
-                               if (quad) {\r
-                                       qb = cubicToQuadratic(seg.a, cp1, seg.c, seg.d);\r
-                                       a.splice(ii, 1, qb[0], qb[1], qb[2], qb[3]);\r
-                               }\r
-                       },\r
-                       _parseAnchors = function(values, p, correlate, prepend) {\r
-                               var a = [],\r
-                                       l, i, p1, p2, p3, tmp;\r
-                               if (prepend) {\r
-                                       values = [prepend].concat(values);\r
-                                       i = values.length;\r
-                                       while (--i > -1) {\r
-                                               if (typeof( (tmp = values[i][p]) ) === "string") if (tmp.charAt(1) === "=") {\r
-                                                       values[i][p] = prepend[p] + Number(tmp.charAt(0) + tmp.substr(2)); //accommodate relative values. Do it inline instead of breaking it out into a function for speed reasons\r
-                                               }\r
-                                       }\r
-                               }\r
-                               l = values.length - 2;\r
-                               if (l < 0) {\r
-                                       a[0] = new Segment(values[0][p], 0, 0, values[(l < -1) ? 0 : 1][p]);\r
-                                       return a;\r
-                               }\r
-                               for (i = 0; i < l; i++) {\r
-                                       p1 = values[i][p];\r
-                                       p2 = values[i+1][p];\r
-                                       a[i] = new Segment(p1, 0, 0, p2);\r
-                                       if (correlate) {\r
-                                               p3 = values[i+2][p];\r
-                                               _r1[i] = (_r1[i] || 0) + (p2 - p1) * (p2 - p1);\r
-                                               _r2[i] = (_r2[i] || 0) + (p3 - p2) * (p3 - p2);\r
-                                       }\r
-                               }\r
-                               a[i] = new Segment(values[i][p], 0, 0, values[i+1][p]);\r
-                               return a;\r
-                       },\r
-                       bezierThrough = function(values, curviness, quadratic, basic, correlate, prepend) {\r
-                               var obj = {},\r
-                                       props = [],\r
-                                       first = prepend || values[0],\r
-                                       i, p, a, j, r, l, seamless, last;\r
-                               correlate = (typeof(correlate) === "string") ? ","+correlate+"," : _correlate;\r
-                               if (curviness == null) {\r
-                                       curviness = 1;\r
-                               }\r
-                               for (p in values[0]) {\r
-                                       props.push(p);\r
-                               }\r
-                               //check to see if the last and first values are identical (well, within 0.05). If so, make seamless by appending the second element to the very end of the values array and the 2nd-to-last element to the very beginning (we'll remove those segments later)\r
-                               if (values.length > 1) {\r
-                                       last = values[values.length - 1];\r
-                                       seamless = true;\r
-                                       i = props.length;\r
-                                       while (--i > -1) {\r
-                                               p = props[i];\r
-                                               if (Math.abs(first[p] - last[p]) > 0.05) { //build in a tolerance of +/-0.05 to accommodate rounding errors. For example, if you set an object's position to 4.945, Flash will make it 4.9\r
-                                                       seamless = false;\r
-                                                       break;\r
-                                               }\r
-                                       }\r
-                                       if (seamless) {\r
-                                               values = values.concat(); //duplicate the array to avoid contaminating the original which the user may be reusing for other tweens\r
-                                               if (prepend) {\r
-                                                       values.unshift(prepend);\r
-                                               }\r
-                                               values.push(values[1]);\r
-                                               prepend = values[values.length - 3];\r
-                                       }\r
-                               }\r
-                               _r1.length = _r2.length = _r3.length = 0;\r
-                               i = props.length;\r
-                               while (--i > -1) {\r
-                                       p = props[i];\r
-                                       _corProps[p] = (correlate.indexOf(","+p+",") !== -1);\r
-                                       obj[p] = _parseAnchors(values, p, _corProps[p], prepend);\r
-                               }\r
-                               i = _r1.length;\r
-                               while (--i > -1) {\r
-                                       _r1[i] = Math.sqrt(_r1[i]);\r
-                                       _r2[i] = Math.sqrt(_r2[i]);\r
-                               }\r
-                               if (!basic) {\r
-                                       i = props.length;\r
-                                       while (--i > -1) {\r
-                                               if (_corProps[p]) {\r
-                                                       a = obj[props[i]];\r
-                                                       l = a.length - 1;\r
-                                                       for (j = 0; j < l; j++) {\r
-                                                               r = a[j+1].da / _r2[j] + a[j].da / _r1[j];\r
-                                                               _r3[j] = (_r3[j] || 0) + r * r;\r
-                                                       }\r
-                                               }\r
-                                       }\r
-                                       i = _r3.length;\r
-                                       while (--i > -1) {\r
-                                               _r3[i] = Math.sqrt(_r3[i]);\r
-                                       }\r
-                               }\r
-                               i = props.length;\r
-                               j = quadratic ? 4 : 1;\r
-                               while (--i > -1) {\r
-                                       p = props[i];\r
-                                       a = obj[p];\r
-                                       _calculateControlPoints(a, curviness, quadratic, basic, _corProps[p]); //this method requires that _parseAnchors() and _setSegmentRatios() ran first so that _r1, _r2, and _r3 values are populated for all properties\r
-                                       if (seamless) {\r
-                                               a.splice(0, j);\r
-                                               a.splice(a.length - j, j);\r
-                                       }\r
-                               }\r
-                               return obj;\r
-                       },\r
-                       _parseBezierData = function(values, type, prepend) {\r
-                               type = type || "soft";\r
-                               var obj = {},\r
-                                       inc = (type === "cubic") ? 3 : 2,\r
-                                       soft = (type === "soft"),\r
-                                       props = [],\r
-                                       a, b, c, d, cur, i, j, l, p, cnt, tmp;\r
-                               if (soft && prepend) {\r
-                                       values = [prepend].concat(values);\r
-                               }\r
-                               if (values == null || values.length < inc + 1) { throw "invalid Bezier data"; }\r
-                               for (p in values[0]) {\r
-                                       props.push(p);\r
-                               }\r
-                               i = props.length;\r
-                               while (--i > -1) {\r
-                                       p = props[i];\r
-                                       obj[p] = cur = [];\r
-                                       cnt = 0;\r
-                                       l = values.length;\r
-                                       for (j = 0; j < l; j++) {\r
-                                               a = (prepend == null) ? values[j][p] : (typeof( (tmp = values[j][p]) ) === "string" && tmp.charAt(1) === "=") ? prepend[p] + Number(tmp.charAt(0) + tmp.substr(2)) : Number(tmp);\r
-                                               if (soft) if (j > 1) if (j < l - 1) {\r
-                                                       cur[cnt++] = (a + cur[cnt-2]) / 2;\r
-                                               }\r
-                                               cur[cnt++] = a;\r
-                                       }\r
-                                       l = cnt - inc + 1;\r
-                                       cnt = 0;\r
-                                       for (j = 0; j < l; j += inc) {\r
-                                               a = cur[j];\r
-                                               b = cur[j+1];\r
-                                               c = cur[j+2];\r
-                                               d = (inc === 2) ? 0 : cur[j+3];\r
-                                               cur[cnt++] = tmp = (inc === 3) ? new Segment(a, b, c, d) : new Segment(a, (2 * b + a) / 3, (2 * b + c) / 3, c);\r
-                                       }\r
-                                       cur.length = cnt;\r
-                               }\r
-                               return obj;\r
-                       },\r
-                       _addCubicLengths = function(a, steps, resolution) {\r
-                               var inc = 1 / resolution,\r
-                                       j = a.length,\r
-                                       d, d1, s, da, ca, ba, p, i, inv, bez, index;\r
-                               while (--j > -1) {\r
-                                       bez = a[j];\r
-                                       s = bez.a;\r
-                                       da = bez.d - s;\r
-                                       ca = bez.c - s;\r
-                                       ba = bez.b - s;\r
-                                       d = d1 = 0;\r
-                                       for (i = 1; i <= resolution; i++) {\r
-                                               p = inc * i;\r
-                                               inv = 1 - p;\r
-                                               d = d1 - (d1 = (p * p * da + 3 * inv * (p * ca + inv * ba)) * p);\r
-                                               index = j * resolution + i - 1;\r
-                                               steps[index] = (steps[index] || 0) + d * d;\r
-                                       }\r
-                               }\r
-                       },\r
-                       _parseLengthData = function(obj, resolution) {\r
-                               resolution = resolution >> 0 || 6;\r
-                               var a = [],\r
-                                       lengths = [],\r
-                                       d = 0,\r
-                                       total = 0,\r
-                                       threshold = resolution - 1,\r
-                                       segments = [],\r
-                                       curLS = [], //current length segments array\r
-                                       p, i, l, index;\r
-                               for (p in obj) {\r
-                                       _addCubicLengths(obj[p], a, resolution);\r
-                               }\r
-                               l = a.length;\r
-                               for (i = 0; i < l; i++) {\r
-                                       d += Math.sqrt(a[i]);\r
-                                       index = i % resolution;\r
-                                       curLS[index] = d;\r
-                                       if (index === threshold) {\r
-                                               total += d;\r
-                                               index = (i / resolution) >> 0;\r
-                                               segments[index] = curLS;\r
-                                               lengths[index] = total;\r
-                                               d = 0;\r
-                                               curLS = [];\r
-                                       }\r
-                               }\r
-                               return {length:total, lengths:lengths, segments:segments};\r
-                       },\r
-\r
-\r
-\r
-                       BezierPlugin = window._gsDefine.plugin({\r
-                                       propName: "bezier",\r
-                                       priority: -1,\r
-                                       version: "1.3.2",\r
-                                       API: 2,\r
-                                       global:true,\r
-\r
-                                       //gets called when the tween renders for the first time. This is where initial values should be recorded and any setup routines should run.\r
-                                       init: function(target, vars, tween) {\r
-                                               this._target = target;\r
-                                               if (vars instanceof Array) {\r
-                                                       vars = {values:vars};\r
-                                               }\r
-                                               this._func = {};\r
-                                               this._round = {};\r
-                                               this._props = [];\r
-                                               this._timeRes = (vars.timeResolution == null) ? 6 : parseInt(vars.timeResolution, 10);\r
-                                               var values = vars.values || [],\r
-                                                       first = {},\r
-                                                       second = values[0],\r
-                                                       autoRotate = vars.autoRotate || tween.vars.orientToBezier,\r
-                                                       p, isFunc, i, j, prepend;\r
-\r
-                                               this._autoRotate = autoRotate ? (autoRotate instanceof Array) ? autoRotate : [["x","y","rotation",((autoRotate === true) ? 0 : Number(autoRotate) || 0)]] : null;\r
-                                               for (p in second) {\r
-                                                       this._props.push(p);\r
-                                               }\r
-\r
-                                               i = this._props.length;\r
-                                               while (--i > -1) {\r
-                                                       p = this._props[i];\r
-\r
-                                                       this._overwriteProps.push(p);\r
-                                                       isFunc = this._func[p] = (typeof(target[p]) === "function");\r
-                                                       first[p] = (!isFunc) ? parseFloat(target[p]) : target[ ((p.indexOf("set") || typeof(target["get" + p.substr(3)]) !== "function") ? p : "get" + p.substr(3)) ]();\r
-                                                       if (!prepend) if (first[p] !== values[0][p]) {\r
-                                                               prepend = first;\r
-                                                       }\r
-                                               }\r
-                                               this._beziers = (vars.type !== "cubic" && vars.type !== "quadratic" && vars.type !== "soft") ? bezierThrough(values, isNaN(vars.curviness) ? 1 : vars.curviness, false, (vars.type === "thruBasic"), vars.correlate, prepend) : _parseBezierData(values, vars.type, first);\r
-                                               this._segCount = this._beziers[p].length;\r
-\r
-                                               if (this._timeRes) {\r
-                                                       var ld = _parseLengthData(this._beziers, this._timeRes);\r
-                                                       this._length = ld.length;\r
-                                                       this._lengths = ld.lengths;\r
-                                                       this._segments = ld.segments;\r
-                                                       this._l1 = this._li = this._s1 = this._si = 0;\r
-                                                       this._l2 = this._lengths[0];\r
-                                                       this._curSeg = this._segments[0];\r
-                                                       this._s2 = this._curSeg[0];\r
-                                                       this._prec = 1 / this._curSeg.length;\r
-                                               }\r
-\r
-                                               if ((autoRotate = this._autoRotate)) {\r
-                                                       this._initialRotations = [];\r
-                                                       if (!(autoRotate[0] instanceof Array)) {\r
-                                                               this._autoRotate = autoRotate = [autoRotate];\r
-                                                       }\r
-                                                       i = autoRotate.length;\r
-                                                       while (--i > -1) {\r
-                                                               for (j = 0; j < 3; j++) {\r
-                                                                       p = autoRotate[i][j];\r
-                                                                       this._func[p] = (typeof(target[p]) === "function") ? target[ ((p.indexOf("set") || typeof(target["get" + p.substr(3)]) !== "function") ? p : "get" + p.substr(3)) ] : false;\r
-                                                               }\r
-                                                               p = autoRotate[i][2];\r
-                                                               this._initialRotations[i] = this._func[p] ? this._func[p].call(this._target) : this._target[p];\r
-                                                       }\r
-                                               }\r
-                                               this._startRatio = tween.vars.runBackwards ? 1 : 0; //we determine the starting ratio when the tween inits which is always 0 unless the tween has runBackwards:true (indicating it's a from() tween) in which case it's 1.\r
-                                               return true;\r
-                                       },\r
-\r
-                                       //called each time the values should be updated, and the ratio gets passed as the only parameter (typically it's a value between 0 and 1, but it can exceed those when using an ease like Elastic.easeOut or Back.easeOut, etc.)\r
-                                       set: function(v) {\r
-                                               var segments = this._segCount,\r
-                                                       func = this._func,\r
-                                                       target = this._target,\r
-                                                       notStart = (v !== this._startRatio),\r
-                                                       curIndex, inv, i, p, b, t, val, l, lengths, curSeg;\r
-                                               if (!this._timeRes) {\r
-                                                       curIndex = (v < 0) ? 0 : (v >= 1) ? segments - 1 : (segments * v) >> 0;\r
-                                                       t = (v - (curIndex * (1 / segments))) * segments;\r
-                                               } else {\r
-                                                       lengths = this._lengths;\r
-                                                       curSeg = this._curSeg;\r
-                                                       v *= this._length;\r
-                                                       i = this._li;\r
-                                                       //find the appropriate segment (if the currently cached one isn't correct)\r
-                                                       if (v > this._l2 && i < segments - 1) {\r
-                                                               l = segments - 1;\r
-                                                               while (i < l && (this._l2 = lengths[++i]) <= v) {       }\r
-                                                               this._l1 = lengths[i-1];\r
-                                                               this._li = i;\r
-                                                               this._curSeg = curSeg = this._segments[i];\r
-                                                               this._s2 = curSeg[(this._s1 = this._si = 0)];\r
-                                                       } else if (v < this._l1 && i > 0) {\r
-                                                               while (i > 0 && (this._l1 = lengths[--i]) >= v) { }\r
-                                                               if (i === 0 && v < this._l1) {\r
-                                                                       this._l1 = 0;\r
-                                                               } else {\r
-                                                                       i++;\r
-                                                               }\r
-                                                               this._l2 = lengths[i];\r
-                                                               this._li = i;\r
-                                                               this._curSeg = curSeg = this._segments[i];\r
-                                                               this._s1 = curSeg[(this._si = curSeg.length - 1) - 1] || 0;\r
-                                                               this._s2 = curSeg[this._si];\r
-                                                       }\r
-                                                       curIndex = i;\r
-                                                       //now find the appropriate sub-segment (we split it into the number of pieces that was defined by "precision" and measured each one)\r
-                                                       v -= this._l1;\r
-                                                       i = this._si;\r
-                                                       if (v > this._s2 && i < curSeg.length - 1) {\r
-                                                               l = curSeg.length - 1;\r
-                                                               while (i < l && (this._s2 = curSeg[++i]) <= v) {        }\r
-                                                               this._s1 = curSeg[i-1];\r
-                                                               this._si = i;\r
-                                                       } else if (v < this._s1 && i > 0) {\r
-                                                               while (i > 0 && (this._s1 = curSeg[--i]) >= v) {        }\r
-                                                               if (i === 0 && v < this._s1) {\r
-                                                                       this._s1 = 0;\r
-                                                               } else {\r
-                                                                       i++;\r
-                                                               }\r
-                                                               this._s2 = curSeg[i];\r
-                                                               this._si = i;\r
-                                                       }\r
-                                                       t = (i + (v - this._s1) / (this._s2 - this._s1)) * this._prec;\r
-                                               }\r
-                                               inv = 1 - t;\r
-\r
-                                               i = this._props.length;\r
-                                               while (--i > -1) {\r
-                                                       p = this._props[i];\r
-                                                       b = this._beziers[p][curIndex];\r
-                                                       val = (t * t * b.da + 3 * inv * (t * b.ca + inv * b.ba)) * t + b.a;\r
-                                                       if (this._round[p]) {\r
-                                                               val = Math.round(val);\r
-                                                       }\r
-                                                       if (func[p]) {\r
-                                                               target[p](val);\r
-                                                       } else {\r
-                                                               target[p] = val;\r
-                                                       }\r
-                                               }\r
-\r
-                                               if (this._autoRotate) {\r
-                                                       var ar = this._autoRotate,\r
-                                                               b2, x1, y1, x2, y2, add, conv;\r
-                                                       i = ar.length;\r
-                                                       while (--i > -1) {\r
-                                                               p = ar[i][2];\r
-                                                               add = ar[i][3] || 0;\r
-                                                               conv = (ar[i][4] === true) ? 1 : _RAD2DEG;\r
-                                                               b = this._beziers[ar[i][0]];\r
-                                                               b2 = this._beziers[ar[i][1]];\r
-\r
-                                                               if (b && b2) { //in case one of the properties got overwritten.\r
-                                                                       b = b[curIndex];\r
-                                                                       b2 = b2[curIndex];\r
-\r
-                                                                       x1 = b.a + (b.b - b.a) * t;\r
-                                                                       x2 = b.b + (b.c - b.b) * t;\r
-                                                                       x1 += (x2 - x1) * t;\r
-                                                                       x2 += ((b.c + (b.d - b.c) * t) - x2) * t;\r
-\r
-                                                                       y1 = b2.a + (b2.b - b2.a) * t;\r
-                                                                       y2 = b2.b + (b2.c - b2.b) * t;\r
-                                                                       y1 += (y2 - y1) * t;\r
-                                                                       y2 += ((b2.c + (b2.d - b2.c) * t) - y2) * t;\r
-\r
-                                                                       val = notStart ? Math.atan2(y2 - y1, x2 - x1) * conv + add : this._initialRotations[i];\r
-\r
-                                                                       if (func[p]) {\r
-                                                                               target[p](val);\r
-                                                                       } else {\r
-                                                                               target[p] = val;\r
-                                                                       }\r
-                                                               }\r
-                                                       }\r
-                                               }\r
-                                       }\r
-                       }),\r
-                       p = BezierPlugin.prototype;\r
-\r
-\r
-               BezierPlugin.bezierThrough = bezierThrough;\r
-               BezierPlugin.cubicToQuadratic = cubicToQuadratic;\r
-               BezierPlugin._autoCSS = true; //indicates that this plugin can be inserted into the "css" object using the autoCSS feature of TweenLite\r
-               BezierPlugin.quadraticToCubic = function(a, b, c) {\r
-                       return new Segment(a, (2 * b + a) / 3, (2 * b + c) / 3, c);\r
-               };\r
-\r
-               BezierPlugin._cssRegister = function() {\r
-                       var CSSPlugin = window._gsDefine.globals.CSSPlugin;\r
-                       if (!CSSPlugin) {\r
-                               return;\r
-                       }\r
-                       var _internals = CSSPlugin._internals,\r
-                               _parseToProxy = _internals._parseToProxy,\r
-                               _setPluginRatio = _internals._setPluginRatio,\r
-                               CSSPropTween = _internals.CSSPropTween;\r
-                       _internals._registerComplexSpecialProp("bezier", {parser:function(t, e, prop, cssp, pt, plugin) {\r
-                               if (e instanceof Array) {\r
-                                       e = {values:e};\r
-                               }\r
-                               plugin = new BezierPlugin();\r
-                               var values = e.values,\r
-                                       l = values.length - 1,\r
-                                       pluginValues = [],\r
-                                       v = {},\r
-                                       i, p, data;\r
-                               if (l < 0) {\r
-                                       return pt;\r
-                               }\r
-                               for (i = 0; i <= l; i++) {\r
-                                       data = _parseToProxy(t, values[i], cssp, pt, plugin, (l !== i));\r
-                                       pluginValues[i] = data.end;\r
-                               }\r
-                               for (p in e) {\r
-                                       v[p] = e[p]; //duplicate the vars object because we need to alter some things which would cause problems if the user plans to reuse the same vars object for another tween.\r
-                               }\r
-                               v.values = pluginValues;\r
-                               pt = new CSSPropTween(t, "bezier", 0, 0, data.pt, 2);\r
-                               pt.data = data;\r
-                               pt.plugin = plugin;\r
-                               pt.setRatio = _setPluginRatio;\r
-                               if (v.autoRotate === 0) {\r
-                                       v.autoRotate = true;\r
-                               }\r
-                               if (v.autoRotate && !(v.autoRotate instanceof Array)) {\r
-                                       i = (v.autoRotate === true) ? 0 : Number(v.autoRotate);\r
-                                       v.autoRotate = (data.end.left != null) ? [["left","top","rotation",i,false]] : (data.end.x != null) ? [["x","y","rotation",i,false]] : false;\r
-                               }\r
-                               if (v.autoRotate) {\r
-                                       if (!cssp._transform) {\r
-                                               cssp._enableTransforms(false);\r
-                                       }\r
-                                       data.autoRotate = cssp._target._gsTransform;\r
-                               }\r
-                               plugin._onInitTween(data.proxy, v, cssp._tween);\r
-                               return pt;\r
-                       }});\r
-               };\r
-\r
-               p._roundProps = function(lookup, value) {\r
-                       var op = this._overwriteProps,\r
-                               i = op.length;\r
-                       while (--i > -1) {\r
-                               if (lookup[op[i]] || lookup.bezier || lookup.bezierThrough) {\r
-                                       this._round[op[i]] = value;\r
-                               }\r
-                       }\r
-               };\r
-\r
-               p._kill = function(lookup) {\r
-                       var a = this._props,\r
-                               p, i;\r
-                       for (p in this._beziers) {\r
-                               if (p in lookup) {\r
-                                       delete this._beziers[p];\r
-                                       delete this._func[p];\r
-                                       i = a.length;\r
-                                       while (--i > -1) {\r
-                                               if (a[i] === p) {\r
-                                                       a.splice(i, 1);\r
-                                               }\r
-                                       }\r
-                               }\r
-                       }\r
-                       return this._super._kill.call(this, lookup);\r
-               };\r
-\r
-       }());\r
-\r
-\r
-\r
-\r
-\r
-\r
-       \r
-       \r
-       \r
-       \r
-       \r
-       \r
-       \r
-       \r
-/*\r
- * ----------------------------------------------------------------\r
- * CSSPlugin\r
- * ----------------------------------------------------------------\r
- */\r
-       window._gsDefine("plugins.CSSPlugin", ["plugins.TweenPlugin","TweenLite"], function(TweenPlugin, TweenLite) {\r
-\r
-               /** @constructor **/\r
-               var CSSPlugin = function() {\r
-                               TweenPlugin.call(this, "css");\r
-                               this._overwriteProps.length = 0;\r
-                               this.setRatio = CSSPlugin.prototype.setRatio; //speed optimization (avoid prototype lookup on this "hot" method)\r
-                       },\r
-                       _hasPriority, //turns true whenever a CSSPropTween instance is created that has a priority other than 0. This helps us discern whether or not we should spend the time organizing the linked list or not after a CSSPlugin's _onInitTween() method is called.\r
-                       _suffixMap, //we set this in _onInitTween() each time as a way to have a persistent variable we can use in other methods like _parse() without having to pass it around as a parameter and we keep _parse() decoupled from a particular CSSPlugin instance\r
-                       _cs, //computed style (we store this in a shared variable to conserve memory and make minification tighter\r
-                       _overwriteProps, //alias to the currently instantiating CSSPlugin's _overwriteProps array. We use this closure in order to avoid having to pass a reference around from method to method and aid in minification.\r
-                       _specialProps = {},\r
-                       p = CSSPlugin.prototype = new TweenPlugin("css");\r
-\r
-               p.constructor = CSSPlugin;\r
-               CSSPlugin.version = "1.12.1";\r
-               CSSPlugin.API = 2;\r
-               CSSPlugin.defaultTransformPerspective = 0;\r
-               CSSPlugin.defaultSkewType = "compensated";\r
-               p = "px"; //we'll reuse the "p" variable to keep file size down\r
-               CSSPlugin.suffixMap = {top:p, right:p, bottom:p, left:p, width:p, height:p, fontSize:p, padding:p, margin:p, perspective:p, lineHeight:""};\r
-\r
-\r
-               var _numExp = /(?:\d|\-\d|\.\d|\-\.\d)+/g,\r
-                       _relNumExp = /(?:\d|\-\d|\.\d|\-\.\d|\+=\d|\-=\d|\+=.\d|\-=\.\d)+/g,\r
-                       _valuesExp = /(?:\+=|\-=|\-|\b)[\d\-\.]+[a-zA-Z0-9]*(?:%|\b)/gi, //finds all the values that begin with numbers or += or -= and then a number. Includes suffixes. We use this to split complex values apart like "1px 5px 20px rgb(255,102,51)"\r
-                       _NaNExp = /[^\d\-\.]/g,\r
-                       _suffixExp = /(?:\d|\-|\+|=|#|\.)*/g,\r
-                       _opacityExp = /opacity *= *([^)]*)/i,\r
-                       _opacityValExp = /opacity:([^;]*)/i,\r
-                       _alphaFilterExp = /alpha\(opacity *=.+?\)/i,\r
-                       _rgbhslExp = /^(rgb|hsl)/,\r
-                       _capsExp = /([A-Z])/g,\r
-                       _camelExp = /-([a-z])/gi,\r
-                       _urlExp = /(^(?:url\(\"|url\())|(?:(\"\))$|\)$)/gi, //for pulling out urls from url(...) or url("...") strings (some browsers wrap urls in quotes, some don't when reporting things like backgroundImage)\r
-                       _camelFunc = function(s, g) { return g.toUpperCase(); },\r
-                       _horizExp = /(?:Left|Right|Width)/i,\r
-                       _ieGetMatrixExp = /(M11|M12|M21|M22)=[\d\-\.e]+/gi,\r
-                       _ieSetMatrixExp = /progid\:DXImageTransform\.Microsoft\.Matrix\(.+?\)/i,\r
-                       _commasOutsideParenExp = /,(?=[^\)]*(?:\(|$))/gi, //finds any commas that are not within parenthesis\r
-                       _DEG2RAD = Math.PI / 180,\r
-                       _RAD2DEG = 180 / Math.PI,\r
-                       _forcePT = {},\r
-                       _doc = document,\r
-                       _tempDiv = _doc.createElement("div"),\r
-                       _tempImg = _doc.createElement("img"),\r
-                       _internals = CSSPlugin._internals = {_specialProps:_specialProps}, //provides a hook to a few internal methods that we need to access from inside other plugins\r
-                       _agent = navigator.userAgent,\r
-                       _autoRound,\r
-                       _reqSafariFix, //we won't apply the Safari transform fix until we actually come across a tween that affects a transform property (to maintain best performance).\r
-\r
-                       _isSafari,\r
-                       _isFirefox, //Firefox has a bug that causes 3D transformed elements to randomly disappear unless a repaint is forced after each update on each element.\r
-                       _isSafariLT6, //Safari (and Android 4 which uses a flavor of Safari) has a bug that prevents changes to "top" and "left" properties from rendering properly if changed on the same frame as a transform UNLESS we set the element's WebkitBackfaceVisibility to hidden (weird, I know). Doing this for Android 3 and earlier seems to actually cause other problems, though (fun!)\r
-                       _ieVers,\r
-                       _supportsOpacity = (function() { //we set _isSafari, _ieVers, _isFirefox, and _supportsOpacity all in one function here to reduce file size slightly, especially in the minified version.\r
-                               var i = _agent.indexOf("Android"),\r
-                                       d = _doc.createElement("div"), a;\r
-\r
-                               _isSafari = (_agent.indexOf("Safari") !== -1 && _agent.indexOf("Chrome") === -1 && (i === -1 || Number(_agent.substr(i+8, 1)) > 3));\r
-                               _isSafariLT6 = (_isSafari && (Number(_agent.substr(_agent.indexOf("Version/")+8, 1)) < 6));\r
-                               _isFirefox = (_agent.indexOf("Firefox") !== -1);\r
-\r
-                               if ((/MSIE ([0-9]{1,}[\.0-9]{0,})/).exec(_agent)) {\r
-                                       _ieVers = parseFloat( RegExp.$1 );\r
-                               }\r
-\r
-                               d.innerHTML = "<a style='top:1px;opacity:.55;'>a</a>";\r
-                               a = d.getElementsByTagName("a")[0];\r
-                               return a ? /^0.55/.test(a.style.opacity) : false;\r
-                       }()),\r
-                       _getIEOpacity = function(v) {\r
-                               return (_opacityExp.test( ((typeof(v) === "string") ? v : (v.currentStyle ? v.currentStyle.filter : v.style.filter) || "") ) ? ( parseFloat( RegExp.$1 ) / 100 ) : 1);\r
-                       },\r
-                       _log = function(s) {//for logging messages, but in a way that won't throw errors in old versions of IE.\r
-                               if (window.console) {\r
-                                       //console.log(s);\r
-                               }\r
-                       },\r
-                       _prefixCSS = "", //the non-camelCase vendor prefix like "-o-", "-moz-", "-ms-", or "-webkit-"\r
-                       _prefix = "", //camelCase vendor prefix like "O", "ms", "Webkit", or "Moz".\r
-\r
-                       // @private feed in a camelCase property name like "transform" and it will check to see if it is valid as-is or if it needs a vendor prefix. It returns the corrected camelCase property name (i.e. "WebkitTransform" or "MozTransform" or "transform" or null if no such property is found, like if the browser is IE8 or before, "transform" won't be found at all)\r
-                       _checkPropPrefix = function(p, e) {\r
-                               e = e || _tempDiv;\r
-                               var s = e.style,\r
-                                       a, i;\r
-                               if (s[p] !== undefined) {\r
-                                       return p;\r
-                               }\r
-                               p = p.charAt(0).toUpperCase() + p.substr(1);\r
-                               a = ["O","Moz","ms","Ms","Webkit"];\r
-                               i = 5;\r
-                               while (--i > -1 && s[a[i]+p] === undefined) { }\r
-                               if (i >= 0) {\r
-                                       _prefix = (i === 3) ? "ms" : a[i];\r
-                                       _prefixCSS = "-" + _prefix.toLowerCase() + "-";\r
-                                       return _prefix + p;\r
-                               }\r
-                               return null;\r
-                       },\r
-\r
-                       _getComputedStyle = _doc.defaultView ? _doc.defaultView.getComputedStyle : function() {},\r
-\r
-                       /**\r
-                        * @private Returns the css style for a particular property of an element. For example, to get whatever the current "left" css value for an element with an ID of "myElement", you could do:\r
-                        * var currentLeft = CSSPlugin.getStyle( document.getElementById("myElement"), "left");\r
-                        *\r
-                        * @param {!Object} t Target element whose style property you want to query\r
-                        * @param {!string} p Property name (like "left" or "top" or "marginTop", etc.)\r
-                        * @param {Object=} cs Computed style object. This just provides a way to speed processing if you're going to get several properties on the same element in quick succession - you can reuse the result of the getComputedStyle() call.\r
-                        * @param {boolean=} calc If true, the value will not be read directly from the element's "style" property (if it exists there), but instead the getComputedStyle() result will be used. This can be useful when you want to ensure that the browser itself is interpreting the value.\r
-                        * @param {string=} dflt Default value that should be returned in the place of null, "none", "auto" or "auto auto".\r
-                        * @return {?string} The current property value\r
-                        */\r
-                       _getStyle = CSSPlugin.getStyle = function(t, p, cs, calc, dflt) {\r
-                               var rv;\r
-                               if (!_supportsOpacity) if (p === "opacity") { //several versions of IE don't use the standard "opacity" property - they use things like filter:alpha(opacity=50), so we parse that here.\r
-                                       return _getIEOpacity(t);\r
-                               }\r
-                               if (!calc && t.style[p]) {\r
-                                       rv = t.style[p];\r
-                               } else if ((cs = cs || _getComputedStyle(t))) {\r
-                                       rv = cs[p] || cs.getPropertyValue(p) || cs.getPropertyValue(p.replace(_capsExp, "-$1").toLowerCase());\r
-                               } else if (t.currentStyle) {\r
-                                       rv = t.currentStyle[p];\r
-                               }\r
-                               return (dflt != null && (!rv || rv === "none" || rv === "auto" || rv === "auto auto")) ? dflt : rv;\r
-                       },\r
-\r
-                       /**\r
-                        * @private Pass the target element, the property name, the numeric value, and the suffix (like "%", "em", "px", etc.) and it will spit back the equivalent pixel number.\r
-                        * @param {!Object} t Target element\r
-                        * @param {!string} p Property name (like "left", "top", "marginLeft", etc.)\r
-                        * @param {!number} v Value\r
-                        * @param {string=} sfx Suffix (like "px" or "%" or "em")\r
-                        * @param {boolean=} recurse If true, the call is a recursive one. In some browsers (like IE7/8), occasionally the value isn't accurately reported initially, but if we run the function again it will take effect.\r
-                        * @return {number} value in pixels\r
-                        */\r
-                       _convertToPixels = _internals.convertToPixels = function(t, p, v, sfx, recurse) {\r
-                               if (sfx === "px" || !sfx) { return v; }\r
-                               if (sfx === "auto" || !v) { return 0; }\r
-                               var horiz = _horizExp.test(p),\r
-                                       node = t,\r
-                                       style = _tempDiv.style,\r
-                                       neg = (v < 0),\r
-                                       pix, cache, time;\r
-                               if (neg) {\r
-                                       v = -v;\r
-                               }\r
-                               if (sfx === "%" && p.indexOf("border") !== -1) {\r
-                                       pix = (v / 100) * (horiz ? t.clientWidth : t.clientHeight);\r
-                               } else {\r
-                                       style.cssText = "border:0 solid red;position:" + _getStyle(t, "position") + ";line-height:0;";\r
-                                       if (sfx === "%" || !node.appendChild) {\r
-                                               node = t.parentNode || _doc.body;\r
-                                               cache = node._gsCache;\r
-                                               time = TweenLite.ticker.frame;\r
-                                               if (cache && horiz && cache.time === time) { //performance optimization: we record the width of elements along with the ticker frame so that we can quickly get it again on the same tick (seems relatively safe to assume it wouldn't change on the same tick)\r
-                                                       return cache.width * v / 100;\r
-                                               }\r
-                                               style[(horiz ? "width" : "height")] = v + sfx;\r
-                                       } else {\r
-                                               style[(horiz ? "borderLeftWidth" : "borderTopWidth")] = v + sfx;\r
-                                       }\r
-                                       node.appendChild(_tempDiv);\r
-                                       pix = parseFloat(_tempDiv[(horiz ? "offsetWidth" : "offsetHeight")]);\r
-                                       node.removeChild(_tempDiv);\r
-                                       if (horiz && sfx === "%" && CSSPlugin.cacheWidths !== false) {\r
-                                               cache = node._gsCache = node._gsCache || {};\r
-                                               cache.time = time;\r
-                                               cache.width = pix / v * 100;\r
-                                       }\r
-                                       if (pix === 0 && !recurse) {\r
-                                               pix = _convertToPixels(t, p, v, sfx, true);\r
-                                       }\r
-                               }\r
-                               return neg ? -pix : pix;\r
-                       },\r
-                       _calculateOffset = _internals.calculateOffset = function(t, p, cs) { //for figuring out "top" or "left" in px when it's "auto". We need to factor in margin with the offsetLeft/offsetTop\r
-                               if (_getStyle(t, "position", cs) !== "absolute") { return 0; }\r
-                               var dim = ((p === "left") ? "Left" : "Top"),\r
-                                       v = _getStyle(t, "margin" + dim, cs);\r
-                               return t["offset" + dim] - (_convertToPixels(t, p, parseFloat(v), v.replace(_suffixExp, "")) || 0);\r
-                       },\r
-\r
-                       // @private returns at object containing ALL of the style properties in camelCase and their associated values.\r
-                       _getAllStyles = function(t, cs) {\r
-                               var s = {},\r
-                                       i, tr;\r
-                               if ((cs = cs || _getComputedStyle(t, null))) {\r
-                                       if ((i = cs.length)) {\r
-                                               while (--i > -1) {\r
-                                                       s[cs[i].replace(_camelExp, _camelFunc)] = cs.getPropertyValue(cs[i]);\r
-                                               }\r
-                                       } else { //Opera behaves differently - cs.length is always 0, so we must do a for...in loop.\r
-                                               for (i in cs) {\r
-                                                       s[i] = cs[i];\r
-                                               }\r
-                                       }\r
-                               } else if ((cs = t.currentStyle || t.style)) {\r
-                                       for (i in cs) {\r
-                                               if (typeof(i) === "string" && s[i] === undefined) {\r
-                                                       s[i.replace(_camelExp, _camelFunc)] = cs[i];\r
-                                               }\r
-                                       }\r
-                               }\r
-                               if (!_supportsOpacity) {\r
-                                       s.opacity = _getIEOpacity(t);\r
-                               }\r
-                               tr = _getTransform(t, cs, false);\r
-                               s.rotation = tr.rotation;\r
-                               s.skewX = tr.skewX;\r
-                               s.scaleX = tr.scaleX;\r
-                               s.scaleY = tr.scaleY;\r
-                               s.x = tr.x;\r
-                               s.y = tr.y;\r
-                               if (_supports3D) {\r
-                                       s.z = tr.z;\r
-                                       s.rotationX = tr.rotationX;\r
-                                       s.rotationY = tr.rotationY;\r
-                                       s.scaleZ = tr.scaleZ;\r
-                               }\r
-                               if (s.filters) {\r
-                                       delete s.filters;\r
-                               }\r
-                               return s;\r
-                       },\r
-\r
-                       // @private analyzes two style objects (as returned by _getAllStyles()) and only looks for differences between them that contain tweenable values (like a number or color). It returns an object with a "difs" property which refers to an object containing only those isolated properties and values for tweening, and a "firstMPT" property which refers to the first MiniPropTween instance in a linked list that recorded all the starting values of the different properties so that we can revert to them at the end or beginning of the tween - we don't want the cascading to get messed up. The forceLookup parameter is an optional generic object with properties that should be forced into the results - this is necessary for className tweens that are overwriting others because imagine a scenario where a rollover/rollout adds/removes a class and the user swipes the mouse over the target SUPER fast, thus nothing actually changed yet and the subsequent comparison of the properties would indicate they match (especially when px rounding is taken into consideration), thus no tweening is necessary even though it SHOULD tween and remove those properties after the tween (otherwise the inline styles will contaminate things). See the className SpecialProp code for details.\r
-                       _cssDif = function(t, s1, s2, vars, forceLookup) {\r
-                               var difs = {},\r
-                                       style = t.style,\r
-                                       val, p, mpt;\r
-                               for (p in s2) {\r
-                                       if (p !== "cssText") if (p !== "length") if (isNaN(p)) if (s1[p] !== (val = s2[p]) || (forceLookup && forceLookup[p])) if (p.indexOf("Origin") === -1) if (typeof(val) === "number" || typeof(val) === "string") {\r
-                                               difs[p] = (val === "auto" && (p === "left" || p === "top")) ? _calculateOffset(t, p) : ((val === "" || val === "auto" || val === "none") && typeof(s1[p]) === "string" && s1[p].replace(_NaNExp, "") !== "") ? 0 : val; //if the ending value is defaulting ("" or "auto"), we check the starting value and if it can be parsed into a number (a string which could have a suffix too, like 700px), then we swap in 0 for "" or "auto" so that things actually tween.\r
-                                               if (style[p] !== undefined) { //for className tweens, we must remember which properties already existed inline - the ones that didn't should be removed when the tween isn't in progress because they were only introduced to facilitate the transition between classes.\r
-                                                       mpt = new MiniPropTween(style, p, style[p], mpt);\r
-                                               }\r
-                                       }\r
-                               }\r
-                               if (vars) {\r
-                                       for (p in vars) { //copy properties (except className)\r
-                                               if (p !== "className") {\r
-                                                       difs[p] = vars[p];\r
-                                               }\r
-                                       }\r
-                               }\r
-                               return {difs:difs, firstMPT:mpt};\r
-                       },\r
-                       _dimensions = {width:["Left","Right"], height:["Top","Bottom"]},\r
-                       _margins = ["marginLeft","marginRight","marginTop","marginBottom"],\r
-\r
-                       /**\r
-                        * @private Gets the width or height of an element\r
-                        * @param {!Object} t Target element\r
-                        * @param {!string} p Property name ("width" or "height")\r
-                        * @param {Object=} cs Computed style object (if one exists). Just a speed optimization.\r
-                        * @return {number} Dimension (in pixels)\r
-                        */\r
-                       _getDimension = function(t, p, cs) {\r
-                               var v = parseFloat((p === "width") ? t.offsetWidth : t.offsetHeight),\r
-                                       a = _dimensions[p],\r
-                                       i = a.length;\r
-                               cs = cs || _getComputedStyle(t, null);\r
-                               while (--i > -1) {\r
-                                       v -= parseFloat( _getStyle(t, "padding" + a[i], cs, true) ) || 0;\r
-                                       v -= parseFloat( _getStyle(t, "border" + a[i] + "Width", cs, true) ) || 0;\r
-                               }\r
-                               return v;\r
-                       },\r
-\r
-                       // @private Parses position-related complex strings like "top left" or "50px 10px" or "70% 20%", etc. which are used for things like transformOrigin or backgroundPosition. Optionally decorates a supplied object (recObj) with the following properties: "ox" (offsetX), "oy" (offsetY), "oxp" (if true, "ox" is a percentage not a pixel value), and "oxy" (if true, "oy" is a percentage not a pixel value)\r
-                       _parsePosition = function(v, recObj) {\r
-                               if (v == null || v === "" || v === "auto" || v === "auto auto") { //note: Firefox uses "auto auto" as default whereas Chrome uses "auto".\r
-                                       v = "0 0";\r
-                               }\r
-                               var a = v.split(" "),\r
-                                       x = (v.indexOf("left") !== -1) ? "0%" : (v.indexOf("right") !== -1) ? "100%" : a[0],\r
-                                       y = (v.indexOf("top") !== -1) ? "0%" : (v.indexOf("bottom") !== -1) ? "100%" : a[1];\r
-                               if (y == null) {\r
-                                       y = "0";\r
-                               } else if (y === "center") {\r
-                                       y = "50%";\r
-                               }\r
-                               if (x === "center" || (isNaN(parseFloat(x)) && (x + "").indexOf("=") === -1)) { //remember, the user could flip-flop the values and say "bottom center" or "center bottom", etc. "center" is ambiguous because it could be used to describe horizontal or vertical, hence the isNaN(). If there's an "=" sign in the value, it's relative.\r
-                                       x = "50%";\r
-                               }\r
-                               if (recObj) {\r
-                                       recObj.oxp = (x.indexOf("%") !== -1);\r
-                                       recObj.oyp = (y.indexOf("%") !== -1);\r
-                                       recObj.oxr = (x.charAt(1) === "=");\r
-                                       recObj.oyr = (y.charAt(1) === "=");\r
-                                       recObj.ox = parseFloat(x.replace(_NaNExp, ""));\r
-                                       recObj.oy = parseFloat(y.replace(_NaNExp, ""));\r
-                               }\r
-                               return x + " " + y + ((a.length > 2) ? " " + a[2] : "");\r
-                       },\r
-\r
-                       /**\r
-                        * @private Takes an ending value (typically a string, but can be a number) and a starting value and returns the change between the two, looking for relative value indicators like += and -= and it also ignores suffixes (but make sure the ending value starts with a number or +=/-= and that the starting value is a NUMBER!)\r
-                        * @param {(number|string)} e End value which is typically a string, but could be a number\r
-                        * @param {(number|string)} b Beginning value which is typically a string but could be a number\r
-                        * @return {number} Amount of change between the beginning and ending values (relative values that have a "+=" or "-=" are recognized)\r
-                        */\r
-                       _parseChange = function(e, b) {\r
-                               return (typeof(e) === "string" && e.charAt(1) === "=") ? parseInt(e.charAt(0) + "1", 10) * parseFloat(e.substr(2)) : parseFloat(e) - parseFloat(b);\r
-                       },\r
-\r
-                       /**\r
-                        * @private Takes a value and a default number, checks if the value is relative, null, or numeric and spits back a normalized number accordingly. Primarily used in the _parseTransform() function.\r
-                        * @param {Object} v Value to be parsed\r
-                        * @param {!number} d Default value (which is also used for relative calculations if "+=" or "-=" is found in the first parameter)\r
-                        * @return {number} Parsed value\r
-                        */\r
-                       _parseVal = function(v, d) {\r
-                               return (v == null) ? d : (typeof(v) === "string" && v.charAt(1) === "=") ? parseInt(v.charAt(0) + "1", 10) * Number(v.substr(2)) + d : parseFloat(v);\r
-                       },\r
-\r
-                       /**\r
-                        * @private Translates strings like "40deg" or "40" or 40rad" or "+=40deg" or "270_short" or "-90_cw" or "+=45_ccw" to a numeric radian angle. Of course a starting/default value must be fed in too so that relative values can be calculated properly.\r
-                        * @param {Object} v Value to be parsed\r
-                        * @param {!number} d Default value (which is also used for relative calculations if "+=" or "-=" is found in the first parameter)\r
-                        * @param {string=} p property name for directionalEnd (optional - only used when the parsed value is directional ("_short", "_cw", or "_ccw" suffix). We need a way to store the uncompensated value so that at the end of the tween, we set it to exactly what was requested with no directional compensation). Property name would be "rotation", "rotationX", or "rotationY"\r
-                        * @param {Object=} directionalEnd An object that will store the raw end values for directional angles ("_short", "_cw", or "_ccw" suffix). We need a way to store the uncompensated value so that at the end of the tween, we set it to exactly what was requested with no directional compensation.\r
-                        * @return {number} parsed angle in radians\r
-                        */\r
-                       _parseAngle = function(v, d, p, directionalEnd) {\r
-                               var min = 0.000001,\r
-                                       cap, split, dif, result;\r
-                               if (v == null) {\r
-                                       result = d;\r
-                               } else if (typeof(v) === "number") {\r
-                                       result = v;\r
-                               } else {\r
-                                       cap = 360;\r
-                                       split = v.split("_");\r
-                                       dif = Number(split[0].replace(_NaNExp, "")) * ((v.indexOf("rad") === -1) ? 1 : _RAD2DEG) - ((v.charAt(1) === "=") ? 0 : d);\r
-                                       if (split.length) {\r
-                                               if (directionalEnd) {\r
-                                                       directionalEnd[p] = d + dif;\r
-                                               }\r
-                                               if (v.indexOf("short") !== -1) {\r
-                                                       dif = dif % cap;\r
-                                                       if (dif !== dif % (cap / 2)) {\r
-                                                               dif = (dif < 0) ? dif + cap : dif - cap;\r
-                                                       }\r
-                                               }\r
-                                               if (v.indexOf("_cw") !== -1 && dif < 0) {\r
-                                                       dif = ((dif + cap * 9999999999) % cap) - ((dif / cap) | 0) * cap;\r
-                                               } else if (v.indexOf("ccw") !== -1 && dif > 0) {\r
-                                                       dif = ((dif - cap * 9999999999) % cap) - ((dif / cap) | 0) * cap;\r
-                                               }\r
-                                       }\r
-                                       result = d + dif;\r
-                               }\r
-                               if (result < min && result > -min) {\r
-                                       result = 0;\r
-                               }\r
-                               return result;\r
-                       },\r
-\r
-                       _colorLookup = {aqua:[0,255,255],\r
-                               lime:[0,255,0],\r
-                               silver:[192,192,192],\r
-                               black:[0,0,0],\r
-                               maroon:[128,0,0],\r
-                               teal:[0,128,128],\r
-                               blue:[0,0,255],\r
-                               navy:[0,0,128],\r
-                               white:[255,255,255],\r
-                               fuchsia:[255,0,255],\r
-                               olive:[128,128,0],\r
-                               yellow:[255,255,0],\r
-                               orange:[255,165,0],\r
-                               gray:[128,128,128],\r
-                               purple:[128,0,128],\r
-                               green:[0,128,0],\r
-                               red:[255,0,0],\r
-                               pink:[255,192,203],\r
-                               cyan:[0,255,255],\r
-                               transparent:[255,255,255,0]},\r
-\r
-                       _hue = function(h, m1, m2) {\r
-                               h = (h < 0) ? h + 1 : (h > 1) ? h - 1 : h;\r
-                               return ((((h * 6 < 1) ? m1 + (m2 - m1) * h * 6 : (h < 0.5) ? m2 : (h * 3 < 2) ? m1 + (m2 - m1) * (2 / 3 - h) * 6 : m1) * 255) + 0.5) | 0;\r
-                       },\r
-\r
-                       /**\r
-                        * @private Parses a color (like #9F0, #FF9900, or rgb(255,51,153)) into an array with 3 elements for red, green, and blue. Also handles rgba() values (splits into array of 4 elements of course)\r
-                        * @param {(string|number)} v The value the should be parsed which could be a string like #9F0 or rgb(255,102,51) or rgba(255,0,0,0.5) or it could be a number like 0xFF00CC or even a named color like red, blue, purple, etc.\r
-                        * @return {Array.<number>} An array containing red, green, and blue (and optionally alpha) in that order.\r
-                        */\r
-                       _parseColor = function(v) {\r
-                               var c1, c2, c3, h, s, l;\r
-                               if (!v || v === "") {\r
-                                       return _colorLookup.black;\r
-                               }\r
-                               if (typeof(v) === "number") {\r
-                                       return [v >> 16, (v >> 8) & 255, v & 255];\r
-                               }\r
-                               if (v.charAt(v.length - 1) === ",") { //sometimes a trailing commma is included and we should chop it off (typically from a comma-delimited list of values like a textShadow:"2px 2px 2px blue, 5px 5px 5px rgb(255,0,0)" - in this example "blue," has a trailing comma. We could strip it out inside parseComplex() but we'd need to do it to the beginning and ending values plus it wouldn't provide protection from other potential scenarios like if the user passes in a similar value.\r
-                                       v = v.substr(0, v.length - 1);\r
-                               }\r
-                               if (_colorLookup[v]) {\r
-                                       return _colorLookup[v];\r
-                               }\r
-                               if (v.charAt(0) === "#") {\r
-                                       if (v.length === 4) { //for shorthand like #9F0\r
-                                               c1 = v.charAt(1),\r
-                                               c2 = v.charAt(2),\r
-                                               c3 = v.charAt(3);\r
-                                               v = "#" + c1 + c1 + c2 + c2 + c3 + c3;\r
-                                       }\r
-                                       v = parseInt(v.substr(1), 16);\r
-                                       return [v >> 16, (v >> 8) & 255, v & 255];\r
-                               }\r
-                               if (v.substr(0, 3) === "hsl") {\r
-                                       v = v.match(_numExp);\r
-                                       h = (Number(v[0]) % 360) / 360;\r
-                                       s = Number(v[1]) / 100;\r
-                                       l = Number(v[2]) / 100;\r
-                                       c2 = (l <= 0.5) ? l * (s + 1) : l + s - l * s;\r
-                                       c1 = l * 2 - c2;\r
-                                       if (v.length > 3) {\r
-                                               v[3] = Number(v[3]);\r
-                                       }\r
-                                       v[0] = _hue(h + 1 / 3, c1, c2);\r
-                                       v[1] = _hue(h, c1, c2);\r
-                                       v[2] = _hue(h - 1 / 3, c1, c2);\r
-                                       return v;\r
-                               }\r
-                               v = v.match(_numExp) || _colorLookup.transparent;\r
-                               v[0] = Number(v[0]);\r
-                               v[1] = Number(v[1]);\r
-                               v[2] = Number(v[2]);\r
-                               if (v.length > 3) {\r
-                                       v[3] = Number(v[3]);\r
-                               }\r
-                               return v;\r
-                       },\r
-                       _colorExp = "(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#.+?\\b"; //we'll dynamically build this Regular Expression to conserve file size. After building it, it will be able to find rgb(), rgba(), # (hexadecimal), and named color values like red, blue, purple, etc.\r
-\r
-               for (p in _colorLookup) {\r
-                       _colorExp += "|" + p + "\\b";\r
-               }\r
-               _colorExp = new RegExp(_colorExp+")", "gi");\r
-\r
-               /**\r
-                * @private Returns a formatter function that handles taking a string (or number in some cases) and returning a consistently formatted one in terms of delimiters, quantity of values, etc. For example, we may get boxShadow values defined as "0px red" or "0px 0px 10px rgb(255,0,0)" or "0px 0px 20px 20px #F00" and we need to ensure that what we get back is described with 4 numbers and a color. This allows us to feed it into the _parseComplex() method and split the values up appropriately. The neat thing about this _getFormatter() function is that the dflt defines a pattern as well as a default, so for example, _getFormatter("0px 0px 0px 0px #777", true) not only sets the default as 0px for all distances and #777 for the color, but also sets the pattern such that 4 numbers and a color will always get returned.\r
-                * @param {!string} dflt The default value and pattern to follow. So "0px 0px 0px 0px #777" will ensure that 4 numbers and a color will always get returned.\r
-                * @param {boolean=} clr If true, the values should be searched for color-related data. For example, boxShadow values typically contain a color whereas borderRadius don't.\r
-                * @param {boolean=} collapsible If true, the value is a top/left/right/bottom style one that acts like margin or padding, where if only one value is received, it's used for all 4; if 2 are received, the first is duplicated for 3rd (bottom) and the 2nd is duplicated for the 4th spot (left), etc.\r
-                * @return {Function} formatter function\r
-                */\r
-               var _getFormatter = function(dflt, clr, collapsible, multi) {\r
-                               if (dflt == null) {\r
-                                       return function(v) {return v;};\r
-                               }\r
-                               var dColor = clr ? (dflt.match(_colorExp) || [""])[0] : "",\r
-                                       dVals = dflt.split(dColor).join("").match(_valuesExp) || [],\r
-                                       pfx = dflt.substr(0, dflt.indexOf(dVals[0])),\r
-                                       sfx = (dflt.charAt(dflt.length - 1) === ")") ? ")" : "",\r
-                                       delim = (dflt.indexOf(" ") !== -1) ? " " : ",",\r
-                                       numVals = dVals.length,\r
-                                       dSfx = (numVals > 0) ? dVals[0].replace(_numExp, "") : "",\r
-                                       formatter;\r
-                               if (!numVals) {\r
-                                       return function(v) {return v;};\r
-                               }\r
-                               if (clr) {\r
-                                       formatter = function(v) {\r
-                                               var color, vals, i, a;\r
-                                               if (typeof(v) === "number") {\r
-                                                       v += dSfx;\r
-                                               } else if (multi && _commasOutsideParenExp.test(v)) {\r
-                                                       a = v.replace(_commasOutsideParenExp, "|").split("|");\r
-                                                       for (i = 0; i < a.length; i++) {\r
-                                                               a[i] = formatter(a[i]);\r
-                                                       }\r
-                                                       return a.join(",");\r
-                                               }\r
-                                               color = (v.match(_colorExp) || [dColor])[0];\r
-                                               vals = v.split(color).join("").match(_valuesExp) || [];\r
-                                               i = vals.length;\r
-                                               if (numVals > i--) {\r
-                                                       while (++i < numVals) {\r
-                                                               vals[i] = collapsible ? vals[(((i - 1) / 2) | 0)] : dVals[i];\r
-                                                       }\r
-                                               }\r
-                                               return pfx + vals.join(delim) + delim + color + sfx + (v.indexOf("inset") !== -1 ? " inset" : "");\r
-                                       };\r
-                                       return formatter;\r
-\r
-                               }\r
-                               formatter = function(v) {\r
-                                       var vals, a, i;\r
-                                       if (typeof(v) === "number") {\r
-                                               v += dSfx;\r
-                                       } else if (multi && _commasOutsideParenExp.test(v)) {\r
-                                               a = v.replace(_commasOutsideParenExp, "|").split("|");\r
-                                               for (i = 0; i < a.length; i++) {\r
-                                                       a[i] = formatter(a[i]);\r
-                                               }\r
-                                               return a.join(",");\r
-                                       }\r
-                                       vals = v.match(_valuesExp) || [];\r
-                                       i = vals.length;\r
-                                       if (numVals > i--) {\r
-                                               while (++i < numVals) {\r
-                                                       vals[i] = collapsible ? vals[(((i - 1) / 2) | 0)] : dVals[i];\r
-                                               }\r
-                                       }\r
-                                       return pfx + vals.join(delim) + sfx;\r
-                               };\r
-                               return formatter;\r
-                       },\r
-\r
-                       /**\r
-                        * @private returns a formatter function that's used for edge-related values like marginTop, marginLeft, paddingBottom, paddingRight, etc. Just pass a comma-delimited list of property names related to the edges.\r
-                        * @param {!string} props a comma-delimited list of property names in order from top to left, like "marginTop,marginRight,marginBottom,marginLeft"\r
-                        * @return {Function} a formatter function\r
-                        */\r
-                       _getEdgeParser = function(props) {\r
-                               props = props.split(",");\r
-                               return function(t, e, p, cssp, pt, plugin, vars) {\r
-                                       var a = (e + "").split(" "),\r
-                                               i;\r
-                                       vars = {};\r
-                                       for (i = 0; i < 4; i++) {\r
-                                               vars[props[i]] = a[i] = a[i] || a[(((i - 1) / 2) >> 0)];\r
-                                       }\r
-                                       return cssp.parse(t, vars, pt, plugin);\r
-                               };\r
-                       },\r
-\r
-                       // @private used when other plugins must tween values first, like BezierPlugin or ThrowPropsPlugin, etc. That plugin's setRatio() gets called first so that the values are updated, and then we loop through the MiniPropTweens  which handle copying the values into their appropriate slots so that they can then be applied correctly in the main CSSPlugin setRatio() method. Remember, we typically create a proxy object that has a bunch of uniquely-named properties that we feed to the sub-plugin and it does its magic normally, and then we must interpret those values and apply them to the css because often numbers must get combined/concatenated, suffixes added, etc. to work with css, like boxShadow could have 4 values plus a color.\r
-                       _setPluginRatio = _internals._setPluginRatio = function(v) {\r
-                               this.plugin.setRatio(v);\r
-                               var d = this.data,\r
-                                       proxy = d.proxy,\r
-                                       mpt = d.firstMPT,\r
-                                       min = 0.000001,\r
-                                       val, pt, i, str;\r
-                               while (mpt) {\r
-                                       val = proxy[mpt.v];\r
-                                       if (mpt.r) {\r
-                                               val = Math.round(val);\r
-                                       } else if (val < min && val > -min) {\r
-                                               val = 0;\r
-                                       }\r
-                                       mpt.t[mpt.p] = val;\r
-                                       mpt = mpt._next;\r
-                               }\r
-                               if (d.autoRotate) {\r
-                                       d.autoRotate.rotation = proxy.rotation;\r
-                               }\r
-                               //at the end, we must set the CSSPropTween's "e" (end) value dynamically here because that's what is used in the final setRatio() method.\r
-                               if (v === 1) {\r
-                                       mpt = d.firstMPT;\r
-                                       while (mpt) {\r
-                                               pt = mpt.t;\r
-                                               if (!pt.type) {\r
-                                                       pt.e = pt.s + pt.xs0;\r
-                                               } else if (pt.type === 1) {\r
-                                                       str = pt.xs0 + pt.s + pt.xs1;\r
-                                                       for (i = 1; i < pt.l; i++) {\r
-                                                               str += pt["xn"+i] + pt["xs"+(i+1)];\r
-                                                       }\r
-                                                       pt.e = str;\r
-                                               }\r
-                                               mpt = mpt._next;\r
-                                       }\r
-                               }\r
-                       },\r
-\r
-                       /**\r
-                        * @private @constructor Used by a few SpecialProps to hold important values for proxies. For example, _parseToProxy() creates a MiniPropTween instance for each property that must get tweened on the proxy, and we record the original property name as well as the unique one we create for the proxy, plus whether or not the value needs to be rounded plus the original value.\r
-                        * @param {!Object} t target object whose property we're tweening (often a CSSPropTween)\r
-                        * @param {!string} p property name\r
-                        * @param {(number|string|object)} v value\r
-                        * @param {MiniPropTween=} next next MiniPropTween in the linked list\r
-                        * @param {boolean=} r if true, the tweened value should be rounded to the nearest integer\r
-                        */\r
-                       MiniPropTween = function(t, p, v, next, r) {\r
-                               this.t = t;\r
-                               this.p = p;\r
-                               this.v = v;\r
-                               this.r = r;\r
-                               if (next) {\r
-                                       next._prev = this;\r
-                                       this._next = next;\r
-                               }\r
-                       },\r
-\r
-                       /**\r
-                        * @private Most other plugins (like BezierPlugin and ThrowPropsPlugin and others) can only tween numeric values, but CSSPlugin must accommodate special values that have a bunch of extra data (like a suffix or strings between numeric values, etc.). For example, boxShadow has values like "10px 10px 20px 30px rgb(255,0,0)" which would utterly confuse other plugins. This method allows us to split that data apart and grab only the numeric data and attach it to uniquely-named properties of a generic proxy object ({}) so that we can feed that to virtually any plugin to have the numbers tweened. However, we must also keep track of which properties from the proxy go with which CSSPropTween values and instances. So we create a linked list of MiniPropTweens. Each one records a target (the original CSSPropTween), property (like "s" or "xn1" or "xn2") that we're tweening and the unique property name that was used for the proxy (like "boxShadow_xn1" and "boxShadow_xn2") and whether or not they need to be rounded. That way, in the _setPluginRatio() method we can simply copy the values over from the proxy to the CSSPropTween instance(s). Then, when the main CSSPlugin setRatio() method runs and applies the CSSPropTween values accordingly, they're updated nicely. So the external plugin tweens the numbers, _setPluginRatio() copies them over, and setRatio() acts normally, applying css-specific values to the element.\r
-                        * This method returns an object that has the following properties:\r
-                        *  - proxy: a generic object containing the starting values for all the properties that will be tweened by the external plugin.  This is what we feed to the external _onInitTween() as the target\r
-                        *  - end: a generic object containing the ending values for all the properties that will be tweened by the external plugin. This is what we feed to the external plugin's _onInitTween() as the destination values\r
-                        *  - firstMPT: the first MiniPropTween in the linked list\r
-                        *  - pt: the first CSSPropTween in the linked list that was created when parsing. If shallow is true, this linked list will NOT attach to the one passed into the _parseToProxy() as the "pt" (4th) parameter.\r
-                        * @param {!Object} t target object to be tweened\r
-                        * @param {!(Object|string)} vars the object containing the information about the tweening values (typically the end/destination values) that should be parsed\r
-                        * @param {!CSSPlugin} cssp The CSSPlugin instance\r
-                        * @param {CSSPropTween=} pt the next CSSPropTween in the linked list\r
-                        * @param {TweenPlugin=} plugin the external TweenPlugin instance that will be handling tweening the numeric values\r
-                        * @param {boolean=} shallow if true, the resulting linked list from the parse will NOT be attached to the CSSPropTween that was passed in as the "pt" (4th) parameter.\r
-                        * @return An object containing the following properties: proxy, end, firstMPT, and pt (see above for descriptions)\r
-                        */\r
-                       _parseToProxy = _internals._parseToProxy = function(t, vars, cssp, pt, plugin, shallow) {\r
-                               var bpt = pt,\r
-                                       start = {},\r
-                                       end = {},\r
-                                       transform = cssp._transform,\r
-                                       oldForce = _forcePT,\r
-                                       i, p, xp, mpt, firstPT;\r
-                               cssp._transform = null;\r
-                               _forcePT = vars;\r
-                               pt = firstPT = cssp.parse(t, vars, pt, plugin);\r
-                               _forcePT = oldForce;\r
-                               //break off from the linked list so the new ones are isolated.\r
-                               if (shallow) {\r
-                                       cssp._transform = transform;\r
-                                       if (bpt) {\r
-                                               bpt._prev = null;\r
-                                               if (bpt._prev) {\r
-                                                       bpt._prev._next = null;\r
-                                               }\r
-                                       }\r
-                               }\r
-                               while (pt && pt !== bpt) {\r
-                                       if (pt.type <= 1) {\r
-                                               p = pt.p;\r
-                                               end[p] = pt.s + pt.c;\r
-                                               start[p] = pt.s;\r
-                                               if (!shallow) {\r
-                                                       mpt = new MiniPropTween(pt, "s", p, mpt, pt.r);\r
-                                                       pt.c = 0;\r
-                                               }\r
-                                               if (pt.type === 1) {\r
-                                                       i = pt.l;\r
-                                                       while (--i > 0) {\r
-                                                               xp = "xn" + i;\r
-                                                               p = pt.p + "_" + xp;\r
-                                                               end[p] = pt.data[xp];\r
-                                                               start[p] = pt[xp];\r
-                                                               if (!shallow) {\r
-                                                                       mpt = new MiniPropTween(pt, xp, p, mpt, pt.rxp[xp]);\r
-                                                               }\r
-                                                       }\r
-                                               }\r
-                                       }\r
-                                       pt = pt._next;\r
-                               }\r
-                               return {proxy:start, end:end, firstMPT:mpt, pt:firstPT};\r
-                       },\r
-\r
-\r
-\r
-                       /**\r
-                        * @constructor Each property that is tweened has at least one CSSPropTween associated with it. These instances store important information like the target, property, starting value, amount of change, etc. They can also optionally have a number of "extra" strings and numeric values named xs1, xn1, xs2, xn2, xs3, xn3, etc. where "s" indicates string and "n" indicates number. These can be pieced together in a complex-value tween (type:1) that has alternating types of data like a string, number, string, number, etc. For example, boxShadow could be "5px 5px 8px rgb(102, 102, 51)". In that value, there are 6 numbers that may need to tween and then pieced back together into a string again with spaces, suffixes, etc. xs0 is special in that it stores the suffix for standard (type:0) tweens, -OR- the first string (prefix) in a complex-value (type:1) CSSPropTween -OR- it can be the non-tweening value in a type:-1 CSSPropTween. We do this to conserve memory.\r
-                        * CSSPropTweens have the following optional properties as well (not defined through the constructor):\r
-                        *  - l: Length in terms of the number of extra properties that the CSSPropTween has (default: 0). For example, for a boxShadow we may need to tween 5 numbers in which case l would be 5; Keep in mind that the start/end values for the first number that's tweened are always stored in the s and c properties to conserve memory. All additional values thereafter are stored in xn1, xn2, etc.\r
-                        *  - xfirst: The first instance of any sub-CSSPropTweens that are tweening properties of this instance. For example, we may split up a boxShadow tween so that there's a main CSSPropTween of type:1 that has various xs* and xn* values associated with the h-shadow, v-shadow, blur, color, etc. Then we spawn a CSSPropTween for each of those that has a higher priority and runs BEFORE the main CSSPropTween so that the values are all set by the time it needs to re-assemble them. The xfirst gives us an easy way to identify the first one in that chain which typically ends at the main one (because they're all prepende to the linked list)\r
-                        *  - plugin: The TweenPlugin instance that will handle the tweening of any complex values. For example, sometimes we don't want to use normal subtweens (like xfirst refers to) to tween the values - we might want ThrowPropsPlugin or BezierPlugin some other plugin to do the actual tweening, so we create a plugin instance and store a reference here. We need this reference so that if we get a request to round values or disable a tween, we can pass along that request.\r
-                        *  - data: Arbitrary data that needs to be stored with the CSSPropTween. Typically if we're going to have a plugin handle the tweening of a complex-value tween, we create a generic object that stores the END values that we're tweening to and the CSSPropTween's xs1, xs2, etc. have the starting values. We store that object as data. That way, we can simply pass that object to the plugin and use the CSSPropTween as the target.\r
-                        *  - setRatio: Only used for type:2 tweens that require custom functionality. In this case, we call the CSSPropTween's setRatio() method and pass the ratio each time the tween updates. This isn't quite as efficient as doing things directly in the CSSPlugin's setRatio() method, but it's very convenient and flexible.\r
-                        * @param {!Object} t Target object whose property will be tweened. Often a DOM element, but not always. It could be anything.\r
-                        * @param {string} p Property to tween (name). For example, to tween element.width, p would be "width".\r
-                        * @param {number} s Starting numeric value\r
-                        * @param {number} c Change in numeric value over the course of the entire tween. For example, if element.width starts at 5 and should end at 100, c would be 95.\r
-                        * @param {CSSPropTween=} next The next CSSPropTween in the linked list. If one is defined, we will define its _prev as the new instance, and the new instance's _next will be pointed at it.\r
-                        * @param {number=} type The type of CSSPropTween where -1 = a non-tweening value, 0 = a standard simple tween, 1 = a complex value (like one that has multiple numbers in a comma- or space-delimited string like border:"1px solid red"), and 2 = one that uses a custom setRatio function that does all of the work of applying the values on each update.\r
-                        * @param {string=} n Name of the property that should be used for overwriting purposes which is typically the same as p but not always. For example, we may need to create a subtween for the 2nd part of a "clip:rect(...)" tween in which case "p" might be xs1 but "n" is still "clip"\r
-                        * @param {boolean=} r If true, the value(s) should be rounded\r
-                        * @param {number=} pr Priority in the linked list order. Higher priority CSSPropTweens will be updated before lower priority ones. The default priority is 0.\r
-                        * @param {string=} b Beginning value. We store this to ensure that it is EXACTLY what it was when the tween began without any risk of interpretation issues.\r
-                        * @param {string=} e Ending value. We store this to ensure that it is EXACTLY what the user defined at the end of the tween without any risk of interpretation issues.\r
-                        */\r
-                       CSSPropTween = _internals.CSSPropTween = function(t, p, s, c, next, type, n, r, pr, b, e) {\r
-                               this.t = t; //target\r
-                               this.p = p; //property\r
-                               this.s = s; //starting value\r
-                               this.c = c; //change value\r
-                               this.n = n || p; //name that this CSSPropTween should be associated to (usually the same as p, but not always - n is what overwriting looks at)\r
-                               if (!(t instanceof CSSPropTween)) {\r
-                                       _overwriteProps.push(this.n);\r
-                               }\r
-                               this.r = r; //round (boolean)\r
-                               this.type = type || 0; //0 = normal tween, -1 = non-tweening (in which case xs0 will be applied to the target's property, like tp.t[tp.p] = tp.xs0), 1 = complex-value SpecialProp, 2 = custom setRatio() that does all the work\r
-                               if (pr) {\r
-                                       this.pr = pr;\r
-                                       _hasPriority = true;\r
-                               }\r
-                               this.b = (b === undefined) ? s : b;\r
-                               this.e = (e === undefined) ? s + c : e;\r
-                               if (next) {\r
-                                       this._next = next;\r
-                                       next._prev = this;\r
-                               }\r
-                       },\r
-\r
-                       /**\r
-                        * Takes a target, the beginning value and ending value (as strings) and parses them into a CSSPropTween (possibly with child CSSPropTweens) that accommodates multiple numbers, colors, comma-delimited values, etc. For example:\r
-                        * sp.parseComplex(element, "boxShadow", "5px 10px 20px rgb(255,102,51)", "0px 0px 0px red", true, "0px 0px 0px rgb(0,0,0,0)", pt);\r
-                        * It will walk through the beginning and ending values (which should be in the same format with the same number and type of values) and figure out which parts are numbers, what strings separate the numeric/tweenable values, and then create the CSSPropTweens accordingly. If a plugin is defined, no child CSSPropTweens will be created. Instead, the ending values will be stored in the "data" property of the returned CSSPropTween like: {s:-5, xn1:-10, xn2:-20, xn3:255, xn4:0, xn5:0} so that it can be fed to any other plugin and it'll be plain numeric tweens but the recomposition of the complex value will be handled inside CSSPlugin's setRatio().\r
-                        * If a setRatio is defined, the type of the CSSPropTween will be set to 2 and recomposition of the values will be the responsibility of that method.\r
-                        *\r
-                        * @param {!Object} t Target whose property will be tweened\r
-                        * @param {!string} p Property that will be tweened (its name, like "left" or "backgroundColor" or "boxShadow")\r
-                        * @param {string} b Beginning value\r
-                        * @param {string} e Ending value\r
-                        * @param {boolean} clrs If true, the value could contain a color value like "rgb(255,0,0)" or "#F00" or "red". The default is false, so no colors will be recognized (a performance optimization)\r
-                        * @param {(string|number|Object)} dflt The default beginning value that should be used if no valid beginning value is defined or if the number of values inside the complex beginning and ending values don't match\r
-                        * @param {?CSSPropTween} pt CSSPropTween instance that is the current head of the linked list (we'll prepend to this).\r
-                        * @param {number=} pr Priority in the linked list order. Higher priority properties will be updated before lower priority ones. The default priority is 0.\r
-                        * @param {TweenPlugin=} plugin If a plugin should handle the tweening of extra properties, pass the plugin instance here. If one is defined, then NO subtweens will be created for any extra properties (the properties will be created - just not additional CSSPropTween instances to tween them) because the plugin is expected to do so. However, the end values WILL be populated in the "data" property, like {s:100, xn1:50, xn2:300}\r
-                        * @param {function(number)=} setRatio If values should be set in a custom function instead of being pieced together in a type:1 (complex-value) CSSPropTween, define that custom function here.\r
-                        * @return {CSSPropTween} The first CSSPropTween in the linked list which includes the new one(s) added by the parseComplex() call.\r
-                        */\r
-                       _parseComplex = CSSPlugin.parseComplex = function(t, p, b, e, clrs, dflt, pt, pr, plugin, setRatio) {\r
-                               //DEBUG: _log("parseComplex: "+p+", b: "+b+", e: "+e);\r
-                               b = b || dflt || "";\r
-                               pt = new CSSPropTween(t, p, 0, 0, pt, (setRatio ? 2 : 1), null, false, pr, b, e);\r
-                               e += ""; //ensures it's a string\r
-                               var ba = b.split(", ").join(",").split(" "), //beginning array\r
-                                       ea = e.split(", ").join(",").split(" "), //ending array\r
-                                       l = ba.length,\r
-                                       autoRound = (_autoRound !== false),\r
-                                       i, xi, ni, bv, ev, bnums, enums, bn, rgba, temp, cv, str;\r
-                               if (e.indexOf(",") !== -1 || b.indexOf(",") !== -1) {\r
-                                       ba = ba.join(" ").replace(_commasOutsideParenExp, ", ").split(" ");\r
-                                       ea = ea.join(" ").replace(_commasOutsideParenExp, ", ").split(" ");\r
-                                       l = ba.length;\r
-                               }\r
-                               if (l !== ea.length) {\r
-                                       //DEBUG: _log("mismatched formatting detected on " + p + " (" + b + " vs " + e + ")");\r
-                                       ba = (dflt || "").split(" ");\r
-                                       l = ba.length;\r
-                               }\r
-                               pt.plugin = plugin;\r
-                               pt.setRatio = setRatio;\r
-                               for (i = 0; i < l; i++) {\r
-                                       bv = ba[i];\r
-                                       ev = ea[i];\r
-                                       bn = parseFloat(bv);\r
-\r
-                                       //if the value begins with a number (most common). It's fine if it has a suffix like px\r
-                                       if (bn || bn === 0) {\r
-                                               pt.appendXtra("", bn, _parseChange(ev, bn), ev.replace(_relNumExp, ""), (autoRound && ev.indexOf("px") !== -1), true);\r
-\r
-                                       //if the value is a color\r
-                                       } else if (clrs && (bv.charAt(0) === "#" || _colorLookup[bv] || _rgbhslExp.test(bv))) {\r
-                                               str = ev.charAt(ev.length - 1) === "," ? ")," : ")"; //if there's a comma at the end, retain it.\r
-                                               bv = _parseColor(bv);\r
-                                               ev = _parseColor(ev);\r
-                                               rgba = (bv.length + ev.length > 6);\r
-                                               if (rgba && !_supportsOpacity && ev[3] === 0) { //older versions of IE don't support rgba(), so if the destination alpha is 0, just use "transparent" for the end color\r
-                                                       pt["xs" + pt.l] += pt.l ? " transparent" : "transparent";\r
-                                                       pt.e = pt.e.split(ea[i]).join("transparent");\r
-                                               } else {\r
-                                                       if (!_supportsOpacity) { //old versions of IE don't support rgba().\r
-                                                               rgba = false;\r
-                                                       }\r
-                                                       pt.appendXtra((rgba ? "rgba(" : "rgb("), bv[0], ev[0] - bv[0], ",", true, true)\r
-                                                               .appendXtra("", bv[1], ev[1] - bv[1], ",", true)\r
-                                                               .appendXtra("", bv[2], ev[2] - bv[2], (rgba ? "," : str), true);\r
-                                                       if (rgba) {\r
-                                                               bv = (bv.length < 4) ? 1 : bv[3];\r
-                                                               pt.appendXtra("", bv, ((ev.length < 4) ? 1 : ev[3]) - bv, str, false);\r
-                                                       }\r
-                                               }\r
-\r
-                                       } else {\r
-                                               bnums = bv.match(_numExp); //gets each group of numbers in the beginning value string and drops them into an array\r
-\r
-                                               //if no number is found, treat it as a non-tweening value and just append the string to the current xs.\r
-                                               if (!bnums) {\r
-                                                       pt["xs" + pt.l] += pt.l ? " " + bv : bv;\r
-\r
-                                               //loop through all the numbers that are found and construct the extra values on the pt.\r
-                                               } else {\r
-                                                       enums = ev.match(_relNumExp); //get each group of numbers in the end value string and drop them into an array. We allow relative values too, like +=50 or -=.5\r
-                                                       if (!enums || enums.length !== bnums.length) {\r
-                                                               //DEBUG: _log("mismatched formatting detected on " + p + " (" + b + " vs " + e + ")");\r
-                                                               return pt;\r
-                                                       }\r
-                                                       ni = 0;\r
-                                                       for (xi = 0; xi < bnums.length; xi++) {\r
-                                                               cv = bnums[xi];\r
-                                                               temp = bv.indexOf(cv, ni);\r
-                                                               pt.appendXtra(bv.substr(ni, temp - ni), Number(cv), _parseChange(enums[xi], cv), "", (autoRound && bv.substr(temp + cv.length, 2) === "px"), (xi === 0));\r
-                                                               ni = temp + cv.length;\r
-                                                       }\r
-                                                       pt["xs" + pt.l] += bv.substr(ni);\r
-                                               }\r
-                                       }\r
-                               }\r
-                               //if there are relative values ("+=" or "-=" prefix), we need to adjust the ending value to eliminate the prefixes and combine the values properly.\r
-                               if (e.indexOf("=") !== -1) if (pt.data) {\r
-                                       str = pt.xs0 + pt.data.s;\r
-                                       for (i = 1; i < pt.l; i++) {\r
-                                               str += pt["xs" + i] + pt.data["xn" + i];\r
-                                       }\r
-                                       pt.e = str + pt["xs" + i];\r
-                               }\r
-                               if (!pt.l) {\r
-                                       pt.type = -1;\r
-                                       pt.xs0 = pt.e;\r
-                               }\r
-                               return pt.xfirst || pt;\r
-                       },\r
-                       i = 9;\r
-\r
-\r
-               p = CSSPropTween.prototype;\r
-               p.l = p.pr = 0; //length (number of extra properties like xn1, xn2, xn3, etc.\r
-               while (--i > 0) {\r
-                       p["xn" + i] = 0;\r
-                       p["xs" + i] = "";\r
-               }\r
-               p.xs0 = "";\r
-               p._next = p._prev = p.xfirst = p.data = p.plugin = p.setRatio = p.rxp = null;\r
-\r
-\r
-               /**\r
-                * Appends and extra tweening value to a CSSPropTween and automatically manages any prefix and suffix strings. The first extra value is stored in the s and c of the main CSSPropTween instance, but thereafter any extras are stored in the xn1, xn2, xn3, etc. The prefixes and suffixes are stored in the xs0, xs1, xs2, etc. properties. For example, if I walk through a clip value like "rect(10px, 5px, 0px, 20px)", the values would be stored like this:\r
-                * xs0:"rect(", s:10, xs1:"px, ", xn1:5, xs2:"px, ", xn2:0, xs3:"px, ", xn3:20, xn4:"px)"\r
-                * And they'd all get joined together when the CSSPlugin renders (in the setRatio() method).\r
-                * @param {string=} pfx Prefix (if any)\r
-                * @param {!number} s Starting value\r
-                * @param {!number} c Change in numeric value over the course of the entire tween. For example, if the start is 5 and the end is 100, the change would be 95.\r
-                * @param {string=} sfx Suffix (if any)\r
-                * @param {boolean=} r Round (if true).\r
-                * @param {boolean=} pad If true, this extra value should be separated by the previous one by a space. If there is no previous extra and pad is true, it will automatically drop the space.\r
-                * @return {CSSPropTween} returns itself so that multiple methods can be chained together.\r
-                */\r
-               p.appendXtra = function(pfx, s, c, sfx, r, pad) {\r
-                       var pt = this,\r
-                               l = pt.l;\r
-                       pt["xs" + l] += (pad && l) ? " " + pfx : pfx || "";\r
-                       if (!c) if (l !== 0 && !pt.plugin) { //typically we'll combine non-changing values right into the xs to optimize performance, but we don't combine them when there's a plugin that will be tweening the values because it may depend on the values being split apart, like for a bezier, if a value doesn't change between the first and second iteration but then it does on the 3rd, we'll run into trouble because there's no xn slot for that value!\r
-                               pt["xs" + l] += s + (sfx || "");\r
-                               return pt;\r
-                       }\r
-                       pt.l++;\r
-                       pt.type = pt.setRatio ? 2 : 1;\r
-                       pt["xs" + pt.l] = sfx || "";\r
-                       if (l > 0) {\r
-                               pt.data["xn" + l] = s + c;\r
-                               pt.rxp["xn" + l] = r; //round extra property (we need to tap into this in the _parseToProxy() method)\r
-                               pt["xn" + l] = s;\r
-                               if (!pt.plugin) {\r
-                                       pt.xfirst = new CSSPropTween(pt, "xn" + l, s, c, pt.xfirst || pt, 0, pt.n, r, pt.pr);\r
-                                       pt.xfirst.xs0 = 0; //just to ensure that the property stays numeric which helps modern browsers speed up processing. Remember, in the setRatio() method, we do pt.t[pt.p] = val + pt.xs0 so if pt.xs0 is "" (the default), it'll cast the end value as a string. When a property is a number sometimes and a string sometimes, it prevents the compiler from locking in the data type, slowing things down slightly.\r
-                               }\r
-                               return pt;\r
-                       }\r
-                       pt.data = {s:s + c};\r
-                       pt.rxp = {};\r
-                       pt.s = s;\r
-                       pt.c = c;\r
-                       pt.r = r;\r
-                       return pt;\r
-               };\r
-\r
-               /**\r
-                * @constructor A SpecialProp is basically a css property that needs to be treated in a non-standard way, like if it may contain a complex value like boxShadow:"5px 10px 15px rgb(255, 102, 51)" or if it is associated with another plugin like ThrowPropsPlugin or BezierPlugin. Every SpecialProp is associated with a particular property name like "boxShadow" or "throwProps" or "bezier" and it will intercept those values in the vars object that's passed to the CSSPlugin and handle them accordingly.\r
-                * @param {!string} p Property name (like "boxShadow" or "throwProps")\r
-                * @param {Object=} options An object containing any of the following configuration options:\r
-                *                      - defaultValue: the default value\r
-                *                      - parser: A function that should be called when the associated property name is found in the vars. This function should return a CSSPropTween instance and it should ensure that it is properly inserted into the linked list. It will receive 4 paramters: 1) The target, 2) The value defined in the vars, 3) The CSSPlugin instance (whose _firstPT should be used for the linked list), and 4) A computed style object if one was calculated (this is a speed optimization that allows retrieval of starting values quicker)\r
-                *                      - formatter: a function that formats any value received for this special property (for example, boxShadow could take "5px 5px red" and format it to "5px 5px 0px 0px red" so that both the beginning and ending values have a common order and quantity of values.)\r
-                *                      - prefix: if true, we'll determine whether or not this property requires a vendor prefix (like Webkit or Moz or ms or O)\r
-                *                      - color: set this to true if the value for this SpecialProp may contain color-related values like rgb(), rgba(), etc.\r
-                *                      - priority: priority in the linked list order. Higher priority SpecialProps will be updated before lower priority ones. The default priority is 0.\r
-                *                      - multi: if true, the formatter should accommodate a comma-delimited list of values, like boxShadow could have multiple boxShadows listed out.\r
-                *                      - collapsible: if true, the formatter should treat the value like it's a top/right/bottom/left value that could be collapsed, like "5px" would apply to all, "5px, 10px" would use 5px for top/bottom and 10px for right/left, etc.\r
-                *                      - keyword: a special keyword that can [optionally] be found inside the value (like "inset" for boxShadow). This allows us to validate beginning/ending values to make sure they match (if the keyword is found in one, it'll be added to the other for consistency by default).\r
-                */\r
-               var SpecialProp = function(p, options) {\r
-                               options = options || {};\r
-                               this.p = options.prefix ? _checkPropPrefix(p) || p : p;\r
-                               _specialProps[p] = _specialProps[this.p] = this;\r
-                               this.format = options.formatter || _getFormatter(options.defaultValue, options.color, options.collapsible, options.multi);\r
-                               if (options.parser) {\r
-                                       this.parse = options.parser;\r
-                               }\r
-                               this.clrs = options.color;\r
-                               this.multi = options.multi;\r
-                               this.keyword = options.keyword;\r
-                               this.dflt = options.defaultValue;\r
-                               this.pr = options.priority || 0;\r
-                       },\r
-\r
-                       //shortcut for creating a new SpecialProp that can accept multiple properties as a comma-delimited list (helps minification). dflt can be an array for multiple values (we don't do a comma-delimited list because the default value may contain commas, like rect(0px,0px,0px,0px)). We attach this method to the SpecialProp class/object instead of using a private _createSpecialProp() method so that we can tap into it externally if necessary, like from another plugin.\r
-                       _registerComplexSpecialProp = _internals._registerComplexSpecialProp = function(p, options, defaults) {\r
-                               if (typeof(options) !== "object") {\r
-                                       options = {parser:defaults}; //to make backwards compatible with older versions of BezierPlugin and ThrowPropsPlugin\r
-                               }\r
-                               var a = p.split(","),\r
-                                       d = options.defaultValue,\r
-                                       i, temp;\r
-                               defaults = defaults || [d];\r
-                               for (i = 0; i < a.length; i++) {\r
-                                       options.prefix = (i === 0 && options.prefix);\r
-                                       options.defaultValue = defaults[i] || d;\r
-                                       temp = new SpecialProp(a[i], options);\r
-                               }\r
-                       },\r
-\r
-                       //creates a placeholder special prop for a plugin so that the property gets caught the first time a tween of it is attempted, and at that time it makes the plugin register itself, thus taking over for all future tweens of that property. This allows us to not mandate that things load in a particular order and it also allows us to log() an error that informs the user when they attempt to tween an external plugin-related property without loading its .js file.\r
-                       _registerPluginProp = function(p) {\r
-                               if (!_specialProps[p]) {\r
-                                       var pluginName = p.charAt(0).toUpperCase() + p.substr(1) + "Plugin";\r
-                                       _registerComplexSpecialProp(p, {parser:function(t, e, p, cssp, pt, plugin, vars) {\r
-                                               var pluginClass = (window.GreenSockGlobals || window).com.greensock.plugins[pluginName];\r
-                                               if (!pluginClass) {\r
-                                                       _log("Error: " + pluginName + " js file not loaded.");\r
-                                                       return pt;\r
-                                               }\r
-                                               pluginClass._cssRegister();\r
-                                               return _specialProps[p].parse(t, e, p, cssp, pt, plugin, vars);\r
-                                       }});\r
-                               }\r
-                       };\r
-\r
-\r
-               p = SpecialProp.prototype;\r
-\r
-               /**\r
-                * Alias for _parseComplex() that automatically plugs in certain values for this SpecialProp, like its property name, whether or not colors should be sensed, the default value, and priority. It also looks for any keyword that the SpecialProp defines (like "inset" for boxShadow) and ensures that the beginning and ending values have the same number of values for SpecialProps where multi is true (like boxShadow and textShadow can have a comma-delimited list)\r
-                * @param {!Object} t target element\r
-                * @param {(string|number|object)} b beginning value\r
-                * @param {(string|number|object)} e ending (destination) value\r
-                * @param {CSSPropTween=} pt next CSSPropTween in the linked list\r
-                * @param {TweenPlugin=} plugin If another plugin will be tweening the complex value, that TweenPlugin instance goes here.\r
-                * @param {function=} setRatio If a custom setRatio() method should be used to handle this complex value, that goes here.\r
-                * @return {CSSPropTween=} First CSSPropTween in the linked list\r
-                */\r
-               p.parseComplex = function(t, b, e, pt, plugin, setRatio) {\r
-                       var kwd = this.keyword,\r
-                               i, ba, ea, l, bi, ei;\r
-                       //if this SpecialProp's value can contain a comma-delimited list of values (like boxShadow or textShadow), we must parse them in a special way, and look for a keyword (like "inset" for boxShadow) and ensure that the beginning and ending BOTH have it if the end defines it as such. We also must ensure that there are an equal number of values specified (we can't tween 1 boxShadow to 3 for example)\r
-                       if (this.multi) if (_commasOutsideParenExp.test(e) || _commasOutsideParenExp.test(b)) {\r
-                               ba = b.replace(_commasOutsideParenExp, "|").split("|");\r
-                               ea = e.replace(_commasOutsideParenExp, "|").split("|");\r
-                       } else if (kwd) {\r
-                               ba = [b];\r
-                               ea = [e];\r
-                       }\r
-                       if (ea) {\r
-                               l = (ea.length > ba.length) ? ea.length : ba.length;\r
-                               for (i = 0; i < l; i++) {\r
-                                       b = ba[i] = ba[i] || this.dflt;\r
-                                       e = ea[i] = ea[i] || this.dflt;\r
-                                       if (kwd) {\r
-                                               bi = b.indexOf(kwd);\r
-                                               ei = e.indexOf(kwd);\r
-                                               if (bi !== ei) {\r
-                                                       e = (ei === -1) ? ea : ba;\r
-                                                       e[i] += " " + kwd;\r
-                                               }\r
-                                       }\r
-                               }\r
-                               b = ba.join(", ");\r
-                               e = ea.join(", ");\r
-                       }\r
-                       return _parseComplex(t, this.p, b, e, this.clrs, this.dflt, pt, this.pr, plugin, setRatio);\r
-               };\r
-\r
-               /**\r
-                * Accepts a target and end value and spits back a CSSPropTween that has been inserted into the CSSPlugin's linked list and conforms with all the conventions we use internally, like type:-1, 0, 1, or 2, setting up any extra property tweens, priority, etc. For example, if we have a boxShadow SpecialProp and call:\r
-                * this._firstPT = sp.parse(element, "5px 10px 20px rgb(2550,102,51)", "boxShadow", this);\r
-                * It should figure out the starting value of the element's boxShadow, compare it to the provided end value and create all the necessary CSSPropTweens of the appropriate types to tween the boxShadow. The CSSPropTween that gets spit back should already be inserted into the linked list (the 4th parameter is the current head, so prepend to that).\r
-                * @param {!Object} t Target object whose property is being tweened\r
-                * @param {Object} e End value as provided in the vars object (typically a string, but not always - like a throwProps would be an object).\r
-                * @param {!string} p Property name\r
-                * @param {!CSSPlugin} cssp The CSSPlugin instance that should be associated with this tween.\r
-                * @param {?CSSPropTween} pt The CSSPropTween that is the current head of the linked list (we'll prepend to it)\r
-                * @param {TweenPlugin=} plugin If a plugin will be used to tween the parsed value, this is the plugin instance.\r
-                * @param {Object=} vars Original vars object that contains the data for parsing.\r
-                * @return {CSSPropTween} The first CSSPropTween in the linked list which includes the new one(s) added by the parse() call.\r
-                */\r
-               p.parse = function(t, e, p, cssp, pt, plugin, vars) {\r
-                       return this.parseComplex(t.style, this.format(_getStyle(t, this.p, _cs, false, this.dflt)), this.format(e), pt, plugin);\r
-               };\r
-\r
-               /**\r
-                * Registers a special property that should be intercepted from any "css" objects defined in tweens. This allows you to handle them however you want without CSSPlugin doing it for you. The 2nd parameter should be a function that accepts 3 parameters:\r
-                *  1) Target object whose property should be tweened (typically a DOM element)\r
-                *  2) The end/destination value (could be a string, number, object, or whatever you want)\r
-                *  3) The tween instance (you probably don't need to worry about this, but it can be useful for looking up information like the duration)\r
-                *\r
-                * Then, your function should return a function which will be called each time the tween gets rendered, passing a numeric "ratio" parameter to your function that indicates the change factor (usually between 0 and 1). For example:\r
-                *\r
-                * CSSPlugin.registerSpecialProp("myCustomProp", function(target, value, tween) {\r
-                *      var start = target.style.width;\r
-                *      return function(ratio) {\r
-                *              target.style.width = (start + value * ratio) + "px";\r
-                *              console.log("set width to " + target.style.width);\r
-                *          }\r
-                * }, 0);\r
-                *\r
-                * Then, when I do this tween, it will trigger my special property:\r
-                *\r
-                * TweenLite.to(element, 1, {css:{myCustomProp:100}});\r
-                *\r
-                * In the example, of course, we're just changing the width, but you can do anything you want.\r
-                *\r
-                * @param {!string} name Property name (or comma-delimited list of property names) that should be intercepted and handled by your function. For example, if I define "myCustomProp", then it would handle that portion of the following tween: TweenLite.to(element, 1, {css:{myCustomProp:100}})\r
-                * @param {!function(Object, Object, Object, string):function(number)} onInitTween The function that will be called when a tween of this special property is performed. The function will receive 4 parameters: 1) Target object that should be tweened, 2) Value that was passed to the tween, 3) The tween instance itself (rarely used), and 4) The property name that's being tweened. Your function should return a function that should be called on every update of the tween. That function will receive a single parameter that is a "change factor" value (typically between 0 and 1) indicating the amount of change as a ratio. You can use this to determine how to set the values appropriately in your function.\r
-                * @param {number=} priority Priority that helps the engine determine the order in which to set the properties (default: 0). Higher priority properties will be updated before lower priority ones.\r
-                */\r
-               CSSPlugin.registerSpecialProp = function(name, onInitTween, priority) {\r
-                       _registerComplexSpecialProp(name, {parser:function(t, e, p, cssp, pt, plugin, vars) {\r
-                               var rv = new CSSPropTween(t, p, 0, 0, pt, 2, p, false, priority);\r
-                               rv.plugin = plugin;\r
-                               rv.setRatio = onInitTween(t, e, cssp._tween, p);\r
-                               return rv;\r
-                       }, priority:priority});\r
-               };\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-               //transform-related methods and properties\r
-               var _transformProps = ("scaleX,scaleY,scaleZ,x,y,z,skewX,skewY,rotation,rotationX,rotationY,perspective").split(","),\r
-                       _transformProp = _checkPropPrefix("transform"), //the Javascript (camelCase) transform property, like msTransform, WebkitTransform, MozTransform, or OTransform.\r
-                       _transformPropCSS = _prefixCSS + "transform",\r
-                       _transformOriginProp = _checkPropPrefix("transformOrigin"),\r
-                       _supports3D = (_checkPropPrefix("perspective") !== null),\r
-                       Transform = _internals.Transform = function() {\r
-                               this.skewY = 0;\r
-                       },\r
-\r
-                       /**\r
-                        * Parses the transform values for an element, returning an object with x, y, z, scaleX, scaleY, scaleZ, rotation, rotationX, rotationY, skewX, and skewY properties. Note: by default (for performance reasons), all skewing is combined into skewX and rotation but skewY still has a place in the transform object so that we can record how much of the skew is attributed to skewX vs skewY. Remember, a skewY of 10 looks the same as a rotation of 10 and skewX of -10.\r
-                        * @param {!Object} t target element\r
-                        * @param {Object=} cs computed style object (optional)\r
-                        * @param {boolean=} rec if true, the transform values will be recorded to the target element's _gsTransform object, like target._gsTransform = {x:0, y:0, z:0, scaleX:1...}\r
-                        * @param {boolean=} parse if true, we'll ignore any _gsTransform values that already exist on the element, and force a reparsing of the css (calculated style)\r
-                        * @return {object} object containing all of the transform properties/values like {x:0, y:0, z:0, scaleX:1...}\r
-                        */\r
-                       _getTransform = _internals.getTransform = function(t, cs, rec, parse) {\r
-                               if (t._gsTransform && rec && !parse) {\r
-                                       return t._gsTransform; //if the element already has a _gsTransform, use that. Note: some browsers don't accurately return the calculated style for the transform (particularly for SVG), so it's almost always safest to just use the values we've already applied rather than re-parsing things.\r
-                               }\r
-                               var tm = rec ? t._gsTransform || new Transform() : new Transform(),\r
-                                       invX = (tm.scaleX < 0), //in order to interpret things properly, we need to know if the user applied a negative scaleX previously so that we can adjust the rotation and skewX accordingly. Otherwise, if we always interpret a flipped matrix as affecting scaleY and the user only wants to tween the scaleX on multiple sequential tweens, it would keep the negative scaleY without that being the user's intent.\r
-                                       min = 0.00002,\r
-                                       rnd = 100000,\r
-                                       minAngle = 179.99,\r
-                                       minPI = minAngle * _DEG2RAD,\r
-                                       zOrigin = _supports3D ? parseFloat(_getStyle(t, _transformOriginProp, cs, false, "0 0 0").split(" ")[2]) || tm.zOrigin  || 0 : 0,\r
-                                       s, m, i, n, dec, scaleX, scaleY, rotation, skewX, difX, difY, difR, difS;\r
-                               if (_transformProp) {\r
-                                       s = _getStyle(t, _transformPropCSS, cs, true);\r
-                               } else if (t.currentStyle) {\r
-                                       //for older versions of IE, we need to interpret the filter portion that is in the format: progid:DXImageTransform.Microsoft.Matrix(M11=6.123233995736766e-17, M12=-1, M21=1, M22=6.123233995736766e-17, sizingMethod='auto expand') Notice that we need to swap b and c compared to a normal matrix.\r
-                                       s = t.currentStyle.filter.match(_ieGetMatrixExp);\r
-                                       s = (s && s.length === 4) ? [s[0].substr(4), Number(s[2].substr(4)), Number(s[1].substr(4)), s[3].substr(4), (tm.x || 0), (tm.y || 0)].join(",") : "";\r
-                               }\r
-                               //split the matrix values out into an array (m for matrix)\r
-                               m = (s || "").match(/(?:\-|\b)[\d\-\.e]+\b/gi) || [];\r
-                               i = m.length;\r
-                               while (--i > -1) {\r
-                                       n = Number(m[i]);\r
-                                       m[i] = (dec = n - (n |= 0)) ? ((dec * rnd + (dec < 0 ? -0.5 : 0.5)) | 0) / rnd + n : n; //convert strings to Numbers and round to 5 decimal places to avoid issues with tiny numbers. Roughly 20x faster than Number.toFixed(). We also must make sure to round before dividing so that values like 0.9999999999 become 1 to avoid glitches in browser rendering and interpretation of flipped/rotated 3D matrices. And don't just multiply the number by rnd, floor it, and then divide by rnd because the bitwise operations max out at a 32-bit signed integer, thus it could get clipped at a relatively low value (like 22,000.00000 for example).\r
-                               }\r
-                               if (m.length === 16) {\r
-\r
-                                       //we'll only look at these position-related 6 variables first because if x/y/z all match, it's relatively safe to assume we don't need to re-parse everything which risks losing important rotational information (like rotationX:180 plus rotationY:180 would look the same as rotation:180 - there's no way to know for sure which direction was taken based solely on the matrix3d() values)\r
-                                       var a13 = m[8], a23 = m[9], a33 = m[10],\r
-                                               a14 = m[12], a24 = m[13], a34 = m[14];\r
-\r
-                                       //we manually compensate for non-zero z component of transformOrigin to work around bugs in Safari\r
-                                       if (tm.zOrigin) {\r
-                                               a34 = -tm.zOrigin;\r
-                                               a14 = a13*a34-m[12];\r
-                                               a24 = a23*a34-m[13];\r
-                                               a34 = a33*a34+tm.zOrigin-m[14];\r
-                                       }\r
-\r
-                                       //only parse from the matrix if we MUST because not only is it usually unnecessary due to the fact that we store the values in the _gsTransform object, but also because it's impossible to accurately interpret rotationX, rotationY, rotationZ, scaleX, and scaleY if all are applied, so it's much better to rely on what we store. However, we must parse the first time that an object is tweened. We also assume that if the position has changed, the user must have done some styling changes outside of CSSPlugin, thus we force a parse in that scenario.\r
-                                       if (!rec || parse || tm.rotationX == null) {\r
-                                               var a11 = m[0], a21 = m[1], a31 = m[2], a41 = m[3],\r
-                                                       a12 = m[4], a22 = m[5], a32 = m[6], a42 = m[7],\r
-                                                       a43 = m[11],\r
-                                                       angle = Math.atan2(a32, a33),\r
-                                                       xFlip = (angle < -minPI || angle > minPI),\r
-                                                       t1, t2, t3, cos, sin, yFlip, zFlip;\r
-                                               tm.rotationX = angle * _RAD2DEG;\r
-                                               //rotationX\r
-                                               if (angle) {\r
-                                                       cos = Math.cos(-angle);\r
-                                                       sin = Math.sin(-angle);\r
-                                                       t1 = a12*cos+a13*sin;\r
-                                                       t2 = a22*cos+a23*sin;\r
-                                                       t3 = a32*cos+a33*sin;\r
-                                                       a13 = a12*-sin+a13*cos;\r
-                                                       a23 = a22*-sin+a23*cos;\r
-                                                       a33 = a32*-sin+a33*cos;\r
-                                                       a43 = a42*-sin+a43*cos;\r
-                                                       a12 = t1;\r
-                                                       a22 = t2;\r
-                                                       a32 = t3;\r
-                                               }\r
-                                               //rotationY\r
-                                               angle = Math.atan2(a13, a11);\r
-                                               tm.rotationY = angle * _RAD2DEG;\r
-                                               if (angle) {\r
-                                                       yFlip = (angle < -minPI || angle > minPI);\r
-                                                       cos = Math.cos(-angle);\r
-                                                       sin = Math.sin(-angle);\r
-                                                       t1 = a11*cos-a13*sin;\r
-                                                       t2 = a21*cos-a23*sin;\r
-                                                       t3 = a31*cos-a33*sin;\r
-                                                       a23 = a21*sin+a23*cos;\r
-                                                       a33 = a31*sin+a33*cos;\r
-                                                       a43 = a41*sin+a43*cos;\r
-                                                       a11 = t1;\r
-                                                       a21 = t2;\r
-                                                       a31 = t3;\r
-                                               }\r
-                                               //rotationZ\r
-                                               angle = Math.atan2(a21, a22);\r
-                                               tm.rotation = angle * _RAD2DEG;\r
-                                               if (angle) {\r
-                                                       zFlip = (angle < -minPI || angle > minPI);\r
-                                                       cos = Math.cos(-angle);\r
-                                                       sin = Math.sin(-angle);\r
-                                                       a11 = a11*cos+a12*sin;\r
-                                                       t2 = a21*cos+a22*sin;\r
-                                                       a22 = a21*-sin+a22*cos;\r
-                                                       a32 = a31*-sin+a32*cos;\r
-                                                       a21 = t2;\r
-                                               }\r
-\r
-                                               if (zFlip && xFlip) {\r
-                                                       tm.rotation = tm.rotationX = 0;\r
-                                               } else if (zFlip && yFlip) {\r
-                                                       tm.rotation = tm.rotationY = 0;\r
-                                               } else if (yFlip && xFlip) {\r
-                                                       tm.rotationY = tm.rotationX = 0;\r
-                                               }\r
-\r
-                                               tm.scaleX = ((Math.sqrt(a11 * a11 + a21 * a21) * rnd + 0.5) | 0) / rnd;\r
-                                               tm.scaleY = ((Math.sqrt(a22 * a22 + a23 * a23) * rnd + 0.5) | 0) / rnd;\r
-                                               tm.scaleZ = ((Math.sqrt(a32 * a32 + a33 * a33) * rnd + 0.5) | 0) / rnd;\r
-                                               tm.skewX = 0;\r
-                                               tm.perspective = a43 ? 1 / ((a43 < 0) ? -a43 : a43) : 0;\r
-                                               tm.x = a14;\r
-                                               tm.y = a24;\r
-                                               tm.z = a34;\r
-                                       }\r
-\r
-                               } else if ((!_supports3D || parse || !m.length || tm.x !== m[4] || tm.y !== m[5] || (!tm.rotationX && !tm.rotationY)) && !(tm.x !== undefined && _getStyle(t, "display", cs) === "none")) { //sometimes a 6-element matrix is returned even when we performed 3D transforms, like if rotationX and rotationY are 180. In cases like this, we still need to honor the 3D transforms. If we just rely on the 2D info, it could affect how the data is interpreted, like scaleY might get set to -1 or rotation could get offset by 180 degrees. For example, do a TweenLite.to(element, 1, {css:{rotationX:180, rotationY:180}}) and then later, TweenLite.to(element, 1, {css:{rotationX:0}}) and without this conditional logic in place, it'd jump to a state of being unrotated when the 2nd tween starts. Then again, we need to honor the fact that the user COULD alter the transforms outside of CSSPlugin, like by manually applying new css, so we try to sense that by looking at x and y because if those changed, we know the changes were made outside CSSPlugin and we force a reinterpretation of the matrix values. Also, in Webkit browsers, if the element's "display" is "none", its calculated style value will always return empty, so if we've already recorded the values in the _gsTransform object, we'll just rely on those.\r
-                                       var k = (m.length >= 6),\r
-                                               a = k ? m[0] : 1,\r
-                                               b = m[1] || 0,\r
-                                               c = m[2] || 0,\r
-                                               d = k ? m[3] : 1;\r
-                                       tm.x = m[4] || 0;\r
-                                       tm.y = m[5] || 0;\r
-                                       scaleX = Math.sqrt(a * a + b * b);\r
-                                       scaleY = Math.sqrt(d * d + c * c);\r
-                                       rotation = (a || b) ? Math.atan2(b, a) * _RAD2DEG : tm.rotation || 0; //note: if scaleX is 0, we cannot accurately measure rotation. Same for skewX with a scaleY of 0. Therefore, we default to the previously recorded value (or zero if that doesn't exist).\r
-                                       skewX = (c || d) ? Math.atan2(c, d) * _RAD2DEG + rotation : tm.skewX || 0;\r
-                                       difX = scaleX - Math.abs(tm.scaleX || 0);\r
-                                       difY = scaleY - Math.abs(tm.scaleY || 0);\r
-                                       if (Math.abs(skewX) > 90 && Math.abs(skewX) < 270) {\r
-                                               if (invX) {\r
-                                                       scaleX *= -1;\r
-                                                       skewX += (rotation <= 0) ? 180 : -180;\r
-                                                       rotation += (rotation <= 0) ? 180 : -180;\r
-                                               } else {\r
-                                                       scaleY *= -1;\r
-                                                       skewX += (skewX <= 0) ? 180 : -180;\r
-                                               }\r
-                                       }\r
-                                       difR = (rotation - tm.rotation) % 180; //note: matching ranges would be very small (+/-0.0001) or very close to 180.\r
-                                       difS = (skewX - tm.skewX) % 180;\r
-                                       //if there's already a recorded _gsTransform in place for the target, we should leave those values in place unless we know things changed for sure (beyond a super small amount). This gets around ambiguous interpretations, like if scaleX and scaleY are both -1, the matrix would be the same as if the rotation was 180 with normal scaleX/scaleY. If the user tweened to particular values, those must be prioritized to ensure animation is consistent.\r
-                                       if (tm.skewX === undefined || difX > min || difX < -min || difY > min || difY < -min || (difR > -minAngle && difR < minAngle && (difR * rnd) | 0 !== 0) || (difS > -minAngle && difS < minAngle && (difS * rnd) | 0 !== 0)) {\r
-                                               tm.scaleX = scaleX;\r
-                                               tm.scaleY = scaleY;\r
-                                               tm.rotation = rotation;\r
-                                               tm.skewX = skewX;\r
-                                       }\r
-                                       if (_supports3D) {\r
-                                               tm.rotationX = tm.rotationY = tm.z = 0;\r
-                                               tm.perspective = parseFloat(CSSPlugin.defaultTransformPerspective) || 0;\r
-                                               tm.scaleZ = 1;\r
-                                       }\r
-                               }\r
-                               tm.zOrigin = zOrigin;\r
-\r
-                               //some browsers have a hard time with very small values like 2.4492935982947064e-16 (notice the "e-" towards the end) and would render the object slightly off. So we round to 0 in these cases. The conditional logic here is faster than calling Math.abs(). Also, browsers tend to render a SLIGHTLY rotated object in a fuzzy way, so we need to snap to exactly 0 when appropriate.\r
-                               for (i in tm) {\r
-                                       if (tm[i] < min) if (tm[i] > -min) {\r
-                                               tm[i] = 0;\r
-                                       }\r
-                               }\r
-                               //DEBUG: _log("parsed rotation: "+(tm.rotationX)+", "+(tm.rotationY)+", "+(tm.rotation)+", scale: "+tm.scaleX+", "+tm.scaleY+", "+tm.scaleZ+", position: "+tm.x+", "+tm.y+", "+tm.z+", perspective: "+tm.perspective);\r
-                               if (rec) {\r
-                                       t._gsTransform = tm; //record to the object's _gsTransform which we use so that tweens can control individual properties independently (we need all the properties to accurately recompose the matrix in the setRatio() method)\r
-                               }\r
-                               return tm;\r
-                       },\r
-\r
-                       //for setting 2D transforms in IE6, IE7, and IE8 (must use a "filter" to emulate the behavior of modern day browser transforms)\r
-                       _setIETransformRatio = function(v) {\r
-                               var t = this.data, //refers to the element's _gsTransform object\r
-                                       ang = -t.rotation * _DEG2RAD,\r
-                                       skew = ang + t.skewX * _DEG2RAD,\r
-                                       rnd = 100000,\r
-                                       a = ((Math.cos(ang) * t.scaleX * rnd) | 0) / rnd,\r
-                                       b = ((Math.sin(ang) * t.scaleX * rnd) | 0) / rnd,\r
-                                       c = ((Math.sin(skew) * -t.scaleY * rnd) | 0) / rnd,\r
-                                       d = ((Math.cos(skew) * t.scaleY * rnd) | 0) / rnd,\r
-                                       style = this.t.style,\r
-                                       cs = this.t.currentStyle,\r
-                                       filters, val;\r
-                               if (!cs) {\r
-                                       return;\r
-                               }\r
-                               val = b; //just for swapping the variables an inverting them (reused "val" to avoid creating another variable in memory). IE's filter matrix uses a non-standard matrix configuration (angle goes the opposite way, and b and c are reversed and inverted)\r
-                               b = -c;\r
-                               c = -val;\r
-                               filters = cs.filter;\r
-                               style.filter = ""; //remove filters so that we can accurately measure offsetWidth/offsetHeight\r
-                               var w = this.t.offsetWidth,\r
-                                       h = this.t.offsetHeight,\r
-                                       clip = (cs.position !== "absolute"),\r
-                                       m = "progid:DXImageTransform.Microsoft.Matrix(M11=" + a + ", M12=" + b + ", M21=" + c + ", M22=" + d,\r
-                                       ox = t.x,\r
-                                       oy = t.y,\r
-                                       dx, dy;\r
-\r
-                               //if transformOrigin is being used, adjust the offset x and y\r
-                               if (t.ox != null) {\r
-                                       dx = ((t.oxp) ? w * t.ox * 0.01 : t.ox) - w / 2;\r
-                                       dy = ((t.oyp) ? h * t.oy * 0.01 : t.oy) - h / 2;\r
-                                       ox += dx - (dx * a + dy * b);\r
-                                       oy += dy - (dx * c + dy * d);\r
-                               }\r
-\r
-                               if (!clip) {\r
-                                       m += ", sizingMethod='auto expand')";\r
-                               } else {\r
-                                       dx = (w / 2);\r
-                                       dy = (h / 2);\r
-                                       //translate to ensure that transformations occur around the correct origin (default is center).\r
-                                       m += ", Dx=" + (dx - (dx * a + dy * b) + ox) + ", Dy=" + (dy - (dx * c + dy * d) + oy) + ")";\r
-                               }\r
-                               if (filters.indexOf("DXImageTransform.Microsoft.Matrix(") !== -1) {\r
-                                       style.filter = filters.replace(_ieSetMatrixExp, m);\r
-                               } else {\r
-                                       style.filter = m + " " + filters; //we must always put the transform/matrix FIRST (before alpha(opacity=xx)) to avoid an IE bug that slices part of the object when rotation is applied with alpha.\r
-                               }\r
-\r
-                               //at the end or beginning of the tween, if the matrix is normal (1, 0, 0, 1) and opacity is 100 (or doesn't exist), remove the filter to improve browser performance.\r
-                               if (v === 0 || v === 1) if (a === 1) if (b === 0) if (c === 0) if (d === 1) if (!clip || m.indexOf("Dx=0, Dy=0") !== -1) if (!_opacityExp.test(filters) || parseFloat(RegExp.$1) === 100) if (filters.indexOf("gradient(" && filters.indexOf("Alpha")) === -1) {\r
-                                       style.removeAttribute("filter");\r
-                               }\r
-\r
-                               //we must set the margins AFTER applying the filter in order to avoid some bugs in IE8 that could (in rare scenarios) cause them to be ignored intermittently (vibration).\r
-                               if (!clip) {\r
-                                       var mult = (_ieVers < 8) ? 1 : -1, //in Internet Explorer 7 and before, the box model is broken, causing the browser to treat the width/height of the actual rotated filtered image as the width/height of the box itself, but Microsoft corrected that in IE8. We must use a negative offset in IE8 on the right/bottom\r
-                                               marg, prop, dif;\r
-                                       dx = t.ieOffsetX || 0;\r
-                                       dy = t.ieOffsetY || 0;\r
-                                       t.ieOffsetX = Math.round((w - ((a < 0 ? -a : a) * w + (b < 0 ? -b : b) * h)) / 2 + ox);\r
-                                       t.ieOffsetY = Math.round((h - ((d < 0 ? -d : d) * h + (c < 0 ? -c : c) * w)) / 2 + oy);\r
-                                       for (i = 0; i < 4; i++) {\r
-                                               prop = _margins[i];\r
-                                               marg = cs[prop];\r
-                                               //we need to get the current margin in case it is being tweened separately (we want to respect that tween's changes)\r
-                                               val = (marg.indexOf("px") !== -1) ? parseFloat(marg) : _convertToPixels(this.t, prop, parseFloat(marg), marg.replace(_suffixExp, "")) || 0;\r
-                                               if (val !== t[prop]) {\r
-                                                       dif = (i < 2) ? -t.ieOffsetX : -t.ieOffsetY; //if another tween is controlling a margin, we cannot only apply the difference in the ieOffsets, so we essentially zero-out the dx and dy here in that case. We record the margin(s) later so that we can keep comparing them, making this code very flexible.\r
-                                               } else {\r
-                                                       dif = (i < 2) ? dx - t.ieOffsetX : dy - t.ieOffsetY;\r
-                                               }\r
-                                               style[prop] = (t[prop] = Math.round( val - dif * ((i === 0 || i === 2) ? 1 : mult) )) + "px";\r
-                                       }\r
-                               }\r
-                       },\r
-\r
-                       _set3DTransformRatio = _internals.set3DTransformRatio = function(v) {\r
-                               var t = this.data, //refers to the element's _gsTransform object\r
-                                       style = this.t.style,\r
-                                       angle = t.rotation * _DEG2RAD,\r
-                                       sx = t.scaleX,\r
-                                       sy = t.scaleY,\r
-                                       sz = t.scaleZ,\r
-                                       perspective = t.perspective,\r
-                                       a11, a12, a13, a14,     a21, a22, a23, a24, a31, a32, a33, a34, a41, a42, a43,\r
-                                       zOrigin, rnd, cos, sin, t1, t2, t3, t4;\r
-                               if (v === 1 || v === 0) if (t.force3D === "auto") if (!t.rotationY && !t.rotationX && sz === 1 && !perspective && !t.z) { //on the final render (which could be 0 for a from tween), if there are no 3D aspects, render in 2D to free up memory and improve performance especially on mobile devices\r
-                                       _set2DTransformRatio.call(this, v);\r
-                                       return;\r
-                               }\r
-                               if (_isFirefox) {\r
-                                       var n = 0.0001;\r
-                                       if (sx < n && sx > -n) { //Firefox has a bug (at least in v25) that causes it to render the transparent part of 32-bit PNG images as black when displayed inside an iframe and the 3D scale is very small and doesn't change sufficiently enough between renders (like if you use a Power4.easeInOut to scale from 0 to 1 where the beginning values only change a tiny amount to begin the tween before accelerating). In this case, we force the scale to be 0.00002 instead which is visually the same but works around the Firefox issue.\r
-                                               sx = sz = 0.00002;\r
-                                       }\r
-                                       if (sy < n && sy > -n) {\r
-                                               sy = sz = 0.00002;\r
-                                       }\r
-                                       if (perspective && !t.z && !t.rotationX && !t.rotationY) { //Firefox has a bug that causes elements to have an odd super-thin, broken/dotted black border on elements that have a perspective set but aren't utilizing 3D space (no rotationX, rotationY, or z).\r
-                                               perspective = 0;\r
-                                       }\r
-                               }\r
-                               if (angle || t.skewX) {\r
-                                       cos = Math.cos(angle);\r
-                                       sin = Math.sin(angle);\r
-                                       a11 = cos;\r
-                                       a21 = sin;\r
-                                       if (t.skewX) {\r
-                                               angle -= t.skewX * _DEG2RAD;\r
-                                               cos = Math.cos(angle);\r
-                                               sin = Math.sin(angle);\r
-                                               if (t.skewType === "simple") { //by default, we compensate skewing on the other axis to make it look more natural, but you can set the skewType to "simple" to use the uncompensated skewing that CSS does\r
-                                                       t1 = Math.tan(t.skewX * _DEG2RAD);\r
-                                                       t1 = Math.sqrt(1 + t1 * t1);\r
-                                                       cos *= t1;\r
-                                                       sin *= t1;\r
-                                               }\r
-                                       }\r
-                                       a12 = -sin;\r
-                                       a22 = cos;\r
-\r
-                               } else if (!t.rotationY && !t.rotationX && sz === 1 && !perspective) { //if we're only translating and/or 2D scaling, this is faster...\r
-                                       style[_transformProp] = "translate3d(" + t.x + "px," + t.y + "px," + t.z +"px)" + ((sx !== 1 || sy !== 1) ? " scale(" + sx + "," + sy + ")" : "");\r
-                                       return;\r
-                               } else {\r
-                                       a11 = a22 = 1;\r
-                                       a12 = a21 = 0;\r
-                               }\r
-                               a33 = 1;\r
-                               a13 = a14 = a23 = a24 = a31 = a32 = a34 = a41 = a42 = 0;\r
-                               a43 = (perspective) ? -1 / perspective : 0;\r
-                               zOrigin = t.zOrigin;\r
-                               rnd = 100000;\r
-                               angle = t.rotationY * _DEG2RAD;\r
-                               if (angle) {\r
-                                       cos = Math.cos(angle);\r
-                                       sin = Math.sin(angle);\r
-                                       a31 = a33*-sin;\r
-                                       a41 = a43*-sin;\r
-                                       a13 = a11*sin;\r
-                                       a23 = a21*sin;\r
-                                       a33 *= cos;\r
-                                       a43 *= cos;\r
-                                       a11 *= cos;\r
-                                       a21 *= cos;\r
-                               }\r
-                               angle = t.rotationX * _DEG2RAD;\r
-                               if (angle) {\r
-                                       cos = Math.cos(angle);\r
-                                       sin = Math.sin(angle);\r
-                                       t1 = a12*cos+a13*sin;\r
-                                       t2 = a22*cos+a23*sin;\r
-                                       t3 = a32*cos+a33*sin;\r
-                                       t4 = a42*cos+a43*sin;\r
-                                       a13 = a12*-sin+a13*cos;\r
-                                       a23 = a22*-sin+a23*cos;\r
-                                       a33 = a32*-sin+a33*cos;\r
-                                       a43 = a42*-sin+a43*cos;\r
-                                       a12 = t1;\r
-                                       a22 = t2;\r
-                                       a32 = t3;\r
-                                       a42 = t4;\r
-                               }\r
-                               if (sz !== 1) {\r
-                                       a13*=sz;\r
-                                       a23*=sz;\r
-                                       a33*=sz;\r
-                                       a43*=sz;\r
-                               }\r
-                               if (sy !== 1) {\r
-                                       a12*=sy;\r
-                                       a22*=sy;\r
-                                       a32*=sy;\r
-                                       a42*=sy;\r
-                               }\r
-                               if (sx !== 1) {\r
-                                       a11*=sx;\r
-                                       a21*=sx;\r
-                                       a31*=sx;\r
-                                       a41*=sx;\r
-                               }\r
-                               if (zOrigin) {\r
-                                       a34 -= zOrigin;\r
-                                       a14 = a13*a34;\r
-                                       a24 = a23*a34;\r
-                                       a34 = a33*a34+zOrigin;\r
-                               }\r
-                               //we round the x, y, and z slightly differently to allow even larger values.\r
-                               a14 = (t1 = (a14 += t.x) - (a14 |= 0)) ? ((t1 * rnd + (t1 < 0 ? -0.5 : 0.5)) | 0) / rnd + a14 : a14;\r
-                               a24 = (t1 = (a24 += t.y) - (a24 |= 0)) ? ((t1 * rnd + (t1 < 0 ? -0.5 : 0.5)) | 0) / rnd + a24 : a24;\r
-                               a34 = (t1 = (a34 += t.z) - (a34 |= 0)) ? ((t1 * rnd + (t1 < 0 ? -0.5 : 0.5)) | 0) / rnd + a34 : a34;\r
-                               style[_transformProp] = "matrix3d(" + [ (((a11 * rnd) | 0) / rnd), (((a21 * rnd) | 0) / rnd), (((a31 * rnd) | 0) / rnd), (((a41 * rnd) | 0) / rnd), (((a12 * rnd) | 0) / rnd), (((a22 * rnd) | 0) / rnd), (((a32 * rnd) | 0) / rnd), (((a42 * rnd) | 0) / rnd), (((a13 * rnd) | 0) / rnd), (((a23 * rnd) | 0) / rnd), (((a33 * rnd) | 0) / rnd), (((a43 * rnd) | 0) / rnd), a14, a24, a34, (perspective ? (1 + (-a34 / perspective)) : 1) ].join(",") + ")";\r
-                       },\r
-\r
-                       _set2DTransformRatio = _internals.set2DTransformRatio = function(v) {\r
-                               var t = this.data, //refers to the element's _gsTransform object\r
-                                       targ = this.t,\r
-                                       style = targ.style,\r
-                                       ang, skew, rnd, sx, sy;\r
-                               if (t.rotationX || t.rotationY || t.z || t.force3D === true || (t.force3D === "auto" && v !== 1 && v !== 0)) { //if a 3D tween begins while a 2D one is running, we need to kick the rendering over to the 3D method. For example, imagine a yoyo-ing, infinitely repeating scale tween running, and then the object gets rotated in 3D space with a different tween.\r
-                                       this.setRatio = _set3DTransformRatio;\r
-                                       _set3DTransformRatio.call(this, v);\r
-                                       return;\r
-                               }\r
-                               if (!t.rotation && !t.skewX) {\r
-                                       style[_transformProp] = "matrix(" + t.scaleX + ",0,0," + t.scaleY + "," + t.x + "," + t.y + ")";\r
-                               } else {\r
-                                       ang = t.rotation * _DEG2RAD;\r
-                                       skew = ang - t.skewX * _DEG2RAD;\r
-                                       rnd = 100000;\r
-                                       sx = t.scaleX * rnd;\r
-                                       sy = t.scaleY * rnd;\r
-                                       //some browsers have a hard time with very small values like 2.4492935982947064e-16 (notice the "e-" towards the end) and would render the object slightly off. So we round to 5 decimal places.\r
-                                       style[_transformProp] = "matrix(" + (((Math.cos(ang) * sx) | 0) / rnd) + "," + (((Math.sin(ang) * sx) | 0) / rnd) + "," + (((Math.sin(skew) * -sy) | 0) / rnd) + "," + (((Math.cos(skew) * sy) | 0) / rnd) + "," + t.x + "," + t.y + ")";\r
-                               }\r
-                       };\r
-\r
-               _registerComplexSpecialProp("transform,scale,scaleX,scaleY,scaleZ,x,y,z,rotation,rotationX,rotationY,rotationZ,skewX,skewY,shortRotation,shortRotationX,shortRotationY,shortRotationZ,transformOrigin,transformPerspective,directionalRotation,parseTransform,force3D,skewType", {parser:function(t, e, p, cssp, pt, plugin, vars) {\r
-                       if (cssp._transform) { return pt; } //only need to parse the transform once, and only if the browser supports it.\r
-                       var m1 = cssp._transform = _getTransform(t, _cs, true, vars.parseTransform),\r
-                               style = t.style,\r
-                               min = 0.000001,\r
-                               i = _transformProps.length,\r
-                               v = vars,\r
-                               endRotations = {},\r
-                               m2, skewY, copy, orig, has3D, hasChange, dr;\r
-                       if (typeof(v.transform) === "string" && _transformProp) { //for values like transform:"rotate(60deg) scale(0.5, 0.8)"\r
-                               copy = _tempDiv.style; //don't use the original target because it might be SVG in which case some browsers don't report computed style correctly.\r
-                               copy[_transformProp] = v.transform;\r
-                               copy.display = "block"; //if display is "none", the browser often refuses to report the transform properties correctly.\r
-                               copy.position = "absolute";\r
-                               _doc.body.appendChild(_tempDiv);\r
-                               m2 = _getTransform(_tempDiv, null, false);\r
-                               _doc.body.removeChild(_tempDiv);\r
-                       } else if (typeof(v) === "object") { //for values like scaleX, scaleY, rotation, x, y, skewX, and skewY or transform:{...} (object)\r
-                               m2 = {scaleX:_parseVal((v.scaleX != null) ? v.scaleX : v.scale, m1.scaleX),\r
-                                       scaleY:_parseVal((v.scaleY != null) ? v.scaleY : v.scale, m1.scaleY),\r
-                                       scaleZ:_parseVal(v.scaleZ, m1.scaleZ),\r
-                                       x:_parseVal(v.x, m1.x),\r
-                                       y:_parseVal(v.y, m1.y),\r
-                                       z:_parseVal(v.z, m1.z),\r
-                                       perspective:_parseVal(v.transformPerspective, m1.perspective)};\r
-                               dr = v.directionalRotation;\r
-                               if (dr != null) {\r
-                                       if (typeof(dr) === "object") {\r
-                                               for (copy in dr) {\r
-                                                       v[copy] = dr[copy];\r
-                                               }\r
-                                       } else {\r
-                                               v.rotation = dr;\r
-                                       }\r
-                               }\r
-                               m2.rotation = _parseAngle(("rotation" in v) ? v.rotation : ("shortRotation" in v) ? v.shortRotation + "_short" : ("rotationZ" in v) ? v.rotationZ : m1.rotation, m1.rotation, "rotation", endRotations);\r
-                               if (_supports3D) {\r
-                                       m2.rotationX = _parseAngle(("rotationX" in v) ? v.rotationX : ("shortRotationX" in v) ? v.shortRotationX + "_short" : m1.rotationX || 0, m1.rotationX, "rotationX", endRotations);\r
-                                       m2.rotationY = _parseAngle(("rotationY" in v) ? v.rotationY : ("shortRotationY" in v) ? v.shortRotationY + "_short" : m1.rotationY || 0, m1.rotationY, "rotationY", endRotations);\r
-                               }\r
-                               m2.skewX = (v.skewX == null) ? m1.skewX : _parseAngle(v.skewX, m1.skewX);\r
-\r
-                               //note: for performance reasons, we combine all skewing into the skewX and rotation values, ignoring skewY but we must still record it so that we can discern how much of the overall skew is attributed to skewX vs. skewY. Otherwise, if the skewY would always act relative (tween skewY to 10deg, for example, multiple times and if we always combine things into skewX, we can't remember that skewY was 10 from last time). Remember, a skewY of 10 degrees looks the same as a rotation of 10 degrees plus a skewX of -10 degrees.\r
-                               m2.skewY = (v.skewY == null) ? m1.skewY : _parseAngle(v.skewY, m1.skewY);\r
-                               if ((skewY = m2.skewY - m1.skewY)) {\r
-                                       m2.skewX += skewY;\r
-                                       m2.rotation += skewY;\r
-                               }\r
-                       }\r
-\r
-                       if (_supports3D && v.force3D != null) {\r
-                               m1.force3D = v.force3D;\r
-                               hasChange = true;\r
-                       }\r
-\r
-                       m1.skewType = v.skewType || m1.skewType || CSSPlugin.defaultSkewType;\r
-\r
-                       has3D = (m1.force3D || m1.z || m1.rotationX || m1.rotationY || m2.z || m2.rotationX || m2.rotationY || m2.perspective);\r
-                       if (!has3D && v.scale != null) {\r
-                               m2.scaleZ = 1; //no need to tween scaleZ.\r
-                       }\r
-\r
-                       while (--i > -1) {\r
-                               p = _transformProps[i];\r
-                               orig = m2[p] - m1[p];\r
-                               if (orig > min || orig < -min || _forcePT[p] != null) {\r
-                                       hasChange = true;\r
-                                       pt = new CSSPropTween(m1, p, m1[p], orig, pt);\r
-                                       if (p in endRotations) {\r
-                                               pt.e = endRotations[p]; //directional rotations typically have compensated values during the tween, but we need to make sure they end at exactly what the user requested\r
-                                       }\r
-                                       pt.xs0 = 0; //ensures the value stays numeric in setRatio()\r
-                                       pt.plugin = plugin;\r
-                                       cssp._overwriteProps.push(pt.n);\r
-                               }\r
-                       }\r
-\r
-                       orig = v.transformOrigin;\r
-                       if (orig || (_supports3D && has3D && m1.zOrigin)) { //if anything 3D is happening and there's a transformOrigin with a z component that's non-zero, we must ensure that the transformOrigin's z-component is set to 0 so that we can manually do those calculations to get around Safari bugs. Even if the user didn't specifically define a "transformOrigin" in this particular tween (maybe they did it via css directly).\r
-                               if (_transformProp) {\r
-                                       hasChange = true;\r
-                                       p = _transformOriginProp;\r
-                                       orig = (orig || _getStyle(t, p, _cs, false, "50% 50%")) + ""; //cast as string to avoid errors\r
-                                       pt = new CSSPropTween(style, p, 0, 0, pt, -1, "transformOrigin");\r
-                                       pt.b = style[p];\r
-                                       pt.plugin = plugin;\r
-                                       if (_supports3D) {\r
-                                               copy = m1.zOrigin;\r
-                                               orig = orig.split(" ");\r
-                                               m1.zOrigin = ((orig.length > 2 && !(copy !== 0 && orig[2] === "0px")) ? parseFloat(orig[2]) : copy) || 0; //Safari doesn't handle the z part of transformOrigin correctly, so we'll manually handle it in the _set3DTransformRatio() method.\r
-                                               pt.xs0 = pt.e = orig[0] + " " + (orig[1] || "50%") + " 0px"; //we must define a z value of 0px specifically otherwise iOS 5 Safari will stick with the old one (if one was defined)!\r
-                                               pt = new CSSPropTween(m1, "zOrigin", 0, 0, pt, -1, pt.n); //we must create a CSSPropTween for the _gsTransform.zOrigin so that it gets reset properly at the beginning if the tween runs backward (as opposed to just setting m1.zOrigin here)\r
-                                               pt.b = copy;\r
-                                               pt.xs0 = pt.e = m1.zOrigin;\r
-                                       } else {\r
-                                               pt.xs0 = pt.e = orig;\r
-                                       }\r
-\r
-                               //for older versions of IE (6-8), we need to manually calculate things inside the setRatio() function. We record origin x and y (ox and oy) and whether or not the values are percentages (oxp and oyp).\r
-                               } else {\r
-                                       _parsePosition(orig + "", m1);\r
-                               }\r
-                       }\r
-\r
-                       if (hasChange) {\r
-                               cssp._transformType = (has3D || this._transformType === 3) ? 3 : 2; //quicker than calling cssp._enableTransforms();\r
-                       }\r
-                       return pt;\r
-               }, prefix:true});\r
-\r
-               _registerComplexSpecialProp("boxShadow", {defaultValue:"0px 0px 0px 0px #999", prefix:true, color:true, multi:true, keyword:"inset"});\r
-\r
-               _registerComplexSpecialProp("borderRadius", {defaultValue:"0px", parser:function(t, e, p, cssp, pt, plugin) {\r
-                       e = this.format(e);\r
-                       var props = ["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"],\r
-                               style = t.style,\r
-                               ea1, i, es2, bs2, bs, es, bn, en, w, h, esfx, bsfx, rel, hn, vn, em;\r
-                       w = parseFloat(t.offsetWidth);\r
-                       h = parseFloat(t.offsetHeight);\r
-                       ea1 = e.split(" ");\r
-                       for (i = 0; i < props.length; i++) { //if we're dealing with percentages, we must convert things separately for the horizontal and vertical axis!\r
-                               if (this.p.indexOf("border")) { //older browsers used a prefix\r
-                                       props[i] = _checkPropPrefix(props[i]);\r
-                               }\r
-                               bs = bs2 = _getStyle(t, props[i], _cs, false, "0px");\r
-                               if (bs.indexOf(" ") !== -1) {\r
-                                       bs2 = bs.split(" ");\r
-                                       bs = bs2[0];\r
-                                       bs2 = bs2[1];\r
-                               }\r
-                               es = es2 = ea1[i];\r
-                               bn = parseFloat(bs);\r
-                               bsfx = bs.substr((bn + "").length);\r
-                               rel = (es.charAt(1) === "=");\r
-                               if (rel) {\r
-                                       en = parseInt(es.charAt(0)+"1", 10);\r
-                                       es = es.substr(2);\r
-                                       en *= parseFloat(es);\r
-                                       esfx = es.substr((en + "").length - (en < 0 ? 1 : 0)) || "";\r
-                               } else {\r
-                                       en = parseFloat(es);\r
-                                       esfx = es.substr((en + "").length);\r
-                               }\r
-                               if (esfx === "") {\r
-                                       esfx = _suffixMap[p] || bsfx;\r
-                               }\r
-                               if (esfx !== bsfx) {\r
-                                       hn = _convertToPixels(t, "borderLeft", bn, bsfx); //horizontal number (we use a bogus "borderLeft" property just because the _convertToPixels() method searches for the keywords "Left", "Right", "Top", and "Bottom" to determine of it's a horizontal or vertical property, and we need "border" in the name so that it knows it should measure relative to the element itself, not its parent.\r
-                                       vn = _convertToPixels(t, "borderTop", bn, bsfx); //vertical number\r
-                                       if (esfx === "%") {\r
-                                               bs = (hn / w * 100) + "%";\r
-                                               bs2 = (vn / h * 100) + "%";\r
-                                       } else if (esfx === "em") {\r
-                                               em = _convertToPixels(t, "borderLeft", 1, "em");\r
-                                               bs = (hn / em) + "em";\r
-                                               bs2 = (vn / em) + "em";\r
-                                       } else {\r
-                                               bs = hn + "px";\r
-                                               bs2 = vn + "px";\r
-                                       }\r
-                                       if (rel) {\r
-                                               es = (parseFloat(bs) + en) + esfx;\r
-                                               es2 = (parseFloat(bs2) + en) + esfx;\r
-                                       }\r
-                               }\r
-                               pt = _parseComplex(style, props[i], bs + " " + bs2, es + " " + es2, false, "0px", pt);\r
-                       }\r
-                       return pt;\r
-               }, prefix:true, formatter:_getFormatter("0px 0px 0px 0px", false, true)});\r
-               _registerComplexSpecialProp("backgroundPosition", {defaultValue:"0 0", parser:function(t, e, p, cssp, pt, plugin) {\r
-                       var bp = "background-position",\r
-                               cs = (_cs || _getComputedStyle(t, null)),\r
-                               bs = this.format( ((cs) ? _ieVers ? cs.getPropertyValue(bp + "-x") + " " + cs.getPropertyValue(bp + "-y") : cs.getPropertyValue(bp) : t.currentStyle.backgroundPositionX + " " + t.currentStyle.backgroundPositionY) || "0 0"), //Internet Explorer doesn't report background-position correctly - we must query background-position-x and background-position-y and combine them (even in IE10). Before IE9, we must do the same with the currentStyle object and use camelCase\r
-                               es = this.format(e),\r
-                               ba, ea, i, pct, overlap, src;\r
-                       if ((bs.indexOf("%") !== -1) !== (es.indexOf("%") !== -1)) {\r
-                               src = _getStyle(t, "backgroundImage").replace(_urlExp, "");\r
-                               if (src && src !== "none") {\r
-                                       ba = bs.split(" ");\r
-                                       ea = es.split(" ");\r
-                                       _tempImg.setAttribute("src", src); //set the temp <img>'s src to the background-image so that we can measure its width/height\r
-                                       i = 2;\r
-                                       while (--i > -1) {\r
-                                               bs = ba[i];\r
-                                               pct = (bs.indexOf("%") !== -1);\r
-                                               if (pct !== (ea[i].indexOf("%") !== -1)) {\r
-                                                       overlap = (i === 0) ? t.offsetWidth - _tempImg.width : t.offsetHeight - _tempImg.height;\r
-                                                       ba[i] = pct ? (parseFloat(bs) / 100 * overlap) + "px" : (parseFloat(bs) / overlap * 100) + "%";\r
-                                               }\r
-                                       }\r
-                                       bs = ba.join(" ");\r
-                               }\r
-                       }\r
-                       return this.parseComplex(t.style, bs, es, pt, plugin);\r
-               }, formatter:_parsePosition});\r
-               _registerComplexSpecialProp("backgroundSize", {defaultValue:"0 0", formatter:_parsePosition});\r
-               _registerComplexSpecialProp("perspective", {defaultValue:"0px", prefix:true});\r
-               _registerComplexSpecialProp("perspectiveOrigin", {defaultValue:"50% 50%", prefix:true});\r
-               _registerComplexSpecialProp("transformStyle", {prefix:true});\r
-               _registerComplexSpecialProp("backfaceVisibility", {prefix:true});\r
-               _registerComplexSpecialProp("userSelect", {prefix:true});\r
-               _registerComplexSpecialProp("margin", {parser:_getEdgeParser("marginTop,marginRight,marginBottom,marginLeft")});\r
-               _registerComplexSpecialProp("padding", {parser:_getEdgeParser("paddingTop,paddingRight,paddingBottom,paddingLeft")});\r
-               _registerComplexSpecialProp("clip", {defaultValue:"rect(0px,0px,0px,0px)", parser:function(t, e, p, cssp, pt, plugin){\r
-                       var b, cs, delim;\r
-                       if (_ieVers < 9) { //IE8 and earlier don't report a "clip" value in the currentStyle - instead, the values are split apart into clipTop, clipRight, clipBottom, and clipLeft. Also, in IE7 and earlier, the values inside rect() are space-delimited, not comma-delimited.\r
-                               cs = t.currentStyle;\r
-                               delim = _ieVers < 8 ? " " : ",";\r
-                               b = "rect(" + cs.clipTop + delim + cs.clipRight + delim + cs.clipBottom + delim + cs.clipLeft + ")";\r
-                               e = this.format(e).split(",").join(delim);\r
-                       } else {\r
-                               b = this.format(_getStyle(t, this.p, _cs, false, this.dflt));\r
-                               e = this.format(e);\r
-                       }\r
-                       return this.parseComplex(t.style, b, e, pt, plugin);\r
-               }});\r
-               _registerComplexSpecialProp("textShadow", {defaultValue:"0px 0px 0px #999", color:true, multi:true});\r
-               _registerComplexSpecialProp("autoRound,strictUnits", {parser:function(t, e, p, cssp, pt) {return pt;}}); //just so that we can ignore these properties (not tween them)\r
-               _registerComplexSpecialProp("border", {defaultValue:"0px solid #000", parser:function(t, e, p, cssp, pt, plugin) {\r
-                               return this.parseComplex(t.style, this.format(_getStyle(t, "borderTopWidth", _cs, false, "0px") + " " + _getStyle(t, "borderTopStyle", _cs, false, "solid") + " " + _getStyle(t, "borderTopColor", _cs, false, "#000")), this.format(e), pt, plugin);\r
-                       }, color:true, formatter:function(v) {\r
-                               var a = v.split(" ");\r
-                               return a[0] + " " + (a[1] || "solid") + " " + (v.match(_colorExp) || ["#000"])[0];\r
-                       }});\r
-               _registerComplexSpecialProp("borderWidth", {parser:_getEdgeParser("borderTopWidth,borderRightWidth,borderBottomWidth,borderLeftWidth")}); //Firefox doesn't pick up on borderWidth set in style sheets (only inline).\r
-               _registerComplexSpecialProp("float,cssFloat,styleFloat", {parser:function(t, e, p, cssp, pt, plugin) {\r
-                       var s = t.style,\r
-                               prop = ("cssFloat" in s) ? "cssFloat" : "styleFloat";\r
-                       return new CSSPropTween(s, prop, 0, 0, pt, -1, p, false, 0, s[prop], e);\r
-               }});\r
-\r
-               //opacity-related\r
-               var _setIEOpacityRatio = function(v) {\r
-                               var t = this.t, //refers to the element's style property\r
-                                       filters = t.filter || _getStyle(this.data, "filter"),\r
-                                       val = (this.s + this.c * v) | 0,\r
-                                       skip;\r
-                               if (val === 100) { //for older versions of IE that need to use a filter to apply opacity, we should remove the filter if opacity hits 1 in order to improve performance, but make sure there isn't a transform (matrix) or gradient in the filters.\r
-                                       if (filters.indexOf("atrix(") === -1 && filters.indexOf("radient(") === -1 && filters.indexOf("oader(") === -1) {\r
-                                               t.removeAttribute("filter");\r
-                                               skip = (!_getStyle(this.data, "filter")); //if a class is applied that has an alpha filter, it will take effect (we don't want that), so re-apply our alpha filter in that case. We must first remove it and then check.\r
-                                       } else {\r
-                                               t.filter = filters.replace(_alphaFilterExp, "");\r
-                                               skip = true;\r
-                                       }\r
-                               }\r
-                               if (!skip) {\r
-                                       if (this.xn1) {\r
-                                               t.filter = filters = filters || ("alpha(opacity=" + val + ")"); //works around bug in IE7/8 that prevents changes to "visibility" from being applied properly if the filter is changed to a different alpha on the same frame.\r
-                                       }\r
-                                       if (filters.indexOf("pacity") === -1) { //only used if browser doesn't support the standard opacity style property (IE 7 and 8). We omit the "O" to avoid case-sensitivity issues\r
-                                               if (val !== 0 || !this.xn1) { //bugs in IE7/8 won't render the filter properly if opacity is ADDED on the same frame/render as "visibility" changes (this.xn1 is 1 if this tween is an "autoAlpha" tween)\r
-                                                       t.filter = filters + " alpha(opacity=" + val + ")"; //we round the value because otherwise, bugs in IE7/8 can prevent "visibility" changes from being applied properly.\r
-                                               }\r
-                                       } else {\r
-                                               t.filter = filters.replace(_opacityExp, "opacity=" + val);\r
-                                       }\r
-                               }\r
-                       };\r
-               _registerComplexSpecialProp("opacity,alpha,autoAlpha", {defaultValue:"1", parser:function(t, e, p, cssp, pt, plugin) {\r
-                       var b = parseFloat(_getStyle(t, "opacity", _cs, false, "1")),\r
-                               style = t.style,\r
-                               isAutoAlpha = (p === "autoAlpha");\r
-                       if (typeof(e) === "string" && e.charAt(1) === "=") {\r
-                               e = ((e.charAt(0) === "-") ? -1 : 1) * parseFloat(e.substr(2)) + b;\r
-                       }\r
-                       if (isAutoAlpha && b === 1 && _getStyle(t, "visibility", _cs) === "hidden" && e !== 0) { //if visibility is initially set to "hidden", we should interpret that as intent to make opacity 0 (a convenience)\r
-                               b = 0;\r
-                       }\r
-                       if (_supportsOpacity) {\r
-                               pt = new CSSPropTween(style, "opacity", b, e - b, pt);\r
-                       } else {\r
-                               pt = new CSSPropTween(style, "opacity", b * 100, (e - b) * 100, pt);\r
-                               pt.xn1 = isAutoAlpha ? 1 : 0; //we need to record whether or not this is an autoAlpha so that in the setRatio(), we know to duplicate the setting of the alpha in order to work around a bug in IE7 and IE8 that prevents changes to "visibility" from taking effect if the filter is changed to a different alpha(opacity) at the same time. Setting it to the SAME value first, then the new value works around the IE7/8 bug.\r
-                               style.zoom = 1; //helps correct an IE issue.\r
-                               pt.type = 2;\r
-                               pt.b = "alpha(opacity=" + pt.s + ")";\r
-                               pt.e = "alpha(opacity=" + (pt.s + pt.c) + ")";\r
-                               pt.data = t;\r
-                               pt.plugin = plugin;\r
-                               pt.setRatio = _setIEOpacityRatio;\r
-                       }\r
-                       if (isAutoAlpha) { //we have to create the "visibility" PropTween after the opacity one in the linked list so that they run in the order that works properly in IE8 and earlier\r
-                               pt = new CSSPropTween(style, "visibility", 0, 0, pt, -1, null, false, 0, ((b !== 0) ? "inherit" : "hidden"), ((e === 0) ? "hidden" : "inherit"));\r
-                               pt.xs0 = "inherit";\r
-                               cssp._overwriteProps.push(pt.n);\r
-                               cssp._overwriteProps.push(p);\r
-                       }\r
-                       return pt;\r
-               }});\r
-\r
-\r
-               var _removeProp = function(s, p) {\r
-                               if (p) {\r
-                                       if (s.removeProperty) {\r
-                                               if (p.substr(0,2) === "ms") { //Microsoft browsers don't conform to the standard of capping the first prefix character, so we adjust so that when we prefix the caps with a dash, it's correct (otherwise it'd be "ms-transform" instead of "-ms-transform" for IE9, for example)\r
-                                                       p = "M" + p.substr(1);\r
-                                               }\r
-                                               s.removeProperty(p.replace(_capsExp, "-$1").toLowerCase());\r
-                                       } else { //note: old versions of IE use "removeAttribute()" instead of "removeProperty()"\r
-                                               s.removeAttribute(p);\r
-                                       }\r
-                               }\r
-                       },\r
-                       _setClassNameRatio = function(v) {\r
-                               this.t._gsClassPT = this;\r
-                               if (v === 1 || v === 0) {\r
-                                       this.t.setAttribute("class", (v === 0) ? this.b : this.e);\r
-                                       var mpt = this.data, //first MiniPropTween\r
-                                               s = this.t.style;\r
-                                       while (mpt) {\r
-                                               if (!mpt.v) {\r
-                                                       _removeProp(s, mpt.p);\r
-                                               } else {\r
-                                                       s[mpt.p] = mpt.v;\r
-                                               }\r
-                                               mpt = mpt._next;\r
-                                       }\r
-                                       if (v === 1 && this.t._gsClassPT === this) {\r
-                                               this.t._gsClassPT = null;\r
-                                       }\r
-                               } else if (this.t.getAttribute("class") !== this.e) {\r
-                                       this.t.setAttribute("class", this.e);\r
-                               }\r
-                       };\r
-               _registerComplexSpecialProp("className", {parser:function(t, e, p, cssp, pt, plugin, vars) {\r
-                       var b = t.getAttribute("class") || "", //don't use t.className because it doesn't work consistently on SVG elements; getAttribute("class") and setAttribute("class", value") is more reliable.\r
-                               cssText = t.style.cssText,\r
-                               difData, bs, cnpt, cnptLookup, mpt;\r
-                       pt = cssp._classNamePT = new CSSPropTween(t, p, 0, 0, pt, 2);\r
-                       pt.setRatio = _setClassNameRatio;\r
-                       pt.pr = -11;\r
-                       _hasPriority = true;\r
-                       pt.b = b;\r
-                       bs = _getAllStyles(t, _cs);\r
-                       //if there's a className tween already operating on the target, force it to its end so that the necessary inline styles are removed and the class name is applied before we determine the end state (we don't want inline styles interfering that were there just for class-specific values)\r
-                       cnpt = t._gsClassPT;\r
-                       if (cnpt) {\r
-                               cnptLookup = {};\r
-                               mpt = cnpt.data; //first MiniPropTween which stores the inline styles - we need to force these so that the inline styles don't contaminate things. Otherwise, there's a small chance that a tween could start and the inline values match the destination values and they never get cleaned.\r
-                               while (mpt) {\r
-                                       cnptLookup[mpt.p] = 1;\r
-                                       mpt = mpt._next;\r
-                               }\r
-                               cnpt.setRatio(1);\r
-                       }\r
-                       t._gsClassPT = pt;\r
-                       pt.e = (e.charAt(1) !== "=") ? e : b.replace(new RegExp("\\s*\\b" + e.substr(2) + "\\b"), "") + ((e.charAt(0) === "+") ? " " + e.substr(2) : "");\r
-                       if (cssp._tween._duration) { //if it's a zero-duration tween, there's no need to tween anything or parse the data. In fact, if we switch classes temporarily (which we must do for proper parsing) and the class has a transition applied, it could cause a quick flash to the end state and back again initially in some browsers.\r
-                               t.setAttribute("class", pt.e);\r
-                               difData = _cssDif(t, bs, _getAllStyles(t), vars, cnptLookup);\r
-                               t.setAttribute("class", b);\r
-                               pt.data = difData.firstMPT;\r
-                               t.style.cssText = cssText; //we recorded cssText before we swapped classes and ran _getAllStyles() because in cases when a className tween is overwritten, we remove all the related tweening properties from that class change (otherwise class-specific stuff can't override properties we've directly set on the target's style object due to specificity).\r
-                               pt = pt.xfirst = cssp.parse(t, difData.difs, pt, plugin); //we record the CSSPropTween as the xfirst so that we can handle overwriting propertly (if "className" gets overwritten, we must kill all the properties associated with the className part of the tween, so we can loop through from xfirst to the pt itself)\r
-                       }\r
-                       return pt;\r
-               }});\r
-\r
-\r
-               var _setClearPropsRatio = function(v) {\r
-                       if (v === 1 || v === 0) if (this.data._totalTime === this.data._totalDuration && this.data.data !== "isFromStart") { //this.data refers to the tween. Only clear at the END of the tween (remember, from() tweens make the ratio go from 1 to 0, so we can't just check that and if the tween is the zero-duration one that's created internally to render the starting values in a from() tween, ignore that because otherwise, for example, from(...{height:100, clearProps:"height", delay:1}) would wipe the height at the beginning of the tween and after 1 second, it'd kick back in).\r
-                               var s = this.t.style,\r
-                                       transformParse = _specialProps.transform.parse,\r
-                                       a, p, i, clearTransform;\r
-                               if (this.e === "all") {\r
-                                       s.cssText = "";\r
-                                       clearTransform = true;\r
-                               } else {\r
-                                       a = this.e.split(",");\r
-                                       i = a.length;\r
-                                       while (--i > -1) {\r
-                                               p = a[i];\r
-                                               if (_specialProps[p]) {\r
-                                                       if (_specialProps[p].parse === transformParse) {\r
-                                                               clearTransform = true;\r
-                                                       } else {\r
-                                                               p = (p === "transformOrigin") ? _transformOriginProp : _specialProps[p].p; //ensures that special properties use the proper browser-specific property name, like "scaleX" might be "-webkit-transform" or "boxShadow" might be "-moz-box-shadow"\r
-                                                       }\r
-                                               }\r
-                                               _removeProp(s, p);\r
-                                       }\r
-                               }\r
-                               if (clearTransform) {\r
-                                       _removeProp(s, _transformProp);\r
-                                       if (this.t._gsTransform) {\r
-                                               delete this.t._gsTransform;\r
-                                       }\r
-                               }\r
-\r
-                       }\r
-               };\r
-               _registerComplexSpecialProp("clearProps", {parser:function(t, e, p, cssp, pt) {\r
-                       pt = new CSSPropTween(t, p, 0, 0, pt, 2);\r
-                       pt.setRatio = _setClearPropsRatio;\r
-                       pt.e = e;\r
-                       pt.pr = -10;\r
-                       pt.data = cssp._tween;\r
-                       _hasPriority = true;\r
-                       return pt;\r
-               }});\r
-\r
-               p = "bezier,throwProps,physicsProps,physics2D".split(",");\r
-               i = p.length;\r
-               while (i--) {\r
-                       _registerPluginProp(p[i]);\r
-               }\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-               p = CSSPlugin.prototype;\r
-               p._firstPT = null;\r
-\r
-               //gets called when the tween renders for the first time. This kicks everything off, recording start/end values, etc.\r
-               p._onInitTween = function(target, vars, tween) {\r
-                       if (!target.nodeType) { //css is only for dom elements\r
-                               return false;\r
-                       }\r
-                       this._target = target;\r
-                       this._tween = tween;\r
-                       this._vars = vars;\r
-                       _autoRound = vars.autoRound;\r
-                       _hasPriority = false;\r
-                       _suffixMap = vars.suffixMap || CSSPlugin.suffixMap;\r
-                       _cs = _getComputedStyle(target, "");\r
-                       _overwriteProps = this._overwriteProps;\r
-                       var style = target.style,\r
-                               v, pt, pt2, first, last, next, zIndex, tpt, threeD;\r
-                       if (_reqSafariFix) if (style.zIndex === "") {\r
-                               v = _getStyle(target, "zIndex", _cs);\r
-                               if (v === "auto" || v === "") {\r
-                                       //corrects a bug in [non-Android] Safari that prevents it from repainting elements in their new positions if they don't have a zIndex set. We also can't just apply this inside _parseTransform() because anything that's moved in any way (like using "left" or "top" instead of transforms like "x" and "y") can be affected, so it is best to ensure that anything that's tweening has a z-index. Setting "WebkitPerspective" to a non-zero value worked too except that on iOS Safari things would flicker randomly. Plus zIndex is less memory-intensive.\r
-                                       this._addLazySet(style, "zIndex", 0);\r
-                               }\r
-                       }\r
-\r
-                       if (typeof(vars) === "string") {\r
-                               first = style.cssText;\r
-                               v = _getAllStyles(target, _cs);\r
-                               style.cssText = first + ";" + vars;\r
-                               v = _cssDif(target, v, _getAllStyles(target)).difs;\r
-                               if (!_supportsOpacity && _opacityValExp.test(vars)) {\r
-                                       v.opacity = parseFloat( RegExp.$1 );\r
-                               }\r
-                               vars = v;\r
-                               style.cssText = first;\r
-                       }\r
-                       this._firstPT = pt = this.parse(target, vars, null);\r
-\r
-                       if (this._transformType) {\r
-                               threeD = (this._transformType === 3);\r
-                               if (!_transformProp) {\r
-                                       style.zoom = 1; //helps correct an IE issue.\r
-                               } else if (_isSafari) {\r
-                                       _reqSafariFix = true;\r
-                                       //if zIndex isn't set, iOS Safari doesn't repaint things correctly sometimes (seemingly at random).\r
-                                       if (style.zIndex === "") {\r
-                                               zIndex = _getStyle(target, "zIndex", _cs);\r
-                                               if (zIndex === "auto" || zIndex === "") {\r
-                                                       this._addLazySet(style, "zIndex", 0);\r
-                                               }\r
-                                       }\r
-                                       //Setting WebkitBackfaceVisibility corrects 3 bugs:\r
-                                       // 1) [non-Android] Safari skips rendering changes to "top" and "left" that are made on the same frame/render as a transform update.\r
-                                       // 2) iOS Safari sometimes neglects to repaint elements in their new positions. Setting "WebkitPerspective" to a non-zero value worked too except that on iOS Safari things would flicker randomly.\r
-                                       // 3) Safari sometimes displayed odd artifacts when tweening the transform (or WebkitTransform) property, like ghosts of the edges of the element remained. Definitely a browser bug.\r
-                                       //Note: we allow the user to override the auto-setting by defining WebkitBackfaceVisibility in the vars of the tween.\r
-                                       if (_isSafariLT6) {\r
-                                               this._addLazySet(style, "WebkitBackfaceVisibility", this._vars.WebkitBackfaceVisibility || (threeD ? "visible" : "hidden"));\r
-                                       }\r
-                               }\r
-                               pt2 = pt;\r
-                               while (pt2 && pt2._next) {\r
-                                       pt2 = pt2._next;\r
-                               }\r
-                               tpt = new CSSPropTween(target, "transform", 0, 0, null, 2);\r
-                               this._linkCSSP(tpt, null, pt2);\r
-                               tpt.setRatio = (threeD && _supports3D) ? _set3DTransformRatio : _transformProp ? _set2DTransformRatio : _setIETransformRatio;\r
-                               tpt.data = this._transform || _getTransform(target, _cs, true);\r
-                               _overwriteProps.pop(); //we don't want to force the overwrite of all "transform" tweens of the target - we only care about individual transform properties like scaleX, rotation, etc. The CSSPropTween constructor automatically adds the property to _overwriteProps which is why we need to pop() here.\r
-                       }\r
-\r
-                       if (_hasPriority) {\r
-                               //reorders the linked list in order of pr (priority)\r
-                               while (pt) {\r
-                                       next = pt._next;\r
-                                       pt2 = first;\r
-                                       while (pt2 && pt2.pr > pt.pr) {\r
-                                               pt2 = pt2._next;\r
-                                       }\r
-                                       if ((pt._prev = pt2 ? pt2._prev : last)) {\r
-                                               pt._prev._next = pt;\r
-                                       } else {\r
-                                               first = pt;\r
-                                       }\r
-                                       if ((pt._next = pt2)) {\r
-                                               pt2._prev = pt;\r
-                                       } else {\r
-                                               last = pt;\r
-                                       }\r
-                                       pt = next;\r
-                               }\r
-                               this._firstPT = first;\r
-                       }\r
-                       return true;\r
-               };\r
-\r
-\r
-               p.parse = function(target, vars, pt, plugin) {\r
-                       var style = target.style,\r
-                               p, sp, bn, en, bs, es, bsfx, esfx, isStr, rel;\r
-                       for (p in vars) {\r
-                               es = vars[p]; //ending value string\r
-                               sp = _specialProps[p]; //SpecialProp lookup.\r
-                               if (sp) {\r
-                                       pt = sp.parse(target, es, p, this, pt, plugin, vars);\r
-\r
-                               } else {\r
-                                       bs = _getStyle(target, p, _cs) + "";\r
-                                       isStr = (typeof(es) === "string");\r
-                                       if (p === "color" || p === "fill" || p === "stroke" || p.indexOf("Color") !== -1 || (isStr && _rgbhslExp.test(es))) { //Opera uses background: to define color sometimes in addition to backgroundColor:\r
-                                               if (!isStr) {\r
-                                                       es = _parseColor(es);\r
-                                                       es = ((es.length > 3) ? "rgba(" : "rgb(") + es.join(",") + ")";\r
-                                               }\r
-                                               pt = _parseComplex(style, p, bs, es, true, "transparent", pt, 0, plugin);\r
-\r
-                                       } else if (isStr && (es.indexOf(" ") !== -1 || es.indexOf(",") !== -1)) {\r
-                                               pt = _parseComplex(style, p, bs, es, true, null, pt, 0, plugin);\r
-\r
-                                       } else {\r
-                                               bn = parseFloat(bs);\r
-                                               bsfx = (bn || bn === 0) ? bs.substr((bn + "").length) : ""; //remember, bs could be non-numeric like "normal" for fontWeight, so we should default to a blank suffix in that case.\r
-\r
-                                               if (bs === "" || bs === "auto") {\r
-                                                       if (p === "width" || p === "height") {\r
-                                                               bn = _getDimension(target, p, _cs);\r
-                                                               bsfx = "px";\r
-                                                       } else if (p === "left" || p === "top") {\r
-                                                               bn = _calculateOffset(target, p, _cs);\r
-                                                               bsfx = "px";\r
-                                                       } else {\r
-                                                               bn = (p !== "opacity") ? 0 : 1;\r
-                                                               bsfx = "";\r
-                                                       }\r
-                                               }\r
-\r
-                                               rel = (isStr && es.charAt(1) === "=");\r
-                                               if (rel) {\r
-                                                       en = parseInt(es.charAt(0) + "1", 10);\r
-                                                       es = es.substr(2);\r
-                                                       en *= parseFloat(es);\r
-                                                       esfx = es.replace(_suffixExp, "");\r
-                                               } else {\r
-                                                       en = parseFloat(es);\r
-                                                       esfx = isStr ? es.substr((en + "").length) || "" : "";\r
-                                               }\r
-\r
-                                               if (esfx === "") {\r
-                                                       esfx = (p in _suffixMap) ? _suffixMap[p] : bsfx; //populate the end suffix, prioritizing the map, then if none is found, use the beginning suffix.\r
-                                               }\r
-\r
-                                               es = (en || en === 0) ? (rel ? en + bn : en) + esfx : vars[p]; //ensures that any += or -= prefixes are taken care of. Record the end value before normalizing the suffix because we always want to end the tween on exactly what they intended even if it doesn't match the beginning value's suffix.\r
-\r
-                                               //if the beginning/ending suffixes don't match, normalize them...\r
-                                               if (bsfx !== esfx) if (esfx !== "") if (en || en === 0) if (bn) { //note: if the beginning value (bn) is 0, we don't need to convert units!\r
-                                                       bn = _convertToPixels(target, p, bn, bsfx);\r
-                                                       if (esfx === "%") {\r
-                                                               bn /= _convertToPixels(target, p, 100, "%") / 100;\r
-                                                               if (vars.strictUnits !== true) { //some browsers report only "px" values instead of allowing "%" with getComputedStyle(), so we assume that if we're tweening to a %, we should start there too unless strictUnits:true is defined. This approach is particularly useful for responsive designs that use from() tweens.\r
-                                                                       bs = bn + "%";\r
-                                                               }\r
-\r
-                                                       } else if (esfx === "em") {\r
-                                                               bn /= _convertToPixels(target, p, 1, "em");\r
-\r
-                                                       //otherwise convert to pixels.\r
-                                                       } else if (esfx !== "px") {\r
-                                                               en = _convertToPixels(target, p, en, esfx);\r
-                                                               esfx = "px"; //we don't use bsfx after this, so we don't need to set it to px too.\r
-                                                       }\r
-                                                       if (rel) if (en || en === 0) {\r
-                                                               es = (en + bn) + esfx; //the changes we made affect relative calculations, so adjust the end value here.\r
-                                                       }\r
-                                               }\r
-\r
-                                               if (rel) {\r
-                                                       en += bn;\r
-                                               }\r
-\r
-                                               if ((bn || bn === 0) && (en || en === 0)) { //faster than isNaN(). Also, previously we required en !== bn but that doesn't really gain much performance and it prevents _parseToProxy() from working properly if beginning and ending values match but need to get tweened by an external plugin anyway. For example, a bezier tween where the target starts at left:0 and has these points: [{left:50},{left:0}] wouldn't work properly because when parsing the last point, it'd match the first (current) one and a non-tweening CSSPropTween would be recorded when we actually need a normal tween (type:0) so that things get updated during the tween properly.\r
-                                                       pt = new CSSPropTween(style, p, bn, en - bn, pt, 0, p, (_autoRound !== false && (esfx === "px" || p === "zIndex")), 0, bs, es);\r
-                                                       pt.xs0 = esfx;\r
-                                                       //DEBUG: _log("tween "+p+" from "+pt.b+" ("+bn+esfx+") to "+pt.e+" with suffix: "+pt.xs0);\r
-                                               } else if (style[p] === undefined || !es && (es + "" === "NaN" || es == null)) {\r
-                                                       _log("invalid " + p + " tween value: " + vars[p]);\r
-                                               } else {\r
-                                                       pt = new CSSPropTween(style, p, en || bn || 0, 0, pt, -1, p, false, 0, bs, es);\r
-                                                       pt.xs0 = (es === "none" && (p === "display" || p.indexOf("Style") !== -1)) ? bs : es; //intermediate value should typically be set immediately (end value) except for "display" or things like borderTopStyle, borderBottomStyle, etc. which should use the beginning value during the tween.\r
-                                                       //DEBUG: _log("non-tweening value "+p+": "+pt.xs0);\r
-                                               }\r
-                                       }\r
-                               }\r
-                               if (plugin) if (pt && !pt.plugin) {\r
-                                       pt.plugin = plugin;\r
-                               }\r
-                       }\r
-                       return pt;\r
-               };\r
-\r
-\r
-               //gets called every time the tween updates, passing the new ratio (typically a value between 0 and 1, but not always (for example, if an Elastic.easeOut is used, the value can jump above 1 mid-tween). It will always start and 0 and end at 1.\r
-               p.setRatio = function(v) {\r
-                       var pt = this._firstPT,\r
-                               min = 0.000001,\r
-                               val, str, i;\r
-\r
-                       //at the end of the tween, we set the values to exactly what we received in order to make sure non-tweening values (like "position" or "float" or whatever) are set and so that if the beginning/ending suffixes (units) didn't match and we normalized to px, the value that the user passed in is used here. We check to see if the tween is at its beginning in case it's a from() tween in which case the ratio will actually go from 1 to 0 over the course of the tween (backwards).\r
-                       if (v === 1 && (this._tween._time === this._tween._duration || this._tween._time === 0)) {\r
-                               while (pt) {\r
-                                       if (pt.type !== 2) {\r
-                                               pt.t[pt.p] = pt.e;\r
-                                       } else {\r
-                                               pt.setRatio(v);\r
-                                       }\r
-                                       pt = pt._next;\r
-                               }\r
-\r
-                       } else if (v || !(this._tween._time === this._tween._duration || this._tween._time === 0) || this._tween._rawPrevTime === -0.000001) {\r
-                               while (pt) {\r
-                                       val = pt.c * v + pt.s;\r
-                                       if (pt.r) {\r
-                                               val = Math.round(val);\r
-                                       } else if (val < min) if (val > -min) {\r
-                                               val = 0;\r
-                                       }\r
-                                       if (!pt.type) {\r
-                                               pt.t[pt.p] = val + pt.xs0;\r
-                                       } else if (pt.type === 1) { //complex value (one that typically has multiple numbers inside a string, like "rect(5px,10px,20px,25px)"\r
-                                               i = pt.l;\r
-                                               if (i === 2) {\r
-                                                       pt.t[pt.p] = pt.xs0 + val + pt.xs1 + pt.xn1 + pt.xs2;\r
-                                               } else if (i === 3) {\r
-                                                       pt.t[pt.p] = pt.xs0 + val + pt.xs1 + pt.xn1 + pt.xs2 + pt.xn2 + pt.xs3;\r
-                                               } else if (i === 4) {\r
-                                                       pt.t[pt.p] = pt.xs0 + val + pt.xs1 + pt.xn1 + pt.xs2 + pt.xn2 + pt.xs3 + pt.xn3 + pt.xs4;\r
-                                               } else if (i === 5) {\r
-                                                       pt.t[pt.p] = pt.xs0 + val + pt.xs1 + pt.xn1 + pt.xs2 + pt.xn2 + pt.xs3 + pt.xn3 + pt.xs4 + pt.xn4 + pt.xs5;\r
-                                               } else {\r
-                                                       str = pt.xs0 + val + pt.xs1;\r
-                                                       for (i = 1; i < pt.l; i++) {\r
-                                                               str += pt["xn"+i] + pt["xs"+(i+1)];\r
-                                                       }\r
-                                                       pt.t[pt.p] = str;\r
-                                               }\r
-\r
-                                       } else if (pt.type === -1) { //non-tweening value\r
-                                               pt.t[pt.p] = pt.xs0;\r
-\r
-                                       } else if (pt.setRatio) { //custom setRatio() for things like SpecialProps, external plugins, etc.\r
-                                               pt.setRatio(v);\r
-                                       }\r
-                                       pt = pt._next;\r
-                               }\r
-\r
-                       //if the tween is reversed all the way back to the beginning, we need to restore the original values which may have different units (like % instead of px or em or whatever).\r
-                       } else {\r
-                               while (pt) {\r
-                                       if (pt.type !== 2) {\r
-                                               pt.t[pt.p] = pt.b;\r
-                                       } else {\r
-                                               pt.setRatio(v);\r
-                                       }\r
-                                       pt = pt._next;\r
-                               }\r
-                       }\r
-               };\r
-\r
-               /**\r
-                * @private\r
-                * Forces rendering of the target's transforms (rotation, scale, etc.) whenever the CSSPlugin's setRatio() is called.\r
-                * Basically, this tells the CSSPlugin to create a CSSPropTween (type 2) after instantiation that runs last in the linked\r
-                * list and calls the appropriate (3D or 2D) rendering function. We separate this into its own method so that we can call\r
-                * it from other plugins like BezierPlugin if, for example, it needs to apply an autoRotation and this CSSPlugin\r
-                * doesn't have any transform-related properties of its own. You can call this method as many times as you\r
-                * want and it won't create duplicate CSSPropTweens.\r
-                *\r
-                * @param {boolean} threeD if true, it should apply 3D tweens (otherwise, just 2D ones are fine and typically faster)\r
-                */\r
-               p._enableTransforms = function(threeD) {\r
-                       this._transformType = (threeD || this._transformType === 3) ? 3 : 2;\r
-                       this._transform = this._transform || _getTransform(this._target, _cs, true); //ensures that the element has a _gsTransform property with the appropriate values.\r
-               };\r
-\r
-               var lazySet = function(v) {\r
-                       this.t[this.p] = this.e;\r
-                       this.data._linkCSSP(this, this._next, null, true); //we purposefully keep this._next even though it'd make sense to null it, but this is a performance optimization, as this happens during the while (pt) {} loop in setRatio() at the bottom of which it sets pt = pt._next, so if we null it, the linked list will be broken in that loop.\r
-               };\r
-               /** @private Gives us a way to set a value on the first render (and only the first render). **/\r
-               p._addLazySet = function(t, p, v) {\r
-                       var pt = this._firstPT = new CSSPropTween(t, p, 0, 0, this._firstPT, 2);\r
-                       pt.e = v;\r
-                       pt.setRatio = lazySet;\r
-                       pt.data = this;\r
-               };\r
-\r
-               /** @private **/\r
-               p._linkCSSP = function(pt, next, prev, remove) {\r
-                       if (pt) {\r
-                               if (next) {\r
-                                       next._prev = pt;\r
-                               }\r
-                               if (pt._next) {\r
-                                       pt._next._prev = pt._prev;\r
-                               }\r
-                               if (pt._prev) {\r
-                                       pt._prev._next = pt._next;\r
-                               } else if (this._firstPT === pt) {\r
-                                       this._firstPT = pt._next;\r
-                                       remove = true; //just to prevent resetting this._firstPT 5 lines down in case pt._next is null. (optimized for speed)\r
-                               }\r
-                               if (prev) {\r
-                                       prev._next = pt;\r
-                               } else if (!remove && this._firstPT === null) {\r
-                                       this._firstPT = pt;\r
-                               }\r
-                               pt._next = next;\r
-                               pt._prev = prev;\r
-                       }\r
-                       return pt;\r
-               };\r
-\r
-               //we need to make sure that if alpha or autoAlpha is killed, opacity is too. And autoAlpha affects the "visibility" property.\r
-               p._kill = function(lookup) {\r
-                       var copy = lookup,\r
-                               pt, p, xfirst;\r
-                       if (lookup.autoAlpha || lookup.alpha) {\r
-                               copy = {};\r
-                               for (p in lookup) { //copy the lookup so that we're not changing the original which may be passed elsewhere.\r
-                                       copy[p] = lookup[p];\r
-                               }\r
-                               copy.opacity = 1;\r
-                               if (copy.autoAlpha) {\r
-                                       copy.visibility = 1;\r
-                               }\r
-                       }\r
-                       if (lookup.className && (pt = this._classNamePT)) { //for className tweens, we need to kill any associated CSSPropTweens too; a linked list starts at the className's "xfirst".\r
-                               xfirst = pt.xfirst;\r
-                               if (xfirst && xfirst._prev) {\r
-                                       this._linkCSSP(xfirst._prev, pt._next, xfirst._prev._prev); //break off the prev\r
-                               } else if (xfirst === this._firstPT) {\r
-                                       this._firstPT = pt._next;\r
-                               }\r
-                               if (pt._next) {\r
-                                       this._linkCSSP(pt._next, pt._next._next, xfirst._prev);\r
-                               }\r
-                               this._classNamePT = null;\r
-                       }\r
-                       return TweenPlugin.prototype._kill.call(this, copy);\r
-               };\r
-\r
-\r
-\r
-               //used by cascadeTo() for gathering all the style properties of each child element into an array for comparison.\r
-               var _getChildStyles = function(e, props, targets) {\r
-                               var children, i, child, type;\r
-                               if (e.slice) {\r
-                                       i = e.length;\r
-                                       while (--i > -1) {\r
-                                               _getChildStyles(e[i], props, targets);\r
-                                       }\r
-                                       return;\r
-                               }\r
-                               children = e.childNodes;\r
-                               i = children.length;\r
-                               while (--i > -1) {\r
-                                       child = children[i];\r
-                                       type = child.type;\r
-                                       if (child.style) {\r
-                                               props.push(_getAllStyles(child));\r
-                                               if (targets) {\r
-                                                       targets.push(child);\r
-                                               }\r
-                                       }\r
-                                       if ((type === 1 || type === 9 || type === 11) && child.childNodes.length) {\r
-                                               _getChildStyles(child, props, targets);\r
-                                       }\r
-                               }\r
-                       };\r
-\r
-               /**\r
-                * Typically only useful for className tweens that may affect child elements, this method creates a TweenLite\r
-                * and then compares the style properties of all the target's child elements at the tween's start and end, and\r
-                * if any are different, it also creates tweens for those and returns an array containing ALL of the resulting\r
-                * tweens (so that you can easily add() them to a TimelineLite, for example). The reason this functionality is\r
-                * wrapped into a separate static method of CSSPlugin instead of being integrated into all regular className tweens\r
-                * is because it creates entirely new tweens that may have completely different targets than the original tween,\r
-                * so if they were all lumped into the original tween instance, it would be inconsistent with the rest of the API\r
-                * and it would create other problems. For example:\r
-                *  - If I create a tween of elementA, that tween instance may suddenly change its target to include 50 other elements (unintuitive if I specifically defined the target I wanted)\r
-                *  - We can't just create new independent tweens because otherwise, what happens if the original/parent tween is reversed or pause or dropped into a TimelineLite for tight control? You'd expect that tween's behavior to affect all the others.\r
-                *  - Analyzing every style property of every child before and after the tween is an expensive operation when there are many children, so this behavior shouldn't be imposed on all className tweens by default, especially since it's probably rare that this extra functionality is needed.\r
-                *\r
-                * @param {Object} target object to be tweened\r
-                * @param {number} Duration in seconds (or frames for frames-based tweens)\r
-                * @param {Object} Object containing the end values, like {className:"newClass", ease:Linear.easeNone}\r
-                * @return {Array} An array of TweenLite instances\r
-                */\r
-               CSSPlugin.cascadeTo = function(target, duration, vars) {\r
-                       var tween = TweenLite.to(target, duration, vars),\r
-                               results = [tween],\r
-                               b = [],\r
-                               e = [],\r
-                               targets = [],\r
-                               _reservedProps = TweenLite._internals.reservedProps,\r
-                               i, difs, p;\r
-                       target = tween._targets || tween.target;\r
-                       _getChildStyles(target, b, targets);\r
-                       tween.render(duration, true);\r
-                       _getChildStyles(target, e);\r
-                       tween.render(0, true);\r
-                       tween._enabled(true);\r
-                       i = targets.length;\r
-                       while (--i > -1) {\r
-                               difs = _cssDif(targets[i], b[i], e[i]);\r
-                               if (difs.firstMPT) {\r
-                                       difs = difs.difs;\r
-                                       for (p in vars) {\r
-                                               if (_reservedProps[p]) {\r
-                                                       difs[p] = vars[p];\r
-                                               }\r
-                                       }\r
-                                       results.push( TweenLite.to(targets[i], duration, difs) );\r
-                               }\r
-                       }\r
-                       return results;\r
-               };\r
-\r
-               TweenPlugin.activate([CSSPlugin]);\r
-               return CSSPlugin;\r
-\r
-       }, true);\r
-\r
-       \r
-       \r
-       \r
-       \r
-       \r
-       \r
-       \r
-       \r
-       \r
-       \r
-/*\r
- * ----------------------------------------------------------------\r
- * RoundPropsPlugin\r
- * ----------------------------------------------------------------\r
- */\r
-       (function() {\r
-\r
-               var RoundPropsPlugin = window._gsDefine.plugin({\r
-                               propName: "roundProps",\r
-                               priority: -1,\r
-                               API: 2,\r
-\r
-                               //called when the tween renders for the first time. This is where initial values should be recorded and any setup routines should run.\r
-                               init: function(target, value, tween) {\r
-                                       this._tween = tween;\r
-                                       return true;\r
-                               }\r
-\r
-                       }),\r
-                       p = RoundPropsPlugin.prototype;\r
-\r
-               p._onInitAllProps = function() {\r
-                       var tween = this._tween,\r
-                               rp = (tween.vars.roundProps instanceof Array) ? tween.vars.roundProps : tween.vars.roundProps.split(","),\r
-                               i = rp.length,\r
-                               lookup = {},\r
-                               rpt = tween._propLookup.roundProps,\r
-                               prop, pt, next;\r
-                       while (--i > -1) {\r
-                               lookup[rp[i]] = 1;\r
-                       }\r
-                       i = rp.length;\r
-                       while (--i > -1) {\r
-                               prop = rp[i];\r
-                               pt = tween._firstPT;\r
-                               while (pt) {\r
-                                       next = pt._next; //record here, because it may get removed\r
-                                       if (pt.pg) {\r
-                                               pt.t._roundProps(lookup, true);\r
-                                       } else if (pt.n === prop) {\r
-                                               this._add(pt.t, prop, pt.s, pt.c);\r
-                                               //remove from linked list\r
-                                               if (next) {\r
-                                                       next._prev = pt._prev;\r
-                                               }\r
-                                               if (pt._prev) {\r
-                                                       pt._prev._next = next;\r
-                                               } else if (tween._firstPT === pt) {\r
-                                                       tween._firstPT = next;\r
-                                               }\r
-                                               pt._next = pt._prev = null;\r
-                                               tween._propLookup[prop] = rpt;\r
-                                       }\r
-                                       pt = next;\r
-                               }\r
-                       }\r
-                       return false;\r
-               };\r
-\r
-               p._add = function(target, p, s, c) {\r
-                       this._addTween(target, p, s, s + c, p, true);\r
-                       this._overwriteProps.push(p);\r
-               };\r
-\r
-       }());\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*\r
- * ----------------------------------------------------------------\r
- * AttrPlugin\r
- * ----------------------------------------------------------------\r
- */\r
-       window._gsDefine.plugin({\r
-               propName: "attr",\r
-               API: 2,\r
-               version: "0.3.2",\r
-\r
-               //called when the tween renders for the first time. This is where initial values should be recorded and any setup routines should run.\r
-               init: function(target, value, tween) {\r
-                       var p, start, end;\r
-                       if (typeof(target.setAttribute) !== "function") {\r
-                               return false;\r
-                       }\r
-                       this._target = target;\r
-                       this._proxy = {};\r
-                       this._start = {}; // we record start and end values exactly as they are in case they're strings (not numbers) - we need to be able to revert to them cleanly.\r
-                       this._end = {};\r
-                       for (p in value) {\r
-                               this._start[p] = this._proxy[p] = start = target.getAttribute(p);\r
-                               end = this._addTween(this._proxy, p, parseFloat(start), value[p], p);\r
-                               this._end[p] = end ? end.s + end.c : value[p];\r
-                               this._overwriteProps.push(p);\r
-                       }\r
-                       return true;\r
-               },\r
-\r
-               //called each time the values should be updated, and the ratio gets passed as the only parameter (typically it's a value between 0 and 1, but it can exceed those when using an ease like Elastic.easeOut or Back.easeOut, etc.)\r
-               set: function(ratio) {\r
-                       this._super.setRatio.call(this, ratio);\r
-                       var props = this._overwriteProps,\r
-                               i = props.length,\r
-                               lookup = (ratio === 1) ? this._end : ratio ? this._proxy : this._start,\r
-                               p;\r
-                       while (--i > -1) {\r
-                               p = props[i];\r
-                               this._target.setAttribute(p, lookup[p] + "");\r
-                       }\r
-               }\r
-\r
-       });\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-/*\r
- * ----------------------------------------------------------------\r
- * DirectionalRotationPlugin\r
- * ----------------------------------------------------------------\r
- */\r
-       window._gsDefine.plugin({\r
-               propName: "directionalRotation",\r
-               API: 2,\r
-               version: "0.2.0",\r
-\r
-               //called when the tween renders for the first time. This is where initial values should be recorded and any setup routines should run.\r
-               init: function(target, value, tween) {\r
-                       if (typeof(value) !== "object") {\r
-                               value = {rotation:value};\r
-                       }\r
-                       this.finals = {};\r
-                       var cap = (value.useRadians === true) ? Math.PI * 2 : 360,\r
-                               min = 0.000001,\r
-                               p, v, start, end, dif, split;\r
-                       for (p in value) {\r
-                               if (p !== "useRadians") {\r
-                                       split = (value[p] + "").split("_");\r
-                                       v = split[0];\r
-                                       start = parseFloat( (typeof(target[p]) !== "function") ? target[p] : target[ ((p.indexOf("set") || typeof(target["get" + p.substr(3)]) !== "function") ? p : "get" + p.substr(3)) ]() );\r
-                                       end = this.finals[p] = (typeof(v) === "string" && v.charAt(1) === "=") ? start + parseInt(v.charAt(0) + "1", 10) * Number(v.substr(2)) : Number(v) || 0;\r
-                                       dif = end - start;\r
-                                       if (split.length) {\r
-                                               v = split.join("_");\r
-                                               if (v.indexOf("short") !== -1) {\r
-                                                       dif = dif % cap;\r
-                                                       if (dif !== dif % (cap / 2)) {\r
-                                                               dif = (dif < 0) ? dif + cap : dif - cap;\r
-                                                       }\r
-                                               }\r
-                                               if (v.indexOf("_cw") !== -1 && dif < 0) {\r
-                                                       dif = ((dif + cap * 9999999999) % cap) - ((dif / cap) | 0) * cap;\r
-                                               } else if (v.indexOf("ccw") !== -1 && dif > 0) {\r
-                                                       dif = ((dif - cap * 9999999999) % cap) - ((dif / cap) | 0) * cap;\r
-                                               }\r
-                                       }\r
-                                       if (dif > min || dif < -min) {\r
-                                               this._addTween(target, p, start, start + dif, p);\r
-                                               this._overwriteProps.push(p);\r
-                                       }\r
-                               }\r
-                       }\r
-                       return true;\r
-               },\r
-\r
-               //called each time the values should be updated, and the ratio gets passed as the only parameter (typically it's a value between 0 and 1, but it can exceed those when using an ease like Elastic.easeOut or Back.easeOut, etc.)\r
-               set: function(ratio) {\r
-                       var pt;\r
-                       if (ratio !== 1) {\r
-                               this._super.setRatio.call(this, ratio);\r
-                       } else {\r
-                               pt = this._firstPT;\r
-                               while (pt) {\r
-                                       if (pt.f) {\r
-                                               pt.t[pt.p](this.finals[pt.p]);\r
-                                       } else {\r
-                                               pt.t[pt.p] = this.finals[pt.p];\r
-                                       }\r
-                                       pt = pt._next;\r
-                               }\r
-                       }\r
-               }\r
-\r
-       })._autoCSS = true;\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-       \r
-       \r
-       \r
-       \r
-/*\r
- * ----------------------------------------------------------------\r
- * EasePack\r
- * ----------------------------------------------------------------\r
- */\r
-       window._gsDefine("easing.Back", ["easing.Ease"], function(Ease) {\r
-               \r
-               var w = (window.GreenSockGlobals || window),\r
-                       gs = w.com.greensock,\r
-                       _2PI = Math.PI * 2,\r
-                       _HALF_PI = Math.PI / 2,\r
-                       _class = gs._class,\r
-                       _create = function(n, f) {\r
-                               var C = _class("easing." + n, function(){}, true),\r
-                                       p = C.prototype = new Ease();\r
-                               p.constructor = C;\r
-                               p.getRatio = f;\r
-                               return C;\r
-                       },\r
-                       _easeReg = Ease.register || function(){}, //put an empty function in place just as a safety measure in case someone loads an OLD version of TweenLite.js where Ease.register doesn't exist.\r
-                       _wrap = function(name, EaseOut, EaseIn, EaseInOut, aliases) {\r
-                               var C = _class("easing."+name, {\r
-                                       easeOut:new EaseOut(),\r
-                                       easeIn:new EaseIn(),\r
-                                       easeInOut:new EaseInOut()\r
-                               }, true);\r
-                               _easeReg(C, name);\r
-                               return C;\r
-                       },\r
-                       EasePoint = function(time, value, next) {\r
-                               this.t = time;\r
-                               this.v = value;\r
-                               if (next) {\r
-                                       this.next = next;\r
-                                       next.prev = this;\r
-                                       this.c = next.v - value;\r
-                                       this.gap = next.t - time;\r
-                               }\r
-                       },\r
-\r
-                       //Back\r
-                       _createBack = function(n, f) {\r
-                               var C = _class("easing." + n, function(overshoot) {\r
-                                               this._p1 = (overshoot || overshoot === 0) ? overshoot : 1.70158;\r
-                                               this._p2 = this._p1 * 1.525;\r
-                                       }, true),\r
-                                       p = C.prototype = new Ease();\r
-                               p.constructor = C;\r
-                               p.getRatio = f;\r
-                               p.config = function(overshoot) {\r
-                                       return new C(overshoot);\r
-                               };\r
-                               return C;\r
-                       },\r
-\r
-                       Back = _wrap("Back",\r
-                               _createBack("BackOut", function(p) {\r
-                                       return ((p = p - 1) * p * ((this._p1 + 1) * p + this._p1) + 1);\r
-                               }),\r
-                               _createBack("BackIn", function(p) {\r
-                                       return p * p * ((this._p1 + 1) * p - this._p1);\r
-                               }),\r
-                               _createBack("BackInOut", function(p) {\r
-                                       return ((p *= 2) < 1) ? 0.5 * p * p * ((this._p2 + 1) * p - this._p2) : 0.5 * ((p -= 2) * p * ((this._p2 + 1) * p + this._p2) + 2);\r
-                               })\r
-                       ),\r
-\r
-\r
-                       //SlowMo\r
-                       SlowMo = _class("easing.SlowMo", function(linearRatio, power, yoyoMode) {\r
-                               power = (power || power === 0) ? power : 0.7;\r
-                               if (linearRatio == null) {\r
-                                       linearRatio = 0.7;\r
-                               } else if (linearRatio > 1) {\r
-                                       linearRatio = 1;\r
-                               }\r
-                               this._p = (linearRatio !== 1) ? power : 0;\r
-                               this._p1 = (1 - linearRatio) / 2;\r
-                               this._p2 = linearRatio;\r
-                               this._p3 = this._p1 + this._p2;\r
-                               this._calcEnd = (yoyoMode === true);\r
-                       }, true),\r
-                       p = SlowMo.prototype = new Ease(),\r
-                       SteppedEase, RoughEase, _createElastic;\r
-\r
-               p.constructor = SlowMo;\r
-               p.getRatio = function(p) {\r
-                       var r = p + (0.5 - p) * this._p;\r
-                       if (p < this._p1) {\r
-                               return this._calcEnd ? 1 - ((p = 1 - (p / this._p1)) * p) : r - ((p = 1 - (p / this._p1)) * p * p * p * r);\r
-                       } else if (p > this._p3) {\r
-                               return this._calcEnd ? 1 - (p = (p - this._p3) / this._p1) * p : r + ((p - r) * (p = (p - this._p3) / this._p1) * p * p * p);\r
-                       }\r
-                       return this._calcEnd ? 1 : r;\r
-               };\r
-               SlowMo.ease = new SlowMo(0.7, 0.7);\r
-\r
-               p.config = SlowMo.config = function(linearRatio, power, yoyoMode) {\r
-                       return new SlowMo(linearRatio, power, yoyoMode);\r
-               };\r
-\r
-\r
-               //SteppedEase\r
-               SteppedEase = _class("easing.SteppedEase", function(steps) {\r
-                               steps = steps || 1;\r
-                               this._p1 = 1 / steps;\r
-                               this._p2 = steps + 1;\r
-                       }, true);\r
-               p = SteppedEase.prototype = new Ease();\r
-               p.constructor = SteppedEase;\r
-               p.getRatio = function(p) {\r
-                       if (p < 0) {\r
-                               p = 0;\r
-                       } else if (p >= 1) {\r
-                               p = 0.999999999;\r
-                       }\r
-                       return ((this._p2 * p) >> 0) * this._p1;\r
-               };\r
-               p.config = SteppedEase.config = function(steps) {\r
-                       return new SteppedEase(steps);\r
-               };\r
-\r
-\r
-               //RoughEase\r
-               RoughEase = _class("easing.RoughEase", function(vars) {\r
-                       vars = vars || {};\r
-                       var taper = vars.taper || "none",\r
-                               a = [],\r
-                               cnt = 0,\r
-                               points = (vars.points || 20) | 0,\r
-                               i = points,\r
-                               randomize = (vars.randomize !== false),\r
-                               clamp = (vars.clamp === true),\r
-                               template = (vars.template instanceof Ease) ? vars.template : null,\r
-                               strength = (typeof(vars.strength) === "number") ? vars.strength * 0.4 : 0.4,\r
-                               x, y, bump, invX, obj, pnt;\r
-                       while (--i > -1) {\r
-                               x = randomize ? Math.random() : (1 / points) * i;\r
-                               y = template ? template.getRatio(x) : x;\r
-                               if (taper === "none") {\r
-                                       bump = strength;\r
-                               } else if (taper === "out") {\r
-                                       invX = 1 - x;\r
-                                       bump = invX * invX * strength;\r
-                               } else if (taper === "in") {\r
-                                       bump = x * x * strength;\r
-                               } else if (x < 0.5) {  //"both" (start)\r
-                                       invX = x * 2;\r
-                                       bump = invX * invX * 0.5 * strength;\r
-                               } else {                                //"both" (end)\r
-                                       invX = (1 - x) * 2;\r
-                                       bump = invX * invX * 0.5 * strength;\r
-                               }\r
-                               if (randomize) {\r
-                                       y += (Math.random() * bump) - (bump * 0.5);\r
-                               } else if (i % 2) {\r
-                                       y += bump * 0.5;\r
-                               } else {\r
-                                       y -= bump * 0.5;\r
-                               }\r
-                               if (clamp) {\r
-                                       if (y > 1) {\r
-                                               y = 1;\r
-                                       } else if (y < 0) {\r
-                                               y = 0;\r
-                                       }\r
-                               }\r
-                               a[cnt++] = {x:x, y:y};\r
-                       }\r
-                       a.sort(function(a, b) {\r
-                               return a.x - b.x;\r
-                       });\r
-\r
-                       pnt = new EasePoint(1, 1, null);\r
-                       i = points;\r
-                       while (--i > -1) {\r
-                               obj = a[i];\r
-                               pnt = new EasePoint(obj.x, obj.y, pnt);\r
-                       }\r
-\r
-                       this._prev = new EasePoint(0, 0, (pnt.t !== 0) ? pnt : pnt.next);\r
-               }, true);\r
-               p = RoughEase.prototype = new Ease();\r
-               p.constructor = RoughEase;\r
-               p.getRatio = function(p) {\r
-                       var pnt = this._prev;\r
-                       if (p > pnt.t) {\r
-                               while (pnt.next && p >= pnt.t) {\r
-                                       pnt = pnt.next;\r
-                               }\r
-                               pnt = pnt.prev;\r
-                       } else {\r
-                               while (pnt.prev && p <= pnt.t) {\r
-                                       pnt = pnt.prev;\r
-                               }\r
-                       }\r
-                       this._prev = pnt;\r
-                       return (pnt.v + ((p - pnt.t) / pnt.gap) * pnt.c);\r
-               };\r
-               p.config = function(vars) {\r
-                       return new RoughEase(vars);\r
-               };\r
-               RoughEase.ease = new RoughEase();\r
-\r
-\r
-               //Bounce\r
-               _wrap("Bounce",\r
-                       _create("BounceOut", function(p) {\r
-                               if (p < 1 / 2.75) {\r
-                                       return 7.5625 * p * p;\r
-                               } else if (p < 2 / 2.75) {\r
-                                       return 7.5625 * (p -= 1.5 / 2.75) * p + 0.75;\r
-                               } else if (p < 2.5 / 2.75) {\r
-                                       return 7.5625 * (p -= 2.25 / 2.75) * p + 0.9375;\r
-                               }\r
-                               return 7.5625 * (p -= 2.625 / 2.75) * p + 0.984375;\r
-                       }),\r
-                       _create("BounceIn", function(p) {\r
-                               if ((p = 1 - p) < 1 / 2.75) {\r
-                                       return 1 - (7.5625 * p * p);\r
-                               } else if (p < 2 / 2.75) {\r
-                                       return 1 - (7.5625 * (p -= 1.5 / 2.75) * p + 0.75);\r
-                               } else if (p < 2.5 / 2.75) {\r
-                                       return 1 - (7.5625 * (p -= 2.25 / 2.75) * p + 0.9375);\r
-                               }\r
-                               return 1 - (7.5625 * (p -= 2.625 / 2.75) * p + 0.984375);\r
-                       }),\r
-                       _create("BounceInOut", function(p) {\r
-                               var invert = (p < 0.5);\r
-                               if (invert) {\r
-                                       p = 1 - (p * 2);\r
-                               } else {\r
-                                       p = (p * 2) - 1;\r
-                               }\r
-                               if (p < 1 / 2.75) {\r
-                                       p = 7.5625 * p * p;\r
-                               } else if (p < 2 / 2.75) {\r
-                                       p = 7.5625 * (p -= 1.5 / 2.75) * p + 0.75;\r
-                               } else if (p < 2.5 / 2.75) {\r
-                                       p = 7.5625 * (p -= 2.25 / 2.75) * p + 0.9375;\r
-                               } else {\r
-                                       p = 7.5625 * (p -= 2.625 / 2.75) * p + 0.984375;\r
-                               }\r
-                               return invert ? (1 - p) * 0.5 : p * 0.5 + 0.5;\r
-                       })\r
-               );\r
-\r
-\r
-               //CIRC\r
-               _wrap("Circ",\r
-                       _create("CircOut", function(p) {\r
-                               return Math.sqrt(1 - (p = p - 1) * p);\r
-                       }),\r
-                       _create("CircIn", function(p) {\r
-                               return -(Math.sqrt(1 - (p * p)) - 1);\r
-                       }),\r
-                       _create("CircInOut", function(p) {\r
-                               return ((p*=2) < 1) ? -0.5 * (Math.sqrt(1 - p * p) - 1) : 0.5 * (Math.sqrt(1 - (p -= 2) * p) + 1);\r
-                       })\r
-               );\r
-\r
-\r
-               //Elastic\r
-               _createElastic = function(n, f, def) {\r
-                       var C = _class("easing." + n, function(amplitude, period) {\r
-                                       this._p1 = amplitude || 1;\r
-                                       this._p2 = period || def;\r
-                                       this._p3 = this._p2 / _2PI * (Math.asin(1 / this._p1) || 0);\r
-                               }, true),\r
-                               p = C.prototype = new Ease();\r
-                       p.constructor = C;\r
-                       p.getRatio = f;\r
-                       p.config = function(amplitude, period) {\r
-                               return new C(amplitude, period);\r
-                       };\r
-                       return C;\r
-               };\r
-               _wrap("Elastic",\r
-                       _createElastic("ElasticOut", function(p) {\r
-                               return this._p1 * Math.pow(2, -10 * p) * Math.sin( (p - this._p3) * _2PI / this._p2 ) + 1;\r
-                       }, 0.3),\r
-                       _createElastic("ElasticIn", function(p) {\r
-                               return -(this._p1 * Math.pow(2, 10 * (p -= 1)) * Math.sin( (p - this._p3) * _2PI / this._p2 ));\r
-                       }, 0.3),\r
-                       _createElastic("ElasticInOut", function(p) {\r
-                               return ((p *= 2) < 1) ? -0.5 * (this._p1 * Math.pow(2, 10 * (p -= 1)) * Math.sin( (p - this._p3) * _2PI / this._p2)) : this._p1 * Math.pow(2, -10 *(p -= 1)) * Math.sin( (p - this._p3) * _2PI / this._p2 ) *0.5 + 1;\r
-                       }, 0.45)\r
-               );\r
-\r
-\r
-               //Expo\r
-               _wrap("Expo",\r
-                       _create("ExpoOut", function(p) {\r
-                               return 1 - Math.pow(2, -10 * p);\r
-                       }),\r
-                       _create("ExpoIn", function(p) {\r
-                               return Math.pow(2, 10 * (p - 1)) - 0.001;\r
-                       }),\r
-                       _create("ExpoInOut", function(p) {\r
-                               return ((p *= 2) < 1) ? 0.5 * Math.pow(2, 10 * (p - 1)) : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\r
-                       })\r
-               );\r
-\r
-\r
-               //Sine\r
-               _wrap("Sine",\r
-                       _create("SineOut", function(p) {\r
-                               return Math.sin(p * _HALF_PI);\r
-                       }),\r
-                       _create("SineIn", function(p) {\r
-                               return -Math.cos(p * _HALF_PI) + 1;\r
-                       }),\r
-                       _create("SineInOut", function(p) {\r
-                               return -0.5 * (Math.cos(Math.PI * p) - 1);\r
-                       })\r
-               );\r
-\r
-               _class("easing.EaseLookup", {\r
-                               find:function(s) {\r
-                                       return Ease.map[s];\r
-                               }\r
-                       }, true);\r
-\r
-               //register the non-standard eases\r
-               _easeReg(w.SlowMo, "SlowMo", "ease,");\r
-               _easeReg(RoughEase, "RoughEase", "ease,");\r
-               _easeReg(SteppedEase, "SteppedEase", "ease,");\r
-\r
-               return Back;\r
-               \r
-       }, true);\r
-\r
-\r
-}); \r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
 \r
 /*\r
  * ----------------------------------------------------------------\r
index 66f52e4..cfed618 100755 (executable)
@@ -5,18 +5,13 @@
 * Date 11/23/2015\r
 */\r
 \r
-(function(angular, window){\r
-angular.module("att.abs",["att.abs.tpls","att.abs.utilities","att.abs.position","att.abs.transition","att.abs.accordion","att.abs.alert","att.abs.boardStrip","att.abs.breadCrumbs","att.abs.buttons","att.abs.checkbox","att.abs.colorselector","att.abs.datepicker","att.abs.devNotes","att.abs.dividerLines","att.abs.dragdrop","att.abs.drawer","att.abs.message","att.abs.formField","att.abs.hourpicker","att.abs.iconButtons","att.abs.links","att.abs.loading","att.abs.modal","att.abs.pagination","att.abs.paneSelector","att.abs.tooltip","att.abs.popOvers","att.abs.profileCard","att.abs.progressBars","att.abs.radio","att.abs.scrollbar","att.abs.search","att.abs.select","att.abs.slider","att.abs.splitButtonDropdown","att.abs.splitIconButton","att.abs.stepSlider","att.abs.steptracker","att.abs.table","att.abs.tableMessages","att.abs.tabs","att.abs.tagBadges","att.abs.textOverflow","att.abs.toggle","att.abs.treeview","att.abs.typeAhead","att.abs.verticalSteptracker","att.abs.videoControls"]),angular.module("att.abs.tpls",["app/scripts/ng_js_att_tpls/accordion/accordion.html","app/scripts/ng_js_att_tpls/accordion/accordion_alt.html","app/scripts/ng_js_att_tpls/accordion/attAccord.html","app/scripts/ng_js_att_tpls/accordion/attAccordBody.html","app/scripts/ng_js_att_tpls/accordion/attAccordHeader.html","app/scripts/ng_js_att_tpls/alert/alert.html","app/scripts/ng_js_att_tpls/boardStrip/attAddBoard.html","app/scripts/ng_js_att_tpls/boardStrip/attBoard.html","app/scripts/ng_js_att_tpls/boardStrip/attBoardStrip.html","app/scripts/ng_js_att_tpls/buttons/buttonDropdown.html","app/scripts/ng_js_att_tpls/colorselector/colorselector.html","app/scripts/ng_js_att_tpls/datepicker/dateFilter.html","app/scripts/ng_js_att_tpls/datepicker/dateFilterList.html","app/scripts/ng_js_att_tpls/datepicker/datepicker.html","app/scripts/ng_js_att_tpls/datepicker/datepickerPopup.html","app/scripts/ng_js_att_tpls/dividerLines/dividerLines.html","app/scripts/ng_js_att_tpls/dragdrop/fileUpload.html","app/scripts/ng_js_att_tpls/formField/attFormFieldValidationAlert.html","app/scripts/ng_js_att_tpls/formField/attFormFieldValidationAlertPrv.html","app/scripts/ng_js_att_tpls/formField/creditCardImage.html","app/scripts/ng_js_att_tpls/formField/cvcSecurityImg.html","app/scripts/ng_js_att_tpls/hourpicker/hourpicker.html","app/scripts/ng_js_att_tpls/links/readMore.html","app/scripts/ng_js_att_tpls/loading/loading.html","app/scripts/ng_js_att_tpls/modal/backdrop.html","app/scripts/ng_js_att_tpls/modal/tabbedItem.html","app/scripts/ng_js_att_tpls/modal/tabbedOverlayItem.html","app/scripts/ng_js_att_tpls/modal/window.html","app/scripts/ng_js_att_tpls/pagination/pagination.html","app/scripts/ng_js_att_tpls/paneSelector/innerPane.html","app/scripts/ng_js_att_tpls/paneSelector/paneGroup.html","app/scripts/ng_js_att_tpls/paneSelector/sidePane.html","app/scripts/ng_js_att_tpls/tooltip/tooltip-popup.html","app/scripts/ng_js_att_tpls/popOvers/popOvers.html","app/scripts/ng_js_att_tpls/profileCard/addUser.html","app/scripts/ng_js_att_tpls/profileCard/profileCard.html","app/scripts/ng_js_att_tpls/progressBars/progressBars.html","app/scripts/ng_js_att_tpls/scrollbar/scrollbar.html","app/scripts/ng_js_att_tpls/search/search.html","app/scripts/ng_js_att_tpls/select/select.html","app/scripts/ng_js_att_tpls/select/textDropdown.html","app/scripts/ng_js_att_tpls/slider/maxContent.html","app/scripts/ng_js_att_tpls/slider/minContent.html","app/scripts/ng_js_att_tpls/slider/slider.html","app/scripts/ng_js_att_tpls/splitButtonDropdown/splitButtonDropdown.html","app/scripts/ng_js_att_tpls/splitButtonDropdown/splitButtonDropdownItem.html","app/scripts/ng_js_att_tpls/splitIconButton/splitIcon.html","app/scripts/ng_js_att_tpls/splitIconButton/splitIconButton.html","app/scripts/ng_js_att_tpls/splitIconButton/splitIconButtonGroup.html","app/scripts/ng_js_att_tpls/stepSlider/attStepSlider.html","app/scripts/ng_js_att_tpls/steptracker/step-tracker.html","app/scripts/ng_js_att_tpls/steptracker/step.html","app/scripts/ng_js_att_tpls/steptracker/timeline.html","app/scripts/ng_js_att_tpls/steptracker/timelineBar.html","app/scripts/ng_js_att_tpls/steptracker/timelineDot.html","app/scripts/ng_js_att_tpls/table/attTable.html","app/scripts/ng_js_att_tpls/table/attTableBody.html","app/scripts/ng_js_att_tpls/table/attTableHeader.html","app/scripts/ng_js_att_tpls/tableMessages/attTableMessage.html","app/scripts/ng_js_att_tpls/tableMessages/attUserMessage.html","app/scripts/ng_js_att_tpls/tabs/floatingTabs.html","app/scripts/ng_js_att_tpls/tabs/genericTabs.html","app/scripts/ng_js_att_tpls/tabs/menuTab.html","app/scripts/ng_js_att_tpls/tabs/parentmenuTab.html","app/scripts/ng_js_att_tpls/tabs/simplifiedTabs.html","app/scripts/ng_js_att_tpls/tabs/submenuTab.html","app/scripts/ng_js_att_tpls/tagBadges/tagBadges.html","app/scripts/ng_js_att_tpls/toggle/demoToggle.html","app/scripts/ng_js_att_tpls/typeAhead/typeAhead.html","app/scripts/ng_js_att_tpls/verticalSteptracker/vertical-step-tracker.html","app/scripts/ng_js_att_tpls/videoControls/photoControls.html","app/scripts/ng_js_att_tpls/videoControls/videoControls.html"]),angular.module("att.abs.utilities",[]).filter("unsafe",["$sce",function(a){return function(b){return a.trustAsHtml(b)}}]).filter("highlight",function(){function a(a){return a.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}return function(b,c,d){return c&&b?b.replace(new RegExp(a(c),"gi"),'<span class="'+d+'">$&</span>'):b}}).filter("attLimitTo",function(){return function(a,b,c){var d=[],e=b,f=c;return isNaN(f)&&(f=0),d=a&&!isNaN(e)?a.slice(f,f+e):a}}).filter("startsWith",function(){return"function"!=typeof String.prototype.startsWith&&(String.prototype.startsWith=function(a){return 0===this.indexOf(a)}),function(a,b){if(void 0===b||""===b)return a;var c=[];return angular.forEach(a,function(a){a.title.toLowerCase().startsWith(b.toLowerCase())&&c.push(a)}),c}}).directive("attInputDeny",[function(){return{restrict:"A",require:"ngModel",link:function(a,b,c,d){var e=null;c.$observe("attInputDeny",function(a){a&&(e=new RegExp(a,"g"))}),b.bind("input",function(){var b=d.$viewValue&&d.$viewValue.replace(e,"");b!==d.$viewValue&&(d.$setViewValue(b),d.$render(),a.$apply())})}}}]).directive("attAccessibilityClick",[function(){return{restrict:"A",link:function(a,b,c){var d=[];c.$observe("attAccessibilityClick",function(a){a&&(d=a.split(","))}),b.bind("keydown",function(a){var c=function(){var b=!1;return a.keyCode||(a.which?a.keyCode=a.which:a.charCode&&(a.keyCode=a.charCode)),a.keyCode&&d.indexOf(a.keyCode.toString())>-1&&(b=!0),b};d.length>0&&c()&&(b[0].click(),a.preventDefault())})}}}]).directive("attElementFocus",[function(){return{restrict:"A",link:function(a,b,c){a.$watch(c.attElementFocus,function(a){a&&b[0].focus()})}}}]).directive("focusOn",["$timeout",function(a){var b=function(a){if(!a.focusOn&&""!==a.focusOn)throw"FocusOnCondition missing attribute to evaluate"};return{restrict:"A",link:function(c,d,e){b(e),c.$watch(e.focusOn,function(b){b&&a(function(){d[0].focus()})})}}}]).constant("whenScrollEndsConstants",{threshold:100,width:0,height:0}).directive("whenScrollEnds",function(a,b){return{restrict:"A",link:function(c,d,e){var f=parseInt(e.threshold,10)||a.threshold;return e.axis&&""!==e.axis?void("x"===e.axis?(visibleWidth=parseInt(e.width,10)||a.width,d.css("width")&&(visibleWidth=d.css("width").split("px")[0]),d[0].addEventListener("scroll",function(){var a=d.prop("scrollWidth");void 0===a&&(a=1);var b=a-visibleWidth;b-d[0].scrollLeft<=f&&c.$apply(e.whenScrollEnds)})):"y"===e.axis&&(visibleHeight=parseInt(e.height,10)||a.height,d.css("width")&&(visibleHeight=d.css("height").split("px")[0]),d[0].addEventListener("scroll",function(){var a=d.prop("scrollHeight");void 0===a&&(a=1);var b=a-visibleHeight;b-d[0].scrollTop<=f&&c.$apply(e.whenScrollEnds)}))):void b.warn("axis attribute must be defined for whenScrollEnds.")}}}).directive("validImei",function(){return{restrict:"A",require:"ngModel",link:function(a,b,c,d){d.$parsers.unshift(function(b){if(b){if(a.valid=!1,isNaN(b)||15!==b.length)a.valid=!1;else{for(var c=0,e=[],f=0;15>f;f++)e[f]=parseInt(b.substring(f,f+1),10),f%2!==0&&(e[f]=parseInt(2*e[f],10)),e[f]>9&&(e[f]=parseInt(e[f]%10,10)+parseInt(e[f]/10,10)),c+=parseInt(e[f],10);c%10===0?a.valid=!0:a.valid=!1}d.$setValidity("invalidImei",a.valid)}return a.valid?b:void 0})}}}).directive("togglePassword",function(){return{restrict:"A",transclude:!1,link:function(a,b,c,d){b.bind("click",function(){var a=c.togglePassword;b[0].innerHTML="Show"===b[0].innerHTML?"Hide":"Show";var d=angular.element(document.querySelector("#"+a))[0].type;angular.element(document.querySelector("#"+a))[0].type="password"===d?"text":"password"})}}}).factory("events",function(){var a=function(a){a.stopPropagation?a.stopPropagation():a.returnValue=!1},b=function(a){a.preventDefault?a.preventDefault():a.returnValue=!1};return{stopPropagation:a,preventDefault:b}}).factory("$documentBind",["$document","$timeout",function(a,b){var c=function(c,d,e){e.$watch(c,function(c){b(function(){c?a.bind("click",d):a.unbind("click",d)})})},d=function(c,d,e,f,g,h){g?(h||(h=0),f.$watch(d,function(d,f){d!==f&&b(function(){d?a.bind(c,e):a.unbind(c,e)},h)})):f.$watch(d,function(b,d){b!==d&&(b?a.bind(c,e):a.unbind(c,e))})};return{click:c,event:d}}]).factory("DOMHelper",function(){function a(a){var b=angular.element(a),c=parseInt(b.attr("tabindex"),10)>=0?!0:!1,d=b[0].tagName.toUpperCase();return c||"A"===d||"INPUT"===d||"TEXTAREA"===d?!(b[0].disabled||b[0].readOnly):!1}function b(a){return 1==a.nodeType&&"SCRIPT"!=a.nodeName&&"STYLE"!=a.nodeName}function c(d){var d=d||document.getElementsByTagName("body")[0];if(b(d)&&a(d))return d;if(!d.hasChildNodes())return void 0;for(var e=d.firstChild;e;){var f=c(e);if(f)return f;e=e.nextSibling}}var d=function(a){var b=a;return a.hasOwnProperty("length")&&(b=a[0]),c(b)};return{firstTabableElement:d}}).factory("keymap",function(){return{KEY:{TAB:9,ENTER:13,ESC:27,SPACE:32,LEFT:37,UP:38,RIGHT:39,DOWN:40,SHIFT:16,CTRL:17,ALT:18,PAGE_UP:33,PAGE_DOWN:34,HOME:36,END:35,BACKSPACE:8,DELETE:46,COMMAND:91},MAP:{91:"COMMAND",8:"BACKSPACE",9:"TAB",13:"ENTER",16:"SHIFT",17:"CTRL",18:"ALT",19:"PAUSEBREAK",20:"CAPSLOCK",27:"ESC",32:"SPACE",33:"PAGE_UP",34:"PAGE_DOWN",35:"END",36:"HOME",37:"LEFT",38:"UP",39:"RIGHT",40:"DOWN",43:"+",44:"PRINTSCREEN",45:"INSERT",46:"DELETE",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"A",66:"B",67:"C",68:"D",69:"E",70:"F",71:"G",72:"H",73:"I",74:"J",75:"K",76:"L",77:"M",78:"N",79:"O",80:"P",81:"Q",82:"R",83:"S",84:"T",85:"U",86:"V",87:"W",88:"X",89:"Y",90:"Z",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",106:"*",107:"+",109:"-",110:".",111:"/",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NUMLOCK",145:"SCROLLLOCK",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},isControl:function(a){var b=a.keyCode;switch(b){case this.KEY.COMMAND:case this.KEY.SHIFT:case this.KEY.CTRL:case this.KEY.ALT:return!0}return a.metaKey?!0:!1},isFunctionKey:function(a){return a=a.keyCode?a.keyCode:a,a>=112&&123>=a},isVerticalMovement:function(a){return~[this.KEY.UP,this.KEY.DOWN].indexOf(a)},isHorizontalMovement:function(a){return~[this.KEY.LEFT,this.KEY.RIGHT,this.KEY.BACKSPACE,this.KEY.DELETE].indexOf(a)},isAllowedKey:function(a){return~[this.KEY.SPACE,this.KEY.ESC,this.KEY.ENTER].indexOf(a)||this.isHorizontalMovement(a)||this.isVerticalMovement(a)}}}).factory("keyMapAc",function(){return{keys:{32:" ",33:"!",34:'"',35:"#",36:"$",37:"%",38:"&",39:"'",40:"(",41:")",42:"*",43:"+",44:",",45:"-",46:".",47:"/",58:":",59:";",60:"<",61:"=",62:">",63:"?",64:"@",91:"[",92:"\\",93:"]",94:"^",95:"_",96:"`",123:"{",124:"|",125:"}",126:"~"},keyRange:{startNum:"48",endNum:"57",startSmallLetters:"97",endSmallLetters:"122",startCapitalLetters:"65",endCapitalLetters:"90"},allowedKeys:{TAB:8,BACKSPACE:9,DELETE:16}}}).factory("$attElementDetach",function(){var a=function(a){a&&a.parentNode&&a.parentNode.removeChild(a)};return a}).factory("$ieVersion",function(){var ie=null,loadIEVersion=function(){var isIE10=eval("/*@cc_on!@*/false")&&10===document.documentMode;if(isIE10)return 10;var v=3,div=document.createElement("div"),all=div.getElementsByTagName("i");do div.innerHTML="<!--[if gt IE "+ ++v+"]><i></i><![endif]-->";while(all[0]);return v>4?v:void 0};return function(){return null===ie&&(ie=loadIEVersion()),ie}}),function(){String.prototype.toSnakeCase=function(){return this.replace(/([A-Z])/g,function(a){return"-"+a.toLowerCase()})};var a=function(a,b){a=a||"",b=!isNaN(b)&&b||0;for(var c="",d=0;b>d;d++)c+=a;return c},b=function(b,c,d,e){return b=b||"",c=!isNaN(c)&&c||0,d=d||"",c>b.length?e?a(d,c-b.length)+b:b+a(d,c-b.length):b};String.prototype.lPad=function(a,c){return b(this,a,c,!0)},String.prototype.rPad=function(a,c){return b(this,a,c,!1)},Array.prototype.indexOf||(Array.prototype.indexOf=function(a){for(var b=0;b<this.length;b++)if(this[b]===a)return b;return-1})}(),angular.module("att.abs.position",[]).factory("$position",["$document","$window",function(a,b){function c(a,c){return a.currentStyle?a.currentStyle[c]:b.getComputedStyle?b.getComputedStyle(a)[c]:a.style[c]}function d(a){return"static"===(c(a,"position")||"static")}var e=function(b){for(var c=a[0],e=b.offsetParent||c;e&&e!==c&&d(e);)e=e.offsetParent;return e||c};return{position:function(b){var c=this.offset(b),d={top:0,left:0},f=e(b[0]);return f!==a[0]&&(d=this.offset(angular.element(f)),d.top+=f.clientTop-f.scrollTop,d.left+=f.clientLeft-f.scrollLeft),{width:b.prop("offsetWidth"),height:b.prop("offsetHeight"),top:c.top-d.top,left:c.left-d.left}},offset:function(c){var d=c[0].getBoundingClientRect();return{width:c.prop("offsetWidth"),height:c.prop("offsetHeight"),top:d.top+(b.pageYOffset||a[0].body.scrollTop||a[0].documentElement.scrollTop),left:d.left+(b.pageXOffset||a[0].body.scrollLeft||a[0].documentElement.scrollLeft)}}}}]).factory("$isElement",[function(){var a=function(b,c,d){return b[0]===c[0]?!0:b[0]===d[0]?!1:a(b.parent()[0]&&b.parent()||c,c,d)};return a}]).directive("attPosition",["$position",function(a){return{restrict:"A",link:function(b,c,d){b.$watchCollection(function(){return a.position(c)},function(a){b[d.attPosition]=a})}}}]),(window._gsQueue||(window._gsQueue=[])).push(function(){"use strict";var a=document.documentElement,b=window,c=function(c,d){var e="x"===d?"Width":"Height",f="scroll"+e,g="client"+e,h=document.body;return c===b||c===a||c===h?Math.max(a[f],h[f])-(b["inner"+e]||Math.max(a[g],h[g])):c[f]-c["offset"+e]},d=window._gsDefine.plugin({propName:"scrollTo",API:2,version:"1.7.3",init:function(a,d,e){return this._wdw=a===b,this._target=a,this._tween=e,"object"!=typeof d&&(d={y:d}),this._autoKill=d.autoKill!==!1,this.x=this.xPrev=this.getX(),this.y=this.yPrev=this.getY(),null!=d.x?(this._addTween(this,"x",this.x,"max"===d.x?c(a,"x"):d.x,"scrollTo_x",!0),this._overwriteProps.push("scrollTo_x")):this.skipX=!0,null!=d.y?(this._addTween(this,"y",this.y,"max"===d.y?c(a,"y"):d.y,"scrollTo_y",!0),this._overwriteProps.push("scrollTo_y")):this.skipY=!0,!0},set:function(a){this._super.setRatio.call(this,a);var d=this._wdw||!this.skipX?this.getX():this.xPrev,e=this._wdw||!this.skipY?this.getY():this.yPrev,f=e-this.yPrev,g=d-this.xPrev;this._autoKill&&(!this.skipX&&(g>7||-7>g)&&d<c(this._target,"x")&&(this.skipX=!0),!this.skipY&&(f>7||-7>f)&&e<c(this._target,"y")&&(this.skipY=!0),this.skipX&&this.skipY&&this._tween.kill()),this._wdw?b.scrollTo(this.skipX?d:this.x,this.skipY?e:this.y):(this.skipY||(this._target.scrollTop=this.y),this.skipX||(this._target.scrollLeft=this.x)),this.xPrev=this.x,this.yPrev=this.y}}),e=d.prototype;d.max=c,e.getX=function(){return this._wdw?null!=b.pageXOffset?b.pageXOffset:null!=a.scrollLeft?a.scrollLeft:document.body.scrollLeft:this._target.scrollLeft},e.getY=function(){return this._wdw?null!=b.pageYOffset?b.pageYOffset:null!=a.scrollTop?a.scrollTop:document.body.scrollTop:this._target.scrollTop},e._kill=function(a){return a.scrollTo_x&&(this.skipX=!0),a.scrollTo_y&&(this.skipY=!0),this._super._kill.call(this,a)}}),window._gsDefine&&window._gsQueue.pop()(),(window._gsQueue||(window._gsQueue=[])).push(function(){"use strict";window._gsDefine("TweenMax",["core.Animation","core.SimpleTimeline","TweenLite"],function(a,b,c){var d=[].slice,e=function(a,b,d){c.call(this,a,b,d),this._cycle=0,this._yoyo=this.vars.yoyo===!0,this._repeat=this.vars.repeat||0,this._repeatDelay=this.vars.repeatDelay||0,this._dirty=!0,this.render=e.prototype.render},f=1e-10,g=c._internals,h=g.isSelector,i=g.isArray,j=e.prototype=c.to({},.1,{}),k=[];e.version="1.12.1",j.constructor=e,j.kill()._gc=!1,e.killTweensOf=e.killDelayedCallsTo=c.killTweensOf,e.getTweensOf=c.getTweensOf,e.lagSmoothing=c.lagSmoothing,e.ticker=c.ticker,e.render=c.render,j.invalidate=function(){return this._yoyo=this.vars.yoyo===!0,this._repeat=this.vars.repeat||0,this._repeatDelay=this.vars.repeatDelay||0,this._uncache(!0),c.prototype.invalidate.call(this)},j.updateTo=function(a,b){var d,e=this.ratio;b&&this._startTime<this._timeline._time&&(this._startTime=this._timeline._time,this._uncache(!1),this._gc?this._enabled(!0,!1):this._timeline.insert(this,this._startTime-this._delay));for(d in a)this.vars[d]=a[d];if(this._initted)if(b)this._initted=!1;else if(this._gc&&this._enabled(!0,!1),this._notifyPluginsOfEnabled&&this._firstPT&&c._onPluginEvent("_onDisable",this),this._time/this._duration>.998){var f=this._time;this.render(0,!0,!1),this._initted=!1,this.render(f,!0,!1)}else if(this._time>0){this._initted=!1,this._init();for(var g,h=1/(1-e),i=this._firstPT;i;)g=i.s+i.c,i.c*=h,i.s=g-i.c,i=i._next}return this},j.render=function(a,b,c){this._initted||0===this._duration&&this.vars.repeat&&this.invalidate();var d,e,h,i,j,l,m,n,o=this._dirty?this.totalDuration():this._totalDuration,p=this._time,q=this._totalTime,r=this._cycle,s=this._duration,t=this._rawPrevTime;if(a>=o?(this._totalTime=o,this._cycle=this._repeat,this._yoyo&&0!==(1&this._cycle)?(this._time=0,this.ratio=this._ease._calcEnd?this._ease.getRatio(0):0):(this._time=s,this.ratio=this._ease._calcEnd?this._ease.getRatio(1):1),this._reversed||(d=!0,e="onComplete"),0===s&&(this._initted||!this.vars.lazy||c)&&(this._startTime===this._timeline._duration&&(a=0),(0===a||0>t||t===f)&&t!==a&&(c=!0,t>f&&(e="onReverseComplete")),this._rawPrevTime=n=!b||a||t===a?a:f)):1e-7>a?(this._totalTime=this._time=this._cycle=0,this.ratio=this._ease._calcEnd?this._ease.getRatio(0):0,(0!==q||0===s&&t>0&&t!==f)&&(e="onReverseComplete",d=this._reversed),0>a?(this._active=!1,0===s&&(this._initted||!this.vars.lazy||c)&&(t>=0&&(c=!0),this._rawPrevTime=n=!b||a||t===a?a:f)):this._initted||(c=!0)):(this._totalTime=this._time=a,0!==this._repeat&&(i=s+this._repeatDelay,this._cycle=this._totalTime/i>>0,0!==this._cycle&&this._cycle===this._totalTime/i&&this._cycle--,this._time=this._totalTime-this._cycle*i,this._yoyo&&0!==(1&this._cycle)&&(this._time=s-this._time),this._time>s?this._time=s:this._time<0&&(this._time=0)),this._easeType?(j=this._time/s,l=this._easeType,m=this._easePower,(1===l||3===l&&j>=.5)&&(j=1-j),3===l&&(j*=2),1===m?j*=j:2===m?j*=j*j:3===m?j*=j*j*j:4===m&&(j*=j*j*j*j),1===l?this.ratio=1-j:2===l?this.ratio=j:this._time/s<.5?this.ratio=j/2:this.ratio=1-j/2):this.ratio=this._ease.getRatio(this._time/s)),p===this._time&&!c&&r===this._cycle)return void(q!==this._totalTime&&this._onUpdate&&(b||this._onUpdate.apply(this.vars.onUpdateScope||this,this.vars.onUpdateParams||k)));if(!this._initted){if(this._init(),!this._initted||this._gc)return;if(!c&&this._firstPT&&(this.vars.lazy!==!1&&this._duration||this.vars.lazy&&!this._duration))return this._time=p,this._totalTime=q,this._rawPrevTime=t,this._cycle=r,g.lazyTweens.push(this),void(this._lazy=a);this._time&&!d?this.ratio=this._ease.getRatio(this._time/s):d&&this._ease._calcEnd&&(this.ratio=this._ease.getRatio(0===this._time?0:1))}for(this._lazy!==!1&&(this._lazy=!1),this._active||!this._paused&&this._time!==p&&a>=0&&(this._active=!0),0===q&&(2===this._initted&&a>0&&this._init(),this._startAt&&(a>=0?this._startAt.render(a,b,c):e||(e="_dummyGS")),this.vars.onStart&&(0!==this._totalTime||0===s)&&(b||this.vars.onStart.apply(this.vars.onStartScope||this,this.vars.onStartParams||k))),h=this._firstPT;h;)h.f?h.t[h.p](h.c*this.ratio+h.s):h.t[h.p]=h.c*this.ratio+h.s,h=h._next;this._onUpdate&&(0>a&&this._startAt&&this._startTime&&this._startAt.render(a,b,c),b||(this._totalTime!==q||d)&&this._onUpdate.apply(this.vars.onUpdateScope||this,this.vars.onUpdateParams||k)),this._cycle!==r&&(b||this._gc||this.vars.onRepeat&&this.vars.onRepeat.apply(this.vars.onRepeatScope||this,this.vars.onRepeatParams||k)),e&&(this._gc||(0>a&&this._startAt&&!this._onUpdate&&this._startTime&&this._startAt.render(a,b,c),d&&(this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!b&&this.vars[e]&&this.vars[e].apply(this.vars[e+"Scope"]||this,this.vars[e+"Params"]||k),0===s&&this._rawPrevTime===f&&n!==f&&(this._rawPrevTime=0)))},e.to=function(a,b,c){return new e(a,b,c)},e.from=function(a,b,c){return c.runBackwards=!0,c.immediateRender=0!=c.immediateRender,new e(a,b,c)},e.fromTo=function(a,b,c,d){return d.startAt=c,d.immediateRender=0!=d.immediateRender&&0!=c.immediateRender,new e(a,b,d)},e.staggerTo=e.allTo=function(a,b,f,g,j,l,m){g=g||0;var n,o,p,q,r=f.delay||0,s=[],t=function(){f.onComplete&&f.onComplete.apply(f.onCompleteScope||this,arguments),j.apply(m||this,l||k)};for(i(a)||("string"==typeof a&&(a=c.selector(a)||a),h(a)&&(a=d.call(a,0))),n=a.length,p=0;n>p;p++){o={};for(q in f)o[q]=f[q];o.delay=r,p===n-1&&j&&(o.onComplete=t),s[p]=new e(a[p],b,o),r+=g}return s},e.staggerFrom=e.allFrom=function(a,b,c,d,f,g,h){return c.runBackwards=!0,c.immediateRender=0!=c.immediateRender,e.staggerTo(a,b,c,d,f,g,h)},e.staggerFromTo=e.allFromTo=function(a,b,c,d,f,g,h,i){return d.startAt=c,d.immediateRender=0!=d.immediateRender&&0!=c.immediateRender,e.staggerTo(a,b,d,f,g,h,i)},e.delayedCall=function(a,b,c,d,f){return new e(b,0,{delay:a,onComplete:b,onCompleteParams:c,onCompleteScope:d,onReverseComplete:b,onReverseCompleteParams:c,onReverseCompleteScope:d,immediateRender:!1,useFrames:f,overwrite:0})},e.set=function(a,b){return new e(a,0,b)},e.isTweening=function(a){return c.getTweensOf(a,!0).length>0};var l=function(a,b){for(var d=[],e=0,f=a._first;f;)f instanceof c?d[e++]=f:(b&&(d[e++]=f),d=d.concat(l(f,b)),e=d.length),f=f._next;return d},m=e.getAllTweens=function(b){return l(a._rootTimeline,b).concat(l(a._rootFramesTimeline,b))};e.killAll=function(a,c,d,e){null==c&&(c=!0),null==d&&(d=!0);var f,g,h,i=m(0!=e),j=i.length,k=c&&d&&e;for(h=0;j>h;h++)g=i[h],(k||g instanceof b||(f=g.target===g.vars.onComplete)&&d||c&&!f)&&(a?g.totalTime(g._reversed?0:g.totalDuration()):g._enabled(!1,!1))},e.killChildTweensOf=function(a,b){if(null!=a){var f,j,k,l,m,n=g.tweenLookup;if("string"==typeof a&&(a=c.selector(a)||a),h(a)&&(a=d.call(a,0)),i(a))for(l=a.length;--l>-1;)e.killChildTweensOf(a[l],b);else{f=[];for(k in n)for(j=n[k].target.parentNode;j;)j===a&&(f=f.concat(n[k].tweens)),j=j.parentNode;for(m=f.length,l=0;m>l;l++)b&&f[l].totalTime(f[l].totalDuration()),f[l]._enabled(!1,!1)}}};var n=function(a,c,d,e){c=c!==!1,d=d!==!1,e=e!==!1;for(var f,g,h=m(e),i=c&&d&&e,j=h.length;--j>-1;)g=h[j],(i||g instanceof b||(f=g.target===g.vars.onComplete)&&d||c&&!f)&&g.paused(a)};return e.pauseAll=function(a,b,c){n(!0,a,b,c)},e.resumeAll=function(a,b,c){n(!1,a,b,c)},e.globalTimeScale=function(b){var d=a._rootTimeline,e=c.ticker.time;return arguments.length?(b=b||f,d._startTime=e-(e-d._startTime)*d._timeScale/b,d=a._rootFramesTimeline,e=c.ticker.frame,d._startTime=e-(e-d._startTime)*d._timeScale/b,d._timeScale=a._rootTimeline._timeScale=b,b):d._timeScale},j.progress=function(a){return arguments.length?this.totalTime(this.duration()*(this._yoyo&&0!==(1&this._cycle)?1-a:a)+this._cycle*(this._duration+this._repeatDelay),!1):this._time/this.duration()},j.totalProgress=function(a){return arguments.length?this.totalTime(this.totalDuration()*a,!1):this._totalTime/this.totalDuration()},j.time=function(a,b){return arguments.length?(this._dirty&&this.totalDuration(),a>this._duration&&(a=this._duration),this._yoyo&&0!==(1&this._cycle)?a=this._duration-a+this._cycle*(this._duration+this._repeatDelay):0!==this._repeat&&(a+=this._cycle*(this._duration+this._repeatDelay)),this.totalTime(a,b)):this._time},j.duration=function(b){return arguments.length?a.prototype.duration.call(this,b):this._duration},j.totalDuration=function(a){return arguments.length?-1===this._repeat?this:this.duration((a-this._repeat*this._repeatDelay)/(this._repeat+1)):(this._dirty&&(this._totalDuration=-1===this._repeat?999999999999:this._duration*(this._repeat+1)+this._repeatDelay*this._repeat,this._dirty=!1),this._totalDuration)},j.repeat=function(a){return arguments.length?(this._repeat=a,this._uncache(!0)):this._repeat},j.repeatDelay=function(a){return arguments.length?(this._repeatDelay=a,this._uncache(!0)):this._repeatDelay},j.yoyo=function(a){return arguments.length?(this._yoyo=a,this):this._yoyo},e},!0),window._gsDefine("TimelineLite",["core.Animation","core.SimpleTimeline","TweenLite"],function(a,b,c){var d=function(a){b.call(this,a),this._labels={},this.autoRemoveChildren=this.vars.autoRemoveChildren===!0,this.smoothChildTiming=this.vars.smoothChildTiming===!0,this._sortChildren=!0,this._onUpdate=this.vars.onUpdate;var c,d,e=this.vars;for(d in e)c=e[d],g(c)&&-1!==c.join("").indexOf("{self}")&&(e[d]=this._swapSelfInParams(c));g(e.tweens)&&this.add(e.tweens,0,e.align,e.stagger)},e=1e-10,f=c._internals.isSelector,g=c._internals.isArray,h=[],i=window._gsDefine.globals,j=function(a){var b,c={};for(b in a)c[b]=a[b];return c},k=function(a,b,c,d){a._timeline.pause(a._startTime),b&&b.apply(d||a._timeline,c||h)},l=h.slice,m=d.prototype=new b;return d.version="1.12.1",m.constructor=d,m.kill()._gc=!1,m.to=function(a,b,d,e){var f=d.repeat&&i.TweenMax||c;return b?this.add(new f(a,b,d),e):this.set(a,d,e)},m.from=function(a,b,d,e){return this.add((d.repeat&&i.TweenMax||c).from(a,b,d),e)},m.fromTo=function(a,b,d,e,f){var g=e.repeat&&i.TweenMax||c;return b?this.add(g.fromTo(a,b,d,e),f):this.set(a,e,f)},m.staggerTo=function(a,b,e,g,h,i,k,m){var n,o=new d({onComplete:i,onCompleteParams:k,onCompleteScope:m,smoothChildTiming:this.smoothChildTiming});for("string"==typeof a&&(a=c.selector(a)||a),f(a)&&(a=l.call(a,0)),g=g||0,n=0;n<a.length;n++)e.startAt&&(e.startAt=j(e.startAt)),o.to(a[n],b,j(e),n*g);return this.add(o,h)},m.staggerFrom=function(a,b,c,d,e,f,g,h){return c.immediateRender=0!=c.immediateRender,c.runBackwards=!0,this.staggerTo(a,b,c,d,e,f,g,h)},m.staggerFromTo=function(a,b,c,d,e,f,g,h,i){return d.startAt=c,d.immediateRender=0!=d.immediateRender&&0!=c.immediateRender,this.staggerTo(a,b,d,e,f,g,h,i)},m.call=function(a,b,d,e){return this.add(c.delayedCall(0,a,b,d),e)},m.set=function(a,b,d){return d=this._parseTimeOrLabel(d,0,!0),null==b.immediateRender&&(b.immediateRender=d===this._time&&!this._paused),this.add(new c(a,0,b),d)},d.exportRoot=function(a,b){a=a||{},null==a.smoothChildTiming&&(a.smoothChildTiming=!0);var e,f,g=new d(a),h=g._timeline;for(null==b&&(b=!0),h._remove(g,!0),g._startTime=0,g._rawPrevTime=g._time=g._totalTime=h._time,e=h._first;e;)f=e._next,b&&e instanceof c&&e.target===e.vars.onComplete||g.add(e,e._startTime-e._delay),e=f;return h.add(g,0),g},m.add=function(e,f,h,i){var j,k,l,m,n,o;if("number"!=typeof f&&(f=this._parseTimeOrLabel(f,0,!0,e)),!(e instanceof a)){if(e instanceof Array||e&&e.push&&g(e)){for(h=h||"normal",i=i||0,j=f,k=e.length,l=0;k>l;l++)g(m=e[l])&&(m=new d({tweens:m})),this.add(m,j),"string"!=typeof m&&"function"!=typeof m&&("sequence"===h?j=m._startTime+m.totalDuration()/m._timeScale:"start"===h&&(m._startTime-=m.delay())),j+=i;return this._uncache(!0)}if("string"==typeof e)return this.addLabel(e,f);if("function"!=typeof e)throw"Cannot add "+e+" into the timeline; it is not a tween, timeline, function, or string.";e=c.delayedCall(0,e)}if(b.prototype.add.call(this,e,f),(this._gc||this._time===this._duration)&&!this._paused&&this._duration<this.duration())for(n=this,o=n.rawTime()>e._startTime;n._timeline;)o&&n._timeline.smoothChildTiming?n.totalTime(n._totalTime,!0):n._gc&&n._enabled(!0,!1),n=n._timeline;return this},m.remove=function(b){if(b instanceof a)return this._remove(b,!1);if(b instanceof Array||b&&b.push&&g(b)){for(var c=b.length;--c>-1;)this.remove(b[c]);return this}return"string"==typeof b?this.removeLabel(b):this.kill(null,b)},m._remove=function(a,c){b.prototype._remove.call(this,a,c);var d=this._last;return d?this._time>d._startTime+d._totalDuration/d._timeScale&&(this._time=this.duration(),this._totalTime=this._totalDuration):this._time=this._totalTime=this._duration=this._totalDuration=0,this},m.append=function(a,b){return this.add(a,this._parseTimeOrLabel(null,b,!0,a))},m.insert=m.insertMultiple=function(a,b,c,d){return this.add(a,b||0,c,d)},m.appendMultiple=function(a,b,c,d){return this.add(a,this._parseTimeOrLabel(null,b,!0,a),c,d)},m.addLabel=function(a,b){return this._labels[a]=this._parseTimeOrLabel(b),this},m.addPause=function(a,b,c,d){return this.call(k,["{self}",b,c,d],this,a)},m.removeLabel=function(a){return delete this._labels[a],this},m.getLabelTime=function(a){return null!=this._labels[a]?this._labels[a]:-1},m._parseTimeOrLabel=function(b,c,d,e){var f;if(e instanceof a&&e.timeline===this)this.remove(e);else if(e&&(e instanceof Array||e.push&&g(e)))for(f=e.length;--f>-1;)e[f]instanceof a&&e[f].timeline===this&&this.remove(e[f]);if("string"==typeof c)return this._parseTimeOrLabel(c,d&&"number"==typeof b&&null==this._labels[c]?b-this.duration():0,d);if(c=c||0,"string"!=typeof b||!isNaN(b)&&null==this._labels[b])null==b&&(b=this.duration());else{if(f=b.indexOf("="),-1===f)return null==this._labels[b]?d?this._labels[b]=this.duration()+c:c:this._labels[b]+c;c=parseInt(b.charAt(f-1)+"1",10)*Number(b.substr(f+1)),b=f>1?this._parseTimeOrLabel(b.substr(0,f-1),0,d):this.duration()}return Number(b)+c},m.seek=function(a,b){return this.totalTime("number"==typeof a?a:this._parseTimeOrLabel(a),b!==!1)},m.stop=function(){return this.paused(!0)},m.gotoAndPlay=function(a,b){return this.play(a,b)},m.gotoAndStop=function(a,b){return this.pause(a,b)},m.render=function(a,b,c){this._gc&&this._enabled(!0,!1);var d,f,g,i,j,k=this._dirty?this.totalDuration():this._totalDuration,l=this._time,m=this._startTime,n=this._timeScale,o=this._paused;if(a>=k?(this._totalTime=this._time=k,this._reversed||this._hasPausedChild()||(f=!0,i="onComplete",0===this._duration&&(0===a||this._rawPrevTime<0||this._rawPrevTime===e)&&this._rawPrevTime!==a&&this._first&&(j=!0,this._rawPrevTime>e&&(i="onReverseComplete"))),this._rawPrevTime=this._duration||!b||a||this._rawPrevTime===a?a:e,a=k+1e-4):1e-7>a?(this._totalTime=this._time=0,(0!==l||0===this._duration&&this._rawPrevTime!==e&&(this._rawPrevTime>0||0>a&&this._rawPrevTime>=0))&&(i="onReverseComplete",f=this._reversed),0>a?(this._active=!1,0===this._duration&&this._rawPrevTime>=0&&this._first&&(j=!0),this._rawPrevTime=a):(this._rawPrevTime=this._duration||!b||a||this._rawPrevTime===a?a:e,a=0,this._initted||(j=!0))):this._totalTime=this._time=this._rawPrevTime=a,this._time!==l&&this._first||c||j){if(this._initted||(this._initted=!0),this._active||!this._paused&&this._time!==l&&a>0&&(this._active=!0),0===l&&this.vars.onStart&&0!==this._time&&(b||this.vars.onStart.apply(this.vars.onStartScope||this,this.vars.onStartParams||h)),this._time>=l)for(d=this._first;d&&(g=d._next,!this._paused||o);)(d._active||d._startTime<=this._time&&!d._paused&&!d._gc)&&(d._reversed?d.render((d._dirty?d.totalDuration():d._totalDuration)-(a-d._startTime)*d._timeScale,b,c):d.render((a-d._startTime)*d._timeScale,b,c)),d=g;else for(d=this._last;d&&(g=d._prev,!this._paused||o);)(d._active||d._startTime<=l&&!d._paused&&!d._gc)&&(d._reversed?d.render((d._dirty?d.totalDuration():d._totalDuration)-(a-d._startTime)*d._timeScale,b,c):d.render((a-d._startTime)*d._timeScale,b,c)),\r
-d=g;this._onUpdate&&(b||this._onUpdate.apply(this.vars.onUpdateScope||this,this.vars.onUpdateParams||h)),i&&(this._gc||(m===this._startTime||n!==this._timeScale)&&(0===this._time||k>=this.totalDuration())&&(f&&(this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!b&&this.vars[i]&&this.vars[i].apply(this.vars[i+"Scope"]||this,this.vars[i+"Params"]||h)))}},m._hasPausedChild=function(){for(var a=this._first;a;){if(a._paused||a instanceof d&&a._hasPausedChild())return!0;a=a._next}return!1},m.getChildren=function(a,b,d,e){e=e||-9999999999;for(var f=[],g=this._first,h=0;g;)g._startTime<e||(g instanceof c?b!==!1&&(f[h++]=g):(d!==!1&&(f[h++]=g),a!==!1&&(f=f.concat(g.getChildren(!0,b,d)),h=f.length))),g=g._next;return f},m.getTweensOf=function(a,b){var d,e,f=this._gc,g=[],h=0;for(f&&this._enabled(!0,!0),d=c.getTweensOf(a),e=d.length;--e>-1;)(d[e].timeline===this||b&&this._contains(d[e]))&&(g[h++]=d[e]);return f&&this._enabled(!1,!0),g},m._contains=function(a){for(var b=a.timeline;b;){if(b===this)return!0;b=b.timeline}return!1},m.shiftChildren=function(a,b,c){c=c||0;for(var d,e=this._first,f=this._labels;e;)e._startTime>=c&&(e._startTime+=a),e=e._next;if(b)for(d in f)f[d]>=c&&(f[d]+=a);return this._uncache(!0)},m._kill=function(a,b){if(!a&&!b)return this._enabled(!1,!1);for(var c=b?this.getTweensOf(b):this.getChildren(!0,!0,!1),d=c.length,e=!1;--d>-1;)c[d]._kill(a,b)&&(e=!0);return e},m.clear=function(a){var b=this.getChildren(!1,!0,!0),c=b.length;for(this._time=this._totalTime=0;--c>-1;)b[c]._enabled(!1,!1);return a!==!1&&(this._labels={}),this._uncache(!0)},m.invalidate=function(){for(var a=this._first;a;)a.invalidate(),a=a._next;return this},m._enabled=function(a,c){if(a===this._gc)for(var d=this._first;d;)d._enabled(a,!0),d=d._next;return b.prototype._enabled.call(this,a,c)},m.duration=function(a){return arguments.length?(0!==this.duration()&&0!==a&&this.timeScale(this._duration/a),this):(this._dirty&&this.totalDuration(),this._duration)},m.totalDuration=function(a){if(!arguments.length){if(this._dirty){for(var b,c,d=0,e=this._last,f=999999999999;e;)b=e._prev,e._dirty&&e.totalDuration(),e._startTime>f&&this._sortChildren&&!e._paused?this.add(e,e._startTime-e._delay):f=e._startTime,e._startTime<0&&!e._paused&&(d-=e._startTime,this._timeline.smoothChildTiming&&(this._startTime+=e._startTime/this._timeScale),this.shiftChildren(-e._startTime,!1,-9999999999),f=0),c=e._startTime+e._totalDuration/e._timeScale,c>d&&(d=c),e=b;this._duration=this._totalDuration=d,this._dirty=!1}return this._totalDuration}return 0!==this.totalDuration()&&0!==a&&this.timeScale(this._totalDuration/a),this},m.usesFrames=function(){for(var b=this._timeline;b._timeline;)b=b._timeline;return b===a._rootFramesTimeline},m.rawTime=function(){return this._paused?this._totalTime:(this._timeline.rawTime()-this._startTime)*this._timeScale},d},!0),window._gsDefine("TimelineMax",["TimelineLite","TweenLite","easing.Ease"],function(a,b,c){var d=function(b){a.call(this,b),this._repeat=this.vars.repeat||0,this._repeatDelay=this.vars.repeatDelay||0,this._cycle=0,this._yoyo=this.vars.yoyo===!0,this._dirty=!0},e=1e-10,f=[],g=new c(null,null,1,0),h=d.prototype=new a;return h.constructor=d,h.kill()._gc=!1,d.version="1.12.1",h.invalidate=function(){return this._yoyo=this.vars.yoyo===!0,this._repeat=this.vars.repeat||0,this._repeatDelay=this.vars.repeatDelay||0,this._uncache(!0),a.prototype.invalidate.call(this)},h.addCallback=function(a,c,d,e){return this.add(b.delayedCall(0,a,d,e),c)},h.removeCallback=function(a,b){if(a)if(null==b)this._kill(null,a);else for(var c=this.getTweensOf(a,!1),d=c.length,e=this._parseTimeOrLabel(b);--d>-1;)c[d]._startTime===e&&c[d]._enabled(!1,!1);return this},h.tweenTo=function(a,c){c=c||{};var d,e,h,i={ease:g,overwrite:c.delay?2:1,useFrames:this.usesFrames(),immediateRender:!1};for(e in c)i[e]=c[e];return i.time=this._parseTimeOrLabel(a),d=Math.abs(Number(i.time)-this._time)/this._timeScale||.001,h=new b(this,d,i),i.onStart=function(){h.target.paused(!0),h.vars.time!==h.target.time()&&d===h.duration()&&h.duration(Math.abs(h.vars.time-h.target.time())/h.target._timeScale),c.onStart&&c.onStart.apply(c.onStartScope||h,c.onStartParams||f)},h},h.tweenFromTo=function(a,b,c){c=c||{},a=this._parseTimeOrLabel(a),c.startAt={onComplete:this.seek,onCompleteParams:[a],onCompleteScope:this},c.immediateRender=c.immediateRender!==!1;var d=this.tweenTo(b,c);return d.duration(Math.abs(d.vars.time-a)/this._timeScale||.001)},h.render=function(a,b,c){this._gc&&this._enabled(!0,!1);var d,g,h,i,j,k,l=this._dirty?this.totalDuration():this._totalDuration,m=this._duration,n=this._time,o=this._totalTime,p=this._startTime,q=this._timeScale,r=this._rawPrevTime,s=this._paused,t=this._cycle;if(a>=l?(this._locked||(this._totalTime=l,this._cycle=this._repeat),this._reversed||this._hasPausedChild()||(g=!0,i="onComplete",0===this._duration&&(0===a||0>r||r===e)&&r!==a&&this._first&&(j=!0,r>e&&(i="onReverseComplete"))),this._rawPrevTime=this._duration||!b||a||this._rawPrevTime===a?a:e,this._yoyo&&0!==(1&this._cycle)?this._time=a=0:(this._time=m,a=m+1e-4)):1e-7>a?(this._locked||(this._totalTime=this._cycle=0),this._time=0,(0!==n||0===m&&r!==e&&(r>0||0>a&&r>=0)&&!this._locked)&&(i="onReverseComplete",g=this._reversed),0>a?(this._active=!1,0===m&&r>=0&&this._first&&(j=!0),this._rawPrevTime=a):(this._rawPrevTime=m||!b||a||this._rawPrevTime===a?a:e,a=0,this._initted||(j=!0))):(0===m&&0>r&&(j=!0),this._time=this._rawPrevTime=a,this._locked||(this._totalTime=a,0!==this._repeat&&(k=m+this._repeatDelay,this._cycle=this._totalTime/k>>0,0!==this._cycle&&this._cycle===this._totalTime/k&&this._cycle--,this._time=this._totalTime-this._cycle*k,this._yoyo&&0!==(1&this._cycle)&&(this._time=m-this._time),this._time>m?(this._time=m,a=m+1e-4):this._time<0?this._time=a=0:a=this._time))),this._cycle!==t&&!this._locked){var u=this._yoyo&&0!==(1&t),v=u===(this._yoyo&&0!==(1&this._cycle)),w=this._totalTime,x=this._cycle,y=this._rawPrevTime,z=this._time;if(this._totalTime=t*m,this._cycle<t?u=!u:this._totalTime+=m,this._time=n,this._rawPrevTime=0===m?r-1e-4:r,this._cycle=t,this._locked=!0,n=u?0:m,this.render(n,b,0===m),b||this._gc||this.vars.onRepeat&&this.vars.onRepeat.apply(this.vars.onRepeatScope||this,this.vars.onRepeatParams||f),v&&(n=u?m+1e-4:-1e-4,this.render(n,!0,!1)),this._locked=!1,this._paused&&!s)return;this._time=z,this._totalTime=w,this._cycle=x,this._rawPrevTime=y}if(!(this._time!==n&&this._first||c||j))return void(o!==this._totalTime&&this._onUpdate&&(b||this._onUpdate.apply(this.vars.onUpdateScope||this,this.vars.onUpdateParams||f)));if(this._initted||(this._initted=!0),this._active||!this._paused&&this._totalTime!==o&&a>0&&(this._active=!0),0===o&&this.vars.onStart&&0!==this._totalTime&&(b||this.vars.onStart.apply(this.vars.onStartScope||this,this.vars.onStartParams||f)),this._time>=n)for(d=this._first;d&&(h=d._next,!this._paused||s);)(d._active||d._startTime<=this._time&&!d._paused&&!d._gc)&&(d._reversed?d.render((d._dirty?d.totalDuration():d._totalDuration)-(a-d._startTime)*d._timeScale,b,c):d.render((a-d._startTime)*d._timeScale,b,c)),d=h;else for(d=this._last;d&&(h=d._prev,!this._paused||s);)(d._active||d._startTime<=n&&!d._paused&&!d._gc)&&(d._reversed?d.render((d._dirty?d.totalDuration():d._totalDuration)-(a-d._startTime)*d._timeScale,b,c):d.render((a-d._startTime)*d._timeScale,b,c)),d=h;this._onUpdate&&(b||this._onUpdate.apply(this.vars.onUpdateScope||this,this.vars.onUpdateParams||f)),i&&(this._locked||this._gc||(p===this._startTime||q!==this._timeScale)&&(0===this._time||l>=this.totalDuration())&&(g&&(this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!b&&this.vars[i]&&this.vars[i].apply(this.vars[i+"Scope"]||this,this.vars[i+"Params"]||f)))},h.getActive=function(a,b,c){null==a&&(a=!0),null==b&&(b=!0),null==c&&(c=!1);var d,e,f=[],g=this.getChildren(a,b,c),h=0,i=g.length;for(d=0;i>d;d++)e=g[d],e.isActive()&&(f[h++]=e);return f},h.getLabelAfter=function(a){a||0!==a&&(a=this._time);var b,c=this.getLabelsArray(),d=c.length;for(b=0;d>b;b++)if(c[b].time>a)return c[b].name;return null},h.getLabelBefore=function(a){null==a&&(a=this._time);for(var b=this.getLabelsArray(),c=b.length;--c>-1;)if(b[c].time<a)return b[c].name;return null},h.getLabelsArray=function(){var a,b=[],c=0;for(a in this._labels)b[c++]={time:this._labels[a],name:a};return b.sort(function(a,b){return a.time-b.time}),b},h.progress=function(a){return arguments.length?this.totalTime(this.duration()*(this._yoyo&&0!==(1&this._cycle)?1-a:a)+this._cycle*(this._duration+this._repeatDelay),!1):this._time/this.duration()},h.totalProgress=function(a){return arguments.length?this.totalTime(this.totalDuration()*a,!1):this._totalTime/this.totalDuration()},h.totalDuration=function(b){return arguments.length?-1===this._repeat?this:this.duration((b-this._repeat*this._repeatDelay)/(this._repeat+1)):(this._dirty&&(a.prototype.totalDuration.call(this),this._totalDuration=-1===this._repeat?999999999999:this._duration*(this._repeat+1)+this._repeatDelay*this._repeat),this._totalDuration)},h.time=function(a,b){return arguments.length?(this._dirty&&this.totalDuration(),a>this._duration&&(a=this._duration),this._yoyo&&0!==(1&this._cycle)?a=this._duration-a+this._cycle*(this._duration+this._repeatDelay):0!==this._repeat&&(a+=this._cycle*(this._duration+this._repeatDelay)),this.totalTime(a,b)):this._time},h.repeat=function(a){return arguments.length?(this._repeat=a,this._uncache(!0)):this._repeat},h.repeatDelay=function(a){return arguments.length?(this._repeatDelay=a,this._uncache(!0)):this._repeatDelay},h.yoyo=function(a){return arguments.length?(this._yoyo=a,this):this._yoyo},h.currentLabel=function(a){return arguments.length?this.seek(a,!0):this.getLabelBefore(this._time+1e-8)},d},!0),function(){var a=180/Math.PI,b=[],c=[],d=[],e={},f=function(a,b,c,d){this.a=a,this.b=b,this.c=c,this.d=d,this.da=d-a,this.ca=c-a,this.ba=b-a},g=",x,y,z,left,top,right,bottom,marginTop,marginLeft,marginRight,marginBottom,paddingLeft,paddingTop,paddingRight,paddingBottom,backgroundPosition,backgroundPosition_y,",h=function(a,b,c,d){var e={a:a},f={},g={},h={c:d},i=(a+b)/2,j=(b+c)/2,k=(c+d)/2,l=(i+j)/2,m=(j+k)/2,n=(m-l)/8;return e.b=i+(a-i)/4,f.b=l+n,e.c=f.a=(e.b+f.b)/2,f.c=g.a=(l+m)/2,g.b=m-n,h.b=k+(d-k)/4,g.c=h.a=(g.b+h.b)/2,[e,f,g,h]},i=function(a,e,f,g,i){var j,k,l,m,n,o,p,q,r,s,t,u,v,w=a.length-1,x=0,y=a[0].a;for(j=0;w>j;j++)n=a[x],k=n.a,l=n.d,m=a[x+1].d,i?(t=b[j],u=c[j],v=(u+t)*e*.25/(g?.5:d[j]||.5),o=l-(l-k)*(g?.5*e:0!==t?v/t:0),p=l+(m-l)*(g?.5*e:0!==u?v/u:0),q=l-(o+((p-o)*(3*t/(t+u)+.5)/4||0))):(o=l-(l-k)*e*.5,p=l+(m-l)*e*.5,q=l-(o+p)/2),o+=q,p+=q,n.c=r=o,0!==j?n.b=y:n.b=y=n.a+.6*(n.c-n.a),n.da=l-k,n.ca=r-k,n.ba=y-k,f?(s=h(k,y,r,l),a.splice(x,1,s[0],s[1],s[2],s[3]),x+=4):x++,y=p;n=a[x],n.b=y,n.c=y+.4*(n.d-y),n.da=n.d-n.a,n.ca=n.c-n.a,n.ba=y-n.a,f&&(s=h(n.a,y,n.c,n.d),a.splice(x,1,s[0],s[1],s[2],s[3]))},j=function(a,d,e,g){var h,i,j,k,l,m,n=[];if(g)for(a=[g].concat(a),i=a.length;--i>-1;)"string"==typeof(m=a[i][d])&&"="===m.charAt(1)&&(a[i][d]=g[d]+Number(m.charAt(0)+m.substr(2)));if(h=a.length-2,0>h)return n[0]=new f(a[0][d],0,0,a[-1>h?0:1][d]),n;for(i=0;h>i;i++)j=a[i][d],k=a[i+1][d],n[i]=new f(j,0,0,k),e&&(l=a[i+2][d],b[i]=(b[i]||0)+(k-j)*(k-j),c[i]=(c[i]||0)+(l-k)*(l-k));return n[i]=new f(a[i][d],0,0,a[i+1][d]),n},k=function(a,f,h,k,l,m){var n,o,p,q,r,s,t,u,v={},w=[],x=m||a[0];l="string"==typeof l?","+l+",":g,null==f&&(f=1);for(o in a[0])w.push(o);if(a.length>1){for(u=a[a.length-1],t=!0,n=w.length;--n>-1;)if(o=w[n],Math.abs(x[o]-u[o])>.05){t=!1;break}t&&(a=a.concat(),m&&a.unshift(m),a.push(a[1]),m=a[a.length-3])}for(b.length=c.length=d.length=0,n=w.length;--n>-1;)o=w[n],e[o]=-1!==l.indexOf(","+o+","),v[o]=j(a,o,e[o],m);for(n=b.length;--n>-1;)b[n]=Math.sqrt(b[n]),c[n]=Math.sqrt(c[n]);if(!k){for(n=w.length;--n>-1;)if(e[o])for(p=v[w[n]],s=p.length-1,q=0;s>q;q++)r=p[q+1].da/c[q]+p[q].da/b[q],d[q]=(d[q]||0)+r*r;for(n=d.length;--n>-1;)d[n]=Math.sqrt(d[n])}for(n=w.length,q=h?4:1;--n>-1;)o=w[n],p=v[o],i(p,f,h,k,e[o]),t&&(p.splice(0,q),p.splice(p.length-q,q));return v},l=function(a,b,c){b=b||"soft";var d,e,g,h,i,j,k,l,m,n,o,p={},q="cubic"===b?3:2,r="soft"===b,s=[];if(r&&c&&(a=[c].concat(a)),null==a||a.length<q+1)throw"invalid Bezier data";for(m in a[0])s.push(m);for(j=s.length;--j>-1;){for(m=s[j],p[m]=i=[],n=0,l=a.length,k=0;l>k;k++)d=null==c?a[k][m]:"string"==typeof(o=a[k][m])&&"="===o.charAt(1)?c[m]+Number(o.charAt(0)+o.substr(2)):Number(o),r&&k>1&&l-1>k&&(i[n++]=(d+i[n-2])/2),i[n++]=d;for(l=n-q+1,n=0,k=0;l>k;k+=q)d=i[k],e=i[k+1],g=i[k+2],h=2===q?0:i[k+3],i[n++]=o=3===q?new f(d,e,g,h):new f(d,(2*e+d)/3,(2*e+g)/3,g);i.length=n}return p},m=function(a,b,c){for(var d,e,f,g,h,i,j,k,l,m,n,o=1/c,p=a.length;--p>-1;)for(m=a[p],f=m.a,g=m.d-f,h=m.c-f,i=m.b-f,d=e=0,k=1;c>=k;k++)j=o*k,l=1-j,d=e-(e=(j*j*g+3*l*(j*h+l*i))*j),n=p*c+k-1,b[n]=(b[n]||0)+d*d},n=function(a,b){b=b>>0||6;var c,d,e,f,g=[],h=[],i=0,j=0,k=b-1,l=[],n=[];for(c in a)m(a[c],g,b);for(e=g.length,d=0;e>d;d++)i+=Math.sqrt(g[d]),f=d%b,n[f]=i,f===k&&(j+=i,f=d/b>>0,l[f]=n,h[f]=j,i=0,n=[]);return{length:j,lengths:h,segments:l}},o=window._gsDefine.plugin({propName:"bezier",priority:-1,version:"1.3.2",API:2,global:!0,init:function(a,b,c){this._target=a,b instanceof Array&&(b={values:b}),this._func={},this._round={},this._props=[],this._timeRes=null==b.timeResolution?6:parseInt(b.timeResolution,10);var d,e,f,g,h,i=b.values||[],j={},m=i[0],o=b.autoRotate||c.vars.orientToBezier;this._autoRotate=o?o instanceof Array?o:[["x","y","rotation",o===!0?0:Number(o)||0]]:null;for(d in m)this._props.push(d);for(f=this._props.length;--f>-1;)d=this._props[f],this._overwriteProps.push(d),e=this._func[d]="function"==typeof a[d],j[d]=e?a[d.indexOf("set")||"function"!=typeof a["get"+d.substr(3)]?d:"get"+d.substr(3)]():parseFloat(a[d]),h||j[d]!==i[0][d]&&(h=j);if(this._beziers="cubic"!==b.type&&"quadratic"!==b.type&&"soft"!==b.type?k(i,isNaN(b.curviness)?1:b.curviness,!1,"thruBasic"===b.type,b.correlate,h):l(i,b.type,j),this._segCount=this._beziers[d].length,this._timeRes){var p=n(this._beziers,this._timeRes);this._length=p.length,this._lengths=p.lengths,this._segments=p.segments,this._l1=this._li=this._s1=this._si=0,this._l2=this._lengths[0],this._curSeg=this._segments[0],this._s2=this._curSeg[0],this._prec=1/this._curSeg.length}if(o=this._autoRotate)for(this._initialRotations=[],o[0]instanceof Array||(this._autoRotate=o=[o]),f=o.length;--f>-1;){for(g=0;3>g;g++)d=o[f][g],this._func[d]="function"==typeof a[d]?a[d.indexOf("set")||"function"!=typeof a["get"+d.substr(3)]?d:"get"+d.substr(3)]:!1;d=o[f][2],this._initialRotations[f]=this._func[d]?this._func[d].call(this._target):this._target[d]}return this._startRatio=c.vars.runBackwards?1:0,!0},set:function(b){var c,d,e,f,g,h,i,j,k,l,m=this._segCount,n=this._func,o=this._target,p=b!==this._startRatio;if(this._timeRes){if(k=this._lengths,l=this._curSeg,b*=this._length,e=this._li,b>this._l2&&m-1>e){for(j=m-1;j>e&&(this._l2=k[++e])<=b;);this._l1=k[e-1],this._li=e,this._curSeg=l=this._segments[e],this._s2=l[this._s1=this._si=0]}else if(b<this._l1&&e>0){for(;e>0&&(this._l1=k[--e])>=b;);0===e&&b<this._l1?this._l1=0:e++,this._l2=k[e],this._li=e,this._curSeg=l=this._segments[e],this._s1=l[(this._si=l.length-1)-1]||0,this._s2=l[this._si]}if(c=e,b-=this._l1,e=this._si,b>this._s2&&e<l.length-1){for(j=l.length-1;j>e&&(this._s2=l[++e])<=b;);this._s1=l[e-1],this._si=e}else if(b<this._s1&&e>0){for(;e>0&&(this._s1=l[--e])>=b;);0===e&&b<this._s1?this._s1=0:e++,this._s2=l[e],this._si=e}h=(e+(b-this._s1)/(this._s2-this._s1))*this._prec}else c=0>b?0:b>=1?m-1:m*b>>0,h=(b-c*(1/m))*m;for(d=1-h,e=this._props.length;--e>-1;)f=this._props[e],g=this._beziers[f][c],i=(h*h*g.da+3*d*(h*g.ca+d*g.ba))*h+g.a,this._round[f]&&(i=Math.round(i)),n[f]?o[f](i):o[f]=i;if(this._autoRotate){var q,r,s,t,u,v,w,x=this._autoRotate;for(e=x.length;--e>-1;)f=x[e][2],v=x[e][3]||0,w=x[e][4]===!0?1:a,g=this._beziers[x[e][0]],q=this._beziers[x[e][1]],g&&q&&(g=g[c],q=q[c],r=g.a+(g.b-g.a)*h,t=g.b+(g.c-g.b)*h,r+=(t-r)*h,t+=(g.c+(g.d-g.c)*h-t)*h,s=q.a+(q.b-q.a)*h,u=q.b+(q.c-q.b)*h,s+=(u-s)*h,u+=(q.c+(q.d-q.c)*h-u)*h,i=p?Math.atan2(u-s,t-r)*w+v:this._initialRotations[e],n[f]?o[f](i):o[f]=i)}}}),p=o.prototype;o.bezierThrough=k,o.cubicToQuadratic=h,o._autoCSS=!0,o.quadraticToCubic=function(a,b,c){return new f(a,(2*b+a)/3,(2*b+c)/3,c)},o._cssRegister=function(){var a=window._gsDefine.globals.CSSPlugin;if(a){var b=a._internals,c=b._parseToProxy,d=b._setPluginRatio,e=b.CSSPropTween;b._registerComplexSpecialProp("bezier",{parser:function(a,b,f,g,h,i){b instanceof Array&&(b={values:b}),i=new o;var j,k,l,m=b.values,n=m.length-1,p=[],q={};if(0>n)return h;for(j=0;n>=j;j++)l=c(a,m[j],g,h,i,n!==j),p[j]=l.end;for(k in b)q[k]=b[k];return q.values=p,h=new e(a,"bezier",0,0,l.pt,2),h.data=l,h.plugin=i,h.setRatio=d,0===q.autoRotate&&(q.autoRotate=!0),!q.autoRotate||q.autoRotate instanceof Array||(j=q.autoRotate===!0?0:Number(q.autoRotate),q.autoRotate=null!=l.end.left?[["left","top","rotation",j,!1]]:null!=l.end.x?[["x","y","rotation",j,!1]]:!1),q.autoRotate&&(g._transform||g._enableTransforms(!1),l.autoRotate=g._target._gsTransform),i._onInitTween(l.proxy,q,g._tween),h}})}},p._roundProps=function(a,b){for(var c=this._overwriteProps,d=c.length;--d>-1;)(a[c[d]]||a.bezier||a.bezierThrough)&&(this._round[c[d]]=b)},p._kill=function(a){var b,c,d=this._props;for(b in this._beziers)if(b in a)for(delete this._beziers[b],delete this._func[b],c=d.length;--c>-1;)d[c]===b&&d.splice(c,1);return this._super._kill.call(this,a)}}(),window._gsDefine("plugins.CSSPlugin",["plugins.TweenPlugin","TweenLite"],function(a,b){var c,d,e,f,g=function(){a.call(this,"css"),this._overwriteProps.length=0,this.setRatio=g.prototype.setRatio},h={},i=g.prototype=new a("css");i.constructor=g,g.version="1.12.1",g.API=2,g.defaultTransformPerspective=0,g.defaultSkewType="compensated",i="px",g.suffixMap={top:i,right:i,bottom:i,left:i,width:i,height:i,fontSize:i,padding:i,margin:i,perspective:i,lineHeight:""};var j,k,l,m,n,o,p=/(?:\d|\-\d|\.\d|\-\.\d)+/g,q=/(?:\d|\-\d|\.\d|\-\.\d|\+=\d|\-=\d|\+=.\d|\-=\.\d)+/g,r=/(?:\+=|\-=|\-|\b)[\d\-\.]+[a-zA-Z0-9]*(?:%|\b)/gi,s=/[^\d\-\.]/g,t=/(?:\d|\-|\+|=|#|\.)*/g,u=/opacity *= *([^)]*)/i,v=/opacity:([^;]*)/i,w=/alpha\(opacity *=.+?\)/i,x=/^(rgb|hsl)/,y=/([A-Z])/g,z=/-([a-z])/gi,A=/(^(?:url\(\"|url\())|(?:(\"\))$|\)$)/gi,B=function(a,b){return b.toUpperCase()},C=/(?:Left|Right|Width)/i,D=/(M11|M12|M21|M22)=[\d\-\.e]+/gi,E=/progid\:DXImageTransform\.Microsoft\.Matrix\(.+?\)/i,F=/,(?=[^\)]*(?:\(|$))/gi,G=Math.PI/180,H=180/Math.PI,I={},J=document,K=J.createElement("div"),L=J.createElement("img"),M=g._internals={_specialProps:h},N=navigator.userAgent,O=function(){var a,b=N.indexOf("Android"),c=J.createElement("div");return l=-1!==N.indexOf("Safari")&&-1===N.indexOf("Chrome")&&(-1===b||Number(N.substr(b+8,1))>3),n=l&&Number(N.substr(N.indexOf("Version/")+8,1))<6,m=-1!==N.indexOf("Firefox"),/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(N)&&(o=parseFloat(RegExp.$1)),c.innerHTML="<a style='top:1px;opacity:.55;'>a</a>",a=c.getElementsByTagName("a")[0],a?/^0.55/.test(a.style.opacity):!1}(),P=function(a){return u.test("string"==typeof a?a:(a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100:1},Q=function(a){window.console},R="",S="",T=function(a,b){b=b||K;var c,d,e=b.style;if(void 0!==e[a])return a;for(a=a.charAt(0).toUpperCase()+a.substr(1),c=["O","Moz","ms","Ms","Webkit"],d=5;--d>-1&&void 0===e[c[d]+a];);return d>=0?(S=3===d?"ms":c[d],R="-"+S.toLowerCase()+"-",S+a):null},U=J.defaultView?J.defaultView.getComputedStyle:function(){},V=g.getStyle=function(a,b,c,d,e){var f;return O||"opacity"!==b?(!d&&a.style[b]?f=a.style[b]:(c=c||U(a))?f=c[b]||c.getPropertyValue(b)||c.getPropertyValue(b.replace(y,"-$1").toLowerCase()):a.currentStyle&&(f=a.currentStyle[b]),null==e||f&&"none"!==f&&"auto"!==f&&"auto auto"!==f?f:e):P(a)},W=M.convertToPixels=function(a,c,d,e,f){if("px"===e||!e)return d;if("auto"===e||!d)return 0;var h,i,j,k=C.test(c),l=a,m=K.style,n=0>d;if(n&&(d=-d),"%"===e&&-1!==c.indexOf("border"))h=d/100*(k?a.clientWidth:a.clientHeight);else{if(m.cssText="border:0 solid red;position:"+V(a,"position")+";line-height:0;","%"!==e&&l.appendChild)m[k?"borderLeftWidth":"borderTopWidth"]=d+e;else{if(l=a.parentNode||J.body,i=l._gsCache,j=b.ticker.frame,i&&k&&i.time===j)return i.width*d/100;m[k?"width":"height"]=d+e}l.appendChild(K),h=parseFloat(K[k?"offsetWidth":"offsetHeight"]),l.removeChild(K),k&&"%"===e&&g.cacheWidths!==!1&&(i=l._gsCache=l._gsCache||{},i.time=j,i.width=h/d*100),0!==h||f||(h=W(a,c,d,e,!0))}return n?-h:h},X=M.calculateOffset=function(a,b,c){if("absolute"!==V(a,"position",c))return 0;var d="left"===b?"Left":"Top",e=V(a,"margin"+d,c);return a["offset"+d]-(W(a,b,parseFloat(e),e.replace(t,""))||0)},Y=function(a,b){var c,d,e={};if(b=b||U(a,null))if(c=b.length)for(;--c>-1;)e[b[c].replace(z,B)]=b.getPropertyValue(b[c]);else for(c in b)e[c]=b[c];else if(b=a.currentStyle||a.style)for(c in b)"string"==typeof c&&void 0===e[c]&&(e[c.replace(z,B)]=b[c]);return O||(e.opacity=P(a)),d=ya(a,b,!1),e.rotation=d.rotation,e.skewX=d.skewX,e.scaleX=d.scaleX,e.scaleY=d.scaleY,e.x=d.x,e.y=d.y,wa&&(e.z=d.z,e.rotationX=d.rotationX,e.rotationY=d.rotationY,e.scaleZ=d.scaleZ),e.filters&&delete e.filters,e},Z=function(a,b,c,d,e){var f,g,h,i={},j=a.style;for(g in c)"cssText"!==g&&"length"!==g&&isNaN(g)&&(b[g]!==(f=c[g])||e&&e[g])&&-1===g.indexOf("Origin")&&("number"==typeof f||"string"==typeof f)&&(i[g]="auto"!==f||"left"!==g&&"top"!==g?""!==f&&"auto"!==f&&"none"!==f||"string"!=typeof b[g]||""===b[g].replace(s,"")?f:0:X(a,g),void 0!==j[g]&&(h=new la(j,g,j[g],h)));if(d)for(g in d)"className"!==g&&(i[g]=d[g]);return{difs:i,firstMPT:h}},$={width:["Left","Right"],height:["Top","Bottom"]},_=["marginLeft","marginRight","marginTop","marginBottom"],aa=function(a,b,c){var d=parseFloat("width"===b?a.offsetWidth:a.offsetHeight),e=$[b],f=e.length;for(c=c||U(a,null);--f>-1;)d-=parseFloat(V(a,"padding"+e[f],c,!0))||0,d-=parseFloat(V(a,"border"+e[f]+"Width",c,!0))||0;return d},ba=function(a,b){(null==a||""===a||"auto"===a||"auto auto"===a)&&(a="0 0");var c=a.split(" "),d=-1!==a.indexOf("left")?"0%":-1!==a.indexOf("right")?"100%":c[0],e=-1!==a.indexOf("top")?"0%":-1!==a.indexOf("bottom")?"100%":c[1];return null==e?e="0":"center"===e&&(e="50%"),("center"===d||isNaN(parseFloat(d))&&-1===(d+"").indexOf("="))&&(d="50%"),b&&(b.oxp=-1!==d.indexOf("%"),b.oyp=-1!==e.indexOf("%"),b.oxr="="===d.charAt(1),b.oyr="="===e.charAt(1),b.ox=parseFloat(d.replace(s,"")),b.oy=parseFloat(e.replace(s,""))),d+" "+e+(c.length>2?" "+c[2]:"")},ca=function(a,b){return"string"==typeof a&&"="===a.charAt(1)?parseInt(a.charAt(0)+"1",10)*parseFloat(a.substr(2)):parseFloat(a)-parseFloat(b)},da=function(a,b){return null==a?b:"string"==typeof a&&"="===a.charAt(1)?parseInt(a.charAt(0)+"1",10)*Number(a.substr(2))+b:parseFloat(a)},ea=function(a,b,c,d){var e,f,g,h,i=1e-6;return null==a?h=b:"number"==typeof a?h=a:(e=360,f=a.split("_"),g=Number(f[0].replace(s,""))*(-1===a.indexOf("rad")?1:H)-("="===a.charAt(1)?0:b),f.length&&(d&&(d[c]=b+g),-1!==a.indexOf("short")&&(g%=e,g!==g%(e/2)&&(g=0>g?g+e:g-e)),-1!==a.indexOf("_cw")&&0>g?g=(g+9999999999*e)%e-(g/e|0)*e:-1!==a.indexOf("ccw")&&g>0&&(g=(g-9999999999*e)%e-(g/e|0)*e)),h=b+g),i>h&&h>-i&&(h=0),h},fa={aqua:[0,255,255],lime:[0,255,0],silver:[192,192,192],black:[0,0,0],maroon:[128,0,0],teal:[0,128,128],blue:[0,0,255],navy:[0,0,128],white:[255,255,255],fuchsia:[255,0,255],olive:[128,128,0],yellow:[255,255,0],orange:[255,165,0],gray:[128,128,128],purple:[128,0,128],green:[0,128,0],red:[255,0,0],pink:[255,192,203],cyan:[0,255,255],transparent:[255,255,255,0]},ga=function(a,b,c){return a=0>a?a+1:a>1?a-1:a,255*(1>6*a?b+(c-b)*a*6:.5>a?c:2>3*a?b+(c-b)*(2/3-a)*6:b)+.5|0},ha=function(a){var b,c,d,e,f,g;return a&&""!==a?"number"==typeof a?[a>>16,a>>8&255,255&a]:(","===a.charAt(a.length-1)&&(a=a.substr(0,a.length-1)),fa[a]?fa[a]:"#"===a.charAt(0)?(4===a.length&&(b=a.charAt(1),c=a.charAt(2),d=a.charAt(3),a="#"+b+b+c+c+d+d),a=parseInt(a.substr(1),16),[a>>16,a>>8&255,255&a]):"hsl"===a.substr(0,3)?(a=a.match(p),e=Number(a[0])%360/360,f=Number(a[1])/100,g=Number(a[2])/100,c=.5>=g?g*(f+1):g+f-g*f,b=2*g-c,a.length>3&&(a[3]=Number(a[3])),a[0]=ga(e+1/3,b,c),a[1]=ga(e,b,c),a[2]=ga(e-1/3,b,c),a):(a=a.match(p)||fa.transparent,a[0]=Number(a[0]),a[1]=Number(a[1]),a[2]=Number(a[2]),a.length>3&&(a[3]=Number(a[3])),a)):fa.black},ia="(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#.+?\\b";for(i in fa)ia+="|"+i+"\\b";ia=new RegExp(ia+")","gi");var ja=function(a,b,c,d){if(null==a)return function(a){return a};var e,f=b?(a.match(ia)||[""])[0]:"",g=a.split(f).join("").match(r)||[],h=a.substr(0,a.indexOf(g[0])),i=")"===a.charAt(a.length-1)?")":"",j=-1!==a.indexOf(" ")?" ":",",k=g.length,l=k>0?g[0].replace(p,""):"";return k?e=b?function(a){var b,m,n,o;if("number"==typeof a)a+=l;else if(d&&F.test(a)){for(o=a.replace(F,"|").split("|"),n=0;n<o.length;n++)o[n]=e(o[n]);return o.join(",")}if(b=(a.match(ia)||[f])[0],m=a.split(b).join("").match(r)||[],n=m.length,k>n--)for(;++n<k;)m[n]=c?m[(n-1)/2|0]:g[n];return h+m.join(j)+j+b+i+(-1!==a.indexOf("inset")?" inset":"")}:function(a){var b,f,m;if("number"==typeof a)a+=l;else if(d&&F.test(a)){for(f=a.replace(F,"|").split("|"),m=0;m<f.length;m++)f[m]=e(f[m]);return f.join(",")}if(b=a.match(r)||[],m=b.length,k>m--)for(;++m<k;)b[m]=c?b[(m-1)/2|0]:g[m];return h+b.join(j)+i}:function(a){return a}},ka=function(a){return a=a.split(","),function(b,c,d,e,f,g,h){var i,j=(c+"").split(" ");for(h={},i=0;4>i;i++)h[a[i]]=j[i]=j[i]||j[(i-1)/2>>0];return e.parse(b,h,f,g)}},la=(M._setPluginRatio=function(a){this.plugin.setRatio(a);for(var b,c,d,e,f=this.data,g=f.proxy,h=f.firstMPT,i=1e-6;h;)b=g[h.v],h.r?b=Math.round(b):i>b&&b>-i&&(b=0),h.t[h.p]=b,h=h._next;if(f.autoRotate&&(f.autoRotate.rotation=g.rotation),1===a)for(h=f.firstMPT;h;){if(c=h.t,c.type){if(1===c.type){for(e=c.xs0+c.s+c.xs1,d=1;d<c.l;d++)e+=c["xn"+d]+c["xs"+(d+1)];c.e=e}}else c.e=c.s+c.xs0;h=h._next}},function(a,b,c,d,e){this.t=a,this.p=b,this.v=c,this.r=e,d&&(d._prev=this,this._next=d)}),ma=(M._parseToProxy=function(a,b,c,d,e,f){var g,h,i,j,k,l=d,m={},n={},o=c._transform,p=I;for(c._transform=null,I=b,d=k=c.parse(a,b,d,e),I=p,f&&(c._transform=o,l&&(l._prev=null,l._prev&&(l._prev._next=null)));d&&d!==l;){if(d.type<=1&&(h=d.p,n[h]=d.s+d.c,m[h]=d.s,f||(j=new la(d,"s",h,j,d.r),d.c=0),1===d.type))for(g=d.l;--g>0;)i="xn"+g,h=d.p+"_"+i,n[h]=d.data[i],m[h]=d[i],f||(j=new la(d,i,h,j,d.rxp[i]));d=d._next}return{proxy:m,end:n,firstMPT:j,pt:k}},M.CSSPropTween=function(a,b,d,e,g,h,i,j,k,l,m){this.t=a,this.p=b,this.s=d,this.c=e,this.n=i||b,a instanceof ma||f.push(this.n),this.r=j,this.type=h||0,k&&(this.pr=k,c=!0),this.b=void 0===l?d:l,this.e=void 0===m?d+e:m,g&&(this._next=g,g._prev=this)}),na=g.parseComplex=function(a,b,c,d,e,f,g,h,i,k){c=c||f||"",g=new ma(a,b,0,0,g,k?2:1,null,!1,h,c,d),d+="";var l,m,n,o,r,s,t,u,v,w,y,z,A=c.split(", ").join(",").split(" "),B=d.split(", ").join(",").split(" "),C=A.length,D=j!==!1;for((-1!==d.indexOf(",")||-1!==c.indexOf(","))&&(A=A.join(" ").replace(F,", ").split(" "),B=B.join(" ").replace(F,", ").split(" "),C=A.length),C!==B.length&&(A=(f||"").split(" "),C=A.length),g.plugin=i,g.setRatio=k,l=0;C>l;l++)if(o=A[l],r=B[l],u=parseFloat(o),u||0===u)g.appendXtra("",u,ca(r,u),r.replace(q,""),D&&-1!==r.indexOf("px"),!0);else if(e&&("#"===o.charAt(0)||fa[o]||x.test(o)))z=","===r.charAt(r.length-1)?"),":")",o=ha(o),r=ha(r),v=o.length+r.length>6,v&&!O&&0===r[3]?(g["xs"+g.l]+=g.l?" transparent":"transparent",g.e=g.e.split(B[l]).join("transparent")):(O||(v=!1),g.appendXtra(v?"rgba(":"rgb(",o[0],r[0]-o[0],",",!0,!0).appendXtra("",o[1],r[1]-o[1],",",!0).appendXtra("",o[2],r[2]-o[2],v?",":z,!0),v&&(o=o.length<4?1:o[3],g.appendXtra("",o,(r.length<4?1:r[3])-o,z,!1)));else if(s=o.match(p)){if(t=r.match(q),!t||t.length!==s.length)return g;for(n=0,m=0;m<s.length;m++)y=s[m],w=o.indexOf(y,n),g.appendXtra(o.substr(n,w-n),Number(y),ca(t[m],y),"",D&&"px"===o.substr(w+y.length,2),0===m),n=w+y.length;g["xs"+g.l]+=o.substr(n)}else g["xs"+g.l]+=g.l?" "+o:o;if(-1!==d.indexOf("=")&&g.data){for(z=g.xs0+g.data.s,l=1;l<g.l;l++)z+=g["xs"+l]+g.data["xn"+l];g.e=z+g["xs"+l]}return g.l||(g.type=-1,g.xs0=g.e),g.xfirst||g},oa=9;for(i=ma.prototype,i.l=i.pr=0;--oa>0;)i["xn"+oa]=0,i["xs"+oa]="";i.xs0="",i._next=i._prev=i.xfirst=i.data=i.plugin=i.setRatio=i.rxp=null,i.appendXtra=function(a,b,c,d,e,f){var g=this,h=g.l;return g["xs"+h]+=f&&h?" "+a:a||"",c||0===h||g.plugin?(g.l++,g.type=g.setRatio?2:1,g["xs"+g.l]=d||"",h>0?(g.data["xn"+h]=b+c,g.rxp["xn"+h]=e,g["xn"+h]=b,g.plugin||(g.xfirst=new ma(g,"xn"+h,b,c,g.xfirst||g,0,g.n,e,g.pr),g.xfirst.xs0=0),g):(g.data={s:b+c},g.rxp={},g.s=b,g.c=c,g.r=e,g)):(g["xs"+h]+=b+(d||""),g)};var pa=function(a,b){b=b||{},this.p=b.prefix?T(a)||a:a,h[a]=h[this.p]=this,this.format=b.formatter||ja(b.defaultValue,b.color,b.collapsible,b.multi),b.parser&&(this.parse=b.parser),this.clrs=b.color,this.multi=b.multi,this.keyword=b.keyword,this.dflt=b.defaultValue,this.pr=b.priority||0},qa=M._registerComplexSpecialProp=function(a,b,c){"object"!=typeof b&&(b={parser:c});var d,e,f=a.split(","),g=b.defaultValue;for(c=c||[g],d=0;d<f.length;d++)b.prefix=0===d&&b.prefix,b.defaultValue=c[d]||g,e=new pa(f[d],b)},ra=function(a){if(!h[a]){var b=a.charAt(0).toUpperCase()+a.substr(1)+"Plugin";qa(a,{parser:function(a,c,d,e,f,g,i){var j=(window.GreenSockGlobals||window).com.greensock.plugins[b];return j?(j._cssRegister(),h[d].parse(a,c,d,e,f,g,i)):(Q("Error: "+b+" js file not loaded."),f)}})}};i=pa.prototype,i.parseComplex=function(a,b,c,d,e,f){var g,h,i,j,k,l,m=this.keyword;if(this.multi&&(F.test(c)||F.test(b)?(h=b.replace(F,"|").split("|"),i=c.replace(F,"|").split("|")):m&&(h=[b],i=[c])),i){for(j=i.length>h.length?i.length:h.length,g=0;j>g;g++)b=h[g]=h[g]||this.dflt,c=i[g]=i[g]||this.dflt,m&&(k=b.indexOf(m),l=c.indexOf(m),k!==l&&(c=-1===l?i:h,c[g]+=" "+m));b=h.join(", "),c=i.join(", ")}return na(a,this.p,b,c,this.clrs,this.dflt,d,this.pr,e,f)},i.parse=function(a,b,c,d,f,g,h){return this.parseComplex(a.style,this.format(V(a,this.p,e,!1,this.dflt)),this.format(b),f,g)},g.registerSpecialProp=function(a,b,c){qa(a,{parser:function(a,d,e,f,g,h,i){var j=new ma(a,e,0,0,g,2,e,!1,c);return j.plugin=h,j.setRatio=b(a,d,f._tween,e),j},priority:c})};var sa="scaleX,scaleY,scaleZ,x,y,z,skewX,skewY,rotation,rotationX,rotationY,perspective".split(","),ta=T("transform"),ua=R+"transform",va=T("transformOrigin"),wa=null!==T("perspective"),xa=M.Transform=function(){this.skewY=0},ya=M.getTransform=function(a,b,c,d){if(a._gsTransform&&c&&!d)return a._gsTransform;var e,f,h,i,j,k,l,m,n,o,p,q,r,s=c?a._gsTransform||new xa:new xa,t=s.scaleX<0,u=2e-5,v=1e5,w=179.99,x=w*G,y=wa?parseFloat(V(a,va,b,!1,"0 0 0").split(" ")[2])||s.zOrigin||0:0;for(ta?e=V(a,ua,b,!0):a.currentStyle&&(e=a.currentStyle.filter.match(D),e=e&&4===e.length?[e[0].substr(4),Number(e[2].substr(4)),Number(e[1].substr(4)),e[3].substr(4),s.x||0,s.y||0].join(","):""),f=(e||"").match(/(?:\-|\b)[\d\-\.e]+\b/gi)||[],h=f.length;--h>-1;)i=Number(f[h]),f[h]=(j=i-(i|=0))?(j*v+(0>j?-.5:.5)|0)/v+i:i;if(16===f.length){var z=f[8],A=f[9],B=f[10],C=f[12],E=f[13],F=f[14];if(s.zOrigin&&(F=-s.zOrigin,C=z*F-f[12],E=A*F-f[13],F=B*F+s.zOrigin-f[14]),!c||d||null==s.rotationX){var I,J,K,L,M,N,O,P=f[0],Q=f[1],R=f[2],S=f[3],T=f[4],U=f[5],W=f[6],X=f[7],Y=f[11],Z=Math.atan2(W,B),$=-x>Z||Z>x;s.rotationX=Z*H,Z&&(L=Math.cos(-Z),M=Math.sin(-Z),I=T*L+z*M,J=U*L+A*M,K=W*L+B*M,z=T*-M+z*L,A=U*-M+A*L,B=W*-M+B*L,Y=X*-M+Y*L,T=I,U=J,W=K),Z=Math.atan2(z,P),s.rotationY=Z*H,Z&&(N=-x>Z||Z>x,L=Math.cos(-Z),M=Math.sin(-Z),I=P*L-z*M,J=Q*L-A*M,K=R*L-B*M,A=Q*M+A*L,B=R*M+B*L,Y=S*M+Y*L,P=I,Q=J,R=K),Z=Math.atan2(Q,U),s.rotation=Z*H,Z&&(O=-x>Z||Z>x,L=Math.cos(-Z),M=Math.sin(-Z),P=P*L+T*M,J=Q*L+U*M,U=Q*-M+U*L,W=R*-M+W*L,Q=J),O&&$?s.rotation=s.rotationX=0:O&&N?s.rotation=s.rotationY=0:N&&$&&(s.rotationY=s.rotationX=0),s.scaleX=(Math.sqrt(P*P+Q*Q)*v+.5|0)/v,s.scaleY=(Math.sqrt(U*U+A*A)*v+.5|0)/v,s.scaleZ=(Math.sqrt(W*W+B*B)*v+.5|0)/v,\r
-s.skewX=0,s.perspective=Y?1/(0>Y?-Y:Y):0,s.x=C,s.y=E,s.z=F}}else if((!wa||d||!f.length||s.x!==f[4]||s.y!==f[5]||!s.rotationX&&!s.rotationY)&&(void 0===s.x||"none"!==V(a,"display",b))){var _=f.length>=6,aa=_?f[0]:1,ba=f[1]||0,ca=f[2]||0,da=_?f[3]:1;s.x=f[4]||0,s.y=f[5]||0,k=Math.sqrt(aa*aa+ba*ba),l=Math.sqrt(da*da+ca*ca),m=aa||ba?Math.atan2(ba,aa)*H:s.rotation||0,n=ca||da?Math.atan2(ca,da)*H+m:s.skewX||0,o=k-Math.abs(s.scaleX||0),p=l-Math.abs(s.scaleY||0),Math.abs(n)>90&&Math.abs(n)<270&&(t?(k*=-1,n+=0>=m?180:-180,m+=0>=m?180:-180):(l*=-1,n+=0>=n?180:-180)),q=(m-s.rotation)%180,r=(n-s.skewX)%180,(void 0===s.skewX||o>u||-u>o||p>u||-u>p||q>-w&&w>q&&q*v|!1||r>-w&&w>r&&r*v|!1)&&(s.scaleX=k,s.scaleY=l,s.rotation=m,s.skewX=n),wa&&(s.rotationX=s.rotationY=s.z=0,s.perspective=parseFloat(g.defaultTransformPerspective)||0,s.scaleZ=1)}s.zOrigin=y;for(h in s)s[h]<u&&s[h]>-u&&(s[h]=0);return c&&(a._gsTransform=s),s},za=function(a){var b,c,d=this.data,e=-d.rotation*G,f=e+d.skewX*G,g=1e5,h=(Math.cos(e)*d.scaleX*g|0)/g,i=(Math.sin(e)*d.scaleX*g|0)/g,j=(Math.sin(f)*-d.scaleY*g|0)/g,k=(Math.cos(f)*d.scaleY*g|0)/g,l=this.t.style,m=this.t.currentStyle;if(m){c=i,i=-j,j=-c,b=m.filter,l.filter="";var n,p,q=this.t.offsetWidth,r=this.t.offsetHeight,s="absolute"!==m.position,v="progid:DXImageTransform.Microsoft.Matrix(M11="+h+", M12="+i+", M21="+j+", M22="+k,w=d.x,x=d.y;if(null!=d.ox&&(n=(d.oxp?q*d.ox*.01:d.ox)-q/2,p=(d.oyp?r*d.oy*.01:d.oy)-r/2,w+=n-(n*h+p*i),x+=p-(n*j+p*k)),s?(n=q/2,p=r/2,v+=", Dx="+(n-(n*h+p*i)+w)+", Dy="+(p-(n*j+p*k)+x)+")"):v+=", sizingMethod='auto expand')",-1!==b.indexOf("DXImageTransform.Microsoft.Matrix(")?l.filter=b.replace(E,v):l.filter=v+" "+b,(0===a||1===a)&&1===h&&0===i&&0===j&&1===k&&(s&&-1===v.indexOf("Dx=0, Dy=0")||u.test(b)&&100!==parseFloat(RegExp.$1)||-1===b.indexOf(b.indexOf("Alpha"))&&l.removeAttribute("filter")),!s){var y,z,A,B=8>o?1:-1;for(n=d.ieOffsetX||0,p=d.ieOffsetY||0,d.ieOffsetX=Math.round((q-((0>h?-h:h)*q+(0>i?-i:i)*r))/2+w),d.ieOffsetY=Math.round((r-((0>k?-k:k)*r+(0>j?-j:j)*q))/2+x),oa=0;4>oa;oa++)z=_[oa],y=m[z],c=-1!==y.indexOf("px")?parseFloat(y):W(this.t,z,parseFloat(y),y.replace(t,""))||0,A=c!==d[z]?2>oa?-d.ieOffsetX:-d.ieOffsetY:2>oa?n-d.ieOffsetX:p-d.ieOffsetY,l[z]=(d[z]=Math.round(c-A*(0===oa||2===oa?1:B)))+"px"}}},Aa=M.set3DTransformRatio=function(a){var b,c,d,e,f,g,h,i,j,k,l,n,o,p,q,r,s,t,u,v,w,x,y,z=this.data,A=this.t.style,B=z.rotation*G,C=z.scaleX,D=z.scaleY,E=z.scaleZ,F=z.perspective;if((1===a||0===a)&&"auto"===z.force3D&&!(z.rotationY||z.rotationX||1!==E||F||z.z))return void Ba.call(this,a);if(m){var H=1e-4;H>C&&C>-H&&(C=E=2e-5),H>D&&D>-H&&(D=E=2e-5),!F||z.z||z.rotationX||z.rotationY||(F=0)}if(B||z.skewX)t=Math.cos(B),u=Math.sin(B),b=t,f=u,z.skewX&&(B-=z.skewX*G,t=Math.cos(B),u=Math.sin(B),"simple"===z.skewType&&(v=Math.tan(z.skewX*G),v=Math.sqrt(1+v*v),t*=v,u*=v)),c=-u,g=t;else{if(!(z.rotationY||z.rotationX||1!==E||F))return void(A[ta]="translate3d("+z.x+"px,"+z.y+"px,"+z.z+"px)"+(1!==C||1!==D?" scale("+C+","+D+")":""));b=g=1,c=f=0}l=1,d=e=h=i=j=k=n=o=p=0,q=F?-1/F:0,r=z.zOrigin,s=1e5,B=z.rotationY*G,B&&(t=Math.cos(B),u=Math.sin(B),j=l*-u,o=q*-u,d=b*u,h=f*u,l*=t,q*=t,b*=t,f*=t),B=z.rotationX*G,B&&(t=Math.cos(B),u=Math.sin(B),v=c*t+d*u,w=g*t+h*u,x=k*t+l*u,y=p*t+q*u,d=c*-u+d*t,h=g*-u+h*t,l=k*-u+l*t,q=p*-u+q*t,c=v,g=w,k=x,p=y),1!==E&&(d*=E,h*=E,l*=E,q*=E),1!==D&&(c*=D,g*=D,k*=D,p*=D),1!==C&&(b*=C,f*=C,j*=C,o*=C),r&&(n-=r,e=d*n,i=h*n,n=l*n+r),e=(v=(e+=z.x)-(e|=0))?(v*s+(0>v?-.5:.5)|0)/s+e:e,i=(v=(i+=z.y)-(i|=0))?(v*s+(0>v?-.5:.5)|0)/s+i:i,n=(v=(n+=z.z)-(n|=0))?(v*s+(0>v?-.5:.5)|0)/s+n:n,A[ta]="matrix3d("+[(b*s|0)/s,(f*s|0)/s,(j*s|0)/s,(o*s|0)/s,(c*s|0)/s,(g*s|0)/s,(k*s|0)/s,(p*s|0)/s,(d*s|0)/s,(h*s|0)/s,(l*s|0)/s,(q*s|0)/s,e,i,n,F?1+-n/F:1].join(",")+")"},Ba=M.set2DTransformRatio=function(a){var b,c,d,e,f,g=this.data,h=this.t,i=h.style;return g.rotationX||g.rotationY||g.z||g.force3D===!0||"auto"===g.force3D&&1!==a&&0!==a?(this.setRatio=Aa,void Aa.call(this,a)):void(g.rotation||g.skewX?(b=g.rotation*G,c=b-g.skewX*G,d=1e5,e=g.scaleX*d,f=g.scaleY*d,i[ta]="matrix("+(Math.cos(b)*e|0)/d+","+(Math.sin(b)*e|0)/d+","+(Math.sin(c)*-f|0)/d+","+(Math.cos(c)*f|0)/d+","+g.x+","+g.y+")"):i[ta]="matrix("+g.scaleX+",0,0,"+g.scaleY+","+g.x+","+g.y+")")};qa("transform,scale,scaleX,scaleY,scaleZ,x,y,z,rotation,rotationX,rotationY,rotationZ,skewX,skewY,shortRotation,shortRotationX,shortRotationY,shortRotationZ,transformOrigin,transformPerspective,directionalRotation,parseTransform,force3D,skewType",{parser:function(a,b,c,d,f,h,i){if(d._transform)return f;var j,k,l,m,n,o,p,q=d._transform=ya(a,e,!0,i.parseTransform),r=a.style,s=1e-6,t=sa.length,u=i,v={};if("string"==typeof u.transform&&ta)l=K.style,l[ta]=u.transform,l.display="block",l.position="absolute",J.body.appendChild(K),j=ya(K,null,!1),J.body.removeChild(K);else if("object"==typeof u){if(j={scaleX:da(null!=u.scaleX?u.scaleX:u.scale,q.scaleX),scaleY:da(null!=u.scaleY?u.scaleY:u.scale,q.scaleY),scaleZ:da(u.scaleZ,q.scaleZ),x:da(u.x,q.x),y:da(u.y,q.y),z:da(u.z,q.z),perspective:da(u.transformPerspective,q.perspective)},p=u.directionalRotation,null!=p)if("object"==typeof p)for(l in p)u[l]=p[l];else u.rotation=p;j.rotation=ea("rotation"in u?u.rotation:"shortRotation"in u?u.shortRotation+"_short":"rotationZ"in u?u.rotationZ:q.rotation,q.rotation,"rotation",v),wa&&(j.rotationX=ea("rotationX"in u?u.rotationX:"shortRotationX"in u?u.shortRotationX+"_short":q.rotationX||0,q.rotationX,"rotationX",v),j.rotationY=ea("rotationY"in u?u.rotationY:"shortRotationY"in u?u.shortRotationY+"_short":q.rotationY||0,q.rotationY,"rotationY",v)),j.skewX=null==u.skewX?q.skewX:ea(u.skewX,q.skewX),j.skewY=null==u.skewY?q.skewY:ea(u.skewY,q.skewY),(k=j.skewY-q.skewY)&&(j.skewX+=k,j.rotation+=k)}for(wa&&null!=u.force3D&&(q.force3D=u.force3D,o=!0),q.skewType=u.skewType||q.skewType||g.defaultSkewType,n=q.force3D||q.z||q.rotationX||q.rotationY||j.z||j.rotationX||j.rotationY||j.perspective,n||null==u.scale||(j.scaleZ=1);--t>-1;)c=sa[t],m=j[c]-q[c],(m>s||-s>m||null!=I[c])&&(o=!0,f=new ma(q,c,q[c],m,f),c in v&&(f.e=v[c]),f.xs0=0,f.plugin=h,d._overwriteProps.push(f.n));return m=u.transformOrigin,(m||wa&&n&&q.zOrigin)&&(ta?(o=!0,c=va,m=(m||V(a,c,e,!1,"50% 50%"))+"",f=new ma(r,c,0,0,f,-1,"transformOrigin"),f.b=r[c],f.plugin=h,wa?(l=q.zOrigin,m=m.split(" "),q.zOrigin=(m.length>2&&(0===l||"0px"!==m[2])?parseFloat(m[2]):l)||0,f.xs0=f.e=m[0]+" "+(m[1]||"50%")+" 0px",f=new ma(q,"zOrigin",0,0,f,-1,f.n),f.b=l,f.xs0=f.e=q.zOrigin):f.xs0=f.e=m):ba(m+"",q)),o&&(d._transformType=n||3===this._transformType?3:2),f},prefix:!0}),qa("boxShadow",{defaultValue:"0px 0px 0px 0px #999",prefix:!0,color:!0,multi:!0,keyword:"inset"}),qa("borderRadius",{defaultValue:"0px",parser:function(a,b,c,f,g,h){b=this.format(b);var i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y=["borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius"],z=a.style;for(q=parseFloat(a.offsetWidth),r=parseFloat(a.offsetHeight),i=b.split(" "),j=0;j<y.length;j++)this.p.indexOf("border")&&(y[j]=T(y[j])),m=l=V(a,y[j],e,!1,"0px"),-1!==m.indexOf(" ")&&(l=m.split(" "),m=l[0],l=l[1]),n=k=i[j],o=parseFloat(m),t=m.substr((o+"").length),u="="===n.charAt(1),u?(p=parseInt(n.charAt(0)+"1",10),n=n.substr(2),p*=parseFloat(n),s=n.substr((p+"").length-(0>p?1:0))||""):(p=parseFloat(n),s=n.substr((p+"").length)),""===s&&(s=d[c]||t),s!==t&&(v=W(a,"borderLeft",o,t),w=W(a,"borderTop",o,t),"%"===s?(m=v/q*100+"%",l=w/r*100+"%"):"em"===s?(x=W(a,"borderLeft",1,"em"),m=v/x+"em",l=w/x+"em"):(m=v+"px",l=w+"px"),u&&(n=parseFloat(m)+p+s,k=parseFloat(l)+p+s)),g=na(z,y[j],m+" "+l,n+" "+k,!1,"0px",g);return g},prefix:!0,formatter:ja("0px 0px 0px 0px",!1,!0)}),qa("backgroundPosition",{defaultValue:"0 0",parser:function(a,b,c,d,f,g){var h,i,j,k,l,m,n="background-position",p=e||U(a,null),q=this.format((p?o?p.getPropertyValue(n+"-x")+" "+p.getPropertyValue(n+"-y"):p.getPropertyValue(n):a.currentStyle.backgroundPositionX+" "+a.currentStyle.backgroundPositionY)||"0 0"),r=this.format(b);if(-1!==q.indexOf("%")!=(-1!==r.indexOf("%"))&&(m=V(a,"backgroundImage").replace(A,""),m&&"none"!==m)){for(h=q.split(" "),i=r.split(" "),L.setAttribute("src",m),j=2;--j>-1;)q=h[j],k=-1!==q.indexOf("%"),k!==(-1!==i[j].indexOf("%"))&&(l=0===j?a.offsetWidth-L.width:a.offsetHeight-L.height,h[j]=k?parseFloat(q)/100*l+"px":parseFloat(q)/l*100+"%");q=h.join(" ")}return this.parseComplex(a.style,q,r,f,g)},formatter:ba}),qa("backgroundSize",{defaultValue:"0 0",formatter:ba}),qa("perspective",{defaultValue:"0px",prefix:!0}),qa("perspectiveOrigin",{defaultValue:"50% 50%",prefix:!0}),qa("transformStyle",{prefix:!0}),qa("backfaceVisibility",{prefix:!0}),qa("userSelect",{prefix:!0}),qa("margin",{parser:ka("marginTop,marginRight,marginBottom,marginLeft")}),qa("padding",{parser:ka("paddingTop,paddingRight,paddingBottom,paddingLeft")}),qa("clip",{defaultValue:"rect(0px,0px,0px,0px)",parser:function(a,b,c,d,f,g){var h,i,j;return 9>o?(i=a.currentStyle,j=8>o?" ":",",h="rect("+i.clipTop+j+i.clipRight+j+i.clipBottom+j+i.clipLeft+")",b=this.format(b).split(",").join(j)):(h=this.format(V(a,this.p,e,!1,this.dflt)),b=this.format(b)),this.parseComplex(a.style,h,b,f,g)}}),qa("textShadow",{defaultValue:"0px 0px 0px #999",color:!0,multi:!0}),qa("autoRound,strictUnits",{parser:function(a,b,c,d,e){return e}}),qa("border",{defaultValue:"0px solid #000",parser:function(a,b,c,d,f,g){return this.parseComplex(a.style,this.format(V(a,"borderTopWidth",e,!1,"0px")+" "+V(a,"borderTopStyle",e,!1,"solid")+" "+V(a,"borderTopColor",e,!1,"#000")),this.format(b),f,g)},color:!0,formatter:function(a){var b=a.split(" ");return b[0]+" "+(b[1]||"solid")+" "+(a.match(ia)||["#000"])[0]}}),qa("borderWidth",{parser:ka("borderTopWidth,borderRightWidth,borderBottomWidth,borderLeftWidth")}),qa("float,cssFloat,styleFloat",{parser:function(a,b,c,d,e,f){var g=a.style,h="cssFloat"in g?"cssFloat":"styleFloat";return new ma(g,h,0,0,e,-1,c,!1,0,g[h],b)}});var Ca=function(a){var b,c=this.t,d=c.filter||V(this.data,"filter"),e=this.s+this.c*a|0;100===e&&(-1===d.indexOf("atrix(")&&-1===d.indexOf("radient(")&&-1===d.indexOf("oader(")?(c.removeAttribute("filter"),b=!V(this.data,"filter")):(c.filter=d.replace(w,""),b=!0)),b||(this.xn1&&(c.filter=d=d||"alpha(opacity="+e+")"),-1===d.indexOf("pacity")?0===e&&this.xn1||(c.filter=d+" alpha(opacity="+e+")"):c.filter=d.replace(u,"opacity="+e))};qa("opacity,alpha,autoAlpha",{defaultValue:"1",parser:function(a,b,c,d,f,g){var h=parseFloat(V(a,"opacity",e,!1,"1")),i=a.style,j="autoAlpha"===c;return"string"==typeof b&&"="===b.charAt(1)&&(b=("-"===b.charAt(0)?-1:1)*parseFloat(b.substr(2))+h),j&&1===h&&"hidden"===V(a,"visibility",e)&&0!==b&&(h=0),O?f=new ma(i,"opacity",h,b-h,f):(f=new ma(i,"opacity",100*h,100*(b-h),f),f.xn1=j?1:0,i.zoom=1,f.type=2,f.b="alpha(opacity="+f.s+")",f.e="alpha(opacity="+(f.s+f.c)+")",f.data=a,f.plugin=g,f.setRatio=Ca),j&&(f=new ma(i,"visibility",0,0,f,-1,null,!1,0,0!==h?"inherit":"hidden",0===b?"hidden":"inherit"),f.xs0="inherit",d._overwriteProps.push(f.n),d._overwriteProps.push(c)),f}});var Da=function(a,b){b&&(a.removeProperty?("ms"===b.substr(0,2)&&(b="M"+b.substr(1)),a.removeProperty(b.replace(y,"-$1").toLowerCase())):a.removeAttribute(b))},Ea=function(a){if(this.t._gsClassPT=this,1===a||0===a){this.t.setAttribute("class",0===a?this.b:this.e);for(var b=this.data,c=this.t.style;b;)b.v?c[b.p]=b.v:Da(c,b.p),b=b._next;1===a&&this.t._gsClassPT===this&&(this.t._gsClassPT=null)}else this.t.getAttribute("class")!==this.e&&this.t.setAttribute("class",this.e)};qa("className",{parser:function(a,b,d,f,g,h,i){var j,k,l,m,n,o=a.getAttribute("class")||"",p=a.style.cssText;if(g=f._classNamePT=new ma(a,d,0,0,g,2),g.setRatio=Ea,g.pr=-11,c=!0,g.b=o,k=Y(a,e),l=a._gsClassPT){for(m={},n=l.data;n;)m[n.p]=1,n=n._next;l.setRatio(1)}return a._gsClassPT=g,g.e="="!==b.charAt(1)?b:o.replace(new RegExp("\\s*\\b"+b.substr(2)+"\\b"),"")+("+"===b.charAt(0)?" "+b.substr(2):""),f._tween._duration&&(a.setAttribute("class",g.e),j=Z(a,k,Y(a),i,m),a.setAttribute("class",o),g.data=j.firstMPT,a.style.cssText=p,g=g.xfirst=f.parse(a,j.difs,g,h)),g}});var Fa=function(a){if((1===a||0===a)&&this.data._totalTime===this.data._totalDuration&&"isFromStart"!==this.data.data){var b,c,d,e,f=this.t.style,g=h.transform.parse;if("all"===this.e)f.cssText="",e=!0;else for(b=this.e.split(","),d=b.length;--d>-1;)c=b[d],h[c]&&(h[c].parse===g?e=!0:c="transformOrigin"===c?va:h[c].p),Da(f,c);e&&(Da(f,ta),this.t._gsTransform&&delete this.t._gsTransform)}};for(qa("clearProps",{parser:function(a,b,d,e,f){return f=new ma(a,d,0,0,f,2),f.setRatio=Fa,f.e=b,f.pr=-10,f.data=e._tween,c=!0,f}}),i="bezier,throwProps,physicsProps,physics2D".split(","),oa=i.length;oa--;)ra(i[oa]);i=g.prototype,i._firstPT=null,i._onInitTween=function(a,b,h){if(!a.nodeType)return!1;this._target=a,this._tween=h,this._vars=b,j=b.autoRound,c=!1,d=b.suffixMap||g.suffixMap,e=U(a,""),f=this._overwriteProps;var i,m,o,p,q,r,s,t,u,w=a.style;if(k&&""===w.zIndex&&(i=V(a,"zIndex",e),("auto"===i||""===i)&&this._addLazySet(w,"zIndex",0)),"string"==typeof b&&(p=w.cssText,i=Y(a,e),w.cssText=p+";"+b,i=Z(a,i,Y(a)).difs,!O&&v.test(b)&&(i.opacity=parseFloat(RegExp.$1)),b=i,w.cssText=p),this._firstPT=m=this.parse(a,b,null),this._transformType){for(u=3===this._transformType,ta?l&&(k=!0,""===w.zIndex&&(s=V(a,"zIndex",e),("auto"===s||""===s)&&this._addLazySet(w,"zIndex",0)),n&&this._addLazySet(w,"WebkitBackfaceVisibility",this._vars.WebkitBackfaceVisibility||(u?"visible":"hidden"))):w.zoom=1,o=m;o&&o._next;)o=o._next;t=new ma(a,"transform",0,0,null,2),this._linkCSSP(t,null,o),t.setRatio=u&&wa?Aa:ta?Ba:za,t.data=this._transform||ya(a,e,!0),f.pop()}if(c){for(;m;){for(r=m._next,o=p;o&&o.pr>m.pr;)o=o._next;(m._prev=o?o._prev:q)?m._prev._next=m:p=m,(m._next=o)?o._prev=m:q=m,m=r}this._firstPT=p}return!0},i.parse=function(a,b,c,f){var g,i,k,l,m,n,o,p,q,r,s=a.style;for(g in b)n=b[g],i=h[g],i?c=i.parse(a,n,g,this,c,f,b):(m=V(a,g,e)+"",q="string"==typeof n,"color"===g||"fill"===g||"stroke"===g||-1!==g.indexOf("Color")||q&&x.test(n)?(q||(n=ha(n),n=(n.length>3?"rgba(":"rgb(")+n.join(",")+")"),c=na(s,g,m,n,!0,"transparent",c,0,f)):!q||-1===n.indexOf(" ")&&-1===n.indexOf(",")?(k=parseFloat(m),o=k||0===k?m.substr((k+"").length):"",(""===m||"auto"===m)&&("width"===g||"height"===g?(k=aa(a,g,e),o="px"):"left"===g||"top"===g?(k=X(a,g,e),o="px"):(k="opacity"!==g?0:1,o="")),r=q&&"="===n.charAt(1),r?(l=parseInt(n.charAt(0)+"1",10),n=n.substr(2),l*=parseFloat(n),p=n.replace(t,"")):(l=parseFloat(n),p=q?n.substr((l+"").length)||"":""),""===p&&(p=g in d?d[g]:o),n=l||0===l?(r?l+k:l)+p:b[g],o!==p&&""!==p&&(l||0===l)&&k&&(k=W(a,g,k,o),"%"===p?(k/=W(a,g,100,"%")/100,b.strictUnits!==!0&&(m=k+"%")):"em"===p?k/=W(a,g,1,"em"):"px"!==p&&(l=W(a,g,l,p),p="px"),r&&(l||0===l)&&(n=l+k+p)),r&&(l+=k),!k&&0!==k||!l&&0!==l?void 0!==s[g]&&(n||n+""!="NaN"&&null!=n)?(c=new ma(s,g,l||k||0,0,c,-1,g,!1,0,m,n),c.xs0="none"!==n||"display"!==g&&-1===g.indexOf("Style")?n:m):Q("invalid "+g+" tween value: "+b[g]):(c=new ma(s,g,k,l-k,c,0,g,j!==!1&&("px"===p||"zIndex"===g),0,m,n),c.xs0=p)):c=na(s,g,m,n,!0,null,c,0,f)),f&&c&&!c.plugin&&(c.plugin=f);return c},i.setRatio=function(a){var b,c,d,e=this._firstPT,f=1e-6;if(1!==a||this._tween._time!==this._tween._duration&&0!==this._tween._time)if(a||this._tween._time!==this._tween._duration&&0!==this._tween._time||this._tween._rawPrevTime===-1e-6)for(;e;){if(b=e.c*a+e.s,e.r?b=Math.round(b):f>b&&b>-f&&(b=0),e.type)if(1===e.type)if(d=e.l,2===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2;else if(3===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2+e.xn2+e.xs3;else if(4===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2+e.xn2+e.xs3+e.xn3+e.xs4;else if(5===d)e.t[e.p]=e.xs0+b+e.xs1+e.xn1+e.xs2+e.xn2+e.xs3+e.xn3+e.xs4+e.xn4+e.xs5;else{for(c=e.xs0+b+e.xs1,d=1;d<e.l;d++)c+=e["xn"+d]+e["xs"+(d+1)];e.t[e.p]=c}else-1===e.type?e.t[e.p]=e.xs0:e.setRatio&&e.setRatio(a);else e.t[e.p]=b+e.xs0;e=e._next}else for(;e;)2!==e.type?e.t[e.p]=e.b:e.setRatio(a),e=e._next;else for(;e;)2!==e.type?e.t[e.p]=e.e:e.setRatio(a),e=e._next},i._enableTransforms=function(a){this._transformType=a||3===this._transformType?3:2,this._transform=this._transform||ya(this._target,e,!0)};var Ga=function(a){this.t[this.p]=this.e,this.data._linkCSSP(this,this._next,null,!0)};i._addLazySet=function(a,b,c){var d=this._firstPT=new ma(a,b,0,0,this._firstPT,2);d.e=c,d.setRatio=Ga,d.data=this},i._linkCSSP=function(a,b,c,d){return a&&(b&&(b._prev=a),a._next&&(a._next._prev=a._prev),a._prev?a._prev._next=a._next:this._firstPT===a&&(this._firstPT=a._next,d=!0),c?c._next=a:d||null!==this._firstPT||(this._firstPT=a),a._next=b,a._prev=c),a},i._kill=function(b){var c,d,e,f=b;if(b.autoAlpha||b.alpha){f={};for(d in b)f[d]=b[d];f.opacity=1,f.autoAlpha&&(f.visibility=1)}return b.className&&(c=this._classNamePT)&&(e=c.xfirst,e&&e._prev?this._linkCSSP(e._prev,c._next,e._prev._prev):e===this._firstPT&&(this._firstPT=c._next),c._next&&this._linkCSSP(c._next,c._next._next,e._prev),this._classNamePT=null),a.prototype._kill.call(this,f)};var Ha=function(a,b,c){var d,e,f,g;if(a.slice)for(e=a.length;--e>-1;)Ha(a[e],b,c);else for(d=a.childNodes,e=d.length;--e>-1;)f=d[e],g=f.type,f.style&&(b.push(Y(f)),c&&c.push(f)),1!==g&&9!==g&&11!==g||!f.childNodes.length||Ha(f,b,c)};return g.cascadeTo=function(a,c,d){var e,f,g,h=b.to(a,c,d),i=[h],j=[],k=[],l=[],m=b._internals.reservedProps;for(a=h._targets||h.target,Ha(a,j,l),h.render(c,!0),Ha(a,k),h.render(0,!0),h._enabled(!0),e=l.length;--e>-1;)if(f=Z(l[e],j[e],k[e]),f.firstMPT){f=f.difs;for(g in d)m[g]&&(f[g]=d[g]);i.push(b.to(l[e],c,f))}return i},a.activate([g]),g},!0),function(){var a=window._gsDefine.plugin({propName:"roundProps",priority:-1,API:2,init:function(a,b,c){return this._tween=c,!0}}),b=a.prototype;b._onInitAllProps=function(){for(var a,b,c,d=this._tween,e=d.vars.roundProps instanceof Array?d.vars.roundProps:d.vars.roundProps.split(","),f=e.length,g={},h=d._propLookup.roundProps;--f>-1;)g[e[f]]=1;for(f=e.length;--f>-1;)for(a=e[f],b=d._firstPT;b;)c=b._next,b.pg?b.t._roundProps(g,!0):b.n===a&&(this._add(b.t,a,b.s,b.c),c&&(c._prev=b._prev),b._prev?b._prev._next=c:d._firstPT===b&&(d._firstPT=c),b._next=b._prev=null,d._propLookup[a]=h),b=c;return!1},b._add=function(a,b,c,d){this._addTween(a,b,c,c+d,b,!0),this._overwriteProps.push(b)}}(),window._gsDefine.plugin({propName:"attr",API:2,version:"0.3.2",init:function(a,b,c){var d,e,f;if("function"!=typeof a.setAttribute)return!1;this._target=a,this._proxy={},this._start={},this._end={};for(d in b)this._start[d]=this._proxy[d]=e=a.getAttribute(d),f=this._addTween(this._proxy,d,parseFloat(e),b[d],d),this._end[d]=f?f.s+f.c:b[d],this._overwriteProps.push(d);return!0},set:function(a){this._super.setRatio.call(this,a);for(var b,c=this._overwriteProps,d=c.length,e=1===a?this._end:a?this._proxy:this._start;--d>-1;)b=c[d],this._target.setAttribute(b,e[b]+"")}}),window._gsDefine.plugin({propName:"directionalRotation",API:2,version:"0.2.0",init:function(a,b,c){"object"!=typeof b&&(b={rotation:b}),this.finals={};var d,e,f,g,h,i,j=b.useRadians===!0?2*Math.PI:360,k=1e-6;for(d in b)"useRadians"!==d&&(i=(b[d]+"").split("_"),e=i[0],f=parseFloat("function"!=typeof a[d]?a[d]:a[d.indexOf("set")||"function"!=typeof a["get"+d.substr(3)]?d:"get"+d.substr(3)]()),g=this.finals[d]="string"==typeof e&&"="===e.charAt(1)?f+parseInt(e.charAt(0)+"1",10)*Number(e.substr(2)):Number(e)||0,h=g-f,i.length&&(e=i.join("_"),-1!==e.indexOf("short")&&(h%=j,h!==h%(j/2)&&(h=0>h?h+j:h-j)),-1!==e.indexOf("_cw")&&0>h?h=(h+9999999999*j)%j-(h/j|0)*j:-1!==e.indexOf("ccw")&&h>0&&(h=(h-9999999999*j)%j-(h/j|0)*j)),(h>k||-k>h)&&(this._addTween(a,d,f,f+h,d),this._overwriteProps.push(d)));return!0},set:function(a){var b;if(1!==a)this._super.setRatio.call(this,a);else for(b=this._firstPT;b;)b.f?b.t[b.p](this.finals[b.p]):b.t[b.p]=this.finals[b.p],b=b._next}})._autoCSS=!0,window._gsDefine("easing.Back",["easing.Ease"],function(a){var b,c,d,e=window.GreenSockGlobals||window,f=e.com.greensock,g=2*Math.PI,h=Math.PI/2,i=f._class,j=function(b,c){var d=i("easing."+b,function(){},!0),e=d.prototype=new a;return e.constructor=d,e.getRatio=c,d},k=a.register||function(){},l=function(a,b,c,d,e){var f=i("easing."+a,{easeOut:new b,easeIn:new c,easeInOut:new d},!0);return k(f,a),f},m=function(a,b,c){this.t=a,this.v=b,c&&(this.next=c,c.prev=this,this.c=c.v-b,this.gap=c.t-a)},n=function(b,c){var d=i("easing."+b,function(a){this._p1=a||0===a?a:1.70158,this._p2=1.525*this._p1},!0),e=d.prototype=new a;return e.constructor=d,e.getRatio=c,e.config=function(a){return new d(a)},d},o=l("Back",n("BackOut",function(a){return(a-=1)*a*((this._p1+1)*a+this._p1)+1}),n("BackIn",function(a){return a*a*((this._p1+1)*a-this._p1)}),n("BackInOut",function(a){return(a*=2)<1?.5*a*a*((this._p2+1)*a-this._p2):.5*((a-=2)*a*((this._p2+1)*a+this._p2)+2)})),p=i("easing.SlowMo",function(a,b,c){b=b||0===b?b:.7,null==a?a=.7:a>1&&(a=1),this._p=1!==a?b:0,this._p1=(1-a)/2,this._p2=a,this._p3=this._p1+this._p2,this._calcEnd=c===!0},!0),q=p.prototype=new a;return q.constructor=p,q.getRatio=function(a){var b=a+(.5-a)*this._p;return a<this._p1?this._calcEnd?1-(a=1-a/this._p1)*a:b-(a=1-a/this._p1)*a*a*a*b:a>this._p3?this._calcEnd?1-(a=(a-this._p3)/this._p1)*a:b+(a-b)*(a=(a-this._p3)/this._p1)*a*a*a:this._calcEnd?1:b},p.ease=new p(.7,.7),q.config=p.config=function(a,b,c){return new p(a,b,c)},b=i("easing.SteppedEase",function(a){a=a||1,this._p1=1/a,this._p2=a+1},!0),q=b.prototype=new a,q.constructor=b,q.getRatio=function(a){return 0>a?a=0:a>=1&&(a=.999999999),(this._p2*a>>0)*this._p1},q.config=b.config=function(a){return new b(a)},c=i("easing.RoughEase",function(b){b=b||{};for(var c,d,e,f,g,h,i=b.taper||"none",j=[],k=0,l=0|(b.points||20),n=l,o=b.randomize!==!1,p=b.clamp===!0,q=b.template instanceof a?b.template:null,r="number"==typeof b.strength?.4*b.strength:.4;--n>-1;)c=o?Math.random():1/l*n,d=q?q.getRatio(c):c,"none"===i?e=r:"out"===i?(f=1-c,e=f*f*r):"in"===i?e=c*c*r:.5>c?(f=2*c,e=f*f*.5*r):(f=2*(1-c),e=f*f*.5*r),o?d+=Math.random()*e-.5*e:n%2?d+=.5*e:d-=.5*e,p&&(d>1?d=1:0>d&&(d=0)),j[k++]={x:c,y:d};for(j.sort(function(a,b){return a.x-b.x}),h=new m(1,1,null),n=l;--n>-1;)g=j[n],h=new m(g.x,g.y,h);this._prev=new m(0,0,0!==h.t?h:h.next)},!0),q=c.prototype=new a,q.constructor=c,q.getRatio=function(a){var b=this._prev;if(a>b.t){for(;b.next&&a>=b.t;)b=b.next;b=b.prev}else for(;b.prev&&a<=b.t;)b=b.prev;return this._prev=b,b.v+(a-b.t)/b.gap*b.c},q.config=function(a){return new c(a)},c.ease=new c,l("Bounce",j("BounceOut",function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375}),j("BounceIn",function(a){return(a=1-a)<1/2.75?1-7.5625*a*a:2/2.75>a?1-(7.5625*(a-=1.5/2.75)*a+.75):2.5/2.75>a?1-(7.5625*(a-=2.25/2.75)*a+.9375):1-(7.5625*(a-=2.625/2.75)*a+.984375)}),j("BounceInOut",function(a){var b=.5>a;return a=b?1-2*a:2*a-1,a=1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375,b?.5*(1-a):.5*a+.5})),l("Circ",j("CircOut",function(a){return Math.sqrt(1-(a-=1)*a)}),j("CircIn",function(a){return-(Math.sqrt(1-a*a)-1)}),j("CircInOut",function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)})),d=function(b,c,d){var e=i("easing."+b,function(a,b){this._p1=a||1,this._p2=b||d,this._p3=this._p2/g*(Math.asin(1/this._p1)||0)},!0),f=e.prototype=new a;return f.constructor=e,f.getRatio=c,f.config=function(a,b){return new e(a,b)},e},l("Elastic",d("ElasticOut",function(a){return this._p1*Math.pow(2,-10*a)*Math.sin((a-this._p3)*g/this._p2)+1},.3),d("ElasticIn",function(a){return-(this._p1*Math.pow(2,10*(a-=1))*Math.sin((a-this._p3)*g/this._p2))},.3),d("ElasticInOut",function(a){return(a*=2)<1?-.5*(this._p1*Math.pow(2,10*(a-=1))*Math.sin((a-this._p3)*g/this._p2)):this._p1*Math.pow(2,-10*(a-=1))*Math.sin((a-this._p3)*g/this._p2)*.5+1},.45)),l("Expo",j("ExpoOut",function(a){return 1-Math.pow(2,-10*a)}),j("ExpoIn",function(a){return Math.pow(2,10*(a-1))-.001}),j("ExpoInOut",function(a){return(a*=2)<1?.5*Math.pow(2,10*(a-1)):.5*(2-Math.pow(2,-10*(a-1)))})),l("Sine",j("SineOut",function(a){return Math.sin(a*h)}),j("SineIn",function(a){return-Math.cos(a*h)+1}),j("SineInOut",function(a){return-.5*(Math.cos(Math.PI*a)-1)})),i("easing.EaseLookup",{find:function(b){return a.map[b]}},!0),k(e.SlowMo,"SlowMo","ease,"),k(c,"RoughEase","ease,"),k(b,"SteppedEase","ease,"),o},!0)}),function(a){"use strict";var b=a.GreenSockGlobals||a;if(!b.TweenLite){var c,d,e,f,g,h=function(a){var c,d=a.split("."),e=b;for(c=0;c<d.length;c++)e[d[c]]=e=e[d[c]]||{};return e},i=h("com.greensock"),j=1e-10,k=[].slice,l=function(){},m=function(){var a=Object.prototype.toString,b=a.call([]);return function(c){return null!=c&&(c instanceof Array||"object"==typeof c&&!!c.push&&a.call(c)===b)}}(),n={},o=function(c,d,e,f){this.sc=n[c]?n[c].sc:[],n[c]=this,this.gsClass=null,this.func=e;var g=[];this.check=function(i){for(var j,k,l,m,p=d.length,q=p;--p>-1;)(j=n[d[p]]||new o(d[p],[])).gsClass?(g[p]=j.gsClass,q--):i&&j.sc.push(this);if(0===q&&e)for(k=("com.greensock."+c).split("."),l=k.pop(),m=h(k.join("."))[l]=this.gsClass=e.apply(e,g),f&&(b[l]=m,"function"==typeof define&&define.amd?define((a.GreenSockAMDPath?a.GreenSockAMDPath+"/":"")+c.split(".").join("/"),[],function(){return m}):"undefined"!=typeof module&&module.exports&&(module.exports=m)),p=0;p<this.sc.length;p++)this.sc[p].check()},this.check(!0)},p=a._gsDefine=function(a,b,c,d){return new o(a,b,c,d)},q=i._class=function(a,b,c){return b=b||function(){},p(a,[],function(){return b},c),b};p.globals=b;var r=[0,0,1,1],s=[],t=q("easing.Ease",function(a,b,c,d){this._func=a,this._type=c||0,this._power=d||0,this._params=b?r.concat(b):r},!0),u=t.map={},v=t.register=function(a,b,c,d){for(var e,f,g,h,j=b.split(","),k=j.length,l=(c||"easeIn,easeOut,easeInOut").split(",");--k>-1;)for(f=j[k],e=d?q("easing."+f,null,!0):i.easing[f]||{},g=l.length;--g>-1;)h=l[g],u[f+"."+h]=u[h+f]=e[h]=a.getRatio?a:a[h]||new a};for(e=t.prototype,e._calcEnd=!1,e.getRatio=function(a){if(this._func)return this._params[0]=a,this._func.apply(null,this._params);var b=this._type,c=this._power,d=1===b?1-a:2===b?a:.5>a?2*a:2*(1-a);return 1===c?d*=d:2===c?d*=d*d:3===c?d*=d*d*d:4===c&&(d*=d*d*d*d),1===b?1-d:2===b?d:.5>a?d/2:1-d/2},c=["Linear","Quad","Cubic","Quart","Quint,Strong"],d=c.length;--d>-1;)e=c[d]+",Power"+d,v(new t(null,null,1,d),e,"easeOut",!0),v(new t(null,null,2,d),e,"easeIn"+(0===d?",easeNone":"")),v(new t(null,null,3,d),e,"easeInOut");u.linear=i.easing.Linear.easeIn,u.swing=i.easing.Quad.easeInOut;var w=q("events.EventDispatcher",function(a){this._listeners={},this._eventTarget=a||this});e=w.prototype,e.addEventListener=function(a,b,c,d,e){e=e||0;var h,i,j=this._listeners[a],k=0;for(null==j&&(this._listeners[a]=j=[]),i=j.length;--i>-1;)h=j[i],h.c===b&&h.s===c?j.splice(i,1):0===k&&h.pr<e&&(k=i+1);j.splice(k,0,{c:b,s:c,up:d,pr:e}),this!==f||g||f.wake()},e.removeEventListener=function(a,b){var c,d=this._listeners[a];if(d)for(c=d.length;--c>-1;)if(d[c].c===b)return void d.splice(c,1)},e.dispatchEvent=function(a){var b,c,d,e=this._listeners[a];if(e)for(b=e.length,c=this._eventTarget;--b>-1;)d=e[b],d.up?d.c.call(d.s||c,{type:a,target:c}):d.c.call(d.s||c)};var x=a.requestAnimationFrame,y=a.cancelAnimationFrame,z=Date.now||function(){return(new Date).getTime()},A=z();for(c=["ms","moz","webkit","o"],d=c.length;--d>-1&&!x;)x=a[c[d]+"RequestAnimationFrame"],y=a[c[d]+"CancelAnimationFrame"]||a[c[d]+"CancelRequestAnimationFrame"];q("Ticker",function(a,b){var c,d,e,h,i,k=this,m=z(),n=b!==!1&&x,o=500,p=33,q=function(a){var b,f,g=z()-A;g>o&&(m+=g-p),A+=g,k.time=(A-m)/1e3,b=k.time-i,(!c||b>0||a===!0)&&(k.frame++,i+=b+(b>=h?.004:h-b),f=!0),a!==!0&&(e=d(q)),f&&k.dispatchEvent("tick")};w.call(k),k.time=k.frame=0,k.tick=function(){q(!0)},k.lagSmoothing=function(a,b){o=a||1/j,p=Math.min(b,o,0)},k.sleep=function(){null!=e&&(n&&y?y(e):clearTimeout(e),d=l,e=null,k===f&&(g=!1))},k.wake=function(){null!==e?k.sleep():k.frame>10&&(A=z()-o+5),d=0===c?l:n&&x?x:function(a){return setTimeout(a,1e3*(i-k.time)+1|0)},k===f&&(g=!0),q(2)},k.fps=function(a){return arguments.length?(c=a,h=1/(c||60),i=this.time+h,void k.wake()):c},k.useRAF=function(a){return arguments.length?(k.sleep(),n=a,void k.fps(c)):n},k.fps(a),setTimeout(function(){n&&(!e||k.frame<5)&&k.useRAF(!1)},1500)}),e=i.Ticker.prototype=new i.events.EventDispatcher,e.constructor=i.Ticker;var B=q("core.Animation",function(a,b){if(this.vars=b=b||{},this._duration=this._totalDuration=a||0,this._delay=Number(b.delay)||0,this._timeScale=1,this._active=b.immediateRender===!0,this.data=b.data,this._reversed=b.reversed===!0,Q){g||f.wake();var c=this.vars.useFrames?P:Q;c.add(this,c._time),this.vars.paused&&this.paused(!0)}});f=B.ticker=new i.Ticker,e=B.prototype,e._dirty=e._gc=e._initted=e._paused=!1,e._totalTime=e._time=0,e._rawPrevTime=-1,e._next=e._last=e._onUpdate=e._timeline=e.timeline=null,e._paused=!1;var C=function(){g&&z()-A>2e3&&f.wake(),setTimeout(C,2e3)};C(),e.play=function(a,b){return null!=a&&this.seek(a,b),this.reversed(!1).paused(!1)},e.pause=function(a,b){return null!=a&&this.seek(a,b),this.paused(!0)},e.resume=function(a,b){return null!=a&&this.seek(a,b),this.paused(!1)},e.seek=function(a,b){return this.totalTime(Number(a),b!==!1)},e.restart=function(a,b){return this.reversed(!1).paused(!1).totalTime(a?-this._delay:0,b!==!1,!0)},e.reverse=function(a,b){return null!=a&&this.seek(a||this.totalDuration(),b),this.reversed(!0).paused(!1)},e.render=function(a,b,c){},e.invalidate=function(){return this},e.isActive=function(){var a,b=this._timeline,c=this._startTime;return!b||!this._gc&&!this._paused&&b.isActive()&&(a=b.rawTime())>=c&&a<c+this.totalDuration()/this._timeScale},e._enabled=function(a,b){return g||f.wake(),this._gc=!a,this._active=this.isActive(),b!==!0&&(a&&!this.timeline?this._timeline.add(this,this._startTime-this._delay):!a&&this.timeline&&this._timeline._remove(this,!0)),!1},e._kill=function(a,b){return this._enabled(!1,!1)},e.kill=function(a,b){return this._kill(a,b),this},e._uncache=function(a){for(var b=a?this:this.timeline;b;)b._dirty=!0,b=b.timeline;return this},e._swapSelfInParams=function(a){for(var b=a.length,c=a.concat();--b>-1;)"{self}"===a[b]&&(c[b]=this);return c},e.eventCallback=function(a,b,c,d){if("on"===(a||"").substr(0,2)){var e=this.vars;if(1===arguments.length)return e[a];null==b?delete e[a]:(e[a]=b,e[a+"Params"]=m(c)&&-1!==c.join("").indexOf("{self}")?this._swapSelfInParams(c):c,e[a+"Scope"]=d),"onUpdate"===a&&(this._onUpdate=b)}return this},e.delay=function(a){return arguments.length?(this._timeline.smoothChildTiming&&this.startTime(this._startTime+a-this._delay),this._delay=a,this):this._delay},e.duration=function(a){return arguments.length?(this._duration=this._totalDuration=a,this._uncache(!0),this._timeline.smoothChildTiming&&this._time>0&&this._time<this._duration&&0!==a&&this.totalTime(this._totalTime*(a/this._duration),!0),this):(this._dirty=!1,this._duration)},e.totalDuration=function(a){return this._dirty=!1,arguments.length?this.duration(a):this._totalDuration},e.time=function(a,b){return arguments.length?(this._dirty&&this.totalDuration(),this.totalTime(a>this._duration?this._duration:a,b)):this._time},e.totalTime=function(a,b,c){if(g||f.wake(),!arguments.length)return this._totalTime;if(this._timeline){if(0>a&&!c&&(a+=this.totalDuration()),this._timeline.smoothChildTiming){this._dirty&&this.totalDuration();var d=this._totalDuration,e=this._timeline;if(a>d&&!c&&(a=d),this._startTime=(this._paused?this._pauseTime:e._time)-(this._reversed?d-a:a)/this._timeScale,e._dirty||this._uncache(!1),e._timeline)for(;e._timeline;)e._timeline._time!==(e._startTime+e._totalTime)/e._timeScale&&e.totalTime(e._totalTime,!0),e=e._timeline}this._gc&&this._enabled(!0,!1),(this._totalTime!==a||0===this._duration)&&(this.render(a,b,!1),H.length&&R())}return this},e.progress=e.totalProgress=function(a,b){return arguments.length?this.totalTime(this.duration()*a,b):this._time/this.duration()},e.startTime=function(a){return arguments.length?(a!==this._startTime&&(this._startTime=a,\r
-this.timeline&&this.timeline._sortChildren&&this.timeline.add(this,a-this._delay)),this):this._startTime},e.timeScale=function(a){if(!arguments.length)return this._timeScale;if(a=a||j,this._timeline&&this._timeline.smoothChildTiming){var b=this._pauseTime,c=b||0===b?b:this._timeline.totalTime();this._startTime=c-(c-this._startTime)*this._timeScale/a}return this._timeScale=a,this._uncache(!1)},e.reversed=function(a){return arguments.length?(a!=this._reversed&&(this._reversed=a,this.totalTime(this._timeline&&!this._timeline.smoothChildTiming?this.totalDuration()-this._totalTime:this._totalTime,!0)),this):this._reversed},e.paused=function(a){if(!arguments.length)return this._paused;if(a!=this._paused&&this._timeline){g||a||f.wake();var b=this._timeline,c=b.rawTime(),d=c-this._pauseTime;!a&&b.smoothChildTiming&&(this._startTime+=d,this._uncache(!1)),this._pauseTime=a?c:null,this._paused=a,this._active=this.isActive(),!a&&0!==d&&this._initted&&this.duration()&&this.render(b.smoothChildTiming?this._totalTime:(c-this._startTime)/this._timeScale,!0,!0)}return this._gc&&!a&&this._enabled(!0,!1),this};var D=q("core.SimpleTimeline",function(a){B.call(this,0,a),this.autoRemoveChildren=this.smoothChildTiming=!0});e=D.prototype=new B,e.constructor=D,e.kill()._gc=!1,e._first=e._last=null,e._sortChildren=!1,e.add=e.insert=function(a,b,c,d){var e,f;if(a._startTime=Number(b||0)+a._delay,a._paused&&this!==a._timeline&&(a._pauseTime=a._startTime+(this.rawTime()-a._startTime)/a._timeScale),a.timeline&&a.timeline._remove(a,!0),a.timeline=a._timeline=this,a._gc&&a._enabled(!0,!0),e=this._last,this._sortChildren)for(f=a._startTime;e&&e._startTime>f;)e=e._prev;return e?(a._next=e._next,e._next=a):(a._next=this._first,this._first=a),a._next?a._next._prev=a:this._last=a,a._prev=e,this._timeline&&this._uncache(!0),this},e._remove=function(a,b){return a.timeline===this&&(b||a._enabled(!1,!0),a.timeline=null,a._prev?a._prev._next=a._next:this._first===a&&(this._first=a._next),a._next?a._next._prev=a._prev:this._last===a&&(this._last=a._prev),this._timeline&&this._uncache(!0)),this},e.render=function(a,b,c){var d,e=this._first;for(this._totalTime=this._time=this._rawPrevTime=a;e;)d=e._next,(e._active||a>=e._startTime&&!e._paused)&&(e._reversed?e.render((e._dirty?e.totalDuration():e._totalDuration)-(a-e._startTime)*e._timeScale,b,c):e.render((a-e._startTime)*e._timeScale,b,c)),e=d},e.rawTime=function(){return g||f.wake(),this._totalTime};var E=q("TweenLite",function(b,c,d){if(B.call(this,c,d),this.render=E.prototype.render,null==b)throw"Cannot tween a null target.";this.target=b="string"!=typeof b?b:E.selector(b)||b;var e,f,g,h=b.jquery||b.length&&b!==a&&b[0]&&(b[0]===a||b[0].nodeType&&b[0].style&&!b.nodeType),i=this.vars.overwrite;if(this._overwrite=i=null==i?O[E.defaultOverwrite]:"number"==typeof i?i>>0:O[i],(h||b instanceof Array||b.push&&m(b))&&"number"!=typeof b[0])for(this._targets=g=k.call(b,0),this._propLookup=[],this._siblings=[],e=0;e<g.length;e++)f=g[e],f?"string"!=typeof f?f.length&&f!==a&&f[0]&&(f[0]===a||f[0].nodeType&&f[0].style&&!f.nodeType)?(g.splice(e--,1),this._targets=g=g.concat(k.call(f,0))):(this._siblings[e]=S(f,this,!1),1===i&&this._siblings[e].length>1&&T(f,this,null,1,this._siblings[e])):(f=g[e--]=E.selector(f),"string"==typeof f&&g.splice(e+1,1)):g.splice(e--,1);else this._propLookup={},this._siblings=S(b,this,!1),1===i&&this._siblings.length>1&&T(b,this,null,1,this._siblings);(this.vars.immediateRender||0===c&&0===this._delay&&this.vars.immediateRender!==!1)&&(this._time=-j,this.render(-this._delay))},!0),F=function(b){return b.length&&b!==a&&b[0]&&(b[0]===a||b[0].nodeType&&b[0].style&&!b.nodeType)},G=function(a,b){var c,d={};for(c in a)N[c]||c in b&&"transform"!==c&&"x"!==c&&"y"!==c&&"width"!==c&&"height"!==c&&"className"!==c&&"border"!==c||!(!K[c]||K[c]&&K[c]._autoCSS)||(d[c]=a[c],delete a[c]);a.css=d};e=E.prototype=new B,e.constructor=E,e.kill()._gc=!1,e.ratio=0,e._firstPT=e._targets=e._overwrittenProps=e._startAt=null,e._notifyPluginsOfEnabled=e._lazy=!1,E.version="1.12.1",E.defaultEase=e._ease=new t(null,null,1,1),E.defaultOverwrite="auto",E.ticker=f,E.autoSleep=!0,E.lagSmoothing=function(a,b){f.lagSmoothing(a,b)},E.selector=a.$||a.jQuery||function(b){return a.$?(E.selector=a.$,a.$(b)):a.document?a.document.getElementById("#"===b.charAt(0)?b.substr(1):b):b};var H=[],I={},J=E._internals={isArray:m,isSelector:F,lazyTweens:H},K=E._plugins={},L=J.tweenLookup={},M=0,N=J.reservedProps={ease:1,delay:1,overwrite:1,onComplete:1,onCompleteParams:1,onCompleteScope:1,useFrames:1,runBackwards:1,startAt:1,onUpdate:1,onUpdateParams:1,onUpdateScope:1,onStart:1,onStartParams:1,onStartScope:1,onReverseComplete:1,onReverseCompleteParams:1,onReverseCompleteScope:1,onRepeat:1,onRepeatParams:1,onRepeatScope:1,easeParams:1,yoyo:1,immediateRender:1,repeat:1,repeatDelay:1,data:1,paused:1,reversed:1,autoCSS:1,lazy:1},O={none:0,all:1,auto:2,concurrent:3,allOnStart:4,preexisting:5,"true":1,"false":0},P=B._rootFramesTimeline=new D,Q=B._rootTimeline=new D,R=function(){var a=H.length;for(I={};--a>-1;)c=H[a],c&&c._lazy!==!1&&(c.render(c._lazy,!1,!0),c._lazy=!1);H.length=0};Q._startTime=f.time,P._startTime=f.frame,Q._active=P._active=!0,setTimeout(R,1),B._updateRoot=E.render=function(){var a,b,c;if(H.length&&R(),Q.render((f.time-Q._startTime)*Q._timeScale,!1,!1),P.render((f.frame-P._startTime)*P._timeScale,!1,!1),H.length&&R(),!(f.frame%120)){for(c in L){for(b=L[c].tweens,a=b.length;--a>-1;)b[a]._gc&&b.splice(a,1);0===b.length&&delete L[c]}if(c=Q._first,(!c||c._paused)&&E.autoSleep&&!P._first&&1===f._listeners.tick.length){for(;c&&c._paused;)c=c._next;c||f.sleep()}}},f.addEventListener("tick",B._updateRoot);var S=function(a,b,c){var d,e,f=a._gsTweenID;if(L[f||(a._gsTweenID=f="t"+M++)]||(L[f]={target:a,tweens:[]}),b&&(d=L[f].tweens,d[e=d.length]=b,c))for(;--e>-1;)d[e]===b&&d.splice(e,1);return L[f].tweens},T=function(a,b,c,d,e){var f,g,h,i;if(1===d||d>=4){for(i=e.length,f=0;i>f;f++)if((h=e[f])!==b)h._gc||h._enabled(!1,!1)&&(g=!0);else if(5===d)break;return g}var k,l=b._startTime+j,m=[],n=0,o=0===b._duration;for(f=e.length;--f>-1;)(h=e[f])===b||h._gc||h._paused||(h._timeline!==b._timeline?(k=k||U(b,0,o),0===U(h,k,o)&&(m[n++]=h)):h._startTime<=l&&h._startTime+h.totalDuration()/h._timeScale>l&&((o||!h._initted)&&l-h._startTime<=2e-10||(m[n++]=h)));for(f=n;--f>-1;)h=m[f],2===d&&h._kill(c,a)&&(g=!0),(2!==d||!h._firstPT&&h._initted)&&h._enabled(!1,!1)&&(g=!0);return g},U=function(a,b,c){for(var d=a._timeline,e=d._timeScale,f=a._startTime;d._timeline;){if(f+=d._startTime,e*=d._timeScale,d._paused)return-100;d=d._timeline}return f/=e,f>b?f-b:c&&f===b||!a._initted&&2*j>f-b?j:(f+=a.totalDuration()/a._timeScale/e)>b+j?0:f-b-j};e._init=function(){var a,b,c,d,e,f=this.vars,g=this._overwrittenProps,h=this._duration,i=!!f.immediateRender,j=f.ease;if(f.startAt){this._startAt&&(this._startAt.render(-1,!0),this._startAt.kill()),e={};for(d in f.startAt)e[d]=f.startAt[d];if(e.overwrite=!1,e.immediateRender=!0,e.lazy=i&&f.lazy!==!1,e.startAt=e.delay=null,this._startAt=E.to(this.target,0,e),i)if(this._time>0)this._startAt=null;else if(0!==h)return}else if(f.runBackwards&&0!==h)if(this._startAt)this._startAt.render(-1,!0),this._startAt.kill(),this._startAt=null;else{c={};for(d in f)N[d]&&"autoCSS"!==d||(c[d]=f[d]);if(c.overwrite=0,c.data="isFromStart",c.lazy=i&&f.lazy!==!1,c.immediateRender=i,this._startAt=E.to(this.target,0,c),i){if(0===this._time)return}else this._startAt._init(),this._startAt._enabled(!1)}if(j?j instanceof t?this._ease=f.easeParams instanceof Array?j.config.apply(j,f.easeParams):j:this._ease="function"==typeof j?new t(j,f.easeParams):u[j]||E.defaultEase:this._ease=E.defaultEase,this._easeType=this._ease._type,this._easePower=this._ease._power,this._firstPT=null,this._targets)for(a=this._targets.length;--a>-1;)this._initProps(this._targets[a],this._propLookup[a]={},this._siblings[a],g?g[a]:null)&&(b=!0);else b=this._initProps(this.target,this._propLookup,this._siblings,g);if(b&&E._onPluginEvent("_onInitAllProps",this),g&&(this._firstPT||"function"!=typeof this.target&&this._enabled(!1,!1)),f.runBackwards)for(c=this._firstPT;c;)c.s+=c.c,c.c=-c.c,c=c._next;this._onUpdate=f.onUpdate,this._initted=!0},e._initProps=function(b,c,d,e){var f,g,h,i,j,k;if(null==b)return!1;I[b._gsTweenID]&&R(),this.vars.css||b.style&&b!==a&&b.nodeType&&K.css&&this.vars.autoCSS!==!1&&G(this.vars,b);for(f in this.vars){if(k=this.vars[f],N[f])k&&(k instanceof Array||k.push&&m(k))&&-1!==k.join("").indexOf("{self}")&&(this.vars[f]=k=this._swapSelfInParams(k,this));else if(K[f]&&(i=new K[f])._onInitTween(b,this.vars[f],this)){for(this._firstPT=j={_next:this._firstPT,t:i,p:"setRatio",s:0,c:1,f:!0,n:f,pg:!0,pr:i._priority},g=i._overwriteProps.length;--g>-1;)c[i._overwriteProps[g]]=this._firstPT;(i._priority||i._onInitAllProps)&&(h=!0),(i._onDisable||i._onEnable)&&(this._notifyPluginsOfEnabled=!0)}else this._firstPT=c[f]=j={_next:this._firstPT,t:b,p:f,f:"function"==typeof b[f],n:f,pg:!1,pr:0},j.s=j.f?b[f.indexOf("set")||"function"!=typeof b["get"+f.substr(3)]?f:"get"+f.substr(3)]():parseFloat(b[f]),j.c="string"==typeof k&&"="===k.charAt(1)?parseInt(k.charAt(0)+"1",10)*Number(k.substr(2)):Number(k)-j.s||0;j&&j._next&&(j._next._prev=j)}return e&&this._kill(e,b)?this._initProps(b,c,d,e):this._overwrite>1&&this._firstPT&&d.length>1&&T(b,this,c,this._overwrite,d)?(this._kill(c,b),this._initProps(b,c,d,e)):(this._firstPT&&(this.vars.lazy!==!1&&this._duration||this.vars.lazy&&!this._duration)&&(I[b._gsTweenID]=!0),h)},e.render=function(a,b,c){var d,e,f,g,h=this._time,i=this._duration,k=this._rawPrevTime;if(a>=i)this._totalTime=this._time=i,this.ratio=this._ease._calcEnd?this._ease.getRatio(1):1,this._reversed||(d=!0,e="onComplete"),0===i&&(this._initted||!this.vars.lazy||c)&&(this._startTime===this._timeline._duration&&(a=0),(0===a||0>k||k===j)&&k!==a&&(c=!0,k>j&&(e="onReverseComplete")),this._rawPrevTime=g=!b||a||k===a?a:j);else if(1e-7>a)this._totalTime=this._time=0,this.ratio=this._ease._calcEnd?this._ease.getRatio(0):0,(0!==h||0===i&&k>0&&k!==j)&&(e="onReverseComplete",d=this._reversed),0>a?(this._active=!1,0===i&&(this._initted||!this.vars.lazy||c)&&(k>=0&&(c=!0),this._rawPrevTime=g=!b||a||k===a?a:j)):this._initted||(c=!0);else if(this._totalTime=this._time=a,this._easeType){var l=a/i,m=this._easeType,n=this._easePower;(1===m||3===m&&l>=.5)&&(l=1-l),3===m&&(l*=2),1===n?l*=l:2===n?l*=l*l:3===n?l*=l*l*l:4===n&&(l*=l*l*l*l),1===m?this.ratio=1-l:2===m?this.ratio=l:.5>a/i?this.ratio=l/2:this.ratio=1-l/2}else this.ratio=this._ease.getRatio(a/i);if(this._time!==h||c){if(!this._initted){if(this._init(),!this._initted||this._gc)return;if(!c&&this._firstPT&&(this.vars.lazy!==!1&&this._duration||this.vars.lazy&&!this._duration))return this._time=this._totalTime=h,this._rawPrevTime=k,H.push(this),void(this._lazy=a);this._time&&!d?this.ratio=this._ease.getRatio(this._time/i):d&&this._ease._calcEnd&&(this.ratio=this._ease.getRatio(0===this._time?0:1))}for(this._lazy!==!1&&(this._lazy=!1),this._active||!this._paused&&this._time!==h&&a>=0&&(this._active=!0),0===h&&(this._startAt&&(a>=0?this._startAt.render(a,b,c):e||(e="_dummyGS")),this.vars.onStart&&(0!==this._time||0===i)&&(b||this.vars.onStart.apply(this.vars.onStartScope||this,this.vars.onStartParams||s))),f=this._firstPT;f;)f.f?f.t[f.p](f.c*this.ratio+f.s):f.t[f.p]=f.c*this.ratio+f.s,f=f._next;this._onUpdate&&(0>a&&this._startAt&&this._startTime&&this._startAt.render(a,b,c),b||(this._time!==h||d)&&this._onUpdate.apply(this.vars.onUpdateScope||this,this.vars.onUpdateParams||s)),e&&(this._gc||(0>a&&this._startAt&&!this._onUpdate&&this._startTime&&this._startAt.render(a,b,c),d&&(this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!b&&this.vars[e]&&this.vars[e].apply(this.vars[e+"Scope"]||this,this.vars[e+"Params"]||s),0===i&&this._rawPrevTime===j&&g!==j&&(this._rawPrevTime=0)))}},e._kill=function(a,b){if("all"===a&&(a=null),null==a&&(null==b||b===this.target))return this._lazy=!1,this._enabled(!1,!1);b="string"!=typeof b?b||this._targets||this.target:E.selector(b)||b;var c,d,e,f,g,h,i,j;if((m(b)||F(b))&&"number"!=typeof b[0])for(c=b.length;--c>-1;)this._kill(a,b[c])&&(h=!0);else{if(this._targets){for(c=this._targets.length;--c>-1;)if(b===this._targets[c]){g=this._propLookup[c]||{},this._overwrittenProps=this._overwrittenProps||[],d=this._overwrittenProps[c]=a?this._overwrittenProps[c]||{}:"all";break}}else{if(b!==this.target)return!1;g=this._propLookup,d=this._overwrittenProps=a?this._overwrittenProps||{}:"all"}if(g){i=a||g,j=a!==d&&"all"!==d&&a!==g&&("object"!=typeof a||!a._tempKill);for(e in i)(f=g[e])&&(f.pg&&f.t._kill(i)&&(h=!0),f.pg&&0!==f.t._overwriteProps.length||(f._prev?f._prev._next=f._next:f===this._firstPT&&(this._firstPT=f._next),f._next&&(f._next._prev=f._prev),f._next=f._prev=null),delete g[e]),j&&(d[e]=1);!this._firstPT&&this._initted&&this._enabled(!1,!1)}}return h},e.invalidate=function(){return this._notifyPluginsOfEnabled&&E._onPluginEvent("_onDisable",this),this._firstPT=null,this._overwrittenProps=null,this._onUpdate=null,this._startAt=null,this._initted=this._active=this._notifyPluginsOfEnabled=this._lazy=!1,this._propLookup=this._targets?{}:[],this},e._enabled=function(a,b){if(g||f.wake(),a&&this._gc){var c,d=this._targets;if(d)for(c=d.length;--c>-1;)this._siblings[c]=S(d[c],this,!0);else this._siblings=S(this.target,this,!0)}return B.prototype._enabled.call(this,a,b),this._notifyPluginsOfEnabled&&this._firstPT?E._onPluginEvent(a?"_onEnable":"_onDisable",this):!1},E.to=function(a,b,c){return new E(a,b,c)},E.from=function(a,b,c){return c.runBackwards=!0,c.immediateRender=0!=c.immediateRender,new E(a,b,c)},E.fromTo=function(a,b,c,d){return d.startAt=c,d.immediateRender=0!=d.immediateRender&&0!=c.immediateRender,new E(a,b,d)},E.delayedCall=function(a,b,c,d,e){return new E(b,0,{delay:a,onComplete:b,onCompleteParams:c,onCompleteScope:d,onReverseComplete:b,onReverseCompleteParams:c,onReverseCompleteScope:d,immediateRender:!1,useFrames:e,overwrite:0})},E.set=function(a,b){return new E(a,0,b)},E.getTweensOf=function(a,b){if(null==a)return[];a="string"!=typeof a?a:E.selector(a)||a;var c,d,e,f;if((m(a)||F(a))&&"number"!=typeof a[0]){for(c=a.length,d=[];--c>-1;)d=d.concat(E.getTweensOf(a[c],b));for(c=d.length;--c>-1;)for(f=d[c],e=c;--e>-1;)f===d[e]&&d.splice(c,1)}else for(d=S(a).concat(),c=d.length;--c>-1;)(d[c]._gc||b&&!d[c].isActive())&&d.splice(c,1);return d},E.killTweensOf=E.killDelayedCallsTo=function(a,b,c){"object"==typeof b&&(c=b,b=!1);for(var d=E.getTweensOf(a,b),e=d.length;--e>-1;)d[e]._kill(c,a)};var V=q("plugins.TweenPlugin",function(a,b){this._overwriteProps=(a||"").split(","),this._propName=this._overwriteProps[0],this._priority=b||0,this._super=V.prototype},!0);if(e=V.prototype,V.version="1.10.1",V.API=2,e._firstPT=null,e._addTween=function(a,b,c,d,e,f){var g,h;return null!=d&&(g="number"==typeof d||"="!==d.charAt(1)?Number(d)-c:parseInt(d.charAt(0)+"1",10)*Number(d.substr(2)))?(this._firstPT=h={_next:this._firstPT,t:a,p:b,s:c,c:g,f:"function"==typeof a[b],n:e||b,r:f},h._next&&(h._next._prev=h),h):void 0},e.setRatio=function(a){for(var b,c=this._firstPT,d=1e-6;c;)b=c.c*a+c.s,c.r?b=Math.round(b):d>b&&b>-d&&(b=0),c.f?c.t[c.p](b):c.t[c.p]=b,c=c._next},e._kill=function(a){var b,c=this._overwriteProps,d=this._firstPT;if(null!=a[this._propName])this._overwriteProps=[];else for(b=c.length;--b>-1;)null!=a[c[b]]&&c.splice(b,1);for(;d;)null!=a[d.n]&&(d._next&&(d._next._prev=d._prev),d._prev?(d._prev._next=d._next,d._prev=null):this._firstPT===d&&(this._firstPT=d._next)),d=d._next;return!1},e._roundProps=function(a,b){for(var c=this._firstPT;c;)(a[this._propName]||null!=c.n&&a[c.n.split(this._propName+"_").join("")])&&(c.r=b),c=c._next},E._onPluginEvent=function(a,b){var c,d,e,f,g,h=b._firstPT;if("_onInitAllProps"===a){for(;h;){for(g=h._next,d=e;d&&d.pr>h.pr;)d=d._next;(h._prev=d?d._prev:f)?h._prev._next=h:e=h,(h._next=d)?d._prev=h:f=h,h=g}h=b._firstPT=e}for(;h;)h.pg&&"function"==typeof h.t[a]&&h.t[a]()&&(c=!0),h=h._next;return c},V.activate=function(a){for(var b=a.length;--b>-1;)a[b].API===V.API&&(K[(new a[b])._propName]=a[b]);return!0},p.plugin=function(a){if(!(a&&a.propName&&a.init&&a.API))throw"illegal plugin definition.";var b,c=a.propName,d=a.priority||0,e=a.overwriteProps,f={init:"_onInitTween",set:"setRatio",kill:"_kill",round:"_roundProps",initAll:"_onInitAllProps"},g=q("plugins."+c.charAt(0).toUpperCase()+c.substr(1)+"Plugin",function(){V.call(this,c,d),this._overwriteProps=e||[]},a.global===!0),h=g.prototype=new V(c);h.constructor=g,g.API=a.API;for(b in f)"function"==typeof a[b]&&(h[f[b]]=a[b]);return g.version=a.version,V.activate([g]),g},c=a._gsQueue){for(d=0;d<c.length;d++)c[d]();for(e in n)!n[e].func}g=!1}}(window),angular.module("att.abs.transition",[]).factory("$transition",["$q","$timeout","$rootScope",function(a,b,c){function d(a){for(var b in a)if(void 0!==f.style[b])return a[b]}var e=function(d,f,g){g=g||{};var h=a.defer(),i=e[g.animation?"animationEndEventName":"transitionEndEventName"],j=function(){c.$apply(function(){d.unbind(i,j),h.resolve(d)})};return i&&d.bind(i,j),b(function(){angular.isString(f)?d.addClass(f):angular.isFunction(f)?f(d):angular.isObject(f)&&d.css(f),i||h.resolve(d)},100),h.promise.cancel=function(){i&&d.unbind(i,j),h.reject("Transition cancelled")},h.promise},f=document.createElement("trans"),g={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"},h={WebkitTransition:"webkitAnimationEnd",MozTransition:"animationend",OTransition:"oAnimationEnd",transition:"animationend"};return e.transitionEndEventName=d(g),e.animationEndEventName=d(h),e}]).factory("$scrollTo",["$window",function(a){var b=function(b,c,d){TweenMax.to(a,d||1,{scrollTo:{y:c,x:b},ease:Power4.easeOut})};return b}]).factory("animation",function(){return TweenMax}).factory("$progressBar",function(){var a=function(a){var b=function(b,c){TweenMax.to({},c,{onUpdateParams:["{self}"],onUpdate:a,onComplete:b})};return function(){return b}()};return a}).factory("$height",function(){var a=function(a,b,c,d){TweenMax.to(a,b,{height:c,autoAlpha:d},0)};return a}),angular.module("att.abs.accordion",["att.abs.utilities","att.abs.position","att.abs.transition"]).constant("accordionConfig",{closeOthers:!1}).controller("AccordionController",["$scope","$attrs","accordionConfig","$log",function(a,b,c,d){this.groups=[],this.index=-1,this.scope=a,a.forceExpand=!1,this.closeOthers=function(d){var e=angular.isDefined(b.closeOthers)?a.$eval(b.closeOthers):c.closeOthers;e&&!a.forceExpand&&angular.forEach(this.groups,function(a){a!==d&&(a.isOpen=!1)}),this.groups.indexOf(d)===this.groups.length-1&&a.forceExpand&&(a.forceExpand=!1)},this.expandAll=function(){a.forceExpand=!0,angular.forEach(this.groups,function(a){a.isOpen=!0})},this.collapseAll=function(){angular.forEach(this.groups,function(a){a.isOpen=!1})},this.focus=function(a){var b=this;angular.forEach(this.groups,function(c,d){c!==a?c.focused=!1:(b.index=d,c.focused=!0)})},this.blur=function(a){a.focused=!1,this.index=-1,d.log("accordion.blur()",a)},this.cycle=function(b,c,d){if(c)if(this.index===this.groups.length-1){if(d)return this.index=0,b.focused=!1,void a.$apply();this.index=0}else this.index++;else this.index<=0&&!d?this.index=this.groups.length-1:this.index--;b.focused=!1,this.groups[this.index].setFocus=!0,this.groups[this.index].focused=!0,a.$apply()},this.addGroup=function(a){var b=this;a.index=this.groups.length,a.focused=!1,this.groups.push(a),this.groups.length>0&&(this.index=0),a.$on("$destroy",function(){b.removeGroup(a)})},this.removeGroup=function(a){var b=this.groups.indexOf(a);-1!==b&&this.groups.splice(this.groups.indexOf(a),1)}}]).directive("accordion",function(){return{restrict:"EA",controller:"AccordionController",transclude:!0,replace:!1,scope:{cClass:"@css",expandAll:"=?",collapseAll:"=?"},template:'<div class="{{cClass}}" ng-transclude></div>',link:function(a,b,c,d){a.$watch("expandAll",function(b){b&&(d.expandAll(),a.expandAll=!1)}),a.$watch("collapseAll",function(b){b&&(d.collapseAll(),a.collapseAll=!1)})}}}).directive("accordionGroup",[function(){return{require:["^accordion","accordionGroup"],restrict:"EA",transclude:!0,replace:!0,templateUrl:"app/scripts/ng_js_att_tpls/accordion/accordion.html",scope:{heading:"@",isOpen:"=?"},controller:["$scope",function(a){a.showicon=!0,this.setHeading=function(b){this.heading=b,a.showicon=!1},this.isIsOpen=function(){return a.isOpen}}],link:function(a,b,c,d){var e=d[0],f=d[1],g={tab:9,enter:13,esc:27,space:32,pageup:33,pagedown:34,end:35,home:36,left:37,up:38,right:39,down:40},h=b.children().eq(0);a.setFocus=!1;var i=function(b){var c=!0;switch(b.keyCode){case g.enter:b.preventDefault(),a.toggle(),a.$apply();break;case g.up:case g.left:b.preventDefault(),e.cycle(a,!1);break;case g.down:case g.right:b.preventDefault(),e.cycle(a,!0);break;default:c=!1}return b.stopPropagation(),c};angular.isUndefined(a.isOpen)&&(a.isOpen=!1),h.bind("keydown",i),e.addGroup(a),0===a.index&&(a.focused=!0),f.toggle=a.toggle=function(){return a.isOpen=!a.isOpen,e.focus(a),a.isOpen},a.$watch("isOpen",function(b){b&&e.closeOthers(a)}),a.$watch("focused",function(b){b?(h.attr("tabindex","0"),a.setFocus&&h[0].focus()):(a.setFocus=!1,h.attr("tabindex","-1"))})}}}]).directive("accordionToggle",function(){return{restrict:"EA",require:"^accordionGroup",scope:{expandIcon:"@",collapseIcon:"@"},link:function(a,b,c,d){var e=function(c){a.expandIcon&&a.collapseIcon&&(c?(b.removeClass(a.expandIcon),b.addClass(a.collapseIcon)):(b.removeClass(a.collapseIcon),b.addClass(a.expandIcon)))};b.bind("click",function(){d.toggle(),a.$apply()}),a.$watch(function(){return d.isIsOpen()},function(a){e(a)})}}}).directive("accordionHeading",function(){return{restrict:"EA",transclude:!0,template:"",require:"^accordionGroup",compile:function(a,b,c){var d=function(a,b,d,e){c(a,function(a){b.append(a),e.setHeading(b)})};return d}}}).directive("accordionTransclude",function(){return{require:"^accordionGroup",link:function(a,b,c,d){a.$watch(function(){return d[c.accordionTransclude]},function(a){a&&b.find("span").eq(0).prepend(a)})}}}).directive("attGoTop",["$scrollTo",function(a){return{restrict:"A",transclude:!1,link:function(b,c,d){c.bind("click",function(){a(0,d.attGoTop)})}}}]).directive("attGoTo",["$anchorScroll","$location",function(a,b){return{restrict:"A",transclude:!1,link:function(c,d,e){d.bind("click",function(){var c=e.attGoTo;b.hash()!==c?b.hash(e.attGoTo):a()})}}}]).directive("freeStanding",function(){return{restrict:"EA",transclude:!0,replace:!0,scope:!0,template:"<div><span class='att-accordion__freestanding' ng-show='showAccordion'></span>\n<div class='section-toggle'>\n<button class='section-toggle__button' ng-click='fsToggle()'>\n    {{btnText}}<i style='font-size:0.875rem' ng-class='{\"icon-chevron-up\": showAccordion,\"icon-chevron-down\": !showAccordion, }'></i> \n</button>\n</div></div>",compile:function(a,b,c){var d=function(a,b,d){a.content="",c(a,function(a){b.find("span").append(a)}),a.showAccordion=!1,a.btnText=a.showAccordion?d.hideMsg:d.showMsg,a.fsToggle=function(){a.showAccordion=!a.showAccordion,a.btnText=a.showAccordion?d.hideMsg:d.showMsg}};return d}}}).directive("expanders",function(){return{restrict:"EA",replace:!0,transclude:!0,template:"<div ng-transclude></div>",controller:["$scope",function(a){var b=null;this.setScope=function(a){b=a},this.toggle=function(){return a.isOpen=b.isOpen=!b.isOpen,b.isOpen}}],link:function(a){a.isOpen=!1}}}).directive("expanderHeading",function(){return{require:"^expanders",restrict:"EA",replace:!0,transclude:!0,scope:!0,template:"<div style='padding:10px !important' ng-transclude></div>"}}).directive("expanderBody",function(){return{restrict:"EA",require:"^expanders",replace:!0,transclude:!0,scope:{},template:"<div collapse='!isOpen'><div ng-transclude></div></div>",link:function(a,b,c,d){a.isOpen=!1,d.setScope(a)}}}).directive("expanderToggle",function(){return{restrict:"EA",require:"^expanders",scope:{expandIcon:"@",collapseIcon:"@"},link:function(a,b,c,d){var e=!1,f=function(){a.expandIcon&&a.collapseIcon&&(e?(b.removeClass(a.expandIcon),b.addClass(a.collapseIcon)):(b.removeClass(a.collapseIcon),b.addClass(a.expandIcon)))};b.bind("keydown",function(b){13===b.keyCode&&a.toggleit()}),b.bind("click",function(){a.toggleit()}),a.toggleit=function(){e=d.toggle(),f(),a.$apply()},f()}}}).directive("collapse",["$transition",function(a){var b={open:{marginTop:null,marginBottom:null,paddingTop:null,paddingBottom:null,display:"block"},closed:{marginTop:0,marginBottom:0,paddingTop:0,paddingBottom:0,display:"none"}},c=function(a,c,d){c.removeClass("collapse"),c.css({height:d}),0===d?c.css(b.closed):c.css(b.open),c.addClass("collapse")};return{link:function(d,e,f){var g,h=!0;d.$watch(function(){return e[0].scrollHeight},function(){0===e[0].scrollHeight||g||(h?c(d,e,e[0].scrollHeight+"px"):c(d,e,"auto"))});var i,j=function(b){return i&&i.cancel(),i=a(e,b),i.then(function(){i=void 0},function(){i=void 0}),i},k=function(){d.postTransition=!0,h?(h=!1,g||c(d,e,"auto")):j(angular.extend({height:e[0].scrollHeight+"px"},b.open)).then(function(){g||c(d,e,"auto")}),g=!1},l=function(){g=!0,h?(h=!1,c(d,e,0)):(c(d,e,e[0].scrollHeight+"px"),j(angular.extend({height:0},b.closed)).then(function(){d.postTransition=!1}))};d.$watch(f.collapse,function(a){a?l():k()})}}}]).directive("attAccord",function(){return{restrict:"EA",transclude:!0,replace:!0,scope:{},controller:"AttAccordCtrl",templateUrl:"app/scripts/ng_js_att_tpls/accordion/attAccordHeader.html"}}).controller("AttAccordCtrl",[function(){this.type="attAccord",this.headerCtrl,this.bodyCtrl;var a=!0;this.toggleBody=function(){a?this.expandBody():this.collapseBody(),a=!a},this.expandBody=function(){this.bodyCtrl.expand()},this.collapseBody=function(){this.bodyCtrl.collapse()}}]).controller("AttAccordHeaderCtrl",[function(){this.type="header"}]).directive("attAccordHeader",["keymap","events",function(a,b){return{restrict:"EA",transclude:!0,replace:!0,require:["^attAccord","attAccordHeader"],controller:"AttAccordHeaderCtrl",templateUrl:"app/scripts/ng_js_att_tpls/accordion/attAccordHeader.html",link:function(b,c,d,e){var f=e[0],g=e[1];f.headerCtrl=g;var h=c.children().eq(0);b.clickFunc=function(){f.toggleBody()};var i=function(c){var d=!0;switch(c.keyCode){case a.KEY.ENTER:c.preventDefault(),b.clickFunc(),b.$apply();break;default:d=!1}return c.stopPropagation(),d};angular.isUndefined(b.isOpen)&&(b.isOpen=!1),h.bind("keydown",i)}}}]).controller("AttAccordBodyCtrl",["$scope",function(a){this.type="body",this.expand=function(){a.expand()},this.collapse=function(){a.collapse()}}]).directive("attAccordBody",["$timeout","$height",function(a,b){return{restrict:"EA",transclude:!0,replace:!0,require:["^attAccord","attAccordBody"],controller:"AttAccordBodyCtrl",templateUrl:"app/scripts/ng_js_att_tpls/accordion/attAccordBody.html",link:function(c,d,e,f){var g=f[0],h=f[1];g.bodyCtrl=h;var i;a(function(){i=d[0].offsetHeight,b(d,0,0,0)}),c.expand=function(){b(d,.05,i,1)},c.collapse=function(){b(d,.25,0,0)}}}}]),angular.module("att.abs.alert",[]).directive("attAlert",[function(){return{restrict:"EA",replace:!0,transclude:!0,scope:{alertType:"@type",showTop:"@topPos",showAlert:"="},templateUrl:"app/scripts/ng_js_att_tpls/alert/alert.html",link:function(a){"true"===a.showTop?a.cssStyle={top:"50px"}:a.cssStyle={top:"0px"},a.close=function(){a.showAlert=!1}}}}]),angular.module("att.abs.boardStrip",["att.abs.utilities"]).constant("BoardStripConfig",{maxVisibleBoards:4,boardsToScroll:1,boardLength:140,boardMargin:15}).directive("attBoard",[function(){return{restrict:"AE",replace:!0,transclude:!0,require:"^attBoardStrip",scope:{boardIndex:"=",boardLabel:"="},templateUrl:"app/scripts/ng_js_att_tpls/boardStrip/attBoard.html",link:function(a,b,c,d){var e=d;a.getCurrentIndex=function(){return e.getCurrentIndex()},a.selectBoard=function(a){isNaN(a)||e.setCurrentIndex(a)},a.isInView=function(a){return e.isInView(a)}}}}]).directive("attBoardStrip",["BoardStripConfig","$timeout","$ieVersion",function(a,b,c){return{restrict:"AE",replace:!0,transclude:!0,scope:{currentIndex:"=selectedIndex",boardsMasterArray:"=",onAddBoard:"&?"},templateUrl:"app/scripts/ng_js_att_tpls/boardStrip/attBoardStrip.html",controller:function(b){if(angular.isDefined(b.boardsMasterArray)||(b.boardsMasterArray=[]),this.rectifyMaxVisibleBoards=function(){this.maxVisibleIndex>=b.boardsMasterArray.length&&(this.maxVisibleIndex=b.boardsMasterArray.length-1),this.maxVisibleIndex<0&&(this.maxVisibleIndex=0)},this.resetBoardStrip=function(){b.currentIndex=0,this.maxVisibleIndex=a.maxVisibleBoards-1,this.minVisibleIndex=0,this.rectifyMaxVisibleBoards()},b.currentIndex>0){var c=b.currentIndex;this.resetBoardStrip(),c>b.boardsMasterArray.length?b.currentIndex=b.boardsMasterArray.length-1:b.currentIndex=c}else this.resetBoardStrip();this.getCurrentIndex=function(){return b.currentIndex},this.setCurrentIndex=function(a){b.currentIndex=a},this.isInView=function(a){return a<=this.maxVisibleIndex&&a>=this.minVisibleIndex},this.getBoardsMasterArrayLength=function(){return b.boardsMasterArray.length}},link:function(d,e,f,g){var h,i=c(),j=1e3;i&&10>i&&(j=0);var k=function(b){return b*(a.boardLength+a.boardMargin)};e[0].querySelector(".board-viewport")&&angular.element(e[0].querySelector(".board-viewport")).css({width:k(a.maxVisibleBoards)+"px"});var l=function(b){return b*(a.boardLength+a.boardMargin)};e[0].querySelector(".boardstrip-container")&&(angular.element(e[0].querySelector(".boardstrip-container")).css({width:l(g.getBoardsMasterArrayLength())+"px"}),angular.element(e[0].querySelector(".boardstrip-container")).css({left:"0px"}));var m=function(){var b;return b=g.getBoardsMasterArrayLength()<=a.maxVisibleBoards?0:g.minVisibleIndex*(a.boardLength+a.boardMargin)*-1},n=function(a,b,c){for(var d=0;d<a.length;d++)angular.element(a[d]).attr("tabindex","-1");for(var d=b;c>=d;d++)angular.element(a[d]).attr("tabindex","0")};d.$watchCollection("boardsMasterArray",function(c,d){c!==d&&(c.length<d.length?(g.resetBoardStrip(),b(function(){var a=e[0].querySelectorAll("[att-board]");if(0!==a.length){var c=angular.element(e[0].querySelector(".boardstrip-container"))[0].style.left,d=m();c!==d+"px"?(angular.element(e[0].querySelector(".boardstrip-container")).css({left:d+"px"}),b.cancel(h),h=b(function(){a[0].focus()},j)):a[0].focus()}else e[0].querySelector("div.boardstrip-item--add").focus();angular.element(e[0].querySelector(".boardstrip-container")).css({width:l(g.getBoardsMasterArrayLength())+"px"})})):(g.maxVisibleIndex=g.getBoardsMasterArrayLength()-1,g.minVisibleIndex=Math.max(g.maxVisibleIndex-a.maxVisibleBoards+1,0),g.setCurrentIndex(g.maxVisibleIndex),b(function(){angular.element(e[0].querySelector(".boardstrip-container")).css({width:l(g.getBoardsMasterArrayLength())+"px"});var a=angular.element(e[0].querySelector(".boardstrip-container"))[0].style.left,c=m(),d=e[0].querySelectorAll("[att-board]");a!==c+"px"?(angular.element(e[0].querySelector(".boardstrip-container")).css({left:c+"px"}),b.cancel(h),h=b(function(){d[d.length-1].focus()},j)):d[d.length-1].focus(),n(d,g.minVisibleIndex,g.maxVisibleIndex)})))}),d.nextBoard=function(){g.maxVisibleIndex+=a.boardsToScroll,g.rectifyMaxVisibleBoards(),g.minVisibleIndex=g.maxVisibleIndex-(a.maxVisibleBoards-1),b.cancel(h),angular.element(e[0].querySelector(".boardstrip-container")).css({left:m()+"px"}),b(function(){var a=e[0].querySelectorAll("[att-board]");if(n(a,g.minVisibleIndex,g.maxVisibleIndex),!d.isNextBoard())try{a[a.length-1].focus()}catch(b){}},j)},d.prevBoard=function(){g.minVisibleIndex-=a.boardsToScroll,g.minVisibleIndex<0&&(g.minVisibleIndex=0),g.maxVisibleIndex=g.minVisibleIndex+a.maxVisibleBoards-1,g.rectifyMaxVisibleBoards(),b.cancel(h),angular.element(e[0].querySelector(".boardstrip-container")).css({left:m()+"px"}),b(function(){var a=e[0].querySelectorAll("[att-board]");if(n(a,g.minVisibleIndex,g.maxVisibleIndex),\r
-0===g.minVisibleIndex)try{e[0].querySelector("div.boardstrip-item--add").focus()}catch(b){}})},d.isPrevBoard=function(){return g.minVisibleIndex>0},d.isNextBoard=function(){return g.getBoardsMasterArrayLength()-1>g.maxVisibleIndex}}}}]).directive("attAddBoard",["BoardStripConfig","$parse","$timeout",function(a,b,c){return{restrict:"AE",replace:!0,require:"^attBoardStrip",scope:{onAddBoard:"&?"},templateUrl:"app/scripts/ng_js_att_tpls/boardStrip/attAddBoard.html",link:function(a,c,d,e){a.addBoard=function(){d.onAddBoard&&(a.onAddBoard=b(a.onAddBoard),a.onAddBoard())}}}}]).directive("attBoardNavigation",["keymap","events",function(a,b){return{restrict:"AE",link:function(c,d){var e=a.KEY.LEFT,f=a.KEY.RIGHT;d.bind("keydown",function(a){switch(a.keyCode||(a.keyCode=a.which),a.keyCode){case f:if(b.preventDefault(a),b.stopPropagation(a),d[0].nextElementSibling&&parseInt(angular.element(d[0].nextElementSibling).attr("tabindex"))>=0)angular.element(d[0])[0].nextElementSibling.focus();else{var c=angular.element(d[0])[0];do{if(!c.nextSibling)break;c=c.nextSibling}while(c&&"LI"!==c.tagName);c.tagName&&"LI"===c.tagName&&parseInt(angular.element(c).attr("tabindex"))>=0&&c.focus()}break;case e:if(b.preventDefault(a),b.stopPropagation(a),d[0].previousElementSibling&&parseInt(angular.element(d[0].previousElementSibling).attr("tabindex"))>=0)angular.element(d[0])[0].previousElementSibling.focus();else{var g=angular.element(d[0])[0];do{if(!g.previousSibling)break;g=g.previousSibling}while(g&&"LI"!==g.tagName);g.tagName&&"LI"===g.tagName&&parseInt(angular.element(c).attr("tabindex"))>=0&&g.focus()}}})}}}]),angular.module("att.abs.breadCrumbs",[]).constant("classConstant",{defaultClass:"breadcrumbs__link",activeClass:"breadcrumbs__link--active"}).directive("attCrumb",["classConstant",function(a){return{restrict:"A",link:function(b,c,d){c.addClass(a.defaultClass),"active"===d.attCrumb&&c.addClass(a.activeClass),c.hasClass("last")||c.after('<i class="breadcrumbs__item"></i>')}}}]),angular.module("att.abs.buttons",["att.abs.position","att.abs.utilities"]).constant("btnConfig",{btnClass:"button",btnPrimaryClass:"button--primary",btnSecondaryClass:"button--secondary",btnDisabledClass:"button--inactive",btnSmallClass:"button--small"}).directive("attButton",["btnConfig",function(a){return{restrict:"A",link:function(b,c,d){c.addClass(a.btnClass),"small"===d.size&&c.addClass(a.btnSmallClass),d.$observe("btnType",function(b){"primary"===b?(c.addClass(a.btnPrimaryClass),c.removeClass(a.btnSecondaryClass),c.removeClass(a.btnDisabledClass),c.removeAttr("disabled")):"secondary"===b?(c.addClass(a.btnSecondaryClass),c.removeClass(a.btnPrimaryClass),c.removeClass(a.btnDisabledClass),c.removeAttr("disabled")):"disabled"===b&&(c.addClass(a.btnDisabledClass),c.removeClass(a.btnPrimaryClass),c.removeClass(a.btnSecondaryClass),c.attr("disabled","disabled"))})}}}]).directive("attButtonLoader",[function(){return{restrict:"A",replace:!1,scope:{size:"@"},template:"<div ng-class=\"{'button--loading': size === 'large','button--loading__small': size === 'small'}\"><i></i><i class=\"second__loader\"></i><i></i></div>",link:function(a,b){b.addClass("button button--inactive")}}}]).directive("attButtonHero",[function(){return{restrict:"A",replace:!1,transclude:!0,scope:{icon:"@"},template:"<div class=\"button--hero__inner\"><span ng-transclude></span> <i ng-class=\"{'icon-arrow-right': icon === 'arrow-right','icon-cart': icon === 'cart'}\"></i></div>",link:function(a,b){b.addClass("button button--hero"),b.attr("tabindex","0")}}}]).directive("attBtnDropdown",["$document","$timeout","$isElement","$documentBind","keymap","events",function(a,b,c,d,e,f){return{restrict:"EA",scope:{type:"@dropdowntype"},replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/buttons/buttonDropdown.html",link:function(g,h){g.isOpen=!1;var i=-1,j=[],k=void 0;b(function(){j=h.find("li"),k=h.find("button")[0]},10);var l=g.toggle=function(a){angular.isUndefined(a)||""===a?g.isOpen=!g.isOpen:g.isOpen=a},m=function(){i+1<j.length&&(i++,j[i].focus())},n=function(){i-1>=0&&(i--,j[i].focus())};h.bind("keydown",function(a){var b=a.keyCode;if(e.isAllowedKey(b)||e.isControl(a)||e.isFunctionKey(a))switch(b){case e.KEY.ENTER:i>0&&(k.focus(),g.$apply());break;case e.KEY.ESC:l(!1),i=-1,k.focus(),g.$apply();break;case e.KEY.DOWN:m(),g.$apply(),f.preventDefault(a),f.stopPropagation(a);break;case e.KEY.UP:n(),g.$apply(),f.preventDefault(a),f.stopPropagation(a)}else b===e.KEY.TAB&&(l(!1),i=-1,g.$apply())});var o=function(b){var d=c(angular.element(b.target),h,a);if(!d){l(!1),i=-1;for(var e=0;e<j.length;e++)angular.element(j[e]).removeClass("selected");k.focus(),g.$apply()}};d.click("isOpen",o,g)}}}]),angular.module("att.abs.checkbox",[]).constant("attCheckboxConfig",{activeClass:"att-checkbox--on",disabledClass:"att-checkbox--disabled"}).directive("checkboxLimit",function(){return{scope:{checkboxLimit:"=",selectLimit:"@?",maxSelected:"&?"},restrict:"A",require:"checkboxLimit",controller:["$scope",function(a){a.limit=!0,this.getMaxLimits=function(){return a.limit},this.setMaxLimits=function(b){a.limit=b},this.maxCheckboxSelected=function(){a.maxSelected()}}],link:function(a,b,c,d){a.$watch("checkboxLimit",function(){var b=0;for(var c in a.checkboxLimit)a.checkboxLimit.hasOwnProperty(c)&&a.checkboxLimit[c]&&(b+=1);b>=parseInt(a.selectLimit)?d.setMaxLimits(!1):d.setMaxLimits(!0)},!0)}}}).directive("attCheckbox",["$compile","attCheckboxConfig",function(a,b){return{scope:{},restrict:"A",require:["ngModel","^?checkboxLimit"],link:function(c,d,e,f){var g=f[0],h=f[1],i=a('<div tabindex="0" role="checkbox" att-accessibility-click="13,32" aria-label="Checkbox" ng-click="updateModel($event)" class="att-checkbox"></div>')(c);d.css({display:"none"}),d.wrap(i),d.parent().append('<div class="att-checkbox__indicator"></div>'),d.parent().attr("title",e.title),d.parent().attr("aria-label",e.title),d.parent().attr("id",e.id),d.removeAttr("id"),g.$render=function(){var a=g.$modelValue?!0:!1;d.parent().toggleClass(b.activeClass,a),d.parent().attr("aria-checked",a)},c.updateModel=function(a){c.disabled||(g.$setViewValue(d.parent().hasClass(b.activeClass)?!1:!0),h&&!h.getMaxLimits()&&g.$modelValue?(h.maxCheckboxSelected(),g.$setViewValue(d.parent().hasClass(b.activeClass)?!0:!1)):g.$render()),a.preventDefault()},e.$observe("disabled",function(a){c.disabled=a||"disabled"===a||"true"===a,d.parent().toggleClass(b.disabledClass,c.disabled),d.parent().attr("tabindex",c.disabled?"-1":"0")})}}}]).directive("checkboxGroup",["$compile",function(a){return{scope:{checkboxGroup:"=",checkboxGroupValue:"=?"},restrict:"A",link:function(b,c,d){b.checkboxState="none",void 0===b.checkboxGroupValue&&(b.checkboxGroupValue="indeterminate"),c.css({display:"none"}),c.wrap(a('<div tabindex="0" role="checkbox" att-accessibility-click="13,32" ng-click="updateModel($event)" class="att-checkbox"></div>')(b)),c.parent().append('<div class="att-checkbox__indicator"></div>'),c.parent().attr("title",d.title),c.parent().attr("aria-label",d.title),b.$watch("checkboxState",function(a){"all"===a?(c.parent().addClass("att-checkbox--on"),c.parent().removeClass("att-checkbox--indeterminate"),c.parent().attr("aria-checked",!0)):"none"===a?(c.parent().removeClass("att-checkbox--on"),c.parent().removeClass("att-checkbox--indeterminate"),c.parent().attr("aria-checked",!1)):"indeterminate"===a&&(c.parent().removeClass("att-checkbox--on"),c.parent().addClass("att-checkbox--indeterminate"),c.parent().attr("aria-checked",!0))}),b.updateModel=function(a){if(c.parent().hasClass("att-checkbox--on")){c.parent().removeClass("att-checkbox--on");for(var d in b.checkboxGroup)b.checkboxGroup.hasOwnProperty(d)&&(b.checkboxGroup[d]=!1)}else{c.parent().addClass("att-checkbox--on");for(var e in b.checkboxGroup)b.checkboxGroup.hasOwnProperty(e)&&(b.checkboxGroup[e]=!0)}a.preventDefault()},b.$watch("checkboxGroupValue",function(a){if(a===!1){c.parent().removeClass("att-checkbox--on");for(var d in b.checkboxGroup)b.checkboxGroup.hasOwnProperty(d)&&(b.checkboxGroup[d]=!1)}else if(a===!0){c.parent().addClass("att-checkbox--on");for(var e in b.checkboxGroup)b.checkboxGroup.hasOwnProperty(e)&&(b.checkboxGroup[e]=!0)}}),b.$watch("checkboxGroup",function(){var a=0,c=0,d=0;for(var e in b.checkboxGroup)b.checkboxGroup.hasOwnProperty(e)&&(d+=1,b.checkboxGroup[e]?a+=1:b.checkboxGroup[e]||(c+=1));d===a?(b.checkboxState="all",b.checkboxGroupValue=!0):d===c?(b.checkboxState="none",b.checkboxGroupValue=!1):(b.checkboxState="indeterminate",b.checkboxGroupValue="indeterminate")},!0)}}}]),angular.module("att.abs.colorselector",[]).directive("colorSelectorWrapper",[function(){return{scope:{selected:"=",iconColor:"@"},restrict:"AE",transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/colorselector/colorselector.html",link:function(a){a.applycolor={"background-color":a.iconColor},a.selectedcolor=function(b){a.selected=b}}}}]).directive("colorSelector",["$compile",function(a){return{restrict:"A",scope:{colorSelector:"@",ngModel:"="},link:function(b,c,d){c.removeAttr("color-selector");var e=d.title,f=angular.element('<color-selector-wrapper selected="ngModel" title="'+e+'" icon-color="{{colorSelector}}">'+c.prop("outerHTML")+"</color-selector-wrapper>"),g=a(f)(b);c.replaceWith(g)}}}]),angular.module("att.abs.datepicker",["att.abs.position","att.abs.utilities"]).constant("datepickerConfig",{dateFormat:"MM/dd/yyyy",dayFormat:"d",monthFormat:"MMMM",yearFormat:"yyyy",dayHeaderFormat:"EEEE",dayTitleFormat:"MMMM yyyy",disableWeekend:!1,disableSunday:!1,startingDay:0,minDate:null,maxDate:null,mode:0,dateFilter:{defaultText:"Select from list"},datepickerEvalAttributes:["dateFormat","dayFormat","monthFormat","yearFormat","dayHeaderFormat","dayTitleFormat","disableWeekend","disableSunday","startingDay","mode"],datepickerWatchAttributes:["min","max"]}).factory("datepickerService",["datepickerConfig","dateFilter",function(a,b){var c=function(b,c){if(angular.isDefined(b)&&null!==b&&angular.isDefined(c)&&null!==c){var d=a.datepickerEvalAttributes.concat(a.datepickerWatchAttributes);for(var e in b){var f=b[e];-1!==d.indexOf(e)&&angular.isDefined(f)&&c.attr(e.toSnakeCase(),e)}}},d=function(b,c){if(angular.isDefined(b)&&null!==b&&angular.isDefined(c)&&null!==c){var d=function(a,b){c[a]=c.$parent.$eval(b)},e=function(a,b){c.$parent.$watch(b,function(b){c[a]=b}),c.$watch(a,function(a){c.$parent[b]=a})},f=a.datepickerEvalAttributes,g=a.datepickerWatchAttributes;for(var h in b){var i=b[h];-1!==f.indexOf(h)&&angular.isDefined(i)?d(h,i):-1!==g.indexOf(h)&&angular.isDefined(i)&&e(h,i)}}},e=function(a,c){if(a&&c){var d;-1!==c.indexOf("/")?d="/":-1!==c.indexOf("-")?d="-":-1!==c.indexOf(".")&&(d=".");var e=a.split(d),f=c.split(d);if(e.length!==f.length)return!1;for(var g=0;g<e.length;g++)e[g]=e[g].lPad(f[g].length,"0");var h=e.join(d),i=b(new Date(h),c);return h===i}};return{setAttributes:c,bindScope:d,validateDateString:e}}]).controller("DatepickerController",["$scope","$attrs","dateFilter","datepickerConfig",function(a,b,c,d){function e(b,c){return angular.isDefined(b)?a.$parent.$eval(b):c}function f(a,b){return new Date(a,b,0).getDate()}function g(a,b){for(var c=[],d=a,e=0;b>e;)c[e++]=new Date(d),d.setDate(d.getDate()+1);return c}function h(b){return b&&angular.isDate(a.currentDate)&&0===u(b,a.currentDate)?!0:!1}function i(b){return b&&angular.isDate(a.fromDate)&&0===u(b,a.fromDate)?!0:!1}function j(b){return b&&angular.isDate(a.fromDate)&&angular.isDate(a.currentDate)&&0===u(b,a.currentDate)?!0:!1}function k(b){return b&&angular.isDate(a.fromDate)&&angular.isDate(a.currentDate)&&u(b,a.fromDate)>=0&&u(b,a.currentDate)<=0?!0:!1}function l(a){return"Saturday"===c(a,s.dayHeader)||"Sunday"===c(a,s.dayHeader)?!0:!1}function m(b){return 0===u(b,a.resetTime(new Date))?!0:!1}function n(b){return b&&angular.isDate(a.focusedDate)&&0===u(b,a.focusedDate)?!0:!1}function o(b,c){return a.minDate&&a.minDate.getTime()>=b.getTime()&&a.minDate.getTime()<=c.getTime()}function p(b,c){return a.maxDate&&a.maxDate.getTime()>=b.getTime()&&a.maxDate.getTime()<=c.getTime()}function q(a){if(a){var b={pre:a.substr(0,3),post:a};return b}}function r(a){return{date:a.date,label:c(a.date,a.formatDay),header:c(a.date,a.formatHeader),focused:!!a.isFocused,selected:!!a.isSelected,from:!!a.isFromDate,to:!!a.isToDate,dateRange:!!a.isDateRange,oldMonth:!!a.oldMonth,nextMonth:!!a.newMonth,disabled:!!a.isDisabled,today:!!a.isToday,weekend:!!a.isWeakend}}var s={date:e(b.dateFormat,d.dateFormat),day:e(b.dayFormat,d.dayFormat),month:e(b.monthFormat,d.monthFormat),year:e(b.yearFormat,d.yearFormat),dayHeader:e(b.dayHeaderFormat,d.dayHeaderFormat),dayTitle:e(b.dayTitleFormat,d.dayTitleFormat),disableWeekend:e(b.disableWeekend,d.disableWeekend),disableSunday:e(b.disableSunday,d.disableSunday)},t=e(b.startingDay,d.startingDay);a.mode=e(b.mode,d.mode),a.minDate=d.minDate?a.resetTime(d.minDate):null,a.maxDate=d.maxDate?a.resetTime(d.maxDate):null;var u=this.compare=function(a,b){return new Date(a.getFullYear(),a.getMonth(),a.getDate())-new Date(b.getFullYear(),b.getMonth(),b.getDate())},v=this.isDisabled=function(b){return s.disableWeekend!==!0||"Saturday"!==c(b,s.dayHeader)&&"Sunday"!==c(b,s.dayHeader)?s.disableSunday===!0&&"Sunday"===c(b,s.dayHeader)?!0:a.minDate&&u(b,a.minDate)<0||a.maxDate&&u(b,a.maxDate)>0:!0};this.modes=[{name:"day",getVisibleDates:function(b,d){var e=b.getFullYear(),u=b.getMonth(),w=new Date(e,u,1),x=new Date(e,u+1,0),y=t-w.getDay(),z=y>0?7-y:-y,A=new Date(w),B=0;z>0&&(A.setDate(-z+1),B+=z),B+=f(e,u+1),B+=(7-B%7)%7;for(var C=g(A,B),D=[],E=0;B>E;E++){var F=new Date(C[E]);C[E]=r({date:F,formatDay:s.day,formatHeader:s.dayHeader,isFocused:n(F),isSelected:h(F),isFromDate:i(F),isToDate:j(F),isDateRange:k(F),oldMonth:new Date(F.getFullYear(),F.getMonth(),1,0,0,0).getTime()<new Date(e,u,1,0,0,0).getTime(),newMonth:new Date(F.getFullYear(),F.getMonth(),1,0,0,0).getTime()>new Date(e,u,1,0,0,0).getTime(),isDisabled:v(F),isToday:m(F),isWeakend:l(F)})}for(var G=0;7>G;G++)D[G]=q(c(C[G].date,s.dayHeader));return"top"===d?(a.disablePrevTop=o(w,x),a.disableNextTop=p(w,x)):"bottom"===d?(a.disablePrevBottom=o(w,x),a.disableNextBottom=p(w,x)):(a.disablePrevTop=a.disablePrevBottom=o(w,x),a.disableNextTop=a.disableNextBottom=p(w,x)),a.disablePrev=a.disablePrevTop||a.disablePrevBottom,a.disableNext=a.disableNextTop||a.disableNextBottom,{objects:C,title:c(b,s.dayTitle),labels:D}},split:7,step:{months:1}},{name:"month",getVisibleDates:function(a){for(var b=[],d=[],e=a.getFullYear(),f=0;12>f;f++){var g=new Date(e,f,1);b[f]=r({date:g,formatDay:s.month,formatHeader:s.month,isFocused:n(g),isSelected:h(g),isFromDate:i(g),isToDate:j(g),isDateRange:k(g),oldMonth:!1,newMonth:!1,isDisabled:v(g),isToday:m(g),isWeakend:!1})}return{objects:b,title:c(a,s.year),labels:d}},split:3,step:{years:1}}]}]).directive("datepicker",["$timeout",function(a){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/datepicker/datepicker.html",scope:{currentDate:"=?current",fromDate:"=?from"},require:"datepicker",controller:"DatepickerController",link:function(b,c,d,e){function f(a,b){for(var c=[];a.length>0;)c.push(a.splice(0,b));return c}function g(a){if(angular.isDate(a)&&!isNaN(a)?h=new Date(a):h||(h=new Date),h){var c;1===b.mode?(h=new Date,c=k(angular.copy(h),-1)):c=angular.copy(h);var d=i.modes[b.mode],e=d.getVisibleDates(c,"top");b.currentRows=f(e.objects,d.split),b.currentTitle=e.title,b.labels=e.labels||[];var g=d.getVisibleDates(k(angular.copy(c),1),"bottom");b.nextRows=f(g.objects,d.split),b.nextTitle=g.title}}var h,i=e,j=!1;b.focusedDate,b.resetTime=function(a){var c;return isNaN(new Date(a))?null:(c=new Date(a),c=1===b.mode?new Date(c.getFullYear(),c.getMonth()):new Date(c.getFullYear(),c.getMonth(),c.getDate()))},d.min&&b.$parent.$watch(d.min,function(a){b.minDate=a?b.resetTime(a):null,g()}),d.max&&b.$parent.$watch(d.max,function(a){b.maxDate=a?b.resetTime(a):null,g()});var k=function(a,c){var d=i.modes[b.mode].step;return a.setDate(1),a.setMonth(a.getMonth()+c*(d.months||0)),a.setFullYear(a.getFullYear()+c*(d.years||0)),a},l=function(a){var c=new Date(a.getFullYear(),a.getMonth(),a.getDate());b.currentDate=c},m=function(a){var c=new Date(a.getFullYear(),a.getMonth(),a.getDate());b.fromDate=c};b.select=function(a){j=!0,d.from?angular.isDate(b.fromDate)&&angular.isDate(b.currentDate)||(angular.isDate(b.fromDate)?l(a):angular.isDate(b.fromDate)||m(a)):l(a),b.focusedDate=a};var n=function(c,d){m(d),a(function(){j=!0,b.focusedDate=d,l(c)})};b.move=function(a){h=k(angular.copy(h),a),g()},b.$watch("currentDate",function(a){return angular.isDate(a)&&!isNaN(a)&&i.isDisabled(a)?void(b.currentDate=null):d.from&&!isNaN(a)&&!isNaN(b.fromDate)&&i.compare(a,b.fromDate)<0?void n(b.fromDate,a):(j?(g(),j=!1):angular.isDefined(a)&&null!==a?g(a):g(),void(b.focusedDate=void 0))}),b.$watch("fromDate",function(a){if(angular.isDate(a)&&!isNaN(a)&&i.isDisabled(a))return void(b.fromDate=null);if(d.from){if(!isNaN(b.currentDate)&&!isNaN(a)&&i.compare(b.currentDate,a)<0)return void n(a,b.currentDate);j?(g(),j=!1):angular.isDefined(a)&&null!==a?g(a):g()}b.focusedDate=void 0})}}}]).directive("datepickerPopup",["$document","datepickerService","$isElement","$documentBind",function(a,b,c,d){var e=function(e,f,g){b.bindScope(g,e),e.isOpen=!1;var h=e.toggle=function(a){a===!0||a===!1?e.isOpen=a:e.isOpen=!e.isOpen};e.$watch("current",function(){h(!1)});var i=function(b){var d=c(angular.element(b.target),f,a);d||(h(!1),e.$apply())};d.click("isOpen",i,e)};return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/datepicker/datepickerPopup.html",scope:{current:"=current"},compile:function(a,c){var d=a.find("span").eq(1);return d.attr("current","current"),b.setAttributes(c,d),e}}}]).directive("attDatepicker",["$log",function(a){return{restrict:"A",require:"ngModel",scope:{},controller:["$scope","$element","$attrs","$compile","datepickerConfig","datepickerService",function(a,b,c,d,e,f){var g=angular.isDefined(c.dateFormat)?a.$parent.$eval(c.dateFormat):e.dateFormat,h='<div class="sr-focus hidden-spoken" tabindex="-1">the date you selected is {{$parent.current | date : \''+g+"'}}</div>";b.removeAttr("att-datepicker"),b.removeAttr("ng-model"),b.attr("ng-model","$parent.current"),b.attr("aria-describedby","datepicker"),b.attr("format-date",g),b.attr("att-input-deny","[^0-9/-]"),b.attr("maxlength",10);var i=angular.element("<div></div>");i.attr("datepicker-popup",""),i.attr("current","current"),f.setAttributes(c,i),f.bindScope(c,a),i.html(""),i.append(b.prop("outerHTML")),null===navigator.userAgent.match(/MSIE 8/)&&i.append(h);var j=i.prop("outerHTML");j=d(j)(a),b.replaceWith(j)}],link:function(b,c,d,e){return e?(b.$watch("current",function(a){e.$setViewValue(a)}),void(e.$render=function(){b.current=e.$viewValue})):void a.error("ng-model is required.")}}}]).directive("formatDate",["dateFilter","datepickerService",function(a,b){return{restrict:"A",require:"ngModel",link:function(c,d,e,f){var g="";e.$observe("formatDate",function(a){g=a});var h=function(b){return b?(f.$setValidity("invalidDate",!0),a(b,g)):(f.$setValidity("invalidDate",!1),d.val())},i=function(a){return b.validateDateString(a,g)?(f.$setValidity("invalidDate",!0),new Date(a)):(f.$setValidity("invalidDate",!1),null)};f.$formatters.unshift(h),f.$parsers.unshift(i)}}}]).directive("attDateFilter",["$document","dateFilter","datepickerConfig","datepickerService","$isElement","$documentBind",function(a,b,c,d,e,f){var g=function(g,h,i,j){d.bindScope(i,g),g.selectedOption=c.dateFilter.defaultText,g.showDropdownList=!1,g.showCalendar=!1,g.applyButtonType="disabled",g.currentSelection="";var k=angular.isDefined(i.dateFormat)?g.$parent.$eval(i.dateFormat):c.dateFormat,l=!1,m=function(a){if(!l){var c=k.toUpperCase(),d=k.toUpperCase();isNaN(new Date(g.fromDate))||(c=b(g.fromDate,k)),isNaN(new Date(g.currentDate))||(d=b(g.currentDate,k)),"Custom Single Date"===a?(j.$setValidity("invalidDate",!0),g.maxLength=10,g.selectedOption=d):"Custom Range"===a&&(j.$setValidity("invalidDate",!0),j.$setValidity("invalidDateRange",!0),g.maxLength=21,g.selectedOption=c+"-"+d)}},n=g.clear=function(a){g.fromDate=void 0,g.currentDate=void 0,g.applyButtonType="disabled",a||(j.$setValidity("invalidDate",!0),j.$setValidity("invalidDateRange",!0),m(g.currentSelection))},o=function(){g.showCalendar=!0},p=function(){g.showCalendar=!1,"Custom Single Date"!==g.currentSelection&&"Custom Range"!==g.currentSelection&&n(!0)},q=g.showDropdown=function(a){a===!0||a===!1?g.showDropdownList=a:g.showDropdownList=!g.showDropdownList,g.showDropdownList?("Custom Single Date"===g.currentSelection||"Custom Range"===g.currentSelection)&&o():(g.focusInputButton=!0,p())};g.resetTime=function(a){var b;return isNaN(new Date(a))?null:(b=new Date(a),new Date(b.getFullYear(),b.getMonth(),b.getDate()))},g.getDropdownText=function(){l=!0;var a=g.selectedOption;if("Custom Single Date"===g.currentSelection)!isNaN(new Date(a))&&d.validateDateString(a,k)?(j.$setValidity("invalidDate",!0),g.fromDate=void 0,g.currentDate=new Date(a)):(j.$setValidity("invalidDate",!1),n(!0));else if("Custom Range"===g.currentSelection)if(-1===a.indexOf("-")||2!==a.split("-").length&&6!==a.split("-").length)j.$setValidity("invalidDateRange",!1),n(!0);else{j.$setValidity("invalidDateRange",!0);var b=a.split("-");if(2===b.length)b[0]=b[0].trim(),b[1]=b[1].trim();else if(6===b.length){var c=b[0].trim()+"-"+b[1].trim()+"-"+b[2].trim(),e=b[3].trim()+"-"+b[4].trim()+"-"+b[5].trim();b[0]=c,b[1]=e}if(!isNaN(new Date(b[0]))&&!isNaN(new Date(b[1]))&&d.validateDateString(b[0],k)&&d.validateDateString(b[1],k)){j.$setValidity("invalidDate",!0);var f=new Date(b[0]),h=new Date(b[1]);f.getTime()<h.getTime()?(j.$setValidity("invalidDateRange",!0),g.fromDate=f,g.currentDate=h):(j.$setValidity("invalidDateRange",!1),n(!0))}else j.$setValidity("invalidDate",!1),n(!0)}},g.untrackInputChange=function(){l=!1},g.selectAdvancedOption=function(a,b){g.currentSelection=a,b||(n(),o()),g.$watch("currentDate",function(b){isNaN(new Date(b))||(g.applyButtonType="primary",m(a),l||(g.focusApplyButton=!0))}),g.$watch("fromDate",function(b){isNaN(new Date(b))||m(a)}),"Custom Single Date"===a?g.focusSingleDateCalendar=!0:"Custom Range"===a&&(g.focusRangeCalendar=!0)},g.resetFocus=function(){g.focusSingleDateCalendar=!1,g.focusRangeCalendar=!1,g.focusApplyButton=!1},g.apply=function(){g.dateRange.selection=g.selectedOption,isNaN(new Date(g.fromDate))?(g.from=void 0,g.dateRange.from=void 0):(g.from=g.fromDate,g.dateRange.from=g.fromDate),isNaN(new Date(g.currentDate))?(g.current=void 0,g.dateRange.current=void 0):(g.current=g.currentDate,g.dateRange.current=g.currentDate),q()},g.$watchCollection(function(){return g.dateRange},function(a){if(j){var b=angular.copy(a);j.$setViewValue(b)}}),j.$render=function(){if(j.$viewValue){var a=j.$viewValue;g.selectedOption=a.selection,g.fromDate=a.from,g.currentDate=a.current,void 0!==g.fromDate&&void 0!==g.currentDate?(g.selectAdvancedOption("Custom Range",!0),g.dateRange.from=g.fromDate,g.dateRange.current=g.currentDate):void 0!==g.currentDate&&(g.selectAdvancedOption("Custom Single Date",!0),g.dateRange.from=void 0,g.dateRange.current=g.currentDate)}},g.cancel=function(){g.currentSelection="",g.selectedOption=c.dateFilter.defaultText,q()};var r=function(b){var c=e(angular.element(b.target),h,a);c||(g.cancel(),g.$apply())};f.click("showDropdownList",r,g)};return{restrict:"EA",scope:{from:"=?from",current:"=?current"},replace:!0,require:"?ngModel",transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/datepicker/dateFilter.html",controller:["$scope","$element","$attrs",function(a){a.dateRange={selection:void 0,from:void 0,current:void 0},this.selectOption=function(b,c,d){a.selectedOption=d,a.currentSelection=d,a.dateRange.selection=d,a.dateRange.current=a.resetTime(c),a.dateRange.from=a.resetTime(b),a.showDropdown()},a.checkCurrentSelection=this.checkCurrentSelection=function(b){return b===a.currentSelection?!0:!1}}],compile:function(a,b){var c=a.find("span").eq(4),e=a.find("span").eq(5);return e.attr("from","fromDate"),c.attr("current","currentDate"),e.attr("current","currentDate"),d.setAttributes(b,c),d.setAttributes(b,e),g}}}]).directive("attDateFilterList",function(){return{restrict:"EA",scope:{fromDate:"=fromDate",toDate:"=toDate",caption:"=caption",disabled:"=disabled"},require:"^attDateFilter",transclude:!0,replace:!0,templateUrl:"app/scripts/ng_js_att_tpls/datepicker/dateFilterList.html",link:function(a,b,c,d){a.selectOption=function(a,b,c){d.selectOption(a,b,c)},a.checkCurrentSelection=d.checkCurrentSelection}}}),angular.module("att.abs.devNotes",[]).directive("attDevNotes",function(){return{restrict:"EA",transclude:!0,scope:{},controller:function(a){var b=a.panes=[];a.select=function(a){angular.forEach(b,function(a){a.selected=!1}),a.selected=!0},this.addPane=function(c){0===b.length&&a.select(c),b.push(c)}},template:'<div><ul class="tabs"><li ng-repeat="pane in panes" ng-class="{active:pane.selected}"><a href="javascript:void(0)" ng-click="select(pane)">{{pane.title}}</a></li></ul><div ng-transclude></div></div>',replace:!0}}).directive("pane",function(){return{require:"^attDevNotes",restrict:"EA",transclude:!0,scope:{title:"@"},link:function(a,b,c,d){d.addPane(a)},template:'<div class="tab-pane" ng-class="{active: selected}">'+"<pre ng-class=\"{'language-markup':title=='HTML','language-javascript':title=='JavaScript','language-json':title=='JSON'}\"  class=\" line-numbers\"><code ng-transclude></code></pre></div>",replace:!0}}),angular.module("att.abs.dividerLines",[]).directive("attDividerLines",[function(){return{scope:{attDividerLines:"@"},restrict:"A",replace:!0,templateUrl:"app/scripts/ng_js_att_tpls/dividerLines/dividerLines.html",link:function(a,b,c){a.lightContainer=c.attDividerLines}}}]),angular.module("att.abs.dragdrop",[]).directive("attFileDrop",["$parse",function(a){return{restrict:"A",scope:{fileModel:"=",onDrop:"&",attFileDrop:"&"},controller:["$scope","$attrs",function(a,b){""!==b.attFileDrop&&(a.onDrop=a.attFileDrop),this.onDrop=a.onDrop}],link:function(b,c){c.addClass("dragdrop"),c.bind("dragover",function(a){return a.originalEvent&&(a.dataTransfer=a.originalEvent.dataTransfer),a.dataTransfer.dropEffect="move",a.preventDefault&&a.preventDefault(),c.addClass("dragdrop-over"),!1}),c.bind("dragenter",function(a){return a.preventDefault&&a.preventDefault(),c.addClass("dragdrop-over"),!1}),c.bind("dragleave",function(){return c.removeClass("dragdrop-over"),!1}),c.bind("drop",function(d){return d.preventDefault&&d.preventDefault(),d.stopPropagation&&d.stopPropagation(),d.originalEvent&&(d.dataTransfer=d.originalEvent.dataTransfer),c.removeClass("dragdrop-over"),d.dataTransfer.files&&d.dataTransfer.files.length>0&&(b.fileModel=d.dataTransfer.files[0],b.$apply(),"function"==typeof b.onDrop&&(b.onDrop=a(b.onDrop),b.onDrop())),!1})}}}]).directive("attFileLink",[function(){return{restrict:"EA",require:"^?attFileDrop",replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/dragdrop/fileUpload.html",scope:{fileModel:"=?",onFileSelect:"&",attFileLink:"&"},controller:["$scope","$parse",function(a,b){this.setFileModel=function(b){a.takeFileModelFromParent?(a.$parent.fileModel=b,a.$parent.$apply()):(a.fileModel=b,a.$apply())},this.callbackFunction=function(){"function"==typeof a.onFileSelect&&(a.onFileSelect=b(a.onFileSelect),a.onFileSelect())}}],link:function(a,b,c,d){a.takeFileModelFromParent=!1,!c.fileModel&&d&&(a.takeFileModelFromParent=!0),""!==c.attFileLink?a.onFileSelect=a.attFileLink:!c.onFileSelect&&d&&(a.onFileSelect=d.onDrop)}}}]).directive("attFileChange",["$log","$rootScope",function(a,b){return{restrict:"A",require:"^attFileLink",link:function(c,d,e,f){function g(c){if(c.target.files&&c.target.files.length>0)f.setFileModel(c.target.files[0]),f.callbackFunction();else{var d=c.target.value;try{var e=new ActiveXObject("Scripting.FileSystemObject");f.setFileModel(e.getFile(d)),f.callbackFunction()}catch(c){var g="Error: Please follow the guidelines of Drag and Drop component on Sandbox demo page.";a.error(g),b.$broadcast("att-file-link-failure",g)}}}d.bind("change",g)}}}]),angular.module("att.abs.drawer",["att.abs.utilities"]).directive("attDrawer",["$document","$timeout","DOMHelper",function(a,b,c){return{restrict:"EA",replace:!0,transclude:!0,scope:{drawerOpen:"=?",drawerAutoClose:"&?"},template:'<div><div class="att-drawer" ng-transclude></div><div ng-class="{\'drawer-backdrop\':drawerOpen}"></div></div>',link:function(a,d,e){function f(b,c){b&&0!==b.style.width&&0!==b.style.height&&(m.style.display="none","right"===c.side||"left"===c.side?b.style.width="0px":("top"===c.side||"bottom"===c.side)&&(b.style.height="0px")),a.drawerOpen=!1,angular.isDefined(k)&&null!=k&&k.focus()}function g(a,c){k=document.activeElement,0!==a.style.width&&0!==a.style.height&&("right"===c.side||"left"===c.side?a.style.width=c.size:("top"===c.side||"bottom"===c.side)&&(a.style.height=c.size),b(function(){m.style.display="block",angular.isDefined(j)&&null!=j&&j.focus()},1e3*c.speed))}function h(a){var b={};return a&&"[object Function]"===b.toString.call(a)}var i={},j=void 0,k=void 0;i.side=e.drawerSlide||"top",i.speed=e.drawerSpeed||"0.25",i.size=e.drawerSize||"300px",i.zindex=e.drawerZindex||1e3,i.className=e.drawerClass||"att-drawer";var l=d.eq(0).children()[0],m=angular.element(l).children()[0];l.className=i.className,l.style.transitionDuration=i.speed+"s",l.style.webkitTransitionDuration=i.speed+"s",l.style.zIndex=i.zindex,l.style.position="fixed",l.style.width=0,l.style.height=0,l.style.transitionProperty="width, height","right"===i.side||"left"===i.side?(l.style.height=e.drawerCustomHeight||"100%",l.style.top=e.drawerCustomTop||"0px",l.style.bottom=e.drawerCustomBottom||"0px",l.style.right=e.drawerCustomRight||"0px"):("top"===i.side||"bottom"===i.side)&&(l.style.width=e.drawerCustomWidth||"100%",l.style.left=e.drawerCustomLeft||"0px",l.style.top=e.drawerCustomTop||"0px",l.style.right=e.drawerCustomRight||"0px"),b(function(){j=c.firstTabableElement(d[0])},10,!1),e.drawerSize&&a.$watch(function(){return e.drawerSize},function(b){i.size=b,a.drawerOpen&&g(l,i)}),a.$watch("drawerOpen",function(a){a?g(l,i):f(l,i)}),a.drawerAutoClose&&(a.$on("$locationChangeStart",function(){f(l,i),h(a.drawerAutoClose)&&a.drawerAutoClose()}),a.$on("$stateChangeStart",function(){f(l,i),h(a.drawerAutoClose)&&a.drawerAutoClose()}))}}}]),angular.module("att.abs.message",[]).directive("attMessages",[function(){return{restrict:"EA",scope:{messageType:"=?"},controller:["$scope","$element","$attrs",function(a,b,c){a.messageScope=[],this.registerScope=function(b){a.messageScope.push(b)},a.$parent.$watchCollection(c["for"],function(b){for(var c in b){if(b[c]){a.error=c;break}a.error=null}for(var d=0;d<a.messageScope.length;d++)a.messageScope[d].when===a.error?(a.messageScope[d].show(),a.setMessageType(a.messageScope[d].type)):a.messageScope[d].hide();null===a.error&&a.setMessageType(null)}),a.setMessageType=this.setMessageType=function(b){c.messageType&&(a.messageType=b)}}]}}]).directive("attMessage",[function(){return{restrict:"EA",scope:{},require:"^attMessages",link:function(a,b,c,d){d.registerScope(a),a.when=c.when||c.attMessage,a.type=c.type,a.show=function(){b.css({display:"block"})},a.hide=function(){b.css({display:"none"})},a.hide()}}}]),angular.module("att.abs.formField",["att.abs.message","att.abs.utilities"]).directive("attFormField",[function(){return{priority:101,restrict:"A",controller:function(){},link:function(a,b,c){b.wrap('<div class="form-field"></div>'),b.parent().append('<label class="form-field__label">'+c.placeholder||c.attFormField+"</label>"),b.wrap('<div class="form-field-input-container"></div>'),b.bind("keyup",function(){""!==this.value?b.parent().parent().find("label").addClass("form-field__label--show").removeClass("form-field__label--hide"):b.parent().parent().find("label").addClass("form-field__label--hide").removeClass("form-field__label--show")}),b.bind("blur",function(){\r
-""===this.value&&b.parent().parent().find("label").removeClass("form-field__label--hide")})}}}]).directive("attFormFieldValidation",["$compile","$log",function(a,b){return{priority:102,scope:{},restrict:"A",require:["?ngModel","?attFormField"],link:function(c,d,e,f){var g=f[0],h=f[1];return c.valid="",g?h?(d.parent().append(a(angular.element('<i class="icon-info-alert error" ng-show="valid===false">&nbsp;</i>'))(c)),d.parent().append(a(angular.element('<i class="icon-info-success success" ng-show="valid===true">&nbsp;</i>'))(c)),c.$watch("valid",function(a){a?d.parent().parent().addClass("success"):a===!1?d.parent().parent().addClass("error"):d.parent().parent().removeClass("success").removeClass("error")}),void d.bind("keyup",function(){g.$valid?c.valid=!0:g.$invalid?c.valid=!1:c.valid="",c.$apply()})):void b.error("att-form-field-validation :: att-form-field directive is required."):void b.error("att-form-field-validation :: ng-model directive is required.")}}}]).directive("attFormFieldValidationAlert",["$timeout",function(a){return{scope:{messageType:"=?"},restrict:"EA",replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/formField/attFormFieldValidationAlert.html",link:function(b,c,d,e){b.showLabel=!1,b.hideLabel=!1,b.errorMessage=!1,b.warningMessage=!1;var f=function(){var a=b.messageType;"error"===a?(b.errorMessage=!0,b.warningMessage=!1):"warning"===a?(b.errorMessage=!1,b.warningMessage=!0):(b.errorMessage=!1,b.warningMessage=!1)},g=-1!==navigator.userAgent.toLowerCase().indexOf("msie 8.0");c.find("label").text(c.find("input").attr("placeholder")),c.find("input").bind("keyup",function(){""!==this.value?(b.showLabel=!0,b.hideLabel=!1,g&&c.find("label").css({top:"-20px"})):(b.showLabel=!1,b.hideLabel=!0,g&&c.find("label").css({top:"0px"})),f(),b.$apply()}),c.find("input").bind("blur",function(){""===this.value&&(b.showLabel=!1,b.hideLabel=!1),b.$apply()}),a(function(){f()},100)}}}]).constant("CoreFormsUiConfig",{phoneMask:"(___) ___-____"}).directive("attPhoneMask",["$parse","CoreFormsUiConfig",function(a,b){return{require:"ngModel",scope:{ngModel:"="},link:function(a,c,d,e){var f=navigator.userAgent.toLowerCase(),g=f.indexOf("android")>-1,h=(-1!==f.indexOf("msie 8.0"),""),i=!1;h=g?"__________":b.phoneMask,c.attr("maxlength",h.length);var j=function(a){var b=!1;return a&&(b=10===a.length),e.$setValidity("invalidPhoneNumber",i),e.$setValidity("mask",b),b},k=function(){var a,b=e.$modelValue;if(b.length){var c,d,f,g,i;for(g=[],f=h.split(""),i=f.length,c=b.substring(0,h.length),d=b.replace(/[^0-9]/g,"").split(""),a=0;i>a&&(g.push("_"===f[a]?d.shift():f[a]),0!==d.length);a++);return b=g.join(""),"("===b&&(b=""),e.$setViewValue(b),e.$render(),b}},l=function(b){b.which&&((b.which<48||b.which>57)&&(b.which<96||b.which>105)?8===b.which||9===b.which||46===b.which||13===b.which||37===b.which||39===b.which||b.ctrlKey===!0||"118"===b.which&&"86"===b.which||b.ctrlKey===!0||"99"===b.which&&"67"===b.which||b.ctrlKey===!0||"120"===b.which&&"88"===b.which||(b.preventDefault?b.preventDefault():b.returnValue=!1,c.attr("aria-label","Only numbers are allowed"),i=!1):(c.removeAttr("aria-label"),i=!0)),a.$apply()},m=function(a){var b=/^[A-Za-z]+$/,c=/^[0-9]+$/;a.match(b)&&(i=!1),a.match(c)&&(i=!0);var d="";return a&&a.length>0&&(d=a.replace(/[^0-9]/g,"")),j(d),d},n=function(a){var b="";return j(a),a&&(b=k()),b};e.$parsers.push(m),e.$formatters.push(n),c.bind("keyup",k),c.bind("keydown",l),c.bind("input",function(a){k(a),l(a)})}}}]).constant("validationTypeInt",{validationNum:{number:"1",text:"2",email:"3"}}).directive("attFormFieldPrv",["keyMapAc","validationTypeInt",function(a,b){return{priority:101,restrict:"AE",controller:["$scope",function(c){this.showHideErrorMessage=function(a){null!=c.$$prevSibling&&angular.isDefined(c.$$prevSibling)&&angular.isDefined(c.$$prevSibling.hideErrorMsg)&&(c.$$prevSibling.hideErrorMsg=a,c.$apply())},this.findAllowedCharactor=function(b){var d=a.keys;if(angular.isDefined(c.allowedSpecialCharacters)&&angular.isDefined(c.allowedSpecialCharacters.length)&&c.allowedSpecialCharacters.length>0){for(var e=c.allowedSpecialCharacters,f=!1,g=0;g<e.length;g++)if(e[g]===d[b]){f=!0;break}return f}return!1},this.validateText=function(a,b,c,d){if(angular.isDefined(b)&&0===b.length){var e=/^[a-zA-Z0-9]*$/i;return e.test(c)}var f="^[a-zA-Z0-9"+d+"]*$",g=new RegExp(f,"i");return g.test(c)},this.validateNumber=function(a,b,c,d){if(angular.isDefined(b)&&0===b.length){var e=/^[0-9\.]+$/;return e.test(c)}var f="^[0-9."+d+"]*$",g=new RegExp(f,"i");return g.test(c)},this.validateEmail=function(a,b,c,d){if(angular.isDefined(b)&&0===b.length){var e=/(([a-zA-Z0-9\-?\.?]+)@(([a-zA-Z0-9\-_]+\.)+)([a-z]{2,3}))+$/;return e.test(c)}var f="(([a-z"+d+"A-Z0-9-?.?]+)@(([a-z"+d+"A-Z0-9-_]+.)+)(["+d+"a-z]{2,3}))+$",g=new RegExp(f,"i");return g.test(c)},this.validateInput=function(a,c,d){var e="",f=!1;if(angular.isDefined(c)&&angular.isDefined(c.length)&&c.length>0)for(var g=0;g<c.length;g++)e+="\\"+c[g];switch(b.validationNum[a]){case b.validationNum.text:f=this.validateText(a,c,d,e);break;case b.validationNum.number:f=this.validateNumber(a,c,d,e);break;case b.validationNum.email:f=this.validateEmail(a,c,d,e)}return f}}],link:function(a,b,c){b.parent().prepend('<label class="form-field__label">'+c.placeholder+"</label>"),b.wrap('<div class="form-field-input-container"></div>'),b.parent().parent().find("label").addClass("form-field__label--show")}}}]).directive("attFormFieldValidationPrv",["keyMapAc","validationTypeInt",function(a,b){return{priority:202,scope:{validationType:"=",allowedChars:"="},restrict:"A",require:["?ngModel","^attFormFieldPrv"],link:function(c,d,e,f){var g=f[1];d.bind("keyup",function(){g.validateInput(c.validationType,c.allowedChars,d[0].value)?g.showHideErrorMessage(!1):g.showHideErrorMessage(!0)});var h=a.keyRange,i=a.allowedKeys,j=function(a,b){var c=b.which<h.startNum||b.which>h.endNum,d=b.which<h.startCapitalLetters||b.which>h.endCapitalLetters,e=b.which<h.startSmallLetters||b.which>h.endSmallLetters,f=c&&d&&e;return f&&!a},k=function(a,b){return(b.which<h.startNum||b.which>h.endNum)&&!a},l=function(a,b){var c="-"!==String.fromCharCode(b.which)&&"_"!==String.fromCharCode(b.which),d="@"!==String.fromCharCode(b.which)&&"."!==String.fromCharCode(b.which),e=c&&d,f=j(a,b);return!a&&e&&f},m=function(a,c,d){switch(a){case b.validationNum.text:if(j(c,d))return!0;break;case b.validationNum.number:if(k(c,d))return!0;break;case b.validationNum.email:if(l(c,d))return!0}return!1};d.bind("keypress",function(a){a.which||(a.keyCode?a.which=a.keyCode:a.charCode&&(a.which=a.charCode));var d=g.findAllowedCharactor(a.which),e=angular.isDefined(c.validationType)&&""!==c.validationType,f=a.which!==i.TAB&&a.which!==i.BACKSPACE&&a.which!==i.DELETE,h=e&&f;h&&m(b.validationNum[c.validationType],d,a)&&a.preventDefault()})}}}]).directive("attFormFieldValidationAlertPrv",[function(){return{restrict:"A",scope:{errorMessage:"="},transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/formField/attFormFieldValidationAlertPrv.html",link:function(a){a.errorMessage=a.errorMessage,angular.isDefined(a.$parent.hideErrorMsg)?a.hideErrorMsg=a.$parent.hideErrorMsg:a.hideErrorMsg=!0}}}]).factory("Cards",[function(){var a=/(\d{1,4})/g,b=/(?:^|\s)(\d{4})$/,c=[{type:"discover",pattern:/^(6011|65|64[4-9]|622)/,format:a,inputFormat:b,length:[16],cvcLength:[3],cvcSecurityImg:"visaI",zipLength:[5],luhn:!0},{type:"mc",pattern:/^5[1-5]/,format:a,inputFormat:b,length:[16],cvcLength:[3],cvcSecurityImg:"visaI",zipLength:[5],luhn:!0},{type:"amex",pattern:/^3[47]/,format:/(\d{1,4})(\d{1,6})?(\d{1,5})?/,inputFormat:/^(\d{4}|\d{4}\s\d{6})$/,length:[15],cvcLength:[4],cvcSecurityImg:"amexI",zipLength:[5],luhn:!0},{type:"visa",pattern:/^4/,format:a,inputFormat:b,length:[16],cvcLength:[3],cvcSecurityImg:"visaI",zipLength:[5],luhn:!0}],d=function(a){var b,d,e;for(a=(a+"").replace(/\D/g,""),d=0,e=c.length;e>d;d++)if(b=c[d],b.pattern.test(a))return b},e=function(a){var b,d,e;for(d=0,e=c.length;e>d;d++)if(b=c[d],b.type===a)return b};return{fromNumber:function(a){return d(a)},fromType:function(a){return e(a)},defaultFormat:function(){return a},defaultInputFormat:function(){return b}}}]).factory("_Validate",["Cards","$parse",function(a,b){var c=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1},d=function(a){var b,c,d,e,f,g;for(d=!0,e=0,c=(a+"").split("").reverse(),f=0,g=c.length;g>f;f++)b=c[f],b=parseInt(b,10),(d=!d)&&(b*=2),b>9&&(b-=9),e+=b;return e%10===0},e={};return e.cvc=function(d,e,f,g){var h,i;if(angular.isUndefined(d)||null===d||0===d.length)return!0;if(!/^\d+$/.test(d))return!1;var j;if(g.paymentsTypeModel){var k=b(g.paymentsTypeModel);j=k(f)}return j?(i=a.fromType(j),h=d.length,c.call(null!==i?i.cvcLength:void 0,h)>=0):d.length>=3&&d.length<=4},e.zip=function(d,e,f,g){var h,i;if(angular.isUndefined(d)||null===d||0===d.length)return!0;if(!/^\d+$/.test(d))return!1;var j;if(g.paymentsTypeModel){var k=b(g.paymentsTypeModel);j=k(f)}return j?(i=a.fromType(j),h=d.length,c.call(null!==i?i.zipLength:void 0,h)>=0):d.length<6},e.card=function(e,f,g,h){var i,j,k;h.paymentsTypeModel&&(k=b(h.paymentsTypeModel));var l=function(){k&&k.assign(g,null),f.$card=null};return angular.isUndefined(e)||null===e||0===e.length?(l(),!0):(e=(e+"").replace(/\s+|-/g,""),/^\d+$/.test(e)&&(i=a.fromNumber(e))?(f.$card=angular.copy(i),k&&k.assign(g,i.type),ret=(j=e.length,c.call(i.length,j)>=0&&(i.luhn===!1||d(e))),ret):(l(),!1))},function(a,b,c,d,f){if(!e[a])throw types=Object.keys(e),errstr='Unknown type for validation: "'+a+'". ',errstr+='Should be one of: "'+types.join('", "')+'"',errstr;return e[a](b,c,d,f)}}]).factory("_ValidateWatch",["_Validate",function(a){var b={};return b.cvc=function(b,c,d,e){e.paymentsTypeModel&&d.$watch(e.paymentsTypeModel,function(f,g){if(f!==g){var h=a(b,c.$modelValue,c,d,e);c.$setValidity(b,h)}})},b.zip=function(b,c,d,e){e.paymentsTypeModel&&d.$watch(e.paymentsTypeModel,function(f,g){if(f!==g){var h=a(b,c.$modelValue,c,d,e);c.$setValidity(b,h)}})},function(a,c,d,e){return b[a]?b[a](a,c,d,e):void 0}}]).directive("validateCard",["$window","_Validate","_ValidateWatch",function(a,b,c){return{restrict:"A",require:"ngModel",link:function(a,d,e,f){var g=e.validateCard;c(g,f,a,e);var h=function(c){var h=b(g,c,f,a,e);return f.$setValidity(g,h),"card"===g&&(null===f.$card?null==c||""===c||""===c?(a.invalidCardError="",a.invalidCard=""):c.length>=1&&(a.invalidCardError="error",a.invalidCard="The number entered is not a recognized credit card number."):h?(a.invalidCardError="",a.invalidCard=""):f.$card.length.indexOf(c.length)>=0?(a.invalidCardError="error",a.invalidCard="The number entered is not a recognized credit card number."):(a.invalidCardError="",a.invalidCard=""),d.bind("blur",function(){h&&null!==f.$card?(a.invalidCardError="",a.invalidCard=""):(a.invalidCardError="error",a.invalidCard="The number entered is not a recognized credit card number.")})),h?c:void 0};f.$formatters.push(h),f.$parsers.push(h)}}}]).directive("creditCardImage",function(){return{templateUrl:"app/scripts/ng_js_att_tpls/formField/creditCardImage.html",replace:!1,transclude:!1,link:function(a,b,c){a.$watch(c.creditCardImage,function(b,c){b!==c&&(a.cvc="",angular.isUndefined(b)||null===b||(a.newValCCI="show-"+b),null===b&&(a.newValCCI=""))})}}}).directive("securityCodeImage",["$document",function(a){return{templateUrl:"app/scripts/ng_js_att_tpls/formField/cvcSecurityImg.html",replace:!1,transclude:!1,link:function(b,c,d){b.$watch(d.securityCodeImage,function(a,c){a!==c&&(angular.isUndefined(a)||null===a||("amexI"===a?(b.newValI="ccv2-security-amex",b.newValIAlt="The 4 digit CVC security code is on the front of the card.",b.cvcPlaceholder="4 digits",b.cvcMaxlength=4):"visaI"===a&&(b.newValI="ccv2-security",b.newValIAlt="The CVC security code is on the back of your card right after the credit card number.",b.cvcPlaceholder="3 digits",b.cvcMaxlength=3)),null===a&&(b.newValI="ccv2-security",b.cvcPlaceholder="3 digits",b.cvcMaxlength=3,b.newValIAlt="The CVC security code is on the back of your card right after the credit card number."))}),c.bind("click",function(a){a.preventDefault(),c.find("button").hasClass("active")?c.find("button").removeClass("active"):c.find("button").addClass("active")});var e=angular.element(a);e.bind("click",function(a){var b=a.target.className;"btn btn-alt btn-tooltip active"!==b&&c.find("button").hasClass("active")&&c.find("button").removeClass("active")})}}}]),angular.module("att.abs.hourpicker",["att.abs.utilities"]).constant("hourpickerConfig",{days:["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],customOption:"Custom"}).controller("hourPickerController",["$scope",function(a){a.options=[],this.setOptions=function(b,c,d,e,f,g){a.options.push(b),void 0!==e&&(a.preselect=e);var h;if(void 0!==c){a.fromtime=c;for(h in a.days)a.days.hasOwnProperty(h)&&(a.FrtimeList[a.days[h]]={},void 0!==f?(a.FrtimeList[a.days[h]].value=f,a.selectedFromOption[a.days[h]]=f):(a.FrtimeList[a.days[h]].value=c[0].value,a.selectedFromOption[a.days[h]]=c[0].value))}if(void 0!==d){a.totime=d;for(h in a.days)a.days.hasOwnProperty(h)&&(a.TotimeList[a.days[h]]={},void 0!==g?(a.TotimeList[a.days[h]].value=g,a.selectedToOption[a.days[h]]=g):(a.TotimeList[a.days[h]].value=d[0].value,a.selectedToOption[a.days[h]]=d[0].value),a.showToTimeErrorDay[a.days[h]]=!1)}void 0!==f&&(a.uncheckedFromTime=f),void 0!==g&&(a.uncheckedToTime=g)},this.getSelectedOption=function(){return a.selectedOption},this.setToTimeErrorDay=function(b,c){a.showToTimeErrorDay[b]=c}}]).directive("attHourpickerOption",[function(){return{restrict:"EA",require:"^attHourpicker",scope:{option:"=option",fromtime:"=fromtime",totime:"=totime",preselect:"=preselect",uncheckedFromTime:"=",uncheckedToTime:"="},link:function(a,b,c,d){d.setOptions(a.option,a.fromtime,a.totime,a.preselect,a.uncheckedFromTime,a.uncheckedToTime)}}}]).directive("attHourpicker",["hourpickerConfig","$document","$log","$documentBind","$timeout",function(a,b,c,d,e){return{require:"ngModel",restrict:"EA",controller:"hourPickerController",transclude:!0,scope:{model:"=ngModel",resetFlag:"=?"},templateUrl:"app/scripts/ng_js_att_tpls/hourpicker/hourpicker.html",link:function(b,c,f,g){var h=!1;b.isFromDropDownOpen=!1,b.isToDropDownOpen=!1;var i="",j={};b.days=a.days,b.daysList={},b.FrtimeList={},b.FrtimeListDay={},b.TotimeListDay={},b.selectedFromOption={},b.selectedToOption={},b.TotimeList={},b.selectedIndex=0,b.selectedOption="Select from list",b.customTime=[],b.resetFlag=!1,b.showToTimeErrorDay={},b.validatedCustomPreselect=[],b.$watch("resetFlag",function(c,d){if(c!==d){if(c&&b.selectedOption===a.customOption){for(day in b.daysList)b.daysList.hasOwnProperty(day)&&(b.daysList[day]=!1,b.addSelectedValue(day));b.preselectUpdateFxn(b.preselect)}b.resetFlag=!1}}),b.$watch("selCategory",function(a){a&&g.$setViewValue(a)},!0),b.updateData=function(c){if(c.constructor===Array){b.showDaysSelector=!0,b.selectedOption=a.customOption;for(var d in c)if(c.hasOwnProperty(d)){var e=c[d].day;"boolean"==typeof c[d].preEnabled&&c[d].preEnabled?b.daysList[e]=!0:b.daysList[e]=!1;for(var f in b.fromtime)b.fromtime[f].value!==c[d].FromTime||b.uncheckedFromTime||(b.FrtimeList[e].value=b.fromtime[f].value,b.selectedFromOption[e]=b.FrtimeList[e].value);for(var g in b.totime)b.totime[g].value!==c[d].ToTime||b.uncheckedToTime||(b.TotimeList[e].value=b.totime[g].value,b.selectedToOption[e]=b.TotimeList[e].value);if(b.addSelectedValue(e,c[d].FromTime,c[d].ToTime),parseInt(d)+1===c.length)break}}else b.selectOption(c.day)},b.$watch("preselect",function(a){b.preselectUpdateFxn(a)}),b.preselectUpdateFxn=function(a){if(void 0!==a){if(b.options&&(a=b.validatePreselectData(a)),""===a)return;b.updateData(a)}},b.validatePreselectData=function(a){if(a.constructor===Array){for(var c in a)if(a.hasOwnProperty(c)){var d=a[c].day,e=!1,f=!1,g=!1;for(var h in b.days)if(b.days[h]===d){e=!0;break}if(!e){a.splice(c,1);continue}for(var i in b.fromtime)if(b.fromtime[i].value===a[c].FromTime){f=!0;break}f||(a[c].FromTime=b.fromtime[0].value);for(var j in b.totime)if(b.totime[j].value===a[c].ToTime){g=!0;break}if(g||(a[c].ToTime=b.totime[0].value),"boolean"==typeof a[c].preEnabled&&a[c].preEnabled?a[c].preEnabled=!0:a[c].preEnabled=!1,b.validatedCustomPreselect[d]={},b.validatedCustomPreselect[d].FromTime=a[c].FromTime,b.validatedCustomPreselect[d].ToTime=a[c].ToTime,parseInt(c)+1===a.length)break}}else{var k=!1;for(var l in b.options)if(b.options[l]===a.day){k=!0;break}k||(a="")}return a},b.selectPrevNextValue=function(a,b,c){var d,e=0;if(38===a.keyCode)d=-1;else{if(40!==a.keyCode)return c;d=1}if(-1!==b.indexOf(c))e=b.indexOf(c)+d;else for(var f in b)if(b[f].value===c){e=parseInt(f)+d;break}return e===b.length?e-=1:-1===e&&(e+=1),a.preventDefault(),b[e].value?b[e].value:b[e]},b.showDropdown=function(){b.showlist=!b.showlist,h=!h},b.showfromDayDropdown=function(a){for(count in b.FrtimeListDay)count!==a&&b.FrtimeListDay[count]&&(b.FrtimeListDay[count]=!1);for(count in b.TotimeListDay)b.TotimeListDay[count]&&(b.TotimeListDay[count]=!1);b.FrtimeListDay[a]=!b.FrtimeListDay[a],h=!h,b.showlist=!1,b.FrtimeListDay[a]?(b.isFromDropDownOpen=!0,i=a):b.isFromDropDownOpen=!1,e(function(){if(b.FrtimeListDay[a]){var d=angular.element(c)[0].querySelector(".customdays-width"),e=angular.element(d.querySelector(".select2-container-active")).parent()[0].querySelector("ul"),f=angular.element(e.querySelector(".selectedItemInDropDown"))[0].offsetTop;angular.element(e)[0].scrollTop=f}})},b.showtoDayDropdown=function(a){for(count in b.TotimeListDay)count!==a&&b.TotimeListDay[count]&&(b.TotimeListDay[count]=!1);for(count in b.FrtimeListDay)b.FrtimeListDay[count]&&(b.FrtimeListDay[count]=!1);b.TotimeListDay[a]=!b.TotimeListDay[a],h=!h,b.showlist=!1,b.TotimeListDay[a]?(b.isToDropDownOpen=!0,i=a):b.isToDropDownOpen=!1,e(function(){if(b.TotimeListDay[a]){var d=angular.element(c)[0].querySelector(".customdays-width"),e=angular.element(d.querySelector(".select2-container-active")).parent()[0].querySelector("ul"),f=angular.element(e.querySelector(".selectedItemInDropDown"))[0].offsetTop;angular.element(e)[0].scrollTop=f}})},b.selectFromDayOption=function(a,c){b.selectedFromOption[a]=c,b.FrtimeList[a].value=c,b.FrtimeListDay[a]=!1,b.isFromDropDownOpen=!1},b.selectToDayOption=function(a,c){b.selectedToOption[a]=c,b.TotimeList[a].value=c,b.TotimeListDay[a]=!1,b.isToDropDownOpen=!1},b.addSelectedValue=function(a,c,d){var e,f;if(void 0===b.daysList[a]||b.daysList[a]){for(b.selectedFromOption[a]===b.uncheckedFromTime&&(angular.isDefined(b.validatedCustomPreselect[a])?(b.selectedFromOption[a]=b.validatedCustomPreselect[a].FromTime,c=b.validatedCustomPreselect[a].FromTime,b.FrtimeList[a].value=b.validatedCustomPreselect[a].FromTime):(b.selectedFromOption[a]=b.fromtime[0].value,c=b.fromtime[0].value,b.FrtimeList[a].value=b.fromtime[0].value)),b.selectedToOption[a]===b.uncheckedToTime&&(angular.isDefined(b.validatedCustomPreselect[a])?(b.selectedToOption[a]=b.validatedCustomPreselect[a].ToTime,d=b.validatedCustomPreselect[a].ToTime,b.TotimeList[a].value=b.validatedCustomPreselect[a].ToTime):(b.selectedToOption[a]=b.totime[0].value,d=b.totime[0].value,b.TotimeList[a].value=b.totime[0].value)),j.day=a,j.FromTime=b.FrtimeList[a].value,j.ToTime=b.TotimeList[a].value,e=0,f=b.customTime.length;f>e;e++)if(b.customTime[e].day===a){b.customTime[e].FromTime=j.FromTime,b.customTime[e].ToTime=j.ToTime;break}if(e===f){var g=angular.copy(j);b.customTime.push(g)}}else for(e=0,f=b.customTime.length;f>e;e++)if(b.customTime[e].day===a){b.uncheckedFromTime?b.selectedFromOption[b.customTime[e].day]=b.uncheckedFromTime:b.selectedFromOption[b.customTime[e].day]=b.FrtimeList[b.customTime[e].day].value,b.uncheckedToTime?b.selectedToOption[b.customTime[e].day]=b.uncheckedToTime:b.selectedToOption[b.customTime[e].day]=b.TotimeList[b.customTime[e].day].value,b.customTime.splice(e,1);break}b.selCategory=b.customTime};var k=function(){b.showlist&&b.$apply(function(){b.showlist=!1})};d.click("showlist",k,b);var l=function(){b.$apply(function(){b.isFromDropDownOpen&&(b.FrtimeListDay[i]=!1,b.isFromDropDownOpen=!1)})};d.click("isFromDropDownOpen",l,b);var m=function(){b.$apply(function(){b.isToDropDownOpen&&(b.TotimeListDay[i]=!1,b.isToDropDownOpen=!1)})};d.click("isToDropDownOpen",m,b),b.selectOption=function(c){if(c===a.customOption)b.showDaysSelector=!0,b.selCategory=b.customTime;else{b.showDaysSelector=!1;var d=/[0-9]\s?am/i.exec(c),e=/[0-9]\s?pm/i.exec(c);b.selCategory={day:c,FromTime:null===d?"NA":d[0],ToTime:null===e?"NA":e[0]}}b.showlist=!1,h=!1,b.selectedOption=c}}}}]).directive("attHourpickerValidator",["hourpickerConfig",function(a){return{restrict:"A",require:["attHourpicker","ngModel"],link:function(b,c,d,e){var f=e[0],g=e[1],h=function(a){var b=Number(a.match(/^(\d+)/)[1]),c=Number(a.match(/:(\d+)/)[1]),d=a.match(/\s(.*)$/)[1].toUpperCase();"PM"===d&&12>b&&(b+=12),"AM"===d&&12===b&&(b-=12);var e=b.toString(),f=c.toString();return 10>b&&(e="0"+e),10>c&&(f="0"+f),parseInt(e+f,10)},i=function(a,b){var c=h(a),d=h(b);return d-c},j=function(b){if(f.getSelectedOption()===a.customOption){var c=0;for(var d in b)b.hasOwnProperty(d)&&(i(b[d].FromTime,b[d].ToTime)<=0?(f.setToTimeErrorDay(b[d].day,!0),c++):f.setToTimeErrorDay(b[d].day,!1));return c>0?(g.$setValidity("validationStatus",!1),[]):(g.$setValidity("validationStatus",!0),b)}return g.$setValidity("validationStatus",!0),b};g.$parsers.unshift(j)}}}]),angular.module("att.abs.iconButtons",[]).constant("buttonConfig",{activeClass:"active--button",toggleEvent:"click"}).directive("attIconBtnRadio",["buttonConfig",function(a){var b=a.activeClass||"active--button",c=a.toggleEvent||"click";return{require:"ngModel",link:function(a,d,e,f){d.attr("tabindex","0"),d.append("<span class='hidden-spoken'>"+e.attIconBtnRadio+"</span>"),f.$render=function(){d.parent().toggleClass(b,angular.equals(f.$modelValue,e.attIconBtnRadio))},d.parent().bind(c,function(){d.parent().hasClass(b)||a.$apply(function(){f.$setViewValue(e.attIconBtnRadio),f.$render()})})}}}]).directive("attIconBtnCheckbox",["buttonConfig",function(a){var b=a.activeClass||"active--button",c=a.toggleEvent||"click";return{require:"ngModel",link:function(a,d,e,f){function g(){var b=a.$eval(e.btnCheckboxTrue);return angular.isDefined(b)?b:!0}function h(){var b=a.$eval(e.btnCheckboxFalse);return angular.isDefined(b)?b:!1}d.attr("tabindex","0"),d.append("<span class='hidden-spoken'>"+e.attIconBtnCheckbox+"</span>"),f.$render=function(){d.parent().toggleClass(b,angular.equals(f.$modelValue,g()))},d.parent().bind(c,function(){a.$apply(function(){f.$setViewValue(d.parent().hasClass(b)?h():g()),f.$render()})})}}}]),angular.module("att.abs.links",["ngSanitize"]).directive("attLink",[function(){return{restrict:"A",link:function(a,b){b.addClass("link"),b.attr("href")||b.attr("tabindex","0")}}}]).directive("attLinkVisited",[function(){return{restrict:"A",link:function(a,b){b.addClass("link--visited"),b.attr("href")||b.attr("tabindex","0")}}}]).directive("attReadmore",["$timeout",function(a){return{restrict:"A",scope:{lines:"@noOfLines",textModel:"=",isOpen:"="},templateUrl:"app/scripts/ng_js_att_tpls/links/readMore.html",link:function(b,c){var d=1;b.$watch("textModel",function(e){e?("function"!=typeof String.prototype.trim&&(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),b.textToDisplay=e.trim(),b.readFlag=!0,a(function(){var a=c[0].children[0].children[0];1===d&&(d=window.getComputedStyle?parseInt(b.lines)*parseFloat(window.getComputedStyle(a,null).getPropertyValue("height")):parseInt(b.lines)*parseFloat(a.currentStyle.height),b.elemHeight=d,b.readLinkStyle={height:b.elemHeight+"px"})}),b.readMoreLink=!0,b.readLessLink=!1):(b.textToDisplay="",b.readMoreLink=!1,b.readLessLink=!1,b.readFlag=!1)});var e=c.parent();e.hasClass("att-accordion__body")&&b.$watch("isOpen",function(a){a||(b.readMoreLink=!0,b.readLessLink=!1,b.readLinkStyle={height:b.elemHeight+"px"},b.readFlag=!0)}),b.readMore=function(){b.readMoreLink=!1,b.readLessLink=!0,b.readLinkStyle={height:"auto"},b.readFlag=!1;var d=angular.element(c).children().eq(1).find("a")[0];a(function(){d.focus()})},b.readLess=function(){b.readMoreLink=!0,b.readLessLink=!1,b.readLinkStyle={height:b.elemHeight+"px"},b.readFlag=!0;var d=angular.element(c).children().eq(0).find("a")[0];a(function(){d.focus()})}}}}]).directive("attLinksList",[function(){return{restrict:"A",controller:function(){},link:function(a,b){b.addClass("links-list")}}}]).directive("attLinksListItem",[function(){return{restrict:"A",require:"^attLinksList",link:function(a,b){b.addClass("links-list__item"),b.attr("href")||b.attr("tabindex","0")}}}]),angular.module("att.abs.loading",[]).directive("attLoading",["$window",function(a){return{restrict:"A",replace:!0,scope:{icon:"@attLoading",progressStatus:"=?",colorClass:"=?"},templateUrl:"app/scripts/ng_js_att_tpls/loading/loading.html",link:function(b,c){var d=b.progressStatus;if(b.progressStatus=Math.min(100,Math.max(0,d)),-1!==a.navigator.userAgent.indexOf("MSIE 8.")){var e=0,f=36*b.progressStatus;c.css({"background-position-x":e,"background-position-y":-f})}}}}]),angular.module("att.abs.modal",["att.abs.utilities"]).factory("$$stackedMap",function(){return{createNew:function(){var a=[];return{add:function(b,c){a.push({key:b,value:c})},get:function(b){for(var c=0;c<a.length;c++)if(b===a[c].key)return a[c]},keys:function(){for(var b=[],c=0;c<a.length;c++)b.push(a[c].key);return b},top:function(){return a[a.length-1]},remove:function(b){for(var c=-1,d=0;d<a.length;d++)if(b===a[d].key){c=d;break}return a.splice(c,1)[0]},removeTop:function(){return a.splice(a.length-1,1)[0]},length:function(){return a.length}}}}}).directive("modalBackdrop",["$timeout",function(a){return{restrict:"EA",replace:!0,templateUrl:"app/scripts/ng_js_att_tpls/modal/backdrop.html",link:function(b){b.animate=!1,a(function(){b.animate=!0})}}}]).directive("modalWindow",["$modalStack","$timeout","$document",function(a,b,c){return{restrict:"EA",scope:{index:"@",modalTitle:"@?"},replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/modal/window.html",link:function(d,e,f){d.windowClass=f.windowClass||"",f.modalTitle&&""!==f.modalTitle&&(e[0].setAttribute("aria-label",f.modalTitle),e[0].removeAttribute("modal-title")),b(function(){d.focusModalFlag=!0,d.animate=!0}),c.on("focus keydown",function(a){9===a.which&&(String.prototype.contains=function(a){return-1!==this.indexOf(a)},e[0]===a.target||e[0].contains(a.target)||e[0].focus())}),d.close=function(b){var c=a.getTop();c&&c.value.backdrop&&"static"!=c.value.backdrop&&b.target===b.currentTarget&&(b.preventDefault?(b.preventDefault(),b.stopPropagation()):b.returnValue=!1,a.dismiss(c.key,"backdrop click"))}}}}]).factory("$modalStack",["$document","$compile","$rootScope","$$stackedMap","events","keymap",function(a,b,c,d,e,f){function g(){for(var a=-1,b=m.keys(),c=0;c<b.length;c++)m.get(b[c]).value.backdrop&&(a=c);return a}function h(b){var c=a.find("body").eq(0),d=a.find("html").eq(0),e=m.get(b).value;m.remove(b),e.modalDomEl.remove(),c.toggleClass(k,m.length()>0),d.css({overflow:"scroll"}),j&&-1==g()&&(j.remove(),j=void 0),e.modalScope.$destroy(),angular.isDefined(o)&&null!=o&&o.focus()}var i,j,k="modal-open",l=c.$new(!0),m=d.createNew(),n={},o=void 0;return c.$watch(g,function(a){l.index=a}),a.bind("keydown",function(a){var b;if(27===a.which)b=m.top(),b&&b.value.keyboard&&c.$apply(function(){n.dismiss(b.key)});else if(a.keyCode===f.KEY.BACKSPACE){var d,g=!1,h=a.srcElement||a.target;g=void 0===h.type?!0:"INPUT"===h.tagName.toUpperCase()&&("TEXT"===(d=h.type.toUpperCase())||"PASSWORD"===d||"FILE"===d||"SEARCH"===d||"EMAIL"===d||"NUMBER"===d||"DATE"===d||"TEL"===d||"URL"===d||"TIME"===d)||"TEXTAREA"===h.tagName.toUpperCase()?h.readOnly||h.disabled:!0,g&&e.preventDefault(a)}}),n.open=function(c,d){m.add(c,{deferred:d.deferred,modalScope:d.scope,backdrop:d.backdrop,keyboard:d.keyboard}),o=document.activeElement;var e=a.find("body").eq(0),f=a.find("html").eq(0);g()>=0&&!j&&(i=angular.element("<div modal-backdrop></div>"),j=b(i)(l),e.append(j));var h=angular.element("<div modal-window></div>");h.attr("window-class",d.windowClass),h.attr("index",m.length()-1),h.attr("modal-title",d.modalTitle),h.html(d.content);var n=b(h)(d.scope);m.top().value.modalDomEl=n,e.append(n),e.addClass(k),f.css({overflow:"hidden"})},n.close=function(a,b){var c=m.get(a);c&&(c.value.deferred.resolve(b),h(a))},n.dismiss=function(a,b){var c=m.get(a).value;c&&(c.deferred.reject(b),h(a))},n.getTop=function(){return m.top()},n}]).provider("$modal",function(){var a={options:{backdrop:!0,keyboard:!0},$get:["$injector","$rootScope","$q","$http","$templateCache","$controller","$modalStack",function(b,c,d,e,f,g,h){function i(a){return a.template?d.when(a.template):e.get(a.templateUrl,{cache:f}).then(function(a){return a.data})}function j(a){var c=[];return angular.forEach(a,function(a){(angular.isFunction(a)||angular.isArray(a))&&c.push(d.when(b.invoke(a)))}),c}var k={};return k.open=function(b){var e=d.defer(),f=d.defer(),k={result:e.promise,opened:f.promise,close:function(a){h.close(k,a)},dismiss:function(a){h.dismiss(k,a)}};if(b=angular.extend({},a.options,b),b.resolve=b.resolve||{},!b.template&&!b.templateUrl)throw new Error("One of template or templateUrl options is required.");var l=d.all([i(b)].concat(j(b.resolve)));return l.then(function(a){var d=(b.scope||c).$new();d.$close=k.close,d.$dismiss=k.dismiss;var f,i={},j=1;b.controller&&(i.$scope=d,i.$modalInstance=k,angular.forEach(b.resolve,function(b,c){i[c]=a[j++]}),f=g(b.controller,i)),h.open(k,{scope:d,deferred:e,content:a[0],backdrop:b.backdrop,keyboard:b.keyboard,windowClass:b.windowClass,modalTitle:b.modalTitle})},function(a){e.reject(a)}),l.then(function(){f.resolve(!0)},function(){f.reject(!1)}),k},k}]};return a}).directive("simpleModal",["$modal",function(a){return{restrict:"EA",scope:{simpleModal:"@",backdrop:"@",keyboard:"@",modalOk:"&",modalCancel:"&",windowClass:"@",controller:"@",modalTitle:"@?"},link:function(b,c){c.bind("click",function(d){d.preventDefault(),angular.isDefined(c.attr("href"))&&""!==c.attr("href")&&(b.simpleModal=c.attr("href")),"false"===b.backdrop?b.backdropclick="static":b.backdropclick=!0,"false"===b.keyboard?b.keyboardev=!1:b.keyboardev=!0,a.open({templateUrl:b.simpleModal,backdrop:b.backdropclick,keyboard:b.keyboardev,windowClass:b.windowClass,controller:b.controller,modalTitle:b.modalTitle}).result.then(b.modalOk,b.modalCancel)})}}}]).directive("tabbedItem",["$modal","$log",function(a,b){return{restrict:"AE",replace:!0,scope:{items:"=items",controller:"@",templateId:"@",modalTitle:"@?"},templateUrl:"app/scripts/ng_js_att_tpls/modal/tabbedItem.html",controller:["$scope","$rootScope","$attrs",function(c){c.clickTab=function(d){for(var e=0;e<c.items.length;e++)e===d?(c.items[e].isTabOpen=!0,c.items[e].showData=!0):(c.items[e].isTabOpen=!1,c.items[e].showData=!1);var f=a.open({templateUrl:c.templateId,controller:c.controller,windowClass:"tabbedOverlay_modal",modalTitle:c.modalTitle,resolve:{items:function(){return c.items}}});f.result.then(function(a){c.selected=a},function(){b.info("Modal dismissed at: "+new Date)})},c.isActiveTab=function(a){return c.items&&c.items[a]&&c.items[a].isTabOpen}}]}}]).directive("tabbedOverlay",[function(){return{restrict:"AE",replace:!0,scope:{items:"="},transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/modal/tabbedOverlayItem.html",controller:["$scope",function(a){a.clickTab=function(b){for(var c=0;c<a.items.length;c++)c===b?(a.items[c].isTabOpen=!0,a.items[c].showData=!0):(a.items[c].isTabOpen=!1,a.items[c].showData=!1)},a.isActiveTab=function(b){return a.items&&a.items[b]&&a.items[b].isTabOpen}}]}}]),angular.module("att.abs.pagination",["att.abs.utilities"]).directive("attPagination",[function(){return{restrict:"EA",scope:{totalPages:"=",currentPage:"=",showInput:"=",clickHandler:"=?"},replace:!0,templateUrl:"app/scripts/ng_js_att_tpls/pagination/pagination.html",\r
-link:function(a){function b(b){angular.isDefined(b)&&null!==b&&((!b||1>b)&&(b=1),b>a.totalPages&&(b=a.totalPages),a.currentPage!==b&&(a.currentPage=b,c(a.currentPage)),a.totalPages>7&&(b<a.pages[0]&&b>3?a.pages=[b,b+1,b+2]:b>a.pages[2]&&b<a.totalPages-2?a.pages=[b-2,b-1,b]:3>=b?a.pages=[1,2,3]:b>=a.totalPages-2&&(a.pages=[a.totalPages-2,a.totalPages-1,a.totalPages])))}a.focusedPage,a.$watch("totalPages",function(c){if(angular.isDefined(c)&&null!==c){if(a.pages=[],1>c)return void(a.totalPages=1);if(7>=c)for(var d=1;c>=d;d++)a.pages.push(d);else if(c>7){var e=Math.ceil(c/2);a.pages=[e-1,e,e+1]}b(1)}}),a.$watch("currentPage",function(a){b(a)});var c=function(b){angular.isFunction(a.clickHandler)&&a.clickHandler(b)};a.next=function(b){b.preventDefault(),a.currentPage<a.totalPages&&(a.currentPage+=1,c(a.currentPage))},a.prev=function(b){b.preventDefault(),a.currentPage>1&&(a.currentPage-=1,c(a.currentPage))},a.selectPage=function(b,d){d.preventDefault(),a.currentPage=b,a.focusedPage=b,c(a.currentPage)},a.checkSelectedPage=function(b){return a.currentPage===b?!0:!1},a.isFocused=function(b){return a.focusedPage===b}}}}]),angular.module("att.abs.paneSelector",["att.abs.utilities"]).constant("paneGroupConstants",{SIDE_WIDTH_DEFAULT:"33%",INNER_PANE_DEFAULT:"67%",SIDE_PANE_ID:"sidePane",NO_DRILL_DOWN:"none"}).factory("animation",function(){return TweenLite}).directive("attPaneAccessibility",["keymap","$window",function(a,b){return{restrict:"A",require:["^?sidePane","^?innerPane"],link:function(b,c,d,e){var f=e[0],g=e[1],h=!1;b.ie=function(){for(var a,b=3,c=document.createElement("div"),d=c.getElementsByTagName("i");c.innerHTML="<!--[if gt IE "+ ++b+"]><i></i>< ![endif]-->",d[0];);return b>4?b:a}(),h=8===b.ie?!0:!1,c.bind("keydown",function(b){if(a.isAllowedKey(b.keyCode)||a.isControl(b)||a.isFunctionKey(b)){b.preventDefault(),b.stopPropagation();var d;switch(b.keyCode){case a.KEY.DOWN:if(d=angular.element(c[0])[0],d&&d.nextElementSibling&&d.nextElementSibling.focus(),h){do{if(!d||!d.nextSibling)break;d=d.nextSibling}while(d&&"DIV"!==d.tagName);d.focus()}break;case a.KEY.UP:if(d=angular.element(c[0])[0],d&&d.previousElementSibling&&d.previousElementSibling.focus(),h){do{if(!d||!d.previousSibling)break;d=d.previousSibling}while(d&&"DIV"!==d.tagName);d.focus()}break;case a.KEY.RIGHT:angular.isDefined(f)&&(d=f.getElement()[0]),angular.isDefined(g)&&(d=g.getElement()[0]);do{if(!d||!d.nextElementSibling)break;d=d.nextElementSibling}while("none"===window.getComputedStyle(d,null).getPropertyValue("display"));if(h)do{if(!d||!d.nextSibling)break;d=d.nextSibling}while(d&&"DIV"==d.tagName&&"none"==d.currentStyle.display);d&&d.querySelector("[att-pane-accessibility]").focus();break;case a.KEY.LEFT:angular.isDefined(f)&&(d=f.getElement()[0]),angular.isDefined(g)&&(d=g.getElement()[0]);do{if(!d||!d.previousElementSibling)break;d=d.previousElementSibling}while("none"==window.getComputedStyle(d,null).getPropertyValue("display"));if(h)do{if(!d||!d.previousSibling)break;d=d.previousSibling}while(d&&"DIV"==d.tagName&&"none"==d.currentStyle.display);d&&d.querySelector("[att-pane-accessibility]").focus()}}})}}}]).directive("sideRow",[function(){return{restrict:"A",replace:!0,require:["^sidePane","^paneGroup"],link:function(a,b,c,d){var e=d[0],f=d[1];a.$first&&(e.sidePaneIds=[]);var g=c.paneId,h=c.drillDownTo;e.sidePaneRows.push({paneId:g,drillDownTo:h}),b.on("click",function(){e.currentSelectedRowPaneId=g,f.slideOutPane(g,!0)})}}}]).controller("SidePaneCtrl",["$scope","$element","animation","paneGroupConstants",function(a,b,c,d){this.getElement=function(){return b},this.sidePaneTracker={},this.currentWidth=d.SIDE_WIDTH_DEFAULT,this.paneId=d.SIDE_PANE_ID,this.currentSelectedRowPaneId,this.drillDownToMapper={},this.sidePaneRows=[],this.init=function(){var a=this.sidePaneRows;if(a)for(var b in a)if(a.hasOwnProperty(b)){var c=a[b].paneId,d=a[b].drillDownTo;this.drillDownToMapper[c]=d,0==b&&(this.currentSelectedRowPaneId=c,this.sidePaneTracker[c]=[])}},this.getSidePanesList=function(){return this.sidePaneTracker[this.currentSelectedRowPaneId]},this.addToSidePanesList=function(a){void 0===this.sidePaneTracker[this.currentSelectedRowPaneId]?this.sidePaneTracker[this.currentSelectedRowPaneId]=[]:a&&this.sidePaneTracker[this.currentSelectedRowPaneId].push(a)},this.setWidth=function(a){a&&(this.currentWidth=a),c.set(b,{width:this.currentWidth})},this.resizeWidth=function(a){a&&(this.currentWidth=a),c.to(b,.5,{width:a})}}]).directive("sidePane",["paneGroupConstants",function(a){return{restrict:"EA",transclude:!0,replace:!0,templateUrl:"app/scripts/ng_js_att_tpls/paneSelector/sidePane.html",require:["^paneGroup","sidePane"],controller:"SidePaneCtrl",scope:{},link:function(b,c,d,e){var f=e[0],g=e[1];f.addPaneCtrl(a.SIDE_PANE_ID,g)}}}]).directive("drillDownRow",["$parse","paneGroupConstants",function(a,b){return{restrict:"A",replace:!0,require:["^innerPane","^paneGroup"],link:function(a,c,d,e){var f=e[0],g=e[1];c.on("click",function(){var a=f.drillDownTo;f.drillDownTo!==b.NO_DRILL_DOWN&&g.slideOutPane(a),c[0].focus()})}}}]).controller("InnerPaneCtrl",["$scope","$element","animation","paneGroupConstants",function(a,b,c,d){this.getElement=function(){return b},this.paneId=a.paneId,this.drillDownTo,this.currentWidth=d.INNER_PANE_DEFAULT,this.setWidth=function(a){a&&(this.currentWidth=a),c.set(b,{width:this.currentWidth})},this.resizeWidth=function(a,d){c.to(b,.25,{width:a,onComplete:d})},this.displayNone=function(){c.set(b,{display:"none"})},this.displayBlock=function(){c.set(b,{display:"block"}),this&&this.hideRightBorder()},this.floatLeft=function(){c.set(b,{"float":"left"})},this.hideLeftBorder=function(){c.set(b,{borderLeftWidth:"0px"})},this.showLeftBorder=function(){c.set(b,{borderLeftWidth:"1px"})},this.hideRightBorder=function(){c.set(b,{borderRightWidth:"0px"})},this.showRightBorder=function(){c.set(b,{borderRightWidth:"1px"})},this.slideFromRight=function(){c.set(b,{"float":"right"}),c.set(b,{width:this.currentWidth})},this.startOpen=function(){return a.startOpen}}]).directive("innerPane",function(){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/paneSelector/innerPane.html",require:["^paneGroup","innerPane"],controller:"InnerPaneCtrl",scope:{paneId:"@"},link:function(a,b,c,d){""===c.startOpen&&(a.startOpen=!0);var e=d[0],f=d[1];e.addPaneCtrl(a.paneId,f)}}}).controller("PaneGroupCtrl",["$scope","$element","paneGroupConstants",function(a,b,c){this.panes={},this.accountLevelPaneModel=[],this.title=a.title,this.init=function(){function a(a,b){var c,d=[];for(c in a.sidePaneRows)if(a.sidePaneRows.hasOwnProperty(c)){var e=a.sidePaneRows[c];c>0&&b[e.paneId].startOpen&&b[e.paneId].startOpen()&&(d.push(e),a.addToSidePanesList(e.paneId))}if(f)for(c in d)if(d.hasOwnProperty(c)){var g=d[c].paneId,h=b[g];h&&h.setWidth&&h.displayBlock&&(h.setWidth(f),h.displayBlock())}}var b=this.panes[c.SIDE_PANE_ID];if(b){b.init();var d,e=1;for(d in this.panes)this.panes[d].startOpen&&this.panes[d].startOpen()&&e++;var f;if(e>=3&&(f=100/e+"%"),this.panes[b.currentSelectedRowPaneId]){f?(b.setWidth(f),this.panes[b.currentSelectedRowPaneId].setWidth(f)):(b.setWidth(),this.panes[b.currentSelectedRowPaneId].setWidth()),this.panes[b.currentSelectedRowPaneId].displayBlock();for(d in this.panes)d!==c.SIDE_PANE_ID&&d!==b.currentSelectedRowPaneId&&this.panes[d].displayNone(),this.panes[d].drillDownTo=b.drillDownToMapper[d]}a(b,this.panes)}},this.resetPanes=function(){for(var a in this.panes)if(this.panes.hasOwnProperty(a)){var b=this.panes[a];b&&b.paneId!==c.SIDE_PANE_ID&&(b.floatLeft(),b.displayNone())}this.panes[c.SIDE_PANE_ID]&&this.panes[c.SIDE_PANE_ID].setWidth(c.SIDE_WIDTH_DEFAULT)},this.addPaneCtrl=function(a,b){this.panes[a]=b},this._slideOutPane=function(a,b){this.resetPanes();var d;if(b)if(this.panes[c.SIDE_PANE_ID]&&(d=this.panes[c.SIDE_PANE_ID].getSidePanesList()),d){if(this.panes&&this.panes[c.SIDE_PANE_ID])if(0===d.length&&this.panes[a])this.panes[c.SIDE_PANE_ID].setWidth(c.SIDE_WIDTH_DEFAULT),this.panes[a].displayBlock(),this.panes[a].setWidth(c.INNER_PANE_DEFAULT);else{var e=d.length+2,f=100/e+"%";this.panes[c.SIDE_PANE_ID].setWidth(f),this.panes[this.panes[c.SIDE_PANE_ID].currentSelectedRowPaneId]&&(this.panes[this.panes[c.SIDE_PANE_ID].currentSelectedRowPaneId].displayBlock(),this.panes[this.panes[c.SIDE_PANE_ID].currentSelectedRowPaneId].setWidth(f));for(var g in d)this.panes[d[g]]&&(this.panes[d[g]].displayBlock(),this.panes[d[g]].setWidth(f))}}else this.panes&&this.panes[c.SIDE_PANE_ID]&&this.panes[a]&&(this.panes[c.SIDE_PANE_ID].currentSelectedRowPaneId=a,this.panes[c.SIDE_PANE_ID].addToSidePanesList(),this.panes[a].slideFromRight(),this.panes[a].displayBlock(),this.panes[a].setWidth(c.INNER_PANE_DEFAULT));else{var h,i=!1;this.panes[c.SIDE_PANE_ID]&&(h=this.panes[c.SIDE_PANE_ID].getSidePanesList());for(var j in h)if(h.hasOwnProperty(j)){var k=h[j];if(k===a){i=!0;break}}!i&&this.panes[c.SIDE_PANE_ID]&&this.panes[c.SIDE_PANE_ID].addToSidePanesList(a);var l;this.panes[c.SIDE_PANE_ID]&&(l=this.panes[c.SIDE_PANE_ID].getSidePanesList().length);var m=l+2,n=100/m+"%";this.panes[c.SIDE_PANE_ID]&&this.panes[c.SIDE_PANE_ID].setWidth(n);var o;this.panes[c.SIDE_PANE_ID]&&(o=this.panes[c.SIDE_PANE_ID].getSidePanesList()[l-1]);var p=this;p.panes[c.SIDE_PANE_ID]&&(d=p.panes[c.SIDE_PANE_ID].getSidePanesList());for(var q in d)if(d.hasOwnProperty(q)){var r=d[q],s=this.panes[r];r!==o&&s&&(s.setWidth(n),s.displayBlock(),s.floatLeft())}this.panes[this.panes[c.SIDE_PANE_ID].currentSelectedRowPaneId]&&(this.panes[this.panes[c.SIDE_PANE_ID].currentSelectedRowPaneId].displayBlock(),this.panes[this.panes[c.SIDE_PANE_ID].currentSelectedRowPaneId].showRightBorder(),this.panes[this.panes[c.SIDE_PANE_ID].currentSelectedRowPaneId].resizeWidth(n,function(){p.panes[o]&&p.panes[p.panes[c.SIDE_PANE_ID].currentSelectedRowPaneId]&&(p.panes[p.panes[c.SIDE_PANE_ID].currentSelectedRowPaneId].hideRightBorder(),p.panes[o].setWidth(n),p.panes[o].slideFromRight(),p.panes[o].displayBlock(),p.panes[o].floatLeft())}))}},this.slideOutPane=function(a,b){this._slideOutPane(a,b)}}]).directive("paneGroup",["$timeout",function(a){return{restrict:"EA",transclude:!0,replace:!0,templateUrl:"app/scripts/ng_js_att_tpls/paneSelector/paneGroup.html",scope:{},controller:"PaneGroupCtrl",link:function(b,c,d,e){function f(){e.init()}a(f,100)}}}]),angular.module("att.abs.tooltip",["att.abs.position","att.abs.utilities","ngSanitize"]).constant("tooltipDefaultOptions",{placement:"above",animation:!1,popupDelay:0,stylett:"dark",appendToBody:!0}).provider("$tooltip",["tooltipDefaultOptions",function(a){function b(a){var b=/[A-Z]/g,c="-";return a.replace(b,function(a,b){return(b?c:"")+a.toLowerCase()})}var c={mouseenter:"mouseleave",click:"click",focus:"blur",mouseover:"mouseout"},d={};this.options=function(a){angular.extend(d,a)},this.setTriggers=function(a){angular.extend(c,a)},this.$get=["$window","$compile","$timeout","$parse","$document","$position","$interpolate","$attElementDetach",function(e,f,g,h,i,j,k,l){return function(e,m,n){function o(a){var b=a||p.trigger||n,d=c[b]||b;return{show:b,hide:d}}var p=angular.extend({},a,d),q=b(e),r=k.startSymbol(),s=k.endSymbol();return{restrict:"EA",scope:!0,link:function(a,b,c){function d(){a.tt_isOpen?n():k()}function k(){(!F||a.$eval(c[m+"Enable"]))&&(a.tt_popupDelay?y=g(t,a.tt_popupDelay):a.$apply(t))}function n(){a.$apply(function(){u()})}function t(){var c,d,e,f;if(a.tt_content){x&&g.cancel(x),B.css({top:0,left:0,display:"block","z-index":9999}),C?(z=z||i.find("body"),z.append(B)):b.after(B),c=C?j.offset(b):j.position(b),d=B.prop("offsetWidth"),e=B.prop("offsetHeight");var h=10;switch(a.tt_placement){case"right":f=C?{top:c.top+c.height/2-e/2,left:c.left+c.width+G}:{top:c.top+c.height/2-e/2,left:c.left+c.width+h+G};break;case"below":f=C?{top:c.top+c.height+G,left:c.left+c.width/2-d/2}:{top:c.top+c.height+h+G,left:c.left+c.width/2-d/2};break;case"left":f=C?{top:c.top+c.height/2-e/2,left:c.left-d-G}:{top:c.top+c.height/2-e/2,left:c.left-d-h-G};break;default:f=C?{top:c.top-e-G,left:c.left+c.width/2-d/2}:{top:c.top-e-h-G,left:c.left+c.width/2-d/2}}f.top+="px",f.left+="px",B.css(f),a.tt_isOpen=!0}}function u(){a.tt_isOpen=!1,g.cancel(y),angular.isDefined(a.tt_animation)&&a.tt_animation()?x=g(function(){l(B[0])},500):l(B[0])}function v(){b.removeAttr("title"),w||(H?b.attr("title",a.tooltipAriaLabel):b.attr("title",a.tt_content))}b.attr("tabindex")||b.attr("tabindex","0");var w=!1;b.bind("mouseenter",function(){w=!0,b.removeAttr("title")}),b.bind("mouseleave",function(){w=!1,v()}),a.parentAttrs=c;var x,y,z,A="<div "+q+'-popup title="'+r+"tt_title"+s+'" content="'+r+"tt_content"+s+'" placement="'+r+"tt_placement"+s+'" animation="tt_animation()" is-open="tt_isOpen" stylett="'+r+"tt_style"+s+'" ></div>',B=f(A)(a),C=angular.isDefined(p.appendToBody)?p.appendToBody:!1,D=o(void 0),E=!1,F=angular.isDefined(c[m+"Enable"]),G=0,H=!1;a.tt_isOpen=!1,a.$watch("tt_isOpen",function(a,b){a===b||a||l(B[0])}),c.$observe(e,function(b){b?(a.tt_content=b,v()):a.tt_isOpen&&u()}),c.$observe(m+"Title",function(b){a.tt_title=b}),c.$observe(m+"Placement",function(b){a.tt_placement=angular.isDefined(b)?b:p.placement}),c.$observe(m+"Style",function(b){a.tt_style=angular.isDefined(b)?b:p.stylett}),c.$observe(m+"Animation",function(b){a.tt_animation=angular.isDefined(b)?h(b):function(){return p.animation}}),c.$observe(m+"PopupDelay",function(b){var c=parseInt(b,10);a.tt_popupDelay=isNaN(c)?p.popupDelay:c}),c.$observe(m+"Trigger",function(a){E&&(b.unbind(D.show,k),b.unbind(D.hide,n)),D=o(a),"focus"===D.show?(b.bind("focus",k),b.bind("blur",n),b.bind("click",function(a){a.stopPropagation()})):D.show===D.hide?b.bind(D.show,d):(b.bind(D.show,k),b.bind(D.hide,n)),E=!0}),c.$observe(m+"AppendToBody",function(b){C=angular.isDefined(b)?h(b)(a):C}),c.$observe(m+"Offset",function(a){G=angular.isDefined(a)?parseInt(a,10):0}),c.$observe(m+"AriaLabel",function(b){angular.isDefined(b)?(a.tooltipAriaLabel=b,H=!0):H=!1,v()}),C&&a.$on("$locationChangeSuccess",function(){a.tt_isOpen&&u()}),a.$on("$destroy",function(){a.tt_isOpen?u():B.remove()})}}}}]}]).directive("tooltipPopup",["$document","$documentBind",function(a,b){return{restrict:"EA",replace:!0,transclude:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"=",stylett:"@"},templateUrl:"app/scripts/ng_js_att_tpls/tooltip/tooltip-popup.html",link:function(a,c){a.$watch("isOpen",function(){a.isOpen}),c.bind("click",function(a){a.stopPropagation()});var d=function(){a.$apply(function(){a.isOpen=!1})};b.event("click","isOpen",d,a,!0,10)}}}]).directive("tooltip",["$tooltip",function(a){return a("tooltip","tooltip","mouseenter")}]).directive("tooltipCondition",["$timeout",function(a){return{restrict:"EA",replace:!0,scope:{tooltipCondition:"@?"},template:'<p><span tooltip="{{tooltipCondition}}" ng-if="showpop">{{tooltipCondition}}</span><span id="innerElement" ng-hide="showpop">{{tooltipCondition}}</span></p>',link:function(b,c,d){b.showpop=!1,"true"===d.height?a(function(){var a=c[0].offsetHeight,d=c.children(0)[0].offsetHeight;d>a&&(b.showpop=!0)}):b.tooltipCondition.length>=25&&(b.showpop=!0)}}}]),angular.module("att.abs.popOvers",["att.abs.tooltip","att.abs.utilities","ngSanitize"]).directive("popover",["$tooltip",function(a){return a("popover","popover","click")}]).directive("popoverPopup",["$document","$documentBind","$timeout","events","DOMHelper",function(a,b,c,d,e){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/popOvers/popOvers.html",scope:{content:"@",placement:"@",animation:"&",isOpen:"=",stylett:"@"},link:function(a,f,g,h){a.closeable=!1;try{a.closeable=""===a.$parent.parentAttrs.closeable?!0:!1}catch(i){}var j=void 0,k=void 0,l=function(b){a.$apply(function(){a.isOpen=!1})},m=function(b){(27===b.which||27===b.keyCode)&&(console.log("ESC was pressed!"),a.$apply(function(){a.isOpen=!1}))};c(function(){k=e.firstTabableElement(f)},10,!1),a.$watch("isOpen",function(b){if(a.isOpen){if(j=document.activeElement,angular.isDefined(k))try{k.focus()}catch(c){}}else if(angular.isDefined(j))try{j.focus()}catch(c){}}),a.$watch("stylett",function(b){a.popOverStyle=b}),a.$watch("placement",function(b){a.popOverPlacement=b}),a.closeMe=function(){a.isOpen=!1},f.bind("click",function(a){d.stopPropagation(a)}),b.event("click","isOpen",l,a,!0,10),b.event("keydown","isOpen",m,a,!0,10)}}}]),angular.module("att.abs.profileCard",[]).constant("profileStatus",{status:{ACTIVE:{status:"Active",color:"green"},DEACTIVATED:{status:"Deactivated",color:"red"},LOCKED:{status:"Locked",color:"red"},IDLE:{status:"Idle",color:"yellow"},PENDING:{status:"Pending",color:"blue"}},role:"COMPANY ADMINISTRATOR"}).directive("profileCard",["$http","$q","profileStatus",function(a,b,c){return{restrict:"EA",replace:"true",templateUrl:function(a,b){return b.addUser?"app/scripts/ng_js_att_tpls/profileCard/addUser.html":"app/scripts/ng_js_att_tpls/profileCard/profileCard.html"},scope:{profile:"="},link:function(a,d,e){function f(a){var c=b.defer(),d=new Image;return d.onerror=function(){c.reject(!1)},d.onload=function(){c.resolve(!0)},void 0!==a&&a.length>0?d.src=a:c.reject(!1),c.promise}if(a.image=!0,!e.addUser){a.image=!1,f(a.profile.img).then(function(b){a.image=b});var g=a.profile.name.split(" ");a.initials="";for(var h=0;h<g.length;h++)a.initials+=g[h][0];a.profile.role.toUpperCase()===c.role&&(a.badge=!0);var i=c.status[a.profile.state.toUpperCase()];i&&(a.profile.state=c.status[a.profile.state.toUpperCase()].status,a.colorIcon=c.status[a.profile.state.toUpperCase()].color,(a.profile.state.toUpperCase()===c.status.PENDING.status.toUpperCase()||a.profile.state.toUpperCase()===c.status.LOCKED.status.toUpperCase())&&(a.profile.lastLogin=a.profile.state));var j=(new Date).getTime(),k=new Date(a.profile.lastLogin).getTime(),l=(j-k)/864e5;1>=l?a.profile.lastLogin="Today":2>=l&&(a.profile.lastLogin="Yesterday")}}}}]),angular.module("att.abs.progressBars",[]).directive("attProgressBar",[function(){return{restrict:"A",replace:!0,templateUrl:"app/scripts/ng_js_att_tpls/progressBars/progressBars.html"}}]),angular.module("att.abs.radio",[]).constant("attRadioConfig",{activeClass:"att-radio--on",disabledClass:"att-radio--disabled"}).directive("attRadio",["$compile","attRadioConfig",function(a,b){return{scope:{},restrict:"A",require:"ngModel",link:function(c,d,e,f){var g=f;c.radioVal="";var h=angular.element('<div att-accessibility-click="13,32" ng-click="updateModel($event)" class="att-radio"></div>');d.attr("value",e.attRadio),d.removeAttr("att-radio"),d.removeAttr("title"),d.attr("ng-model","radioVal"),h.append(d.prop("outerHTML")),h.append('<div class="att-radio__indicator"></div>'),h.attr("title",e.title);var i=h.prop("outerHTML");i=a(i)(c),d=d.replaceWith(i);var j=i.find("input");j.on("focus",function(){i.css("outline","thin dotted #333"),i.css("outline","-webkit-focus-ring-color auto 5px")}),j.on("blur",function(){i.css("outline","none")}),g.$render=function(){c.radioVal=g.$modelValue;var a=angular.equals(g.$modelValue,e.attRadio);i.toggleClass(b.activeClass,a)},c.updateModel=function(){j[0].focus();var a=i.hasClass(b.activeClass);a||c.disabled||(g.$setViewValue(a?null:e.attRadio),g.$render())},e.$observe("disabled",function(a){c.disabled=a||"disabled"===a||"true"===a,c.disabled&&(i.addClass(b.disabledClass),i.attr("tabindex","-1"))})}}}]),angular.module("att.abs.scrollbar",["att.abs.position"]).constant("attScrollbarConstant",{defaults:{axis:"y",navigation:!1,wheel:!0,wheelSpeed:40,wheelLock:!0,scrollInvert:!1,trackSize:!1,thumbSize:!1,alwaysVisible:!0}}).directive("attScrollbar",["$window","$timeout","$parse","$animate","attScrollbarConstant","$position",function(a,b,c,d,e,f){return{restrict:"A",scope:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/scrollbar/scrollbar.html",controller:["$scope","$element","$attrs",function(g,h,i){function j(){w.contentRatio<=1&&w.contentPosition>w.contentSize-w.viewportSize?w.contentPosition=w.contentSize-w.viewportSize:w.contentRatio>1&&w.contentPosition>0&&(w.contentPosition=0),w.contentPosition<=0?g.prevAvailable=!1:g.prevAvailable=!0,w.contentPosition>=w.contentSize-w.viewportSize?g.nextAvailable=!1:g.nextAvailable=!0}function k(){F?(z.on("touchstart",m),C.on("touchstart",m)):(C.on("mousedown",n),B.on("mousedown",r)),angular.element(a).on("resize",l),w.options.wheel&&h.on(G,o)}function l(){w.update()}function m(a){1===a.touches.length&&(a.stopPropagation(),n(a.touches[0]))}function n(a){x.addClass("scroll-no-select"),h.addClass("scroll-no-select"),w.options.alwaysVisible||B.addClass("visible"),D=E?a.clientX:a.clientY,w.thumbPosition=parseInt(C.css(J),10)||0,F?(L=!1,K=!1,z.on("touchmove",p),z.on("touchend",s),C.on("touchmove",q),C.on("touchend",s)):(y.on("mousemove",r),y.on("mouseup",s),C.on("mouseup",s))}function o(c){if(!(w.contentRatio>=1)){w.options.alwaysVisible||(v&&b.cancel(v),B.addClass("visible"),v=b(function(){B.removeClass("visible")},100));var d=c&&c.originalEvent||c||a.event,e=w.options.axis.toUpperCase(),f={X:d.deltaX||0,Y:d.deltaY||0},i=0===d.deltaMode?w.options.wheelSpeed:1;w.options.scrollInvert&&(i*=-1),"mousewheel"===G&&(f.Y=-1*d.wheelDelta/40,d.wheelDeltaX&&(f.X=-1*d.wheelDeltaX/40)),f.X*=-1/i,f.Y*=-1/i;var k=f[e];w.contentPosition-=k*w.options.wheelSpeed,w.contentPosition=Math.min(w.contentSize-w.viewportSize,Math.max(0,w.contentPosition)),fireEvent(h[0],"move"),j(),C.css(J,w.contentPosition/w.trackRatio+"px"),A.css(J,-w.contentPosition+"px"),(w.options.wheelLock||w.contentPosition!==w.contentSize-w.viewportSize&&0!==w.contentPosition)&&d.preventDefault(),g.$apply()}}function p(a){a.preventDefault(),L=!0,r(a.touches[0])}function q(a){a.preventDefault(),K=!0,r(a.touches[0])}function r(a){if(!(w.contentRatio>=1)){var b=E?a.clientX:a.clientY,c=b-D;(w.options.scrollInvert&&!F||F&&!w.options.scrollInvert)&&(c=D-b),L&&F&&(c=D-b),K&&F&&(c=b-D);var d=Math.min(w.trackSize-w.thumbSize,Math.max(0,w.thumbPosition+c));w.contentPosition=d*w.trackRatio,fireEvent(h[0],"move"),j(),C.css(J,d+"px"),A.css(J,-w.contentPosition+"px"),g.$apply()}}function s(){x.removeClass("scroll-no-select"),h.removeClass("scroll-no-select"),w.options.alwaysVisible||B.removeClass("visible"),y.off("mousemove",r),y.off("mouseup",s),C.off("mouseup",s),y.off("touchmove",p),y.off("ontouchend",s),C.off("touchmove",q),C.off("touchend",s)}var t={axis:i.attScrollbar||e.defaults.axis,navigation:i.navigation||e.defaults.navigation,wheel:e.defaults.wheel,wheelSpeed:e.defaults.wheelSpeed,wheelLock:e.defaults.wheelLock,scrollInvert:e.defaults.scrollInvert,trackSize:e.defaults.trackSize,thumbSize:e.defaults.thumbSize,alwaysVisible:e.defaults.alwaysVisible},u=i.scrollbar;u=u?c(u)(g):{},this.options=angular.extend({},t,u),this._defaults=t;var v,w=this,x=angular.element(document.querySelectorAll("body")[0]),y=angular.element(document),z=angular.element(h[0].querySelectorAll(".scroll-viewport")[0]),A=angular.element(h[0].querySelectorAll(".scroll-overview")[0]),B=angular.element(h[0].querySelectorAll(".scroll-bar")[0]),C=angular.element(h[0].querySelectorAll(".scroll-thumb")[0]),D=0,E="x"===this.options.axis,F=!1,G="onwheel"in document?"wheel":void 0!==document.onmousewheel?"mousewheel":"DOMMouseScroll",H=E?"width":"height",I=H.charAt(0).toUpperCase()+H.slice(1).toLowerCase(),J=E?"left":"top",K=!1,L=!1;("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)&&(F=!0),this.contentPosition=0,this.viewportSize=0,this.contentSize=0,this.contentRatio=0,this.trackSize=0,this.trackRatio=0,this.thumbSize=0,this.thumbPosition=0,this.initialize=function(){return this.options.alwaysVisible||B.css("opacity",0),w.update(),k(),w},this.setSizeData=function(){this.viewportSize=z.prop("offset"+I)||1,this.contentSize=A.prop("scroll"+I)||1,this.contentRatio=this.viewportSize/this.contentSize,this.trackSize=this.options.trackSize||this.viewportSize,this.thumbSize=Math.min(this.trackSize,Math.max(0,this.options.thumbSize||this.trackSize*this.contentRatio)),this.trackRatio=this.options.thumbSize?(this.contentSize-this.viewportSize)/(this.trackSize-this.thumbSize):this.contentSize/this.trackSize},this.update=function(a){return w.setSizeData(),D=B.prop("offsetTop"),B.toggleClass("disable",this.contentRatio>=1||isNaN(this.contentRatio)),!this.options.alwaysVisible&&this.contentRatio<1&&this.viewportSize>0&&d.addClass(B,"visible").then(function(){d.removeClass(B,"visible"),g.$digest()}),null!==a&&("bottom"===a?this.contentPosition=this.contentSize-this.viewportSize:this.contentPosition=parseInt(a,10)||0),j(),C.css(J,w.contentPosition/w.trackRatio+"px"),B.css(H,w.trackSize+"px"),C.css(H,w.thumbSize+"px"),A.css(J,-w.contentPosition+"px"),this},fireEvent=function(a,b){var c,d=a;document.createEvent?(c=document.createEvent("HTMLEvents"),c.initEvent(b,!0,!1),d.dispatchEvent(c)):document.createEventObject&&(c=document.createEventObject(),d.fireEvent("on"+b,c))},g.customScroll=function(a){if(!(w.contentRatio>=1)){var b,c=f.position(z);b=E?c.width:c.height,a?w.contentPosition+=b:w.contentPosition-=b,w.contentPosition=Math.min(w.contentSize-w.viewportSize,Math.max(0,w.contentPosition)),fireEvent(h[0],"move"),j(),C.css(J,w.contentPosition/w.trackRatio+"px"),A.css(J,-w.contentPosition+"px")}},this.cleanup=function(){z.off("touchstart",m),C.off("mousedown",n),B.off("mousedown",r),C.off("touchmove",q),C.off("touchend",s),angular.element(a).off("resize",l),h.off(G,o),w.options.alwaysVisible=!0,s()}}],link:function(a,c,d,e){a.navigation=e.options.navigation,a.viewportHeight=d.viewportHeight,a.viewportWidth=d.viewportWidth,a.scrollbarAxis=e.options.axis,"x"===a.scrollbarAxis?c.addClass("horizontal"):"y"===a.scrollbarAxis&&c.addClass("vertical");var f=c.css("position");"relative"!==f&&"absolute"!==f&&c.css("position","relative"),a.$watch(function(){b(g,100,!1)});var g=function(){var b=angular.element(c[0].querySelectorAll(".scroll-overview")[0]),d=b.prop("scrollHeight"),f=a.oldValue;d!==f&&(a.oldValue=d,e.update())};e.initialize(),c.on("$destroy",function(){e.cleanup()})}}}]),angular.module("att.abs.search",["att.abs.utilities","att.abs.position","att.abs.utilities"]).directive("attSearch",["$document","$filter","$isElement","$documentBind","$timeout","$log","keymap",function(a,b,c,d,e,f,g){return{restrict:"A",scope:{cName:"=attSearch"},transclude:!1,replace:!1,require:"ngModel",templateUrl:"app/scripts/ng_js_att_tpls/search/search.html",link:function(b,h,i,j){b.selectedIndex=-1,b.selectedOption=i.placeholder,b.isDisabled=!1,b.className="select2-match",b.showSearch=!1,b.showlist=!1;var k="",l=new Date,m=void 0,n=[];e(function(){n=h.find("li")},10),f.warn("attSearch is deprecated, please use attSelect instead. This component will be removed by version 2.7."),i.noFilter||"true"===i.noFilter?b.noFilter=!0:b.noFilter=!1,"false"===i.placeholderAsOption?b.selectedOption=i.placeholder:b.selectMsg=i.placeholder,(i.startsWithFilter||"true"===i.startsWithFilter)&&(b.startsWithFilter=!0),"true"===i.showInputFilter&&(b.showSearch=!1,f.warn("showInputFilter functionality has been removed from the library.")),i.disabled&&(b.isDisabled=!0),m=angular.element(h).children().eq(0).find("a")[0];var o=0,p=function(){if(b.noFilter){var a=k,c=0;for(c=o;c<b.cName.length;c++)if(b.cName[c].title.startsWith(a)&&c!==b.selectedIndex){b.selectOption(b.cName[c],c,b.showlist),o=c,k="";break}(c>=b.cName.length||!b.cName[c+1].title.startsWith(a))&&o>0&&(o=0)}};b.showDropdown=function(){i.disabled||(b.showlist=!b.showlist,b.setSelectTop())},h.bind("keydown",function(a){if(g.isAllowedKey(a.keyCode)||g.isControl(a)||g.isFunctionKey(a))switch(a.preventDefault(),a.stopPropagation(),a.keyCode){case g.KEY.DOWN:b.selectNext();break;case g.KEY.UP:b.selectPrev(),k="";break;case g.KEY.ENTER:b.selectCurrent(),k="";break;case g.KEY.BACKSPACE:b.title="",k="",b.$apply();break;case g.KEY.SPACE:b.noFilter||(b.title+=" "),b.$apply();break;case g.KEY.ESC:""===b.title||void 0===b.title?(b.showlist=!1,m.focus(),b.$apply()):(b.title="",b.$apply()),b.noFilter&&(k="",m.focus(),b.showlist=!1)}else if(9!==a.keyCode){if(b.noFilter){var c=new Date,d=Math.abs(l.getMilliseconds()-c.getMilliseconds());l=c,d>100&&(k=""),k=k?k+String.fromCharCode(a.keyCode):String.fromCharCode(a.keyCode),k.length>2&&(k=k.substring(0,2)),p()}else b.showlist=!0,b.title=b.title?b.title+String.fromCharCode(a.keyCode):String.fromCharCode(a.keyCode);b.$apply()}else 9===a.keyCode&&(b.showlist=!1,b.title="",b.$apply())}),b.selectOption=function(a,c,d){-1===c||"-1"===c?(b.selCategory="",b.selectedIndex=-1,j.$setViewValue(""),"false"!==i.placeholderAsOption&&(b.selectedOption=b.selectMsg)):(b.selCategory=b.cName[c],b.selectedIndex=c,j.$setViewValue(b.selCategory),b.selectedOption=b.selCategory.title,angular.isDefined(n[c])&&n[c].focus()),b.title="",d||(b.showlist=!1,m.focus()),b.$apply()},b.selectCurrent=function(){b.showlist?(b.selectOption(b.selectMsg,b.selectedIndex,!1),b.$apply()):(b.showlist=!0,b.setSelectTop(),b.$apply())},b.hoverIn=function(a){b.selectedIndex=a,b.focusme()},b.setSelectTop=function(){e(function(){if(b.showlist&&!b.noFilter){var a=angular.element(h)[0].querySelector(".select2-results");if(angular.element(a.querySelector(".select2-result-current"))[0])var c=angular.element(a.querySelector(".select2-result-current"))[0].offsetTop;angular.element(a)[0].scrollTop=c}})},b.setCurrentTop=function(){e(function(){if(b.showlist){var a=angular.element(h)[0].querySelector(".select2-results");if(angular.element(a.querySelector(".hovstyle"))[0])var c=angular.element(a.querySelector(".hovstyle"))[0].offsetTop;c<angular.element(a)[0].scrollTop?angular.element(a)[0].scrollTop-=30:c+30>angular.element(a)[0].clientHeight&&(angular.element(a)[0].scrollTop+=30)}})},b.selectNext=function(){b.selectedIndex+1<=b.cName.length-1&&(b.selectedIndex+=1,b.showlist||b.selectOption(b.selectMsg,b.selectedIndex,!1),b.focusme(),b.$apply()),b.setCurrentTop()},b.selectPrev=function(){b.selectedIndex-1>=0?(b.selectedIndex-=1,b.showlist||b.selectOption(b.selectMsg,b.selectedIndex,!1),b.focusme(),b.$apply()):b.selectedIndex-1<0&&(void 0===i.placeholderAsOption||"true"===i.placeholderAsOption?b.selectedIndex=-1:b.selectedIndex=0,b.showlist||b.selectOption(b.selectMsg,b.selectedIndex,!1),b.focusme(),b.$apply()),b.setCurrentTop()},b.updateSelection=function(a){b.selectedOption=a.title,b.title=""},b.focusme=function(){e(function(){var a=angular.element(h).find("ul").find("li"),c=b.selectedIndex+2;b.noFilter&&(c=b.selectedIndex),angular.isDefined(a[c])&&a[c].focus()})},b.$watch("selCategory",function(a){a&&b.updateSelection(a)}),j.$viewChangeListeners.push(function(){b.$eval(i.ngChange)}),j.$render=function(){b.selCategory=j.$viewValue};var q=function(d){var e=c(angular.element(d.target),h,a);e||(b.showlist=!1,m.focus(),b.$apply())};d.click("showlist",q,b)}}}]),angular.module("att.abs.select",["att.abs.utilities","att.abs.position","att.abs.utilities"]).directive("attSelect",["$document","$filter","$isElement","$documentBind","$timeout","keymap","$log",function(a,b,c,d,e,f,g){return{restrict:"A",scope:{cName:"=attSelect"},transclude:!1,replace:!1,require:"ngModel",templateUrl:"app/scripts/ng_js_att_tpls/select/select.html",link:function(h,i,j,k){h.selectedIndex=-1,h.selectedOption=j.placeholder,h.isDisabled=!1,h.className="select2-match",h.showSearch=!1,h.showlist=!1;var l="",m=new Date,n=void 0,o=[];e(function(){o=i.find("li")},10),j.noFilter||"true"===j.noFilter?h.noFilter=!0:h.noFilter=!1,"false"===j.placeholderAsOption?h.selectedOption=j.placeholder:h.selectMsg=j.placeholder,(j.startsWithFilter||"true"===j.startsWithFilter)&&(h.startsWithFilter=!0),"true"===j.showInputFilter&&(h.showSearch=!1,g.warn("showInputFilter functionality has been removed from the library.")),j.disabled&&(h.isDisabled=!0);var p=function(){return h.startsWithFilter?"startsWith":"filter"};n=angular.element(i).children().eq(0).find("span")[0];var q=0,r=function(){if(h.noFilter){var a=l,b=0;for(b=q;b<h.cName.length;b++)if(h.cName[b].title.startsWith(a)&&b!==h.selectedIndex){\r
-h.selectOption(h.cName[b],b,h.showlist),q=b,l="";break}(b>=h.cName.length||!h.cName[b+1].title.startsWith(a))&&q>0&&(q=0)}};h.showDropdown=function(){j.disabled||(h.showlist=!h.showlist,h.setSelectTop(),h.focusme())},i.bind("keydown",function(a){if(f.isAllowedKey(a.keyCode)||f.isControl(a)||f.isFunctionKey(a))switch(a.preventDefault(),a.stopPropagation(),a.keyCode){case f.KEY.DOWN:h.selectNext();break;case f.KEY.UP:h.selectPrev(),l="";break;case f.KEY.ENTER:h.selectCurrent(),l="";break;case f.KEY.BACKSPACE:h.title="",l="",h.$apply();break;case f.KEY.SPACE:h.noFilter||(h.title+=" "),h.$apply();break;case f.KEY.ESC:""===h.title||void 0===h.title?(h.showlist=!1,n.focus(),h.$apply()):(h.title="",h.$apply()),h.noFilter&&(l="",n.focus(),h.showlist=!1)}else if(a.keyCode!==f.KEY.TAB){if(h.noFilter){var c=new Date,d=Math.abs(m.getMilliseconds()-c.getMilliseconds());m=c,d>100&&(l=""),l=l?l+String.fromCharCode(a.keyCode):String.fromCharCode(a.keyCode),l.length>2&&(l=l.substring(0,2)),r()}else if(h.showlist=!0,h.title=h.title?h.title+String.fromCharCode(a.keyCode):String.fromCharCode(a.keyCode),""!=h.title)for(var e=b(p())(h.cName,h.title),g=0;g<e.length;g++)for(var i=0;i<h.cName.length&&angular.isDefined(h.cName[h.selectedIndex]);i++)if(e[g].title===h.cName[h.selectedIndex].title){h.selectedIndex=g,h.focusme();break}h.$apply()}else a.keyCode===f.KEY.TAB&&(h.showlist=!1,h.title="",h.$apply())}),h.selectOption=function(a,c,d){if(-1===c||"-1"===c)h.selCategory="",h.selectedIndex=-1,k.$setViewValue(""),"false"!==j.placeholderAsOption&&(h.selectedOption=h.selectMsg);else{if(""!=h.title){var f=b(p())(h.cName,h.title);if(angular.isDefined(f)&&angular.isDefined(f[c]))for(var g=0;g<h.cName.length;g++)if(f[c].title===h.cName[g].title){c=g;break}}h.selCategory=h.cName[c],h.selectedIndex=c,k.$setViewValue(h.selCategory),h.selectedOption=h.selCategory.title,e(function(){if(angular.isDefined(o[c]))try{o[index].focus()}catch(a){}})}h.title="",d||(h.showlist=!1,n.focus())},h.selectCurrent=function(){h.showlist?h.selectOption(h.selectMsg,h.selectedIndex,!1):(h.showlist=!0,h.setSelectTop()),h.$apply()},h.hoverIn=function(a){h.selectedIndex=a,h.focusme()},h.setSelectTop=function(){e(function(){if(h.showlist&&!h.noFilter){var a=angular.element(i)[0].querySelector(".select2-results");if(angular.element(a.querySelector(".select2-result-current"))[0])var b=angular.element(a.querySelector(".select2-result-current"))[0].offsetTop;angular.element(a)[0].scrollTop=b}})},h.setCurrentTop=function(){e(function(){if(h.showlist){var a=angular.element(i)[0].querySelector(".select2-results");if(angular.element(a.querySelector(".hovstyle"))[0])var b=angular.element(a.querySelector(".hovstyle"))[0].offsetTop;b<angular.element(a)[0].scrollTop?angular.element(a)[0].scrollTop-=30:b+30>angular.element(a)[0].clientHeight&&(angular.element(a)[0].scrollTop+=30)}})},h.selectNext=function(){h.cName.length;if(h.selectedIndex+1<=h.cName.length-1){h.selectedIndex+=1;var a=h.cName[h.selectedIndex].disabled;a&&(h.selectedIndex+=1),h.showlist||h.selectOption(h.selectMsg,h.selectedIndex,!1),h.focusme(),h.$apply()}h.setCurrentTop()},h.selectPrev=function(){if(h.selectedIndex-1>=0){h.selectedIndex-=1;var a=h.cName[h.selectedIndex].disabled;a&&(h.selectedIndex-=1),h.showlist||h.selectOption(h.selectMsg,h.selectedIndex,!1),h.focusme(),h.$apply()}else h.selectedIndex-1<0&&(void 0===j.placeholderAsOption||"true"===j.placeholderAsOption?void 0===j.placeholder?h.selectedIndex=0:h.selectedIndex=-1:h.selectedIndex=0,h.showlist||h.selectOption(h.selectMsg,h.selectedIndex,!1),h.focusme(),h.$apply());h.setCurrentTop()},h.updateSelection=function(a){h.selectedOption=a.title,h.title="",a.index<0&&h.selectOption(h.selectMsg,a.index,h.showlist)},h.focusme=function(){e(function(){var a=angular.element(i).find("ul").find("li"),b=h.selectedIndex+2;if(h.noFilter&&(b=h.selectedIndex),angular.isDefined(a[b]))try{a[b].focus()}catch(c){}})},h.$watch("selCategory",function(a){a&&h.updateSelection(a)}),k.$viewChangeListeners.push(function(){h.$eval(j.ngChange)}),k.$render=function(){h.selCategory=k.$viewValue};var s=function(b){var d=c(angular.element(b.target),i,a);d||(h.showlist=!1,n.focus(),h.$apply())};d.click("showlist",s,h)}}}]).directive("textDropdown",["$document","$isElement","$documentBind","keymap",function(a,b,c,d){return{restrict:"EA",replace:!0,scope:{actions:"=actions",defaultAction:"=defaultAction",onActionClicked:"=?"},templateUrl:"app/scripts/ng_js_att_tpls/select/textDropdown.html",link:function(e,f,g){e.selectedIndex=0,e.selectedOption=g.placeholder,e.isDisabled=!1,e.isActionsShown=!1;var h=void 0;if(g.disabled&&(e.isDisabled=!0),h=f.find("div")[0],angular.isDefined(e.defaultAction))if(angular.isDefined(e.defaultAction)||""!==e.defaultAction){for(var i in e.actions)if(e.actions[i]===e.defaultAction){e.currentAction=e.actions[i],e.selectedIndex=e.actions.indexOf(i),e.isActionsShown=!1;break}}else e.currentAction=e.actions[0];else e.currentAction=e.actions[0],e.selectedIndex=0;e.toggle=function(){e.isActionsShown=!e.isActionsShown},e.chooseAction=function(a,b,c){null!=a?(e.currentAction=b,e.selectedIndex=c):e.currentAction=e.actions[e.selectedIndex],angular.isFunction(e.onActionClicked)&&e.onActionClicked(e.currentAction),e.toggle()},e.isCurrentAction=function(a){return a===e.currentAction},f.bind("keydown",function(a){if(d.isAllowedKey(a.keyCode)||d.isControl(a)||d.isFunctionKey(a)){switch(a.preventDefault(),a.stopPropagation(),a.keyCode){case d.KEY.DOWN:e.selectNext();break;case d.KEY.UP:e.selectPrev();break;case d.KEY.ENTER:e.selectCurrent();break;case d.KEY.ESC:e.isActionsShown=!1,h.focus(),e.$apply()}return void e.$apply()}a.keyCode===d.KEY.TAB&&(e.isActionsShown=!1,e.$apply())}),e.selectCurrent=function(){e.selectedIndex<0&&(e.selectedIndex=0),e.isActionsShown?e.chooseAction(null,e.currentAction):e.toggle()},e.selectNext=function(){e.isActionsShown&&(e.selectedIndex+1<e.actions.length?e.selectedIndex+=1:e.selectedIndex=e.actions.length-1,e.$apply())},e.selectPrev=function(){e.isActionsShown&&(e.selectedIndex-1>=0?e.selectedIndex-=1:e.selectedIndex-1<0&&(e.selectedIndex=0),e.$apply())},e.hoverIn=function(a){e.selectedIndex=a};var j=function(c){var d=b(angular.element(c.target),f,a);d||(e.toggle(),e.$apply())};c.click("isActionsShown",j,e)}}}]),angular.module("att.abs.slider",["att.abs.position"]).constant("sliderDefaultOptions",{width:300,step:1,precision:0,disabledWidth:116}).directive("attSlider",["sliderDefaultOptions","$position","$document",function(a,b,c){return{restrict:"EA",replace:!0,transclude:!0,scope:{floor:"=",ceiling:"=",step:"@",precision:"@",width:"@",textDisplay:"=",value:"=",ngModelSingle:"=?",ngModelLow:"=?",ngModelHigh:"=?",ngModelDisabled:"=?"},templateUrl:"app/scripts/ng_js_att_tpls/slider/slider.html",link:function(d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y=0,z=!1;d.minPtrOffset=0,d.maxPtrOffset=0;var A=a.disabledWidth,B=e.children();n=B[0].children,n=angular.element(n[0]),x=B[1].children,w=angular.element(x[0]),v=angular.element(x[1]),u=angular.element(x[2]),o=null==f.ngModelSingle&&null==f.ngModelLow&&null==f.ngModelHigh&&null!=f.ngModelDisabled,r=null==f.ngModelSingle&&null!=f.ngModelLow&&null!=f.ngModelHigh,s="ngModelLow",t="ngModelHigh",r?w.remove():(v.remove(),u.remove()),o?(d.disabledStyle={width:A+"px",zIndex:1},d.handleStyle={left:A+"px"}):n.remove(),p=parseFloat(d.floor),q=parseFloat(d.ceiling),m=q-p,g=0,h=void 0!==f.width?f.width:0!==e[0].clientWidth?e[0].clientWidth:a.width,l=h-g,d.keyDown=function(c){if(39===c.keyCode){var f=b.position(e).left;if(i)"ngModelLow"===d.ref?(j=a.step+j,i=j):"ngModelHigh"===d.ref?(k=a.step+k,i=k):i=a.step+i;else{if(r&&"ngModelLow"===d.ref)return;i=a.step+f,j=k=i}}else if(37===c.keyCode){var g=b.position(w).left;i?0>=i||("ngModelLow"===d.ref?(j-=a.step,i=j):"ngModelHigh"===d.ref?(k-=a.step,i=k):(i-=a.step,j=k=i)):i=g-a.step}i>=0&&d.ptrOffset(i)},d.mouseDown=function(a,b){d.ref=b,z=!0,y=r?d.ref===s?a.clientX-d.minPtrOffset:a.clientX-d.maxPtrOffset:i?a.clientX-i:a.clientX,o&&(d.ref="ngModelDisabled",d.disabledStyle={width:A+"px",zIndex:1})},d.moveElem=function(a){if(z){var b;b=a.clientX,i=b-y,d.ptrOffset(i)}},d.focus=function(a,b){console.log(b),d.ref=b},d.mouseUp=function(a){z=!1,v.removeClass("dragging"),u.removeClass("dragging"),w.removeClass("dragging"),c.off("mousemove")},d.keyUp=function(a){z=!1,v.removeClass("dragging"),u.removeClass("dragging"),w.removeClass("dragging"),c.off("mousemove")},d.calStep=function(a,b,c,d){var e,f,g,h;return null===d&&(d=0),null===c&&(c=1/Math.pow(10,b)),f=(a-d)%c,h=f>c/2?a+c-f:a-f,e=Math.pow(10,b),g=h*e/e,g.toFixed(b)},d.percentOffset=function(a){return(a-g)/l*100},d.ptrOffset=function(b){var c,e;if(b=Math.max(Math.min(b,h),g),c=d.percentOffset(b),e=p+m*c/100,r){var f;d.ref===s?(d.minHandleStyle={left:b+"px"},d.minNewVal=e,d.minPtrOffset=b,v.addClass("dragging"),e>d.maxNewVal&&(d.ref=t,u[0].focus(),d.maxNewVal=e,d.maxPtrOffset=b,u.addClass("dragging"),v.removeClass("dragging"),d.maxHandleStyle={left:b+"px"})):(d.maxHandleStyle={left:b+"px"},d.maxNewVal=e,d.maxPtrOffset=b,u.addClass("dragging"),e<d.minNewVal&&(d.ref=s,v[0].focus(),d.minVal=e,d.minPtrOffset=b,v.addClass("dragging"),u.removeClass("dragging"),d.minHandleStyle={left:b+"px"})),f=parseInt(d.maxPtrOffset)-parseInt(d.minPtrOffset),d.rangeStyle={width:f+"px",left:d.minPtrOffset+"px"}}else o&&b>A?d.rangeStyle={width:b+"px",zIndex:0}:(w.addClass("dragging"),d.rangeStyle={width:b+"px"}),d.handleStyle={left:b+"px"};(void 0===d.precision||void 0===d.step)&&(d.precision=a.precision,d.step=a.step),e=d.calStep(e,parseInt(d.precision),parseFloat(d.step),parseFloat(d.floor)),d[d.ref]=e}}}}]).directive("attSliderMin",[function(){return{require:"^attSlider",restrict:"EA",replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/slider/minContent.html"}}]).directive("attSliderMax",[function(){return{require:"^attSlider",restrict:"EA",replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/slider/maxContent.html"}}]),angular.module("att.abs.splitButtonDropdown",["att.abs.utilities","att.abs.position"]).directive("attButtonDropdown",["$document","$parse","$documentBind","$timeout","$isElement",function(a,b,c,d,e){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/splitButtonDropdown/splitButtonDropdown.html",scope:{btnText:"@",btnType:"@",btnLink:"@",btnClick:"&",toggleTitle:"@"},controller:["$scope","$element",function(a,b){this.cSelected=0,this.closeAndFocusDropdown=function(){a.isDropDownOpen&&a.$apply(function(){a.isDropDownOpen=!1,angular.element(b[0].querySelector("a.dropdown-toggle"))[0].focus()})},this.focusNext=function(){this.cSelected=this.cSelected+1>=this.childScopes.length?a.cycleSelection===!0?0:this.childScopes.length-1:this.cSelected+1,this.childScopes[this.cSelected].sFlag=!0,this.resetFlag(this.cSelected)},this.focusPrev=function(){this.cSelected=this.cSelected-1<0?a.cycleSelection===!0?this.childScopes.length-1:0:this.cSelected-1,this.childScopes[this.cSelected].sFlag=!0,this.resetFlag(this.cSelected)},this.childScopes=[],this.registerScope=function(a){this.childScopes.push(a)},this.resetFlag=function(a){for(var b=0;b<this.childScopes.length;b++)b!==a&&(this.childScopes[b].sFlag=!1)}}],link:function(f,g,h){f.isSmall=""===h.small?!0:!1,f.multiselect=""===h.multiselect?!0:!1,f.cycleSelection=""===h.cycleSelection?!0:!1,f.isDropDownOpen=!1,f.isActionDropdown=!1,f.btnText||(f.isActionDropdown=!0),f.clickFxn=function(){"function"!=typeof f.btnClick||f.btnLink||(f.btnClick=b(f.btnClick),f.btnClick()),f.multiselect===!0&&(f.isDropDownOpen=!1)},f.toggleDropdown=function(){"disabled"!==f.btnType&&(f.isDropDownOpen=!f.isDropDownOpen,f.isDropDownOpen&&d(function(){angular.element(g[0].querySelector("li"))[0].focus()}))},f.btnTypeSelector=function(a,b){""!==a?f.btnTypeFinal=a:f.btnTypeFinal=b};var i=function(b){var c=e(angular.element(b.target),g.find("ul").eq(0),a);c||(f.isDropDownOpen=!1,f.$apply())};c.click("isDropDownOpen",i,f),h.$observe("btnType",function(a){f.btnType=a}),h.$observe("attButtonDropdown",function(a){h.attButtonDropdown=a,f.btnTypeSelector(h.attButtonDropdown,f.btnType)})}}}]).directive("attButtonDropdownItem",["$location","keymap",function(a,b){return{restrict:"EA",require:["^attButtonDropdown","?ngModel"],replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/splitButtonDropdown/splitButtonDropdownItem.html",scope:{itemLink:"@"},link:function(a,c,d,e){angular.element(c[0].querySelector("a"));a.sFlag=!1,e[0].registerScope(a);e[1]?a.isSelected=e[1].$viewValue:a.isSelected=!1,c.bind("keydown",function(c){if(b.isAllowedKey(c.keyCode)||b.isControl(c)||b.isFunctionKey(c))switch(c.preventDefault(),c.stopPropagation(),c.keyCode){case b.KEY.DOWN:e[0].focusNext();break;case b.KEY.UP:e[0].focusPrev();break;case b.KEY.ENTER:a.selectItem();break;case b.KEY.ESC:e[0].closeAndFocusDropdown()}a.$apply()}),a.selectItem=function(){e[1]&&a.$evalAsync(function(){e[1].$setViewValue(!e[1].$viewValue)})}}}}]),angular.module("att.abs.splitIconButton",["att.abs.utilities"]).constant("iconStateConstants",{MIDDLE:"middle",LEFT:"left",RIGHT:"right",NEXT_TO_DROPDOWN:"next-to-dropdown",LEFT_NEXT_TO_DROPDOWN:"left-next-to-dropdown",DIR_TYPE:{LEFT:"left",RIGHT:"right",BUTTON:"button"},SPLIT_ICON_BTN_EVENT_EMITTER_KEY:"splitIconButtonTap"}).directive("expandableLine",[function(){return{restrict:"EA",replace:!0,priority:300,require:["^attSplitIconButton","expandableLine"],controller:["$scope",function(a){a.isActive=!1,this.setActiveState=function(b){a.isActive=b},this.isActive=a.isActive,this.dirType=a.dirType}],template:"<div ng-class=\"{'expand-line-container': !isActive, 'expand-line-container-active': isActive}\"> <div ng-class=\"{'hovered-line':isActive, 'vertical-line':!isActive}\"> </div></div>",scope:{dirType:"@"},link:function(a,b,c,d){var e=d[0],f=d[1];e.addSubCtrl(f)}}}]).controller("AttSplitIconCtrl",["$scope",function(a){this.setType=function(b){a.type=b},this.isDropdown=function(b){a.isDropdown=b},this.dropDownClicked=function(){a.dropDownClicked&&a.dropDownClicked()},this.dirType=a.dirType}]).directive("attSplitIcon",["$document","$timeout","iconStateConstants","$documentBind","events","keymap",function(a,b,c,d,e,f){return{restrict:"EA",replace:!0,priority:200,transclude:!0,require:["^attSplitIconButton","attSplitIcon"],templateUrl:"app/scripts/ng_js_att_tpls/splitIconButton/splitIcon.html",scope:{icon:"@",iconTitle:"@title",hoverWatch:"=",dropDownWatch:"=",dirType:"@"},controller:"AttSplitIconCtrl",link:function(a,b,g,h){var i=h[0],j=h[1];i.addSubCtrl(j),a.iconStateConstants=c;var k,l=0,m=!1;a.isDropdown=!1,a.isDropdownOpen=!1;var n=function(b){a.isDropdown&&(m?(m=!1,a.toggleDropdown()):a.toggleDropdown(!1),a.$apply())};g.dropDownId&&""!==g.dropDownId&&(a.dropDownId=g.dropDownId,a.isDropdown=!0),a.$on(c.SPLIT_ICON_BTN_EVENT_EMITTER_KEY,function(c,d){function g(b){switch(b.which){case f.KEY.TAB:a.toggleDropdown(!1),a.$digest();break;case f.KEY.ESC:n();break;case f.KEY.ENTER:a.isDropDownOpen&&h();break;case f.KEY.UP:b.preventDefault(),e.stopPropagation(b),a.isDropDownOpen&&a.previousItemInDropdown();break;case f.KEY.DOWN:b.preventDefault(),e.stopPropagation(b),a.isDropDownOpen?a.nextItemInDropdown():(m=!0,n(),h())}}function h(){if(void 0===k){k=[];for(var a=b.find("li"),c=0;c<a.length;c++)k.push(a.eq(c));k[l].children().eq(0).addClass("selected-item")}}if("boolean"==typeof d&&d)a.dropDownClicked(),a.isDropDownOpen&&k[l].eq(0).find("a")[0].click();else{var i=d;a.isDropdown&&g(i)}}),a.nextItemInDropdown=function(){k&&l<k.length-1&&(l++,k[l-1].children().eq(0).removeClass("selected-item"),k[l].children().eq(0).addClass("selected-item"))},a.previousItemInDropdown=function(){l>0&&(l--,k[l].children().eq(0).addClass("selected-item"),l+1<k.length&&k[l+1].children().eq(0).removeClass("selected-item"))},a.$watch("isIconHovered",function(b){a.hoverWatch=b}),a.$watch("type",function(b){function c(b,c,d,e,f){a.isMiddle=b,a.isNextToDropDown=c,a.isRight=d,a.isLeft=e,a.isLeftNextDropdown=f}switch(b){case a.iconStateConstants.MIDDLE:c(!0,!1,!1,!0,!1);break;case a.iconStateConstants.LEFT:c(!1,!1,!1,!0,!1);break;case a.iconStateConstants.RIGHT:c(!1,!1,!0,!1,!1);break;case a.iconStateConstants.NEXT_TO_DROPDOWN:c(!1,!0,!0,!0,!1);break;case a.iconStateConstants.LEFT_NEXT_TO_DROPDOWN:c(!1,!1,!1,!0,!0)}}),a.dropDownClicked=function(){m=!0},a.toggleDropdown=function(b){void 0!==b?a.isDropDownOpen=b:a.isDropDownOpen=!a.isDropDownOpen,a.dropDownWatch=a.isDropDownOpen},d.click("isDropdown",n,a)}}}]).controller("AttSplitIconButtonCtrl",["$scope","iconStateConstants",function(a,b){function c(a){var b=-1;for(var c in d.subCtrls){var e=d.subCtrls[c];if(e.dirType===a){b=c;break}}return b}this.subCtrls=[],a.isLeftLineShown=!0,a.isRightLineShown=!0,a.childrenScopes=[];var d=this;this.addSubCtrl=function(a){this.subCtrls.push(a)},this.isLeftLineShown=function(b){return void 0===b?a.isLeftLineShown:void(a.isLeftLineShown=b)},this.isRightLineShown=function(b){return void 0===b?a.isRightLineShown:void(a.isRightLineShown=b)},this.setLeftLineHover=function(d){var e=c(b.DIR_TYPE.LEFT);a.isLeftLineShown&&this.subCtrls[e]&&this.subCtrls[e].setActiveState&&this.subCtrls[e].setActiveState(d)},this.setRightLineHover=function(d){var e=c(b.DIR_TYPE.RIGHT);a.isRightLineShown&&this.subCtrls[e]&&this.subCtrls[e].setActiveState&&this.subCtrls[e].setActiveState(d)},this.toggleLines=function(d,e,f,g){function h(){for(var a=0;j>a;a++)if(i[a]===f){j-1>=a+1&&i[a+1].isLeftLineShown()&&i[a+1].subCtrls[k]&&i[a+1].subCtrls[k].setActiveState&&i[a+1].subCtrls[k].setActiveState(d),a-1>=0&&i[a-1].isRightLineShown()&&i[a-1].subCtrls[l]&&i[a-1].subCtrls[l].setActiveState&&i[a-1].subCtrls[l].setActiveState(d);break}}var i=e.subIconButtons,j=i.length,k=c(b.DIR_TYPE.LEFT),l=c(b.DIR_TYPE.RIGHT);g?i[j-2]==f?i[j-2].isLeftLineShown()?i[j-2].subCtrls[k].setActiveState(d):j-3>=0&&i[j-3].isRightLineShown()&&i[j-3].subCtrls[l].setActiveState(d):(h(),a.isLeftLineShown&&this.subCtrls[k].setActiveState(d),a.isRightLineShown&&this.subCtrls[l].setActiveState(d)):(a.isLeftLineShown||a.isRightLineShown||h(),a.isLeftLineShown&&this.subCtrls[k].setActiveState&&this.subCtrls[k].setActiveState(d),a.isRightLineShown&&this.subCtrls[l].setActiveState&&this.subCtrls[l].setActiveState(d))},this.setButtonType=function(a){var d=c(b.DIR_TYPE.BUTTON);this.subCtrls[d]&&this.subCtrls[d].setType&&this.subCtrls[d].setType(a)}}]).directive("attSplitIconButton",["$document","iconStateConstants","keymap",function(a,b,c){return{restrict:"EA",replace:!0,priority:100,transclude:!0,require:["^attSplitIconButtonGroup","attSplitIconButton"],controller:"AttSplitIconButtonCtrl",templateUrl:"app/scripts/ng_js_att_tpls/splitIconButton/splitIconButton.html",scope:{icon:"@",title:"@",dropDownId:"@"},link:function(a,d,e,f){a.title||(a.title=a.icon);var g=f[0],h=f[1];g.addIconButton(h),d.bind("keydown",function(d){(d.which===c.KEY.ESC||d.which===c.KEY.DOWN||d.which===c.KEY.ENTER||d.which===c.KEY.UP||d.which===c.KEY.TAB)&&(a.clickHandler(),a.$broadcast(b.SPLIT_ICON_BTN_EVENT_EMITTER_KEY,d))}),a.dropDownWatch=!1,a.iconStateConstants=b,a.clickHandler=function(){g.hideLeftLineRightButton(h)},a.$watch("isHovered",function(a){a?h.toggleLines(a,g,h,g.isDropDownOpen):h.toggleLines(a,g,h,g.isDropDownOpen)}),a.$watch("dropDownWatch",function(a){g.isDropDownOpen=a,g.toggleDropdownState(a)})}}}]).controller("AttSplitIconButtonGroupCtrl",["$scope","iconStateConstants",function(a,b){this.subIconButtons=[],this.addIconButton=function(a){this.subIconButtons.push(a)},this.isDropDownOpen=!1,this.hideLeftLineRightButton=function(a){var b=this.subIconButtons.length,c=this.subIconButtons[b-2],d=this.subIconButtons[b-1];a!=c&&a!=d&&d.setLeftLineHover(!1)},this.toggleDropdownState=function(a){var c=this.subIconButtons.length;c>2?a?(this.subIconButtons[c-2].isRightLineShown()?this.subIconButtons[c-2].setRightLineHover(!0):this.subIconButtons[c-1].setLeftLineHover(!0),this.subIconButtons[c-2].setButtonType(b.NEXT_TO_DROPDOWN)):(this.subIconButtons[c-1].setLeftLineHover(!1),this.subIconButtons[c-2].setButtonType(b.MIDDLE)):a?(this.subIconButtons[0].setRightLineHover(!0),this.subIconButtons[0].setButtonType(b.LEFT_NEXT_TO_DROPDOWN)):this.subIconButtons[0].setButtonType(b.LEFT)}}]).directive("attSplitIconButtonGroup",["$document","$timeout","iconStateConstants",function(a,b,c){return{restrict:"EA",replace:!0,priority:50,transclude:!0,require:"attSplitIconButtonGroup",controller:"AttSplitIconButtonGroupCtrl",templateUrl:"app/scripts/ng_js_att_tpls/splitIconButton/splitIconButtonGroup.html",scope:{},link:function(a,d,e,f){function g(){var a=f.subIconButtons,b=0,e=a.length-1;if(a[b].setButtonType(c.LEFT),a[b].isLeftLineShown(!1),a[b].isRightLineShown(!0),a[e].setButtonType(c.RIGHT),a[e].isRightLineShown(!1),a[e].isLeftLineShown(!1),e>=2){for(var g=1;e>g;)a[g].setButtonType(c.MIDDLE),a[g].isRightLineShown(!1),a[g].isLeftLineShown(!1),g++;for(var h=2;e>=h;)h==e?a[h].isLeftLineShown(!0):(a[h].isRightLineShown(!0),a[h].isLeftLineShown(!0)),h+=2}var i=d.find("ul");if(i.length>0){var j=e+1;if(j>2){var k=34*j-70+j/1.5+.5,l=k+"px";angular.element(i).css("left",l),angular.element(i).css("border-top-left-radius","0px")}else angular.element(i).css("left","0px")}}b(g,100)}}}]),angular.module("att.abs.stepSlider",["att.abs.position"]).constant("sliderConstants",{SLIDER:{settings:{from:1,to:40,step:1,smooth:!0,limits:!0,value:"3",dimension:"",vertical:!1},className:"jslider",selector:".jslider-"},EVENTS:{},COLORS:{GREEN:"green",BLUE_HIGHLIGHT:"blue",MAGENTA:"magenta",GOLD:"gold",PURPLE:"purple",DARK_BLUE:"dark-blue",REGULAR:"regular",WHITE:"white"}}).factory("utils",function(){return{offset:function(a){var b=a[0],c=0,d=0,e=document.documentElement||document.body,f=window.pageXOffset||e.scrollLeft,g=window.pageYOffset||e.scrollTop;return c=b.getBoundingClientRect().left+f,d=b.getBoundingClientRect().top+g,{left:c,top:d}},roundUpToScale:function(a,b,c,d){function e(a,b){var c=.1;return Math.abs(b-a)<=c?!0:!1}for(var f,g,h,i,j=1;j<b.length;j++){if(f=b[j-1],g=b[j],i=.5*(g-f)+f,0===f&&i>=a||e(f,a)){h=f;break}if(a>f&&(g>a||e(a,g))){h=g;break}}return c&&c>h?b[d]:h},valueForDifferentScale:function(a,b,c,d){var e=c/100;return 0===e?a:d[c]},convertToMbpsGbps:function(a,b,c){function d(a,b){var c=Math.pow(10,b);return~~(a*c)/c}var e=3;return c&&(e=c),a>1024&&1e6>a&&angular.equals(b,"Kbps")?(a=d(a/1e3,e),b="Mbps"):a>1024&&1e6>a&&angular.equals(b,"Mbps")?(a=d(a/1e3,e),b="Mbps"):b=(1024>=a&&angular.equals(b,"Mbps"),"Kbps"),a>=1e6&&angular.equals(b,"Kbps")&&(a=d(a/1e6,e),b="Gbps"),{unitValue:a,unitLabel:b}},getConversionFactorValue:function(a,b,c){if(a<=b[0].startVal)return{scaledVal:a,scaledDimension:c};var d=0;for(var e in b){var f=b[e];a>f.startVal&&(d=e)}var g=b[d].scaleFactor,h=a/g,i=b[d].dimension;return{scaledVal:h,scaledDimension:i}}}}).factory("sliderDraggable",["utils",function(a){function b(){this._init.apply(this,arguments)}return b.prototype.oninit=function(){},b.prototype.events=function(){},b.prototype.onmousedown=function(){this.ptr.css({position:"absolute"})},b.prototype.onmousemove=function(a,b,c){this.ptr.css({left:b,top:c})},b.prototype.onmouseup=function(){},b.prototype.isDefault={drag:!1,clicked:!1,toclick:!0,mouseup:!1},b.prototype._init=function(){if(arguments.length>0){if(this.ptr=arguments[0],this.parent=arguments[2],!this.ptr)return;this.is={},angular.extend(this.is,this.isDefault);var b=a.offset(this.ptr);this.d={left:b.left,top:b.top,width:this.ptr[0].clientWidth,height:this.ptr[0].clientHeight},this.oninit.apply(this,arguments),this._events()}},b.prototype._getPageCoords=function(a){var b={};return b=a.targetTouches&&a.targetTouches[0]?{x:a.targetTouches[0].pageX,y:a.targetTouches[0].pageY}:{x:a.pageX,y:a.pageY}},b.prototype._bindEvent=function(a,b,c){this.supportTouches_?a[0].attachEvent(this.events_[b],c):a.bind&&a.bind(this.events_[b],c)},b.prototype._events=function(){var a=this;this.supportTouches_="ontouchend"in document,this.events_={click:this.supportTouches_?"touchstart":"click",down:this.supportTouches_?"touchstart":"mousedown",move:this.supportTouches_?"touchmove":"mousemove",up:this.supportTouches_?"touchend":"mouseup",mousedown:(this.supportTouches_,"mousedown")};var b=angular.element(window.document);this._bindEvent(b,"move",function(b){a.is.drag&&(b.stopPropagation(),b.preventDefault(),a.parent.disabled||a._mousemove(b))}),this._bindEvent(b,"down",function(b){a.is.drag&&(b.stopPropagation(),b.preventDefault())}),this._bindEvent(b,"up",function(b){a._mouseup(b)}),this._bindEvent(this.ptr,"down",function(b){return a._mousedown(b),!1}),this._bindEvent(this.ptr,"up",function(b){a._mouseup(b)}),this.events()},b.prototype._mousedown=function(a){this.is.drag=!0,this.is.clicked=!1,this.is.mouseup=!1;var b=this._getPageCoords(a);this.cx=b.x-this.ptr[0].offsetLeft,this.cy=b.y-this.ptr[0].offsetTop,angular.extend(this.d,{left:this.ptr[0].offsetLeft,top:this.ptr[0].offsetTop,width:this.ptr[0].clientWidth,height:this.ptr[0].clientHeight}),this.outer&&this.outer.get(0)&&this.outer.css({height:Math.max(this.outer.height(),$(document.body).height()),overflow:"hidden"}),this.onmousedown(a)},b.prototype._mousemove=function(a){if(0!==this.uid){this.is.toclick=!1;var b=this._getPageCoords(a);this.onmousemove(a,b.x-this.cx,b.y-this.cy)}},b.prototype._mouseup=function(a){this.is.drag&&(this.is.drag=!1,this.outer&&this.outer.get(0)&&($.browser.mozilla?this.outer.css({overflow:"hidden"}):this.outer.css({overflow:"visible"}),$.browser.msie&&"6.0"===$.browser.version?this.outer.css({height:"100%"}):this.outer.css({height:"auto"})),this.onmouseup(a))},b}]).factory("sliderPointer",["sliderDraggable","utils",function(a,b){function c(){a.apply(this,arguments)}return c.prototype=new a,c.prototype.oninit=function(a,b,c){this.uid=b,this.parent=c,this.value={},this.settings=angular.copy(c.settings)},c.prototype.onmousedown=function(a){var c=b.offset(this.parent.domNode),d={left:c.left,top:c.top,width:this.parent.domNode[0].clientWidth,height:this.parent.domNode[0].clientHeight};this._parent={offset:d,width:d.width,height:d.height},this.ptr.addClass("jslider-pointer-hover"),this.setIndexOver()},c.prototype.onmousemove=function(a,c,d){var e=this._getPageCoords(a),f=this.calc(e.x);this.parent.settings.smooth||(f=b.roundUpToScale(f,this.parent.settings.scale,this.parent.settings.cutOffWidth,this.parent.settings.cutOffIndex));var g=this.parent.settings.cutOffWidth;g&&g>f&&(f=g),this._set(f)},c.prototype.onmouseup=function(a){if(this.settings.callback&&angular.isFunction(this.settings.callback)){var b=this.parent.getValue();this.settings.callback.call(this.parent,b)}this.ptr.removeClass("jslider-pointer-hover")},c.prototype.setIndexOver=function(){this.parent.setPointersIndex(1),this.index(2)},c.prototype.index=function(a){},c.prototype.limits=function(a){return this.parent.limits(a,this)},c.prototype.calc=function(a){var b=a-this._parent.offset.left,c=this.limits(100*b/this._parent.width);return c},c.prototype.set=function(a,b){this.value.origin=this.parent.round(a),this._set(this.parent.valueToPrc(a,this),b)},c.prototype._set=function(a,b){b||(this.value.origin=this.parent.prcToValue(a)),this.value.prc=a,this.ptr.css({left:a+"%"}),this.parent.redraw(this)},c}]).factory("slider",["sliderPointer","sliderConstants","utils",function(a,b,c){function d(){return this.init.apply(this,arguments)}function e(a){f.css("width",a)}var f;return d.prototype.changeCutOffWidth=e,d.prototype.init=function(a,c,d){this.settings=b.SLIDER.settings,angular.extend(this.settings,angular.copy(d)),this.inputNode=a,this.inputNode.addClass("ng-hide"),this.settings.interval=this.settings.to-this.settings.from,this.settings.calculate&&$.isFunction(this.settings.calculate)&&(this.nice=this.settings.calculate),this.settings.onstatechange&&$.isFunction(this.settings.onstatechange)&&(this.onstatechange=this.settings.onstatechange),this.is={init:!1},this.o={},this.create(c)},d.prototype.create=function(b){var d=this;this.domNode=b;var e=c.offset(this.domNode),g={left:e.left,top:e.top,width:this.domNode[0].clientWidth,height:this.domNode[0].clientHeight};this.sizes={domWidth:this.domNode[0].clientWidth,domOffset:g},angular.extend(this.o,{pointers:{},labels:{0:{o:angular.element(this.domNode.find("div")[5])},1:{o:angular.element(this.domNode.find("div")[6])}},limits:{0:angular.element(this.domNode.find("div")[3]),1:angular.element(this.domNode.find("div")[5])}}),angular.extend(this.o.labels[0],{value:this.o.labels[0].o.find("span")}),angular.extend(this.o.labels[1],{value:this.o.labels[1].o.find("span")}),d.settings.value.split(";")[1]||(this.settings.single=!0);var h=this.domNode.find("div");f=angular.element(h[8]),f&&f.css&&f.css("width","0%");var i=[angular.element(h[1]),angular.element(h[2])];angular.forEach(i,function(b,c){d.settings=angular.copy(d.settings);var e=d.settings.value.split(";")[c];if(e){d.o.pointers[c]=new a(b,c,d);var f=d.settings.value.split(";")[c-1];f&&parseInt(e,10)<parseInt(f,10)&&(e=f);var g=e<d.settings.from?d.settings.from:e;g=e>d.settings.to?d.settings.to:e,d.o.pointers[c].set(g,!0),0===c&&d.domNode.bind("mousedown",d.clickHandler.apply(d))}}),this.o.value=angular.element(this.domNode.find("i")[2]),this.is.init=!0,angular.forEach(this.o.pointers,function(a){d.redraw(a)})},d.prototype.clickHandler=function(){var a=this;return function(b){if(!a.disabled){var d=b.target.className,e=0;d.indexOf("jslider-pointer-to")>0&&(e=1);var f=c.offset(a.domNode),g={left:f.left,top:f.top,width:a.domNode[0].clientWidth,height:a.domNode[0].clientHeight};e=1;var h=a.o.pointers[e];return h._parent={offset:g,width:g.width,height:g.height},h._mousemove(b),h.onmouseup(),!1}}},d.prototype.disable=function(a){this.disabled=a},d.prototype.nice=function(a){return a},d.prototype.onstatechange=function(){},d.prototype.limits=function(a,b){if(!this.settings.smooth){var c=100*this.settings.step/this.settings.interval;a=Math.round(a/c)*c}var d=this.o.pointers[1-b.uid];d&&b.uid&&a<d.value.prc&&(a=d.value.prc),d&&!b.uid&&a>d.value.prc&&(a=d.value.prc),0>a&&(a=0),a>100&&(a=100);var e=Math.round(10*a)/10;return e},d.prototype.setPointersIndex=function(a){angular.forEach(this.getPointers(),function(a,b){a.index(b)})},d.prototype.getPointers=function(){return this.o.pointers},d.prototype.onresize=function(){var a=this;this.sizes={domWidth:this.domNode[0].clientWidth,domHeight:this.domNode[0].clientHeight,domOffset:{left:this.domNode[0].offsetLeft,top:this.domNode[0].offsetTop,width:this.domNode[0].clientWidth,height:this.domNode[0].clientHeight}},angular.forEach(this.o.pointers,function(b,c){a.redraw(b)})},d.prototype.update=function(){this.onresize(),this.drawScale()},d.prototype.drawScale=function(){},d.prototype.redraw=function(a){if(!this.settings.smooth){var b=c.roundUpToScale(a.value.prc,this.settings.scale,this.settings.cutOffWidth,this.settings.cutOffIndex);a.value.origin=b,a.value.prc=b}if(!this.is.init)return!1;this.setValue();var d=this.o.pointers[1].value.prc,e={left:"0%",width:d+"%"};this.o.value.css(e);var f=this.nice(a.value.origin),g=this.settings.firstDimension;if(this.settings.stepWithDifferentScale&&!this.settings.smooth&&(f=c.valueForDifferentScale(this.settings.from,this.settings.to,f,this.settings.prcToValueMapper)),this.settings.realtimeCallback&&angular.isFunction(this.settings.realtimeCallback)&&void 0!==this.settings.cutOffVal&&1===a.uid&&this.settings.realtimeCallback(f),this.settings.conversion){var h=c.getConversionFactorValue(parseInt(f),this.settings.conversion,this.settings.firstDimension);f=h.scaledVal,g=h.scaledDimension}f=parseFloat(f);var i=c.convertToMbpsGbps(f,g,this.settings.decimalPlaces);this.o.labels[a.uid].value.html(i.unitValue+" "+i.unitLabel),this.redrawLabels(a)},d.prototype.redrawLabels=function(a){function b(a,b,d){b.margin=-b.label/2;var e=c.sizes.domWidth,f=b.border+b.margin;return 0>f&&(b.margin-=f),b.border+b.label/2>e?(b.margin=0,b.right=!0):b.right=!1,b.margin=-(a.o[0].clientWidth/2-a.o[0].clientWidth/20),\r
-a.o.css({left:d+"%",marginLeft:b.margin,right:"auto"}),b.right&&a.o.css({left:"auto",right:0}),b}var c=this,d=this.o.labels[a.uid],e=a.value.prc,f={label:d.o[0].offsetWidth,right:!1,border:e*i/100},g=null,h=null;if(!this.settings.single)switch(h=this.o.pointers[1-a.uid],g=this.o.labels[h.uid],a.uid){case 0:f.border+f.label/2>g.o[0].offsetLeft-this.sizes.domOffset.left?(g.o.css({visibility:"hidden"}),g.value.html(this.nice(h.value.origin)),d.o.css({visibility:"hidden"}),e=(h.value.prc-e)/2+e,h.value.prc!==a.value.prc&&(d.value.html(this.nice(a.value.origin)+"&nbsp;&ndash;&nbsp;"+this.nice(h.value.origin)),f.label=d.o[0].clientWidth,f.border=e*i/100)):g.o.css({visibility:"visible"});break;case 1:f.border-f.label/2<g.o[0].offsetLeft-this.sizes.domOffset.left+g.o[0].clientWidth?(g.o.css({visibility:"hidden"}),g.value.html(this.nice(h.value.origin)),d.o.css({visibility:"visible"}),e=(e-h.value.prc)/2+h.value.prc,h.value.prc!==a.value.prc&&(d.value.html(this.nice(h.value.origin)+"&nbsp;&ndash;&nbsp;"+this.nice(a.value.origin)),f.label=d.o[0].clientWidth,f.border=e*i/100)):g.o.css({visibility:"visible"})}f=b(d,f,e);var i=c.sizes.domWidth;g&&(f={label:g.o[0].clientWidth,right:!1,border:h.value.prc*this.sizes.domWidth/100},f=b(g,f,h.value.prc))},d.prototype.redrawLimits=function(){if(this.settings.limits){var a=[!0,!0];for(var b in this.o.pointers)if(!this.settings.single||0===b){var c=this.o.pointers[b],d=this.o.labels[c.uid],e=d.o[0].offsetLeft-this.sizes.domOffset.left,f=this.o.limits[0];e<f[0].clientWidth&&(a[0]=!1),f=this.o.limits[1],e+d.o[0].clientWidth>this.sizes.domWidth-f[0].clientWidth&&(a[1]=!1)}for(var g=0;g<a.length;g++)a[g]?angular.element(this.o.limits[g]).addClass("animate-show"):angular.element(this.o.limits[g]).addClass("animate-hidde")}},d.prototype.setValue=function(){var a=this.getValue();this.inputNode.attr("value",a),this.onstatechange.call(this,a,this.inputNode)},d.prototype.getValue=function(){if(!this.is.init)return!1;var a=this,b="";return angular.forEach(this.o.pointers,function(d,e){if(void 0!==d.value.prc&&!isNaN(d.value.prc)){var f=d.value.prc,g=a.prcToValue(f);if(!a.settings.smooth)var g=c.valueForDifferentScale(a.settings.from,a.settings.to,f,a.settings.prcToValueMapper);b+=(e>0?";":"")+g}}),b},d.prototype.getPrcValue=function(){if(!this.is.init)return!1;var a="";return $.each(this.o.pointers,function(b){void 0===this.value.prc||isNaN(this.value.prc)||(a+=(b>0?";":"")+this.value.prc)}),a},d.prototype.prcToValue=function(a){var b;if(this.settings.heterogeneity&&this.settings.heterogeneity.length>0)for(var c=this.settings.heterogeneity,d=0,e=this.settings.from,f=0;f<=c.length;f++){var g;g=c[f]?c[f].split("/"):[100,this.settings.to],a>=d&&a<=g[0]&&(b=e+(a-d)*(g[1]-e)/(g[0]-d)),d=g[0],e=g[1]}else b=this.settings.from+a*this.settings.interval/100;var h=this.round(b);return h},d.prototype.valueToPrc=function(a,b){var c;if(this.settings.heterogeneity&&this.settings.heterogeneity.length>0)for(var d=this.settings.heterogeneity,e=0,f=this.settings.from,g=0;g<=d.length;g++){var h;h=d[g]?d[g].split("/"):[100,this.settings.to],a>=f&&a<=h[1]&&(c=b.limits(e+(a-f)*(h[0]-e)/(h[1]-f))),e=h[0],f=h[1]}else c=b.limits(100*(a-this.settings.from)/this.settings.interval);return c},d.prototype.round=function(a){return a=Math.round(a/this.settings.step)*this.settings.step,a=this.settings.round?Math.round(a*Math.pow(10,this.settings.round))/Math.pow(10,this.settings.round):Math.round(a)},d}]).directive("attStepSlider",["$compile","$templateCache","$timeout","$window","slider","sliderConstants","utils",function(a,b,c,d,e,f,g){var h="app/scripts/ng_js_att_tpls/stepSlider/attStepSlider.html";return{restrict:"AE",require:"?ngModel",scope:{options:"=",cutOff:"="},priority:1,templateUrl:h,link:function(i,j,k,l){function m(){angular.element(d).bind("resize",function(a){i.slider.onresize()})}if(l){i.mainSliderClass="step-slider",j.after(a(b.get(h))(i,function(a,b){b.tmplElt=a})),l.$render=function(){if(l.$viewValue.split&&1===l.$viewValue.split(";").length?l.$viewValue="0;"+l.$viewValue:"number"==typeof l.$viewValue&&(l.$viewValue="0;"+l.$viewValue),(l.$viewValue||0===l.$viewValue)&&("number"==typeof l.$viewValue&&(l.$viewValue=""+l.$viewValue),i.slider)){var a="0";if(i.slider.getPointers()[0].set(a,!0),l.$viewValue.split(";")[1]){var b=l.$viewValue.split(";")[1];b.length>=4&&(b=b.substring(0,2)),i.options.realtime||i.options.callback(parseFloat(l.$viewValue.split(";")[1])),i.slider.getPointers()[1].set(l.$viewValue.split(";")[1],!0)}}};var n=function(){function a(){0!==d[0]&&d.splice(0,0,0),100!==d[d.length-1]&&d.splice(d.length,0,100)}function b(){if(d[d.length-1]!==i.options.to&&d.splice(d.length,0,i.options.to),i.options.displayScaledvalues){for(var a in d)h.push(Math.log2(d[a]));var b=h[h.length-1]}for(var a in d){var c,e=d[a]/i.options.from,f=d[a]/i.options.to;c=i.options.displayScaledvalues?h[a]/b*100:(d[a]-i.options.from)/(i.options.to-i.options.from)*100;var g=d[a];1===f?c=100:1===e&&(c=0),d[a]=c,k[""+c]=g}}i.from=""+i.options.from,i.to=""+i.options.to,i.options.calculate&&"function"==typeof i.options.calculate&&(i.from=i.options.calculate(i.from),i.to=i.options.calculate(i.to)),i.showDividers=i.options.showDividers,i.COLORS=f.COLORS,i.sliderColor=i.options.sliderColor,i.sliderColor||(i.sliderColor=f.COLORS.REGULAR);var d=i.options.scale,e=[],h=[],k={};for(var n in d){var p=d[n];e.push(p)}0===i.options.from&&100===i.options.to||!i.options.smooth?0===i.options.from&&100===i.options.to||i.options.smooth?(b(),a()):(i.options.stepWithDifferentScale=!0,b(),a()):(a(),i.options.stepWithDifferentScale=!0);var q=0;if(i.options.decimalPlaces&&(q=i.options.decimalPlaces),i.endDimension=i.options.dimension,i.options.conversion){var r=i.options.conversion.length-1,s=i.options.conversion[r].dimension,t=i.options.conversion[r].scaleFactor;i.endDimension=" "+s;var u=(i.to/t).toFixed(q);i.toStr=u}else i.toStr=i.options.to;var v=g.convertToMbpsGbps(i.toStr,i.endDimension,i.options.decimalPlaces);i.toStr=v.unitValue,i.endDimension=" "+v.unitLabel;var w={from:i.options.from,to:i.options.to,step:i.options.step,smooth:i.options.smooth,limits:!0,stepWithDifferentScale:i.options.stepWithDifferentScale,round:i.options.round||!1,value:l.$viewValue,scale:i.options.scale,nonPercentScaleArray:e,prcToValueMapper:k,firstDimension:i.options.dimension,decimalPlaces:q,conversion:i.options.conversion,realtimeCallback:i.options.callback};angular.isFunction(i.options.realtime)?w.realtimeCallback=function(a){l.$setViewValue(a),i.options.callback(a)}:w.callback=o,w.calculate=i.options.calculate||void 0,w.onstatechange=i.options.onstatechange||void 0,c(function(){var a=i.tmplElt.find("div")[7];w.conversion||(i.tmplElt.find("div").eq(6).find("span").eq(0).css("padding-left","10px"),i.tmplElt.find("div").eq(6).find("span").eq(0).css("padding-right","15px")),i.slider=angular.element.slider(j,i.tmplElt,w),angular.element(a).html(i.generateScale()),i.drawScale(a),m(),i.$watch("options.disable",function(a){i.slider&&(i.tmplElt.toggleClass("disabled",a),i.slider.disable(a))}),i.$watch("cutOff",function(a){if(a&&a>0){var b=(a-i.slider.settings.from)/(i.slider.settings.to-i.slider.settings.from);if(b=100*b,i.isCutOffSlider=!0,i.slider.settings.cutOffWidth=b,i.cutOffVal=a,i.options.conversion){var c=g.getConversionFactorValue(a,i.options.conversion,i.options.dimension);c.scaledVal=parseFloat(c.scaledVal).toFixed(i.options.decimalPlaces),i.cutOffVal=c.scaledVal+" "+c.scaledDimension}i.slider.settings.cutOffVal=a,i.slider.changeCutOffWidth(b+"%");var d=i.slider.settings.nonPercentScaleArray;for(var e in d)if(e>=1){var f=d[e-1],h=d[e];a>f&&h>=a&&(i.slider.settings.cutOffIndex=e)}}else i.slider.settings.cutOffVal=0})})};i.generateScale=function(){if(i.options.scale&&i.options.scale.length>0){for(var a="",b=i.options.scale,c="left",d=0;d<b.length;d++)if(0!==d&&d!==b.length-1){var e=(b[d]-i.from)/(i.to-i.from)*100;i.options.stepWithDifferentScale&&!i.options.smooth&&(e=b[d]),a+='<span style="'+c+": "+e+'%"></span>'}return a}return""},i.drawScale=function(a){angular.forEach(angular.element(a).find("ins"),function(a,b){a.style.marginLeft=-a.clientWidth/2})};var o=function(a){var b=a.split(";")[1];i.$apply(function(){l.$setViewValue(parseInt(b))}),i.options.callback&&i.options.callback(parseInt(b))};i.$watch("options",function(a){n()}),angular.element.slider=function(a,b,c){b.data("jslider")||b.data("jslider",new e(a,b,c));var d=b.data("jslider");return d}}}}}]),angular.module("att.abs.steptracker",["att.abs.transition"]).directive("steptracker",["$timeout",function(a){return{priority:100,scope:{sdata:"=sdata",cstep:"=currentStep",clickHandler:"=?",disableClick:"=?"},restrict:"EA",replace:!0,templateUrl:"app/scripts/ng_js_att_tpls/steptracker/step-tracker.html",link:function(b,c){void 0===b.disableClick&&(b.disableClick=!1),a(function(){function a(a){return angular.element(g[a-1])}function d(){if(b.cstep>0&&b.cstep<=b.sdata.length-1&&j>0){var c=j/k*100+"%";l=a(b.cstep),l.css("width",c)}}function e(){b.cstep<=b.sdata.length&&(j=b.sdata[b.cstep-1].currentPage,k=b.sdata[b.cstep-1].totalPages)}b.cstep<1?b.cstep=1:b.cstep>b.sdata.length&&(b.cstep=b.sdata.length);var f=c.find("div"),g=[];for(var h in f)if(f.eq(h)[0]){var i=f.eq(h)[0].className;i.indexOf("track ng-scope")>-1&&g.push(f.eq(h))}var j,k,l=a(b.cstep);b.set_width=function(a){var c=100/(b.sdata.length-1)+"%";return b.sdata.length-1>a?{width:c}:void 0},b.$watch("sdata",function(){e();var a=b.cstep;if(1>j&&(j=1,1!==b.cstep&&(b.cstep--,e())),j>k){if(b.cstep>b.sdata.length-1)return void b.cstep++;j=k,d(),b.cstep++,e(),d()}1>j&&a===b.cstep&&(j=1,b.cstep>1&&(b.cstep--,b.sdata[b.cstep-1].currentPage=b.sdata[b.cstep-1].totalPages,b.sdata[b.cstep].currentPage=1)),d()},!0),b.activestep=function(a){return a===b.cstep-1},b.donesteps=function(a){return a<b.cstep-1},b.laststep=function(a){return a===b.sdata.length-1},b.isIncomplete=function(a){if(a===b.cstep-1)return!1;if(a>=0&&a<b.sdata.length-1){var c=b.sdata[a];return c.currentPage<=c.totalPages}},b.stepclick=function(a,c){if(c<b.cstep){for(var f=b.cstep-1;f>c;f--)b.sdata[f].currentPage=1;b.sdata[c].currentPage--}angular.isFunction(b.clickHandler)&&b.clickHandler(a,c),b.cstep=c+1,b.cstep<=b.sdata.length&&b.sdata[b.cstep].currentPage<1&&(b.sdata[b.cstep].currentPage=1),e(),d()}},100)}}}]).constant("timelineConstants",{STEP_TYPE:{ALERT:"alert",COMPLETED:"completed",CANCELLED:"cancelled"}}).controller("AttTimelineCtrl",["$scope","$timeout",function(a,b){function c(){function b(a,b){return a.order<b.order?-1:a.order>b.order?1:0}f.sort(b),e.sort(b),a.$parent.animate&&d(),a.$watch("trigger",function(b){b?a.resetTimeline():a.$parent.animate=!1})}function d(){function c(){for(var a in f){var b=f[a];if(a%2===0?b.unhoveredStateForBelow(.25):b.unhoveredStateForAbove(.25),b.isStop())break}}function d(a,h){return 0===a?function(){f[a+1].isStop()&&f[a+1].isCancelled()&&e[a].isCancelled(!0),e[a].animate(d(a+1,h),h)}:a===e.length-1?function(){f[0].isCurrentStep()&&f[0].isCurrentStep(!1),f[a].isStop()?(f[a-1].shrinkAnimate(g),f[a].isCurrentStep(!0)):(f[a-1].shrinkAnimate(g),e[a].animate(d(a+1,h),h)),f[a].expandedAnimate(g),b(function(){c()},500)}:a===e.length?function(){f[0].isCurrentStep()&&f[0].isCurrentStep(!1),f[a-1].shrinkAnimate(g),f[a].expandedAnimate(g),f[a].isCurrentStep(!0),b(function(){c()},500)}:function(){f[0].isCurrentStep()&&f[0].isCurrentStep(!1),f[a].isStop()?(f[a-1].shrinkAnimate(g),f[a].expandedAnimate(g),f[a].isCurrentStep(!0),b(function(){c()},500)):(f[a+1].isStop()&&f[a+1].isCancelled()&&e[a].isCancelled(!0),f[a-1].shrinkAnimate(g),e[a].animate(d(a+1,h),h),f[a].expandedAnimate(g))}}var g=.25,h=.25;"number"==typeof a.barAnimateDuration&&(h=a.barAnimateDuration);var i=d(0,h);i()}var e=[],f=[];this.numSteps=0,this.isAlternate=function(){return a.alternate},this.addTimelineBarCtrls=function(a){e.push(a)},this.addTimelineDotCtrls=function(a){f.push(a)},b(c,200)}]).directive("attTimeline",["$timeout","$compile",function(a,b){return{restrict:"EA",replace:!0,scope:{steps:"=",trigger:"=",alternate:"=",barAnimateDuration:"="},templateUrl:"app/scripts/ng_js_att_tpls/steptracker/timeline.html",controller:"AttTimelineCtrl",link:function(a,c,d,e){var f=function(){for(var b=a.steps,c=[],d=1;d<b.length;d++){var f=b[d];c.push(f)}a.middleSteps=c,e.numSteps=b.length-1};f(),a.resetTimeline=function(){a.animate=!0,b(c)(a)}}}}]).controller("TimelineBarCtrl",["$scope",function(a){this.type="timelinebar",this.order=parseInt(a.order),this.animate=function(b,c){a.loadingAnimation(b,c)},this.isCancelled=function(b){a.isCancelled=b}}]).directive("timelineBar",["animation","$progressBar",function(a,b){return{restrict:"EA",replace:!0,templateUrl:"app/scripts/ng_js_att_tpls/steptracker/timelineBar.html",scope:{order:"@"},require:["^attTimeline","timelineBar"],controller:"TimelineBarCtrl",link:function(c,d,e,f){var g=f[0],h=f[1];g.addTimelineBarCtrls(h),c.isCompleted=!0;var i=100/g.numSteps-3;d.css("width",i+"%");var j=d.find("div").eq(0);a.set(j,{opacity:0});var k=function(b){a.set(j,{opacity:1}),a.set(j,{scaleX:b.progress(),transformOrigin:"left"})};c.loadingAnimation=b(k)}}}]).controller("TimelineDotCtrl",["$scope","$timeout","timelineConstants",function(a,b,c){this.type="dot",this.order=parseInt(a.order);var d=this;b(function(){0!==d.order&&(d.order%2!==0?a.initializeAboveForAnimation():a.initializeBelowForAnimation())}),this.expandedAnimate=function(b){a.setColor(),a.expandedAnimate(b),0===d.order||a.isStepsLessThanFive()||(d.order%2!==0?a.expandContentForAbove(b):a.expandContentForBelow(b))},this.unhoveredStateForAbove=function(b){a.unhoveredStateForAbove(b)},this.unhoveredStateForBelow=function(b){a.unhoveredStateForBelow(b)},this.shrinkAnimate=function(b){a.shrinkAnimate(b)},this.setExpanded=function(){a.setSize(3)},this.isStop=function(){return a.isStop},this.isCancelled=function(){return a.type===c.STEP_TYPE.CANCELLED},this.isAlert=function(){return a.type===c.STEP_TYPE.ALERT},this.isCurrentStep=function(b){return void 0!==b&&(a.isCurrentStep=b),a.isCurrentStep}}]).directive("timelineDot",["animation","timelineConstants",function(a,b){return{restrict:"EA",replace:!0,scope:{order:"@",title:"@",description:"@",by:"@",date:"@",type:"@"},templateUrl:"app/scripts/ng_js_att_tpls/steptracker/timelineDot.html",require:["^attTimeline","timelineDot"],controller:"TimelineDotCtrl",link:function(c,d,e,f){function g(){return c.description||c.by||c.date?!1:!0}var h=f[0],i=f[1];h.addTimelineDotCtrls(i),c.numSteps=h.numSteps+1,c.isCurrentStep=!1,c.isCompleted=!1,c.isStop=!1,(c.type===b.STEP_TYPE.ALERT||c.type===b.STEP_TYPE.CANCELLED)&&(c.isStop=!0),c.isInactive=!0;var j=d.find("div"),k=j.eq(0),l=j.eq(2),m=j.eq(3),n=j.eq(5),o=j.eq(6),p=j.eq(9);c.isStepsLessThanFive=function(){return c.numSteps<5?!0:!1},c.titleMouseover=function(a){c.isStepsLessThanFive()||g()||(1===a&&c.order%2===0&&c.expandContentForBelow(.25),2===a&&c.order%2!==0&&c.expandContentForAbove(.25))},c.titleMouseleave=function(){c.order%2===0?c.unhoveredStateForBelow(.25):c.unhoveredStateForAbove(.25)},c.initializeAboveForAnimation=function(){if(!c.isStepsLessThanFive()&&h.isAlternate()&&(a.set(o,{opacity:0}),a.set(p,{opacity:0}),!g())){var b=o[0].offsetHeight+p[0].offsetHeight;a.set(n,{top:b})}},c.expandContentForAbove=function(b){!c.isStepsLessThanFive()&&h.isAlternate()&&(a.to(n,b,{top:0}),a.to(o,b,{opacity:1}),a.to(p,b,{opacity:1}))},c.unhoveredStateForAbove=function(b){if(!c.isStepsLessThanFive()&&h.isAlternate()){a.set(o,{opacity:0}),a.set(p,{opacity:1});var d=o[0].offsetHeight;a.to(n,b,{top:d})}},c.initializeBelowForAnimation=function(){!c.isStepsLessThanFive()&&h.isAlternate()&&(a.set(o,{height:"0%",opacity:0,top:"-20px"}),a.set(p,{opacity:0}))},c.expandContentForBelow=function(b){!c.isStepsLessThanFive()&&h.isAlternate()&&(a.set(p,{opacity:1}),a.to(o,b,{height:"auto",opacity:1,top:"0px"}))},c.unhoveredStateForBelow=function(b){!c.isStepsLessThanFive()&&h.isAlternate()&&(a.to(o,b,{height:"0%",opacity:0,top:"-20px",position:"relative"}),a.set(p,{opacity:1}))},g()&&c.order%2!==0&&h.isAlternate()&&m.css("top","-47px"),c.order%2!==0&&h.isAlternate()?c.isBelowInfoBoxShown=!1:c.isBelowInfoBoxShown=!0,c.isStepsLessThanFive()&&!h.isAlternate()&&a.set(p,{marginTop:10}),a.set(k,{opacity:".5"}),a.set(l,{opacity:"0.0"}),a.set(l,{scale:.1}),0===c.order&&(a.set(l,{opacity:"1.0"}),a.set(l,{scale:1}),a.set(k,{scale:3}),c.isCurrentStep=!0,c.isInactive=!1,c.isCompleted=!0),c.setColor=function(){c.isInactive=!1,c.type===b.STEP_TYPE.CANCELLED?c.isCancelled=!0:c.type===b.STEP_TYPE.ALERT?c.isAlert=!0:c.isCompleted=!0,c.$phase||c.$apply()},c.setSize=function(b){a.set(biggerCircle,{scale:b})},c.setExpandedCircle=function(){a.set(l,{opacity:"1.0"}),a.set(l,{scale:1})},c.expandedAnimate=function(b){a.to(k,b,{scale:3}),a.set(l,{opacity:"1.0"}),a.to(l,b,{scale:1})},c.shrinkAnimate=function(b){a.to(k,b,{scale:1})}}}}]),angular.module("att.abs.table",["att.abs.utilities"]).constant("tableConfig",{defaultSortPattern:!1,highlightSearchStringClass:"tablesorter-search-highlight"}).directive("attTable",["$filter",function(a){return{restrict:"EA",replace:!0,transclude:!0,scope:{tableData:"=",viewPerPage:"=",currentPage:"=",totalPage:"=",searchCategory:"=",searchString:"="},require:"attTable",templateUrl:"app/scripts/ng_js_att_tpls/table/attTable.html",controller:["$scope",function(a){this.headers=[],this.currentSortIndex=null,this.setIndex=function(a){this.headers.push(a)},this.getIndex=function(a){for(var b=0;b<this.headers.length;b++)if(this.headers[b].headerName===a)return this.headers[b].index;return null},this.sortData=function(b,c){a.$parent.columnIndex=b,a.$parent.reverse=c,this.currentSortIndex=b,a.currentPage=1,this.resetSortPattern()},this.getSearchString=function(){return a.searchString},this.resetSortPattern=function(){for(var a=0;a<this.headers.length;a++){var b=this.headers[a];b.index!==this.currentSortIndex&&b.resetSortPattern()}}}],link:function(b,c,d,e){b.searchCriteria={},b.$watchCollection("tableData",function(a){a&&!isNaN(a.length)&&(b.totalRows=a.length)}),b.$watch("currentPage",function(a){b.$parent.currentPage=a}),b.$watch("viewPerPage",function(a){b.$parent.viewPerPage=a}),b.$watch(function(){return b.totalRows/b.viewPerPage},function(a){isNaN(a)||(b.totalPage=Math.ceil(a),b.currentPage=1)});var f=function(a){return angular.isDefined(a)&&null!==a&&""!==a?!0:void 0},g=function(a,c){if(f(a)&&f(c)){var d=e.getIndex(c);b.searchCriteria={},null!==d&&(b.searchCriteria[d]=a)}else!f(a)||angular.isDefined(c)&&null!==c&&""!==c?b.searchCriteria={}:b.searchCriteria={$:a}};b.$watch("searchCategory",function(a,c){a!==c&&g(b.searchString,a)}),b.$watch("searchString",function(a,c){a!==c&&g(a,b.searchCategory)}),b.$watchCollection("searchCriteria",function(c){b.$parent.searchCriteria=c,b.totalRows=b.tableData&&a("filter")(b.tableData,c,!1).length||0,b.currentPage=1})}}}]).directive("attTableRow",[function(){return{restrict:"EA",compile:function(a,b){if("header"===b.type)a.find("tr").eq(0).addClass("tablesorter-headerRow");else if("body"===b.type){var c=a.children();b.rowRepeat&&(b.trackBy?c.attr("ng-repeat",b.rowRepeat.concat(" | orderBy : columnIndex : reverse | filter : searchCriteria : false | attLimitTo : viewPerPage : viewPerPage*(currentPage-1) track by "+b.trackBy)):c.attr("ng-repeat",b.rowRepeat.concat(" | orderBy : columnIndex : reverse | filter : searchCriteria : false | attLimitTo : viewPerPage : viewPerPage*(currentPage-1) track by $index"))),c.attr("ng-class","{'alt-row': $even,'normal-row': $odd}"),a.append(c)}}}}]).directive("attTableHeader",["tableConfig",function(a){return{restrict:"EA",replace:!0,transclude:!0,scope:{sortable:"@",defaultSort:"@",index:"@key"},require:"^attTable",templateUrl:"app/scripts/ng_js_att_tpls/table/attTableHeader.html",link:function(b,c,d,e){var f=a.defaultSortPattern;b.headerName=c.text(),b.sortPattern=null,e.setIndex(b),b.$watch(function(){return c.text()},function(a){b.headerName=a}),b.sort=function(a){"boolean"==typeof a&&(f=a),e.sortData(b.index,f),b.sortPattern=f?"desc":"asc",f=!f},b.$watch(function(){return e.currentSortIndex},function(a){a!==b.index&&(b.sortPattern=null)}),"false"!==b.sortable&&("A"===b.defaultSort||"a"===b.defaultSort?b.sort(!1):("D"===b.defaultSort||"d"===b.defaultSort)&&b.sort(!0)),b.resetSortPattern=function(){f=a.defaultSortPattern}}}}]).directive("attTableBody",["$filter","$timeout","tableConfig",function(a,b,c){return{restrict:"EA",require:"^attTable",replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/table/attTableBody.html",link:function(d,e,f,g){var h=c.highlightSearchStringClass,i="",j=function(b){var c=b.text();b.html(a("highlight")(c,i,h))},k=function(a){var b=a.children();if(!(b.length>0))return void j(a);for(var c=0;c<b.length;c++)k(b.eq(c))},l=function(a){for(var b=a.find("*"),c=0;c<b.length;c++)if(b.eq(c).attr("class")&&-1!==b.eq(c).attr("class").indexOf(h)){var d=b.eq(c).text();b.eq(c).replaceWith(d)}};b(function(){var a=e.children();d.$watch(function(){return g.getSearchString()},function(b){i=b,l(e),a.length>0?k(e):j(e)})},50)}}}]),angular.module("att.abs.tableMessages",["att.abs.utilities"]).constant("messageConstants",{TABLE_MESSAGE_TYPES:{noMatching:1,errorLoading:2,magnifySearch:3,isLoading:4},USER_MESSAGE_TYPES:{success:1,error:0}}).directive("attTableMessage",["messageConstants",function(a){return{restrict:"AE",replace:!0,transclude:!0,scope:{msgType:"=",onRefreshClick:"&"},templateUrl:"app/scripts/ng_js_att_tpls/tableMessages/attTableMessage.html",link:function(b){b.messageConstants=a,b.refreshAction=function(a){b.onRefreshClick(a)}}}}]).directive("attUserMessage",["messageConstants","$timeout","DOMHelper",function(a,b,c){return{restrict:"AE",replace:!0,transclude:!0,scope:{thetitle:"=",type:"=",message:"=",trigger:"="},templateUrl:"app/scripts/ng_js_att_tpls/tableMessages/attUserMessage.html",link:function(d,e){var f=void 0,g=void 0;d.messageConstants=a,b(function(){g=c.firstTabableElement(e[0])},10),d.$watch("trigger",function(){d.trigger?(f=document.activeElement,angular.isDefined(g)&&g.focus()):angular.isDefined(f)&&f.focus()})}}}]),angular.module("att.abs.tabs",["att.abs.utilities"]).directive("attTabs",function(){return{restrict:"EA",transclude:!1,replace:!0,scope:{tabs:"=title"},controller:["$scope",function(a){this.getData=function(){return a.tabs},this.onClickTab=function(b){return a.currentTab=b.url,a.currentTab},this.isActiveTab=function(b){return b===a.currentTab}}],link:function(a){for(var b=0;b<a.tabs.length;b++)a.tabs[b].selected&&a.tabs[b].url&&(a.currentTab=a.tabs[b].url)}}}).directive("floatingTabs",function(){return{require:"^attTabs",restrict:"EA",transclude:!1,replace:!0,scope:{size:"@"},templateUrl:"app/scripts/ng_js_att_tpls/tabs/floatingTabs.html",link:function(a,b,c,d){a.tabs=d.getData(),a.onClickTab=d.onClickTab,a.isActiveTab=d.isActiveTab}}}).directive("simplifiedTabs",function(){return{require:"^attTabs",restrict:"EA",transclude:!1,replace:!0,scope:{ctab:"=ngModel"},templateUrl:"app/scripts/ng_js_att_tpls/tabs/simplifiedTabs.html",link:function(a,b,c,d){a.tabs=d.getData(),a.clickTab=function(b){return a.ctab=b.id,a.ctab},a.isActive=function(b){return b===a.ctab}}}}).directive("genericTabs",function(){return{require:"^attTabs",restrict:"EA",transclude:!1,replace:!0,scope:{ctab:"=ngModel"},templateUrl:"app/scripts/ng_js_att_tpls/tabs/genericTabs.html",link:function(a,b,c,d){a.tabs=d.getData(),a.clickTab=function(b){return a.ctab=b.id,a.ctab},a.isActive=function(b){return b===a.ctab}}}}).directive("skipNavigation",function(){return{link:function(a,b,c){b.bind("click",function(){var a=angular.element(b.parent().parent().parent().parent())[0].querySelector("a.skiptoBody");angular.element(a).attr("tabindex",-1),a.focus()})}}}).directive("parentTab",[function(){return{restrict:"EA",scope:{menuItems:"=",activeSubMenu:"=",activeMenu:"="},controller:["$scope",function(a){a.megaMenu=a.menuItems,a.megaMenuTab,a.megaMenuHoverTab,this.setMenu=function(){a.menuItems=a.megaMenu,a.activeSubMenu.scroll=!1;for(var b=0;b<a.menuItems.length;b++)a.menuItems[b].active&&(a.activeMenu=a.menuItems[b]);this.setSubMenuStatus(!1),a.$apply()},this.setActiveMenu=function(){if(void 0!==a.megaMenuTab&&null!==a.megaMenuTab)a.menuItems=[a.megaMenuTab],a.megaMenuTab.scroll=!0,a.activeMenu={},a.activeSubMenu=a.megaMenuTab,this.setSubMenuStatus(!0);else{for(var b=0;b<a.menuItems.length;b++)if(a.menuItems[b].active=!1,a.menuItems[b].subItems)for(var c=0;c<a.menuItems[b].subItems.length;c++)a.menuItems[b].subItems[c].active=!1;a.menuItems=a.megaMenu}a.$apply()};var b=!1;this.setSubMenuStatus=function(a){b=a},this.getSubMenuStatus=function(){return b},this.setActiveMenuTab=function(b){a.megaMenuTab=b},this.setActiveMenuHoverTab=function(b){a.megaMenuHoverTab=b},this.setActiveSubMenuTab=function(){a.megaMenuTab=a.megaMenuHoverTab},this.resetMenuTab=function(){a.megaMenuTab=void 0},this.clearSubMenu=function(){a.$evalAsync(function(){a.megaMenuTab=void 0,a.megaMenuHoverTab=void 0})}}]}}]).directive("parentmenuTabs",[function(){return{restrict:"EA",transclude:!0,replace:!0,scope:{megaMenu:"@",menuItems:"="},controller:["$scope",function(a){this.getMenu=function(){return a.menuItems},this.setMenu=function(b){a.menuItems=b}}],templateUrl:"app/scripts/ng_js_att_tpls/tabs/parentmenuTab.html"}}]).directive("menuTabs",["$window","$document","events","keymap",function(a,b,c,d){return{restrict:"EA",transclude:!0,replace:!0,require:["^?parentTab","^?parentmenuTabs"],scope:{activeMenu:"=",menuItem:"=",subMenu:"@",subItemActive:"@",tabName:"=?",tabUrl:"=?"},templateUrl:function(a,b){return b.megaMenu?"app/scripts/ng_js_att_tpls/tabs/menuTab.html":"app/scripts/ng_js_att_tpls/tabs/submenuTab.html"},link:function(e,f,g,h){function i(a,b){clearTimeout(a._tId),a._tId=setTimeout(function(){k.setMenu()},b)}function j(a,b){clearTimeout(a._tId),a._tId=setTimeout(function(){k.setActiveMenu()},b)}var k=h[0],l=h[1];e.clickInactive=!0,e.showHoverChild=function(a){e.clickInactive=!1,e.hoverChild=h[0].getSubMenuStatus(),"mouseover"===a.type&&h[0].getSubMenuStatus()&&e.showChildren(a)},e.showChildren=function(a){e.parentMenuItems=l.getMenu();for(var b=0;b<e.parentMenuItems.length;b++){if(e.parentMenuItems[b].active=!1,e.parentMenuItems[b].subItems)for(var c=0;c<e.parentMenuItems[b].subItems.length;c++)e.parentMenuItems[b].subItems[c].active=!1;e.clickInactive=!0}e.menuItem.active=!0,e.activeMenu=e.menuItem,a.stopPropagation()},e.$watch("subItemActive",function(a){"true"===a&&"true"===e.subMenu&&k.setActiveMenuHoverTab(e.menuItem)}),e.showMenuClick=function(a){k.setActiveMenuTab(e.menuItem),a.stopPropagation()},e.showSubMenuClick=function(a){k.setActiveSubMenuTab(),a.stopPropagation()},e.resetMenu=function(a){k.resetMenuTab(),a.stopPropagation()},b.bind("scroll",function(){0===a.pageYOffset?i(k.setMenu,100):a.pageYOffset>1&&a.pageYOffset<1500&&j(k.setActiveMenu,100)}),f.bind("keydown",function(a){switch(a.keyCode||(a.keyCode=a.which),a.keyCode!==d.KEY.TAB&&(c.preventDefault(a),c.stopPropagation(a)),a.keyCode){case d.KEY.ESC:var b;f.attr("mega-menu")?"item"===f.attr("menu-item")&&(b=angular.element(f.parent().parent().parent().parent())[0].querySelector("a.skiptoBody"),angular.element(b).attr("tabindex",-1),b.focus()):"true"===f.attr("sub-menu")?(b=angular.element(f.parent().parent().parent().parent().parent().parent().parent())[0].querySelector("a.skiptoBody"),angular.element(b).attr("tabindex",-1),b.focus()):void 0===f.attr("sub-menu")&&(b=angular.element(f.parent().parent().parent().parent().parent().parent().parent().parent().parent().parent())[0].querySelector("a.skiptoBody"),angular.element(b).attr("tabindex",-1),b.focus());break;case d.KEY.RIGHT:if(f.attr("mega-menu")){if("item"===f.attr("menu-item")){var g=angular.element(f)[0];if(g.nextElementSibling)null==g.nextElementSibling.querySelector("span")||g.nextElementSibling.querySelector("span").focus();else{do{if(!g||!g.nextSibling)break;g=g.nextSibling}while(g&&"LI"!==g.tagName);g&&(null===g.querySelector("span")||g.querySelector("span").focus()),c.preventDefault(a),c.stopPropagation(a)}}}else{var g=angular.element(f)[0];if("true"===f.attr("sub-menu")){if(null===g.nextElementSibling)break;if(g.nextElementSibling)g.nextElementSibling.querySelector("a").focus();else{do{if(!g||!g.nextSibling)break;g=g.nextSibling}while(g&&"LI"!==g.tagName);g&&(null==g.querySelector("a")||g.querySelector("a").focus()),c.preventDefault(a),c.stopPropagation(a)}}else if(void 0===f.attr("sub-menu")){if(null===g.nextElementSibling)break;if(g.nextElementSibling)g.nextElementSibling.querySelector("a").focus();else{do{if(!g||!g.nextSibling)break;g=g.nextSibling}while(g&&"LI"!==g.tagName);g&&(null==g.querySelector("a")||g.querySelector("a").focus())}}}break;case d.KEY.DOWN:if(f.attr("mega-menu"))angular.element(f)[0].querySelectorAll(".megamenu__items")[0].querySelector("a").focus();else if(void 0===f.attr("sub-menu")){var g=document.activeElement;if(null===g.nextElementSibling)break;if(g.nextElementSibling)g.nextElementSibling.focus();else{do{if(!g||!g.nextSibling)break;g=g.nextSibling}while(g&&"A"!==g.tagName);null!==g.attributes&&g.focus(),c.stopPropagation(a)}}else if("true"===f.attr("sub-menu")){var h=angular.element(f)[0].querySelector("span").querySelector("a");if(null===h)break;h.focus()}break;case d.KEY.LEFT:if(f.attr("mega-menu")){if("item"===f.attr("menu-item")){var g=angular.element(f)[0];if(g.previousElementSibling)null===g.previousElementSibling.querySelector("span")||g.previousElementSibling.querySelector("span").focus();else{do{if(!g||!g.previousSibling)break;g=g.previousSibling}while(g&&"LI"!==g.tagName);g&&(null===g.querySelector("span")||g.querySelector("span").focus()),c.preventDefault(a),c.stopPropagation(a)}}}else{var g=angular.element(f)[0];if("true"===f.attr("sub-menu")){if(null===g.previousElementSibling)break;if(g.previousElementSibling)g.previousElementSibling.querySelector("a").focus();else{do{if(!g||!g.previousSibling)break;g=g.previousSibling}while(g&&"LI"!==g.tagName);g&&(null==g.querySelector("a")||g.querySelector("a").focus()),c.preventDefault(a),c.stopPropagation(a)}}else if(void 0===f.attr("sub-menu")){if(null===g.previousElementSibling)break;if(g.previousElementSibling)g.previousElementSibling.querySelector("a").focus();else{do{if(!g||!g.previousSibling)break;g=g.previousSibling}while(g&&"LI"!==g.tagName);g&&(null==g.querySelector("a")||g.querySelector("a").focus())}}}break;case d.KEY.UP:if("true"===f.attr("sub-menu")){var g=document.activeElement,i=angular.element(f.parent().parent().parent().parent())[0].querySelector("span");i.focus(),k.clearSubMenu(),e.menuItem.active=!1;break}if(void 0===f.attr("sub-menu")){var g=document.activeElement,i=angular.element(f.parent().parent().parent().parent())[0].querySelector("a");if(document.activeElement===angular.element(g).parent().parent()[0].querySelectorAll("a")[0]){i.focus();break}if(g.previousElementSibling){g.previousElementSibling;null!=g.previousElementSibling?g.previousElementSibling.focus():i.focus()}else{do{if(!g||!g.previousSibling)break;g=g.previousSibling}while(g&&"A"!==g.tagName);g&&3!==g.nodeType&&g.focus(),c.preventDefault(a),c.stopPropagation(a)}break}}})}}}]),angular.module("att.abs.tagBadges",[]).directive("tagBadges",["$parse","$timeout",function(a,b){return{restrict:"EA",replace:!1,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/tagBadges/tagBadges.html",scope:{styleType:"@",onClose:"&"},link:function(c,d,e){c.isSmall=!1,c.isIcon=!1,c.isColor=!1,c.display=!0,c.isClosable=!1,c.isHighlight=!1,c.customColor=!1,""===e.small&&(c.isSmall=!0),"icon"===c.styleType?c.isIcon=!0:"color"===c.styleType&&(c.isColor=!0,void 0!==e.color&&""!==e.color&&(c.customColor=!0,e.$observe("color",function(a){c.border_type_borderColor=a,c.background_type_backgroundColor=a,c.background_type_borderColor=a}))),c.activeHighlight=function(a){c.customColor&&(a?c.isHighlight=!0:c.isHighlight=!1)},""===e.closable&&(c.isClosable=!0,c.closeMe=function(){c.display=!1,b(function(){\r
-d.attr("tabindex","0"),d[0].focus(),d.bind("blur",function(){d.remove()})}),e.onClose&&(c.onClose=a(c.onClose),c.onClose())})}}}]),angular.module("att.abs.textOverflow",[]).constant("textDefaultOptions",{width:"50%"}).directive("attTextOverflow",["textDefaultOptions","$compile",function(a,b){return{restrict:"A",link:function(c,d,e){var f=d.text();if(d.addClass("text-ellipsis"),e.$observe("attTextOverflow",function(b){b?d.css({width:b}):d.css({width:a.width})}),!d.attr("tooltip")){d.attr("tooltip",f),d.attr("tooltip-placement","above");var g=angular.element(d);b(g)(c)}}}}]),angular.module("att.abs.toggle",["angular-gestures","att.abs.position"]).directive("attToggleTemplate",["$compile","$log","$position",function(a,b,c){return{restrict:"A",require:"ngModel",transclude:!0,scope:{modelVal:"=ngModel"},templateUrl:"app/scripts/ng_js_att_tpls/toggle/demoToggle.html",link:function(a,b,d){a.initialDragPosition=0;var e=0,f=c.offset(b.children().eq(1).children().eq(0)).width-1,g=function(){a.attrValue===d.ngTrueValue||a.attrValue?a.modelVal=!1:a.modelVal=!0};a.updateModel=function(a){1!==e&&(g(),e=0),a.preventDefault()},a.drag=function(d){if(e=1,"dragstart"===d.type)a.initialDragPosition=c.position(b.children().eq(1)).left,b.children().eq(1).addClass("dragging");else if("drag"===d.type){var h=Math.min(0,Math.max(a.initialDragPosition+d.gesture.deltaX,-f));b.children().eq(1).css({left:h+"px"})}else if("dragend"===d.type){var i=c.position(b.children().eq(1)).left>-1*f/2;b.children().eq(1).removeClass("dragging"),TweenMax.to(b.children().eq(1),.1,{left:i?0:-1*f,ease:Power4.easeOut,onComplete:function(){b.children().eq(1).css({left:""})}}),(i||!i&&"left"===d.gesture.direction)&&g(),e=0}return!1},a.directiveValue=d.attToggleTemplate,a.on=d.trueValue,a.off=d.falseValue;var h=-1*f+"px";a.$watch("modelVal",function(c){if(a.attrValue=c,c===d.ngTrueValue||c){b.children().eq(1).css({left:"0px"}),b.addClass("att-checkbox--on");var f=b.find("div").find("div").eq(1);f.attr("aria-checked",!0),e=0}else{b.children().eq(1).css({left:h}),b.removeClass("att-checkbox--on");var f=b.find("div").find("div").eq(1);f.attr("aria-checked",!1),e=0}b.children().eq(1).css({left:""})})}}}]).directive("attToggleMain",["$compile",function(a){return{restrict:"A",require:"ngModel",transclude:!0,replace:!0,scope:{modelValue:"=ngModel",trueValue:"=ngTrueValue",falseValue:"=ngFalseValue"},link:function(b,c,d){var e="",f="";c.removeAttr("att-toggle-main"),b.on=d.ngTrueValue,b.off=d.ngFalseValue,b.largeValue=d.attToggleMain,angular.isDefined(d.ngTrueValue)&&(e+=' true-value="{{on}}" false-value="{{off}}"'),void 0!==b.largeValue&&(f+=' ="{{largeValue}}"'),c.css({display:"none"});var g=angular.element('<div class="att-switch att-switch-alt" ng-class="{\'large\' : largeValue == \'large\'}" ng-model="modelValue"'+e+" att-toggle-template"+f+">"+c.prop("outerHTML")+"</div>");g=a(g)(b),c.replaceWith(g)}}}]),angular.module("att.abs.treeview",[]).directive("treeView",function(){return{restrict:"A",link:function(a,b){function c(){f.reversed()?f.play():f.reverse()}function d(a){a.stopPropagation(),void 0!==angular.element(a.target).attr("tree-view")&&(b.hasClass("minus")?b.removeClass("minus"):b.addClass("minus"),c())}var e=b.children("ul li"),f=TweenMax.from(e,.2,{display:"none",paused:!0,reversed:!0});b.attr("tabindex","0"),b.on("click",function(a){d(a)}),b.on("keypress",function(a){var b=a.keyCode?a.keyCode:a.charCode,c=[13,32];c.length>0&&b&&c.indexOf(b)>-1&&(d(a),a.preventDefault())})}}}),angular.module("att.abs.typeAhead",["att.abs.tagBadges"]).directive("focusMe",["$timeout","$parse",function(a,b){return{link:function(c,d,e){var f=b(e.focusMe);c.$watch(f,function(b){b&&a(function(){d[0].focus(),c.inputActive=!0})}),d.bind("blur",function(){f.assign(c,!1),c.inputActive=!1,c.$digest()})}}}]).directive("typeAhead",["$timeout","$log",function(a,b){return{restrict:"EA",templateUrl:"app/scripts/ng_js_att_tpls/typeAhead/typeAhead.html",replace:!0,scope:{items:"=",title:"@?",titleName:"@",subtitle:"@",model:"=",emailIdList:"=",emailMessage:"="},link:function(c,d){!angular.isDefined(c.titleName)&&angular.isDefined(c.title)&&a(function(){c.titleName=c.title,b.warn("title attribute is deprecated and title-name attribute is used instead as it is conflicting with html title attribute")}),c.lineItems=[],c.filteredListLength=-1,c.filteredList=[],c.setFocus=function(){c.clickFocus=!0},c.setFocus(),c.handleSelection=function(a,b){c.lineItems.push(a),c.emailIdList.push(b),c.model="",c.current=0,c.selected=!0,c.clickFocus=!0},c.theMethodToBeCalled=function(b){var d=c.lineItems.slice();c.emailIdList.splice(b,1),d.splice(b,1),a(function(){c.lineItems=[],c.$apply(),c.lineItems=c.lineItems.concat(d)})},c.current=0,c.selected=!0,c.isCurrent=function(a,b,d,e){return c.current===a&&(c.itemName=b,c.itemEmail=d),c.dropdownLength=e,c.current===a},c.setCurrent=function(a){c.current=a},c.selectionIndex=function(a){38===a.keyCode&&c.current>0?(a.preventDefault(),c.current=c.current-1,c.isCurrent(c.current)):9===a.keyCode?c.selected=!0:13===a.keyCode&&c.dropdownLength!==c.items.length?c.handleSelection(c.itemName,c.itemEmail):8===a.keyCode&&0===c.model.length||46===a.keyCode?c.theMethodToBeCalled(c.lineItems.length-1):40===a.keyCode&&c.current<c.dropdownLength-1&&(a.preventDefault(),c.current=c.current+1,c.isCurrent(c.current)),d[0].querySelector(".list-scrollable").scrollTop=35*(c.current-1)}}}}]),angular.module("att.abs.verticalSteptracker",["ngSanitize"]).directive("verticalSteptracker",[function(){return{restrict:"EA",transclude:!0,replace:!1,scope:{},template:'<div class="vertical-nav"><ul ng-transclude arial-label="step list" role="presentation" class="tickets-list-height"></ul></div>',link:function(){}}}]).directive("verticalSteptrackerStep",[function(){return{restrict:"EA",transclude:!0,replace:!1,scope:{type:"=type",id:"=id"},templateUrl:"app/scripts/ng_js_att_tpls/verticalSteptracker/vertical-step-tracker.html",link:function(){}}}]).directive("attAbsLink",[function(){return{restrict:"EA",transclude:!0,replace:!1,template:'<span ng-transclude class="view-log"></span>'}}]),angular.module("att.abs.videoControls",[]).config(["$compileProvider",function(a){a.aHrefSanitizationWhitelist(/^\s*(https?|javascript):/)}]).directive("videoControls",[function(){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/videoControls/videoControls.html"}}]).directive("photoControls",[function(){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/videoControls/photoControls.html",scope:{prevLink:"@",nextLink:"@"},link:function(a,b,c){c.prevLink||(a.prevLink="javascript:void(0)"),c.nextLink||(a.nextLink="javascript:void(0)"),a.links={prevLink:a.prevLink,nextLink:a.nextLink}}}}]),angular.module("app/scripts/ng_js_att_tpls/accordion/accordion.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/accordion/accordion.html",'<div class="att-accordion__group tabpanel" ng-class="{\'att-accordion__group att-accordion__group--open\':isOpen,\'att-accordion__group\':!isOpen }">\n    <a  ng-show="showicon" \n        class="toggle-header att-accordion__heading att-accordion__toggle noafter" \n        aria-selected="{{focused}}" \n        aria-controls="panel{{index}}" \n        aria-expanded="{{isOpen}}" \n        ng-class="{focus: focused, selected: focused}"         \n        role="tab" \n        ng-click="toggle()" \n        accordion-transclude="heading" \n        style="cursor:pointer; text-decoration:none">\n        <span>{{heading}}</span>\n        <i ng-class="{\'icon-chevron-down\':!isOpen,\'icon-chevron-up\':isOpen }" class="pull-right"></i>\n    </a>\n    <div ng-show="!showicon" \n         ng-class="{focus: focused, selected: focused}" \n         style="text-decoration:none" \n         accordion-transclude="heading"          \n         role="tab"  \n         aria-expanded="{{isOpen}}"\n         aria-selected="{{focused}}" \n         aria-controls="panel{{index}}" \n         class="toggle-header att-accordion__heading att-accordion__toggle noafter">\n        <span>{{heading}}</span>\n    </div>    \n    <div aria-label="{{heading}}" \n         aria-hidden="{{!isOpen}}" \n         role="tabpanel" \n         collapse="!isOpen" \n         class="att-accordion__body" \n         id="panel{{index}}" \n         ng-transclude>\n    </div>\n    <div class="att-accordion__bottom--border"></div>    \n</div> ')}]),angular.module("app/scripts/ng_js_att_tpls/accordion/accordion_alt.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/accordion/accordion_alt.html",'<div class="att-accordion__group tabpanel" ng-class="{\'att-accordion__group att-accordion__group--open\':isOpen,\'att-accordion__group\':!isOpen }">\n    <a class="toggle-header att-accordion__heading att-accordion__toggle" \n       aria-selected="{{focused}}" \n       aria-controls="panel{{index}}" \n       ng-class="{focus: focused, selected: focused}" \n       aria-expanded="{{isOpen}}" \n       role="tab" \n       ng-click="toggle()" \n       accordion-transclude="heading">        \n    </a>\n    <span>{{heading}}</span>\n    <div aria-label="{{heading}}" \n         aria-hidden="{{!isOpen}}" \n         role="tabpanel" \n         collapse="!isOpen" \n         class="att-accordion__body" \n         id="panel{{index}}" \n         ng-transclude>\n    </div>\n</div> ')}]),angular.module("app/scripts/ng_js_att_tpls/accordion/attAccord.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/accordion/attAccord.html","<div ng-transclude></div>")}]),angular.module("app/scripts/ng_js_att_tpls/accordion/attAccordBody.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/accordion/attAccordBody.html","<div ng-transclude></div>")}]),angular.module("app/scripts/ng_js_att_tpls/accordion/attAccordHeader.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/accordion/attAccordHeader.html",'<div ng-click="clickFunc()">\n   <div ng-transclude>\n           <i class="icon-chevron-down"></i>\n     </div>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/alert/alert.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/alert/alert.html","<div class=\"alert\" ng-class=\"{'alert-success': alertType === 'success', 'alert-warning': alertType === 'warning', 'alert-error': alertType === 'error', 'alert-info': alertType === 'info', 'alert-inplace': showTop !== 'true'}\" ng-show=\"showAlert\" ng-style=\"cssStyle\">\n    <div class=\"container\">\n"+'        <a href="javascript:void(0)" alt="close" class="close-role" ng-click="close()" tabindex="0" att-accessibility-click="32,13">Dismiss <i class="icon-circle-action-close"></i></a>\n        <span ng-transclude> </span>\n    </div>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/boardStrip/attAddBoard.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/boardStrip/attAddBoard.html",'<div tabindex="0" att-accessibility-click="13,32" ng-click="addBoard()" aria-label="Add Board" class="boardstrip-item--add">\n    <i aria-hidden="true" class="icon-add centered"></i>\n    <br/>\n    <div class="centered">Add board</div>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/boardStrip/attBoard.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/boardStrip/attBoard.html",'<li att-board-navigation tabindex="0" aria-label="{{boardLabel}}" att-accessibility-click="13,32" ng-click="selectBoard(boardIndex)" class="board-item" ng-class="{\'selected\': getCurrentIndex()===boardIndex}">\n    <div ng-transclude></div>\n    <div class="board-caret" ng-if="getCurrentIndex()===boardIndex">\n        <div class="board-caret-indicator"></div>\n        <div class="board-caret-arrow-up"></div>\n    </div>\n</li>')}]),angular.module("app/scripts/ng_js_att_tpls/boardStrip/attBoardStrip.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/boardStrip/attBoardStrip.html",'<div class="att-boardstrip">\n <div class="boardstrip-reel">\n         <div class="prev-items" ng-if="isPrevBoard()">\n                        <i tabindex="0" aria-label="Scroll Boardstrip Left" att-accessibility-click="13,32" ng-click="prevBoard()" class="arrow icon-arrow-left-circle"></i>\n          </div>\n                <div att-add-board on-add-board="onAddBoard()"></div>\n         <div class="board-viewport"><ul role="presentation" class="boardstrip-container" ng-transclude></ul></div>\n            <div class="next-items" ng-if="isNextBoard()">\n                        <i tabindex="0" aria-label="Scroll Boardstrip Right" att-accessibility-click="13,32" ng-click="nextBoard()" class="arrow icon-arrow-right-circle"></i>\n                </div>\n        </div>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/buttons/buttonDropdown.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/buttons/buttonDropdown.html",'<div class="att-btn-dropdown">\n    <div class="buttons-dropdown--small btn-group" ng-class="{\'open\': isOpen}" att-accessibility-click="13,32" ng-click="toggle()">\n        \n        <button role="menu" class="button button--secondary button--small buttons-dropdown__drop dropdown-toggle" ng-if="type===\'dots\'" alt="Click for Options" >\n            \n            <div class="circle"></div>\n            <div class="circle"></div>\n            <div class="circle"></div>\n        </button>\n        <button role="menu" class="button button--secondary button--small buttons-dropdown__drop dropdown-toggle ng-isolate-scope actions-title" ng-if="type === \'actions\'" alt="Actions dropdown Buttons">Actions</button>\n        \n\n'+"        <ul ng-class=\"{'dropdown-menu dots-dropdwn': type==='dots', 'dropdown-menu actions-dropdwn': type === 'actions'}\" ng-transclude></ul>\n    </div>\n    \n</div>\n")}]),angular.module("app/scripts/ng_js_att_tpls/colorselector/colorselector.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/colorselector/colorselector.html",'<div class="att-radio att-color-selector__item"  \n     ng-class="{\'att-radio--on\': (iconColor === selected)}">\n    <div class="att-radio__indicator" tabindex="0" att-accessibility-click="32,13" ng-click="selectedcolor(iconColor)" \n         ng-style="applycolor" ng-transclude></div>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/datepicker/dateFilter.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/datepicker/dateFilter.html",'<div class="calendar" ng-class="{\'monthpicker\':mode === 1}">\n    <div class="select2-container" ng-class="{\'select2-container-active select2-dropdown-open\': showDropdownList}" style="width: 100%; z-index:0">\n        <a tabindex="0" id="select2-choice" class="select2-choice" href="javascript:void(0)" att-element-focus="focusInputButton" ng-show="!showCalendar" att-accessibility-click="13,32" ng-click="showDropdown()" ng-blur="focusInputButton=false">\n            <span class="select2-chosen" ng-show="!showCalendar">{{selectedOption}}</span>\n            <input type="text" ng-show="showCalendar" ng-blur="untrackInputChange($event)" att-input-deny="[^0-9\\/-]" maxlength="{{maxLength}}" ng-model="selectedOption" aria-labelledby="select2-choice" ng-change="getDropdownText()" />\n            <abbr class="select2-search-choice-close"></abbr>\n            <span ng-class="{\'select2-arrow\': mode !== 1, \'calendar-icon\': mode === 1}"><b></b></span>\n        </a>\n        <a id="select2-chosen" class="select2-choice" href="javascript:void(0)" ng-show="showCalendar">\n            <span class="select2-chosen" ng-show="!showCalendar">{{selectedOption}}</span>\n            <input type="text" ng-show="showCalendar" ng-blur="untrackInputChange($event)" att-input-deny="[^0-9\\/-]" maxlength="{{maxLength}}" ng-model="selectedOption" aria-labelledby="select2-chosen" ng-change="getDropdownText()" />\n            <abbr class="select2-search-choice-close"></abbr>\n            <span tabindex="0" ng-class="{\'select2-arrow\': mode !== 1, \'calendar-icon\': mode === 1}" att-accessibility-click="13,32" ng-click="showDropdown()"><b></b></span>\n        </a>\n    </div>\n    <div class="select2-drop select2-drop-active select2-display-none" ng-style="{display: (showDropdownList && \'block\') || \'none\', \'border-radius\': showCalendar && \'0 0 0 6px\'}" style="width: 100%">\n        <div  id="dateFilterList" att-scrollbar ><ul class="select2-results options" ng-transclude></ul></div>\n               <ul class="select2-results sttings" style="margin-top:0px">\n                   <li tabindex="0" class="select2-result select2-highlighted greyBorder" ng-class="{\'select2-result-current\': checkCurrentSelection(\'Custom Single Date\')}" att-accessibility-click="13,32" ng-click="selectAdvancedOption(\'Custom Single Date\')">\n                <div class="select2-result-label" ng-if="mode !== 1">Custom Single Date...</div>\n                              <div class="select2-result-label" ng-if="mode === 1">Custom single month...</div>\n            </li>\n            <li tabindex="0" class="select2-result select2-highlighted" ng-class="{\'select2-result-current\': checkCurrentSelection(\'Custom Range\')}" att-accessibility-click="13,32" ng-click="selectAdvancedOption(\'Custom Range\')">\n                <div class="select2-result-label" ng-if="mode !== 1">Custom Range...</div>\n                         <div class="select2-result-label" ng-if="mode === 1">Custom month range...</div>\n            </li>\n            <li class="select2-result select2-highlighted btnContainer" ng-style="{display: (showCalendar && \'block\') || \'none\'}">\n                <button tabindex="0" ng-blur="resetFocus($event)" att-element-focus="focusApplyButton" att-button="" btn-type="{{applyButtonType}}" size="small" att-accessibility-click="13,32" ng-click="apply()">Apply</button>\n                <button tabindex="0" att-button="" btn-type="secondary" size="small" att-accessibility-click="13,32" ng-click="cancel()">Cancel</button>\n                <div>\n                    <a tabindex="0" href="javascript:void(0)" ng-if="mode !== 1" style="text-decoration:underline;" att-accessibility-click="13,32" ng-click="clear()">Clear Dates</a>\n                    <a tabindex="0" href="javascript:void(0)" ng-if="mode === 1" style="text-decoration:underline;" att-accessibility-click="13,32" ng-click="clear()">Clear Months</a>\n                </div>\n            </li>\n          </ul>\n    </div>\n    <div class="datepicker-wrapper show-right" ng-style="{display: (showCalendar && \'block\') || \'none\'}">\n        <span datepicker ng-blur="resetFocus($event)" att-element-focus="focusSingleDateCalendar" ng-show="checkCurrentSelection(\'Custom Single Date\')"></span>\n        <span datepicker ng-blur="resetFocus($event)" att-element-focus="focusRangeCalendar" ng-show="checkCurrentSelection(\'Custom Range\')"></span>\n    </div>\n</div>\n')}]),angular.module("app/scripts/ng_js_att_tpls/datepicker/dateFilterList.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/datepicker/dateFilterList.html",'<li ng-click="!disabled && selectOption(fromDate,toDate,caption)" att-accessibility-click="13,32" ng-class="{\'select2-result-current\': checkCurrentSelection(caption)}" class="select2-result select2-highlighted ng-scope" tabindex="{{!disabled?\'0\':\'-1\'}}">\n                <div class="select2-result-label" ng-class="{\'disabled\':disabled}" ng-transclude></div>\n</li>')}]),angular.module("app/scripts/ng_js_att_tpls/datepicker/datepicker.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/datepicker/datepicker.html",'<div id="datepicker" class="datepicker" ng-class="{\'monthpicker\': mode === 1}" aria-hidden="false" role="dialog" tabindex="-1" aria-labelledby="datepicker">\n    <div class="datepicker-days" style="display: block;">\n        <table class="table-condensed">\n            <thead>\n                <tr>\n                    <th id="month" tabindex="0" class="datepicker-switch" colspan="{{(mode !== 1) && (currentRows[0].length - 2) || (currentRows[0].length)}}" style="text-align:left">{{currentTitle}}</th>\n                    <th ng-if="mode !== 1" id="prev" aria-hidden="{{!disablePrev && \'false\'|| \'true\'}}" tabindex="{{!disablePrev && \'0\'|| \'-1\'}}" att-accessibility-click="13,32" ng-click="!disablePrev && move(-1)">\n            <div class="icons-list" data-size="medium"><i class="icon-arrow-left-circle" ng-class="{\'disabled\': disablePrev}" alt="Left Arrow"></i>\n            </div><span class="hidden-spoken">Previous Month</span>\n            </th>\n            <th ng-if="mode !== 1" id="next" aria-hidden="{{!disableNext && \'false\'|| \'true\'}}" tabindex="{{!disableNext && \'0\'|| \'-1\'}}" att-accessibility-click="13,32" ng-click="!disableNext && move(1)">\n            <div class="icons-list" data-size="medium"><i class="icon-arrow-right-circle" ng-class="{\'disabled\': disableNext}" alt="Right Arrow"></i>\n            </div><span class="hidden-spoken">Next Month</span>\n            </th>\n            </tr>\n            <tr ng-if="labels.length > 0">\n                <th tabindex="-1" class="dow weekday" ng-repeat="label in labels"><span>{{label.pre}}</span></th>\n            </tr>\n            </thead>\n            <tbody>\n                <tr>\n                    <td id="datepickerBody" att-scrollbar colspan="{{currentRows[0].length}}" style="padding: 0px;" headers="">\n                        <table ng-class="{\'table-condensed\': mode === 0, \'monthtable-condensed\': mode === 1}" style="padding: 0px;">\n                            <thead class="hidden-spoken">\n                                <tr ng-show="labels.length > 0">\n                                    <th id="{{label.post}}" tabindex="-1" class="dow weekday" ng-repeat="label in labels"></th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr ng-repeat="row in currentRows">\n                                    <td headers="{{(mode === 0) && dt.header || \'month\'}}" att-element-focus="dt.focused" aria-hidden="{{(!dt.oldMonth && !dt.nextMonth && !dt.disabled && \'false\') || \'true\'}}" tabindex="{{(!dt.oldMonth && !dt.nextMonth && !dt.disabled && \'0\') || \'-1\'}}" ng-repeat="dt in row" class="days" ng-class="{\'active\': dt.selected || dt.from || dt.to, \'from\': dt.from, \'to\': dt.to, \'range\': dt.dateRange, \'prev-month \': dt.oldMonth, \'next-month\': dt.nextMonth, \'disabled\': dt.disabled, \'today\': dt.today, \'weekend\': dt.weekend}" ng-click="!dt.selected && !dt.from && !dt.to && !dt.disabled && !dt.oldMonth && !dt.nextMonth && select(dt.date)" att-accessibility-click="13,32" aria-label="{{dt.date | date : \'EEEE, MMMM d\'}}"><span class="day">{{dt.label}}</span></td>\n                                </tr>\n                                <tr ng-if="mode === 1" class="divider"><td colspan="{{nextRows[0].length}}"><hr></td></tr>\n                                <tr>\n                                    <th id="month" tabindex="0" class="datepicker-switch internal" colspan="{{nextRows[0].length}}" style="text-align:left">{{nextTitle}}</th>\n                                </tr>\n                                <tr ng-repeat="row in nextRows">\n'+"                                    <td headers=\"{{(mode === 0) && dt.header || 'month'}}\" att-element-focus=\"dt.focused\" aria-hidden=\"{{(!dt.oldMonth && !dt.nextMonth && !dt.disabled && 'false') || 'true'}}\" tabindex=\"{{(!dt.oldMonth && !dt.nextMonth && !dt.disabled && '0') || '-1'}}\" ng-repeat=\"dt in row\" class=\"days\" ng-class=\"{'active': dt.selected || dt.from || dt.to, 'from': dt.from, 'to': dt.to, 'range': dt.dateRange, 'prev-month ': dt.oldMonth, 'next-month': dt.nextMonth, 'disabled': dt.disabled, 'today': dt.today, 'weekend': dt.weekend}\" ng-click=\"!dt.selected && !dt.from && !dt.to && !dt.disabled && !dt.oldMonth && !dt.nextMonth && select(dt.date)\" att-accessibility-click=\"13,32\" aria-label=\"{{dt.date | date : 'EEEE, MMMM d'}}\"><span class=\"day\">{{dt.label}}</span></td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </td>\n                </tr>\n            </tbody>\n        </table>\n    </div>\n</div>\n")}]),angular.module("app/scripts/ng_js_att_tpls/datepicker/datepickerPopup.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/datepicker/datepickerPopup.html",'<div class="calendar">\n    <div class="box" ng-class="{\'active\': isOpen}">\n        <span ng-transclude></span>\n        <i class="calendar-icon" tabindex="0" att-accessibility-click="13,32" ng-click="toggle()" alt="Calendar Icon"></i>\n    </div>\n    <div class="datepicker-wrapper datepicker-wrapper-display-none" ng-style="{display: (isOpen && \'block\') || \'none\'}" aria-hidden="false" role="dialog" tabindex="-1">\n        <span datepicker></span>\n    </div>\n</div>\n')}]),angular.module("app/scripts/ng_js_att_tpls/dividerLines/dividerLines.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/dividerLines/dividerLines.html",'<div class="divider-container" ng-class="{\'divider-container-light\': lightContainer}">\n    <hr ng-class="{\'divider-light\': lightContainer}">\n</div>\n\n')}]),angular.module("app/scripts/ng_js_att_tpls/dragdrop/fileUpload.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/dragdrop/fileUpload.html",'<label class="fileContainer"><span ng-transclude></span><input type="file" att-file-change></label>')}]),angular.module("app/scripts/ng_js_att_tpls/formField/attFormFieldValidationAlert.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/formField/attFormFieldValidationAlert.html",'<div class="form-field" ng-class="{\'error\': errorMessage, \'warning\': warningMessage}">\n    <label class="form-field__label" ng-class="{\'form-field__label--show\': showLabel, \'form-field__label--hide\': hideLabel}"></label>\n    <div class="form-field-input-container" ng-transclude></div>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/formField/attFormFieldValidationAlertPrv.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/formField/attFormFieldValidationAlertPrv.html",'<div class="form-field" ng-class="{\'error\':hideErrorMsg}">\n    <div class="form-field-input-container" ng-transclude></div>\n    <div class="form-field__message error" type="error" ng-show="hideErrorMsg" >\n          <i class="icon-info-alert"></i>{{errorMessage}}\n       </div>\n</div>\n')}]),angular.module("app/scripts/ng_js_att_tpls/formField/creditCardImage.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/formField/creditCardImage.html",'<span class="css-sprite pull-right">\n<span class="hidden-spoken">We accept</span>\n<ul class="{{newValCCI}}">\n        <li class="css-sprite-mc"><span class="hidden-spoken">MasterCard</span></li>\n        <li class="css-sprite-visa"><span class="hidden-spoken">Visa</span></li>\n        <li class="css-sprite-amex"><span class="hidden-spoken">American Express</span></li>\n        <li class="css-sprite-discover"><span class="hidden-spoken">Discover</span></li>                                                                                                                \n</ul>\n</span>\n<label for="ccForm.card" class="pull-left">Card number</label>')}]),angular.module("app/scripts/ng_js_att_tpls/formField/cvcSecurityImg.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/formField/cvcSecurityImg.html",'<div>\n<button type="button" class="btn btn-alt btn-tooltip" style="padding-top:16px" title="Help"><i class="hidden-spoken">Help</i></button>\n<div class="helpertext" role="tooltip">\n<div class="popover-title"></div>\n<div class="popover-content">\n    <p class="text-legal cvc-cc">\n        <img ng-src="images/{{newValI}}.png" alt="{{newValIAlt}}">\n    </p>\n</div>\n</div>\n</div>\n')}]),angular.module("app/scripts/ng_js_att_tpls/hourpicker/hourpicker.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/hourpicker/hourpicker.html",'<div class="hourpicker">\n    <div class="dropdown-width">\n        <div ng-model="showlist" class="select2-container topDropDownWidth" ng-class="{\'select2-dropdown-open select2-container-active\': showlist}" >\n            <a class="select2-choice" href="javascript:void(0)" id="customSelect" ng-keydown="selectOption(selectPrevNextValue($event,options,selectedOption))" att-accessibility-click="13" ng-click="showDropdown()">\n                <span class="select2-chosen">{{selectedOption}}</span>\n                <span class="select2-arrow"><b></b></span>\n            </a>\n        </div>             \n        <div class="select2-display-none select2-with-searchbox select2-drop-active show-search resultTopWidth" ng-show="showlist">       \n        <ul class="select2-results resultTopMargin" >                       \n            <li  ng-model="ListType" ng-repeat="option in options" att-accessibility-click="13" ng-click="selectOption(option,$index)" class="select2-results-dept-0 select2-result select2-result-selectable"><div class="select2-result-label"><span >{{option}}</span></div></li>                        \n        </ul>\n        </div>\n    </div>\n    <div ng-show="showDaysSelector" class="customdays-width">\n        <div att-divider-lines class="divider-margin-f"></div>  \n        <div class="col-md-3 fromto-margin">\n            <div>From</div> <br>\n            <div>To</div>\n        </div>\n        <div ng-repeat="day in days">\n            <div class="col-md-3 col-md-days">\n                <div  class="col-md-1 daysselect-margin">\n                    <input type="checkbox" ng-model="daysList[day]" title="Day selection {{$index}}" att-checkbox ng-change="addSelectedValue(day)">    \n                </div>\n                <span>{{day}}</span><br>\n                \n                <div class="dropDownMarginBottom">\n                    <div class="select2-container topDropDownWidth" ng-class="{\'select2-dropdown-open select2-container-active\': FrtimeListDay[day]}" >\n                        <a class="select2-choice selectDropDown" href="javascript:void(0)" tabindex="{{daysList[day] ? \'0\' : \'-1\'}}" att-accessibility-click="13" ng-click="daysList[day] && showfromDayDropdown(day)" ng-class="{\'select2-chosen-disabled\':!daysList[day]}"  ng-keydown="daysList[day] && selectFromDayOption(day , selectPrevNextValue($event,fromtime,selectedFromOption[day]));daysList[day] && addSelectedValue(day);">\n                            <span class="select2-chosen dropDownMarginRight" >{{selectedFromOption[day]}} <i ng-if="daysList[day]" ng-class="FrtimeListDay[day] ? \'icon-dropdown-up\' : \'icon-dropdown-down\'"></i></span>\n                        </a>\n                    </div>             \n                    \n                    <div class="select2-display-none select2-with-searchbox select2-drop-active show-search resultFromDropDown"  ng-show="FrtimeListDay[day]">       \n                    <ul class="select2-results resultTopMargin" >                       \n                        <li ng-click="selectFromDayOption(day,time.value);addSelectedValue(day);" ng-repeat="time in fromtime"  class="select2-results-dept-0 select2-result select2-result-selectable"><div class="select2-result-label" ng-class="{\'selectedItemInDropDown\': (time.value==selectedFromOption[day])}"><span >{{time.value}}</span></div></li>                        \n                    </ul>\n                    </div>\n                </div>\n                \n                <div class="dropDownMarginBottom">\n                    <div class="select2-container topDropDownWidth" ng-class="{\'select2-dropdown-open select2-container-active\': TotimeListDay[day]}" >\n                        <a class="select2-choice selectDropDown" href="javascript:void(0)" tabindex="{{daysList[day] ? \'0\' : \'-1\'}}" att-accessibility-click="13" ng-click="daysList[day] && showtoDayDropdown(day)" ng-class="{\'select2-chosen-disabled\':!daysList[day], \'selectDropDown-error\':daysList[day] && showToTimeErrorDay[day]}"  ng-keydown="daysList[day] && selectToDayOption(day , selectPrevNextValue($event,totime,selectedToOption[day]));daysList[day] && addSelectedValue(day);">\n                            <span class="select2-chosen dropDownMarginRight">{{selectedToOption[day]}} <i ng-if="daysList[day]" ng-class="TotimeListDay[day] ? \'icon-dropdown-up\' : \'icon-dropdown-down\'" ></i></span>\n                        </a>\n                    </div>\n                    \n                    <div class="select2-display-none select2-with-searchbox select2-drop-active show-search resultToDropDown" ng-show="TotimeListDay[day]">       \n                    <ul class="select2-results resultTopMargin" >                       \n                        <li ng-click="selectToDayOption(day,time.value);addSelectedValue(day);" ng-repeat="time in totime"  class="select2-results-dept-0 select2-result select2-result-selectable"><div class="select2-result-label" ng-class="{\'selectedItemInDropDown\': (time.value==selectedToOption[day])}"><span >{{time.value}}</span></div></li>                        \n                    </ul>\n                    </div>\n                </div>\n            </div>  \n        </div>    \n        <div att-divider-lines class="divider-margin-s"></div>\n    </div>\n    <div ng-transclude></div>\n</div>');\r
-}]),angular.module("app/scripts/ng_js_att_tpls/links/readMore.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/links/readMore.html",'<div>\n    <div ng-bind-html="textToDisplay" ng-class="{\'att--readMore\': readFlag, \'att--readLess\': !readFlag}" ng-style="readLinkStyle"></div>\n    <span class="att--readmore__link" ng-show="readMoreLink">… <a href="javascript:void(0);" ng-click="readMore()" att-accessbility-click="32,13">Read More</a>\n    </span>\n</div>\n<span class="att--readless__link" ng-show="readLessLink">\n    <a href="javascript:void(0);" ng-click="readLess()" att-accessbility-click="32,13">Read Less</a>\n</span>')}]),angular.module("app/scripts/ng_js_att_tpls/loading/loading.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/loading/loading.html",'<div data-progress="{{progressStatus}}" class="{{colorClass}}" ng-class="{\'att-loading-count\':icon == \'count\',\'loading--small\':icon == \'small\',\'loading\': icon != \'count\'}" alt="Loading">\n  <div class="att-loading-circle" ng-if="icon == \'count\'">\n            <div class="att-loading-circle__mask att-loading-circle__full">\n                       <div class="att-loading-circle__fill"></div>\n          </div>\n                <div class="att-loading-circle__mask att-loading-circle__half">\n                       <div class="att-loading-circle__fill"></div>\n                  <div class="att-loading-circle__fill att-loading-circle__fix"></div>\n          </div>\n        </div>\n        <div ng-class="{\'att-loading-inset\':icon == \'count\',\'loading__inside\':icon != \'count\'}"><div class="att-loading-inset__percentage" ng-if="icon == \'count\'" alt="Loading with Count"></div></div>\n</div>\n\n')}]),angular.module("app/scripts/ng_js_att_tpls/modal/backdrop.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/modal/backdrop.html",'<div class="overlayed" ng-class="{show: animate}" \n'+"     ng-style=\"{'z-index': 2000 + index*10,'overflow':'scroll'}\">         \n</div>")}]),angular.module("app/scripts/ng_js_att_tpls/modal/tabbedItem.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/modal/tabbedItem.html",'<div>\n    <ul class="tabs_overlay">\n        <li ng-repeat="item in items" class="tabs_overlay__item two__item" ng-class="{\'active\':isActiveTab($index)}" ng-click="clickTab($index)">\n            <i class="{{item.iconClass}}"></i>\n            {{item.title}} ({{item.number}})\n            <a class="viewLink" att-link>Show</a>\n        </li>\n    </ul>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/modal/tabbedOverlayItem.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/modal/tabbedOverlayItem.html",'<div>\n    <ul class="tabs_overlay">\n        <li ng-repeat="item in items" class="tabs_overlay__item two__item" ng-class="{\'active\':isActiveTab($index)}" ng-click="clickTab($index)">\n            <i class="{{item.iconClass}}"></i>\n            {{item.title}} ({{item.number}})\n            <a class="viewLink" att-link>Show</a>\n        </li>\n    </ul>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/modal/window.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/modal/window.html",'<div tabindex="-1" role="dialog" att-element-focus="focusModalFlag" class="modals {{ windowClass }}" ng-class="{show: animate}" \n     ng-style="{\'z-index\': 2010 + index*10}"  ng-click="close($event)" ng-transclude>         \n</div>\n')}]),angular.module("app/scripts/ng_js_att_tpls/pagination/pagination.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/pagination/pagination.html",'<div class="pager">\n    <a tabindex="0" href="javascript:void(0)" class="pager__item--prev" att-accessibility-click="13,32" ng-click="prev($event)" ng-if="currentPage > 1"><i class="icon-arrow-left"></i> Previous</a>\n    <a tabindex="0" href="javascript:void(0)" class="pager__item pager__item--link" ng-if="totalPages > 7 && currentPage > 3" att-accessibility-click="13,32" ng-click="selectPage(1, $event)">1</a>\n    <span class="pager__item" ng-if="totalPages > 7 && currentPage > 3">...</span>\n    <a tabindex="0" href="javascript:void(0)" class="pager__item pager__item--link" att-element-focus="isFocused(page)" ng-repeat="page in pages" ng-class="{\'pager__item--active\': checkSelectedPage(page)}" att-accessibility-click="13,32" ng-click="selectPage(page, $event)">{{page}}</a>\n    <span class="pager__item" ng-if="totalPages > 7 && currentPage < totalPages - 2 && showInput !== true">...</span>\n    <span ng-show="totalPages > 7 && showInput === true"><input class="pager__item--input" type="text" placeholder="..." maxlength="2" ng-model="currentPage" aria-label="Current page count"/></span>\n    <a tabindex="0" href="javascript:void(0)" class="pager__item pager__item--link" ng-if="totalPages > 7 && currentPage < totalPages - 2" att-accessibility-click="13,32" ng-click="selectPage(totalPages, $event)">{{totalPages}}</a>\n    <a tabindex="0" href="javascript:void(0)" class="pager__item--next" att-accessibility-click="13,32" ng-click="next($event)" ng-if="currentPage < totalPages">Next <i class="icon-arrow-right"></i></a>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/paneSelector/innerPane.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/paneSelector/innerPane.html","<div class='inner-pane' ng-transclude></div>")}]),angular.module("app/scripts/ng_js_att_tpls/paneSelector/paneGroup.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/paneSelector/paneGroup.html","<div class='pane-group' ng-transclude></div>")}]),angular.module("app/scripts/ng_js_att_tpls/paneSelector/sidePane.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/paneSelector/sidePane.html","<div class='side-pane' ng-transclude></div>")}]),angular.module("app/scripts/ng_js_att_tpls/tooltip/tooltip-popup.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/tooltip/tooltip-popup.html","<div class=\"att-tooltip \" \n     ng-class=\"{ 'att-tooltip--on': isOpen, \n                'att-tooltip--dark att-tooltip--dark--hover':stylett=='dark', \n                'att-tooltip--light att-tooltip--light--hover':stylett=='light',\n                'att-tooltip--left':placement=='left', \n                'att-tooltip--above':placement=='above', \n                'att-tooltip--right':placement=='right', \n                'att-tooltip--below':placement=='below'}\" \n    ng-bind-html=\"content | unsafe\" ></div>")}]),angular.module("app/scripts/ng_js_att_tpls/popOvers/popOvers.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/popOvers/popOvers.html","<div class=\"att-popover popover-demo\" ng-style=\"{backgroundColor:popOverStyle}\"\n     ng-class=\"{'att-tooltip--dark':popOverStyle==='grey',\n                'att-pop-over--left':popOverPlacement==='left', \n                'att-pop-over--above':popOverPlacement==='above', \n                'att-pop-over--right':popOverPlacement==='right'}\" \n    style='position: absolute; max-width: 490px;'>\n    <div class=\"pop-over-caret\"\n         ng-class=\"{'pop-over-caret-border--left':popOverPlacement==='left', \n                'pop-over-caret-border--above':popOverPlacement==='above', \n                'pop-over-caret-border--right':popOverPlacement==='right', \n                'pop-over-caret-border--below':popOverPlacement==='below'}\">\n    </div>\n    <div class=\"pop-over-caret\" ng-style=\"popOverPlacement=='below' && {borderBottom:'6px solid ' +popOverStyle}||popOverPlacement=='left' && {borderLeft:'6px solid ' +popOverStyle}||popOverPlacement=='right' && {borderRight:'6px solid ' +popOverStyle}||popOverPlacement=='above' && {borderTop:'6px solid ' +popOverStyle}\"\n         ng-class=\"{'pop-over-caret--left':popOverPlacement==='left', \n                'pop-over-caret--above':popOverPlacement==='above', \n                'pop-over-caret--right':popOverPlacement==='right', \n                'pop-over-caret--below':popOverPlacement==='below'}\"></div>\n    \n    <div class=\"att-popover-content\">\n"+'      <a ng-if="closeable" href="javascript:void(0)" class="icon-close att-popover__close" ng-click="closeMe();$event.preventDefault()"></a>\n        <div class="popover-packages__container" ng-include="content"></div>\n    </div>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/profileCard/addUser.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/profileCard/addUser.html",'<div  class="col-md-9 profile-card add-user">\n    <div class="atcenter">\n        <div><i class="icon-add"></i></div>\n        <span>add User</span>\n    </div>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/profileCard/profileCard.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/profileCard/profileCard.html",'<div class="col-md-9 profile-card">\n    <div class="top-block">\n       <div class="profile-image">\n            <img ng-if="image" profile-name="{{profile.name}}" ng-src="{{profile.img}}" alt="{{profile.name}}">\n            <span ng-hide="image" class="default-img">{{initials}}</span>\n            <p class="name" tooltip-condition="{{profile.name}}" height="true"></p>\n            <p class="status">\n                <span class="status-icon" ng-class="{\'icon-green\':colorIcon===\'green\',\'icon-red\':colorIcon===\'red\',\'icon-blue\':colorIcon===\'blue\',\'icon-yellow\':colorIcon===\'yellow\'}">   \n                </span>\n                <span>{{profile.state}}<span ng-if="badge" class="status-badge">Admin</span></span>\n            </p>\n        </div>\n    </div>\n    <div class="bottom-block">\n         <div class="profile-details">\n            <label>Username</label>\n            <p att-text-overflow="92%" tooltip-condition="{{profile.userName}}">{{profile.userName}}</p>\n            <label>Email</label>\n            <p att-text-overflow="92%" tooltip-condition="{{profile.email}}">{{profile.email}}</p>\n            <label>Role</label>\n            <p att-text-overflow="92%" tooltip-condition="{{profile.role}}">{{profile.role}}</p>\n            <label>Last Login</label>\n            <p att-text-overflow="92%" tooltip-condition="{{profile.lastLogin}}">{{profile.lastLogin}}</p>\n         </div>\n    </div>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/progressBars/progressBars.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/progressBars/progressBars.html",'<div class="att-progress">\n    <div class="att-progress-value">&nbsp;</div>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/scrollbar/scrollbar.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/scrollbar/scrollbar.html",'<div class="scroll-bar" style="position: absolute">\n    <div class="scroll-thumb" style="position: absolute; overflow: hidden"></div>\n</div>\n<div class="prev icons-list" data-size="medium" ng-show="navigation && prevAvailable" ng-style="{height: scrollbarAxis === \'x\' && position.height + \'px\'}">\n    <a href="javascript:void(0);" ng-click="customScroll(false)" aria-label="Scroll" aria-hidden="true">\n        <i ng-class="{\'icon-chevron-up\': (scrollbarAxis === \'y\'), \'icon-chevron-left\': (scrollbarAxis === \'x\')}"></i>\n    </a>\n</div>\n<div class="scroll-viewport" ng-style="{height: (scrollbarAxis === \'x\' && position.height + \'px\') || viewportHeight, width: viewportWidth}" style="position: relative; overflow: hidden">\n    <div class="scroll-overview" style="position: absolute; display: table; width: 100%" att-position="position" ng-transclude></div>\n</div>\n<div class=\'next icons-list\' data-size="medium" ng-show="navigation && nextAvailable" ng-style="{height: scrollbarAxis === \'x\' && position.height + \'px\'}">\n    <a href="javascript:void(0);" ng-click="customScroll(true)" aria-label="Scroll" aria-hidden="true">\n'+"        <i ng-class=\"{'icon-chevron-down': (scrollbarAxis === 'y'), 'icon-chevron-right': (scrollbarAxis === 'x')}\"></i>\n    </a>\n</div>\n")}]),angular.module("app/scripts/ng_js_att_tpls/search/search.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/search/search.html",'<div class="select2-container show-search" ng-class="{\'select2-dropdown-open\': (showlist && !isDisabled),\'select2-container-disabled\':isDisabled, \'select2-container-active\': isact}" ng-init="isact=false;" style="width: 100%;">\n    <a href="javascript:void(0)" class="select2-choice needsclick" tabindex="0" ng-click="showDropdown()" ng-class="{\'select2-chosen-disabled\':isDisabled}" role="combobox" aria-expanded="{{showlist}}" aria-owns="inList" aria-label="{{selectedOption}} selected" ng-focus="isact=true;" ng-blur="isact=false;">\n        <span class="select2-chosen needsclick" aria-hidden = "true">{{selectedOption}}</span>\n        <abbr class="select2-search-choice-close needsclick"></abbr>\n        <span class="select2-arrow needsclick" role="presentation">\n            <b role="presentation" class="needsclick"></b>\n        </span>\n    </a>    \n    <input class="select2-focusser select2-offscreen"            \n           tabindex="-1" \n           type="text" \n           aria-hidden="true" \n           title="hidden"           \n           aria-haspopup="true"           \n           role="button">    \n</div>\n\n<div class="select2-drop select2-with-searchbox select2-drop-auto-width select2-drop-active" ng-class="{\'select2-display-none\':(!showlist || isDisabled)}" style="width:100%;z-index: 10">\n    <div class="select2-search">\n        <label ng-if="!noFilter" class="select2-offscreen" aria-label="Inline Search Field" aria-hidden="true">Inline Search Field</label>\n        <input ng-if="!noFilter" ng-model="title" aria-label="title" typeahead="c.title for c in cName | filter:$viewValue:startsWith" type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="select2-input" aria-autocomplete="list" placeholder="">\n    </div>\n    <ul id="inList" class="select2-results" role="listbox">\n        <li ng-show="filteredName.length === 0" class="select2-no-results" tabindex="-1">No matches found</li>\n        <li class="select2-results-dept-0 select2-result select2-result-selectable" role="presentation" ng-model="ListType" ng-show="selectMsg && filteredName.length > 0" ng-click="selectOption(selectMsg, \'-1\')" ng-class="{\'select2-result-current\': selectedOption === selectMsg, \'hovstyle\': selectedIndex === -1}" ng-mouseover="hoverIn(-1)" aria-label="{{selectMsg}}" tabindex="-1">\n            <div ng-if="startsWithFilter" class="select2-result-label" ng-bind-html="selectMsg | unsafe" role="option">\n                <span class="select2-match"></span>\n            </div>\n            <div ng-if="!startsWithFilter" class="select2-result-label" ng-bind-html="selectMsg | highlight:title:className | unsafe" role="option">\n                <span class="select2-match"></span>\n            </div>\n        </li>\n\n        <li role="menuitem" ng-if="startsWithFilter" class="select2-results-dept-0 select2-result select2-result-selectable" role="presentation" ng-model="ListType" ng-repeat="(fIndex, item) in filteredName = (cName | startsWith:title:item)" ng-class="{\'select2-result-current\': selectedOption === item.title,\'hovstyle\': selectedIndex === item.index,\'disable\': item.disabled}" ng-click="item.disabled || selectOption(item.title,item.index)" ng-mouseover="hoverIn(item.index)" aria-label="{{item.title}}" tabindex="-1">\n            <div class="select2-result-label" ng-bind-html="item.title | unsafe" role="option">\n                <span class="select2-match"></span>\n            </div>\n        </li>\n\n        <li role="menuitem" ng-if="!startsWithFilter" class="select2-results-dept-0 select2-result select2-result-selectable" role="presentation" ng-model="ListType" ng-repeat="(fIndex, item) in filteredName = (cName | filter:title)" ng-class="{\'select2-result-current\': selectedOption === item.title,\'hovstyle\': selectedIndex === item.index,\'disable\': item.disabled}" ng-click="item.disabled || selectOption(item.title,item.index)" ng-mouseover="hoverIn(item.index)" aria-label="{{item.title}}" tabindex="-1">\n            <div class="select2-result-label" ng-bind-html="item.title | highlight:title:className | unsafe" role="option">\n                <span class="select2-match"></span>\n            </div>\n        </li>\n    </ul>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/select/select.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/select/select.html",'<div class="select2-container show-search" ng-class="{\'select2-dropdown-open\': (showlist && !isDisabled),\'select2-container-disabled\': isDisabled, \'select2-container-active\': isact}" ng-init="isact=false;">\n    <span class="select2-choice needsclick" tabindex="{{isDisabled ? -1 : 0}}" ng-click="showDropdown()" ng-class="{\'select2-chosen-disabled\':isDisabled}" role="combobox" aria-expanded="{{showlist}}" aria-owns="inList" aria-label="{{selectedOption}} selected" ng-focus="isact=true;" ng-blur="isact=false;">\n        <span class="select2-chosen needsclick" aria-hidden="true">{{selectedOption}}</span>\n        <abbr class="select2-search-choice-close needsclick"></abbr>\n        <span class="select2-arrow needsclick" role="presentation">\n            <b role="presentation" class="needsclick"></b>\n        </span>\n    </span>    \n    <input class="select2-focusser select2-offscreen"            \n           tabindex="-1" \n           type="text" \n           aria-hidden="true" \n           title="hidden"           \n           aria-haspopup="true"           \n           role="button">    \n</div>\n\n<div class="select2-drop select2-with-searchbox select2-drop-auto-width select2-drop-active" ng-class="{\'select2-display-none\':(!showlist || isDisabled)}" style="width:100%;z-index: 10">\n    <div class="select2-search">\n        <label ng-if="!noFilter" class="select2-offscreen" aria-label="Inline Search Field" aria-hidden="true">Inline Search Field</label>\n        <input ng-if="!noFilter" ng-model="title" aria-label="title" typeahead="c.title for c in cName | filter:$viewValue:startsWith" type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="select2-input" aria-autocomplete="list" placeholder="">\n    </div>\n    <ul id="inList" class="select2-results" role="listbox">\n        <li ng-if="!noFilter" ng-show="filteredName.length === 0" class="select2-no-results" tabindex="-1">No matches found</li>\n        <li ng-if="!noFilter" class="select2-results-dept-0 select2-result select2-result-selectable" role="presentation" ng-model="ListType" ng-show="selectMsg && filteredName.length > 0" ng-click="selectOption(selectMsg, \'-1\')" ng-class="{\'select2-result-current\': selectedOption === selectMsg, \'hovstyle\': selectedIndex === -1}" ng-mouseover="hoverIn(-1)" aria-label="{{selectMsg}}" tabindex="-1">\n            <div ng-if="startsWithFilter" class="select2-result-label" ng-bind-html="selectMsg | unsafe" role="option">\n                <span class="select2-match"></span>\n            </div>\n            <div ng-if="!startsWithFilter" class="select2-result-label" ng-bind-html="selectMsg | highlight:title:className | unsafe" role="option">\n                <span class="select2-match"></span>\n            </div>\n        </li>\n\n        <li  role="menuitem"  ng-if="startsWithFilter" class="select2-results-dept-0 select2-result select2-result-selectable" ng-model="ListType" ng-repeat="(fIndex, item) in filteredName = (cName | startsWith:title:item)" ng-class="{\'select2-result-current\': selectedOption === item.title,\'hovstyle\': selectedIndex === item.index,\'disable\': item.disabled}" ng-click="item.disabled || selectOption(item.title,item.index)" ng-mouseover="hoverIn(item.index)"  tabindex="-1">\n            <div class="select2-result-label" ng-bind-html="item.title | unsafe" role="option">\n                <span class="select2-match"></span>\n            </div>\n        </li>\n\n        <li role="menuitem" ng-if="!startsWithFilter" class="select2-results-dept-0 select2-result select2-result-selectable" ng-model="ListType" ng-repeat="(fIndex, item) in filteredName = (cName | filter:title)" ng-class="{\'select2-result-current\': selectedOption === item.title,\'hovstyle\': selectedIndex === item.index,\'disable\': item.disabled}" ng-click="item.disabled || selectOption(item.title,item.index)" ng-mouseover="hoverIn(item.index)"  tabindex="-1">\n            <div class="select2-result-label" ng-bind-html="item.title | highlight:title:className | unsafe" role="option">\n                <span class="select2-match"></span>\n            </div>\n        </li>\n    </ul>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/select/textDropdown.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/select/textDropdown.html",'<div tabindex="0" class="text-dropdown">\n     <div class="dropdown" ng-class="{\'not-visible\': isActionsShown}" ng-click="toggle()">\n               <span class="action--selected" ng-bind="currentAction"></span>\n                <i ng-class="isActionsShown ? \'icon-dropdown-up\' : \'icon-dropdown-down\'"></i>\n     </div>\n        <ul ng-class="isActionsShown ? \'actionsOpened\' : \'actionsClosed\'" ng-show="isActionsShown">\n               <li ng-class="{\'highlight\': selectedIndex==$index}" ng-repeat="action in actions track by $index" ng-click="chooseAction($event, action, $index)" ng-mouseover="hoverIn($index)">{{action}}<i ng-class="{\'icon-included-checkmark\': isCurrentAction(action)}" att-accessibility-click="13,32"></i></li>\n   </ul>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/slider/maxContent.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/slider/maxContent.html",'<div class="att-slider__label att-slider__label--max att-slider__label--below" ng-transclude></div>')}]),angular.module("app/scripts/ng_js_att_tpls/slider/minContent.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/slider/minContent.html",'<div class="att-slider__label att-slider__label--min att-slider__label--below" ng-transclude></div>')}]),angular.module("app/scripts/ng_js_att_tpls/slider/slider.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/slider/slider.html",'<div class="att-slider" ng-mousemove="moveElem($event)" ng-mouseup="mouseUp($event)">\n    <div class="att-slider__track">\n        <div class="att-slider__range att-slider__range--disabled" ng-style="disabledStyle"></div>\n        <div class="att-slider__range" ng-style="rangeStyle"></div>\n    </div>\n    <div class="att-slider__handles-container">\n       <div role="menuitem" aria-label="{{ngModelSingle}}" class="att-slider__handle" ng-style="handleStyle" ng-mousedown="mouseDown($event,\'ngModelSingle\')" ng-mousemove="moveElem($event)" ng-mouseup="mouseUp($event)" tabindex="0" ng-keydown="keyDown($event,\'ngModelSingle\')"></div>\n       <div role="menuitem" aria-label="Minimum Value- {{ngModelLow}}" class="att-slider__handle" ng-style="minHandleStyle" ng-mousedown="mouseDown($event,\'ngModelLow\')" ng-focus="focus($event,\'ngModelLow\')" ng-mousemove="moveElem($event)" ng-mouseup="mouseUp($event)" tabindex="0" ng-keyup="keyUp($event,\'ngModelLow\')" ng-keydown="keyDown($event,\'ngModelLow\')"></div>\n       <div role="menuitem" aria-label="Maximum Value- {{ngModelHigh}}" class="att-slider__handle" ng-style="maxHandleStyle" ng-mousedown="mouseDown($event,\'ngModelHigh\')" ng-focus="focus($event,\'ngModelHigh\')" ng-mousemove="moveElem($event)" ng-mouseup="mouseUp($event)" tabindex="0" ng-keyup="keyUp($event,\'ngModelHigh\')" ng-keydown="keyDown($event,\'ngModelHigh\')"></div>\n    </div>\n    <div ng-transclude></div>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/splitButtonDropdown/splitButtonDropdown.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/splitButtonDropdown/splitButtonDropdown.html",'<div class=" btn-group" \n     ng-class="{\'buttons-dropdown--large\':!isSmall, \n                 \'buttons-dropdown--small\':isSmall, \n                 \'action-dropdown\':(isActionDropdown), \n                 \'open\':isDropDownOpen}">\n    <a tabindex="0" href="javascript:void(0)" class="button btn buttons-dropdown__split" \n       ng-class="{\'button--primary\':(btnType==undefined || btnType==\'primary\'), \n                   \'button--secondary\':btnType==\'secondary\', \n                   \'button--disabled\':btnType==\'disabled\', \n                   \'button--small\':isSmall}" \n       ng-if="!isActionDropdown"\n       ng-click="btnType===\'disabled\'?undefined:clickFxn()" att-accessibility-click="13,32">{{btnText}}</a>\n    <a tabindex="0" href="javascript:void(0)" role="button" aria-label="Toggle Dropdown" aria-haspopup="true" class="button buttons-dropdown__drop dropdown-toggle" \n       ng-class="{\'button--primary\':(btnType==undefined || btnType==\'primary\'), \n               \'button--secondary\':btnType==\'secondary\', \n               \'button--disabled\':btnType==\'disabled\', \n               \'button--small\':isSmall}" ng-click="toggleDropdown()" att-accessibility-click="13,32">{{toggleTitle}} </a>\n    <ul class="dropdown-menu" ng-class="{\'align-right\':multiselect ===true}" aria-expanded="{{isDropDownOpen}}" ng-click="hideDropdown()" role="menu" ng-transclude></ul>\n</div>  ')}]),angular.module("app/scripts/ng_js_att_tpls/splitButtonDropdown/splitButtonDropdownItem.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/splitButtonDropdown/splitButtonDropdownItem.html",'<li role="menuitem" att-element-focus="sFlag" tabindex="0" ng-transclude></li>')}]),angular.module("app/scripts/ng_js_att_tpls/splitIconButton/splitIcon.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/splitIconButton/splitIcon.html","<div class='split-icon-button-container'>\n\n      <div class='split-icon-button' ng-class=\"{'icon-with-chevron': isRight && !isMiddle && !isLeftNextDropdown && !isNextToDropDown, 'split-icon-button-middle':isMiddle, 'split-icon-button-right':isRight, 'split-icon-button-left':isLeft, 'split-icon-button-left-dropdown': isLeftNextDropdown ,'split-icon-button-next-dropdown': isNextToDropDown,'split-icon-button-dropdown': isDropDownOpen,'split-icon-button-hover':isIconHovered || isDropDownOpen}\" ng-mouseover='isIconHovered = true;' ng-mouseleave='isIconHovered = false;' tabindex=\"-1\" att-accessibility-click=\"13,32\" ng-click='dropDownClicked();'>\n          <a class='{{icon}}' title='{{iconTitle}}' tabindex=\"0\"></a>\n         <i ng-if=\"isRight && !isMiddle && !isLeftNextDropdown && !isNextToDropDown\" \n                        ng-class=\"isDropDownOpen ? 'icon-dropdown-up' : 'icon-dropdown-down'\"> </i>\n </div> \n\n      <ul ng-if='isDropdown' class='dropdown-menu {{dropDownId}}' ng-show='\n         isDropDownOpen' ng-click='toggleDropdown(false)' role=\"presentation\" ng-transclude>\n         </ul>\n\n</div>")}]),angular.module("app/scripts/ng_js_att_tpls/splitIconButton/splitIconButton.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/splitIconButton/splitIconButton.html","<div>\n   <div ng-if='isLeftLineShown' dir-type='{{iconStateConstants.DIR_TYPE.LEFT}}' expandable-line></div>\n   <div ng-click='clickHandler()' att-split-icon icon='{{icon}}' title='{{title}}' dir-type='{{iconStateConstants.DIR_TYPE.BUTTON}}' hover-watch='isHovered' drop-down-watch='dropDownWatch' drop-down-id='{{dropDownId}}'>\n              <div ng-transclude>\n           </div>\n        </div>\n        <div ng-if='isRightLineShown' dir-type='{{iconStateConstants.DIR_TYPE.RIGHT}}' expandable-line></div>\n</div>")}]),angular.module("app/scripts/ng_js_att_tpls/splitIconButton/splitIconButtonGroup.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/splitIconButton/splitIconButtonGroup.html","<div ng-transclude>\n</div>")}]),angular.module("app/scripts/ng_js_att_tpls/stepSlider/attStepSlider.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/stepSlider/attStepSlider.html",'<span ng-class="mainSliderClass">\n    <table>\n        <tr>\n            <td>\n                <div class="jslider-bg">\n                    <i class="l"></i>\n                    <i class="r"></i>\n                    <i class="v" ng-class="{\'step-slider-green\':sliderColor == COLORS.GREEN, \'step-slider-blue\': sliderColor == COLORS.BLUE_HIGHLIGHT, \'step-slider-magenta\': sliderColor == COLORS.MAGENTA, \'step-slider-gold\': sliderColor == COLORS.GOLD, \'step-slider-purple\': sliderColor == COLORS.PURPLE, \'step-slider-dark-blue\': sliderColor == COLORS.DARK_BLUE, \'step-slider-regular\': sliderColor == COLORS.REGULAR, \'step-slider-white\': sliderColor == COLORS.WHITE, \'cutoff-slider\': isCutOffSlider}"></i>\n                </div>\n                <div class="jslider-pointer" id="left-pointer"></div>\n                <div class="jslider-pointer jslider-pointer-to" ng-class="{\'step-slider-green\':sliderColor == COLORS.GREEN, \'step-slider-blue\': sliderColor == COLORS.BLUE_HIGHLIGHT, \'step-slider-magenta\': sliderColor == COLORS.MAGENTA, \'step-slider-gold\': sliderColor == COLORS.GOLD, \'step-slider-purple\': sliderColor == COLORS.PURPLE, \'step-slider-dark-blue\': sliderColor == COLORS.DARK_BLUE, \'step-slider-regular\': sliderColor == COLORS.REGULAR, \'step-slider-white\':sliderColor == COLORS.WHITE ,\'cutoff-slider\': isCutOffSlider}"></div>\n                <div class="jslider-label"><span ng-bind="from"></span><span ng-bind="options.dimension"></span></div>\n                <div class="jslider-label jslider-label-to"><span ng-bind="toStr"></span><span ng-bind="endDimension"></span></div>\n                <div class="jslider-value" id="jslider-value-left"><span></span>{{options.dimension}}</div>\n                <div class="jslider-value jslider-value-to"><span></span>{{toolTipDimension}}</div>\n                <div class="jslider-scale" ng-class="{\'show-dividers\': showDividers, \'cutoff-slider-dividers\':isCutOffSlider}">\n                </div>\n                <div class="jslider-cutoff">\n                    <div class="jslider-label jslider-label-cutoff">\n                        <span ng-bind="cutOffVal"></span>\n                    </div>\n                </div>\n            </td>\n        </tr>\n    </table>\n</span>\n')}]),angular.module("app/scripts/ng_js_att_tpls/steptracker/step-tracker.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/steptracker/step-tracker.html",'<div class="steptracker1">\n    <div class="steptracker-bg">\n        <div tabindex="0" ng-click="stepclick($event, $index);" att-accessibility-click="13,23" class="steptracker-track size-onethird" ng-repeat="step in sdata"\n             ng-style="set_width($index)"\n             ng-class="{\'last\':laststep($index),\'done\':donesteps($index),\'active\':activestep($index), \'incomplete\': isIncomplete($index), \'disabled\': disableClick}">\n            <div class="circle">{{($index) + 1}}<span>{{step.title}}</span></div>\n            <div ng-if="!laststep($index)" class="track"></div>\n        </div>\n    </div>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/steptracker/step.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/steptracker/step.html",'<div class="steptracker1">\n    <div class="steptracker-bg">\n        <div class="steptracker-track size-onethird" \n             ng-class="{\'last\':laststep($index),\'done\':donesteps($index),\'active\':activestep($index)}">\n            <div class="circle" tabindex="0" \n                 ng-click="stepclick($event, $index);" \n                 att-accessibility-click="13,23">{{($index) + 1}}<span>{{step.title}}</span></div>\n            <div ng-if="!laststep($index)" class="track"></div>\n        </div>\n    </div>\n</div>\n')}]),angular.module("app/scripts/ng_js_att_tpls/steptracker/timeline.html",[]).run(["$templateCache",function(a){\r
-a.put("app/scripts/ng_js_att_tpls/steptracker/timeline.html","<div class='att-timeline'>\n     <div timeline-dot order='0' title='{{steps[0].title}}' description='{{steps[0].description}}' by='{{steps[0].by}}' date='{{steps[0].date}}' type='{{steps[0].type}}'></div>\n\n <div ng-repeat=\"m in middleSteps track by $index\">\n          <div timeline-bar order='{{$index}}'></div>\n           <div timeline-dot order='{{$index + 1}}' title='{{m.title}}' description='{{m.description}}' by='{{m.by}}' date='{{m.date}}' type='{{m.type}}'>\n               </div>\n        </div>\n\n</div>")}]),angular.module("app/scripts/ng_js_att_tpls/steptracker/timelineBar.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/steptracker/timelineBar.html","<div class='timeline-bar'>\n      <div class='progress-bar' ng-class=\"{'completed-color':isCompleted,'cancelled-color':isCancelled,'alert-color':isAlert}\">\n   </div>\n        <hr></hr>\n</div>")}]),angular.module("app/scripts/ng_js_att_tpls/steptracker/timelineDot.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/steptracker/timelineDot.html","<div class='timeline-dot'>\n\n   <div class='bigger-circle' ng-class=\"{'completed-color':isCompleted,'cancelled-color':isCancelled,'alert-color':isAlert}\">\n  </div>\n\n      <div class='inactive-circle'>\n </div>\n\n      <div class='expandable-circle' ng-class=\"{'completed-color':isCompleted,'cancelled-color':isCancelled,'alert-color':isAlert}\">\n      </div>\n\n      <div ng-class=\"{'below-info-box':isBelowInfoBoxShown, 'above-info-box': !isBelowInfoBoxShown}\" tabindex=\"0\">\n              \n              <div ng-if='isBelowInfoBoxShown' class='vertical-line'>\n               </div>\n\n              <div class='info-container' ng-init='isContentShown=false'>\n                   <div ng-class=\"{'current-step-title':isCurrentStep, 'title':!isCurrentStep,'completed-color-text':isCompleted,'cancelled-color-text':isCancelled,'alert-color-text':isAlert, 'inactive-color-text':isInactive}\" ng-mouseover='titleMouseover(1)' ng-mouseleave='titleMouseleave()' ng-bind='title' ></div>\n                  <div class='content'>\n                         <div class='description' ng-bind='description'></div>\n                         <div class='submitter' ng-bind='by'></div>\n                    </div>\n                        <div class='date' ng-mouseover='titleMouseover(2)' ng-mouseleave='titleMouseleave()' ng-bind='date'></div>\n            </div>\n\n              <div ng-if='!isBelowInfoBoxShown' class='vertical-line'>\n              </div>\n        </div>\n\n</div>")}]),angular.module("app/scripts/ng_js_att_tpls/table/attTable.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/table/attTable.html",'<table class="tablesorter tablesorter-default" ng-transclude></table>\n')}]),angular.module("app/scripts/ng_js_att_tpls/table/attTableBody.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/table/attTableBody.html","<td ng-transclude></td>\n")}]),angular.module("app/scripts/ng_js_att_tpls/table/attTableHeader.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/table/attTableHeader.html","<th role=\"button\" aria-label=\"column header {{headerName}} {{sortable !== 'false' && '' || 'sortable'}} {{sortPattern !== 'null' && '' || sortPattern}}\" tabindex=\"{{sortable !== 'false' && '0' || '-1'}}\" class=\"tablesorter-header\" ng-class=\"{'tablesorter-headerAsc': sortPattern === 'asc', 'tablesorter-headerDesc': sortPattern === 'desc', 'tablesort-sortable': sortable !== 'false', 'sorter-false': sortable === 'false'}\" att-accessibility-click=\"13,32\" ng-click=\"(sortable !== 'false') && sort();\"><div class=\"tablesorter-header-inner\" ng-transclude></div></th>")}]),angular.module("app/scripts/ng_js_att_tpls/tableMessages/attTableMessage.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/tableMessages/attTableMessage.html",'<div class="att-table-message">\n   <div class="message" ng-if="msgType==messageConstants.TABLE_MESSAGE_TYPES.noMatching">\n      <div class="img-magnify-glass"></div> \n      <div>\n         <div ng-transclude></div>\n      </div>\n   </div>\n   <div class="message" ng-if="msgType==messageConstants.TABLE_MESSAGE_TYPES.errorLoading">\n      <div class="img-oops-exclamation" tabindex="0" aria-label="Oops! The information could not load at this time. Please click link to refresh the page."></div> \n      <div>Oops!</div>\n      <div>The information could not load at this time.</div>\n      <div>Please <a href="javascript:void(0)" ng-click="refreshAction($event)">refresh the page</a>\n      </div>\n   </div>\n   <div class="message" ng-if="msgType==messageConstants.TABLE_MESSAGE_TYPES.magnifySearch">\n      <div class="img-magnify-glass"></div>\n      <div>\n         <p class="title" tabindex="0">Please input values to <br/> begin your search.</p>\n      </div>\n   </div>\n   <div class="message loading-message" ng-if="msgType==messageConstants.TABLE_MESSAGE_TYPES.isLoading">\n      <div class="img-loading-dots"></div>\n      <div ng-transclude></div>\n   </div>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/tableMessages/attUserMessage.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/tableMessages/attUserMessage.html",'<div class="att-user-message">\n  <div ng-class="type==messageConstants.USER_MESSAGE_TYPES.error && trigger ? \'message-wrapper-error\' : \'hidden\'">\n      <div class="message-icon-error"> <i class="icon-info-alert"></i> </div>\n\n      <div class="message-body-wrapper">\n        <div class="message-title-error" ng-if="thetitle && thetitle.length > 0"> <span ng-bind="thetitle" tabindex="0" aria-label="{{thetitle}}"></span> </div>\n        <div class="message-msg" ng-bind="message" ng-if="message && message.length > 0" tabindex="0"></div>\n        <div class="message-bottom">\n           <div ng-transclude></div>\n        </div>\n      </div>\n\n   </div>\n  <div ng-class="type==messageConstants.USER_MESSAGE_TYPES.success && trigger ? \'message-wrapper-success\' : \'hidden\'">\n      <div class="message-icon-success"> <i class="icon-included-checkmark"></i></div>\n\n      <div class="message-body-wrapper">\n        <div class="message-title-success" ng-if="thetitle && thetitle.length > 0" >\n          <span ng-bind="thetitle" tabindex="0" aria-label="{{thetitle}}"></span>\n        </div>\n        <div class="message-msg" ng-bind="message" ng-if="message && message.length > 0" tabindex="0"></div>\n        <div class="message-bottom">\n           <div ng-transclude></div>\n        </div>\n      </div>\n\n   </div>\n</div>\n')}]),angular.module("app/scripts/ng_js_att_tpls/tabs/floatingTabs.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/tabs/floatingTabs.html","<ul ng-class=\"{'tabsbid': size === 'large', 'tabsbid--small': size === 'small'}\">\n <li ng-repeat=\"tab in tabs\" ng-class=\"{'tabsbid__item tabsbid__item--active': isActiveTab(tab.url), 'tabsbid__item': !isActiveTab(tab.url)}\" ng-click=\"onClickTab(tab)\">\n"+'        <a class="tabsbid__item-link" href="{{tab.url}}" tabindex="0" att-accessibility-click="32,13">{{tab.title}}</a>\n  </li>\n</ul>')}]),angular.module("app/scripts/ng_js_att_tpls/tabs/genericTabs.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/tabs/genericTabs.html","<ul ng-class=\"{'tabsbid': size === 'large', 'tabsbid--small': size === 'small'}\">\n    <li ng-repeat=\"tab in tabs\" ng-class=\"{'tabsbid__item tabsbid__item--active': isActive(tab.id), 'tabsbid__item': !isActive(tab.id),'tabs__item--active': isActive(tab.id)}\" ng-click=\"clickTab(tab)\">\n"+'               <a class="tabsbid__item-link" href="{{tab.url}}" tabindex="0" att-accessibility-click="32,13">{{tab.title}}</a>\n    </li>\n</ul>\n')}]),angular.module("app/scripts/ng_js_att_tpls/tabs/menuTab.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/tabs/menuTab.html",'<li class="megamenu__item" ng-mouseover="showHoverChild($event)" ng-class="{\'tabs__item--active\': menuItem.active==true && !hoverChild==true}">\n    <span role="menuitem" att-accessibility-click="13,32" tabindex="0" ng-click="showChildren($event);!clickInactive||resetMenu($event)">{{tabName}}</span>\n    <div ng-transclude></div>\n</li>\n')}]),angular.module("app/scripts/ng_js_att_tpls/tabs/parentmenuTab.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/tabs/parentmenuTab.html",'<div ng-class="{\'megamenu-tabs\': megaMenu,\'submenu-tabs\': !megaMenu}">\n    <ul class="megamenu__items" role="presentation" ng-transclude>\n    </ul>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/tabs/simplifiedTabs.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/tabs/simplifiedTabs.html",'<div class="simplified-tabs">\n<ul class="simplified-tabs__items" role="tablist">\n    <li ng-repeat="tab in tabs" role="tab" class="simplified-tabs__item" ng-class="{\'tabs__item--active\': isActive(tab.id)}" ng-click="clickTab(tab)" tabindex="0" att-accessibility-click="32,13">{{tab.title}}</li>\n    <li class="tabs__pointer"></li>\n</ul>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/tabs/submenuTab.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/tabs/submenuTab.html",'<li class="tabsbid__item megamenu__item" ng-class="{\'subMenuHover\': menuItem.active==true}">\n<a ng-href="{{tabUrl}}" role="menuitem" ng-if="subMenu === true" ng-mouseover="!subMenu || showChildren($event)" ng-focus="!subMenu ||showChildren($event)" tabindex="{{subMenu==\'true\'?0:-1}}" ng-click="!subMenu ||showMenuClick($event) ; subMenu ||showSubMenuClick($event)" att-accessibility-click="13,32">{{tabName}}</a>\n<a  ng-href="{{tabUrl}}" role="menuitem" ng-if="!menuItem.leafNode && subMenu !== true" ng-mouseover="!subMenu || showChildren($event)" ng-focus="!subMenu ||showChildren($event)" tabindex="{{subMenu==\'true\'?0:-1}}" ng-click="!subMenu ||showMenuClick($event) ; subMenu ||showSubMenuClick($event)" att-accessibility-click="13,32">{{tabName}}</a>\n<span ng-transclude></span>\n</li>\n')}]),angular.module("app/scripts/ng_js_att_tpls/tagBadges/tagBadges.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/tagBadges/tagBadges.html","<div class=\"tags__item\" \n     ng-class=\"{'tags__item--small':isSmall, \n                 'tags__item--color':isColor, \n                 'tags__item--cloud':!isClosable && !isColor,'active':applyActiveClass}\"\n     ng-if=\"display\" \n     ng-style=\"{borderColor: border_type_borderColor, background: isHighlight?'#bbb':undefined, color: isHighlight?'#444':undefined }\"\n"+'     ng-mousedown="activeHighlight(true)" role="presentation" ng-mouseup="activeHighlight(false)">\n    <i class="icon-filter tags__item--icon" ng-if="isIcon">&nbsp;</i>\n    <i class="tags__item--color-icon" ng-if="isColor" ng-style="{backgroundColor: background_type_backgroundColor, borderColor: background_type_borderColor}"></i>\n    <span class="tags__item--title" role="presentation"  tabindex=0 aria-label="tag" ng-mousedown="activeHighlight(true)" ng-mouseup="activeHighlight(false)" ng-transclude></span>\n    <a href="javascript:void(0)" title="Dismiss Link" class="tags__item--action" ng-click="closeMe();$event.preventDefault()" ng-if="isClosable"\n       ng-style="{color: (isHighlight && \'#444\') || \'#888\' , borderLeft: (isHighlight && \'1px solid #444\')|| \'1px solid #888\' }">\n        <i class="icon-erase">&nbsp;</i>\n    </a>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/toggle/demoToggle.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/toggle/demoToggle.html",'<span ng-transclude></span>\n<div class="att-switch-content" hm-drag = "drag($event)" att-accessibility-click="13,32" ng-click="updateModel($event)" hm-dragstart="alert(\'hello\')" hm-dragend="drag($event)" ng-class="{\'large\' : directiveValue == \'large\'}"  style="-webkit-user-select: none; -webkit-user-drag: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);">\n    <div class="att-switch-onText" ng-style="" ng-class="{\'icon-included-checkmark ico\' : on === undefined,\'large\' : directiveValue == \'large\'}">{{on}}<span class="hidden-spoken">{{directiveValue}} when checked.</span></div>\n    <div class="att-switch-thumb" tabindex="0" title="Toggle switch" role="checkbox"  ng-class="{\'large\' : directiveValue == \'large\'}"></div>\n    <div class="att-switch-offText" ng-class="{\'icon-erase ico\' : on === undefined,\'large\' : directiveValue == \'large\'}">{{off}}<span class="hidden-spoken">{{directiveValue}} when unchecked.</span></div>\n</div>\n')}]),angular.module("app/scripts/ng_js_att_tpls/typeAhead/typeAhead.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/typeAhead/typeAhead.html",'<div class="typeahead mainContainerOuter">\n    <span class="message">To</span>\n    <div class=\'maincontainer\' ng-click="setFocus()" ng-focus="inputActive=true" ng-class ="{\'typeahed_active\':inputActive || (lineItems.length && inputActive)}">\n        <span tag-badges closable ng-repeat ="lineItem in lineItems track by $index" on-close="theMethodToBeCalled($index)" >{{lineItem}}</span>\n        <input type="text"  focus-me="clickFocus" ng-focus="inputActive=true" ng-model="model" ng-keydown="selected = false; selectionIndex($event)"/><br/> \n    </div>\n    <div ng-hide="!model.length || selected">\n        <div class="filtercontainer list-scrollable" ng-show="( items | filter:model).length">\n            <div  class="item" ng-repeat="item in items| filter:model track by $index"  ng-click="handleSelection(item[titleName],item[subtitle])" att-accessibility-click="13,32" ng-class="{active:isCurrent($index,item[titleName],item[subtitle],( items | filter:model).length)}"ng-mouseenter="setCurrent($index)">\n                <span class="title" >{{item[titleName]}}</span>\n                <span class="subtitle">{{item[subtitle]}}</span>\n            </div>  \n        </div>\n    </div>\n   \n    <div class="textAreaEmailContentDiv">\n        <span class="message">Message</span>\n        <textarea rows="4" cols="50" role="textarea" class="textAreaEmailContent" ng-model="emailMessage">To send \n a text, picture, or video message1 to an AT&T wireless device from your email:my message.</textarea>\n        \n    </div>\n    \n</div>\n')}]),angular.module("app/scripts/ng_js_att_tpls/verticalSteptracker/vertical-step-tracker.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/verticalSteptracker/vertical-step-tracker.html","<li>\n    <i ng-class=\"{'icon-tickets-active' : type == 'actual' && id =='Active','icon-tickets-referred' : type == 'actual' && id =='Requested Closed','icon-ticket-regular' : type == 'progress' && id =='In Progress','icon-tickets-contested' : type == 'actual' && id =='Contested','icon-tickets-returned' : type == 'actual' && id =='Deferred','icon-tickets-closed' : type == 'actual' && id =='Ready to Close','icon-tickets-cleared' : type == 'actual' && id =='Cleared'}\"></i>\n    <span ng-transclude></span>\n</li>\n        \n")}]),angular.module("app/scripts/ng_js_att_tpls/videoControls/photoControls.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/videoControls/photoControls.html",'<div>\n    <a title="{{links.prevLink}}" aria-label="Previous Link"  ng-href="{{links.prevLink}}"><i alt="previous" class="icon-arrow-left">&nbsp;</i></a>\n    <span ng-transclude></span>\n    <a title="{{links.nextLink}}" aria-label="Next Link"  ng-href="{{links.nextLink}}"><i alt="next" class="icon-arrow-right">&nbsp;</i></a>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/videoControls/videoControls.html",[]).run(["$templateCache",function(a){a.put("app/scripts/ng_js_att_tpls/videoControls/videoControls.html",'<div class="video-player">\n    <div class="video-player__control video-player__play-button">\n        <a class="video-player__button gigant-play" data-toggle-buttons="icon-play, icon-pause" data-target="i"><i class="icon-play"  alt="Play/Pause Button"></i></a>\n    </div>\n    <div class="video-player__control video-player__track">\n\n        <div class="video-player__track--inner">\n            <div class="video-player__track--loaded" style="width: 75%"></div>\n            <div class="video-player__track--played" style="width: 40%">\n                <div class="att-tooltip att-tooltip--on att-tooltip--dark att-tooltip--above video-player__track-tooltip" ng-transclude></div>\n                <div class="video-player__track-handle"></div>\n            </div>\n        </div>\n    </div>\n    <a class="video-player__time" ng-transclude></a>\n    <div class="video-player__control video-player__volume_icon">\n        <a class="video-player__button" data-toggle-buttons="icon-volume-mute, icon-volume-up" data-target="i"><i class="icon-volume-up" alt="Volume Button"></i></a>\n    </div>\n    <ul class="video-player__control video-player__volume">\n        <li class="video-player__volume-bar video-player__volume-bar--full">&nbsp;</li>\n        <li class="video-player__volume-bar video-player__volume-bar--full">&nbsp;</li>\n        <li class="video-player__volume-bar">&nbsp;</li>\n        <li class="video-player__volume-bar">&nbsp;</li>\n        <li class="video-player__volume-bar">&nbsp;</li>\n    </ul>\n    <div class="video-player__control video-player__toggle-fullscreen-button">\n        <a class="video-player__button" data-toggle-buttons="icon-full-screen, icon-normal-screen" data-target="i"><i class="icon-full-screen" alt="Full Screen Button">&nbsp;</i></a>\n    </div>\n</div>')}]);\r
-return {}\r
-})(angular, window);
\ No newline at end of file
+!function(angular,window){return angular.module("att.abs",["att.abs.tpls","att.abs.utilities","att.abs.position","att.abs.transition","att.abs.accordion","att.abs.alert","att.abs.boardStrip","att.abs.breadCrumbs","att.abs.buttons","att.abs.checkbox","att.abs.colorselector","att.abs.datepicker","att.abs.devNotes","att.abs.dividerLines","att.abs.dragdrop","att.abs.drawer","att.abs.message","att.abs.formField","att.abs.hourpicker","att.abs.iconButtons","att.abs.links","att.abs.loading","att.abs.modal","att.abs.pagination","att.abs.paneSelector","att.abs.tooltip","att.abs.popOvers","att.abs.profileCard","att.abs.progressBars","att.abs.radio","att.abs.scrollbar","att.abs.search","att.abs.select","att.abs.slider","att.abs.splitButtonDropdown","att.abs.splitIconButton","att.abs.stepSlider","att.abs.steptracker","att.abs.table","att.abs.tableMessages","att.abs.tabs","att.abs.tagBadges","att.abs.textOverflow","att.abs.toggle","att.abs.treeview","att.abs.typeAhead","att.abs.verticalSteptracker","att.abs.videoControls"]),angular.module("att.abs.tpls",["app/scripts/ng_js_att_tpls/accordion/accordion.html","app/scripts/ng_js_att_tpls/accordion/accordion_alt.html","app/scripts/ng_js_att_tpls/accordion/attAccord.html","app/scripts/ng_js_att_tpls/accordion/attAccordBody.html","app/scripts/ng_js_att_tpls/accordion/attAccordHeader.html","app/scripts/ng_js_att_tpls/alert/alert.html","app/scripts/ng_js_att_tpls/boardStrip/attAddBoard.html","app/scripts/ng_js_att_tpls/boardStrip/attBoard.html","app/scripts/ng_js_att_tpls/boardStrip/attBoardStrip.html","app/scripts/ng_js_att_tpls/buttons/buttonDropdown.html","app/scripts/ng_js_att_tpls/colorselector/colorselector.html","app/scripts/ng_js_att_tpls/datepicker/dateFilter.html","app/scripts/ng_js_att_tpls/datepicker/dateFilterList.html","app/scripts/ng_js_att_tpls/datepicker/datepicker.html","app/scripts/ng_js_att_tpls/datepicker/datepickerPopup.html","app/scripts/ng_js_att_tpls/dividerLines/dividerLines.html","app/scripts/ng_js_att_tpls/dragdrop/fileUpload.html","app/scripts/ng_js_att_tpls/formField/attFormFieldValidationAlert.html","app/scripts/ng_js_att_tpls/formField/attFormFieldValidationAlertPrv.html","app/scripts/ng_js_att_tpls/formField/creditCardImage.html","app/scripts/ng_js_att_tpls/formField/cvcSecurityImg.html","app/scripts/ng_js_att_tpls/hourpicker/hourpicker.html","app/scripts/ng_js_att_tpls/links/readMore.html","app/scripts/ng_js_att_tpls/loading/loading.html","app/scripts/ng_js_att_tpls/modal/backdrop.html","app/scripts/ng_js_att_tpls/modal/tabbedItem.html","app/scripts/ng_js_att_tpls/modal/tabbedOverlayItem.html","app/scripts/ng_js_att_tpls/modal/window.html","app/scripts/ng_js_att_tpls/pagination/pagination.html","app/scripts/ng_js_att_tpls/paneSelector/innerPane.html","app/scripts/ng_js_att_tpls/paneSelector/paneGroup.html","app/scripts/ng_js_att_tpls/paneSelector/sidePane.html","app/scripts/ng_js_att_tpls/tooltip/tooltip-popup.html","app/scripts/ng_js_att_tpls/popOvers/popOvers.html","app/scripts/ng_js_att_tpls/profileCard/addUser.html","app/scripts/ng_js_att_tpls/profileCard/profileCard.html","app/scripts/ng_js_att_tpls/progressBars/progressBars.html","app/scripts/ng_js_att_tpls/scrollbar/scrollbar.html","app/scripts/ng_js_att_tpls/search/search.html","app/scripts/ng_js_att_tpls/select/select.html","app/scripts/ng_js_att_tpls/select/textDropdown.html","app/scripts/ng_js_att_tpls/slider/maxContent.html","app/scripts/ng_js_att_tpls/slider/minContent.html","app/scripts/ng_js_att_tpls/slider/slider.html","app/scripts/ng_js_att_tpls/splitButtonDropdown/splitButtonDropdown.html","app/scripts/ng_js_att_tpls/splitButtonDropdown/splitButtonDropdownItem.html","app/scripts/ng_js_att_tpls/splitIconButton/splitIcon.html","app/scripts/ng_js_att_tpls/splitIconButton/splitIconButton.html","app/scripts/ng_js_att_tpls/splitIconButton/splitIconButtonGroup.html","app/scripts/ng_js_att_tpls/stepSlider/attStepSlider.html","app/scripts/ng_js_att_tpls/steptracker/step-tracker.html","app/scripts/ng_js_att_tpls/steptracker/step.html","app/scripts/ng_js_att_tpls/steptracker/timeline.html","app/scripts/ng_js_att_tpls/steptracker/timelineBar.html","app/scripts/ng_js_att_tpls/steptracker/timelineDot.html","app/scripts/ng_js_att_tpls/table/attTable.html","app/scripts/ng_js_att_tpls/table/attTableBody.html","app/scripts/ng_js_att_tpls/table/attTableHeader.html","app/scripts/ng_js_att_tpls/tableMessages/attTableMessage.html","app/scripts/ng_js_att_tpls/tableMessages/attUserMessage.html","app/scripts/ng_js_att_tpls/tabs/floatingTabs.html","app/scripts/ng_js_att_tpls/tabs/genericTabs.html","app/scripts/ng_js_att_tpls/tabs/menuTab.html","app/scripts/ng_js_att_tpls/tabs/parentmenuTab.html","app/scripts/ng_js_att_tpls/tabs/simplifiedTabs.html","app/scripts/ng_js_att_tpls/tabs/submenuTab.html","app/scripts/ng_js_att_tpls/tagBadges/tagBadges.html","app/scripts/ng_js_att_tpls/toggle/demoToggle.html","app/scripts/ng_js_att_tpls/typeAhead/typeAhead.html","app/scripts/ng_js_att_tpls/verticalSteptracker/vertical-step-tracker.html","app/scripts/ng_js_att_tpls/videoControls/photoControls.html","app/scripts/ng_js_att_tpls/videoControls/videoControls.html"]),angular.module("att.abs.utilities",[]).filter("unsafe",["$sce",function(e){return function(t){return e.trustAsHtml(t)}}]).filter("highlight",function(){function e(e){return e.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}return function(t,n,i){return n&&t?t.replace(new RegExp(e(n),"gi"),'<span class="'+i+'">$&</span>'):t}}).filter("attLimitTo",function(){return function(e,t,n){var i=[],a=t,s=n;return isNaN(s)&&(s=0),i=e&&!isNaN(a)?e.slice(s,s+a):e}}).filter("startsWith",function(){return"function"!=typeof String.prototype.startsWith&&(String.prototype.startsWith=function(e){return 0===this.indexOf(e)}),function(e,t){if(void 0===t||""===t)return e;var n=[];return angular.forEach(e,function(e){e.title.toLowerCase().startsWith(t.toLowerCase())&&n.push(e)}),n}}).directive("attInputDeny",[function(){return{restrict:"A",require:"ngModel",link:function(e,t,n,i){var a=null;n.$observe("attInputDeny",function(e){e&&(a=new RegExp(e,"g"))}),t.bind("input",function(){var t=i.$viewValue&&i.$viewValue.replace(a,"");t!==i.$viewValue&&(i.$setViewValue(t),i.$render(),e.$apply())})}}}]).directive("attAccessibilityClick",[function(){return{restrict:"A",link:function(e,t,n){var i=[];n.$observe("attAccessibilityClick",function(e){e&&(i=e.split(","))}),t.bind("keydown",function(e){var n=function(){var t=!1;return e.keyCode||(e.which?e.keyCode=e.which:e.charCode&&(e.keyCode=e.charCode)),e.keyCode&&i.indexOf(e.keyCode.toString())>-1&&(t=!0),t};i.length>0&&n()&&(t[0].click(),e.preventDefault())})}}}]).directive("attElementFocus",[function(){return{restrict:"A",link:function(e,t,n){e.$watch(n.attElementFocus,function(e){e&&t[0].focus()})}}}]).directive("focusOn",["$timeout",function(e){var t=function(e){if(!e.focusOn&&""!==e.focusOn)throw"FocusOnCondition missing attribute to evaluate"};return{restrict:"A",link:function(n,i,a){t(a),n.$watch(a.focusOn,function(t){t&&e(function(){i[0].focus()})})}}}]).constant("whenScrollEndsConstants",{threshold:100,width:0,height:0}).directive("whenScrollEnds",function(e,t){return{restrict:"A",link:function(n,i,a){var s=parseInt(a.threshold,10)||e.threshold;return a.axis&&""!==a.axis?void("x"===a.axis?(visibleWidth=parseInt(a.width,10)||e.width,i.css("width")&&(visibleWidth=i.css("width").split("px")[0]),i[0].addEventListener("scroll",function(){var e=i.prop("scrollWidth");void 0===e&&(e=1);var t=e-visibleWidth;t-i[0].scrollLeft<=s&&n.$apply(a.whenScrollEnds)})):"y"===a.axis&&(visibleHeight=parseInt(a.height,10)||e.height,i.css("width")&&(visibleHeight=i.css("height").split("px")[0]),i[0].addEventListener("scroll",function(){var e=i.prop("scrollHeight");void 0===e&&(e=1);var t=e-visibleHeight;t-i[0].scrollTop<=s&&n.$apply(a.whenScrollEnds)}))):void t.warn("axis attribute must be defined for whenScrollEnds.")}}}).directive("validImei",function(){return{restrict:"A",require:"ngModel",link:function(e,t,n,i){i.$parsers.unshift(function(t){if(t){if(e.valid=!1,isNaN(t)||15!==t.length)e.valid=!1;else{for(var n=0,a=[],s=0;15>s;s++)a[s]=parseInt(t.substring(s,s+1),10),s%2!==0&&(a[s]=parseInt(2*a[s],10)),a[s]>9&&(a[s]=parseInt(a[s]%10,10)+parseInt(a[s]/10,10)),n+=parseInt(a[s],10);n%10===0?e.valid=!0:e.valid=!1}i.$setValidity("invalidImei",e.valid)}return e.valid?t:void 0})}}}).directive("togglePassword",function(){return{restrict:"A",transclude:!1,link:function(e,t,n,i){t.bind("click",function(){var e=n.togglePassword;t[0].innerHTML="Show"===t[0].innerHTML?"Hide":"Show";var i=angular.element(document.querySelector("#"+e))[0].type;angular.element(document.querySelector("#"+e))[0].type="password"===i?"text":"password"})}}}).factory("events",function(){var e=function(e){e.stopPropagation?e.stopPropagation():e.returnValue=!1},t=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1};return{stopPropagation:e,preventDefault:t}}).factory("$documentBind",["$document","$timeout",function(e,t){var n=function(n,i,a){a.$watch(n,function(n){t(function(){n?e.bind("click",i):e.unbind("click",i)})})},i=function(n,i,a,s,r,o){r?(o||(o=0),s.$watch(i,function(i,s){i!==s&&t(function(){i?e.bind(n,a):e.unbind(n,a)},o)})):s.$watch(i,function(t,i){t!==i&&(t?e.bind(n,a):e.unbind(n,a))})};return{click:n,event:i}}]).factory("DOMHelper",function(){function e(e){var t=angular.element(e),n=parseInt(t.attr("tabindex"),10)>=0?!0:!1,i=t[0].tagName.toUpperCase();return n||"A"===i||"INPUT"===i||"TEXTAREA"===i?!(t[0].disabled||t[0].readOnly):!1}function t(e){return 1==e.nodeType&&"SCRIPT"!=e.nodeName&&"STYLE"!=e.nodeName}function n(i){var i=i||document.getElementsByTagName("body")[0];if(t(i)&&e(i))return i;if(!i.hasChildNodes())return void 0;for(var a=i.firstChild;a;){var s=n(a);if(s)return s;a=a.nextSibling}}var i=function(e){var t=e;return e.hasOwnProperty("length")&&(t=e[0]),n(t)};return{firstTabableElement:i}}).factory("keymap",function(){return{KEY:{TAB:9,ENTER:13,ESC:27,SPACE:32,LEFT:37,UP:38,RIGHT:39,DOWN:40,SHIFT:16,CTRL:17,ALT:18,PAGE_UP:33,PAGE_DOWN:34,HOME:36,END:35,BACKSPACE:8,DELETE:46,COMMAND:91},MAP:{91:"COMMAND",8:"BACKSPACE",9:"TAB",13:"ENTER",16:"SHIFT",17:"CTRL",18:"ALT",19:"PAUSEBREAK",20:"CAPSLOCK",27:"ESC",32:"SPACE",33:"PAGE_UP",34:"PAGE_DOWN",35:"END",36:"HOME",37:"LEFT",38:"UP",39:"RIGHT",40:"DOWN",43:"+",44:"PRINTSCREEN",45:"INSERT",46:"DELETE",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"A",66:"B",67:"C",68:"D",69:"E",70:"F",71:"G",72:"H",73:"I",74:"J",75:"K",76:"L",77:"M",78:"N",79:"O",80:"P",81:"Q",82:"R",83:"S",84:"T",85:"U",86:"V",87:"W",88:"X",89:"Y",90:"Z",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",106:"*",107:"+",109:"-",110:".",111:"/",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NUMLOCK",145:"SCROLLLOCK",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},isControl:function(e){var t=e.keyCode;switch(t){case this.KEY.COMMAND:case this.KEY.SHIFT:case this.KEY.CTRL:case this.KEY.ALT:return!0}return e.metaKey?!0:!1},isFunctionKey:function(e){return e=e.keyCode?e.keyCode:e,e>=112&&123>=e},isVerticalMovement:function(e){return~[this.KEY.UP,this.KEY.DOWN].indexOf(e)},isHorizontalMovement:function(e){return~[this.KEY.LEFT,this.KEY.RIGHT,this.KEY.BACKSPACE,this.KEY.DELETE].indexOf(e)},isAllowedKey:function(e){return~[this.KEY.SPACE,this.KEY.ESC,this.KEY.ENTER].indexOf(e)||this.isHorizontalMovement(e)||this.isVerticalMovement(e)}}}).factory("keyMapAc",function(){return{keys:{32:" ",33:"!",34:'"',35:"#",36:"$",37:"%",38:"&",39:"'",40:"(",41:")",42:"*",43:"+",44:",",45:"-",46:".",47:"/",58:":",59:";",60:"<",61:"=",62:">",63:"?",64:"@",91:"[",92:"\\",93:"]",94:"^",95:"_",96:"`",123:"{",124:"|",125:"}",126:"~"},keyRange:{startNum:"48",endNum:"57",startSmallLetters:"97",endSmallLetters:"122",startCapitalLetters:"65",endCapitalLetters:"90"},allowedKeys:{TAB:8,BACKSPACE:9,DELETE:16}}}).factory("$attElementDetach",function(){var e=function(e){e&&e.parentNode&&e.parentNode.removeChild(e)};return e}).factory("$ieVersion",function(){var ie=null,loadIEVersion=function(){var isIE10=eval("/*@cc_on!@*/false")&&10===document.documentMode;if(isIE10)return 10;var v=3,div=document.createElement("div"),all=div.getElementsByTagName("i");do div.innerHTML="<!--[if gt IE "+ ++v+"]><i></i><![endif]-->";while(all[0]);return v>4?v:void 0};return function(){return null===ie&&(ie=loadIEVersion()),ie}}),function(){String.prototype.toSnakeCase=function(){return this.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()})};var e=function(e,t){e=e||"",t=!isNaN(t)&&t||0;for(var n="",i=0;t>i;i++)n+=e;return n},t=function(t,n,i,a){return t=t||"",n=!isNaN(n)&&n||0,i=i||"",n>t.length?a?e(i,n-t.length)+t:t+e(i,n-t.length):t};String.prototype.lPad=function(e,n){return t(this,e,n,!0)},String.prototype.rPad=function(e,n){return t(this,e,n,!1)},Array.prototype.indexOf||(Array.prototype.indexOf=function(e){for(var t=0;t<this.length;t++)if(this[t]===e)return t;return-1})}(),angular.module("att.abs.position",[]).factory("$position",["$document","$window",function(e,t){function n(e,n){return e.currentStyle?e.currentStyle[n]:t.getComputedStyle?t.getComputedStyle(e)[n]:e.style[n]}function i(e){return"static"===(n(e,"position")||"static")}var a=function(t){for(var n=e[0],a=t.offsetParent||n;a&&a!==n&&i(a);)a=a.offsetParent;return a||n};return{position:function(t){var n=this.offset(t),i={top:0,left:0},s=a(t[0]);return s!==e[0]&&(i=this.offset(angular.element(s)),i.top+=s.clientTop-s.scrollTop,i.left+=s.clientLeft-s.scrollLeft),{width:t.prop("offsetWidth"),height:t.prop("offsetHeight"),top:n.top-i.top,left:n.left-i.left}},offset:function(n){var i=n[0].getBoundingClientRect();return{width:n.prop("offsetWidth"),height:n.prop("offsetHeight"),top:i.top+(t.pageYOffset||e[0].body.scrollTop||e[0].documentElement.scrollTop),left:i.left+(t.pageXOffset||e[0].body.scrollLeft||e[0].documentElement.scrollLeft)}}}}]).factory("$isElement",[function(){var e=function(t,n,i){return t[0]===n[0]?!0:t[0]===i[0]?!1:e(t.parent()[0]&&t.parent()||n,n,i)};return e}]).directive("attPosition",["$position",function(e){return{restrict:"A",link:function(t,n,i){t.$watchCollection(function(){return e.position(n)},function(e){t[i.attPosition]=e})}}}]),(window._gsQueue||(window._gsQueue=[])).push(function(){"use strict";var e=document.documentElement,t=window,n=function(n,i){var a="x"===i?"Width":"Height",s="scroll"+a,r="client"+a,o=document.body;return n===t||n===e||n===o?Math.max(e[s],o[s])-(t["inner"+a]||Math.max(e[r],o[r])):n[s]-n["offset"+a]},i=window._gsDefine.plugin({propName:"scrollTo",API:2,version:"1.7.3",init:function(e,i,a){return this._wdw=e===t,this._target=e,this._tween=a,"object"!=typeof i&&(i={y:i}),this._autoKill=i.autoKill!==!1,this.x=this.xPrev=this.getX(),this.y=this.yPrev=this.getY(),null!=i.x?(this._addTween(this,"x",this.x,"max"===i.x?n(e,"x"):i.x,"scrollTo_x",!0),this._overwriteProps.push("scrollTo_x")):this.skipX=!0,null!=i.y?(this._addTween(this,"y",this.y,"max"===i.y?n(e,"y"):i.y,"scrollTo_y",!0),this._overwriteProps.push("scrollTo_y")):this.skipY=!0,!0},set:function(e){this._super.setRatio.call(this,e);var i=this._wdw||!this.skipX?this.getX():this.xPrev,a=this._wdw||!this.skipY?this.getY():this.yPrev,s=a-this.yPrev,r=i-this.xPrev;this._autoKill&&(!this.skipX&&(r>7||-7>r)&&i<n(this._target,"x")&&(this.skipX=!0),!this.skipY&&(s>7||-7>s)&&a<n(this._target,"y")&&(this.skipY=!0),this.skipX&&this.skipY&&this._tween.kill()),this._wdw?t.scrollTo(this.skipX?i:this.x,this.skipY?a:this.y):(this.skipY||(this._target.scrollTop=this.y),this.skipX||(this._target.scrollLeft=this.x)),this.xPrev=this.x,this.yPrev=this.y}}),a=i.prototype;i.max=n,a.getX=function(){return this._wdw?null!=t.pageXOffset?t.pageXOffset:null!=e.scrollLeft?e.scrollLeft:document.body.scrollLeft:this._target.scrollLeft},a.getY=function(){return this._wdw?null!=t.pageYOffset?t.pageYOffset:null!=e.scrollTop?e.scrollTop:document.body.scrollTop:this._target.scrollTop},a._kill=function(e){return e.scrollTo_x&&(this.skipX=!0),e.scrollTo_y&&(this.skipY=!0),this._super._kill.call(this,e)}}),window._gsDefine&&window._gsQueue.pop()(),function(e){"use strict";var t=e.GreenSockGlobals||e;if(!t.TweenLite){var n,i,a,s,r,o=function(e){var n,i=e.split("."),a=t;for(n=0;n<i.length;n++)a[i[n]]=a=a[i[n]]||{};return a},l=o("com.greensock"),c=1e-10,d=[].slice,p=function(){},u=function(){var e=Object.prototype.toString,t=e.call([]);return function(n){return null!=n&&(n instanceof Array||"object"==typeof n&&!!n.push&&e.call(n)===t)}}(),h={},g=function(n,i,a,s){this.sc=h[n]?h[n].sc:[],h[n]=this,this.gsClass=null,this.func=a;var r=[];this.check=function(l){for(var c,d,p,u,f=i.length,m=f;--f>-1;)(c=h[i[f]]||new g(i[f],[])).gsClass?(r[f]=c.gsClass,m--):l&&c.sc.push(this);if(0===m&&a)for(d=("com.greensock."+n).split("."),p=d.pop(),u=o(d.join("."))[p]=this.gsClass=a.apply(a,r),s&&(t[p]=u,"function"==typeof define&&define.amd?define((e.GreenSockAMDPath?e.GreenSockAMDPath+"/":"")+n.split(".").join("/"),[],function(){return u}):"undefined"!=typeof module&&module.exports&&(module.exports=u)),f=0;f<this.sc.length;f++)this.sc[f].check()},this.check(!0)},f=e._gsDefine=function(e,t,n,i){return new g(e,t,n,i)},m=l._class=function(e,t,n){return t=t||function(){},f(e,[],function(){return t},n),t};f.globals=t;var v=[0,0,1,1],b=[],_=m("easing.Ease",function(e,t,n,i){this._func=e,this._type=n||0,this._power=i||0,this._params=t?v.concat(t):v},!0),y=_.map={},w=_.register=function(e,t,n,i){for(var a,s,r,o,c=t.split(","),d=c.length,p=(n||"easeIn,easeOut,easeInOut").split(",");--d>-1;)for(s=c[d],a=i?m("easing."+s,null,!0):l.easing[s]||{},r=p.length;--r>-1;)o=p[r],y[s+"."+o]=y[o+s]=a[o]=e.getRatio?e:e[o]||new e};for(a=_.prototype,a._calcEnd=!1,a.getRatio=function(e){if(this._func)return this._params[0]=e,this._func.apply(null,this._params);var t=this._type,n=this._power,i=1===t?1-e:2===t?e:.5>e?2*e:2*(1-e);return 1===n?i*=i:2===n?i*=i*i:3===n?i*=i*i*i:4===n&&(i*=i*i*i*i),1===t?1-i:2===t?i:.5>e?i/2:1-i/2},n=["Linear","Quad","Cubic","Quart","Quint,Strong"],i=n.length;--i>-1;)a=n[i]+",Power"+i,w(new _(null,null,1,i),a,"easeOut",!0),w(new _(null,null,2,i),a,"easeIn"+(0===i?",easeNone":"")),w(new _(null,null,3,i),a,"easeInOut");y.linear=l.easing.Linear.easeIn,y.swing=l.easing.Quad.easeInOut;var k=m("events.EventDispatcher",function(e){this._listeners={},this._eventTarget=e||this});a=k.prototype,a.addEventListener=function(e,t,n,i,a){a=a||0;var o,l,c=this._listeners[e],d=0;for(null==c&&(this._listeners[e]=c=[]),l=c.length;--l>-1;)o=c[l],o.c===t&&o.s===n?c.splice(l,1):0===d&&o.pr<a&&(d=l+1);c.splice(d,0,{c:t,s:n,up:i,pr:a}),this!==s||r||s.wake()},a.removeEventListener=function(e,t){var n,i=this._listeners[e];if(i)for(n=i.length;--n>-1;)if(i[n].c===t)return void i.splice(n,1)},a.dispatchEvent=function(e){var t,n,i,a=this._listeners[e];if(a)for(t=a.length,n=this._eventTarget;--t>-1;)i=a[t],i.up?i.c.call(i.s||n,{type:e,target:n}):i.c.call(i.s||n)};var C=e.requestAnimationFrame,S=e.cancelAnimationFrame,x=Date.now||function(){return(new Date).getTime()},T=x();for(n=["ms","moz","webkit","o"],i=n.length;--i>-1&&!C;)C=e[n[i]+"RequestAnimationFrame"],S=e[n[i]+"CancelAnimationFrame"]||e[n[i]+"CancelRequestAnimationFrame"];m("Ticker",function(e,t){var n,i,a,o,l,d=this,u=x(),h=t!==!1&&C,g=500,f=33,m=function(e){var t,s,r=x()-T;r>g&&(u+=r-f),T+=r,d.time=(T-u)/1e3,t=d.time-l,(!n||t>0||e===!0)&&(d.frame++,l+=t+(t>=o?.004:o-t),s=!0),e!==!0&&(a=i(m)),s&&d.dispatchEvent("tick")};k.call(d),d.time=d.frame=0,d.tick=function(){m(!0)},d.lagSmoothing=function(e,t){g=e||1/c,f=Math.min(t,g,0)},d.sleep=function(){null!=a&&(h&&S?S(a):clearTimeout(a),i=p,a=null,d===s&&(r=!1))},d.wake=function(){null!==a?d.sleep():d.frame>10&&(T=x()-g+5),i=0===n?p:h&&C?C:function(e){return setTimeout(e,1e3*(l-d.time)+1|0)},d===s&&(r=!0),m(2)},d.fps=function(e){return arguments.length?(n=e,o=1/(n||60),l=this.time+o,void d.wake()):n},d.useRAF=function(e){return arguments.length?(d.sleep(),h=e,void d.fps(n)):h},d.fps(e),setTimeout(function(){h&&(!a||d.frame<5)&&d.useRAF(!1)},1500)}),a=l.Ticker.prototype=new l.events.EventDispatcher,a.constructor=l.Ticker;var D=m("core.Animation",function(e,t){if(this.vars=t=t||{},this._duration=this._totalDuration=e||0,this._delay=Number(t.delay)||0,this._timeScale=1,this._active=t.immediateRender===!0,this.data=t.data,this._reversed=t.reversed===!0,q){r||s.wake();var n=this.vars.useFrames?V:q;n.add(this,n._time),this.vars.paused&&this.paused(!0)}});s=D.ticker=new l.Ticker,a=D.prototype,a._dirty=a._gc=a._initted=a._paused=!1,a._totalTime=a._time=0,a._rawPrevTime=-1,a._next=a._last=a._onUpdate=a._timeline=a.timeline=null,a._paused=!1;var $=function(){r&&x()-T>2e3&&s.wake(),setTimeout($,2e3)};$(),a.play=function(e,t){return null!=e&&this.seek(e,t),this.reversed(!1).paused(!1)},a.pause=function(e,t){return null!=e&&this.seek(e,t),this.paused(!0)},a.resume=function(e,t){return null!=e&&this.seek(e,t),this.paused(!1)},a.seek=function(e,t){return this.totalTime(Number(e),t!==!1)},a.restart=function(e,t){return this.reversed(!1).paused(!1).totalTime(e?-this._delay:0,t!==!1,!0)},a.reverse=function(e,t){return null!=e&&this.seek(e||this.totalDuration(),t),this.reversed(!0).paused(!1)},a.render=function(e,t,n){},a.invalidate=function(){return this},a.isActive=function(){var e,t=this._timeline,n=this._startTime;return!t||!this._gc&&!this._paused&&t.isActive()&&(e=t.rawTime())>=n&&e<n+this.totalDuration()/this._timeScale},a._enabled=function(e,t){return r||s.wake(),this._gc=!e,this._active=this.isActive(),t!==!0&&(e&&!this.timeline?this._timeline.add(this,this._startTime-this._delay):!e&&this.timeline&&this._timeline._remove(this,!0)),!1},a._kill=function(e,t){return this._enabled(!1,!1)},a.kill=function(e,t){return this._kill(e,t),this},a._uncache=function(e){for(var t=e?this:this.timeline;t;)t._dirty=!0,t=t.timeline;return this},a._swapSelfInParams=function(e){for(var t=e.length,n=e.concat();--t>-1;)"{self}"===e[t]&&(n[t]=this);return n},a.eventCallback=function(e,t,n,i){if("on"===(e||"").substr(0,2)){var a=this.vars;if(1===arguments.length)return a[e];null==t?delete a[e]:(a[e]=t,a[e+"Params"]=u(n)&&-1!==n.join("").indexOf("{self}")?this._swapSelfInParams(n):n,a[e+"Scope"]=i),"onUpdate"===e&&(this._onUpdate=t)}return this},a.delay=function(e){return arguments.length?(this._timeline.smoothChildTiming&&this.startTime(this._startTime+e-this._delay),this._delay=e,this):this._delay},a.duration=function(e){return arguments.length?(this._duration=this._totalDuration=e,this._uncache(!0),this._timeline.smoothChildTiming&&this._time>0&&this._time<this._duration&&0!==e&&this.totalTime(this._totalTime*(e/this._duration),!0),this):(this._dirty=!1,this._duration)},a.totalDuration=function(e){return this._dirty=!1,arguments.length?this.duration(e):this._totalDuration},a.time=function(e,t){return arguments.length?(this._dirty&&this.totalDuration(),this.totalTime(e>this._duration?this._duration:e,t)):this._time},a.totalTime=function(e,t,n){if(r||s.wake(),!arguments.length)return this._totalTime;if(this._timeline){if(0>e&&!n&&(e+=this.totalDuration()),this._timeline.smoothChildTiming){this._dirty&&this.totalDuration();var i=this._totalDuration,a=this._timeline;if(e>i&&!n&&(e=i),this._startTime=(this._paused?this._pauseTime:a._time)-(this._reversed?i-e:e)/this._timeScale,a._dirty||this._uncache(!1),a._timeline)for(;a._timeline;)a._timeline._time!==(a._startTime+a._totalTime)/a._timeScale&&a.totalTime(a._totalTime,!0),a=a._timeline}this._gc&&this._enabled(!0,!1),(this._totalTime!==e||0===this._duration)&&(this.render(e,t,!1),L.length&&H())}return this},a.progress=a.totalProgress=function(e,t){return arguments.length?this.totalTime(this.duration()*e,t):this._time/this.duration()},a.startTime=function(e){return arguments.length?(e!==this._startTime&&(this._startTime=e,this.timeline&&this.timeline._sortChildren&&this.timeline.add(this,e-this._delay)),this):this._startTime},a.timeScale=function(e){if(!arguments.length)return this._timeScale;if(e=e||c,this._timeline&&this._timeline.smoothChildTiming){var t=this._pauseTime,n=t||0===t?t:this._timeline.totalTime();this._startTime=n-(n-this._startTime)*this._timeScale/e}return this._timeScale=e,this._uncache(!1)},a.reversed=function(e){return arguments.length?(e!=this._reversed&&(this._reversed=e,this.totalTime(this._timeline&&!this._timeline.smoothChildTiming?this.totalDuration()-this._totalTime:this._totalTime,!0)),this):this._reversed},a.paused=function(e){if(!arguments.length)return this._paused;if(e!=this._paused&&this._timeline){r||e||s.wake();var t=this._timeline,n=t.rawTime(),i=n-this._pauseTime;!e&&t.smoothChildTiming&&(this._startTime+=i,this._uncache(!1)),this._pauseTime=e?n:null,this._paused=e,this._active=this.isActive(),!e&&0!==i&&this._initted&&this.duration()&&this.render(t.smoothChildTiming?this._totalTime:(n-this._startTime)/this._timeScale,!0,!0)}return this._gc&&!e&&this._enabled(!0,!1),this};var A=m("core.SimpleTimeline",function(e){D.call(this,0,e),this.autoRemoveChildren=this.smoothChildTiming=!0});a=A.prototype=new D,a.constructor=A,a.kill()._gc=!1,a._first=a._last=null,a._sortChildren=!1,a.add=a.insert=function(e,t,n,i){var a,s;if(e._startTime=Number(t||0)+e._delay,e._paused&&this!==e._timeline&&(e._pauseTime=e._startTime+(this.rawTime()-e._startTime)/e._timeScale),e.timeline&&e.timeline._remove(e,!0),e.timeline=e._timeline=this,e._gc&&e._enabled(!0,!0),a=this._last,this._sortChildren)for(s=e._startTime;a&&a._startTime>s;)a=a._prev;return a?(e._next=a._next,a._next=e):(e._next=this._first,this._first=e),e._next?e._next._prev=e:this._last=e,e._prev=a,this._timeline&&this._uncache(!0),this},a._remove=function(e,t){return e.timeline===this&&(t||e._enabled(!1,!0),e.timeline=null,e._prev?e._prev._next=e._next:this._first===e&&(this._first=e._next),e._next?e._next._prev=e._prev:this._last===e&&(this._last=e._prev),this._timeline&&this._uncache(!0)),this},a.render=function(e,t,n){var i,a=this._first;for(this._totalTime=this._time=this._rawPrevTime=e;a;)i=a._next,(a._active||e>=a._startTime&&!a._paused)&&(a._reversed?a.render((a._dirty?a.totalDuration():a._totalDuration)-(e-a._startTime)*a._timeScale,t,n):a.render((e-a._startTime)*a._timeScale,t,n)),a=i},a.rawTime=function(){return r||s.wake(),this._totalTime};var E=m("TweenLite",function(t,n,i){if(D.call(this,n,i),this.render=E.prototype.render,null==t)throw"Cannot tween a null target.";this.target=t="string"!=typeof t?t:E.selector(t)||t;var a,s,r,o=t.jquery||t.length&&t!==e&&t[0]&&(t[0]===e||t[0].nodeType&&t[0].style&&!t.nodeType),l=this.vars.overwrite;if(this._overwrite=l=null==l?R[E.defaultOverwrite]:"number"==typeof l?l>>0:R[l],(o||t instanceof Array||t.push&&u(t))&&"number"!=typeof t[0])for(this._targets=r=d.call(t,0),this._propLookup=[],this._siblings=[],a=0;a<r.length;a++)s=r[a],s?"string"!=typeof s?s.length&&s!==e&&s[0]&&(s[0]===e||s[0].nodeType&&s[0].style&&!s.nodeType)?(r.splice(a--,1),this._targets=r=r.concat(d.call(s,0))):(this._siblings[a]=U(s,this,!1),1===l&&this._siblings[a].length>1&&W(s,this,null,1,this._siblings[a])):(s=r[a--]=E.selector(s),"string"==typeof s&&r.splice(a+1,1)):r.splice(a--,1);else this._propLookup={},this._siblings=U(t,this,!1),1===l&&this._siblings.length>1&&W(t,this,null,1,this._siblings);(this.vars.immediateRender||0===n&&0===this._delay&&this.vars.immediateRender!==!1)&&(this._time=-c,this.render(-this._delay))},!0),I=function(t){return t.length&&t!==e&&t[0]&&(t[0]===e||t[0].nodeType&&t[0].style&&!t.nodeType)},P=function(e,t){var n,i={};for(n in e)B[n]||n in t&&"transform"!==n&&"x"!==n&&"y"!==n&&"width"!==n&&"height"!==n&&"className"!==n&&"border"!==n||!(!F[n]||F[n]&&F[n]._autoCSS)||(i[n]=e[n],delete e[n]);e.css=i};a=E.prototype=new D,a.constructor=E,a.kill()._gc=!1,a.ratio=0,a._firstPT=a._targets=a._overwrittenProps=a._startAt=null,a._notifyPluginsOfEnabled=a._lazy=!1,E.version="1.12.1",E.defaultEase=a._ease=new _(null,null,1,1),E.defaultOverwrite="auto",E.ticker=s,E.autoSleep=!0,E.lagSmoothing=function(e,t){s.lagSmoothing(e,t)},E.selector=e.$||e.jQuery||function(t){return e.$?(E.selector=e.$,e.$(t)):e.document?e.document.getElementById("#"===t.charAt(0)?t.substr(1):t):t};var L=[],O={},M=E._internals={isArray:u,isSelector:I,lazyTweens:L},F=E._plugins={},N=M.tweenLookup={},j=0,B=M.reservedProps={ease:1,delay:1,overwrite:1,onComplete:1,onCompleteParams:1,onCompleteScope:1,useFrames:1,runBackwards:1,startAt:1,onUpdate:1,onUpdateParams:1,onUpdateScope:1,onStart:1,onStartParams:1,onStartScope:1,onReverseComplete:1,onReverseCompleteParams:1,onReverseCompleteScope:1,onRepeat:1,onRepeatParams:1,onRepeatScope:1,easeParams:1,yoyo:1,immediateRender:1,repeat:1,repeatDelay:1,data:1,paused:1,reversed:1,autoCSS:1,lazy:1},R={none:0,all:1,auto:2,concurrent:3,allOnStart:4,preexisting:5,"true":1,"false":0},V=D._rootFramesTimeline=new A,q=D._rootTimeline=new A,H=function(){var e=L.length;for(O={};--e>-1;)n=L[e],n&&n._lazy!==!1&&(n.render(n._lazy,!1,!0),n._lazy=!1);L.length=0};q._startTime=s.time,V._startTime=s.frame,q._active=V._active=!0,setTimeout(H,1),D._updateRoot=E.render=function(){var e,t,n;if(L.length&&H(),q.render((s.time-q._startTime)*q._timeScale,!1,!1),V.render((s.frame-V._startTime)*V._timeScale,!1,!1),L.length&&H(),!(s.frame%120)){for(n in N){for(t=N[n].tweens,e=t.length;--e>-1;)t[e]._gc&&t.splice(e,1);0===t.length&&delete N[n]}if(n=q._first,(!n||n._paused)&&E.autoSleep&&!V._first&&1===s._listeners.tick.length){for(;n&&n._paused;)n=n._next;n||s.sleep()}}},s.addEventListener("tick",D._updateRoot);var U=function(e,t,n){var i,a,s=e._gsTweenID;if(N[s||(e._gsTweenID=s="t"+j++)]||(N[s]={target:e,tweens:[]}),t&&(i=N[s].tweens,i[a=i.length]=t,n))for(;--a>-1;)i[a]===t&&i.splice(a,1);return N[s].tweens},W=function(e,t,n,i,a){var s,r,o,l;if(1===i||i>=4){for(l=a.length,s=0;l>s;s++)if((o=a[s])!==t)o._gc||o._enabled(!1,!1)&&(r=!0);else if(5===i)break;return r}var d,p=t._startTime+c,u=[],h=0,g=0===t._duration;for(s=a.length;--s>-1;)(o=a[s])===t||o._gc||o._paused||(o._timeline!==t._timeline?(d=d||z(t,0,g),0===z(o,d,g)&&(u[h++]=o)):o._startTime<=p&&o._startTime+o.totalDuration()/o._timeScale>p&&((g||!o._initted)&&p-o._startTime<=2e-10||(u[h++]=o)));for(s=h;--s>-1;)o=u[s],2===i&&o._kill(n,e)&&(r=!0),(2!==i||!o._firstPT&&o._initted)&&o._enabled(!1,!1)&&(r=!0);return r},z=function(e,t,n){for(var i=e._timeline,a=i._timeScale,s=e._startTime;i._timeline;){if(s+=i._startTime,a*=i._timeScale,i._paused)return-100;i=i._timeline}return s/=a,s>t?s-t:n&&s===t||!e._initted&&2*c>s-t?c:(s+=e.totalDuration()/e._timeScale/a)>t+c?0:s-t-c};a._init=function(){var e,t,n,i,a,s=this.vars,r=this._overwrittenProps,o=this._duration,l=!!s.immediateRender,c=s.ease;if(s.startAt){this._startAt&&(this._startAt.render(-1,!0),this._startAt.kill()),a={};for(i in s.startAt)a[i]=s.startAt[i];if(a.overwrite=!1,a.immediateRender=!0,a.lazy=l&&s.lazy!==!1,a.startAt=a.delay=null,this._startAt=E.to(this.target,0,a),l)if(this._time>0)this._startAt=null;else if(0!==o)return}else if(s.runBackwards&&0!==o)if(this._startAt)this._startAt.render(-1,!0),this._startAt.kill(),this._startAt=null;else{n={};for(i in s)B[i]&&"autoCSS"!==i||(n[i]=s[i]);if(n.overwrite=0,n.data="isFromStart",n.lazy=l&&s.lazy!==!1,n.immediateRender=l,this._startAt=E.to(this.target,0,n),l){if(0===this._time)return}else this._startAt._init(),this._startAt._enabled(!1)}if(c?c instanceof _?this._ease=s.easeParams instanceof Array?c.config.apply(c,s.easeParams):c:this._ease="function"==typeof c?new _(c,s.easeParams):y[c]||E.defaultEase:this._ease=E.defaultEase,this._easeType=this._ease._type,this._easePower=this._ease._power,this._firstPT=null,this._targets)for(e=this._targets.length;--e>-1;)this._initProps(this._targets[e],this._propLookup[e]={},this._siblings[e],r?r[e]:null)&&(t=!0);else t=this._initProps(this.target,this._propLookup,this._siblings,r);if(t&&E._onPluginEvent("_onInitAllProps",this),r&&(this._firstPT||"function"!=typeof this.target&&this._enabled(!1,!1)),\r
+s.runBackwards)for(n=this._firstPT;n;)n.s+=n.c,n.c=-n.c,n=n._next;this._onUpdate=s.onUpdate,this._initted=!0},a._initProps=function(t,n,i,a){var s,r,o,l,c,d;if(null==t)return!1;O[t._gsTweenID]&&H(),this.vars.css||t.style&&t!==e&&t.nodeType&&F.css&&this.vars.autoCSS!==!1&&P(this.vars,t);for(s in this.vars){if(d=this.vars[s],B[s])d&&(d instanceof Array||d.push&&u(d))&&-1!==d.join("").indexOf("{self}")&&(this.vars[s]=d=this._swapSelfInParams(d,this));else if(F[s]&&(l=new F[s])._onInitTween(t,this.vars[s],this)){for(this._firstPT=c={_next:this._firstPT,t:l,p:"setRatio",s:0,c:1,f:!0,n:s,pg:!0,pr:l._priority},r=l._overwriteProps.length;--r>-1;)n[l._overwriteProps[r]]=this._firstPT;(l._priority||l._onInitAllProps)&&(o=!0),(l._onDisable||l._onEnable)&&(this._notifyPluginsOfEnabled=!0)}else this._firstPT=n[s]=c={_next:this._firstPT,t:t,p:s,f:"function"==typeof t[s],n:s,pg:!1,pr:0},c.s=c.f?t[s.indexOf("set")||"function"!=typeof t["get"+s.substr(3)]?s:"get"+s.substr(3)]():parseFloat(t[s]),c.c="string"==typeof d&&"="===d.charAt(1)?parseInt(d.charAt(0)+"1",10)*Number(d.substr(2)):Number(d)-c.s||0;c&&c._next&&(c._next._prev=c)}return a&&this._kill(a,t)?this._initProps(t,n,i,a):this._overwrite>1&&this._firstPT&&i.length>1&&W(t,this,n,this._overwrite,i)?(this._kill(n,t),this._initProps(t,n,i,a)):(this._firstPT&&(this.vars.lazy!==!1&&this._duration||this.vars.lazy&&!this._duration)&&(O[t._gsTweenID]=!0),o)},a.render=function(e,t,n){var i,a,s,r,o=this._time,l=this._duration,d=this._rawPrevTime;if(e>=l)this._totalTime=this._time=l,this.ratio=this._ease._calcEnd?this._ease.getRatio(1):1,this._reversed||(i=!0,a="onComplete"),0===l&&(this._initted||!this.vars.lazy||n)&&(this._startTime===this._timeline._duration&&(e=0),(0===e||0>d||d===c)&&d!==e&&(n=!0,d>c&&(a="onReverseComplete")),this._rawPrevTime=r=!t||e||d===e?e:c);else if(1e-7>e)this._totalTime=this._time=0,this.ratio=this._ease._calcEnd?this._ease.getRatio(0):0,(0!==o||0===l&&d>0&&d!==c)&&(a="onReverseComplete",i=this._reversed),0>e?(this._active=!1,0===l&&(this._initted||!this.vars.lazy||n)&&(d>=0&&(n=!0),this._rawPrevTime=r=!t||e||d===e?e:c)):this._initted||(n=!0);else if(this._totalTime=this._time=e,this._easeType){var p=e/l,u=this._easeType,h=this._easePower;(1===u||3===u&&p>=.5)&&(p=1-p),3===u&&(p*=2),1===h?p*=p:2===h?p*=p*p:3===h?p*=p*p*p:4===h&&(p*=p*p*p*p),1===u?this.ratio=1-p:2===u?this.ratio=p:.5>e/l?this.ratio=p/2:this.ratio=1-p/2}else this.ratio=this._ease.getRatio(e/l);if(this._time!==o||n){if(!this._initted){if(this._init(),!this._initted||this._gc)return;if(!n&&this._firstPT&&(this.vars.lazy!==!1&&this._duration||this.vars.lazy&&!this._duration))return this._time=this._totalTime=o,this._rawPrevTime=d,L.push(this),void(this._lazy=e);this._time&&!i?this.ratio=this._ease.getRatio(this._time/l):i&&this._ease._calcEnd&&(this.ratio=this._ease.getRatio(0===this._time?0:1))}for(this._lazy!==!1&&(this._lazy=!1),this._active||!this._paused&&this._time!==o&&e>=0&&(this._active=!0),0===o&&(this._startAt&&(e>=0?this._startAt.render(e,t,n):a||(a="_dummyGS")),this.vars.onStart&&(0!==this._time||0===l)&&(t||this.vars.onStart.apply(this.vars.onStartScope||this,this.vars.onStartParams||b))),s=this._firstPT;s;)s.f?s.t[s.p](s.c*this.ratio+s.s):s.t[s.p]=s.c*this.ratio+s.s,s=s._next;this._onUpdate&&(0>e&&this._startAt&&this._startTime&&this._startAt.render(e,t,n),t||(this._time!==o||i)&&this._onUpdate.apply(this.vars.onUpdateScope||this,this.vars.onUpdateParams||b)),a&&(this._gc||(0>e&&this._startAt&&!this._onUpdate&&this._startTime&&this._startAt.render(e,t,n),i&&(this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!t&&this.vars[a]&&this.vars[a].apply(this.vars[a+"Scope"]||this,this.vars[a+"Params"]||b),0===l&&this._rawPrevTime===c&&r!==c&&(this._rawPrevTime=0)))}},a._kill=function(e,t){if("all"===e&&(e=null),null==e&&(null==t||t===this.target))return this._lazy=!1,this._enabled(!1,!1);t="string"!=typeof t?t||this._targets||this.target:E.selector(t)||t;var n,i,a,s,r,o,l,c;if((u(t)||I(t))&&"number"!=typeof t[0])for(n=t.length;--n>-1;)this._kill(e,t[n])&&(o=!0);else{if(this._targets){for(n=this._targets.length;--n>-1;)if(t===this._targets[n]){r=this._propLookup[n]||{},this._overwrittenProps=this._overwrittenProps||[],i=this._overwrittenProps[n]=e?this._overwrittenProps[n]||{}:"all";break}}else{if(t!==this.target)return!1;r=this._propLookup,i=this._overwrittenProps=e?this._overwrittenProps||{}:"all"}if(r){l=e||r,c=e!==i&&"all"!==i&&e!==r&&("object"!=typeof e||!e._tempKill);for(a in l)(s=r[a])&&(s.pg&&s.t._kill(l)&&(o=!0),s.pg&&0!==s.t._overwriteProps.length||(s._prev?s._prev._next=s._next:s===this._firstPT&&(this._firstPT=s._next),s._next&&(s._next._prev=s._prev),s._next=s._prev=null),delete r[a]),c&&(i[a]=1);!this._firstPT&&this._initted&&this._enabled(!1,!1)}}return o},a.invalidate=function(){return this._notifyPluginsOfEnabled&&E._onPluginEvent("_onDisable",this),this._firstPT=null,this._overwrittenProps=null,this._onUpdate=null,this._startAt=null,this._initted=this._active=this._notifyPluginsOfEnabled=this._lazy=!1,this._propLookup=this._targets?{}:[],this},a._enabled=function(e,t){if(r||s.wake(),e&&this._gc){var n,i=this._targets;if(i)for(n=i.length;--n>-1;)this._siblings[n]=U(i[n],this,!0);else this._siblings=U(this.target,this,!0)}return D.prototype._enabled.call(this,e,t),this._notifyPluginsOfEnabled&&this._firstPT?E._onPluginEvent(e?"_onEnable":"_onDisable",this):!1},E.to=function(e,t,n){return new E(e,t,n)},E.from=function(e,t,n){return n.runBackwards=!0,n.immediateRender=0!=n.immediateRender,new E(e,t,n)},E.fromTo=function(e,t,n,i){return i.startAt=n,i.immediateRender=0!=i.immediateRender&&0!=n.immediateRender,new E(e,t,i)},E.delayedCall=function(e,t,n,i,a){return new E(t,0,{delay:e,onComplete:t,onCompleteParams:n,onCompleteScope:i,onReverseComplete:t,onReverseCompleteParams:n,onReverseCompleteScope:i,immediateRender:!1,useFrames:a,overwrite:0})},E.set=function(e,t){return new E(e,0,t)},E.getTweensOf=function(e,t){if(null==e)return[];e="string"!=typeof e?e:E.selector(e)||e;var n,i,a,s;if((u(e)||I(e))&&"number"!=typeof e[0]){for(n=e.length,i=[];--n>-1;)i=i.concat(E.getTweensOf(e[n],t));for(n=i.length;--n>-1;)for(s=i[n],a=n;--a>-1;)s===i[a]&&i.splice(n,1)}else for(i=U(e).concat(),n=i.length;--n>-1;)(i[n]._gc||t&&!i[n].isActive())&&i.splice(n,1);return i},E.killTweensOf=E.killDelayedCallsTo=function(e,t,n){"object"==typeof t&&(n=t,t=!1);for(var i=E.getTweensOf(e,t),a=i.length;--a>-1;)i[a]._kill(n,e)};var Y=m("plugins.TweenPlugin",function(e,t){this._overwriteProps=(e||"").split(","),this._propName=this._overwriteProps[0],this._priority=t||0,this._super=Y.prototype},!0);if(a=Y.prototype,Y.version="1.10.1",Y.API=2,a._firstPT=null,a._addTween=function(e,t,n,i,a,s){var r,o;return null!=i&&(r="number"==typeof i||"="!==i.charAt(1)?Number(i)-n:parseInt(i.charAt(0)+"1",10)*Number(i.substr(2)))?(this._firstPT=o={_next:this._firstPT,t:e,p:t,s:n,c:r,f:"function"==typeof e[t],n:a||t,r:s},o._next&&(o._next._prev=o),o):void 0},a.setRatio=function(e){for(var t,n=this._firstPT,i=1e-6;n;)t=n.c*e+n.s,n.r?t=Math.round(t):i>t&&t>-i&&(t=0),n.f?n.t[n.p](t):n.t[n.p]=t,n=n._next},a._kill=function(e){var t,n=this._overwriteProps,i=this._firstPT;if(null!=e[this._propName])this._overwriteProps=[];else for(t=n.length;--t>-1;)null!=e[n[t]]&&n.splice(t,1);for(;i;)null!=e[i.n]&&(i._next&&(i._next._prev=i._prev),i._prev?(i._prev._next=i._next,i._prev=null):this._firstPT===i&&(this._firstPT=i._next)),i=i._next;return!1},a._roundProps=function(e,t){for(var n=this._firstPT;n;)(e[this._propName]||null!=n.n&&e[n.n.split(this._propName+"_").join("")])&&(n.r=t),n=n._next},E._onPluginEvent=function(e,t){var n,i,a,s,r,o=t._firstPT;if("_onInitAllProps"===e){for(;o;){for(r=o._next,i=a;i&&i.pr>o.pr;)i=i._next;(o._prev=i?i._prev:s)?o._prev._next=o:a=o,(o._next=i)?i._prev=o:s=o,o=r}o=t._firstPT=a}for(;o;)o.pg&&"function"==typeof o.t[e]&&o.t[e]()&&(n=!0),o=o._next;return n},Y.activate=function(e){for(var t=e.length;--t>-1;)e[t].API===Y.API&&(F[(new e[t])._propName]=e[t]);return!0},f.plugin=function(e){if(!(e&&e.propName&&e.init&&e.API))throw"illegal plugin definition.";var t,n=e.propName,i=e.priority||0,a=e.overwriteProps,s={init:"_onInitTween",set:"setRatio",kill:"_kill",round:"_roundProps",initAll:"_onInitAllProps"},r=m("plugins."+n.charAt(0).toUpperCase()+n.substr(1)+"Plugin",function(){Y.call(this,n,i),this._overwriteProps=a||[]},e.global===!0),o=r.prototype=new Y(n);o.constructor=r,r.API=e.API;for(t in s)"function"==typeof e[t]&&(o[s[t]]=e[t]);return r.version=e.version,Y.activate([r]),r},n=e._gsQueue){for(i=0;i<n.length;i++)n[i]();for(a in h)!h[a].func}r=!1}}(window),angular.module("att.abs.transition",[]).factory("$transition",["$q","$timeout","$rootScope",function(e,t,n){function i(e){for(var t in e)if(void 0!==s.style[t])return e[t]}var a=function(i,s,r){r=r||{};var o=e.defer(),l=a[r.animation?"animationEndEventName":"transitionEndEventName"],c=function(){n.$apply(function(){i.unbind(l,c),o.resolve(i)})};return l&&i.bind(l,c),t(function(){angular.isString(s)?i.addClass(s):angular.isFunction(s)?s(i):angular.isObject(s)&&i.css(s),l||o.resolve(i)},100),o.promise.cancel=function(){l&&i.unbind(l,c),o.reject("Transition cancelled")},o.promise},s=document.createElement("trans"),r={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"},o={WebkitTransition:"webkitAnimationEnd",MozTransition:"animationend",OTransition:"oAnimationEnd",transition:"animationend"};return a.transitionEndEventName=i(r),a.animationEndEventName=i(o),a}]).factory("$scrollTo",["$window",function(e){var t=function(t,n,i){TweenMax.to(e,i||1,{scrollTo:{y:n,x:t},ease:Power4.easeOut})};return t}]).factory("animation",function(){return TweenMax}).factory("$progressBar",function(){var e=function(e){var t=function(t,n){TweenMax.to({},n,{onUpdateParams:["{self}"],onUpdate:e,onComplete:t})};return function(){return t}()};return e}).factory("$height",function(){var e=function(e,t,n,i){TweenMax.to(e,t,{height:n,autoAlpha:i},0)};return e}),angular.module("att.abs.accordion",["att.abs.utilities","att.abs.position","att.abs.transition"]).constant("accordionConfig",{closeOthers:!1}).controller("AccordionController",["$scope","$attrs","accordionConfig","$log",function(e,t,n,i){this.groups=[],this.index=-1,this.scope=e,e.forceExpand=!1,this.closeOthers=function(i){var a=angular.isDefined(t.closeOthers)?e.$eval(t.closeOthers):n.closeOthers;a&&!e.forceExpand&&angular.forEach(this.groups,function(e){e!==i&&(e.isOpen=!1)}),this.groups.indexOf(i)===this.groups.length-1&&e.forceExpand&&(e.forceExpand=!1)},this.expandAll=function(){e.forceExpand=!0,angular.forEach(this.groups,function(e){e.isOpen=!0})},this.collapseAll=function(){angular.forEach(this.groups,function(e){e.isOpen=!1})},this.focus=function(e){var t=this;angular.forEach(this.groups,function(n,i){n!==e?n.focused=!1:(t.index=i,n.focused=!0)})},this.blur=function(e){e.focused=!1,this.index=-1,i.log("accordion.blur()",e)},this.cycle=function(t,n,i){if(n)if(this.index===this.groups.length-1){if(i)return this.index=0,t.focused=!1,void e.$apply();this.index=0}else this.index++;else this.index<=0&&!i?this.index=this.groups.length-1:this.index--;t.focused=!1,this.groups[this.index].setFocus=!0,this.groups[this.index].focused=!0,e.$apply()},this.addGroup=function(e){var t=this;e.index=this.groups.length,e.focused=!1,this.groups.push(e),this.groups.length>0&&(this.index=0),e.$on("$destroy",function(){t.removeGroup(e)})},this.removeGroup=function(e){var t=this.groups.indexOf(e);-1!==t&&this.groups.splice(this.groups.indexOf(e),1)}}]).directive("accordion",function(){return{restrict:"EA",controller:"AccordionController",transclude:!0,replace:!1,scope:{cClass:"@css",expandAll:"=?",collapseAll:"=?"},template:'<div class="{{cClass}}" ng-transclude></div>',link:function(e,t,n,i){e.$watch("expandAll",function(t){t&&(i.expandAll(),e.expandAll=!1)}),e.$watch("collapseAll",function(t){t&&(i.collapseAll(),e.collapseAll=!1)})}}}).directive("accordionGroup",[function(){return{require:["^accordion","accordionGroup"],restrict:"EA",transclude:!0,replace:!0,templateUrl:"app/scripts/ng_js_att_tpls/accordion/accordion.html",scope:{heading:"@",isOpen:"=?"},controller:["$scope",function(e){e.showicon=!0,this.setHeading=function(t){this.heading=t,e.showicon=!1},this.isIsOpen=function(){return e.isOpen}}],link:function(e,t,n,i){var a=i[0],s=i[1],r={tab:9,enter:13,esc:27,space:32,pageup:33,pagedown:34,end:35,home:36,left:37,up:38,right:39,down:40},o=t.children().eq(0),l=n.parentLink;e.setFocus=!1,e.childLength=n.childLength,e.headingIconClass=n.imageSource;var c=function(t){var n=!0;switch(t.keyCode){case r.enter:t.preventDefault(),e.toggle(),e.$apply();break;case r.up:case r.left:t.preventDefault(),a.cycle(e,!1);break;case r.down:case r.right:t.preventDefault(),a.cycle(e,!0);break;default:n=!1}return t.stopPropagation(),n};angular.isUndefined(e.isOpen)&&(e.isOpen=!1),o.bind("keydown",c),a.addGroup(e),0===e.index&&(e.focused=!0),s.toggle=e.toggle=function(){return e.childLength>0?(e.isOpen=!e.isOpen,a.focus(e),e.isOpen):void(window.location.href=l)},e.$watch("isOpen",function(t){t&&a.closeOthers(e)}),e.$watch("focused",function(t){t?(o.attr("tabindex","0"),e.setFocus&&o[0].focus()):(e.setFocus=!1,o.attr("tabindex","-1"))})}}}]).directive("accordionToggle",function(){return{restrict:"EA",require:"^accordionGroup",scope:{expandIcon:"@",collapseIcon:"@"},link:function(e,t,n,i){var a=function(n){e.expandIcon&&e.collapseIcon&&(n?(t.removeClass(e.expandIcon),t.addClass(e.collapseIcon)):(t.removeClass(e.collapseIcon),t.addClass(e.expandIcon)))};t.bind("click",function(){i.toggle(),e.$apply()}),e.$watch(function(){return i.isIsOpen()},function(e){a(e)})}}}).directive("accordionHeading",function(){return{restrict:"EA",transclude:!0,template:"",require:"^accordionGroup",compile:function(e,t,n){var i=function(e,t,i,a){n(e,function(e){t.append(e),a.setHeading(t)})};return i}}}).directive("accordionTransclude",function(){return{require:"^accordionGroup",link:function(e,t,n,i){e.$watch(function(){return i[n.accordionTransclude]},function(e){e&&t.find("span").eq(0).prepend(e)})}}}).directive("attGoTop",["$scrollTo",function(e){return{restrict:"A",transclude:!1,link:function(t,n,i){n.bind("click",function(){e(0,i.attGoTop)})}}}]).directive("attGoTo",["$anchorScroll","$location",function(e,t){return{restrict:"A",transclude:!1,link:function(n,i,a){i.bind("click",function(){var n=a.attGoTo;t.hash()!==n?t.hash(a.attGoTo):e()})}}}]).directive("freeStanding",function(){return{restrict:"EA",transclude:!0,replace:!0,scope:!0,template:"<div><span class='att-accordion__freestanding' ng-show='showAccordion'></span>\n<div class='section-toggle'>\n<button class='section-toggle__button' ng-click='fsToggle()'>\n    {{btnText}}<i style='font-size:0.875rem' ng-class='{\"icon-chevron-up\": showAccordion,\"icon-chevron-down\": !showAccordion, }'></i> \n</button>\n</div></div>",compile:function(e,t,n){var i=function(e,t,i){e.content="",n(e,function(e){t.find("span").append(e)}),e.showAccordion=!1,e.btnText=e.showAccordion?i.hideMsg:i.showMsg,e.fsToggle=function(){e.showAccordion=!e.showAccordion,e.btnText=e.showAccordion?i.hideMsg:i.showMsg}};return i}}}).directive("expanders",function(){return{restrict:"EA",replace:!0,transclude:!0,template:"<div ng-transclude></div>",controller:["$scope",function(e){var t=null;this.setScope=function(e){t=e},this.toggle=function(){return e.isOpen=t.isOpen=!t.isOpen,t.isOpen}}],link:function(e){e.isOpen=!1}}}).directive("expanderHeading",function(){return{require:"^expanders",restrict:"EA",replace:!0,transclude:!0,scope:!0,template:"<div style='padding:10px !important' ng-transclude></div>"}}).directive("expanderBody",function(){return{restrict:"EA",require:"^expanders",replace:!0,transclude:!0,scope:{},template:"<div collapse='!isOpen'><div ng-transclude></div></div>",link:function(e,t,n,i){e.isOpen=!1,i.setScope(e)}}}).directive("expanderToggle",function(){return{restrict:"EA",require:"^expanders",scope:{expandIcon:"@",collapseIcon:"@"},link:function(e,t,n,i){var a=!1,s=function(){e.expandIcon&&e.collapseIcon&&(a?(t.removeClass(e.expandIcon),t.addClass(e.collapseIcon)):(t.removeClass(e.collapseIcon),t.addClass(e.expandIcon)))};t.bind("keydown",function(t){13===t.keyCode&&e.toggleit()}),t.bind("click",function(){e.toggleit()}),e.toggleit=function(){a=i.toggle(),s(),e.$apply()},s()}}}).directive("collapse",["$transition",function(e){var t={open:{marginTop:null,marginBottom:null,paddingTop:null,paddingBottom:null,display:"block"},closed:{marginTop:0,marginBottom:0,paddingTop:0,paddingBottom:0,display:"none"}},n=function(e,n,i){n.removeClass("collapse"),n.css({height:i}),0===i?n.css(t.closed):n.css(t.open),n.addClass("collapse")};return{link:function(i,a,s){var r,o=!0;i.$watch(function(){return a[0].scrollHeight},function(){0===a[0].scrollHeight||r||(o?n(i,a,a[0].scrollHeight+"px"):n(i,a,"auto"))});var l,c=function(t){return l&&l.cancel(),l=e(a,t),l.then(function(){l=void 0},function(){l=void 0}),l},d=function(){i.postTransition=!0,o?(o=!1,r||n(i,a,"auto")):c(angular.extend({height:a[0].scrollHeight+"px"},t.open)).then(function(){r||n(i,a,"auto")}),r=!1},p=function(){r=!0,o?(o=!1,n(i,a,0)):(n(i,a,a[0].scrollHeight+"px"),c(angular.extend({height:0},t.closed)).then(function(){i.postTransition=!1}))};i.$watch(s.collapse,function(e){e?p():d()})}}}]).directive("attAccord",function(){return{restrict:"EA",transclude:!0,replace:!0,scope:{},controller:"AttAccordCtrl",templateUrl:"app/scripts/ng_js_att_tpls/accordion/attAccordHeader.html"}}).controller("AttAccordCtrl",[function(){this.type="attAccord",this.headerCtrl,this.bodyCtrl;var e=!0;this.toggleBody=function(){e?this.expandBody():this.collapseBody(),e=!e},this.expandBody=function(){this.bodyCtrl.expand()},this.collapseBody=function(){this.bodyCtrl.collapse()}}]).controller("AttAccordHeaderCtrl",[function(){this.type="header"}]).directive("attAccordHeader",["keymap","events",function(e,t){return{restrict:"EA",transclude:!0,replace:!0,require:["^attAccord","attAccordHeader"],controller:"AttAccordHeaderCtrl",templateUrl:"app/scripts/ng_js_att_tpls/accordion/attAccordHeader.html",link:function(t,n,i,a){var s=a[0],r=a[1];s.headerCtrl=r;var o=n.children().eq(0);t.clickFunc=function(){s.toggleBody()};var l=function(n){var i=!0;switch(n.keyCode){case e.KEY.ENTER:n.preventDefault(),t.clickFunc(),t.$apply();break;default:i=!1}return n.stopPropagation(),i};angular.isUndefined(t.isOpen)&&(t.isOpen=!1),o.bind("keydown",l)}}}]).controller("AttAccordBodyCtrl",["$scope",function(e){this.type="body",this.expand=function(){e.expand()},this.collapse=function(){e.collapse()}}]).directive("attAccordBody",["$timeout","$height",function(e,t){return{restrict:"EA",transclude:!0,replace:!0,require:["^attAccord","attAccordBody"],controller:"AttAccordBodyCtrl",templateUrl:"app/scripts/ng_js_att_tpls/accordion/attAccordBody.html",link:function(n,i,a,s){var r=s[0],o=s[1];r.bodyCtrl=o;var l;e(function(){l=i[0].offsetHeight,t(i,0,0,0)}),n.expand=function(){t(i,.05,l,1)},n.collapse=function(){t(i,.25,0,0)}}}}]),angular.module("att.abs.alert",[]).directive("attAlert",[function(){return{restrict:"EA",replace:!0,transclude:!0,scope:{alertType:"@type",showTop:"@topPos",showAlert:"="},templateUrl:"app/scripts/ng_js_att_tpls/alert/alert.html",link:function(e){"true"===e.showTop?e.cssStyle={top:"50px"}:e.cssStyle={top:"0px"},e.close=function(){e.showAlert=!1}}}}]),angular.module("att.abs.boardStrip",["att.abs.utilities"]).constant("BoardStripConfig",{maxVisibleBoards:4,boardsToScroll:1,boardLength:140,boardMargin:15}).directive("attBoard",[function(){return{restrict:"AE",replace:!0,transclude:!0,require:"^attBoardStrip",scope:{boardIndex:"=",boardLabel:"="},templateUrl:"app/scripts/ng_js_att_tpls/boardStrip/attBoard.html",link:function(e,t,n,i){var a=i;e.getCurrentIndex=function(){return a.getCurrentIndex()},e.selectBoard=function(e){isNaN(e)||a.setCurrentIndex(e)},e.isInView=function(e){return a.isInView(e)}}}}]).directive("attBoardStrip",["BoardStripConfig","$timeout","$ieVersion",function(e,t,n){return{restrict:"AE",replace:!0,transclude:!0,scope:{currentIndex:"=selectedIndex",boardsMasterArray:"=",onAddBoard:"&?"},templateUrl:"app/scripts/ng_js_att_tpls/boardStrip/attBoardStrip.html",controller:function(t){if(angular.isDefined(t.boardsMasterArray)||(t.boardsMasterArray=[]),this.rectifyMaxVisibleBoards=function(){this.maxVisibleIndex>=t.boardsMasterArray.length&&(this.maxVisibleIndex=t.boardsMasterArray.length-1),this.maxVisibleIndex<0&&(this.maxVisibleIndex=0)},this.resetBoardStrip=function(){t.currentIndex=0,this.maxVisibleIndex=e.maxVisibleBoards-1,this.minVisibleIndex=0,this.rectifyMaxVisibleBoards()},t.currentIndex>0){var n=t.currentIndex;this.resetBoardStrip(),n>t.boardsMasterArray.length?t.currentIndex=t.boardsMasterArray.length-1:t.currentIndex=n}else this.resetBoardStrip();this.getCurrentIndex=function(){return t.currentIndex},this.setCurrentIndex=function(e){t.currentIndex=e},this.isInView=function(e){return e<=this.maxVisibleIndex&&e>=this.minVisibleIndex},this.getBoardsMasterArrayLength=function(){return t.boardsMasterArray.length}},link:function(i,a,s,r){var o,l=n(),c=1e3;l&&10>l&&(c=0);var d=function(t){return t*(e.boardLength+e.boardMargin)};a[0].querySelector(".board-viewport")&&angular.element(a[0].querySelector(".board-viewport")).css({width:d(e.maxVisibleBoards)+"px"});var p=function(t){return t*(e.boardLength+e.boardMargin)};a[0].querySelector(".boardstrip-container")&&(angular.element(a[0].querySelector(".boardstrip-container")).css({width:p(r.getBoardsMasterArrayLength())+"px"}),angular.element(a[0].querySelector(".boardstrip-container")).css({left:"0px"}));var u=function(){var t;return t=r.getBoardsMasterArrayLength()<=e.maxVisibleBoards?0:r.minVisibleIndex*(e.boardLength+e.boardMargin)*-1},h=function(e,t,n){for(var i=0;i<e.length;i++)angular.element(e[i]).attr("tabindex","-1");for(var i=t;n>=i;i++)angular.element(e[i]).attr("tabindex","0")};i.$watchCollection("boardsMasterArray",function(n,i){n!==i&&(n.length<i.length?(r.resetBoardStrip(),t(function(){var e=a[0].querySelectorAll("[att-board]");if(0!==e.length){var n=angular.element(a[0].querySelector(".boardstrip-container"))[0].style.left,i=u();n!==i+"px"?(angular.element(a[0].querySelector(".boardstrip-container")).css({left:i+"px"}),t.cancel(o),o=t(function(){e[0].focus()},c)):e[0].focus()}else a[0].querySelector("div.boardstrip-item--add").focus();angular.element(a[0].querySelector(".boardstrip-container")).css({width:p(r.getBoardsMasterArrayLength())+"px"})})):(r.maxVisibleIndex=r.getBoardsMasterArrayLength()-1,r.minVisibleIndex=Math.max(r.maxVisibleIndex-e.maxVisibleBoards+1,0),r.setCurrentIndex(r.maxVisibleIndex),t(function(){angular.element(a[0].querySelector(".boardstrip-container")).css({width:p(r.getBoardsMasterArrayLength())+"px"});var e=angular.element(a[0].querySelector(".boardstrip-container"))[0].style.left,n=u(),i=a[0].querySelectorAll("[att-board]");e!==n+"px"?(angular.element(a[0].querySelector(".boardstrip-container")).css({left:n+"px"}),t.cancel(o),o=t(function(){i[i.length-1].focus()},c)):i[i.length-1].focus(),h(i,r.minVisibleIndex,r.maxVisibleIndex)})))}),i.nextBoard=function(){r.maxVisibleIndex+=e.boardsToScroll,r.rectifyMaxVisibleBoards(),r.minVisibleIndex=r.maxVisibleIndex-(e.maxVisibleBoards-1),t.cancel(o),angular.element(a[0].querySelector(".boardstrip-container")).css({left:u()+"px"}),t(function(){var e=a[0].querySelectorAll("[att-board]");if(h(e,r.minVisibleIndex,r.maxVisibleIndex),!i.isNextBoard())try{e[e.length-1].focus()}catch(t){}},c)},i.prevBoard=function(){r.minVisibleIndex-=e.boardsToScroll,r.minVisibleIndex<0&&(r.minVisibleIndex=0),r.maxVisibleIndex=r.minVisibleIndex+e.maxVisibleBoards-1,r.rectifyMaxVisibleBoards(),t.cancel(o),angular.element(a[0].querySelector(".boardstrip-container")).css({left:u()+"px"}),t(function(){var e=a[0].querySelectorAll("[att-board]");if(h(e,r.minVisibleIndex,r.maxVisibleIndex),0===r.minVisibleIndex)try{a[0].querySelector("div.boardstrip-item--add").focus()}catch(t){}})},i.isPrevBoard=function(){return r.minVisibleIndex>0},i.isNextBoard=function(){return r.getBoardsMasterArrayLength()-1>r.maxVisibleIndex}}}}]).directive("attAddBoard",["BoardStripConfig","$parse","$timeout",function(e,t,n){return{restrict:"AE",replace:!0,require:"^attBoardStrip",scope:{onAddBoard:"&?"},templateUrl:"app/scripts/ng_js_att_tpls/boardStrip/attAddBoard.html",link:function(e,n,i,a){e.addBoard=function(){i.onAddBoard&&(e.onAddBoard=t(e.onAddBoard),e.onAddBoard())}}}}]).directive("attBoardNavigation",["keymap","events",function(e,t){return{restrict:"AE",link:function(n,i){var a=e.KEY.LEFT,s=e.KEY.RIGHT;i.bind("keydown",function(e){switch(e.keyCode||(e.keyCode=e.which),e.keyCode){case s:if(t.preventDefault(e),t.stopPropagation(e),i[0].nextElementSibling&&parseInt(angular.element(i[0].nextElementSibling).attr("tabindex"))>=0)angular.element(i[0])[0].nextElementSibling.focus();else{var n=angular.element(i[0])[0];do{if(!n.nextSibling)break;n=n.nextSibling}while(n&&"LI"!==n.tagName);n.tagName&&"LI"===n.tagName&&parseInt(angular.element(n).attr("tabindex"))>=0&&n.focus()}break;case a:if(t.preventDefault(e),t.stopPropagation(e),i[0].previousElementSibling&&parseInt(angular.element(i[0].previousElementSibling).attr("tabindex"))>=0)angular.element(i[0])[0].previousElementSibling.focus();else{var r=angular.element(i[0])[0];do{if(!r.previousSibling)break;r=r.previousSibling}while(r&&"LI"!==r.tagName);r.tagName&&"LI"===r.tagName&&parseInt(angular.element(n).attr("tabindex"))>=0&&r.focus()}}})}}}]),angular.module("att.abs.breadCrumbs",[]).constant("classConstant",{defaultClass:"breadcrumbs__link",activeClass:"breadcrumbs__link--active"}).directive("attCrumb",["classConstant",function(e){return{restrict:"A",link:function(t,n,i){n.addClass(e.defaultClass),"active"===i.attCrumb&&n.addClass(e.activeClass),n.hasClass("last")||n.after('<i class="breadcrumbs__item"></i>')}}}]),angular.module("att.abs.buttons",["att.abs.position","att.abs.utilities"]).constant("btnConfig",{btnClass:"button",btnPrimaryClass:"button--primary",btnSecondaryClass:"button--secondary",btnDisabledClass:"button--inactive",btnSmallClass:"button--small"}).directive("attButton",["btnConfig",function(e){return{restrict:"A",link:function(t,n,i){n.addClass(e.btnClass),"small"===i.size&&n.addClass(e.btnSmallClass),i.$observe("btnType",function(t){"primary"===t?(n.addClass(e.btnPrimaryClass),n.removeClass(e.btnSecondaryClass),n.removeClass(e.btnDisabledClass),n.removeAttr("disabled")):"secondary"===t?(n.addClass(e.btnSecondaryClass),n.removeClass(e.btnPrimaryClass),n.removeClass(e.btnDisabledClass),n.removeAttr("disabled")):"disabled"===t&&(n.addClass(e.btnDisabledClass),n.removeClass(e.btnPrimaryClass),n.removeClass(e.btnSecondaryClass),n.attr("disabled","disabled"))})}}}]).directive("attButtonLoader",[function(){return{restrict:"A",replace:!1,scope:{size:"@"},template:"<div ng-class=\"{'button--loading': size === 'large','button--loading__small': size === 'small'}\"><i></i><i class=\"second__loader\"></i><i></i></div>",link:function(e,t){t.addClass("button button--inactive")}}}]).directive("attButtonHero",[function(){return{restrict:"A",replace:!1,transclude:!0,scope:{icon:"@"},template:"<div class=\"button--hero__inner\"><span ng-transclude></span> <i ng-class=\"{'icon-arrow-right': icon === 'arrow-right','icon-cart': icon === 'cart'}\"></i></div>",link:function(e,t){t.addClass("button button--hero"),t.attr("tabindex","0")}}}]).directive("attBtnDropdown",["$document","$timeout","$isElement","$documentBind","keymap","events",function(e,t,n,i,a,s){return{restrict:"EA",scope:{type:"@dropdowntype"},replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/buttons/buttonDropdown.html",link:function(r,o){r.isOpen=!1;var l=-1,c=[],d=void 0;t(function(){c=o.find("li"),d=o.find("button")[0]},10);var p=r.toggle=function(e){angular.isUndefined(e)||""===e?r.isOpen=!r.isOpen:r.isOpen=e},u=function(){l+1<c.length&&(l++,c[l].focus())},h=function(){l-1>=0&&(l--,c[l].focus())};o.bind("keydown",function(e){var t=e.keyCode;if(a.isAllowedKey(t)||a.isControl(e)||a.isFunctionKey(e))switch(t){case a.KEY.ENTER:l>0&&(d.focus(),r.$apply());break;case a.KEY.ESC:p(!1),l=-1,d.focus(),r.$apply();break;case a.KEY.DOWN:u(),r.$apply(),s.preventDefault(e),s.stopPropagation(e);break;case a.KEY.UP:h(),r.$apply(),s.preventDefault(e),s.stopPropagation(e)}else t===a.KEY.TAB&&(p(!1),l=-1,r.$apply())});var g=function(t){var i=n(angular.element(t.target),o,e);if(!i){p(!1),l=-1;for(var a=0;a<c.length;a++)angular.element(c[a]).removeClass("selected");d.focus(),r.$apply()}};i.click("isOpen",g,r)}}}]),angular.module("att.abs.checkbox",[]).constant("attCheckboxConfig",{activeClass:"att-checkbox--on",disabledClass:"att-checkbox--disabled"}).directive("checkboxLimit",function(){return{scope:{checkboxLimit:"=",selectLimit:"@?",maxSelected:"&?"},restrict:"A",require:"checkboxLimit",controller:["$scope",function(e){e.limit=!0,this.getMaxLimits=function(){return e.limit},this.setMaxLimits=function(t){e.limit=t},this.maxCheckboxSelected=function(){e.maxSelected()}}],link:function(e,t,n,i){e.$watch("checkboxLimit",function(){var t=0;for(var n in e.checkboxLimit)e.checkboxLimit.hasOwnProperty(n)&&e.checkboxLimit[n]&&(t+=1);t>=parseInt(e.selectLimit)?i.setMaxLimits(!1):i.setMaxLimits(!0)},!0)}}}).directive("attCheckbox",["$compile","attCheckboxConfig",function(e,t){return{scope:{},restrict:"A",require:["ngModel","^?checkboxLimit"],link:function(n,i,a,s){var r=s[0],o=s[1],l=e('<div tabindex="0" role="checkbox" att-accessibility-click="13,32" aria-label="Checkbox" ng-click="updateModel($event)" class="att-checkbox"></div>')(n);i.css({display:"none"}),i.wrap(l),i.parent().append('<div class="att-checkbox__indicator"></div>'),i.parent().attr("title",a.title),i.parent().attr("aria-label",a.title),i.parent().attr("id",a.id),i.removeAttr("id"),r.$render=function(){var e=r.$modelValue?!0:!1;i.parent().toggleClass(t.activeClass,e),i.parent().attr("aria-checked",e)},n.updateModel=function(e){n.disabled||(r.$setViewValue(i.parent().hasClass(t.activeClass)?!1:!0),o&&!o.getMaxLimits()&&r.$modelValue?(o.maxCheckboxSelected(),r.$setViewValue(i.parent().hasClass(t.activeClass)?!0:!1)):r.$render()),e.preventDefault()},a.$observe("disabled",function(e){n.disabled=e||"disabled"===e||"true"===e,i.parent().toggleClass(t.disabledClass,n.disabled),i.parent().attr("tabindex",n.disabled?"-1":"0")})}}}]).directive("checkboxGroup",["$compile",function(e){return{scope:{checkboxGroup:"=",checkboxGroupValue:"=?"},restrict:"A",link:function(t,n,i){t.checkboxState="none",void 0===t.checkboxGroupValue&&(t.checkboxGroupValue="indeterminate"),n.css({display:"none"}),n.wrap(e('<div tabindex="0" role="checkbox" att-accessibility-click="13,32" ng-click="updateModel($event)" class="att-checkbox"></div>')(t)),n.parent().append('<div class="att-checkbox__indicator"></div>'),n.parent().attr("title",i.title),n.parent().attr("aria-label",i.title),t.$watch("checkboxState",function(e){"all"===e?(n.parent().addClass("att-checkbox--on"),n.parent().removeClass("att-checkbox--indeterminate"),n.parent().attr("aria-checked",!0)):"none"===e?(n.parent().removeClass("att-checkbox--on"),n.parent().removeClass("att-checkbox--indeterminate"),n.parent().attr("aria-checked",!1)):"indeterminate"===e&&(n.parent().removeClass("att-checkbox--on"),n.parent().addClass("att-checkbox--indeterminate"),n.parent().attr("aria-checked",!0))}),t.updateModel=function(e){if(n.parent().hasClass("att-checkbox--on")){n.parent().removeClass("att-checkbox--on");for(var i in t.checkboxGroup)t.checkboxGroup.hasOwnProperty(i)&&(t.checkboxGroup[i]=!1)}else{n.parent().addClass("att-checkbox--on");for(var a in t.checkboxGroup)t.checkboxGroup.hasOwnProperty(a)&&(t.checkboxGroup[a]=!0)}e.preventDefault()},t.$watch("checkboxGroupValue",function(e){if(e===!1){n.parent().removeClass("att-checkbox--on");\r
+for(var i in t.checkboxGroup)t.checkboxGroup.hasOwnProperty(i)&&(t.checkboxGroup[i]=!1)}else if(e===!0){n.parent().addClass("att-checkbox--on");for(var a in t.checkboxGroup)t.checkboxGroup.hasOwnProperty(a)&&(t.checkboxGroup[a]=!0)}}),t.$watch("checkboxGroup",function(){var e=0,n=0,i=0;for(var a in t.checkboxGroup)t.checkboxGroup.hasOwnProperty(a)&&(i+=1,t.checkboxGroup[a]?e+=1:t.checkboxGroup[a]||(n+=1));i===e?(t.checkboxState="all",t.checkboxGroupValue=!0):i===n?(t.checkboxState="none",t.checkboxGroupValue=!1):(t.checkboxState="indeterminate",t.checkboxGroupValue="indeterminate")},!0)}}}]),angular.module("att.abs.colorselector",[]).directive("colorSelectorWrapper",[function(){return{scope:{selected:"=",iconColor:"@"},restrict:"AE",transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/colorselector/colorselector.html",link:function(e){e.applycolor={"background-color":e.iconColor},e.selectedcolor=function(t){e.selected=t}}}}]).directive("colorSelector",["$compile",function(e){return{restrict:"A",scope:{colorSelector:"@",ngModel:"="},link:function(t,n,i){n.removeAttr("color-selector");var a=i.title,s=angular.element('<color-selector-wrapper selected="ngModel" title="'+a+'" icon-color="{{colorSelector}}">'+n.prop("outerHTML")+"</color-selector-wrapper>"),r=e(s)(t);n.replaceWith(r)}}}]),angular.module("att.abs.datepicker",["att.abs.position","att.abs.utilities"]).constant("datepickerConfig",{dateFormat:"MM/dd/yyyy",dayFormat:"d",monthFormat:"MMMM",yearFormat:"yyyy",dayHeaderFormat:"EEEE",dayTitleFormat:"MMMM yyyy",disableWeekend:!1,disableSunday:!1,startingDay:0,minDate:null,maxDate:null,mode:0,dateFilter:{defaultText:"Select from list"},datepickerEvalAttributes:["dateFormat","dayFormat","monthFormat","yearFormat","dayHeaderFormat","dayTitleFormat","disableWeekend","disableSunday","startingDay","mode"],datepickerWatchAttributes:["min","max"]}).factory("datepickerService",["datepickerConfig","dateFilter",function(e,t){var n=function(t,n){if(angular.isDefined(t)&&null!==t&&angular.isDefined(n)&&null!==n){var i=e.datepickerEvalAttributes.concat(e.datepickerWatchAttributes);for(var a in t){var s=t[a];-1!==i.indexOf(a)&&angular.isDefined(s)&&n.attr(a.toSnakeCase(),a)}}},i=function(t,n){if(angular.isDefined(t)&&null!==t&&angular.isDefined(n)&&null!==n){var i=function(e,t){n[e]=n.$parent.$eval(t)},a=function(e,t){n.$parent.$watch(t,function(t){n[e]=t}),n.$watch(e,function(e){n.$parent[t]=e})},s=e.datepickerEvalAttributes,r=e.datepickerWatchAttributes;for(var o in t){var l=t[o];-1!==s.indexOf(o)&&angular.isDefined(l)?i(o,l):-1!==r.indexOf(o)&&angular.isDefined(l)&&a(o,l)}}},a=function(e,n){if(e&&n){var i;-1!==n.indexOf("/")?i="/":-1!==n.indexOf("-")?i="-":-1!==n.indexOf(".")&&(i=".");var a=e.split(i),s=n.split(i);if(a.length!==s.length)return!1;for(var r=0;r<a.length;r++)a[r]=a[r].lPad(s[r].length,"0");var o=a.join(i),l=t(new Date(o),n);return o===l}};return{setAttributes:n,bindScope:i,validateDateString:a}}]).controller("DatepickerController",["$scope","$attrs","dateFilter","datepickerConfig",function(e,t,n,i){function a(t,n){return angular.isDefined(t)?e.$parent.$eval(t):n}function s(e,t){return new Date(e,t,0).getDate()}function r(e,t){for(var n=[],i=e,a=0;t>a;)n[a++]=new Date(i),i.setDate(i.getDate()+1);return n}function o(t){return t&&angular.isDate(e.currentDate)&&0===y(t,e.currentDate)?!0:!1}function l(t){return t&&angular.isDate(e.fromDate)&&0===y(t,e.fromDate)?!0:!1}function c(t){return t&&angular.isDate(e.fromDate)&&angular.isDate(e.currentDate)&&0===y(t,e.currentDate)?!0:!1}function d(t){return t&&angular.isDate(e.fromDate)&&angular.isDate(e.currentDate)&&y(t,e.fromDate)>=0&&y(t,e.currentDate)<=0?!0:!1}function p(e){return"Saturday"===n(e,b.dayHeader)||"Sunday"===n(e,b.dayHeader)?!0:!1}function u(t){return 0===y(t,e.resetTime(new Date))?!0:!1}function h(t){return t&&angular.isDate(e.focusedDate)&&0===y(t,e.focusedDate)?!0:!1}function g(t,n){return e.minDate&&e.minDate.getTime()>=t.getTime()&&e.minDate.getTime()<=n.getTime()}function f(t,n){return e.maxDate&&e.maxDate.getTime()>=t.getTime()&&e.maxDate.getTime()<=n.getTime()}function m(e){if(e){var t={pre:e.substr(0,3),post:e};return t}}function v(e){return{date:e.date,label:n(e.date,e.formatDay),header:n(e.date,e.formatHeader),focused:!!e.isFocused,selected:!!e.isSelected,from:!!e.isFromDate,to:!!e.isToDate,dateRange:!!e.isDateRange,oldMonth:!!e.oldMonth,nextMonth:!!e.newMonth,disabled:!!e.isDisabled,today:!!e.isToday,weekend:!!e.isWeakend}}var b={date:a(t.dateFormat,i.dateFormat),day:a(t.dayFormat,i.dayFormat),month:a(t.monthFormat,i.monthFormat),year:a(t.yearFormat,i.yearFormat),dayHeader:a(t.dayHeaderFormat,i.dayHeaderFormat),dayTitle:a(t.dayTitleFormat,i.dayTitleFormat),disableWeekend:a(t.disableWeekend,i.disableWeekend),disableSunday:a(t.disableSunday,i.disableSunday)},_=a(t.startingDay,i.startingDay);e.mode=a(t.mode,i.mode),e.minDate=i.minDate?e.resetTime(i.minDate):null,e.maxDate=i.maxDate?e.resetTime(i.maxDate):null;var y=this.compare=function(e,t){return new Date(e.getFullYear(),e.getMonth(),e.getDate())-new Date(t.getFullYear(),t.getMonth(),t.getDate())},w=this.isDisabled=function(t){return b.disableWeekend!==!0||"Saturday"!==n(t,b.dayHeader)&&"Sunday"!==n(t,b.dayHeader)?b.disableSunday===!0&&"Sunday"===n(t,b.dayHeader)?!0:e.minDate&&y(t,e.minDate)<0||e.maxDate&&y(t,e.maxDate)>0:!0};this.modes=[{name:"day",getVisibleDates:function(t,i){var a=t.getFullYear(),y=t.getMonth(),k=new Date(a,y,1),C=new Date(a,y+1,0),S=_-k.getDay(),x=S>0?7-S:-S,T=new Date(k),D=0;x>0&&(T.setDate(-x+1),D+=x),D+=s(a,y+1),D+=(7-D%7)%7;for(var $=r(T,D),A=[],E=0;D>E;E++){var I=new Date($[E]);$[E]=v({date:I,formatDay:b.day,formatHeader:b.dayHeader,isFocused:h(I),isSelected:o(I),isFromDate:l(I),isToDate:c(I),isDateRange:d(I),oldMonth:new Date(I.getFullYear(),I.getMonth(),1,0,0,0).getTime()<new Date(a,y,1,0,0,0).getTime(),newMonth:new Date(I.getFullYear(),I.getMonth(),1,0,0,0).getTime()>new Date(a,y,1,0,0,0).getTime(),isDisabled:w(I),isToday:u(I),isWeakend:p(I)})}for(var P=0;7>P;P++)A[P]=m(n($[P].date,b.dayHeader));return"top"===i?(e.disablePrevTop=g(k,C),e.disableNextTop=f(k,C)):"bottom"===i?(e.disablePrevBottom=g(k,C),e.disableNextBottom=f(k,C)):(e.disablePrevTop=e.disablePrevBottom=g(k,C),e.disableNextTop=e.disableNextBottom=f(k,C)),e.disablePrev=e.disablePrevTop||e.disablePrevBottom,e.disableNext=e.disableNextTop||e.disableNextBottom,{objects:$,title:n(t,b.dayTitle),labels:A}},split:7,step:{months:1}},{name:"month",getVisibleDates:function(e){for(var t=[],i=[],a=e.getFullYear(),s=0;12>s;s++){var r=new Date(a,s,1);t[s]=v({date:r,formatDay:b.month,formatHeader:b.month,isFocused:h(r),isSelected:o(r),isFromDate:l(r),isToDate:c(r),isDateRange:d(r),oldMonth:!1,newMonth:!1,isDisabled:w(r),isToday:u(r),isWeakend:!1})}return{objects:t,title:n(e,b.year),labels:i}},split:3,step:{years:1}}]}]).directive("datepicker",["$timeout",function(e){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/datepicker/datepicker.html",scope:{currentDate:"=?current",fromDate:"=?from"},require:"datepicker",controller:"DatepickerController",link:function(t,n,i,a){function s(e,t){for(var n=[];e.length>0;)n.push(e.splice(0,t));return n}function r(e){if(angular.isDate(e)&&!isNaN(e)?o=new Date(e):o||(o=new Date),o){var n;1===t.mode?(o=new Date,n=d(angular.copy(o),-1)):n=angular.copy(o);var i=l.modes[t.mode],a=i.getVisibleDates(n,"top");t.currentRows=s(a.objects,i.split),t.currentTitle=a.title,t.labels=a.labels||[];var r=i.getVisibleDates(d(angular.copy(n),1),"bottom");t.nextRows=s(r.objects,i.split),t.nextTitle=r.title}}var o,l=a,c=!1;t.focusedDate,t.resetTime=function(e){var n;return isNaN(new Date(e))?null:(n=new Date(e),n=1===t.mode?new Date(n.getFullYear(),n.getMonth()):new Date(n.getFullYear(),n.getMonth(),n.getDate()))},i.min&&t.$parent.$watch(i.min,function(e){t.minDate=e?t.resetTime(e):null,r()}),i.max&&t.$parent.$watch(i.max,function(e){t.maxDate=e?t.resetTime(e):null,r()});var d=function(e,n){var i=l.modes[t.mode].step;return e.setDate(1),e.setMonth(e.getMonth()+n*(i.months||0)),e.setFullYear(e.getFullYear()+n*(i.years||0)),e},p=function(e){var n=new Date(e.getFullYear(),e.getMonth(),e.getDate());t.currentDate=n},u=function(e){var n=new Date(e.getFullYear(),e.getMonth(),e.getDate());t.fromDate=n};t.select=function(e){c=!0,i.from?angular.isDate(t.fromDate)&&angular.isDate(t.currentDate)||(angular.isDate(t.fromDate)?p(e):angular.isDate(t.fromDate)||u(e)):p(e),t.focusedDate=e};var h=function(n,i){u(i),e(function(){c=!0,t.focusedDate=i,p(n)})};t.move=function(e){o=d(angular.copy(o),e),r()},t.$watch("currentDate",function(e){return angular.isDate(e)&&!isNaN(e)&&l.isDisabled(e)?void(t.currentDate=null):i.from&&!isNaN(e)&&!isNaN(t.fromDate)&&l.compare(e,t.fromDate)<0?void h(t.fromDate,e):(c?(r(),c=!1):angular.isDefined(e)&&null!==e?r(e):r(),void(t.focusedDate=void 0))}),t.$watch("fromDate",function(e){if(angular.isDate(e)&&!isNaN(e)&&l.isDisabled(e))return void(t.fromDate=null);if(i.from){if(!isNaN(t.currentDate)&&!isNaN(e)&&l.compare(t.currentDate,e)<0)return void h(e,t.currentDate);c?(r(),c=!1):angular.isDefined(e)&&null!==e?r(e):r()}t.focusedDate=void 0})}}}]).directive("datepickerPopup",["$document","datepickerService","$isElement","$documentBind",function(e,t,n,i){var a=function(a,s,r){t.bindScope(r,a),a.isOpen=!1;var o=a.toggle=function(e){e===!0||e===!1?a.isOpen=e:a.isOpen=!a.isOpen};a.$watch("current",function(){o(!1)});var l=function(t){var i=n(angular.element(t.target),s,e);i||(o(!1),a.$apply())};i.click("isOpen",l,a)};return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/datepicker/datepickerPopup.html",scope:{current:"=current"},compile:function(e,n){var i=e.find("span").eq(1);return i.attr("current","current"),t.setAttributes(n,i),a}}}]).directive("attDatepicker",["$log",function(e){return{restrict:"A",require:"ngModel",scope:{},controller:["$scope","$element","$attrs","$compile","datepickerConfig","datepickerService",function(e,t,n,i,a,s){var r=angular.isDefined(n.dateFormat)?e.$parent.$eval(n.dateFormat):a.dateFormat,o='<div class="sr-focus hidden-spoken" tabindex="-1">the date you selected is {{$parent.current | date : \''+r+"'}}</div>";t.removeAttr("att-datepicker"),t.removeAttr("ng-model"),t.attr("ng-model","$parent.current"),t.attr("aria-describedby","datepicker"),t.attr("format-date",r),t.attr("att-input-deny","[^0-9/-]"),t.attr("maxlength",10),t.attr("readonly","readonly");var l=angular.element("<div></div>");l.attr("datepicker-popup",""),l.attr("current","current"),s.setAttributes(n,l),s.bindScope(n,e),l.html(""),l.append(t.prop("outerHTML")),null===navigator.userAgent.match(/MSIE 8/)&&l.append(o);var c=l.prop("outerHTML");c=i(c)(e),t.replaceWith(c)}],link:function(t,n,i,a){return a?(t.$watch("current",function(e){a.$setViewValue(e)}),void(a.$render=function(){t.current=a.$viewValue})):void e.error("ng-model is required.")}}}]).directive("formatDate",["dateFilter","datepickerService",function(e,t){return{restrict:"A",require:"ngModel",link:function(n,i,a,s){var r="";a.$observe("formatDate",function(e){r=e});var o=function(t){return t?(s.$setValidity("invalidDate",!0),e(t,r)):(s.$setValidity("invalidDate",!1),i.val())},l=function(e){return t.validateDateString(e,r)?(s.$setValidity("invalidDate",!0),new Date(e)):(s.$setValidity("invalidDate",!1),null)};s.$formatters.unshift(o),s.$parsers.unshift(l)}}}]).directive("attDateFilter",["$document","dateFilter","datepickerConfig","datepickerService","$isElement","$documentBind",function(e,t,n,i,a,s){var r=function(r,o,l,c){i.bindScope(l,r),r.selectedOption=n.dateFilter.defaultText,r.showDropdownList=!1,r.showCalendar=!1,r.applyButtonType="disabled",r.currentSelection="";var d=angular.isDefined(l.dateFormat)?r.$parent.$eval(l.dateFormat):n.dateFormat,p=!1,u=function(e){if(!p){var n=d.toUpperCase(),i=d.toUpperCase();isNaN(new Date(r.fromDate))||(n=t(r.fromDate,d)),isNaN(new Date(r.currentDate))||(i=t(r.currentDate,d)),"Custom Single Date"===e?(c.$setValidity("invalidDate",!0),r.maxLength=10,r.selectedOption=i):"Custom Range"===e&&(c.$setValidity("invalidDate",!0),c.$setValidity("invalidDateRange",!0),r.maxLength=21,r.selectedOption=n+"-"+i)}},h=r.clear=function(e){r.fromDate=void 0,r.currentDate=void 0,r.applyButtonType="disabled",e||(c.$setValidity("invalidDate",!0),c.$setValidity("invalidDateRange",!0),u(r.currentSelection))},g=function(){r.showCalendar=!0},f=function(){r.showCalendar=!1,"Custom Single Date"!==r.currentSelection&&"Custom Range"!==r.currentSelection&&h(!0)},m=r.showDropdown=function(e){e===!0||e===!1?r.showDropdownList=e:r.showDropdownList=!r.showDropdownList,r.showDropdownList?("Custom Single Date"===r.currentSelection||"Custom Range"===r.currentSelection)&&g():(r.focusInputButton=!0,f())};r.resetTime=function(e){var t;return isNaN(new Date(e))?null:(t=new Date(e),new Date(t.getFullYear(),t.getMonth(),t.getDate()))},r.getDropdownText=function(){p=!0;var e=r.selectedOption;if("Custom Single Date"===r.currentSelection)!isNaN(new Date(e))&&i.validateDateString(e,d)?(c.$setValidity("invalidDate",!0),r.fromDate=void 0,r.currentDate=new Date(e)):(c.$setValidity("invalidDate",!1),h(!0));else if("Custom Range"===r.currentSelection)if(-1===e.indexOf("-")||2!==e.split("-").length&&6!==e.split("-").length)c.$setValidity("invalidDateRange",!1),h(!0);else{c.$setValidity("invalidDateRange",!0);var t=e.split("-");if(2===t.length)t[0]=t[0].trim(),t[1]=t[1].trim();else if(6===t.length){var n=t[0].trim()+"-"+t[1].trim()+"-"+t[2].trim(),a=t[3].trim()+"-"+t[4].trim()+"-"+t[5].trim();t[0]=n,t[1]=a}if(!isNaN(new Date(t[0]))&&!isNaN(new Date(t[1]))&&i.validateDateString(t[0],d)&&i.validateDateString(t[1],d)){c.$setValidity("invalidDate",!0);var s=new Date(t[0]),o=new Date(t[1]);s.getTime()<o.getTime()?(c.$setValidity("invalidDateRange",!0),r.fromDate=s,r.currentDate=o):(c.$setValidity("invalidDateRange",!1),h(!0))}else c.$setValidity("invalidDate",!1),h(!0)}},r.untrackInputChange=function(){p=!1},r.selectAdvancedOption=function(e,t){r.currentSelection=e,t||(h(),g()),r.$watch("currentDate",function(t){isNaN(new Date(t))||(r.applyButtonType="primary",u(e),p||(r.focusApplyButton=!0))}),r.$watch("fromDate",function(t){isNaN(new Date(t))||u(e)}),"Custom Single Date"===e?r.focusSingleDateCalendar=!0:"Custom Range"===e&&(r.focusRangeCalendar=!0)},r.resetFocus=function(){r.focusSingleDateCalendar=!1,r.focusRangeCalendar=!1,r.focusApplyButton=!1},r.apply=function(){r.dateRange.selection=r.selectedOption,isNaN(new Date(r.fromDate))?(r.from=void 0,r.dateRange.from=void 0):(r.from=r.fromDate,r.dateRange.from=r.fromDate),isNaN(new Date(r.currentDate))?(r.current=void 0,r.dateRange.current=void 0):(r.current=r.currentDate,r.dateRange.current=r.currentDate),m()},r.$watchCollection(function(){return r.dateRange},function(e){if(c){var t=angular.copy(e);c.$setViewValue(t)}}),c.$render=function(){if(c.$viewValue){var e=c.$viewValue;r.selectedOption=e.selection,r.fromDate=e.from,r.currentDate=e.current,void 0!==r.fromDate&&void 0!==r.currentDate?(r.selectAdvancedOption("Custom Range",!0),r.dateRange.from=r.fromDate,r.dateRange.current=r.currentDate):void 0!==r.currentDate&&(r.selectAdvancedOption("Custom Single Date",!0),r.dateRange.from=void 0,r.dateRange.current=r.currentDate)}},r.cancel=function(){r.currentSelection="",r.selectedOption=n.dateFilter.defaultText,m()};var v=function(t){var n=a(angular.element(t.target),o,e);n||(r.cancel(),r.$apply())};s.click("showDropdownList",v,r)};return{restrict:"EA",scope:{from:"=?from",current:"=?current"},replace:!0,require:"?ngModel",transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/datepicker/dateFilter.html",controller:["$scope","$element","$attrs",function(e){e.dateRange={selection:void 0,from:void 0,current:void 0},this.selectOption=function(t,n,i){e.selectedOption=i,e.currentSelection=i,e.dateRange.selection=i,e.dateRange.current=e.resetTime(n),e.dateRange.from=e.resetTime(t),e.showDropdown()},e.checkCurrentSelection=this.checkCurrentSelection=function(t){return t===e.currentSelection?!0:!1}}],compile:function(e,t){var n=e.find("span").eq(4),a=e.find("span").eq(5);return a.attr("from","fromDate"),n.attr("current","currentDate"),a.attr("current","currentDate"),i.setAttributes(t,n),i.setAttributes(t,a),r}}}]).directive("attDateFilterList",function(){return{restrict:"EA",scope:{fromDate:"=fromDate",toDate:"=toDate",caption:"=caption",disabled:"=disabled"},require:"^attDateFilter",transclude:!0,replace:!0,templateUrl:"app/scripts/ng_js_att_tpls/datepicker/dateFilterList.html",link:function(e,t,n,i){e.selectOption=function(e,t,n){i.selectOption(e,t,n)},e.checkCurrentSelection=i.checkCurrentSelection}}}),angular.module("att.abs.devNotes",[]).directive("attDevNotes",function(){return{restrict:"EA",transclude:!0,scope:{},controller:function(e){var t=e.panes=[];e.select=function(e){angular.forEach(t,function(e){e.selected=!1}),e.selected=!0},this.addPane=function(n){0===t.length&&e.select(n),t.push(n)}},template:'<div><ul class="tabs"><li ng-repeat="pane in panes" ng-class="{active:pane.selected}"><a href="javascript:void(0)" ng-click="select(pane)">{{pane.title}}</a></li></ul><div ng-transclude></div></div>',replace:!0}}).directive("pane",function(){return{require:"^attDevNotes",restrict:"EA",transclude:!0,scope:{title:"@"},link:function(e,t,n,i){i.addPane(e)},template:'<div class="tab-pane" ng-class="{active: selected}">'+"<pre ng-class=\"{'language-markup':title=='HTML','language-javascript':title=='JavaScript','language-json':title=='JSON'}\"  class=\" line-numbers\"><code ng-transclude></code></pre></div>",replace:!0}}),angular.module("att.abs.dividerLines",[]).directive("attDividerLines",[function(){return{scope:{attDividerLines:"@"},restrict:"A",replace:!0,templateUrl:"app/scripts/ng_js_att_tpls/dividerLines/dividerLines.html",link:function(e,t,n){e.lightContainer=n.attDividerLines}}}]),angular.module("att.abs.dragdrop",[]).directive("attFileDrop",["$parse",function(e){return{restrict:"A",scope:{fileModel:"=",onDrop:"&",attFileDrop:"&"},controller:["$scope","$attrs",function(e,t){""!==t.attFileDrop&&(e.onDrop=e.attFileDrop),this.onDrop=e.onDrop}],link:function(t,n){n.addClass("dragdrop"),n.bind("dragover",function(e){return e.originalEvent&&(e.dataTransfer=e.originalEvent.dataTransfer),e.dataTransfer.dropEffect="move",e.preventDefault&&e.preventDefault(),n.addClass("dragdrop-over"),!1}),n.bind("dragenter",function(e){return e.preventDefault&&e.preventDefault(),n.addClass("dragdrop-over"),!1}),n.bind("dragleave",function(){return n.removeClass("dragdrop-over"),!1}),n.bind("drop",function(i){return i.preventDefault&&i.preventDefault(),i.stopPropagation&&i.stopPropagation(),i.originalEvent&&(i.dataTransfer=i.originalEvent.dataTransfer),n.removeClass("dragdrop-over"),i.dataTransfer.files&&i.dataTransfer.files.length>0&&(t.fileModel=i.dataTransfer.files[0],t.$apply(),"function"==typeof t.onDrop&&(t.onDrop=e(t.onDrop),t.onDrop())),!1})}}}]).directive("attFileLink",[function(){return{restrict:"EA",require:"^?attFileDrop",replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/dragdrop/fileUpload.html",scope:{fileModel:"=?",onFileSelect:"&",attFileLink:"&"},controller:["$scope","$parse",function(e,t){this.setFileModel=function(t){e.takeFileModelFromParent?(e.$parent.fileModel=t,e.$parent.$apply()):(e.fileModel=t,e.$apply())},this.callbackFunction=function(){"function"==typeof e.onFileSelect&&(e.onFileSelect=t(e.onFileSelect),e.onFileSelect())}}],link:function(e,t,n,i){e.takeFileModelFromParent=!1,!n.fileModel&&i&&(e.takeFileModelFromParent=!0),""!==n.attFileLink?e.onFileSelect=e.attFileLink:!n.onFileSelect&&i&&(e.onFileSelect=i.onDrop)}}}]).directive("attFileChange",["$log","$rootScope",function(e,t){return{restrict:"A",require:"^attFileLink",link:function(n,i,a,s){function r(n){if(n.target.files&&n.target.files.length>0)s.setFileModel(n.target.files[0]),s.callbackFunction();else{var i=n.target.value;try{var a=new ActiveXObject("Scripting.FileSystemObject");s.setFileModel(a.getFile(i)),s.callbackFunction()}catch(n){var r="Error: Please follow the guidelines of Drag and Drop component on Sandbox demo page.";e.error(r),t.$broadcast("att-file-link-failure",r)}}}i.bind("change",r)}}}]),angular.module("att.abs.drawer",["att.abs.utilities"]).directive("attDrawer",["$document","$timeout","DOMHelper",function(e,t,n){return{restrict:"EA",replace:!0,transclude:!0,scope:{drawerOpen:"=?",drawerAutoClose:"&?"},template:'<div><div class="att-drawer" ng-transclude></div><div ng-class="{\'drawer-backdrop\':drawerOpen}"></div></div>',link:function(e,i,a){function s(t,n){t&&0!==t.style.width&&0!==t.style.height&&(u.style.display="none","right"===n.side||"left"===n.side?t.style.width="0px":("top"===n.side||"bottom"===n.side)&&(t.style.height="0px")),e.drawerOpen=!1,angular.isDefined(d)&&null!=d&&d.focus()}function r(e,n){d=document.activeElement,0!==e.style.width&&0!==e.style.height&&("right"===n.side||"left"===n.side?e.style.width=n.size:("top"===n.side||"bottom"===n.side)&&(e.style.height=n.size),t(function(){u.style.display="block",angular.isDefined(c)&&null!=c&&c.focus()},1e3*n.speed))}function o(e){var t={};return e&&"[object Function]"===t.toString.call(e)}var l={},c=void 0,d=void 0;l.side=a.drawerSlide||"top",l.speed=a.drawerSpeed||"0.25",l.size=a.drawerSize||"300px",l.zindex=a.drawerZindex||1e3,l.className=a.drawerClass||"att-drawer";var p=i.eq(0).children()[0],u=angular.element(p).children()[0];p.className=l.className,p.style.transitionDuration=l.speed+"s",p.style.webkitTransitionDuration=l.speed+"s",p.style.zIndex=l.zindex,p.style.position="fixed",p.style.width=0,p.style.height=0,p.style.transitionProperty="width, height","right"===l.side?(p.style.height=a.drawerCustomHeight||"100%",p.style.top=a.drawerCustomTop||"0px",p.style.bottom=a.drawerCustomBottom||"0px",p.style.right=a.drawerCustomRight||"0px"):"left"===l.side?(p.style.height=a.drawerCustomHeight||"100%",p.style.top=a.drawerCustomTop||"0px",p.style.bottom=a.drawerCustomBottom||"0px",p.style.left=a.drawerCustomRight||"0px"):("top"===l.side||"bottom"===l.side)&&(p.style.width=a.drawerCustomWidth||"100%",p.style.left=a.drawerCustomLeft||"0px",p.style.top=a.drawerCustomTop||"0px",p.style.right=a.drawerCustomRight||"0px"),t(function(){c=n.firstTabableElement(i[0])},10,!1),a.drawerSize&&e.$watch(function(){return a.drawerSize},function(t){l.size=t,e.drawerOpen&&r(p,l)}),e.$watch("drawerOpen",function(e){e?r(p,l):s(p,l)}),e.drawerAutoClose()&&(e.$on("$locationChangeStart",function(){s(p,l),o(e.drawerAutoClose())&&e.drawerAutoClose()}),e.$on("$stateChangeStart",function(){s(p,l),o(e.drawerAutoClose)&&e.drawerAutoClose()}))}}}]),angular.module("att.abs.message",[]).directive("attMessages",[function(){return{restrict:"EA",scope:{messageType:"=?"},controller:["$scope","$element","$attrs",function(e,t,n){e.messageScope=[],this.registerScope=function(t){e.messageScope.push(t)},e.$parent.$watchCollection(n["for"],function(t){for(var n in t){if(t[n]){e.error=n;break}e.error=null}for(var i=0;i<e.messageScope.length;i++)e.messageScope[i].when===e.error?(e.messageScope[i].show(),e.setMessageType(e.messageScope[i].type)):e.messageScope[i].hide();null===e.error&&e.setMessageType(null)}),e.setMessageType=this.setMessageType=function(t){n.messageType&&(e.messageType=t)}}]}}]).directive("attMessage",[function(){return{restrict:"EA",scope:{},require:"^attMessages",link:function(e,t,n,i){i.registerScope(e),t.attr("role","alert"),e.when=n.when||n.attMessage,e.type=n.type,e.show=function(){t.css({display:"block"})},e.hide=function(){t.css({display:"none"})},e.hide()}}}]),angular.module("att.abs.formField",["att.abs.message","att.abs.utilities"]).directive("attFormField",[function(){return{priority:101,restrict:"A",controller:function(){},link:function(e,t,n){t.wrap('<div class="form-field"></div>'),t.parent().append('<label class="form-field__label">'+n.placeholder||n.attFormField+"</label>"),t.wrap('<div class="form-field-input-container"></div>'),t.bind("keyup",function(){""!==this.value?t.parent().parent().find("label").addClass("form-field__label--show").removeClass("form-field__label--hide"):t.parent().parent().find("label").addClass("form-field__label--hide").removeClass("form-field__label--show")}),t.bind("blur",function(){""===this.value&&t.parent().parent().find("label").removeClass("form-field__label--hide")})}}}]).directive("attFormFieldValidation",["$compile","$log",function(e,t){return{priority:102,scope:{},restrict:"A",require:["?ngModel","?attFormField"],link:function(n,i,a,s){var r=s[0],o=s[1];return n.valid="",r?o?(i.parent().append(e(angular.element('<i class="icon-info-alert error" ng-show="valid===false">&nbsp;</i>'))(n)),i.parent().append(e(angular.element('<i class="icon-info-success success" ng-show="valid===true">&nbsp;</i>'))(n)),n.$watch("valid",function(e){e?i.parent().parent().addClass("success"):e===!1?i.parent().parent().addClass("error"):i.parent().parent().removeClass("success").removeClass("error")}),void i.bind("keyup",function(){r.$valid?n.valid=!0:r.$invalid?n.valid=!1:n.valid="",n.$apply()})):void t.error("att-form-field-validation :: att-form-field directive is required."):void t.error("att-form-field-validation :: ng-model directive is required.")}}}]).directive("attFormFieldValidationAlert",["$timeout",function(e){return{scope:{messageType:"=?"},restrict:"EA",replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/formField/attFormFieldValidationAlert.html",link:function(t,n,i,a){t.showLabel=!1,t.hideLabel=!1,t.errorMessage=!1,t.warningMessage=!1;var s=function(){var e=t.messageType;"error"===e?(t.errorMessage=!0,t.warningMessage=!1):"warning"===e?(t.errorMessage=!1,t.warningMessage=!0):(t.errorMessage=!1,t.warningMessage=!1)},r=-1!==navigator.userAgent.toLowerCase().indexOf("msie 8.0");n.find("label").text(n.find("input").attr("placeholder")),n.find("input").bind("keyup",function(){""!==this.value?(t.showLabel=!0,t.hideLabel=!1,r&&n.find("label").css({top:"-20px"})):(t.showLabel=!1,t.hideLabel=!0,r&&n.find("label").css({top:"0px"})),s(),t.$apply()}),n.find("input").bind("blur",function(){""===this.value&&(t.showLabel=!1,t.hideLabel=!1),t.$apply()}),e(function(){s()},100)}}}]).constant("CoreFormsUiConfig",{phoneMask:"(___) ___-____"}).directive("attPhoneMask",["$parse","CoreFormsUiConfig",function(e,t){return{require:"ngModel",scope:{ngModel:"="},link:function(e,n,i,a){var s=navigator.userAgent.toLowerCase(),r=s.indexOf("android")>-1,o=(-1!==s.indexOf("msie 8.0"),""),l=!1;o=r?"__________":t.phoneMask,n.attr("maxlength",o.length);var c=function(e){var t=!1;return e&&(t=10===e.length),a.$setValidity("invalidPhoneNumber",l),a.$setValidity("mask",t),t},d=function(){var e,t=a.$modelValue;if(t.length){var n,i,s,r,l;for(r=[],s=o.split(""),l=s.length,n=t.substring(0,o.length),i=t.replace(/[^0-9]/g,"").split(""),e=0;l>e&&(r.push("_"===s[e]?i.shift():s[e]),0!==i.length);e++);return t=r.join(""),"("===t&&(t=""),a.$setViewValue(t),a.$render(),t}},p=function(t){t.which&&((t.which<48||t.which>57)&&(t.which<96||t.which>105)?8===t.which||9===t.which||46===t.which||13===t.which||37===t.which||39===t.which||t.ctrlKey===!0||"118"===t.which&&"86"===t.which||t.ctrlKey===!0||"99"===t.which&&"67"===t.which||t.ctrlKey===!0||"120"===t.which&&"88"===t.which||(t.preventDefault?t.preventDefault():t.returnValue=!1,n.attr("aria-label","Only numbers are allowed"),l=!1):(n.removeAttr("aria-label"),l=!0)),e.$apply()},u=function(e){var t=/^[A-Za-z]+$/,n=/^[0-9]+$/;e.match(t)&&(l=!1),e.match(n)&&(l=!0);var i="";return e&&e.length>0&&(i=e.replace(/[^0-9]/g,"")),c(i),i},h=function(e){var t="";return c(e),e&&(t=d()),t};a.$parsers.push(u),a.$formatters.push(h),n.bind("keyup",d),n.bind("keydown",p),n.bind("input",function(e){d(e),p(e)})}}}]).constant("validationTypeInt",{validationNum:{number:"1",text:"2",email:"3"}}).directive("attFormFieldPrv",["keyMapAc","validationTypeInt",function(e,t){return{priority:101,restrict:"AE",controller:["$scope",function(n){this.showHideErrorMessage=function(e){null!=n.$$prevSibling&&angular.isDefined(n.$$prevSibling)&&angular.isDefined(n.$$prevSibling.hideErrorMsg)&&(n.$$prevSibling.hideErrorMsg=e,n.$apply())},this.findAllowedCharactor=function(t){var i=e.keys;if(angular.isDefined(n.allowedSpecialCharacters)&&angular.isDefined(n.allowedSpecialCharacters.length)&&n.allowedSpecialCharacters.length>0){for(var a=n.allowedSpecialCharacters,s=!1,r=0;r<a.length;r++)if(a[r]===i[t]){s=!0;break}return s}return!1},this.validateText=function(e,t,n,i){if(angular.isDefined(t)&&0===t.length){var a=/^[a-zA-Z0-9]*$/i;return a.test(n)}var s="^[a-zA-Z0-9"+i+"]*$",r=new RegExp(s,"i");return r.test(n)},this.validateNumber=function(e,t,n,i){if(angular.isDefined(t)&&0===t.length){var a=/^[0-9\.]+$/;return a.test(n)}var s="^[0-9."+i+"]*$",r=new RegExp(s,"i");return r.test(n)},this.validateEmail=function(e,t,n,i){if(angular.isDefined(t)&&0===t.length){var a=/(([a-zA-Z0-9\-?\.?]+)@(([a-zA-Z0-9\-_]+\.)+)([a-z]{2,3}))+$/;return a.test(n)}var s="(([a-z"+i+"A-Z0-9-?.?]+)@(([a-z"+i+"A-Z0-9-_]+.)+)(["+i+"a-z]{2,3}))+$",r=new RegExp(s,"i");return r.test(n)},this.validateInput=function(e,n,i){var a="",s=!1;if(angular.isDefined(n)&&angular.isDefined(n.length)&&n.length>0)for(var r=0;r<n.length;r++)a+="\\"+n[r];switch(t.validationNum[e]){case t.validationNum.text:s=this.validateText(e,n,i,a);break;case t.validationNum.number:s=this.validateNumber(e,n,i,a);break;case t.validationNum.email:s=this.validateEmail(e,n,i,a)}return s}}],link:function(e,t,n){t.parent().prepend('<label class="form-field__label">'+n.placeholder+"</label>"),t.wrap('<div class="form-field-input-container"></div>'),t.parent().parent().find("label").addClass("form-field__label--show")}}}]).directive("attFormFieldValidationPrv",["keyMapAc","validationTypeInt",function(e,t){return{priority:202,scope:{validationType:"=",allowedChars:"="},restrict:"A",require:["?ngModel","^attFormFieldPrv"],link:function(n,i,a,s){var r=s[1];i.bind("keyup",function(){r.validateInput(n.validationType,n.allowedChars,i[0].value)?r.showHideErrorMessage(!1):r.showHideErrorMessage(!0)});var o=e.keyRange,l=e.allowedKeys,c=function(e,t){var n=t.which<o.startNum||t.which>o.endNum,i=t.which<o.startCapitalLetters||t.which>o.endCapitalLetters,a=t.which<o.startSmallLetters||t.which>o.endSmallLetters,s=n&&i&&a;return s&&!e},d=function(e,t){return(t.which<o.startNum||t.which>o.endNum)&&!e},p=function(e,t){var n="-"!==String.fromCharCode(t.which)&&"_"!==String.fromCharCode(t.which),i="@"!==String.fromCharCode(t.which)&&"."!==String.fromCharCode(t.which),a=n&&i,s=c(e,t);return!e&&a&&s},u=function(e,n,i){switch(e){case t.validationNum.text:if(c(n,i))return!0;break;case t.validationNum.number:if(d(n,i))return!0;break;case t.validationNum.email:if(p(n,i))return!0}return!1};i.bind("keypress",function(e){e.which||(e.keyCode?e.which=e.keyCode:e.charCode&&(e.which=e.charCode));var i=r.findAllowedCharactor(e.which),a=angular.isDefined(n.validationType)&&""!==n.validationType,s=e.which!==l.TAB&&e.which!==l.BACKSPACE&&e.which!==l.DELETE,o=a&&s;o&&u(t.validationNum[n.validationType],i,e)&&e.preventDefault()})}}}]).directive("attFormFieldValidationAlertPrv",[function(){return{restrict:"A",scope:{errorMessage:"="},transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/formField/attFormFieldValidationAlertPrv.html",link:function(e){e.errorMessage=e.errorMessage,angular.isDefined(e.$parent.hideErrorMsg)?e.hideErrorMsg=e.$parent.hideErrorMsg:e.hideErrorMsg=!0}}}]).factory("Cards",[function(){var e=/(\d{1,4})/g,t=/(?:^|\s)(\d{4})$/,n=[{type:"discover",pattern:/^(6011|65|64[4-9]|622)/,format:e,inputFormat:t,length:[16],cvcLength:[3],cvcSecurityImg:"visaI",zipLength:[5],luhn:!0},{type:"mc",pattern:/^5[1-5]/,format:e,inputFormat:t,length:[16],cvcLength:[3],cvcSecurityImg:"visaI",zipLength:[5],luhn:!0},{type:"amex",pattern:/^3[47]/,format:/(\d{1,4})(\d{1,6})?(\d{1,5})?/,inputFormat:/^(\d{4}|\d{4}\s\d{6})$/,length:[15],cvcLength:[4],cvcSecurityImg:"amexI",zipLength:[5],luhn:!0},{type:"visa",pattern:/^4/,\r
+format:e,inputFormat:t,length:[16],cvcLength:[3],cvcSecurityImg:"visaI",zipLength:[5],luhn:!0}],i=function(e){var t,i,a;for(e=(e+"").replace(/\D/g,""),i=0,a=n.length;a>i;i++)if(t=n[i],t.pattern.test(e))return t},a=function(e){var t,i,a;for(i=0,a=n.length;a>i;i++)if(t=n[i],t.type===e)return t};return{fromNumber:function(e){return i(e)},fromType:function(e){return a(e)},defaultFormat:function(){return e},defaultInputFormat:function(){return t}}}]).factory("_Validate",["Cards","$parse",function(e,t){var n=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1},i=function(e){var t,n,i,a,s,r;for(i=!0,a=0,n=(e+"").split("").reverse(),s=0,r=n.length;r>s;s++)t=n[s],t=parseInt(t,10),(i=!i)&&(t*=2),t>9&&(t-=9),a+=t;return a%10===0},a={};return a.cvc=function(i,a,s,r){var o,l;if(angular.isUndefined(i)||null===i||0===i.length)return!0;if(!/^\d+$/.test(i))return!1;var c;if(r.paymentsTypeModel){var d=t(r.paymentsTypeModel);c=d(s)}return c?(l=e.fromType(c),o=i.length,n.call(null!==l?l.cvcLength:void 0,o)>=0):i.length>=3&&i.length<=4},a.zip=function(i,a,s,r){var o,l;if(angular.isUndefined(i)||null===i||0===i.length)return!0;if(!/^\d+$/.test(i))return!1;var c;if(r.paymentsTypeModel){var d=t(r.paymentsTypeModel);c=d(s)}return c?(l=e.fromType(c),o=i.length,n.call(null!==l?l.zipLength:void 0,o)>=0):i.length<6},a.card=function(a,s,r,o){var l,c,d;o.paymentsTypeModel&&(d=t(o.paymentsTypeModel));var p=function(){d&&d.assign(r,null),s.$card=null};return angular.isUndefined(a)||null===a||0===a.length?(p(),!0):(a=(a+"").replace(/\s+|-/g,""),/^\d+$/.test(a)&&(l=e.fromNumber(a))?(s.$card=angular.copy(l),d&&d.assign(r,l.type),ret=(c=a.length,n.call(l.length,c)>=0&&(l.luhn===!1||i(a))),ret):(p(),!1))},function(e,t,n,i,s){if(!a[e])throw types=Object.keys(a),errstr='Unknown type for validation: "'+e+'". ',errstr+='Should be one of: "'+types.join('", "')+'"',errstr;return a[e](t,n,i,s)}}]).factory("_ValidateWatch",["_Validate",function(e){var t={};return t.cvc=function(t,n,i,a){a.paymentsTypeModel&&i.$watch(a.paymentsTypeModel,function(s,r){if(s!==r){var o=e(t,n.$modelValue,n,i,a);n.$setValidity(t,o)}})},t.zip=function(t,n,i,a){a.paymentsTypeModel&&i.$watch(a.paymentsTypeModel,function(s,r){if(s!==r){var o=e(t,n.$modelValue,n,i,a);n.$setValidity(t,o)}})},function(e,n,i,a){return t[e]?t[e](e,n,i,a):void 0}}]).directive("validateCard",["$window","_Validate","_ValidateWatch",function(e,t,n){return{restrict:"A",require:"ngModel",link:function(e,i,a,s){var r=a.validateCard;n(r,s,e,a);var o=function(n){var o=t(r,n,s,e,a);return s.$setValidity(r,o),"card"===r&&(null===s.$card?null==n||""===n||""===n?(e.invalidCardError="",e.invalidCard=""):n.length>=1&&(e.invalidCardError="error",e.invalidCard="The number entered is not a recognized credit card number."):o?(e.invalidCardError="",e.invalidCard=""):s.$card.length.indexOf(n.length)>=0?(e.invalidCardError="error",e.invalidCard="The number entered is not a recognized credit card number."):(e.invalidCardError="",e.invalidCard=""),i.bind("blur",function(){o&&null!==s.$card?(e.invalidCardError="",e.invalidCard=""):(e.invalidCardError="error",e.invalidCard="The number entered is not a recognized credit card number.")})),o?n:void 0};s.$formatters.push(o),s.$parsers.push(o)}}}]).directive("creditCardImage",function(){return{templateUrl:"app/scripts/ng_js_att_tpls/formField/creditCardImage.html",replace:!1,transclude:!1,link:function(e,t,n){e.$watch(n.creditCardImage,function(t,n){t!==n&&(e.cvc="",angular.isUndefined(t)||null===t||(e.newValCCI="show-"+t),null===t&&(e.newValCCI=""))})}}}).directive("securityCodeImage",["$document",function(e){return{templateUrl:"app/scripts/ng_js_att_tpls/formField/cvcSecurityImg.html",replace:!1,transclude:!1,link:function(t,n,i){t.$watch(i.securityCodeImage,function(e,n){e!==n&&(angular.isUndefined(e)||null===e||("amexI"===e?(t.newValI="ccv2-security-amex",t.newValIAlt="The 4 digit CVC security code is on the front of the card.",t.cvcPlaceholder="4 digits",t.cvcMaxlength=4):"visaI"===e&&(t.newValI="ccv2-security",t.newValIAlt="The CVC security code is on the back of your card right after the credit card number.",t.cvcPlaceholder="3 digits",t.cvcMaxlength=3)),null===e&&(t.newValI="ccv2-security",t.cvcPlaceholder="3 digits",t.cvcMaxlength=3,t.newValIAlt="The CVC security code is on the back of your card right after the credit card number."))}),n.bind("click",function(e){e.preventDefault(),n.find("button").hasClass("active")?n.find("button").removeClass("active"):n.find("button").addClass("active")});var a=angular.element(e);a.bind("click",function(e){var t=e.target.className;"btn btn-alt btn-tooltip active"!==t&&n.find("button").hasClass("active")&&n.find("button").removeClass("active")})}}}]),angular.module("att.abs.hourpicker",["att.abs.utilities"]).constant("hourpickerConfig",{days:["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],customOption:"Custom"}).controller("hourPickerController",["$scope",function(e){e.options=[],this.setOptions=function(t,n,i,a,s,r){e.options.push(t),void 0!==a&&(e.preselect=a);var o;if(void 0!==n){e.fromtime=n;for(o in e.days)e.days.hasOwnProperty(o)&&(e.FrtimeList[e.days[o]]={},void 0!==s?(e.FrtimeList[e.days[o]].value=s,e.selectedFromOption[e.days[o]]=s):(e.FrtimeList[e.days[o]].value=n[0].value,e.selectedFromOption[e.days[o]]=n[0].value))}if(void 0!==i){e.totime=i;for(o in e.days)e.days.hasOwnProperty(o)&&(e.TotimeList[e.days[o]]={},void 0!==r?(e.TotimeList[e.days[o]].value=r,e.selectedToOption[e.days[o]]=r):(e.TotimeList[e.days[o]].value=i[0].value,e.selectedToOption[e.days[o]]=i[0].value),e.showToTimeErrorDay[e.days[o]]=!1)}void 0!==s&&(e.uncheckedFromTime=s),void 0!==r&&(e.uncheckedToTime=r)},this.getSelectedOption=function(){return e.selectedOption},this.setToTimeErrorDay=function(t,n){e.showToTimeErrorDay[t]=n}}]).directive("attHourpickerOption",[function(){return{restrict:"EA",require:"^attHourpicker",scope:{option:"=option",fromtime:"=fromtime",totime:"=totime",preselect:"=preselect",uncheckedFromTime:"=",uncheckedToTime:"="},link:function(e,t,n,i){i.setOptions(e.option,e.fromtime,e.totime,e.preselect,e.uncheckedFromTime,e.uncheckedToTime)}}}]).directive("attHourpicker",["hourpickerConfig","$document","$log","$documentBind","$timeout",function(e,t,n,i,a){return{require:"ngModel",restrict:"EA",controller:"hourPickerController",transclude:!0,scope:{model:"=ngModel",resetFlag:"=?"},templateUrl:"app/scripts/ng_js_att_tpls/hourpicker/hourpicker.html",link:function(t,n,s,r){var o=!1;t.isFromDropDownOpen=!1,t.isToDropDownOpen=!1;var l="",c={};t.days=e.days,t.daysList={},t.FrtimeList={},t.FrtimeListDay={},t.TotimeListDay={},t.selectedFromOption={},t.selectedToOption={},t.TotimeList={},t.selectedIndex=0,t.selectedOption="Select from list",t.customTime=[],t.resetFlag=!1,t.showToTimeErrorDay={},t.validatedCustomPreselect=[],t.$watch("resetFlag",function(n,i){if(n!==i){if(n&&t.selectedOption===e.customOption){for(day in t.daysList)t.daysList.hasOwnProperty(day)&&(t.daysList[day]=!1,t.addSelectedValue(day));t.preselectUpdateFxn(t.preselect)}t.resetFlag=!1}}),t.$watch("selCategory",function(e){e&&r.$setViewValue(e)},!0),t.updateData=function(n){if(n.constructor===Array){t.showDaysSelector=!0,t.selectedOption=e.customOption;for(var i in n)if(n.hasOwnProperty(i)){var a=n[i].day;"boolean"==typeof n[i].preEnabled&&n[i].preEnabled?t.daysList[a]=!0:t.daysList[a]=!1;for(var s in t.fromtime)t.fromtime[s].value!==n[i].FromTime||t.uncheckedFromTime||(t.FrtimeList[a].value=t.fromtime[s].value,t.selectedFromOption[a]=t.FrtimeList[a].value);for(var r in t.totime)t.totime[r].value!==n[i].ToTime||t.uncheckedToTime||(t.TotimeList[a].value=t.totime[r].value,t.selectedToOption[a]=t.TotimeList[a].value);if(t.addSelectedValue(a,n[i].FromTime,n[i].ToTime),parseInt(i)+1===n.length)break}}else t.selectOption(n.day)},t.$watch("preselect",function(e){t.preselectUpdateFxn(e)}),t.preselectUpdateFxn=function(e){if(void 0!==e){if(t.options&&(e=t.validatePreselectData(e)),""===e)return;t.updateData(e)}},t.validatePreselectData=function(e){if(e.constructor===Array){for(var n in e)if(e.hasOwnProperty(n)){var i=e[n].day,a=!1,s=!1,r=!1;for(var o in t.days)if(t.days[o]===i){a=!0;break}if(!a){e.splice(n,1);continue}for(var l in t.fromtime)if(t.fromtime[l].value===e[n].FromTime){s=!0;break}s||(e[n].FromTime=t.fromtime[0].value);for(var c in t.totime)if(t.totime[c].value===e[n].ToTime){r=!0;break}if(r||(e[n].ToTime=t.totime[0].value),"boolean"==typeof e[n].preEnabled&&e[n].preEnabled?e[n].preEnabled=!0:e[n].preEnabled=!1,t.validatedCustomPreselect[i]={},t.validatedCustomPreselect[i].FromTime=e[n].FromTime,t.validatedCustomPreselect[i].ToTime=e[n].ToTime,parseInt(n)+1===e.length)break}}else{var d=!1;for(var p in t.options)if(t.options[p]===e.day){d=!0;break}d||(e="")}return e},t.selectPrevNextValue=function(e,t,n){var i,a=0;if(38===e.keyCode)i=-1;else{if(40!==e.keyCode)return n;i=1}if(-1!==t.indexOf(n))a=t.indexOf(n)+i;else for(var s in t)if(t[s].value===n){a=parseInt(s)+i;break}return a===t.length?a-=1:-1===a&&(a+=1),e.preventDefault(),t[a].value?t[a].value:t[a]},t.showDropdown=function(){t.showlist=!t.showlist,o=!o},t.showfromDayDropdown=function(e){for(count in t.FrtimeListDay)count!==e&&t.FrtimeListDay[count]&&(t.FrtimeListDay[count]=!1);for(count in t.TotimeListDay)t.TotimeListDay[count]&&(t.TotimeListDay[count]=!1);t.FrtimeListDay[e]=!t.FrtimeListDay[e],o=!o,t.showlist=!1,t.FrtimeListDay[e]?(t.isFromDropDownOpen=!0,l=e):t.isFromDropDownOpen=!1,a(function(){if(t.FrtimeListDay[e]){var i=angular.element(n)[0].querySelector(".customdays-width"),a=angular.element(i.querySelector(".select2-container-active")).parent()[0].querySelector("ul"),s=angular.element(a.querySelector(".selectedItemInDropDown"))[0].offsetTop;angular.element(a)[0].scrollTop=s}})},t.showtoDayDropdown=function(e){for(count in t.TotimeListDay)count!==e&&t.TotimeListDay[count]&&(t.TotimeListDay[count]=!1);for(count in t.FrtimeListDay)t.FrtimeListDay[count]&&(t.FrtimeListDay[count]=!1);t.TotimeListDay[e]=!t.TotimeListDay[e],o=!o,t.showlist=!1,t.TotimeListDay[e]?(t.isToDropDownOpen=!0,l=e):t.isToDropDownOpen=!1,a(function(){if(t.TotimeListDay[e]){var i=angular.element(n)[0].querySelector(".customdays-width"),a=angular.element(i.querySelector(".select2-container-active")).parent()[0].querySelector("ul"),s=angular.element(a.querySelector(".selectedItemInDropDown"))[0].offsetTop;angular.element(a)[0].scrollTop=s}})},t.selectFromDayOption=function(e,n){t.selectedFromOption[e]=n,t.FrtimeList[e].value=n,t.FrtimeListDay[e]=!1,t.isFromDropDownOpen=!1},t.selectToDayOption=function(e,n){t.selectedToOption[e]=n,t.TotimeList[e].value=n,t.TotimeListDay[e]=!1,t.isToDropDownOpen=!1},t.addSelectedValue=function(e,n,i){var a,s;if(void 0===t.daysList[e]||t.daysList[e]){for(t.selectedFromOption[e]===t.uncheckedFromTime&&(angular.isDefined(t.validatedCustomPreselect[e])?(t.selectedFromOption[e]=t.validatedCustomPreselect[e].FromTime,n=t.validatedCustomPreselect[e].FromTime,t.FrtimeList[e].value=t.validatedCustomPreselect[e].FromTime):(t.selectedFromOption[e]=t.fromtime[0].value,n=t.fromtime[0].value,t.FrtimeList[e].value=t.fromtime[0].value)),t.selectedToOption[e]===t.uncheckedToTime&&(angular.isDefined(t.validatedCustomPreselect[e])?(t.selectedToOption[e]=t.validatedCustomPreselect[e].ToTime,i=t.validatedCustomPreselect[e].ToTime,t.TotimeList[e].value=t.validatedCustomPreselect[e].ToTime):(t.selectedToOption[e]=t.totime[0].value,i=t.totime[0].value,t.TotimeList[e].value=t.totime[0].value)),c.day=e,c.FromTime=t.FrtimeList[e].value,c.ToTime=t.TotimeList[e].value,a=0,s=t.customTime.length;s>a;a++)if(t.customTime[a].day===e){t.customTime[a].FromTime=c.FromTime,t.customTime[a].ToTime=c.ToTime;break}if(a===s){var r=angular.copy(c);t.customTime.push(r)}}else for(a=0,s=t.customTime.length;s>a;a++)if(t.customTime[a].day===e){t.uncheckedFromTime?t.selectedFromOption[t.customTime[a].day]=t.uncheckedFromTime:t.selectedFromOption[t.customTime[a].day]=t.FrtimeList[t.customTime[a].day].value,t.uncheckedToTime?t.selectedToOption[t.customTime[a].day]=t.uncheckedToTime:t.selectedToOption[t.customTime[a].day]=t.TotimeList[t.customTime[a].day].value,t.customTime.splice(a,1);break}t.selCategory=t.customTime};var d=function(){t.showlist&&t.$apply(function(){t.showlist=!1})};i.click("showlist",d,t);var p=function(){t.$apply(function(){t.isFromDropDownOpen&&(t.FrtimeListDay[l]=!1,t.isFromDropDownOpen=!1)})};i.click("isFromDropDownOpen",p,t);var u=function(){t.$apply(function(){t.isToDropDownOpen&&(t.TotimeListDay[l]=!1,t.isToDropDownOpen=!1)})};i.click("isToDropDownOpen",u,t),t.selectOption=function(n){if(n===e.customOption)t.showDaysSelector=!0,t.selCategory=t.customTime;else{t.showDaysSelector=!1;var i=/[0-9]\s?am/i.exec(n),a=/[0-9]\s?pm/i.exec(n);t.selCategory={day:n,FromTime:null===i?"NA":i[0],ToTime:null===a?"NA":a[0]}}t.showlist=!1,o=!1,t.selectedOption=n}}}}]).directive("attHourpickerValidator",["hourpickerConfig",function(e){return{restrict:"A",require:["attHourpicker","ngModel"],link:function(t,n,i,a){var s=a[0],r=a[1],o=function(e){var t=Number(e.match(/^(\d+)/)[1]),n=Number(e.match(/:(\d+)/)[1]),i=e.match(/\s(.*)$/)[1].toUpperCase();"PM"===i&&12>t&&(t+=12),"AM"===i&&12===t&&(t-=12);var a=t.toString(),s=n.toString();return 10>t&&(a="0"+a),10>n&&(s="0"+s),parseInt(a+s,10)},l=function(e,t){var n=o(e),i=o(t);return i-n},c=function(t){if(s.getSelectedOption()===e.customOption){var n=0;for(var i in t)t.hasOwnProperty(i)&&(l(t[i].FromTime,t[i].ToTime)<=0?(s.setToTimeErrorDay(t[i].day,!0),n++):s.setToTimeErrorDay(t[i].day,!1));return n>0?(r.$setValidity("validationStatus",!1),[]):(r.$setValidity("validationStatus",!0),t)}return r.$setValidity("validationStatus",!0),t};r.$parsers.unshift(c)}}}]),angular.module("att.abs.iconButtons",[]).constant("buttonConfig",{activeClass:"active--button",toggleEvent:"click"}).directive("attIconBtnRadio",["buttonConfig",function(e){var t=e.activeClass||"active--button",n=e.toggleEvent||"click";return{require:"ngModel",link:function(e,i,a,s){i.attr("tabindex","0"),i.append("<span class='hidden-spoken'>"+a.attIconBtnRadio+"</span>"),s.$render=function(){i.parent().toggleClass(t,angular.equals(s.$modelValue,a.attIconBtnRadio))},i.parent().bind(n,function(){i.parent().hasClass(t)||e.$apply(function(){s.$setViewValue(a.attIconBtnRadio),s.$render()})})}}}]).directive("attIconBtnCheckbox",["buttonConfig",function(e){var t=e.activeClass||"active--button",n=e.toggleEvent||"click";return{require:"ngModel",link:function(e,i,a,s){function r(){var t=e.$eval(a.btnCheckboxTrue);return angular.isDefined(t)?t:!0}function o(){var t=e.$eval(a.btnCheckboxFalse);return angular.isDefined(t)?t:!1}i.attr("tabindex","0"),i.append("<span class='hidden-spoken'>"+a.attIconBtnCheckbox+"</span>"),s.$render=function(){i.parent().toggleClass(t,angular.equals(s.$modelValue,r()))},i.parent().bind(n,function(){e.$apply(function(){s.$setViewValue(i.parent().hasClass(t)?o():r()),s.$render()})})}}}]),angular.module("att.abs.links",["ngSanitize"]).directive("attLink",[function(){return{restrict:"A",link:function(e,t){t.addClass("link"),t.attr("href")||t.attr("tabindex","0")}}}]).directive("attLinkVisited",[function(){return{restrict:"A",link:function(e,t){t.addClass("link--visited"),t.attr("href")||t.attr("tabindex","0")}}}]).directive("attReadmore",["$timeout",function(e){return{restrict:"A",scope:{lines:"@noOfLines",textModel:"=",isOpen:"="},templateUrl:"app/scripts/ng_js_att_tpls/links/readMore.html",link:function(t,n){var i=1;t.$watch("textModel",function(a){a?("function"!=typeof String.prototype.trim&&(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),t.textToDisplay=a.trim(),t.readFlag=!0,e(function(){var e=n[0].children[0].children[0];1===i&&(i=window.getComputedStyle?parseInt(t.lines)*parseFloat(window.getComputedStyle(e,null).getPropertyValue("height")):parseInt(t.lines)*parseFloat(e.currentStyle.height),t.elemHeight=i,t.readLinkStyle={height:t.elemHeight+"px"})}),t.readMoreLink=!0,t.readLessLink=!1):(t.textToDisplay="",t.readMoreLink=!1,t.readLessLink=!1,t.readFlag=!1)});var a=n.parent();a.hasClass("att-accordion__body")&&t.$watch("isOpen",function(e){e||(t.readMoreLink=!0,t.readLessLink=!1,t.readLinkStyle={height:t.elemHeight+"px"},t.readFlag=!0)}),t.readMore=function(){t.readMoreLink=!1,t.readLessLink=!0,t.readLinkStyle={height:"auto"},t.readFlag=!1;var i=angular.element(n).children().eq(1).find("a")[0];e(function(){i.focus()})},t.readLess=function(){t.readMoreLink=!0,t.readLessLink=!1,t.readLinkStyle={height:t.elemHeight+"px"},t.readFlag=!0;var i=angular.element(n).children().eq(0).find("a")[0];e(function(){i.focus()})}}}}]).directive("attLinksList",[function(){return{restrict:"A",controller:function(){},link:function(e,t){t.addClass("links-list")}}}]).directive("attLinksListItem",[function(){return{restrict:"A",require:"^attLinksList",link:function(e,t){t.addClass("links-list__item"),t.attr("href")||t.attr("tabindex","0")}}}]),angular.module("att.abs.loading",[]).directive("attLoading",["$window",function(e){return{restrict:"A",replace:!0,scope:{icon:"@attLoading",progressStatus:"=?",colorClass:"=?"},templateUrl:"app/scripts/ng_js_att_tpls/loading/loading.html",link:function(t,n){var i=t.progressStatus;if(t.progressStatus=Math.min(100,Math.max(0,i)),-1!==e.navigator.userAgent.indexOf("MSIE 8.")){var a=0,s=36*t.progressStatus;n.css({"background-position-x":a,"background-position-y":-s})}}}}]),angular.module("att.abs.modal",["att.abs.utilities"]).factory("$$stackedMap",function(){return{createNew:function(){var e=[];return{add:function(t,n){e.push({key:t,value:n})},get:function(t){for(var n=0;n<e.length;n++)if(t===e[n].key)return e[n]},keys:function(){for(var t=[],n=0;n<e.length;n++)t.push(e[n].key);return t},top:function(){return e[e.length-1]},remove:function(t){for(var n=-1,i=0;i<e.length;i++)if(t===e[i].key){n=i;break}return e.splice(n,1)[0]},removeTop:function(){return e.splice(e.length-1,1)[0]},length:function(){return e.length}}}}}).directive("modalBackdrop",["$timeout",function(e){return{restrict:"EA",replace:!0,templateUrl:"app/scripts/ng_js_att_tpls/modal/backdrop.html",link:function(t){t.animate=!1,e(function(){t.animate=!0})}}}]).directive("modalWindow",["$modalStack","$timeout","$document",function(e,t,n){return{restrict:"EA",scope:{index:"@",modalTitle:"@?"},replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/modal/window.html",link:function(i,a,s){i.windowClass=s.windowClass||"",s.modalTitle&&""!==s.modalTitle&&(a[0].setAttribute("aria-label",s.modalTitle),a[0].removeAttribute("modal-title")),t(function(){i.focusModalFlag=!0,i.animate=!0}),n.on("focus keydown",function(e){9===e.which&&(String.prototype.contains=function(e){return-1!==this.indexOf(e)},a[0]===e.target||a[0].contains(e.target)||a[0].focus())}),i.close=function(t){var n=e.getTop();n&&n.value.backdrop&&"static"!=n.value.backdrop&&t.target===t.currentTarget&&(t.preventDefault?(t.preventDefault(),t.stopPropagation()):t.returnValue=!1,e.dismiss(n.key,"backdrop click"))}}}}]).factory("$modalStack",["$document","$compile","$rootScope","$$stackedMap","events","keymap",function(e,t,n,i,a,s){function r(){for(var e=-1,t=u.keys(),n=0;n<t.length;n++)u.get(t[n]).value.backdrop&&(e=n);return e}function o(t){var n=e.find("body").eq(0),i=e.find("html").eq(0),a=u.get(t).value;u.remove(t),a.modalDomEl.remove(),n.toggleClass(d,u.length()>0),i.css({overflow:"scroll"}),c&&-1==r()&&(c.remove(),c=void 0),a.modalScope.$destroy(),angular.isDefined(g)&&null!=g&&g.focus()}var l,c,d="modal-open",p=n.$new(!0),u=i.createNew(),h={},g=void 0;return n.$watch(r,function(e){p.index=e}),e.bind("keydown",function(e){var t;if(27===e.which)t=u.top(),t&&t.value.keyboard&&n.$apply(function(){h.dismiss(t.key)});else if(e.keyCode===s.KEY.BACKSPACE){var i,r=!1,o=e.srcElement||e.target;r=void 0===o.type?!0:"INPUT"===o.tagName.toUpperCase()&&("TEXT"===(i=o.type.toUpperCase())||"PASSWORD"===i||"FILE"===i||"SEARCH"===i||"EMAIL"===i||"NUMBER"===i||"DATE"===i||"TEL"===i||"URL"===i||"TIME"===i)||"TEXTAREA"===o.tagName.toUpperCase()?o.readOnly||o.disabled:!0,r&&a.preventDefault(e)}}),h.open=function(n,i){u.add(n,{deferred:i.deferred,modalScope:i.scope,backdrop:i.backdrop,keyboard:i.keyboard}),g=document.activeElement;var a=e.find("body").eq(0),s=e.find("html").eq(0);r()>=0&&!c&&(l=angular.element("<div modal-backdrop></div>"),c=t(l)(p),a.append(c));var o=angular.element("<div modal-window></div>");o.attr("window-class",i.windowClass),o.attr("index",u.length()-1),o.attr("modal-title",i.modalTitle),o.html(i.content);var h=t(o)(i.scope);u.top().value.modalDomEl=h,a.append(h),a.addClass(d),s.css({overflow:"hidden"})},h.close=function(e,t){var n=u.get(e);n&&(n.value.deferred.resolve(t),o(e))},h.dismiss=function(e,t){var n=u.get(e).value;n&&(n.deferred.reject(t),o(e))},h.getTop=function(){return u.top()},h}]).provider("$modal",function(){var e={options:{backdrop:!0,keyboard:!0},$get:["$injector","$rootScope","$q","$http","$templateCache","$controller","$modalStack",function(t,n,i,a,s,r,o){function l(e){return e.template?i.when(e.template):a.get(e.templateUrl,{cache:s}).then(function(e){return e.data})}function c(e){var n=[];return angular.forEach(e,function(e){(angular.isFunction(e)||angular.isArray(e))&&n.push(i.when(t.invoke(e)))}),n}var d={};return d.open=function(t){var a=i.defer(),s=i.defer(),d={result:a.promise,opened:s.promise,close:function(e){o.close(d,e)},dismiss:function(e){o.dismiss(d,e)}};if(t=angular.extend({},e.options,t),t.resolve=t.resolve||{},!t.template&&!t.templateUrl)throw new Error("One of template or templateUrl options is required.");var p=i.all([l(t)].concat(c(t.resolve)));return p.then(function(e){var i=(t.scope||n).$new();i.$close=d.close,i.$dismiss=d.dismiss;var s,l={},c=1;t.controller&&(l.$scope=i,l.$modalInstance=d,angular.forEach(t.resolve,function(t,n){l[n]=e[c++]}),s=r(t.controller,l)),o.open(d,{scope:i,deferred:a,content:e[0],backdrop:t.backdrop,keyboard:t.keyboard,windowClass:t.windowClass,modalTitle:t.modalTitle})},function(e){a.reject(e)}),p.then(function(){s.resolve(!0)},function(){s.reject(!1)}),d},d}]};return e}).directive("simpleModal",["$modal",function(e){return{restrict:"EA",scope:{simpleModal:"@",backdrop:"@",keyboard:"@",modalOk:"&",modalCancel:"&",windowClass:"@",controller:"@",modalTitle:"@?"},link:function(t,n){n.bind("click",function(i){i.preventDefault(),angular.isDefined(n.attr("href"))&&""!==n.attr("href")&&(t.simpleModal=n.attr("href")),"false"===t.backdrop?t.backdropclick="static":t.backdropclick=!0,"false"===t.keyboard?t.keyboardev=!1:t.keyboardev=!0,e.open({templateUrl:t.simpleModal,backdrop:t.backdropclick,keyboard:t.keyboardev,windowClass:t.windowClass,controller:t.controller,modalTitle:t.modalTitle}).result.then(t.modalOk,t.modalCancel)})}}}]).directive("tabbedItem",["$modal","$log",function(e,t){return{restrict:"AE",replace:!0,scope:{items:"=items",controller:"@",templateId:"@",modalTitle:"@?"},templateUrl:"app/scripts/ng_js_att_tpls/modal/tabbedItem.html",controller:["$scope","$rootScope","$attrs",function(n){n.clickTab=function(i){for(var a=0;a<n.items.length;a++)a===i?(n.items[a].isTabOpen=!0,n.items[a].showData=!0):(n.items[a].isTabOpen=!1,n.items[a].showData=!1);var s=e.open({templateUrl:n.templateId,controller:n.controller,windowClass:"tabbedOverlay_modal",modalTitle:n.modalTitle,resolve:{items:function(){return n.items}}});s.result.then(function(e){n.selected=e},function(){t.info("Modal dismissed at: "+new Date)})},n.isActiveTab=function(e){return n.items&&n.items[e]&&n.items[e].isTabOpen}}]}}]).directive("tabbedOverlay",[function(){return{restrict:"AE",replace:!0,scope:{items:"="},transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/modal/tabbedOverlayItem.html",controller:["$scope",function(e){e.clickTab=function(t){for(var n=0;n<e.items.length;n++)n===t?(e.items[n].isTabOpen=!0,e.items[n].showData=!0):(e.items[n].isTabOpen=!1,e.items[n].showData=!1)},e.isActiveTab=function(t){return e.items&&e.items[t]&&e.items[t].isTabOpen}}]}}]),angular.module("att.abs.pagination",["att.abs.utilities"]).directive("attPagination",[function(){return{restrict:"EA",scope:{totalPages:"=",currentPage:"=",showInput:"=",clickHandler:"=?"},replace:!0,templateUrl:"app/scripts/ng_js_att_tpls/pagination/pagination.html",link:function(e){function t(t){angular.isDefined(t)&&null!==t&&((!t||1>t)&&(t=1),t>e.totalPages&&(t=e.totalPages),e.currentPage!==t&&(e.currentPage=t,n(e.currentPage)),e.totalPages>7&&(t<e.pages[0]&&t>3?e.pages=[t,t+1,t+2]:t>e.pages[2]&&t<e.totalPages-2?e.pages=[t-2,t-1,t]:3>=t?e.pages=[1,2,3]:t>=e.totalPages-2&&(e.pages=[e.totalPages-2,e.totalPages-1,e.totalPages])))}e.focusedPage,e.$watch("totalPages",function(n){if(angular.isDefined(n)&&null!==n){if(e.pages=[],1>n)return void(e.totalPages=1);if(7>=n)for(var i=1;n>=i;i++)e.pages.push(i);else if(n>7){var a=Math.ceil(n/2);e.pages=[a-1,a,a+1]}t(1)}}),e.$watch("currentPage",function(e){t(e)});var n=function(t){angular.isFunction(e.clickHandler)&&e.clickHandler(t)};e.next=function(t){t.preventDefault(),e.currentPage<e.totalPages&&(e.currentPage+=1,n(e.currentPage))},e.prev=function(t){t.preventDefault(),e.currentPage>1&&(e.currentPage-=1,n(e.currentPage))},e.selectPage=function(t,i){i.preventDefault(),e.currentPage=t,e.focusedPage=t,n(e.currentPage)},e.checkSelectedPage=function(t){return e.currentPage===t?!0:!1},e.isFocused=function(t){return e.focusedPage===t}}}}]),angular.module("att.abs.paneSelector",["att.abs.utilities"]).constant("paneGroupConstants",{SIDE_WIDTH_DEFAULT:"33%",INNER_PANE_DEFAULT:"67%",SIDE_PANE_ID:"sidePane",NO_DRILL_DOWN:"none"}).factory("animation",function(){return TweenLite}).directive("attPaneAccessibility",["keymap","$window",function(e,t){return{restrict:"A",require:["^?sidePane","^?innerPane"],link:function(t,n,i,a){var s=a[0],r=a[1],o=!1;t.ie=function(){for(var e,t=3,n=document.createElement("div"),i=n.getElementsByTagName("i");n.innerHTML="<!--[if gt IE "+ ++t+"]><i></i>< ![endif]-->",i[0];);return t>4?t:e}(),o=8===t.ie?!0:!1,n.bind("keydown",function(t){if(e.isAllowedKey(t.keyCode)||e.isControl(t)||e.isFunctionKey(t)){t.preventDefault(),t.stopPropagation();var i;switch(t.keyCode){case e.KEY.DOWN:if(i=angular.element(n[0])[0],i&&i.nextElementSibling&&i.nextElementSibling.focus(),o){do{if(!i||!i.nextSibling)break;i=i.nextSibling}while(i&&"DIV"!==i.tagName);i.focus()}break;case e.KEY.UP:if(i=angular.element(n[0])[0],i&&i.previousElementSibling&&i.previousElementSibling.focus(),o){do{if(!i||!i.previousSibling)break;i=i.previousSibling}while(i&&"DIV"!==i.tagName);i.focus()}break;case e.KEY.RIGHT:angular.isDefined(s)&&(i=s.getElement()[0]),angular.isDefined(r)&&(i=r.getElement()[0]);do{if(!i||!i.nextElementSibling)break;i=i.nextElementSibling}while("none"===window.getComputedStyle(i,null).getPropertyValue("display"));if(o)do{if(!i||!i.nextSibling)break;i=i.nextSibling}while(i&&"DIV"==i.tagName&&"none"==i.currentStyle.display);i&&i.querySelector("[att-pane-accessibility]").focus();break;case e.KEY.LEFT:angular.isDefined(s)&&(i=s.getElement()[0]),angular.isDefined(r)&&(i=r.getElement()[0]);do{if(!i||!i.previousElementSibling)break;i=i.previousElementSibling}while("none"==window.getComputedStyle(i,null).getPropertyValue("display"));if(o)do{if(!i||!i.previousSibling)break;i=i.previousSibling}while(i&&"DIV"==i.tagName&&"none"==i.currentStyle.display);i&&i.querySelector("[att-pane-accessibility]").focus()}}})}}}]).directive("sideRow",[function(){return{restrict:"A",replace:!0,require:["^sidePane","^paneGroup"],link:function(e,t,n,i){var a=i[0],s=i[1];e.$first&&(a.sidePaneIds=[]);var r=n.paneId,o=n.drillDownTo;a.sidePaneRows.push({paneId:r,drillDownTo:o}),t.on("click",function(){a.currentSelectedRowPaneId=r,s.slideOutPane(r,!0)})}}}]).controller("SidePaneCtrl",["$scope","$element","animation","paneGroupConstants",function(e,t,n,i){this.getElement=function(){return t},this.sidePaneTracker={},this.currentWidth=i.SIDE_WIDTH_DEFAULT,this.paneId=i.SIDE_PANE_ID,this.currentSelectedRowPaneId,this.drillDownToMapper={},this.sidePaneRows=[],this.init=function(){var e=this.sidePaneRows;if(e)for(var t in e)if(e.hasOwnProperty(t)){var n=e[t].paneId,i=e[t].drillDownTo;this.drillDownToMapper[n]=i,0==t&&(this.currentSelectedRowPaneId=n,this.sidePaneTracker[n]=[])}},this.getSidePanesList=function(){return this.sidePaneTracker[this.currentSelectedRowPaneId]},this.addToSidePanesList=function(e){void 0===this.sidePaneTracker[this.currentSelectedRowPaneId]?this.sidePaneTracker[this.currentSelectedRowPaneId]=[]:e&&this.sidePaneTracker[this.currentSelectedRowPaneId].push(e)},this.setWidth=function(e){e&&(this.currentWidth=e),n.set(t,{width:this.currentWidth})},this.resizeWidth=function(e){e&&(this.currentWidth=e),n.to(t,.5,{width:e})}}]).directive("sidePane",["paneGroupConstants",function(e){return{restrict:"EA",transclude:!0,replace:!0,templateUrl:"app/scripts/ng_js_att_tpls/paneSelector/sidePane.html",require:["^paneGroup","sidePane"],controller:"SidePaneCtrl",scope:{},link:function(t,n,i,a){var s=a[0],r=a[1];s.addPaneCtrl(e.SIDE_PANE_ID,r)}}}]).directive("drillDownRow",["$parse","paneGroupConstants",function(e,t){return{restrict:"A",replace:!0,require:["^innerPane","^paneGroup"],link:function(e,n,i,a){var s=a[0],r=a[1];n.on("click",function(){var e=s.drillDownTo;s.drillDownTo!==t.NO_DRILL_DOWN&&r.slideOutPane(e),n[0].focus()})}}}]).controller("InnerPaneCtrl",["$scope","$element","animation","paneGroupConstants",function(e,t,n,i){this.getElement=function(){return t},this.paneId=e.paneId,this.drillDownTo,this.currentWidth=i.INNER_PANE_DEFAULT,this.setWidth=function(e){e&&(this.currentWidth=e),n.set(t,{width:this.currentWidth})},this.resizeWidth=function(e,i){n.to(t,.25,{width:e,onComplete:i})},this.displayNone=function(){n.set(t,{display:"none"})},this.displayBlock=function(){n.set(t,{display:"block"}),this&&this.hideRightBorder()},this.floatLeft=function(){n.set(t,{"float":"left"})},this.hideLeftBorder=function(){n.set(t,{borderLeftWidth:"0px"})},this.showLeftBorder=function(){n.set(t,{borderLeftWidth:"1px"})},this.hideRightBorder=function(){n.set(t,{borderRightWidth:"0px"})},this.showRightBorder=function(){n.set(t,{borderRightWidth:"1px"})},this.slideFromRight=function(){n.set(t,{"float":"right"}),n.set(t,{width:this.currentWidth})},this.startOpen=function(){return e.startOpen}}]).directive("innerPane",function(){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/paneSelector/innerPane.html",require:["^paneGroup","innerPane"],controller:"InnerPaneCtrl",scope:{paneId:"@"},link:function(e,t,n,i){""===n.startOpen&&(e.startOpen=!0);var a=i[0],s=i[1];a.addPaneCtrl(e.paneId,s)}}}).controller("PaneGroupCtrl",["$scope","$element","paneGroupConstants",function(e,t,n){this.panes={},this.accountLevelPaneModel=[],this.title=e.title,this.init=function(){function e(e,t){var n,i=[];for(n in e.sidePaneRows)if(e.sidePaneRows.hasOwnProperty(n)){var a=e.sidePaneRows[n];n>0&&t[a.paneId].startOpen&&t[a.paneId].startOpen()&&(i.push(a),e.addToSidePanesList(a.paneId))}if(s)for(n in i)if(i.hasOwnProperty(n)){var r=i[n].paneId,o=t[r];o&&o.setWidth&&o.displayBlock&&(o.setWidth(s),o.displayBlock())}}var t=this.panes[n.SIDE_PANE_ID];if(t){t.init();var i,a=1;for(i in this.panes)this.panes[i].startOpen&&this.panes[i].startOpen()&&a++;var s;if(a>=3&&(s=100/a+"%"),this.panes[t.currentSelectedRowPaneId]){s?(t.setWidth(s),this.panes[t.currentSelectedRowPaneId].setWidth(s)):(t.setWidth(),this.panes[t.currentSelectedRowPaneId].setWidth()),this.panes[t.currentSelectedRowPaneId].displayBlock();for(i in this.panes)i!==n.SIDE_PANE_ID&&i!==t.currentSelectedRowPaneId&&this.panes[i].displayNone(),this.panes[i].drillDownTo=t.drillDownToMapper[i]}e(t,this.panes)}},this.resetPanes=function(){for(var e in this.panes)if(this.panes.hasOwnProperty(e)){var t=this.panes[e];t&&t.paneId!==n.SIDE_PANE_ID&&(t.floatLeft(),t.displayNone())}this.panes[n.SIDE_PANE_ID]&&this.panes[n.SIDE_PANE_ID].setWidth(n.SIDE_WIDTH_DEFAULT)},this.addPaneCtrl=function(e,t){\r
+this.panes[e]=t},this._slideOutPane=function(e,t){this.resetPanes();var i;if(t)if(this.panes[n.SIDE_PANE_ID]&&(i=this.panes[n.SIDE_PANE_ID].getSidePanesList()),i){if(this.panes&&this.panes[n.SIDE_PANE_ID])if(0===i.length&&this.panes[e])this.panes[n.SIDE_PANE_ID].setWidth(n.SIDE_WIDTH_DEFAULT),this.panes[e].displayBlock(),this.panes[e].setWidth(n.INNER_PANE_DEFAULT);else{var a=i.length+2,s=100/a+"%";this.panes[n.SIDE_PANE_ID].setWidth(s),this.panes[this.panes[n.SIDE_PANE_ID].currentSelectedRowPaneId]&&(this.panes[this.panes[n.SIDE_PANE_ID].currentSelectedRowPaneId].displayBlock(),this.panes[this.panes[n.SIDE_PANE_ID].currentSelectedRowPaneId].setWidth(s));for(var r in i)this.panes[i[r]]&&(this.panes[i[r]].displayBlock(),this.panes[i[r]].setWidth(s))}}else this.panes&&this.panes[n.SIDE_PANE_ID]&&this.panes[e]&&(this.panes[n.SIDE_PANE_ID].currentSelectedRowPaneId=e,this.panes[n.SIDE_PANE_ID].addToSidePanesList(),this.panes[e].slideFromRight(),this.panes[e].displayBlock(),this.panes[e].setWidth(n.INNER_PANE_DEFAULT));else{var o,l=!1;this.panes[n.SIDE_PANE_ID]&&(o=this.panes[n.SIDE_PANE_ID].getSidePanesList());for(var c in o)if(o.hasOwnProperty(c)){var d=o[c];if(d===e){l=!0;break}}!l&&this.panes[n.SIDE_PANE_ID]&&this.panes[n.SIDE_PANE_ID].addToSidePanesList(e);var p;this.panes[n.SIDE_PANE_ID]&&(p=this.panes[n.SIDE_PANE_ID].getSidePanesList().length);var u=p+2,h=100/u+"%";this.panes[n.SIDE_PANE_ID]&&this.panes[n.SIDE_PANE_ID].setWidth(h);var g;this.panes[n.SIDE_PANE_ID]&&(g=this.panes[n.SIDE_PANE_ID].getSidePanesList()[p-1]);var f=this;f.panes[n.SIDE_PANE_ID]&&(i=f.panes[n.SIDE_PANE_ID].getSidePanesList());for(var m in i)if(i.hasOwnProperty(m)){var v=i[m],b=this.panes[v];v!==g&&b&&(b.setWidth(h),b.displayBlock(),b.floatLeft())}this.panes[this.panes[n.SIDE_PANE_ID].currentSelectedRowPaneId]&&(this.panes[this.panes[n.SIDE_PANE_ID].currentSelectedRowPaneId].displayBlock(),this.panes[this.panes[n.SIDE_PANE_ID].currentSelectedRowPaneId].showRightBorder(),this.panes[this.panes[n.SIDE_PANE_ID].currentSelectedRowPaneId].resizeWidth(h,function(){f.panes[g]&&f.panes[f.panes[n.SIDE_PANE_ID].currentSelectedRowPaneId]&&(f.panes[f.panes[n.SIDE_PANE_ID].currentSelectedRowPaneId].hideRightBorder(),f.panes[g].setWidth(h),f.panes[g].slideFromRight(),f.panes[g].displayBlock(),f.panes[g].floatLeft())}))}},this.slideOutPane=function(e,t){this._slideOutPane(e,t)}}]).directive("paneGroup",["$timeout",function(e){return{restrict:"EA",transclude:!0,replace:!0,templateUrl:"app/scripts/ng_js_att_tpls/paneSelector/paneGroup.html",scope:{},controller:"PaneGroupCtrl",link:function(t,n,i,a){function s(){a.init()}e(s,100)}}}]),angular.module("att.abs.tooltip",["att.abs.position","att.abs.utilities","ngSanitize"]).constant("tooltipDefaultOptions",{placement:"above",animation:!1,popupDelay:0,stylett:"dark",appendToBody:!0}).provider("$tooltip",["tooltipDefaultOptions",function(e){function t(e){var t=/[A-Z]/g,n="-";return e.replace(t,function(e,t){return(t?n:"")+e.toLowerCase()})}var n={mouseenter:"mouseleave",click:"click",focus:"blur",mouseover:"mouseout"},i={};this.options=function(e){angular.extend(i,e)},this.setTriggers=function(e){angular.extend(n,e)},this.$get=["$window","$compile","$timeout","$parse","$document","$position","$interpolate","$attElementDetach",function(a,s,r,o,l,c,d,p){return function(a,u,h){function g(e){var t=e||f.trigger||h,i=n[t]||t;return{show:t,hide:i}}var f=angular.extend({},e,i),m=t(a),v=d.startSymbol(),b=d.endSymbol();return{restrict:"EA",scope:!0,link:function(e,t,n){function i(){e.tt_isOpen?h():d()}function d(){(!I||e.$eval(n[u+"Enable"]))&&(e.tt_popupDelay?S=r(_,e.tt_popupDelay):e.$apply(_))}function h(){e.$apply(function(){y()})}function _(){var n,i,a,s;if(e.tt_content){C&&r.cancel(C),D.css({top:0,left:0,display:"block","z-index":9999}),$?(x=x||l.find("body"),x.append(D)):t.after(D),n=$?c.offset(t):c.position(t),i=D.prop("offsetWidth"),a=D.prop("offsetHeight");var o=10;switch(e.tt_placement){case"right":s=$?{top:n.top+n.height/2-a/2,left:n.left+n.width+P}:{top:n.top+n.height/2-a/2,left:n.left+n.width+o+P};break;case"below":s=$?{top:n.top+n.height+P,left:n.left+n.width/2-i/2}:{top:n.top+n.height+o+P,left:n.left+n.width/2-i/2};break;case"left":s=$?{top:n.top+n.height/2-a/2,left:n.left-i-P}:{top:n.top+n.height/2-a/2,left:n.left-i-o-P};break;default:s=$?{top:n.top-a-P,left:n.left+n.width/2-i/2}:{top:n.top-a-o-P,left:n.left+n.width/2-i/2}}s.top+="px",s.left+="px",D.css(s),e.tt_isOpen=!0}}function y(){e.tt_isOpen=!1,r.cancel(S),angular.isDefined(e.tt_animation)&&e.tt_animation()?C=r(function(){p(D[0])},500):p(D[0])}function w(){t.removeAttr("title"),k||(L?t.attr("title",e.tooltipAriaLabel):t.attr("title",e.tt_content))}t.attr("tabindex")||t.attr("tabindex","0");var k=!1;t.bind("mouseenter",function(){k=!0,t.removeAttr("title")}),t.bind("mouseleave",function(){k=!1}),e.parentAttrs=n;var C,S,x,T="<div "+m+'-popup title="'+v+"tt_title"+b+'" content="'+v+"tt_content"+b+'" placement="'+v+"tt_placement"+b+'" animation="tt_animation()" is-open="tt_isOpen" stylett="'+v+"tt_style"+b+'" ></div>',D=s(T)(e),$=angular.isDefined(f.appendToBody)?f.appendToBody:!1,A=g(void 0),E=!1,I=angular.isDefined(n[u+"Enable"]),P=0,L=!1;e.tt_isOpen=!1,e.$watch("tt_isOpen",function(e,t){e===t||e||p(D[0])}),n.$observe(a,function(t){t?e.tt_content=t:e.tt_isOpen&&y()}),n.$observe(u+"Title",function(t){e.tt_title=t}),n.$observe(u+"Placement",function(t){e.tt_placement=angular.isDefined(t)?t:f.placement}),n.$observe(u+"Style",function(t){e.tt_style=angular.isDefined(t)?t:f.stylett}),n.$observe(u+"Animation",function(t){e.tt_animation=angular.isDefined(t)?o(t):function(){return f.animation}}),n.$observe(u+"PopupDelay",function(t){var n=parseInt(t,10);e.tt_popupDelay=isNaN(n)?f.popupDelay:n}),n.$observe(u+"Trigger",function(e){E&&(t.unbind(A.show,d),t.unbind(A.hide,h)),A=g(e),"focus"===A.show?(t.bind("focus",d),t.bind("blur",h),t.bind("click",function(e){e.stopPropagation()})):A.show===A.hide?t.bind(A.show,i):(t.bind(A.show,d),t.bind(A.hide,h)),E=!0}),n.$observe(u+"AppendToBody",function(t){$=angular.isDefined(t)?o(t)(e):$}),n.$observe(u+"Offset",function(e){P=angular.isDefined(e)?parseInt(e,10):0}),n.$observe(u+"AriaLabel",function(t){angular.isDefined(t)?(e.tooltipAriaLabel=t,L=!0):L=!1,w()}),$&&e.$on("$locationChangeSuccess",function(){e.tt_isOpen&&y()}),e.$on("$destroy",function(){e.tt_isOpen?y():D.remove()})}}}}]}]).directive("tooltipPopup",["$document","$documentBind",function(e,t){return{restrict:"EA",replace:!0,transclude:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"=",stylett:"@"},templateUrl:"app/scripts/ng_js_att_tpls/tooltip/tooltip-popup.html",link:function(e,n){e.$watch("isOpen",function(){e.isOpen}),n.bind("click",function(e){e.stopPropagation()});var i=function(){e.$apply(function(){e.isOpen=!1})};t.event("click","isOpen",i,e,!0,10)}}}]).directive("tooltip",["$tooltip",function(e){return e("tooltip","tooltip","mouseenter")}]).directive("tooltipCondition",["$timeout",function(e){return{restrict:"EA",replace:!0,scope:{tooltipCondition:"@?"},template:'<p><span tooltip="{{tooltipCondition}}" ng-if="showpop">{{tooltipCondition}}</span><span id="innerElement" ng-hide="showpop">{{tooltipCondition}}</span></p>',link:function(t,n,i){t.showpop=!1,"true"===i.height?e(function(){var e=n[0].offsetHeight,i=n.children(0)[0].offsetHeight;i>e&&(t.showpop=!0)}):t.tooltipCondition.length>=25&&(t.showpop=!0)}}}]),angular.module("att.abs.popOvers",["att.abs.tooltip","att.abs.utilities","ngSanitize"]).directive("popover",["$tooltip",function(e){return e("popover","popover","click")}]).directive("popoverPopup",["$document","$documentBind","$timeout","events","DOMHelper",function(e,t,n,i,a){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/popOvers/popOvers.html",scope:{content:"@",placement:"@",animation:"&",isOpen:"=",stylett:"@"},link:function(e,s,r,o){e.closeable=!1;try{e.closeable=""===e.$parent.parentAttrs.closeable?!0:!1}catch(l){}var c=void 0,d=void 0,p=function(t){e.$apply(function(){e.isOpen=!1})},u=function(t){(27===t.which||27===t.keyCode)&&(console.log("ESC was pressed!"),e.$apply(function(){e.isOpen=!1}))};n(function(){d=a.firstTabableElement(s)},10,!1),e.$watch("isOpen",function(t){if(e.isOpen){if(c=document.activeElement,angular.isDefined(d))try{d.focus()}catch(n){}}else if(angular.isDefined(c))try{c.focus()}catch(n){}}),e.$watch("stylett",function(t){e.popOverStyle=t}),e.$watch("placement",function(t){e.popOverPlacement=t}),e.closeMe=function(){e.isOpen=!1},s.bind("click",function(e){i.stopPropagation(e)}),t.event("click","isOpen",p,e,!0,10),t.event("keydown","isOpen",u,e,!0,10)}}}]),angular.module("att.abs.profileCard",[]).constant("profileStatus",{status:{ACTIVE:{status:"Active",color:"green"},DEACTIVATED:{status:"Deactivated",color:"red"},LOCKED:{status:"Locked",color:"red"},IDLE:{status:"Idle",color:"yellow"},PENDING:{status:"Pending",color:"blue"}},role:"COMPANY ADMINISTRATOR"}).directive("profileCard",["$http","$q","profileStatus",function(e,t,n){return{restrict:"EA",replace:"true",templateUrl:function(e,t){return t.addUser?"app/scripts/ng_js_att_tpls/profileCard/addUser.html":"app/scripts/ng_js_att_tpls/profileCard/profileCard.html"},scope:{profile:"="},link:function(e,i,a){function s(e){var n=t.defer(),i=new Image;return i.onerror=function(){n.reject(!1)},i.onload=function(){n.resolve(!0)},void 0!==e&&e.length>0?i.src=e:n.reject(!1),n.promise}if(e.image=!0,!a.addUser){e.image=!1,s(e.profile.img).then(function(t){e.image=t});var r=e.profile.name.split(" ");e.initials="";for(var o=0;o<r.length;o++)e.initials+=r[o][0];e.profile.role.toUpperCase()===n.role&&(e.badge=!0);var l=n.status[e.profile.state.toUpperCase()];l&&(e.profile.state=n.status[e.profile.state.toUpperCase()].status,e.colorIcon=n.status[e.profile.state.toUpperCase()].color,(e.profile.state.toUpperCase()===n.status.PENDING.status.toUpperCase()||e.profile.state.toUpperCase()===n.status.LOCKED.status.toUpperCase())&&(e.profile.lastLogin=e.profile.state));var c=(new Date).getTime(),d=new Date(e.profile.lastLogin).getTime(),p=(c-d)/864e5;1>=p?e.profile.lastLogin="Today":2>=p&&(e.profile.lastLogin="Yesterday")}}}}]),angular.module("att.abs.progressBars",[]).directive("attProgressBar",[function(){return{restrict:"A",replace:!0,templateUrl:"app/scripts/ng_js_att_tpls/progressBars/progressBars.html"}}]),angular.module("att.abs.radio",[]).constant("attRadioConfig",{activeClass:"att-radio--on",disabledClass:"att-radio--disabled"}).directive("attRadio",["$compile","attRadioConfig",function(e,t){return{scope:{},restrict:"A",require:"ngModel",link:function(n,i,a,s){var r=s;n.radioVal="";var o=angular.element('<div att-accessibility-click="13,32" ng-click="updateModel($event)" class="att-radio"></div>');i.attr("value",a.attRadio),i.removeAttr("att-radio"),i.removeAttr("title"),i.attr("ng-model","radioVal"),o.append(i.prop("outerHTML")),o.append('<div class="att-radio__indicator"></div>'),o.attr("title",a.title);var l=o.prop("outerHTML");l=e(l)(n),i=i.replaceWith(l);var c=l.find("input");c.on("focus",function(){l.css("outline","2px solid #5E9ED6"),l.css("outline","-webkit-focus-ring-color auto 5px")}),c.on("blur",function(){l.css("outline","none")}),r.$render=function(){n.radioVal=r.$modelValue;var e=angular.equals(r.$modelValue,a.attRadio);l.toggleClass(t.activeClass,e)},n.updateModel=function(){c[0].focus();var e=l.hasClass(t.activeClass);e||n.disabled||(r.$setViewValue(e?null:a.attRadio),r.$render())},a.$observe("disabled",function(e){n.disabled=e||"disabled"===e||"true"===e,n.disabled?(l.addClass(t.disabledClass),l.attr("tabindex","-1")):(l.removeClass(t.disabledClass),l.attr("tabindex","0"))})}}}]),angular.module("att.abs.scrollbar",["att.abs.position"]).constant("attScrollbarConstant",{defaults:{axis:"y",navigation:!1,wheel:!0,wheelSpeed:40,wheelLock:!0,scrollInvert:!1,trackSize:!1,thumbSize:!1,alwaysVisible:!0}}).directive("attScrollbar",["$window","$timeout","$parse","$animate","attScrollbarConstant","$position",function(e,t,n,i,a,s){return{restrict:"A",scope:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/scrollbar/scrollbar.html",controller:["$scope","$element","$attrs",function(r,o,l){function c(){k.contentRatio<=1&&k.contentPosition>k.contentSize-k.viewportSize?k.contentPosition=k.contentSize-k.viewportSize:k.contentRatio>1&&k.contentPosition>0&&(k.contentPosition=0),k.contentPosition<=0?r.prevAvailable=!1:r.prevAvailable=!0,k.contentPosition>=k.contentSize-k.viewportSize?r.nextAvailable=!1:r.nextAvailable=!0}function d(){I?(x.on("touchstart",u),$.on("touchstart",u)):($.on("mousedown",h),D.on("mousedown",v)),angular.element(e).on("resize",p),k.options.wheel&&o.on(P,g)}function p(){k.update()}function u(e){1===e.touches.length&&(e.stopPropagation(),h(e.touches[0]))}function h(e){C.addClass("scroll-no-select"),o.addClass("scroll-no-select"),k.options.alwaysVisible||D.addClass("visible"),A=E?e.clientX:e.clientY,k.thumbPosition=parseInt($.css(M),10)||0,I?(N=!1,F=!1,x.on("touchmove",f),x.on("touchend",b),$.on("touchmove",m),$.on("touchend",b)):(S.on("mousemove",v),S.on("mouseup",b),$.on("mouseup",b))}function g(n){if(!(k.contentRatio>=1)){k.options.alwaysVisible||(w&&t.cancel(w),D.addClass("visible"),w=t(function(){D.removeClass("visible")},100));var i=n&&n.originalEvent||n||e.event,a=k.options.axis.toUpperCase(),s={X:i.deltaX||0,Y:i.deltaY||0},l=0===i.deltaMode?k.options.wheelSpeed:1;k.options.scrollInvert&&(l*=-1),"mousewheel"===P&&(s.Y=-1*i.wheelDelta/40,i.wheelDeltaX&&(s.X=-1*i.wheelDeltaX/40)),s.X*=-1/l,s.Y*=-1/l;var d=s[a];k.contentPosition-=d*k.options.wheelSpeed,k.contentPosition=Math.min(k.contentSize-k.viewportSize,Math.max(0,k.contentPosition)),fireEvent(o[0],"move"),c(),$.css(M,k.contentPosition/k.trackRatio+"px"),T.css(M,-k.contentPosition+"px"),(k.options.wheelLock||k.contentPosition!==k.contentSize-k.viewportSize&&0!==k.contentPosition)&&i.preventDefault(),r.$apply()}}function f(e){e.preventDefault(),N=!0,v(e.touches[0])}function m(e){e.preventDefault(),F=!0,v(e.touches[0])}function v(e){if(!(k.contentRatio>=1)){var t=E?e.clientX:e.clientY,n=t-A;(k.options.scrollInvert&&!I||I&&!k.options.scrollInvert)&&(n=A-t),N&&I&&(n=A-t),F&&I&&(n=t-A);var i=Math.min(k.trackSize-k.thumbSize,Math.max(0,k.thumbPosition+n));k.contentPosition=i*k.trackRatio,fireEvent(o[0],"move"),c(),$.css(M,i+"px"),T.css(M,-k.contentPosition+"px"),r.$apply()}}function b(){C.removeClass("scroll-no-select"),o.removeClass("scroll-no-select"),k.options.alwaysVisible||D.removeClass("visible"),S.off("mousemove",v),S.off("mouseup",b),$.off("mouseup",b),S.off("touchmove",f),S.off("ontouchend",b),$.off("touchmove",m),$.off("touchend",b)}var _={axis:l.attScrollbar||a.defaults.axis,navigation:l.navigation||a.defaults.navigation,wheel:a.defaults.wheel,wheelSpeed:a.defaults.wheelSpeed,wheelLock:a.defaults.wheelLock,scrollInvert:a.defaults.scrollInvert,trackSize:a.defaults.trackSize,thumbSize:a.defaults.thumbSize,alwaysVisible:a.defaults.alwaysVisible},y=l.scrollbar;y=y?n(y)(r):{},this.options=angular.extend({},_,y),this._defaults=_;var w,k=this,C=angular.element(document.querySelectorAll("body")[0]),S=angular.element(document),x=angular.element(o[0].querySelectorAll(".scroll-viewport")[0]),T=angular.element(o[0].querySelectorAll(".scroll-overview")[0]),D=angular.element(o[0].querySelectorAll(".scroll-bar")[0]),$=angular.element(o[0].querySelectorAll(".scroll-thumb")[0]),A=0,E="x"===this.options.axis,I=!1,P="onwheel"in document?"wheel":void 0!==document.onmousewheel?"mousewheel":"DOMMouseScroll",L=E?"width":"height",O=L.charAt(0).toUpperCase()+L.slice(1).toLowerCase(),M=E?"left":"top",F=!1,N=!1;("ontouchstart"in window||window.DocumentTouch&&document instanceof DocumentTouch)&&(I=!0),this.contentPosition=0,this.viewportSize=0,this.contentSize=0,this.contentRatio=0,this.trackSize=0,this.trackRatio=0,this.thumbSize=0,this.thumbPosition=0,this.initialize=function(){return this.options.alwaysVisible||D.css("opacity",0),k.update(),d(),k},this.setSizeData=function(){this.viewportSize=x.prop("offset"+O)||1,this.contentSize=T.prop("scroll"+O)||1,this.contentRatio=this.viewportSize/this.contentSize,this.trackSize=this.options.trackSize||this.viewportSize,this.thumbSize=Math.min(this.trackSize,Math.max(0,this.options.thumbSize||this.trackSize*this.contentRatio)),this.trackRatio=this.options.thumbSize?(this.contentSize-this.viewportSize)/(this.trackSize-this.thumbSize):this.contentSize/this.trackSize},this.update=function(e){return k.setSizeData(),A=D.prop("offsetTop"),D.toggleClass("disable",this.contentRatio>=1||isNaN(this.contentRatio)),!this.options.alwaysVisible&&this.contentRatio<1&&this.viewportSize>0&&i.addClass(D,"visible").then(function(){i.removeClass(D,"visible"),r.$digest()}),null!==e&&("bottom"===e?this.contentPosition=this.contentSize-this.viewportSize:this.contentPosition=parseInt(e,10)||0),c(),$.css(M,k.contentPosition/k.trackRatio+"px"),D.css(L,k.trackSize+"px"),$.css(L,k.thumbSize+"px"),T.css(M,-k.contentPosition+"px"),this},fireEvent=function(e,t){var n,i=e;document.createEvent?(n=document.createEvent("HTMLEvents"),n.initEvent(t,!0,!1),i.dispatchEvent(n)):document.createEventObject&&(n=document.createEventObject(),i.fireEvent("on"+t,n))},r.customScroll=function(e){if(!(k.contentRatio>=1)){var t,n=s.position(x);t=E?n.width:n.height,e?k.contentPosition+=t:k.contentPosition-=t,k.contentPosition=Math.min(k.contentSize-k.viewportSize,Math.max(0,k.contentPosition)),fireEvent(o[0],"move"),c(),$.css(M,k.contentPosition/k.trackRatio+"px"),T.css(M,-k.contentPosition+"px")}},this.cleanup=function(){x.off("touchstart",u),$.off("mousedown",h),D.off("mousedown",v),$.off("touchmove",m),$.off("touchend",b),angular.element(e).off("resize",p),o.off(P,g),k.options.alwaysVisible=!0,b()}}],link:function(e,n,i,a){e.navigation=a.options.navigation,e.viewportHeight=i.viewportHeight,e.viewportWidth=i.viewportWidth,e.scrollbarAxis=a.options.axis,"x"===e.scrollbarAxis?n.addClass("horizontal"):"y"===e.scrollbarAxis&&n.addClass("vertical");var s=n.css("position");"relative"!==s&&"absolute"!==s&&n.css("position","relative"),e.$watch(function(){t(r,100,!1)});var r=function(){var t=angular.element(n[0].querySelectorAll(".scroll-overview")[0]),i=t.prop("scrollHeight"),s=e.oldValue;i!==s&&(e.oldValue=i,a.update())};a.initialize(),n.on("$destroy",function(){a.cleanup()})}}}]),angular.module("att.abs.search",["att.abs.utilities","att.abs.position","att.abs.utilities"]).directive("attSearch",["$document","$filter","$isElement","$documentBind","$timeout","$log","keymap",function(e,t,n,i,a,s,r){return{restrict:"A",scope:{cName:"=attSearch"},transclude:!1,replace:!1,require:"ngModel",templateUrl:"app/scripts/ng_js_att_tpls/search/search.html",link:function(t,o,l,c){t.selectedIndex=-1,t.selectedOption=l.placeholder,t.isDisabled=!1,t.className="select2-match",t.showSearch=!1,t.showlist=!1;var d="",p=new Date,u=void 0,h=[];a(function(){h=o.find("li")},10),s.warn("attSearch is deprecated, please use attSelect instead. This component will be removed by version 2.7."),l.noFilter||"true"===l.noFilter?t.noFilter=!0:t.noFilter=!1,"false"===l.placeholderAsOption?t.selectedOption=l.placeholder:t.selectMsg=l.placeholder,(l.startsWithFilter||"true"===l.startsWithFilter)&&(t.startsWithFilter=!0),"true"===l.showInputFilter&&(t.showSearch=!1,s.warn("showInputFilter functionality has been removed from the library.")),l.disabled&&(t.isDisabled=!0),u=angular.element(o).children().eq(0).find("a")[0];var g=0,f=function(){if(t.noFilter){var e=d,n=0;for(n=g;n<t.cName.length;n++)if(t.cName[n].title.startsWith(e)&&n!==t.selectedIndex){t.selectOption(t.cName[n],n,t.showlist),g=n,d="";break}(n>=t.cName.length||!t.cName[n+1].title.startsWith(e))&&g>0&&(g=0)}};t.showDropdown=function(){l.disabled||(t.showlist=!t.showlist,t.setSelectTop())},o.bind("keydown",function(e){if(r.isAllowedKey(e.keyCode)||r.isControl(e)||r.isFunctionKey(e))switch(e.preventDefault(),e.stopPropagation(),e.keyCode){case r.KEY.DOWN:t.selectNext();break;case r.KEY.UP:t.selectPrev(),d="";break;case r.KEY.ENTER:t.selectCurrent(),d="";break;case r.KEY.BACKSPACE:t.title="",d="",t.$apply();break;case r.KEY.SPACE:t.noFilter||(t.title+=" "),t.$apply();break;case r.KEY.ESC:""===t.title||void 0===t.title?(t.showlist=!1,u.focus(),t.$apply()):(t.title="",t.$apply()),t.noFilter&&(d="",u.focus(),t.showlist=!1)}else if(9!==e.keyCode){if(t.noFilter){var n=new Date,i=Math.abs(p.getMilliseconds()-n.getMilliseconds());p=n,i>100&&(d=""),d=d?d+String.fromCharCode(e.keyCode):String.fromCharCode(e.keyCode),d.length>2&&(d=d.substring(0,2)),f()}else t.showlist=!0,t.title=t.title?t.title+String.fromCharCode(e.keyCode):String.fromCharCode(e.keyCode);t.$apply()}else 9===e.keyCode&&(t.showlist=!1,t.title="",t.$apply())}),t.selectOption=function(e,n,i){-1===n||"-1"===n?(t.selCategory="",t.selectedIndex=-1,c.$setViewValue(""),"false"!==l.placeholderAsOption&&(t.selectedOption=t.selectMsg)):(t.selCategory=t.cName[n],t.selectedIndex=n,c.$setViewValue(t.selCategory),t.selectedOption=t.selCategory.title,angular.isDefined(h[n])&&h[n].focus()),t.title="",i||(t.showlist=!1,u.focus()),t.$apply()},t.selectCurrent=function(){t.showlist?(t.selectOption(t.selectMsg,t.selectedIndex,!1),t.$apply()):(t.showlist=!0,t.setSelectTop(),t.$apply())},t.hoverIn=function(e){t.selectedIndex=e,t.focusme()},t.setSelectTop=function(){a(function(){if(t.showlist&&!t.noFilter){var e=angular.element(o)[0].querySelector(".select2-results");if(angular.element(e.querySelector(".select2-result-current"))[0])var n=angular.element(e.querySelector(".select2-result-current"))[0].offsetTop;angular.element(e)[0].scrollTop=n}})},t.setCurrentTop=function(){a(function(){if(t.showlist){var e=angular.element(o)[0].querySelector(".select2-results");if(angular.element(e.querySelector(".hovstyle"))[0])var n=angular.element(e.querySelector(".hovstyle"))[0].offsetTop;n<angular.element(e)[0].scrollTop?angular.element(e)[0].scrollTop-=30:n+30>angular.element(e)[0].clientHeight&&(angular.element(e)[0].scrollTop+=30)}})},t.selectNext=function(){t.selectedIndex+1<=t.cName.length-1&&(t.selectedIndex+=1,t.showlist||t.selectOption(t.selectMsg,t.selectedIndex,!1),t.focusme(),t.$apply()),t.setCurrentTop()},t.selectPrev=function(){t.selectedIndex-1>=0?(t.selectedIndex-=1,t.showlist||t.selectOption(t.selectMsg,t.selectedIndex,!1),t.focusme(),t.$apply()):t.selectedIndex-1<0&&(void 0===l.placeholderAsOption||"true"===l.placeholderAsOption?t.selectedIndex=-1:t.selectedIndex=0,t.showlist||t.selectOption(t.selectMsg,t.selectedIndex,!1),t.focusme(),t.$apply()),t.setCurrentTop()},t.updateSelection=function(e){t.selectedOption=e.title,t.title=""},t.focusme=function(){a(function(){var e=angular.element(o).find("ul").find("li"),n=t.selectedIndex+2;t.noFilter&&(n=t.selectedIndex),angular.isDefined(e[n])&&e[n].focus()})},t.$watch("selCategory",function(e){e&&t.updateSelection(e)}),c.$viewChangeListeners.push(function(){t.$eval(l.ngChange)}),c.$render=function(){t.selCategory=c.$viewValue};var m=function(i){var a=n(angular.element(i.target),o,e);a||(t.showlist=!1,u.focus(),t.$apply())};i.click("showlist",m,t)}}}]),angular.module("att.abs.select",["att.abs.utilities","att.abs.position","att.abs.utilities"]).directive("attSelect",["$document","$filter","$isElement","$documentBind","$timeout","keymap","$log",function(e,t,n,i,a,s,r){return{restrict:"A",scope:{cName:"=attSelect"},transclude:!1,replace:!1,require:"ngModel",templateUrl:"app/scripts/ng_js_att_tpls/select/select.html",link:function(o,l,c,d){o.selectedIndex=-1,o.selectedOption=c.placeholder,o.isDisabled=!1,o.className="select2-match",o.showSearch=!1,o.showlist=!1,o.titleName=c.titlename,o.$watch("ngModel",function(){});var p="",u=new Date,h=void 0,g=[];a(function(){g=l.find("li")},10),c.noFilter||"true"===c.noFilter?o.noFilter=!0:o.noFilter=!1,"false"===c.placeholderAsOption?o.selectedOption=c.placeholder:o.selectMsg=c.placeholder,(c.startsWithFilter||"true"===c.startsWithFilter)&&(o.startsWithFilter=!0),"true"===c.showInputFilter&&(o.showSearch=!1,r.warn("showInputFilter functionality has been removed from the library.")),c.disabled&&(o.isDisabled=!0);var f=function(){return o.startsWithFilter?"startsWith":"filter"};h=angular.element(l).children().eq(0).find("span")[0];var m=0,v=function(){if(o.noFilter){var e=p,t=0;for(t=m;t<o.cName.length;t++)if(o.cName[t].title.startsWith(e)&&t!==o.selectedIndex){o.selectOption(o.cName[t],t,o.showlist),m=t,p="";break}(t>=o.cName.length||!o.cName[t+1].title.startsWith(e))&&m>0&&(m=0)}};o.showDropdown=function(){c.disabled||(o.showlist=!o.showlist,o.setSelectTop(),o.focusme())},l.bind("keydown",function(e){if(s.isAllowedKey(e.keyCode)||s.isControl(e)||s.isFunctionKey(e))switch(e.preventDefault(),e.stopPropagation(),e.keyCode){case s.KEY.DOWN:o.selectNext();break;case s.KEY.UP:o.selectPrev(),p="";break;case s.KEY.ENTER:o.selectCurrent(),p="";break;case s.KEY.BACKSPACE:o.title="",p="",o.$apply();break;case s.KEY.SPACE:o.noFilter||(o.title+=" "),o.$apply();break;case s.KEY.ESC:""===o.title||void 0===o.title?(o.showlist=!1,h.focus(),o.$apply()):(o.title="",o.$apply()),o.noFilter&&(p="",h.focus(),o.showlist=!1)}else if(e.keyCode!==s.KEY.TAB){if(o.noFilter){var n=new Date,i=Math.abs(u.getMilliseconds()-n.getMilliseconds());u=n,i>100&&(p=""),p=p?p+String.fromCharCode(e.keyCode):String.fromCharCode(e.keyCode),p.length>2&&(p=p.substring(0,2)),v()}else if(o.showlist=!0,o.title=o.title?o.title+String.fromCharCode(e.keyCode):String.fromCharCode(e.keyCode),""!=o.title)for(var a=t(f())(o.cName,o.title),r=0;r<a.length;r++)for(var l=0;l<o.cName.length&&angular.isDefined(o.cName[o.selectedIndex]);l++)if(a[r].title===o.cName[o.selectedIndex].title){o.selectedIndex=r,o.focusme();break}o.$apply()}else e.keyCode===s.KEY.TAB&&(o.showlist=!1,o.title="",o.$apply())}),o.selectOption=function(e,n,i){if(-1===n||"-1"===n)o.selCategory="",o.selectedIndex=-1,d.$setViewValue(""),"false"!==c.placeholderAsOption&&(o.selectedOption=o.selectMsg);else{if(""!=o.title){var s=t(f())(o.cName,o.title);if(angular.isDefined(s)&&angular.isDefined(s[n]))for(var r=0;r<o.cName.length;r++)if(s[n].title===o.cName[r].title){n=r;break}}o.selCategory=o.cName[n],o.selectedIndex=n,d.$setViewValue(o.selCategory),o.selectedOption=o.selCategory.title,d.$render(),a(function(){if(angular.isDefined(g[n]))try{g[index].focus()}catch(e){}})}o.title="",i||(o.showlist=!1,h.focus())},o.selectCurrent=function(){o.showlist?o.selectOption(o.selectMsg,o.selectedIndex,!1):(o.showlist=!0,o.setSelectTop()),o.$apply()},o.hoverIn=function(e){o.selectedIndex=e,o.focusme()},o.setSelectTop=function(){a(function(){if(o.showlist&&!o.noFilter){var e=angular.element(l)[0].querySelector(".select2-results");if(angular.element(e.querySelector(".select2-result-current"))[0])var t=angular.element(e.querySelector(".select2-result-current"))[0].offsetTop;angular.element(e)[0].scrollTop=t}})},o.setCurrentTop=function(){a(function(){if(o.showlist){var e=angular.element(l)[0].querySelector(".select2-results");if(angular.element(e.querySelector(".hovstyle"))[0])var t=angular.element(e.querySelector(".hovstyle"))[0].offsetTop;t<angular.element(e)[0].scrollTop?angular.element(e)[0].scrollTop-=30:t+30>angular.element(e)[0].clientHeight&&(angular.element(e)[0].scrollTop+=30)}})},o.selectNext=function(){o.cName.length;if(o.selectedIndex+1<=o.cName.length-1){o.selectedIndex+=1;var e=o.cName[o.selectedIndex].disabled;e&&(o.selectedIndex+=1),o.showlist||o.selectOption(o.selectMsg,o.selectedIndex,!1),o.focusme(),o.$apply()}o.setCurrentTop()},o.selectPrev=function(){if(o.selectedIndex-1>=0){o.selectedIndex-=1;var e=o.cName[o.selectedIndex].disabled;e&&(o.selectedIndex-=1),o.showlist||o.selectOption(o.selectMsg,o.selectedIndex,!1),o.focusme(),o.$apply()}else o.selectedIndex-1<0&&(void 0===c.placeholderAsOption||"true"===c.placeholderAsOption?void 0===c.placeholder?o.selectedIndex=0:o.selectedIndex=-1:o.selectedIndex=0,o.showlist||o.selectOption(o.selectMsg,o.selectedIndex,!1),o.focusme(),o.$apply());o.setCurrentTop()},o.updateSelection=function(e){o.selectedOption=e.title,o.title="",e.index<0&&o.selectOption(o.selectMsg,e.index,o.showlist)},o.focusme=function(){a(function(){var e=angular.element(l).find("ul").find("li"),t=o.selectedIndex+2;if(o.noFilter&&(t=o.selectedIndex),angular.isDefined(e[t]))try{e[t].focus()}catch(n){}})},o.$watch("selCategory",function(e){e&&o.updateSelection(e)}),d.$viewChangeListeners.push(function(){o.$eval(c.ngChange)}),d.$render=function(){o.selCategory=d.$viewValue};var b=function(t){var i=n(angular.element(t.target),l,e);i||(o.showlist=!1,h.focus(),o.$apply())};i.click("showlist",b,o)}}}]).directive("textDropdown",["$document","$isElement","$documentBind","keymap",function(e,t,n,i){return{restrict:"EA",replace:!0,scope:{actions:"=actions",defaultAction:"=defaultAction",onActionClicked:"=?"},templateUrl:"app/scripts/ng_js_att_tpls/select/textDropdown.html",link:function(a,s,r){a.selectedIndex=0,a.selectedOption=r.placeholder,a.isDisabled=!1,a.isActionsShown=!1;var o=void 0;if(r.disabled&&(a.isDisabled=!0),o=s.find("div")[0],angular.isDefined(a.defaultAction))if(angular.isDefined(a.defaultAction)||""!==a.defaultAction){for(var l in a.actions)if(a.actions[l]===a.defaultAction){a.currentAction=a.actions[l],a.selectedIndex=a.actions.indexOf(l),a.isActionsShown=!1;break}}else a.currentAction=a.actions[0];else a.currentAction=a.actions[0],a.selectedIndex=0;a.toggle=function(){a.isActionsShown=!a.isActionsShown},a.chooseAction=function(e,t,n){null!=e?(a.currentAction=t,a.selectedIndex=n):a.currentAction=a.actions[a.selectedIndex],angular.isFunction(a.onActionClicked)&&a.onActionClicked(a.currentAction),a.toggle()},a.isCurrentAction=function(e){return e===a.currentAction},s.bind("keydown",function(e){if(i.isAllowedKey(e.keyCode)||i.isControl(e)||i.isFunctionKey(e)){switch(e.preventDefault(),e.stopPropagation(),e.keyCode){case i.KEY.DOWN:a.selectNext();break;case i.KEY.UP:a.selectPrev();break;case i.KEY.ENTER:a.selectCurrent();break;case i.KEY.ESC:a.isActionsShown=!1,o.focus(),a.$apply()}return void a.$apply()}e.keyCode===i.KEY.TAB&&(a.isActionsShown=!1,a.$apply())}),a.selectCurrent=function(){a.selectedIndex<0&&(a.selectedIndex=0),a.isActionsShown?a.chooseAction(null,a.currentAction):a.toggle()},a.selectNext=function(){a.isActionsShown&&(a.selectedIndex+1<a.actions.length?a.selectedIndex+=1:a.selectedIndex=a.actions.length-1,a.$apply())},a.selectPrev=function(){a.isActionsShown&&(a.selectedIndex-1>=0?a.selectedIndex-=1:a.selectedIndex-1<0&&(a.selectedIndex=0),a.$apply())},a.hoverIn=function(e){a.selectedIndex=e};var c=function(n){var i=t(angular.element(n.target),s,e);i||(a.toggle(),a.$apply())};n.click("isActionsShown",c,a)}}}]),angular.module("att.abs.slider",["att.abs.position"]).constant("sliderDefaultOptions",{width:300,step:1,precision:0,disabledWidth:116}).directive("attSlider",["sliderDefaultOptions","$position","$document",function(e,t,n){return{restrict:"EA",replace:!0,transclude:!0,scope:{floor:"=",ceiling:"=",step:"@",precision:"@",width:"@",textDisplay:"=",value:"=",ngModelSingle:"=?",ngModelLow:"=?",ngModelHigh:"=?",ngModelDisabled:"=?"},templateUrl:"app/scripts/ng_js_att_tpls/slider/slider.html",link:function(i,a,s){var r,o,l,c,d,p,u,h,g,f,m,v,b,_,y,w,k,C,S=0,x=!1;i.minPtrOffset=0,i.maxPtrOffset=0;var T=e.disabledWidth,D=a.children();h=D[0].children,h=angular.element(h[0]),C=D[1].children,k=angular.element(C[0]),w=angular.element(C[1]),y=angular.element(C[2]),g=null==s.ngModelSingle&&null==s.ngModelLow&&null==s.ngModelHigh&&null!=s.ngModelDisabled,v=null==s.ngModelSingle&&null!=s.ngModelLow&&null!=s.ngModelHigh,b="ngModelLow",_="ngModelHigh",v?k.remove():(w.remove(),y.remove()),g?(i.disabledStyle={width:T+"px",zIndex:1},i.handleStyle={left:T+"px"}):h.remove(),f=parseFloat(i.floor),m=parseFloat(i.ceiling),u=m-f,r=0,o=void 0!==s.width?s.width:0!==a[0].clientWidth?a[0].clientWidth:e.width,p=o-r,i.keyDown=function(n){if(39===n.keyCode){var s=t.position(a).left;if(l)"ngModelLow"===i.ref?(c=e.step+c,l=c):"ngModelHigh"===i.ref?(d=e.step+d,\r
+l=d):l=e.step+l;else{if(v&&"ngModelLow"===i.ref)return;l=e.step+s,c=d=l}}else if(37===n.keyCode){var r=t.position(k).left;l?0>=l||("ngModelLow"===i.ref?(c-=e.step,l=c):"ngModelHigh"===i.ref?(d-=e.step,l=d):(l-=e.step,c=d=l)):l=r-e.step}l>=0&&i.ptrOffset(l)},i.mouseDown=function(e,t){i.ref=t,x=!0,S=v?i.ref===b?e.clientX-i.minPtrOffset:e.clientX-i.maxPtrOffset:l?e.clientX-l:e.clientX,g&&(i.ref="ngModelDisabled",i.disabledStyle={width:T+"px",zIndex:1})},i.moveElem=function(e){if(x){var t;t=e.clientX,l=t-S,i.ptrOffset(l)}},i.focus=function(e,t){console.log(t),i.ref=t},i.mouseUp=function(e){x=!1,w.removeClass("dragging"),y.removeClass("dragging"),k.removeClass("dragging"),n.off("mousemove")},i.keyUp=function(e){x=!1,w.removeClass("dragging"),y.removeClass("dragging"),k.removeClass("dragging"),n.off("mousemove")},i.calStep=function(e,t,n,i){var a,s,r,o;return null===i&&(i=0),null===n&&(n=1/Math.pow(10,t)),s=(e-i)%n,o=s>n/2?e+n-s:e-s,a=Math.pow(10,t),r=o*a/a,r.toFixed(t)},i.percentOffset=function(e){return(e-r)/p*100},i.ptrOffset=function(t){var n,a;if(t=Math.max(Math.min(t,o),r),n=i.percentOffset(t),a=f+u*n/100,v){var s;i.ref===b?(i.minHandleStyle={left:t+"px"},i.minNewVal=a,i.minPtrOffset=t,w.addClass("dragging"),a>i.maxNewVal&&(i.ref=_,y[0].focus(),i.maxNewVal=a,i.maxPtrOffset=t,y.addClass("dragging"),w.removeClass("dragging"),i.maxHandleStyle={left:t+"px"})):(i.maxHandleStyle={left:t+"px"},i.maxNewVal=a,i.maxPtrOffset=t,y.addClass("dragging"),a<i.minNewVal&&(i.ref=b,w[0].focus(),i.minVal=a,i.minPtrOffset=t,w.addClass("dragging"),y.removeClass("dragging"),i.minHandleStyle={left:t+"px"})),s=parseInt(i.maxPtrOffset)-parseInt(i.minPtrOffset),i.rangeStyle={width:s+"px",left:i.minPtrOffset+"px"}}else g&&t>T?i.rangeStyle={width:t+"px",zIndex:0}:(k.addClass("dragging"),i.rangeStyle={width:t+"px"}),i.handleStyle={left:t+"px"};(void 0===i.precision||void 0===i.step)&&(i.precision=e.precision,i.step=e.step),a=i.calStep(a,parseInt(i.precision),parseFloat(i.step),parseFloat(i.floor)),i[i.ref]=a}}}}]).directive("attSliderMin",[function(){return{require:"^attSlider",restrict:"EA",replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/slider/minContent.html"}}]).directive("attSliderMax",[function(){return{require:"^attSlider",restrict:"EA",replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/slider/maxContent.html"}}]),angular.module("att.abs.splitButtonDropdown",["att.abs.utilities","att.abs.position"]).directive("attButtonDropdown",["$document","$parse","$documentBind","$timeout","$isElement",function(e,t,n,i,a){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/splitButtonDropdown/splitButtonDropdown.html",scope:{btnText:"@",btnType:"@",btnLink:"@",btnClick:"&",toggleTitle:"@"},controller:["$scope","$element",function(e,t){this.cSelected=0,this.closeAndFocusDropdown=function(){e.isDropDownOpen&&e.$apply(function(){e.isDropDownOpen=!1,angular.element(t[0].querySelector("a.dropdown-toggle"))[0].focus()})},this.focusNext=function(){this.cSelected=this.cSelected+1>=this.childScopes.length?e.cycleSelection===!0?0:this.childScopes.length-1:this.cSelected+1,this.childScopes[this.cSelected].sFlag=!0,this.resetFlag(this.cSelected)},this.focusPrev=function(){this.cSelected=this.cSelected-1<0?e.cycleSelection===!0?this.childScopes.length-1:0:this.cSelected-1,this.childScopes[this.cSelected].sFlag=!0,this.resetFlag(this.cSelected)},this.childScopes=[],this.registerScope=function(e){this.childScopes.push(e)},this.resetFlag=function(e){for(var t=0;t<this.childScopes.length;t++)t!==e&&(this.childScopes[t].sFlag=!1)}}],link:function(s,r,o){s.isSmall=""===o.small?!0:!1,s.multiselect=""===o.multiselect?!0:!1,s.cycleSelection=""===o.cycleSelection?!0:!1,s.isDropDownOpen=!1,s.isActionDropdown=!1,s.btnText||(s.isActionDropdown=!0),s.clickFxn=function(){"function"!=typeof s.btnClick||s.btnLink||(s.btnClick=t(s.btnClick),s.btnClick()),s.multiselect===!0&&(s.isDropDownOpen=!1)},s.toggleDropdown=function(){"disabled"!==s.btnType&&(s.isDropDownOpen=!s.isDropDownOpen,s.isDropDownOpen&&i(function(){angular.element(r[0].querySelector("li"))[0].focus()}))},s.btnTypeSelector=function(e,t){""!==e?s.btnTypeFinal=e:s.btnTypeFinal=t};var l=function(t){var n=a(angular.element(t.target),r.find("ul").eq(0),e);n||(s.isDropDownOpen=!1,s.$apply())};n.click("isDropDownOpen",l,s),o.$observe("btnType",function(e){s.btnType=e}),o.$observe("attButtonDropdown",function(e){o.attButtonDropdown=e,s.btnTypeSelector(o.attButtonDropdown,s.btnType)})}}}]).directive("attButtonDropdownItem",["$location","keymap",function(e,t){return{restrict:"EA",require:["^attButtonDropdown","?ngModel"],replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/splitButtonDropdown/splitButtonDropdownItem.html",scope:{itemLink:"@"},link:function(e,n,i,a){angular.element(n[0].querySelector("a"));e.sFlag=!1,a[0].registerScope(e);a[1]?e.isSelected=a[1].$viewValue:e.isSelected=!1,n.bind("keydown",function(n){if(t.isAllowedKey(n.keyCode)||t.isControl(n)||t.isFunctionKey(n))switch(n.preventDefault(),n.stopPropagation(),n.keyCode){case t.KEY.DOWN:a[0].focusNext();break;case t.KEY.UP:a[0].focusPrev();break;case t.KEY.ENTER:e.selectItem();break;case t.KEY.ESC:a[0].closeAndFocusDropdown()}e.$apply()}),e.selectItem=function(){a[1]&&e.$evalAsync(function(){a[1].$setViewValue(!a[1].$viewValue)})}}}}]),angular.module("att.abs.splitIconButton",["att.abs.utilities"]).constant("iconStateConstants",{MIDDLE:"middle",LEFT:"left",RIGHT:"right",NEXT_TO_DROPDOWN:"next-to-dropdown",LEFT_NEXT_TO_DROPDOWN:"left-next-to-dropdown",DIR_TYPE:{LEFT:"left",RIGHT:"right",BUTTON:"button"},SPLIT_ICON_BTN_EVENT_EMITTER_KEY:"splitIconButtonTap"}).directive("expandableLine",[function(){return{restrict:"EA",replace:!0,priority:300,require:["^attSplitIconButton","expandableLine"],controller:["$scope",function(e){e.isActive=!1,this.setActiveState=function(t){e.isActive=t},this.isActive=e.isActive,this.dirType=e.dirType}],template:"<div ng-class=\"{'expand-line-container': !isActive, 'expand-line-container-active': isActive}\"> <div ng-class=\"{'hovered-line':isActive, 'vertical-line':!isActive}\"> </div></div>",scope:{dirType:"@"},link:function(e,t,n,i){var a=i[0],s=i[1];a.addSubCtrl(s)}}}]).controller("AttSplitIconCtrl",["$scope",function(e){this.setType=function(t){e.type=t},this.isDropdown=function(t){e.isDropdown=t},this.dropDownClicked=function(){e.dropDownClicked&&e.dropDownClicked()},this.dirType=e.dirType}]).directive("attSplitIcon",["$document","$timeout","iconStateConstants","$documentBind","events","keymap",function(e,t,n,i,a,s){return{restrict:"EA",replace:!0,priority:200,transclude:!0,require:["^attSplitIconButton","attSplitIcon"],templateUrl:"app/scripts/ng_js_att_tpls/splitIconButton/splitIcon.html",scope:{icon:"@",iconTitle:"@title",hoverWatch:"=",dropDownWatch:"=",dirType:"@"},controller:"AttSplitIconCtrl",link:function(e,t,r,o){var l=o[0],c=o[1];l.addSubCtrl(c),e.iconStateConstants=n;var d,p=0,u=!1;e.isDropdown=!1,e.isDropdownOpen=!1;var h=function(t){e.isDropdown&&(u?(u=!1,e.toggleDropdown()):e.toggleDropdown(!1),e.$apply())};r.dropDownId&&""!==r.dropDownId&&(e.dropDownId=r.dropDownId,e.isDropdown=!0),e.$on(n.SPLIT_ICON_BTN_EVENT_EMITTER_KEY,function(n,i){function r(t){switch(t.which){case s.KEY.TAB:e.toggleDropdown(!1),e.$digest();break;case s.KEY.ESC:h();break;case s.KEY.ENTER:e.isDropDownOpen&&o();break;case s.KEY.UP:t.preventDefault(),a.stopPropagation(t),e.isDropDownOpen&&e.previousItemInDropdown();break;case s.KEY.DOWN:t.preventDefault(),a.stopPropagation(t),e.isDropDownOpen?e.nextItemInDropdown():(u=!0,h(),o())}}function o(){if(void 0===d){d=[];for(var e=t.find("li"),n=0;n<e.length;n++)d.push(e.eq(n));d[p].children().eq(0).addClass("selected-item")}}if("boolean"==typeof i&&i)e.dropDownClicked(),e.isDropDownOpen&&d[p].eq(0).find("a")[0].click();else{var l=i;e.isDropdown&&r(l)}}),e.nextItemInDropdown=function(){d&&p<d.length-1&&(p++,d[p-1].children().eq(0).removeClass("selected-item"),d[p].children().eq(0).addClass("selected-item"))},e.previousItemInDropdown=function(){p>0&&(p--,d[p].children().eq(0).addClass("selected-item"),p+1<d.length&&d[p+1].children().eq(0).removeClass("selected-item"))},e.$watch("isIconHovered",function(t){e.hoverWatch=t}),e.$watch("type",function(t){function n(t,n,i,a,s){e.isMiddle=t,e.isNextToDropDown=n,e.isRight=i,e.isLeft=a,e.isLeftNextDropdown=s}switch(t){case e.iconStateConstants.MIDDLE:n(!0,!1,!1,!0,!1);break;case e.iconStateConstants.LEFT:n(!1,!1,!1,!0,!1);break;case e.iconStateConstants.RIGHT:n(!1,!1,!0,!1,!1);break;case e.iconStateConstants.NEXT_TO_DROPDOWN:n(!1,!0,!0,!0,!1);break;case e.iconStateConstants.LEFT_NEXT_TO_DROPDOWN:n(!1,!1,!1,!0,!0)}}),e.dropDownClicked=function(){u=!0},e.toggleDropdown=function(t){void 0!==t?e.isDropDownOpen=t:e.isDropDownOpen=!e.isDropDownOpen,e.dropDownWatch=e.isDropDownOpen},i.click("isDropdown",h,e)}}}]).controller("AttSplitIconButtonCtrl",["$scope","iconStateConstants",function(e,t){function n(e){var t=-1;for(var n in i.subCtrls){var a=i.subCtrls[n];if(a.dirType===e){t=n;break}}return t}this.subCtrls=[],e.isLeftLineShown=!0,e.isRightLineShown=!0,e.childrenScopes=[];var i=this;this.addSubCtrl=function(e){this.subCtrls.push(e)},this.isLeftLineShown=function(t){return void 0===t?e.isLeftLineShown:void(e.isLeftLineShown=t)},this.isRightLineShown=function(t){return void 0===t?e.isRightLineShown:void(e.isRightLineShown=t)},this.setLeftLineHover=function(i){var a=n(t.DIR_TYPE.LEFT);e.isLeftLineShown&&this.subCtrls[a]&&this.subCtrls[a].setActiveState&&this.subCtrls[a].setActiveState(i)},this.setRightLineHover=function(i){var a=n(t.DIR_TYPE.RIGHT);e.isRightLineShown&&this.subCtrls[a]&&this.subCtrls[a].setActiveState&&this.subCtrls[a].setActiveState(i)},this.toggleLines=function(i,a,s,r){function o(){for(var e=0;c>e;e++)if(l[e]===s){c-1>=e+1&&l[e+1].isLeftLineShown()&&l[e+1].subCtrls[d]&&l[e+1].subCtrls[d].setActiveState&&l[e+1].subCtrls[d].setActiveState(i),e-1>=0&&l[e-1].isRightLineShown()&&l[e-1].subCtrls[p]&&l[e-1].subCtrls[p].setActiveState&&l[e-1].subCtrls[p].setActiveState(i);break}}var l=a.subIconButtons,c=l.length,d=n(t.DIR_TYPE.LEFT),p=n(t.DIR_TYPE.RIGHT);r?l[c-2]==s?l[c-2].isLeftLineShown()?l[c-2].subCtrls[d].setActiveState(i):c-3>=0&&l[c-3].isRightLineShown()&&l[c-3].subCtrls[p].setActiveState(i):(o(),e.isLeftLineShown&&this.subCtrls[d].setActiveState(i),e.isRightLineShown&&this.subCtrls[p].setActiveState(i)):(e.isLeftLineShown||e.isRightLineShown||o(),e.isLeftLineShown&&this.subCtrls[d].setActiveState&&this.subCtrls[d].setActiveState(i),e.isRightLineShown&&this.subCtrls[p].setActiveState&&this.subCtrls[p].setActiveState(i))},this.setButtonType=function(e){var i=n(t.DIR_TYPE.BUTTON);this.subCtrls[i]&&this.subCtrls[i].setType&&this.subCtrls[i].setType(e)}}]).directive("attSplitIconButton",["$document","iconStateConstants","keymap",function(e,t,n){return{restrict:"EA",replace:!0,priority:100,transclude:!0,require:["^attSplitIconButtonGroup","attSplitIconButton"],controller:"AttSplitIconButtonCtrl",templateUrl:"app/scripts/ng_js_att_tpls/splitIconButton/splitIconButton.html",scope:{icon:"@",title:"@",dropDownId:"@"},link:function(e,i,a,s){e.title||(e.title=e.icon);var r=s[0],o=s[1];r.addIconButton(o),i.bind("keydown",function(i){(i.which===n.KEY.ESC||i.which===n.KEY.DOWN||i.which===n.KEY.ENTER||i.which===n.KEY.UP||i.which===n.KEY.TAB)&&(e.clickHandler(),e.$broadcast(t.SPLIT_ICON_BTN_EVENT_EMITTER_KEY,i))}),e.dropDownWatch=!1,e.iconStateConstants=t,e.clickHandler=function(){r.hideLeftLineRightButton(o)},e.$watch("isHovered",function(e){e?o.toggleLines(e,r,o,r.isDropDownOpen):o.toggleLines(e,r,o,r.isDropDownOpen)}),e.$watch("dropDownWatch",function(e){r.isDropDownOpen=e,r.toggleDropdownState(e)})}}}]).controller("AttSplitIconButtonGroupCtrl",["$scope","iconStateConstants",function(e,t){this.subIconButtons=[],this.addIconButton=function(e){this.subIconButtons.push(e)},this.isDropDownOpen=!1,this.hideLeftLineRightButton=function(e){var t=this.subIconButtons.length,n=this.subIconButtons[t-2],i=this.subIconButtons[t-1];e!=n&&e!=i&&i.setLeftLineHover(!1)},this.toggleDropdownState=function(e){var n=this.subIconButtons.length;n>2?e?(this.subIconButtons[n-2].isRightLineShown()?this.subIconButtons[n-2].setRightLineHover(!0):this.subIconButtons[n-1].setLeftLineHover(!0),this.subIconButtons[n-2].setButtonType(t.NEXT_TO_DROPDOWN)):(this.subIconButtons[n-1].setLeftLineHover(!1),this.subIconButtons[n-2].setButtonType(t.MIDDLE)):e?(this.subIconButtons[0].setRightLineHover(!0),this.subIconButtons[0].setButtonType(t.LEFT_NEXT_TO_DROPDOWN)):this.subIconButtons[0].setButtonType(t.LEFT)}}]).directive("attSplitIconButtonGroup",["$document","$timeout","iconStateConstants",function(e,t,n){return{restrict:"EA",replace:!0,priority:50,transclude:!0,require:"attSplitIconButtonGroup",controller:"AttSplitIconButtonGroupCtrl",templateUrl:"app/scripts/ng_js_att_tpls/splitIconButton/splitIconButtonGroup.html",scope:{},link:function(e,i,a,s){function r(){var e=s.subIconButtons,t=0,a=e.length-1;if(e[t].setButtonType(n.LEFT),e[t].isLeftLineShown(!1),e[t].isRightLineShown(!0),e[a].setButtonType(n.RIGHT),e[a].isRightLineShown(!1),e[a].isLeftLineShown(!1),a>=2){for(var r=1;a>r;)e[r].setButtonType(n.MIDDLE),e[r].isRightLineShown(!1),e[r].isLeftLineShown(!1),r++;for(var o=2;a>=o;)o==a?e[o].isLeftLineShown(!0):(e[o].isRightLineShown(!0),e[o].isLeftLineShown(!0)),o+=2}var l=i.find("ul");if(l.length>0){var c=a+1;if(c>2){var d=34*c-70+c/1.5+.5,p=d+"px";angular.element(l).css("left",p),angular.element(l).css("border-top-left-radius","0px")}else angular.element(l).css("left","0px")}}t(r,100)}}}]),angular.module("att.abs.stepSlider",["att.abs.position"]).constant("sliderConstants",{SLIDER:{settings:{from:1,to:40,step:1,smooth:!0,limits:!0,value:"3",dimension:"",vertical:!1},className:"jslider",selector:".jslider-"},EVENTS:{},COLORS:{GREEN:"green",BLUE_HIGHLIGHT:"blue",MAGENTA:"magenta",GOLD:"gold",PURPLE:"purple",DARK_BLUE:"dark-blue",REGULAR:"regular",WHITE:"white"}}).factory("utils",function(){return{offset:function(e){var t=e[0],n=0,i=0,a=document.documentElement||document.body,s=window.pageXOffset||a.scrollLeft,r=window.pageYOffset||a.scrollTop;return n=t.getBoundingClientRect().left+s,i=t.getBoundingClientRect().top+r,{left:n,top:i}},roundUpToScale:function(e,t,n,i){function a(e,t){var n=.1;return Math.abs(t-e)<=n?!0:!1}for(var s,r,o,l,c=1;c<t.length;c++){if(s=t[c-1],r=t[c],l=.5*(r-s)+s,0===s&&l>=e||a(s,e)){o=s;break}if(e>s&&(r>e||a(e,r))){o=r;break}}return n&&n>o?t[i]:o},valueForDifferentScale:function(e,t,n,i){var a=n/100;return 0===a?e:i[n]},convertToMbpsGbps:function(e,t,n){function i(e,t){var n=Math.pow(10,t);return~~(e*n)/n}var a=3;return n&&(a=n),e>1024&&1e6>e&&angular.equals(t,"Kbps")?(e=i(e/1e3,a),t="Mbps"):e>1024&&1e6>e&&angular.equals(t,"Mbps")?(e=i(e/1e3,a),t="Mbps"):t=(1024>=e&&angular.equals(t,"Mbps"),"Kbps"),e>=1e6&&angular.equals(t,"Kbps")&&(e=i(e/1e6,a),t="Gbps"),{unitValue:e,unitLabel:t}},getConversionFactorValue:function(e,t,n){if(e<=t[0].startVal)return{scaledVal:e,scaledDimension:n};var i=0;for(var a in t){var s=t[a];e>s.startVal&&(i=a)}var r=t[i].scaleFactor,o=e/r,l=t[i].dimension;return{scaledVal:o,scaledDimension:l}}}}).factory("sliderDraggable",["utils",function(e){function t(){this._init.apply(this,arguments)}return t.prototype.oninit=function(){},t.prototype.events=function(){},t.prototype.onmousedown=function(){this.ptr.css({position:"absolute"})},t.prototype.onmousemove=function(e,t,n){this.ptr.css({left:t,top:n})},t.prototype.onmouseup=function(){},t.prototype.isDefault={drag:!1,clicked:!1,toclick:!0,mouseup:!1},t.prototype._init=function(){if(arguments.length>0){if(this.ptr=arguments[0],this.parent=arguments[2],!this.ptr)return;this.is={},angular.extend(this.is,this.isDefault);var t=e.offset(this.ptr);this.d={left:t.left,top:t.top,width:this.ptr[0].clientWidth,height:this.ptr[0].clientHeight},this.oninit.apply(this,arguments),this._events()}},t.prototype._getPageCoords=function(e){var t={};return t=e.targetTouches&&e.targetTouches[0]?{x:e.targetTouches[0].pageX,y:e.targetTouches[0].pageY}:{x:e.pageX,y:e.pageY}},t.prototype._bindEvent=function(e,t,n){this.supportTouches_?e[0].attachEvent(this.events_[t],n):e.bind&&e.bind(this.events_[t],n)},t.prototype._events=function(){var e=this;this.supportTouches_="ontouchend"in document,this.events_={click:this.supportTouches_?"touchstart":"click",down:this.supportTouches_?"touchstart":"mousedown",move:this.supportTouches_?"touchmove":"mousemove",up:this.supportTouches_?"touchend":"mouseup",mousedown:(this.supportTouches_,"mousedown")};var t=angular.element(window.document);this._bindEvent(t,"move",function(t){e.is.drag&&(t.stopPropagation(),t.preventDefault(),e.parent.disabled||e._mousemove(t))}),this._bindEvent(t,"down",function(t){e.is.drag&&(t.stopPropagation(),t.preventDefault())}),this._bindEvent(t,"up",function(t){e._mouseup(t)}),this._bindEvent(this.ptr,"down",function(t){return e._mousedown(t),!1}),this._bindEvent(this.ptr,"up",function(t){e._mouseup(t)}),this.events()},t.prototype._mousedown=function(e){this.is.drag=!0,this.is.clicked=!1,this.is.mouseup=!1;var t=this._getPageCoords(e);this.cx=t.x-this.ptr[0].offsetLeft,this.cy=t.y-this.ptr[0].offsetTop,angular.extend(this.d,{left:this.ptr[0].offsetLeft,top:this.ptr[0].offsetTop,width:this.ptr[0].clientWidth,height:this.ptr[0].clientHeight}),this.outer&&this.outer.get(0)&&this.outer.css({height:Math.max(this.outer.height(),$(document.body).height()),overflow:"hidden"}),this.onmousedown(e)},t.prototype._mousemove=function(e){if(0!==this.uid){this.is.toclick=!1;var t=this._getPageCoords(e);this.onmousemove(e,t.x-this.cx,t.y-this.cy)}},t.prototype._mouseup=function(e){this.is.drag&&(this.is.drag=!1,this.outer&&this.outer.get(0)&&($.browser.mozilla?this.outer.css({overflow:"hidden"}):this.outer.css({overflow:"visible"}),$.browser.msie&&"6.0"===$.browser.version?this.outer.css({height:"100%"}):this.outer.css({height:"auto"})),this.onmouseup(e))},t}]).factory("sliderPointer",["sliderDraggable","utils",function(e,t){function n(){e.apply(this,arguments)}return n.prototype=new e,n.prototype.oninit=function(e,t,n){this.uid=t,this.parent=n,this.value={},this.settings=angular.copy(n.settings)},n.prototype.onmousedown=function(e){var n=t.offset(this.parent.domNode),i={left:n.left,top:n.top,width:this.parent.domNode[0].clientWidth,height:this.parent.domNode[0].clientHeight};this._parent={offset:i,width:i.width,height:i.height},this.ptr.addClass("jslider-pointer-hover"),this.setIndexOver()},n.prototype.onmousemove=function(e,n,i){var a=this._getPageCoords(e),s=this.calc(a.x);this.parent.settings.smooth||(s=t.roundUpToScale(s,this.parent.settings.scale,this.parent.settings.cutOffWidth,this.parent.settings.cutOffIndex));var r=this.parent.settings.cutOffWidth;r&&r>s&&(s=r),this._set(s)},n.prototype.onmouseup=function(e){if(this.settings.callback&&angular.isFunction(this.settings.callback)){var t=this.parent.getValue();this.settings.callback.call(this.parent,t)}this.ptr.removeClass("jslider-pointer-hover")},n.prototype.setIndexOver=function(){this.parent.setPointersIndex(1),this.index(2)},n.prototype.index=function(e){},n.prototype.limits=function(e){return this.parent.limits(e,this)},n.prototype.calc=function(e){var t=e-this._parent.offset.left,n=this.limits(100*t/this._parent.width);return n},n.prototype.set=function(e,t){this.value.origin=this.parent.round(e),this._set(this.parent.valueToPrc(e,this),t)},n.prototype._set=function(e,t){t||(this.value.origin=this.parent.prcToValue(e)),this.value.prc=e,this.ptr.css({left:e+"%"}),this.parent.redraw(this)},n}]).factory("slider",["sliderPointer","sliderConstants","utils",function(e,t,n){function i(){return this.init.apply(this,arguments)}function a(e){s.css("width",e)}var s;return i.prototype.changeCutOffWidth=a,i.prototype.init=function(e,n,i){this.settings=t.SLIDER.settings,angular.extend(this.settings,angular.copy(i)),this.inputNode=e,this.inputNode.addClass("ng-hide"),this.settings.interval=this.settings.to-this.settings.from,this.settings.calculate&&$.isFunction(this.settings.calculate)&&(this.nice=this.settings.calculate),this.settings.onstatechange&&$.isFunction(this.settings.onstatechange)&&(this.onstatechange=this.settings.onstatechange),this.is={init:!1},this.o={},this.create(n)},i.prototype.create=function(t){var i=this;this.domNode=t;var a=n.offset(this.domNode),r={left:a.left,top:a.top,width:this.domNode[0].clientWidth,height:this.domNode[0].clientHeight};this.sizes={domWidth:this.domNode[0].clientWidth,domOffset:r},angular.extend(this.o,{pointers:{},labels:{0:{o:angular.element(this.domNode.find("div")[5])},1:{o:angular.element(this.domNode.find("div")[6])}},limits:{0:angular.element(this.domNode.find("div")[3]),1:angular.element(this.domNode.find("div")[5])}}),angular.extend(this.o.labels[0],{value:this.o.labels[0].o.find("span")}),angular.extend(this.o.labels[1],{value:this.o.labels[1].o.find("span")}),i.settings.value.split(";")[1]||(this.settings.single=!0);var o=this.domNode.find("div");s=angular.element(o[8]),s&&s.css&&s.css("width","0%");var l=[angular.element(o[1]),angular.element(o[2])];angular.forEach(l,function(t,n){i.settings=angular.copy(i.settings);var a=i.settings.value.split(";")[n];if(a){i.o.pointers[n]=new e(t,n,i);var s=i.settings.value.split(";")[n-1];s&&parseInt(a,10)<parseInt(s,10)&&(a=s);var r=a<i.settings.from?i.settings.from:a;r=a>i.settings.to?i.settings.to:a,i.o.pointers[n].set(r,!0),0===n&&i.domNode.bind("mousedown",i.clickHandler.apply(i))}}),this.o.value=angular.element(this.domNode.find("i")[2]),this.is.init=!0,angular.forEach(this.o.pointers,function(e){i.redraw(e)})},i.prototype.clickHandler=function(){var e=this;return function(t){if(!e.disabled){var i=t.target.className,a=0;i.indexOf("jslider-pointer-to")>0&&(a=1);var s=n.offset(e.domNode),r={left:s.left,top:s.top,width:e.domNode[0].clientWidth,height:e.domNode[0].clientHeight};a=1;var o=e.o.pointers[a];return o._parent={offset:r,width:r.width,height:r.height},o._mousemove(t),o.onmouseup(),!1}}},i.prototype.disable=function(e){this.disabled=e},i.prototype.nice=function(e){return e},i.prototype.onstatechange=function(){},i.prototype.limits=function(e,t){if(!this.settings.smooth){var n=100*this.settings.step/this.settings.interval;e=Math.round(e/n)*n}var i=this.o.pointers[1-t.uid];i&&t.uid&&e<i.value.prc&&(e=i.value.prc),i&&!t.uid&&e>i.value.prc&&(e=i.value.prc),0>e&&(e=0),e>100&&(e=100);var a=Math.round(10*e)/10;return a},i.prototype.setPointersIndex=function(e){angular.forEach(this.getPointers(),function(e,t){e.index(t)})},i.prototype.getPointers=function(){return this.o.pointers},i.prototype.onresize=function(){var e=this;this.sizes={domWidth:this.domNode[0].clientWidth,domHeight:this.domNode[0].clientHeight,domOffset:{left:this.domNode[0].offsetLeft,top:this.domNode[0].offsetTop,width:this.domNode[0].clientWidth,height:this.domNode[0].clientHeight}},angular.forEach(this.o.pointers,function(t,n){e.redraw(t)})},i.prototype.update=function(){this.onresize(),this.drawScale()},i.prototype.drawScale=function(){},i.prototype.redraw=function(e){if(!this.settings.smooth){var t=n.roundUpToScale(e.value.prc,this.settings.scale,this.settings.cutOffWidth,this.settings.cutOffIndex);e.value.origin=t,e.value.prc=t}if(!this.is.init)return!1;this.setValue();var i=this.o.pointers[1].value.prc,a={left:"0%",width:i+"%"};this.o.value.css(a);var s=this.nice(e.value.origin),r=this.settings.firstDimension;if(this.settings.stepWithDifferentScale&&!this.settings.smooth&&(s=n.valueForDifferentScale(this.settings.from,this.settings.to,s,this.settings.prcToValueMapper)),this.settings.realtimeCallback&&angular.isFunction(this.settings.realtimeCallback)&&void 0!==this.settings.cutOffVal&&1===e.uid&&this.settings.realtimeCallback(s),this.settings.conversion){var o=n.getConversionFactorValue(parseInt(s),this.settings.conversion,this.settings.firstDimension);s=o.scaledVal,r=o.scaledDimension}s=parseFloat(s);var l=n.convertToMbpsGbps(s,r,this.settings.decimalPlaces);this.o.labels[e.uid].value.html(l.unitValue+" "+l.unitLabel),this.redrawLabels(e)},i.prototype.redrawLabels=function(e){function t(e,t,i){t.margin=-t.label/2;var a=n.sizes.domWidth,s=t.border+t.margin;return 0>s&&(t.margin-=s),t.border+t.label/2>a?(t.margin=0,t.right=!0):t.right=!1,t.margin=-(e.o[0].clientWidth/2-e.o[0].clientWidth/20),e.o.css({left:i+"%",marginLeft:t.margin,right:"auto"}),t.right&&e.o.css({left:"auto",right:0}),t}var n=this,i=this.o.labels[e.uid],a=e.value.prc,s={label:i.o[0].offsetWidth,right:!1,border:a*l/100},r=null,o=null;if(!this.settings.single)switch(o=this.o.pointers[1-e.uid],r=this.o.labels[o.uid],e.uid){case 0:s.border+s.label/2>r.o[0].offsetLeft-this.sizes.domOffset.left?(r.o.css({visibility:"hidden"}),r.value.html(this.nice(o.value.origin)),i.o.css({visibility:"hidden"}),a=(o.value.prc-a)/2+a,o.value.prc!==e.value.prc&&(i.value.html(this.nice(e.value.origin)+"&nbsp;&ndash;&nbsp;"+this.nice(o.value.origin)),s.label=i.o[0].clientWidth,s.border=a*l/100)):r.o.css({visibility:"visible"});break;case 1:s.border-s.label/2<r.o[0].offsetLeft-this.sizes.domOffset.left+r.o[0].clientWidth?(r.o.css({visibility:"hidden"}),r.value.html(this.nice(o.value.origin)),i.o.css({visibility:"visible"}),a=(a-o.value.prc)/2+o.value.prc,o.value.prc!==e.value.prc&&(i.value.html(this.nice(o.value.origin)+"&nbsp;&ndash;&nbsp;"+this.nice(e.value.origin)),s.label=i.o[0].clientWidth,s.border=a*l/100)):r.o.css({visibility:"visible"})}s=t(i,s,a);var l=n.sizes.domWidth;r&&(s={label:r.o[0].clientWidth,right:!1,border:o.value.prc*this.sizes.domWidth/100},s=t(r,s,o.value.prc))},i.prototype.redrawLimits=function(){if(this.settings.limits){var e=[!0,!0];for(var t in this.o.pointers)if(!this.settings.single||0===t){var n=this.o.pointers[t],i=this.o.labels[n.uid],a=i.o[0].offsetLeft-this.sizes.domOffset.left,s=this.o.limits[0];a<s[0].clientWidth&&(e[0]=!1),s=this.o.limits[1],a+i.o[0].clientWidth>this.sizes.domWidth-s[0].clientWidth&&(e[1]=!1)}for(var r=0;r<e.length;r++)e[r]?angular.element(this.o.limits[r]).addClass("animate-show"):angular.element(this.o.limits[r]).addClass("animate-hidde")}},i.prototype.setValue=function(){var e=this.getValue();this.inputNode.attr("value",e),this.onstatechange.call(this,e,this.inputNode)},i.prototype.getValue=function(){if(!this.is.init)return!1;var e=this,t="";return angular.forEach(this.o.pointers,function(i,a){if(void 0!==i.value.prc&&!isNaN(i.value.prc)){var s=i.value.prc,r=e.prcToValue(s);if(!e.settings.smooth)var r=n.valueForDifferentScale(e.settings.from,e.settings.to,s,e.settings.prcToValueMapper);t+=(a>0?";":"")+r}}),t},i.prototype.getPrcValue=function(){if(!this.is.init)return!1;var e="";return $.each(this.o.pointers,function(t){void 0===this.value.prc||isNaN(this.value.prc)||(e+=(t>0?";":"")+this.value.prc)}),e},i.prototype.prcToValue=function(e){var t;if(this.settings.heterogeneity&&this.settings.heterogeneity.length>0)for(var n=this.settings.heterogeneity,i=0,a=this.settings.from,s=0;s<=n.length;s++){var r;r=n[s]?n[s].split("/"):[100,this.settings.to],e>=i&&e<=r[0]&&(t=a+(e-i)*(r[1]-a)/(r[0]-i)),i=r[0],a=r[1]}else t=this.settings.from+e*this.settings.interval/100;var o=this.round(t);return o},i.prototype.valueToPrc=function(e,t){var n;if(this.settings.heterogeneity&&this.settings.heterogeneity.length>0)for(var i=this.settings.heterogeneity,a=0,s=this.settings.from,r=0;r<=i.length;r++){var o;o=i[r]?i[r].split("/"):[100,this.settings.to],e>=s&&e<=o[1]&&(n=t.limits(a+(e-s)*(o[0]-a)/(o[1]-s))),a=o[0],s=o[1]}else n=t.limits(100*(e-this.settings.from)/this.settings.interval);return n},i.prototype.round=function(e){return e=Math.round(e/this.settings.step)*this.settings.step,e=this.settings.round?Math.round(e*Math.pow(10,this.settings.round))/Math.pow(10,this.settings.round):Math.round(e)},i}]).directive("attStepSlider",["$compile","$templateCache","$timeout","$window","slider","sliderConstants","utils",function(e,t,n,i,a,s,r){var o="app/scripts/ng_js_att_tpls/stepSlider/attStepSlider.html";return{restrict:"AE",require:"?ngModel",scope:{options:"=",cutOff:"="},priority:1,templateUrl:o,link:function(l,c,d,p){function u(){angular.element(i).bind("resize",function(e){l.slider.onresize()})}if(p){l.mainSliderClass="step-slider",c.after(e(t.get(o))(l,function(e,t){t.tmplElt=e})),p.$render=function(){if(p.$viewValue.split&&1===p.$viewValue.split(";").length?p.$viewValue="0;"+p.$viewValue:"number"==typeof p.$viewValue&&(p.$viewValue="0;"+p.$viewValue),(p.$viewValue||0===p.$viewValue)&&("number"==typeof p.$viewValue&&(p.$viewValue=""+p.$viewValue),l.slider)){var e="0";if(l.slider.getPointers()[0].set(e,!0),p.$viewValue.split(";")[1]){var t=p.$viewValue.split(";")[1];t.length>=4&&(t=t.substring(0,2)),l.options.realtime||l.options.callback(parseFloat(p.$viewValue.split(";")[1])),l.slider.getPointers()[1].set(p.$viewValue.split(";")[1],!0)}}};var h=function(){function e(){0!==i[0]&&i.splice(0,0,0),100!==i[i.length-1]&&i.splice(i.length,0,100)}function t(){if(i[i.length-1]!==l.options.to&&i.splice(i.length,0,l.options.to),l.options.displayScaledvalues){for(var e in i)o.push(Math.log2(i[e]));var t=o[o.length-1]}for(var e in i){var n,a=i[e]/l.options.from,s=i[e]/l.options.to;n=l.options.displayScaledvalues?o[e]/t*100:(i[e]-l.options.from)/(l.options.to-l.options.from)*100;var r=i[e];1===s?n=100:1===a&&(n=0),i[e]=n,d[""+n]=r}}l.from=""+l.options.from,l.to=""+l.options.to,l.options.calculate&&"function"==typeof l.options.calculate&&(l.from=l.options.calculate(l.from),l.to=l.options.calculate(l.to)),l.showDividers=l.options.showDividers,l.COLORS=s.COLORS,l.sliderColor=l.options.sliderColor,l.sliderColor||(l.sliderColor=s.COLORS.REGULAR);var i=l.options.scale,a=[],o=[],d={};for(var h in i){var f=i[h];a.push(f)}0===l.options.from&&100===l.options.to||!l.options.smooth?0===l.options.from&&100===l.options.to||l.options.smooth?(t(),e()):(l.options.stepWithDifferentScale=!0,t(),e()):(e(),l.options.stepWithDifferentScale=!0);var m=0;if(l.options.decimalPlaces&&(m=l.options.decimalPlaces),l.endDimension=l.options.dimension,l.options.conversion){var v=l.options.conversion.length-1,b=l.options.conversion[v].dimension,_=l.options.conversion[v].scaleFactor;l.endDimension=" "+b;var y=(l.to/_).toFixed(m);l.toStr=y}else l.toStr=l.options.to;var w=r.convertToMbpsGbps(l.toStr,l.endDimension,l.options.decimalPlaces);l.toStr=w.unitValue,l.endDimension=" "+w.unitLabel;var k={from:l.options.from,to:l.options.to,step:l.options.step,smooth:l.options.smooth,limits:!0,stepWithDifferentScale:l.options.stepWithDifferentScale,round:l.options.round||!1,value:p.$viewValue,scale:l.options.scale,nonPercentScaleArray:a,prcToValueMapper:d,firstDimension:l.options.dimension,decimalPlaces:m,conversion:l.options.conversion,realtimeCallback:l.options.callback};angular.isFunction(l.options.realtime)?k.realtimeCallback=function(e){p.$setViewValue(e),l.options.callback(e)}:k.callback=g,k.calculate=l.options.calculate||void 0,k.onstatechange=l.options.onstatechange||void 0,n(function(){var e=l.tmplElt.find("div")[7];k.conversion||(l.tmplElt.find("div").eq(6).find("span").eq(0).css("padding-left","10px"),l.tmplElt.find("div").eq(6).find("span").eq(0).css("padding-right","15px")),l.slider=angular.element.slider(c,l.tmplElt,k),angular.element(e).html(l.generateScale()),l.drawScale(e),u(),l.$watch("options.disable",function(e){l.slider&&(l.tmplElt.toggleClass("disabled",e),l.slider.disable(e))}),l.$watch("cutOff",function(e){if(e&&e>0){var t=(e-l.slider.settings.from)/(l.slider.settings.to-l.slider.settings.from);if(t=100*t,l.isCutOffSlider=!0,l.slider.settings.cutOffWidth=t,l.cutOffVal=e,l.options.conversion){var n=r.getConversionFactorValue(e,l.options.conversion,l.options.dimension);n.scaledVal=parseFloat(n.scaledVal).toFixed(l.options.decimalPlaces),l.cutOffVal=n.scaledVal+" "+n.scaledDimension}l.slider.settings.cutOffVal=e,l.slider.changeCutOffWidth(t+"%");var i=l.slider.settings.nonPercentScaleArray;for(var a in i)if(a>=1){var s=i[a-1],o=i[a];e>s&&o>=e&&(l.slider.settings.cutOffIndex=a);\r
+}}else l.slider.settings.cutOffVal=0})})};l.generateScale=function(){if(l.options.scale&&l.options.scale.length>0){for(var e="",t=l.options.scale,n="left",i=0;i<t.length;i++)if(0!==i&&i!==t.length-1){var a=(t[i]-l.from)/(l.to-l.from)*100;l.options.stepWithDifferentScale&&!l.options.smooth&&(a=t[i]),e+='<span style="'+n+": "+a+'%"></span>'}return e}return""},l.drawScale=function(e){angular.forEach(angular.element(e).find("ins"),function(e,t){e.style.marginLeft=-e.clientWidth/2})};var g=function(e){var t=e.split(";")[1];l.$apply(function(){p.$setViewValue(parseInt(t))}),l.options.callback&&l.options.callback(parseInt(t))};l.$watch("options",function(e){h()}),angular.element.slider=function(e,t,n){t.data("jslider")||t.data("jslider",new a(e,t,n));var i=t.data("jslider");return i}}}}}]),angular.module("att.abs.steptracker",["att.abs.transition"]).directive("steptracker",["$timeout",function(e){return{priority:100,scope:{sdata:"=sdata",cstep:"=currentStep",clickHandler:"=?",disableClick:"=?"},restrict:"EA",replace:!0,templateUrl:"app/scripts/ng_js_att_tpls/steptracker/step-tracker.html",link:function(t,n){void 0===t.disableClick&&(t.disableClick=!1),e(function(){function e(e){return angular.element(r[e-1])}function i(){if(t.cstep>0&&t.cstep<=t.sdata.length-1&&c>0){var n=c/d*100+"%";p=e(t.cstep),p.css("width",n)}}function a(){t.cstep<=t.sdata.length&&(c=t.sdata[t.cstep-1].currentPage,d=t.sdata[t.cstep-1].totalPages)}t.cstep<1?t.cstep=1:t.cstep>t.sdata.length&&(t.cstep=t.sdata.length);var s=n.find("div"),r=[];for(var o in s)if(s.eq(o)[0]){var l=s.eq(o)[0].className;l.indexOf("track ng-scope")>-1&&r.push(s.eq(o))}var c,d,p=e(t.cstep);t.set_width=function(e){var n=100/(t.sdata.length-1)+"%";return t.sdata.length-1>e?{width:n}:void 0},t.$watch("sdata",function(){a();var e=t.cstep;if(1>c&&(c=1,1!==t.cstep&&(t.cstep--,a())),c>d){if(t.cstep>t.sdata.length-1)return void t.cstep++;c=d,i(),t.cstep++,a(),i()}1>c&&e===t.cstep&&(c=1,t.cstep>1&&(t.cstep--,t.sdata[t.cstep-1].currentPage=t.sdata[t.cstep-1].totalPages,t.sdata[t.cstep].currentPage=1)),i()},!0),t.activestep=function(e){return e===t.cstep-1},t.donesteps=function(e){return e<t.cstep-1},t.laststep=function(e){return e===t.sdata.length-1},t.isIncomplete=function(e){if(e===t.cstep-1)return!1;if(e>=0&&e<t.sdata.length-1){var n=t.sdata[e];return n.currentPage<=n.totalPages}},t.stepclick=function(e,n){if(n<t.cstep){for(var s=t.cstep-1;s>n;s--)t.sdata[s].currentPage=1;t.sdata[n].currentPage--}angular.isFunction(t.clickHandler)&&t.clickHandler(e,n),t.cstep=n+1,t.cstep<=t.sdata.length&&t.sdata[t.cstep].currentPage<1&&(t.sdata[t.cstep].currentPage=1),a(),i()}},100)}}}]).constant("timelineConstants",{STEP_TYPE:{ALERT:"alert",COMPLETED:"completed",CANCELLED:"cancelled"}}).controller("AttTimelineCtrl",["$scope","$timeout",function(e,t){function n(){function t(e,t){return e.order<t.order?-1:e.order>t.order?1:0}s.sort(t),a.sort(t),e.$parent.animate&&i(),e.$watch("trigger",function(t){t?e.resetTimeline():e.$parent.animate=!1})}function i(){function n(){for(var e in s){var t=s[e];if(e%2===0?t.unhoveredStateForBelow(.25):t.unhoveredStateForAbove(.25),t.isStop())break}}function i(e,o){return 0===e?function(){s[e+1].isStop()&&s[e+1].isCancelled()&&a[e].isCancelled(!0),a[e].animate(i(e+1,o),o)}:e===a.length-1?function(){s[0].isCurrentStep()&&s[0].isCurrentStep(!1),s[e].isStop()?(s[e-1].shrinkAnimate(r),s[e].isCurrentStep(!0)):(s[e-1].shrinkAnimate(r),a[e].animate(i(e+1,o),o)),s[e].expandedAnimate(r),t(function(){n()},500)}:e===a.length?function(){s[0].isCurrentStep()&&s[0].isCurrentStep(!1),s[e-1].shrinkAnimate(r),s[e].expandedAnimate(r),s[e].isCurrentStep(!0),t(function(){n()},500)}:function(){s[0].isCurrentStep()&&s[0].isCurrentStep(!1),s[e].isStop()?(s[e-1].shrinkAnimate(r),s[e].expandedAnimate(r),s[e].isCurrentStep(!0),t(function(){n()},500)):(s[e+1].isStop()&&s[e+1].isCancelled()&&a[e].isCancelled(!0),s[e-1].shrinkAnimate(r),a[e].animate(i(e+1,o),o),s[e].expandedAnimate(r))}}var r=.25,o=.25;"number"==typeof e.barAnimateDuration&&(o=e.barAnimateDuration);var l=i(0,o);l()}var a=[],s=[];this.numSteps=0,this.isAlternate=function(){return e.alternate},this.addTimelineBarCtrls=function(e){a.push(e)},this.addTimelineDotCtrls=function(e){s.push(e)},t(n,200)}]).directive("attTimeline",["$timeout","$compile",function(e,t){return{restrict:"EA",replace:!0,scope:{steps:"=",trigger:"=",alternate:"=",barAnimateDuration:"="},templateUrl:"app/scripts/ng_js_att_tpls/steptracker/timeline.html",controller:"AttTimelineCtrl",link:function(e,n,i,a){var s=function(){for(var t=e.steps,n=[],i=1;i<t.length;i++){var s=t[i];n.push(s)}e.middleSteps=n,a.numSteps=t.length-1};s(),e.resetTimeline=function(){e.animate=!0,t(n)(e)}}}}]).controller("TimelineBarCtrl",["$scope",function(e){this.type="timelinebar",this.order=parseInt(e.order),this.animate=function(t,n){e.loadingAnimation(t,n)},this.isCancelled=function(t){e.isCancelled=t}}]).directive("timelineBar",["animation","$progressBar",function(e,t){return{restrict:"EA",replace:!0,templateUrl:"app/scripts/ng_js_att_tpls/steptracker/timelineBar.html",scope:{order:"@"},require:["^attTimeline","timelineBar"],controller:"TimelineBarCtrl",link:function(n,i,a,s){var r=s[0],o=s[1];r.addTimelineBarCtrls(o),n.isCompleted=!0;var l=100/r.numSteps-3;i.css("width",l+"%");var c=i.find("div").eq(0);e.set(c,{opacity:0});var d=function(t){e.set(c,{opacity:1}),e.set(c,{scaleX:t.progress(),transformOrigin:"left"})};n.loadingAnimation=t(d)}}}]).controller("TimelineDotCtrl",["$scope","$timeout","timelineConstants",function(e,t,n){this.type="dot",this.order=parseInt(e.order);var i=this;t(function(){0!==i.order&&(i.order%2!==0?e.initializeAboveForAnimation():e.initializeBelowForAnimation())}),this.expandedAnimate=function(t){e.setColor(),e.expandedAnimate(t),0===i.order||e.isStepsLessThanFive()||(i.order%2!==0?e.expandContentForAbove(t):e.expandContentForBelow(t))},this.unhoveredStateForAbove=function(t){e.unhoveredStateForAbove(t)},this.unhoveredStateForBelow=function(t){e.unhoveredStateForBelow(t)},this.shrinkAnimate=function(t){e.shrinkAnimate(t)},this.setExpanded=function(){e.setSize(3)},this.isStop=function(){return e.isStop},this.isCancelled=function(){return e.type===n.STEP_TYPE.CANCELLED},this.isAlert=function(){return e.type===n.STEP_TYPE.ALERT},this.isCurrentStep=function(t){return void 0!==t&&(e.isCurrentStep=t),e.isCurrentStep}}]).directive("timelineDot",["animation","timelineConstants",function(e,t){return{restrict:"EA",replace:!0,scope:{order:"@",title:"@",description:"@",by:"@",date:"@",type:"@"},templateUrl:"app/scripts/ng_js_att_tpls/steptracker/timelineDot.html",require:["^attTimeline","timelineDot"],controller:"TimelineDotCtrl",link:function(n,i,a,s){function r(){return n.description||n.by||n.date?!1:!0}var o=s[0],l=s[1];o.addTimelineDotCtrls(l),n.numSteps=o.numSteps+1,n.isCurrentStep=!1,n.isCompleted=!1,n.isStop=!1,(n.type===t.STEP_TYPE.ALERT||n.type===t.STEP_TYPE.CANCELLED)&&(n.isStop=!0),n.isInactive=!0;var c=i.find("div"),d=c.eq(0),p=c.eq(2),u=c.eq(3),h=c.eq(5),g=c.eq(6),f=c.eq(9);n.isStepsLessThanFive=function(){return n.numSteps<5?!0:!1},n.titleMouseover=function(e){n.isStepsLessThanFive()||r()||(1===e&&n.order%2===0&&n.expandContentForBelow(.25),2===e&&n.order%2!==0&&n.expandContentForAbove(.25))},n.titleMouseleave=function(){n.order%2===0?n.unhoveredStateForBelow(.25):n.unhoveredStateForAbove(.25)},n.initializeAboveForAnimation=function(){if(!n.isStepsLessThanFive()&&o.isAlternate()&&(e.set(g,{opacity:0}),e.set(f,{opacity:0}),!r())){var t=g[0].offsetHeight+f[0].offsetHeight;e.set(h,{top:t})}},n.expandContentForAbove=function(t){!n.isStepsLessThanFive()&&o.isAlternate()&&(e.to(h,t,{top:0}),e.to(g,t,{opacity:1}),e.to(f,t,{opacity:1}))},n.unhoveredStateForAbove=function(t){if(!n.isStepsLessThanFive()&&o.isAlternate()){e.set(g,{opacity:0}),e.set(f,{opacity:1});var i=g[0].offsetHeight;e.to(h,t,{top:i})}},n.initializeBelowForAnimation=function(){!n.isStepsLessThanFive()&&o.isAlternate()&&(e.set(g,{height:"0%",opacity:0,top:"-20px"}),e.set(f,{opacity:0}))},n.expandContentForBelow=function(t){!n.isStepsLessThanFive()&&o.isAlternate()&&(e.set(f,{opacity:1}),e.to(g,t,{height:"auto",opacity:1,top:"0px"}))},n.unhoveredStateForBelow=function(t){!n.isStepsLessThanFive()&&o.isAlternate()&&(e.to(g,t,{height:"0%",opacity:0,top:"-20px",position:"relative"}),e.set(f,{opacity:1}))},r()&&n.order%2!==0&&o.isAlternate()&&u.css("top","-47px"),n.order%2!==0&&o.isAlternate()?n.isBelowInfoBoxShown=!1:n.isBelowInfoBoxShown=!0,n.isStepsLessThanFive()&&!o.isAlternate()&&e.set(f,{marginTop:10}),e.set(d,{opacity:".5"}),e.set(p,{opacity:"0.0"}),e.set(p,{scale:.1}),0===n.order&&(e.set(p,{opacity:"1.0"}),e.set(p,{scale:1}),e.set(d,{scale:3}),n.isCurrentStep=!0,n.isInactive=!1,n.isCompleted=!0),n.setColor=function(){n.isInactive=!1,n.type===t.STEP_TYPE.CANCELLED?n.isCancelled=!0:n.type===t.STEP_TYPE.ALERT?n.isAlert=!0:n.isCompleted=!0,n.$phase||n.$apply()},n.setSize=function(t){e.set(biggerCircle,{scale:t})},n.setExpandedCircle=function(){e.set(p,{opacity:"1.0"}),e.set(p,{scale:1})},n.expandedAnimate=function(t){e.to(d,t,{scale:3}),e.set(p,{opacity:"1.0"}),e.to(p,t,{scale:1})},n.shrinkAnimate=function(t){e.to(d,t,{scale:1})}}}}]),angular.module("att.abs.table",["att.abs.utilities"]).constant("tableConfig",{defaultSortPattern:!1,highlightSearchStringClass:"tablesorter-search-highlight"}).directive("attTable",["$filter",function(e){return{restrict:"EA",replace:!0,transclude:!0,scope:{tableData:"=",viewPerPage:"=",currentPage:"=",totalPage:"=",searchCategory:"=",searchString:"="},require:"attTable",templateUrl:"app/scripts/ng_js_att_tpls/table/attTable.html",controller:["$scope",function(e){this.headers=[],this.currentSortIndex=null,this.setIndex=function(e){this.headers.push(e)},this.getIndex=function(e){for(var t=0;t<this.headers.length;t++)if(this.headers[t].headerName===e)return this.headers[t].index;return null},this.sortData=function(t,n){e.$parent.columnIndex=t,e.$parent.reverse=n,this.currentSortIndex=t,e.currentPage=1,this.resetSortPattern()},this.getSearchString=function(){return e.searchString},this.resetSortPattern=function(){for(var e=0;e<this.headers.length;e++){var t=this.headers[e];t.index!==this.currentSortIndex&&t.resetSortPattern()}}}],link:function(t,n,i,a){t.searchCriteria={},t.$watchCollection("tableData",function(e){e&&!isNaN(e.length)&&(t.totalRows=e.length)}),t.$watch("currentPage",function(e){t.$parent.currentPage=e}),t.$watch("viewPerPage",function(e){t.$parent.viewPerPage=e}),t.$watch(function(){return t.totalRows/t.viewPerPage},function(e){isNaN(e)||(t.totalPage=Math.ceil(e),t.currentPage=1)});var s=function(e){return angular.isDefined(e)&&null!==e&&""!==e?!0:void 0},r=function(e,n){if(s(e)&&s(n)){var i=a.getIndex(n);t.searchCriteria={},null!==i&&(t.searchCriteria[i]=e)}else!s(e)||angular.isDefined(n)&&null!==n&&""!==n?t.searchCriteria={}:t.searchCriteria={$:e}};t.$watch("searchCategory",function(e,n){e!==n&&r(t.searchString,e)}),t.$watch("searchString",function(e,n){e!==n&&r(e,t.searchCategory)}),t.$watchCollection("searchCriteria",function(n){t.$parent.searchCriteria=n,t.totalRows=t.tableData&&e("filter")(t.tableData,n,!1).length||0,t.currentPage=1})}}}]).directive("attTableRow",[function(){return{restrict:"EA",compile:function(e,t){if("header"===t.type)e.find("tr").eq(0).addClass("tablesorter-headerRow");else if("body"===t.type){var n=e.children();t.rowRepeat&&(t.trackBy?n.attr("ng-repeat",t.rowRepeat.concat(" | orderBy : columnIndex : reverse | filter : searchCriteria : false | attLimitTo : viewPerPage : viewPerPage*(currentPage-1) track by "+t.trackBy)):n.attr("ng-repeat",t.rowRepeat.concat(" | orderBy : columnIndex : reverse | filter : searchCriteria : false | attLimitTo : viewPerPage : viewPerPage*(currentPage-1) track by $index"))),n.attr("ng-class","{'alt-row': $even,'normal-row': $odd}"),e.append(n)}}}}]).directive("attTableHeader",["tableConfig",function(e){return{restrict:"EA",replace:!0,transclude:!0,scope:{sortable:"@",defaultSort:"@",index:"@key"},require:"^attTable",templateUrl:"app/scripts/ng_js_att_tpls/table/attTableHeader.html",link:function(t,n,i,a){var s=e.defaultSortPattern;t.headerName=n.text(),t.sortPattern=null,a.setIndex(t),t.$watch(function(){return n.text()},function(e){t.headerName=e}),t.sort=function(e){"boolean"==typeof e&&(s=e),a.sortData(t.index,s),t.sortPattern=s?"descending":"ascending",s=!s},t.$watch(function(){return a.currentSortIndex},function(e){e!==t.index&&(t.sortPattern=null)}),void 0===t.sortable||"true"===t.sortable||t.sortable===!0?t.sortable="true":(t.sortable===!1||"false"===t.sortable)&&(t.sortable="false"),"false"!==t.sortable&&("A"===t.defaultSort||"a"===t.defaultSort?t.sort(!1):("D"===t.defaultSort||"d"===t.defaultSort)&&t.sort(!0)),t.resetSortPattern=function(){s=e.defaultSortPattern}}}}]).directive("attTableBody",["$filter","$timeout","tableConfig",function(e,t,n){return{restrict:"EA",require:"^attTable",replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/table/attTableBody.html",link:function(i,a,s,r){var o=n.highlightSearchStringClass,l="",c=function(t){var n=t.text();t.html(e("highlight")(n,l,o))},d=function(e){var t=e.children();if(!(t.length>0))return void c(e);for(var n=0;n<t.length;n++)d(t.eq(n))},p=function(e){for(var t=e.find("*"),n=0;n<t.length;n++)if(t.eq(n).attr("class")&&-1!==t.eq(n).attr("class").indexOf(o)){var i=t.eq(n).text();t.eq(n).replaceWith(i)}};t(function(){var e=a.children();i.$watch(function(){return r.getSearchString()},function(t){l=t,p(a),e.length>0?d(a):c(a)})},50)}}}]),angular.module("att.abs.tableMessages",["att.abs.utilities"]).constant("messageConstants",{TABLE_MESSAGE_TYPES:{noMatching:1,errorLoading:2,magnifySearch:3,isLoading:4},USER_MESSAGE_TYPES:{success:1,error:0}}).directive("attTableMessage",["messageConstants",function(e){return{restrict:"AE",replace:!0,transclude:!0,scope:{msgType:"=",onRefreshClick:"&"},templateUrl:"app/scripts/ng_js_att_tpls/tableMessages/attTableMessage.html",link:function(t){t.messageConstants=e,t.refreshAction=function(e){t.onRefreshClick(e)}}}}]).directive("attUserMessage",["messageConstants","$timeout","DOMHelper",function(e,t,n){return{restrict:"AE",replace:!0,transclude:!0,scope:{thetitle:"=",type:"=",message:"=",trigger:"="},templateUrl:"app/scripts/ng_js_att_tpls/tableMessages/attUserMessage.html",link:function(i,a){var s=void 0,r=void 0;i.messageConstants=e,t(function(){r=n.firstTabableElement(a[0])},10),i.$watch("trigger",function(){i.trigger?(s=document.activeElement,angular.isDefined(r)&&r.focus()):angular.isDefined(s)&&s.focus()})}}}]),angular.module("att.abs.tabs",["att.abs.utilities"]).directive("attTabs",function(){return{restrict:"EA",transclude:!1,replace:!0,scope:{tabs:"=title"},controller:["$scope",function(e){this.getData=function(){return e.tabs},this.onClickTab=function(t){return e.currentTab=t.url,e.currentTab},this.isActiveTab=function(t){return t===e.currentTab}}],link:function(e){for(var t=0;t<e.tabs.length;t++)e.tabs[t].selected&&e.tabs[t].url&&(e.currentTab=e.tabs[t].url)}}}).directive("floatingTabs",function(){return{require:"^attTabs",restrict:"EA",transclude:!1,replace:!0,scope:{size:"@"},templateUrl:"app/scripts/ng_js_att_tpls/tabs/floatingTabs.html",link:function(e,t,n,i){e.tabs=i.getData(),e.onClickTab=i.onClickTab,e.isActiveTab=i.isActiveTab}}}).directive("simplifiedTabs",function(){return{require:"^attTabs",restrict:"EA",transclude:!1,replace:!0,scope:{ctab:"=ngModel"},templateUrl:"app/scripts/ng_js_att_tpls/tabs/simplifiedTabs.html",link:function(e,t,n,i){e.tabs=i.getData(),e.clickTab=function(t){return e.ctab=t.id,e.ctab},e.isActive=function(t){return t===e.ctab}}}}).directive("genericTabs",function(){return{require:"^attTabs",restrict:"EA",transclude:!1,replace:!0,scope:{ctab:"=ngModel"},templateUrl:"app/scripts/ng_js_att_tpls/tabs/genericTabs.html",link:function(e,t,n,i){e.tabs=i.getData(),e.clickTab=function(t){return e.ctab=t.id,e.ctab},e.isActive=function(t){return t===e.ctab}}}}).directive("skipNavigation",function(){return{link:function(e,t,n){t.bind("click",function(){var e=angular.element(t.parent().parent().parent().parent())[0].querySelector("a.skiptoBody");angular.element(e).attr("tabindex",-1),e.focus()})}}}).directive("parentTab",[function(){return{restrict:"EA",scope:{menuItems:"=",activeSubMenu:"=",activeMenu:"="},controller:["$scope",function(e){e.megaMenu=e.menuItems,e.megaMenuTab,e.megaMenuHoverTab,this.setMenu=function(){e.menuItems=e.megaMenu,e.activeSubMenu.scroll=!1;for(var t=0;t<e.menuItems.length;t++)e.menuItems[t].active&&(e.activeMenu=e.menuItems[t]);this.setSubMenuStatus(!1),e.$apply()},this.setActiveMenu=function(){if(void 0!==e.megaMenuTab&&null!==e.megaMenuTab)e.menuItems=[e.megaMenuTab],e.megaMenuTab.scroll=!0,e.activeMenu={},e.activeSubMenu=e.megaMenuTab,this.setSubMenuStatus(!0);else{for(var t=0;t<e.menuItems.length;t++)if(e.menuItems[t].active=!1,e.menuItems[t].subItems)for(var n=0;n<e.menuItems[t].subItems.length;n++)e.menuItems[t].subItems[n].active=!1;e.menuItems=e.megaMenu}e.$apply()};var t=!1;this.setSubMenuStatus=function(e){t=e},this.getSubMenuStatus=function(){return t},this.setActiveMenuTab=function(t){e.megaMenuTab=t},this.setActiveMenuHoverTab=function(t){e.megaMenuHoverTab=t},this.setActiveSubMenuTab=function(){e.megaMenuTab=e.megaMenuHoverTab},this.resetMenuTab=function(){e.megaMenuTab=void 0},this.clearSubMenu=function(){e.$evalAsync(function(){e.megaMenuTab=void 0,e.megaMenuHoverTab=void 0})}}]}}]).directive("parentmenuTabs",[function(){return{restrict:"EA",transclude:!0,replace:!0,scope:{megaMenu:"@",menuItems:"="},controller:["$scope",function(e){this.getMenu=function(){return e.menuItems},this.setMenu=function(t){e.menuItems=t}}],templateUrl:"app/scripts/ng_js_att_tpls/tabs/parentmenuTab.html"}}]).directive("menuTabs",["$window","$document","events","keymap",function(e,t,n,i){return{restrict:"EA",transclude:!0,replace:!0,require:["^?parentTab","^?parentmenuTabs"],scope:{activeMenu:"=",menuItem:"=",subMenu:"@",subItemActive:"@",tabName:"=?",tabUrl:"=?"},templateUrl:function(e,t){return t.megaMenu?"app/scripts/ng_js_att_tpls/tabs/menuTab.html":"app/scripts/ng_js_att_tpls/tabs/submenuTab.html"},link:function(e,a,s,r){var o=r[0],l=r[1];e.clickInactive=!0,e.showHoverChild=function(t){e.clickInactive=!1,e.hoverChild=r[0].getSubMenuStatus(),"mouseover"===t.type&&r[0].getSubMenuStatus()},e.showChildren=function(t){e.parentMenuItems=l.getMenu();for(var n=0;n<e.parentMenuItems.length;n++){if(e.parentMenuItems[n].active=!1,e.parentMenuItems[n].subItems)for(var i=0;i<e.parentMenuItems[n].subItems.length;i++)e.parentMenuItems[n].subItems[i].active=!1;e.clickInactive=!0}e.menuItem.active=!0,e.activeMenu=e.menuItem,t.stopPropagation()},e.$watch("subItemActive",function(t){"true"===t&&"true"===e.subMenu&&o.setActiveMenuHoverTab(e.menuItem)}),e.showMenuClick=function(t){o.setActiveMenuTab(e.menuItem),t.stopPropagation()},e.showSubMenuClick=function(e){o.setActiveSubMenuTab(),e.stopPropagation()},e.resetMenu=function(e){o.resetMenuTab(),e.stopPropagation()},t.bind("scroll",function(){}),a.bind("keydown",function(t){switch(t.keyCode||(t.keyCode=t.which),t.keyCode!==i.KEY.TAB&&(n.preventDefault(t),n.stopPropagation(t)),t.keyCode){case i.KEY.ESC:var s;a.attr("mega-menu")?"item"===a.attr("menu-item")&&(s=angular.element(a.parent().parent().parent().parent())[0].querySelector("a.skiptoBody"),angular.element(s).attr("tabindex",-1),s.focus()):"true"===a.attr("sub-menu")?(s=angular.element(a.parent().parent().parent().parent().parent().parent().parent())[0].querySelector("a.skiptoBody"),angular.element(s).attr("tabindex",-1),s.focus()):void 0===a.attr("sub-menu")&&(s=angular.element(a.parent().parent().parent().parent().parent().parent().parent().parent().parent().parent())[0].querySelector("a.skiptoBody"),angular.element(s).attr("tabindex",-1),s.focus());break;case i.KEY.RIGHT:if(a.attr("mega-menu")){if("item"===a.attr("menu-item")){var r=angular.element(a)[0];if(r.nextElementSibling)null==r.nextElementSibling.querySelector("span")||r.nextElementSibling.querySelector("span").focus();else{do{if(!r||!r.nextSibling)break;r=r.nextSibling}while(r&&"LI"!==r.tagName);r&&(null===r.querySelector("span")||r.querySelector("span").focus()),n.preventDefault(t),n.stopPropagation(t)}}}else{var r=angular.element(a)[0];if("true"===a.attr("sub-menu")){if(null===r.nextElementSibling)break;if(r.nextElementSibling)r.nextElementSibling.querySelector("a").focus();else{do{if(!r||!r.nextSibling)break;r=r.nextSibling}while(r&&"LI"!==r.tagName);r&&(null==r.querySelector("a")||r.querySelector("a").focus()),n.preventDefault(t),n.stopPropagation(t)}}else if(void 0===a.attr("sub-menu")){if(null===r.nextElementSibling)break;if(r.nextElementSibling)r.nextElementSibling.querySelector("a").focus();else{do{if(!r||!r.nextSibling)break;r=r.nextSibling}while(r&&"LI"!==r.tagName);r&&(null==r.querySelector("a")||r.querySelector("a").focus())}}}break;case i.KEY.DOWN:if(a.attr("mega-menu"))angular.element(a)[0].querySelectorAll(".megamenu__items")[0].querySelector("a").focus();else if(void 0===a.attr("sub-menu")){var r=document.activeElement;if(null===r.nextElementSibling)break;if(r.nextElementSibling)r.nextElementSibling.focus();else{do{if(!r||!r.nextSibling)break;r=r.nextSibling}while(r&&"A"!==r.tagName);null!==r.attributes&&r.focus(),n.stopPropagation(t)}}else if("true"===a.attr("sub-menu")){var l=angular.element(a)[0].querySelector("span").querySelector("a");if(null===l)break;l.focus()}break;case i.KEY.LEFT:if(a.attr("mega-menu")){if("item"===a.attr("menu-item")){var r=angular.element(a)[0];if(r.previousElementSibling)null===r.previousElementSibling.querySelector("span")||r.previousElementSibling.querySelector("span").focus();else{do{if(!r||!r.previousSibling)break;r=r.previousSibling}while(r&&"LI"!==r.tagName);r&&(null===r.querySelector("span")||r.querySelector("span").focus()),n.preventDefault(t),n.stopPropagation(t)}}}else{var r=angular.element(a)[0];if("true"===a.attr("sub-menu")){if(null===r.previousElementSibling)break;if(r.previousElementSibling)r.previousElementSibling.querySelector("a").focus();else{do{if(!r||!r.previousSibling)break;r=r.previousSibling}while(r&&"LI"!==r.tagName);r&&(null==r.querySelector("a")||r.querySelector("a").focus()),n.preventDefault(t),n.stopPropagation(t)}}else if(void 0===a.attr("sub-menu")){if(null===r.previousElementSibling)break;if(r.previousElementSibling)r.previousElementSibling.querySelector("a").focus();else{do{if(!r||!r.previousSibling)break;r=r.previousSibling}while(r&&"LI"!==r.tagName);r&&(null==r.querySelector("a")||r.querySelector("a").focus())}}}break;case i.KEY.UP:if("true"===a.attr("sub-menu")){var r=document.activeElement,c=angular.element(a.parent().parent().parent().parent())[0].querySelector("span");c.focus(),o.clearSubMenu(),e.menuItem.active=!1;break}if(void 0===a.attr("sub-menu")){var r=document.activeElement,c=angular.element(a.parent().parent().parent().parent())[0].querySelector("a");if(document.activeElement===angular.element(r).parent().parent()[0].querySelectorAll("a")[0]){c.focus();break}if(r.previousElementSibling){r.previousElementSibling;null!=r.previousElementSibling?r.previousElementSibling.focus():c.focus()}else{do{if(!r||!r.previousSibling)break;r=r.previousSibling}while(r&&"A"!==r.tagName);r&&3!==r.nodeType&&r.focus(),n.preventDefault(t),n.stopPropagation(t)}break}}})}}}]),angular.module("att.abs.tagBadges",[]).directive("tagBadges",["$parse","$timeout",function(e,t){return{restrict:"EA",replace:!1,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/tagBadges/tagBadges.html",scope:{styleType:"@",onClose:"&"},link:function(n,i,a){n.isSmall=!1,n.isIcon=!1,n.isColor=!1,n.display=!0,n.isClosable=!1,n.isHighlight=!1,n.customColor=!1,""===a.small&&(n.isSmall=!0),"icon"===n.styleType?n.isIcon=!0:"color"===n.styleType&&(n.isColor=!0,void 0!==a.color&&""!==a.color&&(n.customColor=!0,a.$observe("color",function(e){n.border_type_borderColor=e,n.background_type_backgroundColor=e,n.background_type_borderColor=e}))),n.activeHighlight=function(e){n.customColor&&(e?n.isHighlight=!0:n.isHighlight=!1)},""===a.closable&&(n.isClosable=!0,n.closeMe=function(){n.display=!1,t(function(){i.attr("tabindex","0"),i[0].focus(),i.bind("blur",function(){i.remove()})}),a.onClose&&(n.onClose=e(n.onClose),n.onClose())})}}}]),angular.module("att.abs.textOverflow",[]).constant("textDefaultOptions",{width:"50%"}).directive("attTextOverflow",["textDefaultOptions","$compile",function(e,t){return{restrict:"A",link:function(n,i,a){var s=i.text();if(i.addClass("text-ellipsis"),a.$observe("attTextOverflow",function(t){t?i.css({width:t}):i.css({width:e.width})}),!i.attr("tooltip")){i.attr("tooltip",s),i.attr("tooltip-placement","above");var r=angular.element(i);t(r)(n)}}}}]),angular.module("att.abs.toggle",["angular-gestures","att.abs.position"]).directive("attToggleTemplate",["$compile","$log","$position",function(e,t,n){return{restrict:"A",require:"ngModel",transclude:!0,scope:{modelVal:"=ngModel"},templateUrl:"app/scripts/ng_js_att_tpls/toggle/demoToggle.html",link:function(e,t,i){e.initialDragPosition=0;var a=0,s=n.offset(t.children().eq(1).children().eq(0)).width-1,r=function(){e.attrValue===i.ngTrueValue||e.attrValue?e.modelVal=!1:e.modelVal=!0};e.updateModel=function(e){1!==a&&(r(),a=0),e.preventDefault()},e.drag=function(i){if(a=1,"dragstart"===i.type)e.initialDragPosition=n.position(t.children().eq(1)).left,t.children().eq(1).addClass("dragging");else if("drag"===i.type){var o=Math.min(0,Math.max(e.initialDragPosition+i.gesture.deltaX,-s));t.children().eq(1).css({left:o+"px"})}else if("dragend"===i.type){var l=n.position(t.children().eq(1)).left>-1*s/2;t.children().eq(1).removeClass("dragging"),TweenMax.to(t.children().eq(1),.1,{left:l?0:-1*s,ease:Power4.easeOut,onComplete:function(){t.children().eq(1).css({left:""})}}),(l||!l&&"left"===i.gesture.direction)&&r(),a=0}return!1},e.directiveValue=i.attToggleTemplate,e.on=i.trueValue,e.off=i.falseValue;var o=-1*s+"px";e.$watch("modelVal",function(n){if(e.attrValue=n,n===i.ngTrueValue||n){t.children().eq(1).css({left:"0px"}),t.addClass("att-checkbox--on");var s=t.find("div").find("div").eq(1);s.attr("aria-checked",!0),a=0}else{t.children().eq(1).css({left:o}),t.removeClass("att-checkbox--on");var s=t.find("div").find("div").eq(1);s.attr("aria-checked",!1),a=0}t.children().eq(1).css({left:""})})}}}]).directive("attToggleMain",["$compile",function(e){return{restrict:"A",require:"ngModel",transclude:!0,replace:!0,scope:{modelValue:"=ngModel",trueValue:"=ngTrueValue",falseValue:"=ngFalseValue"},link:function(t,n,i){var a="",s="";n.removeAttr("att-toggle-main"),t.on=i.ngTrueValue,t.off=i.ngFalseValue,t.largeValue=i.attToggleMain,angular.isDefined(i.ngTrueValue)&&(a+=' true-value="{{on}}" false-value="{{off}}"'),void 0!==t.largeValue&&(s+=' ="{{largeValue}}"'),n.css({display:"none"});var r=angular.element('<div class="att-switch att-switch-alt" ng-class="{\'large\' : largeValue == \'large\'}" ng-model="modelValue"'+a+" att-toggle-template"+s+">"+n.prop("outerHTML")+"</div>");r=e(r)(t),n.replaceWith(r)}}}]),angular.module("att.abs.treeview",[]).directive("treeView",function(){return{restrict:"A",link:function(e,t){function n(){s.reversed()?s.play():s.reverse()}function i(e){e.stopPropagation(),void 0!==angular.element(e.target).attr("tree-view")&&(t.hasClass("minus")?t.removeClass("minus"):t.addClass("minus"),n())}var a=t.children("ul li"),s=TweenMax.from(a,.2,{display:"none",paused:!0,reversed:!0});t.attr("tabindex","0"),t.on("click",function(e){i(e)}),t.on("keypress",function(e){var t=e.keyCode?e.keyCode:e.charCode,n=[13,32];n.length>0&&t&&n.indexOf(t)>-1&&(i(e),e.preventDefault())})}}}),angular.module("att.abs.typeAhead",["att.abs.tagBadges"]).directive("focusMe",["$timeout","$parse",function(e,t){return{link:function(n,i,a){var s=t(a.focusMe);n.$watch(s,function(t){t&&e(function(){i[0].focus(),n.inputActive=!0})}),i.bind("blur",function(){s.assign(n,!1),n.inputActive=!1,n.$digest()})}}}]).directive("typeAhead",["$timeout","$log",function(e,t){return{restrict:"EA",templateUrl:"app/scripts/ng_js_att_tpls/typeAhead/typeAhead.html",replace:!0,scope:{items:"=",title:"@?",titleName:"@",subtitle:"@",model:"=",emailIdList:"=",emailMessage:"="},link:function(n,i){!angular.isDefined(n.titleName)&&angular.isDefined(n.title)&&e(function(){n.titleName=n.title,t.warn("title attribute is deprecated and title-name attribute is used instead as it is conflicting with html title attribute")}),n.lineItems=[],n.filteredListLength=-1,n.filteredList=[],n.setFocus=function(){n.clickFocus=!0},n.setFocus(),n.handleSelection=function(e,t){n.lineItems.push(e),n.emailIdList.push(t),n.model="",n.current=0,n.selected=!0,n.clickFocus=!0},n.theMethodToBeCalled=function(t){var i=n.lineItems.slice();n.emailIdList.splice(t,1),i.splice(t,1),e(function(){n.lineItems=[],n.$apply(),n.lineItems=n.lineItems.concat(i)})},n.current=0,n.selected=!0,n.isCurrent=function(e,t,i,a){return n.current===e&&(n.itemName=t,n.itemEmail=i),n.dropdownLength=a,n.current===e},n.setCurrent=function(e){n.current=e},n.selectionIndex=function(e){38===e.keyCode&&n.current>0?(e.preventDefault(),n.current=n.current-1,n.isCurrent(n.current)):9===e.keyCode?n.selected=!0:13===e.keyCode&&n.dropdownLength!==n.items.length?n.handleSelection(n.itemName,n.itemEmail):8===e.keyCode&&0===n.model.length||46===e.keyCode?n.theMethodToBeCalled(n.lineItems.length-1):40===e.keyCode&&n.current<n.dropdownLength-1&&(e.preventDefault(),n.current=n.current+1,n.isCurrent(n.current)),i[0].querySelector(".list-scrollable").scrollTop=35*(n.current-1)}}}}]),angular.module("att.abs.verticalSteptracker",["ngSanitize"]).directive("verticalSteptracker",[function(){return{restrict:"EA",transclude:!0,replace:!1,scope:{},template:'<div class="vertical-nav"><ul ng-transclude arial-label="step list" role="presentation" class="tickets-list-height"></ul></div>',link:function(){}}}]).directive("verticalSteptrackerStep",[function(){return{restrict:"EA",transclude:!0,replace:!1,scope:{type:"=type",id:"=id"},templateUrl:"app/scripts/ng_js_att_tpls/verticalSteptracker/vertical-step-tracker.html",link:function(){}}}]).directive("attAbsLink",[function(){return{restrict:"EA",transclude:!0,replace:!1,template:'<span ng-transclude class="view-log"></span>'}}]),angular.module("att.abs.videoControls",[]).config(["$compileProvider",function(e){e.aHrefSanitizationWhitelist(/^\s*(https?|javascript):/)}]).directive("videoControls",[function(){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/videoControls/videoControls.html"}}]).directive("photoControls",[function(){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"app/scripts/ng_js_att_tpls/videoControls/photoControls.html",scope:{prevLink:"@",nextLink:"@"},link:function(e,t,n){n.prevLink||(e.prevLink="javascript:void(0)"),n.nextLink||(e.nextLink="javascript:void(0)"),e.links={prevLink:e.prevLink,nextLink:e.nextLink}}}}]),angular.module("app/scripts/ng_js_att_tpls/accordion/accordion.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/accordion/accordion.html",'<div class="att-accordion__group tabpanel" ng-class="{\'att-accordion__group att-accordion__group--open\':isOpen,\'att-accordion__group\':!isOpen }">\n    <a  ng-show="showicon" \n        class="toggle-header att-accordion__heading att-accordion__toggle noafter" \n        aria-selected="{{focused}}" \n        aria-controls="panel{{index}}" \n        aria-expanded="{{isOpen}}" \n        ng-class="{focus: focused, selected: focused}"         \n        role="tab" \n        ng-click="toggle()" \n        accordion-transclude="heading" \n        style="cursor:pointer; text-decoration:none">\n        <span href="#"><i class={{headingIconClass}}></i>&nbsp;&nbsp;{{heading}}</span>\n        <i i ng-show = \'childLength > 0\' ng-class="{\'icon-chevron-down\':!isOpen,\'icon-chevron-up\':isOpen }" class="pull-right"></i>\n    </a>\n    <div ng-show="!showicon" \n         ng-class="{focus: focused, selected: focused}" \n         style="text-decoration:none" \n         accordion-transclude="heading"          \n         role="tab"  \n         aria-expanded="{{isOpen}}"\n         aria-selected="{{focused}}" \n         aria-controls="panel{{index}}" \n         class="toggle-header att-accordion__heading att-accordion__toggle noafter">\n        <span>{{heading}}</span>\n    </div>    \n    <div aria-label="{{heading}}" \n         aria-hidden="{{!isOpen}}" \n         role="tabpanel" \n         collapse="!isOpen" \n         class="att-accordion__body" \n         id="panel{{index}}" \n         ng-transclude>\n    </div>\n    <div class="att-accordion__bottom--border"></div>    \n</div> ');\r
+}]),angular.module("app/scripts/ng_js_att_tpls/accordion/accordion_alt.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/accordion/accordion_alt.html",'<div class="att-accordion__group tabpanel" ng-class="{\'att-accordion__group att-accordion__group--open\':isOpen,\'att-accordion__group\':!isOpen }">\n    <a class="toggle-header att-accordion__heading att-accordion__toggle" \n       aria-selected="{{focused}}" \n       aria-controls="panel{{index}}" \n       ng-class="{focus: focused, selected: focused}" \n       aria-expanded="{{isOpen}}" \n       role="tab" \n       ng-click="toggle()" \n       accordion-transclude="heading">        \n    </a>\n    <span>{{heading}}</span>\n    <div aria-label="{{heading}}" \n         aria-hidden="{{!isOpen}}" \n         role="tabpanel" \n         collapse="!isOpen" \n         class="att-accordion__body" \n         id="panel{{index}}" \n         ng-transclude>\n    </div>\n</div> ')}]),angular.module("app/scripts/ng_js_att_tpls/accordion/attAccord.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/accordion/attAccord.html","<div ng-transclude></div>")}]),angular.module("app/scripts/ng_js_att_tpls/accordion/attAccordBody.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/accordion/attAccordBody.html","<div ng-transclude></div>")}]),angular.module("app/scripts/ng_js_att_tpls/accordion/attAccordHeader.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/accordion/attAccordHeader.html",'<div ng-click="clickFunc()">\n    <div ng-transclude>\n           <i class="icon-chevron-down"></i>\n     </div>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/alert/alert.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/alert/alert.html","<div class=\"alert\" ng-class=\"{'alert-success': alertType === 'success', 'alert-warning': alertType === 'warning', 'alert-error': alertType === 'error', 'alert-info': alertType === 'info', 'alert-inplace': showTop !== 'true'}\" ng-show=\"showAlert\" ng-style=\"cssStyle\">\n    <div class=\"container\">\n"+'        <a href="javascript:void(0)" alt="close" class="close-role" ng-click="close()" tabindex="0" att-accessibility-click="32,13">Dismiss <i class="icon-circle-action-close"></i></a>\n        <span ng-transclude> </span>\n    </div>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/boardStrip/attAddBoard.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/boardStrip/attAddBoard.html",'<div tabindex="0" att-accessibility-click="13,32" ng-click="addBoard()" aria-label="Add Board" class="boardstrip-item--add">\n    <i aria-hidden="true" class="icon-add centered"></i>\n    <br/>\n    <div class="centered">Add board</div>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/boardStrip/attBoard.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/boardStrip/attBoard.html",'<li att-board-navigation tabindex="0" aria-label="{{boardLabel}}" att-accessibility-click="13,32" ng-click="selectBoard(boardIndex)" class="board-item" ng-class="{\'selected\': getCurrentIndex()===boardIndex}">\n    <div ng-transclude></div>\n    <div class="board-caret" ng-if="getCurrentIndex()===boardIndex">\n        <div class="board-caret-indicator"></div>\n        <div class="board-caret-arrow-up"></div>\n    </div>\n</li>')}]),angular.module("app/scripts/ng_js_att_tpls/boardStrip/attBoardStrip.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/boardStrip/attBoardStrip.html",'<div class="att-boardstrip">\n <div class="boardstrip-reel">\n         <div class="prev-items" ng-if="isPrevBoard()">\n                        <i tabindex="0" aria-label="Scroll Boardstrip Left" att-accessibility-click="13,32" ng-click="prevBoard()" class="arrow icon-arrow-left-circle"></i>\n          </div>\n                <div att-add-board on-add-board="onAddBoard()"></div>\n         <div class="board-viewport"><ul role="presentation" class="boardstrip-container" ng-transclude></ul></div>\n            <div class="next-items" ng-if="isNextBoard()">\n                        <i tabindex="0" aria-label="Scroll Boardstrip Right" att-accessibility-click="13,32" ng-click="nextBoard()" class="arrow icon-arrow-right-circle"></i>\n                </div>\n        </div>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/buttons/buttonDropdown.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/buttons/buttonDropdown.html",'<div class="att-btn-dropdown">\n    <div class="buttons-dropdown--small btn-group" ng-class="{\'open\': isOpen}" att-accessibility-click="13,32" ng-click="toggle()">\n        \n        <button role="menu" class="button button--secondary button--small buttons-dropdown__drop dropdown-toggle" ng-if="type===\'dots\'" alt="Click for Options" >\n            \n            <div class="circle"></div>\n            <div class="circle"></div>\n            <div class="circle"></div>\n        </button>\n        <button role="menu" class="button button--secondary button--small buttons-dropdown__drop dropdown-toggle ng-isolate-scope actions-title" ng-if="type === \'actions\'" alt="Actions dropdown Buttons">Actions</button>\n        \n\n'+"        <ul ng-class=\"{'dropdown-menu dots-dropdwn': type==='dots', 'dropdown-menu actions-dropdwn': type === 'actions'}\" ng-transclude></ul>\n    </div>\n    \n</div>\n")}]),angular.module("app/scripts/ng_js_att_tpls/colorselector/colorselector.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/colorselector/colorselector.html",'<div class="att-radio att-color-selector__item"  \n     ng-class="{\'att-radio--on\': (iconColor === selected)}">\n    <div class="att-radio__indicator" tabindex="0" att-accessibility-click="32,13" ng-click="selectedcolor(iconColor)" \n         ng-style="applycolor" ng-transclude></div>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/datepicker/dateFilter.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/datepicker/dateFilter.html",'<div class="calendar" ng-class="{\'monthpicker\':mode === 1}">\n    <div class="select2-container" ng-class="{\'select2-container-active select2-dropdown-open\': showDropdownList}" style="width: 100%; z-index:0">\n        <a tabindex="0" id="select2-choice" class="select2-choice" href="javascript:void(0)" att-element-focus="focusInputButton" ng-show="!showCalendar" att-accessibility-click="13,32" ng-click="showDropdown()" ng-blur="focusInputButton=false">\n            <span class="select2-chosen" ng-show="!showCalendar">{{selectedOption}}</span>\n            <input type="text" ng-show="showCalendar" ng-blur="untrackInputChange($event)" att-input-deny="[^0-9\\/-]" maxlength="{{maxLength}}" ng-model="selectedOption" aria-labelledby="select2-choice" ng-change="getDropdownText()" />\n            <abbr class="select2-search-choice-close"></abbr>\n            <span ng-class="{\'select2-arrow\': mode !== 1, \'calendar-icon\': mode === 1}"><b></b></span>\n        </a>\n        <a id="select2-chosen" class="select2-choice" href="javascript:void(0)" ng-show="showCalendar">\n            <span class="select2-chosen" ng-show="!showCalendar">{{selectedOption}}</span>\n            <input type="text" ng-show="showCalendar" ng-blur="untrackInputChange($event)" att-input-deny="[^0-9\\/-]" maxlength="{{maxLength}}" ng-model="selectedOption" aria-labelledby="select2-chosen" ng-change="getDropdownText()" />\n            <abbr class="select2-search-choice-close"></abbr>\n            <span tabindex="0" ng-class="{\'select2-arrow\': mode !== 1, \'calendar-icon\': mode === 1}" att-accessibility-click="13,32" ng-click="showDropdown()"><b></b></span>\n        </a>\n    </div>\n    <div class="select2-drop select2-drop-active select2-display-none" ng-style="{display: (showDropdownList && \'block\') || \'none\', \'border-radius\': showCalendar && \'0 0 0 6px\'}" style="width: 100%">\n        <div  id="dateFilterList" att-scrollbar ><ul class="select2-results options" ng-transclude></ul></div>\n               <ul class="select2-results sttings" style="margin-top:0px">\n                   <li tabindex="0" class="select2-result select2-highlighted greyBorder" ng-class="{\'select2-result-current\': checkCurrentSelection(\'Custom Single Date\')}" att-accessibility-click="13,32" ng-click="selectAdvancedOption(\'Custom Single Date\')">\n                <div class="select2-result-label" ng-if="mode !== 1">Custom Single Date...</div>\n                              <div class="select2-result-label" ng-if="mode === 1">Custom single month...</div>\n            </li>\n            <li tabindex="0" class="select2-result select2-highlighted" ng-class="{\'select2-result-current\': checkCurrentSelection(\'Custom Range\')}" att-accessibility-click="13,32" ng-click="selectAdvancedOption(\'Custom Range\')">\n                <div class="select2-result-label" ng-if="mode !== 1">Custom Range...</div>\n                         <div class="select2-result-label" ng-if="mode === 1">Custom month range...</div>\n            </li>\n            <li class="select2-result select2-highlighted btnContainer" ng-style="{display: (showCalendar && \'block\') || \'none\'}">\n                <button tabindex="0" ng-blur="resetFocus($event)" att-element-focus="focusApplyButton" att-button="" btn-type="{{applyButtonType}}" size="small" att-accessibility-click="13,32" ng-click="apply()">Apply</button>\n                <button tabindex="0" att-button="" btn-type="secondary" size="small" att-accessibility-click="13,32" ng-click="cancel()">Cancel</button>\n                <div>\n                    <a tabindex="0" href="javascript:void(0)" ng-if="mode !== 1" style="text-decoration:underline;" att-accessibility-click="13,32" ng-click="clear()">Clear Dates</a>\n                    <a tabindex="0" href="javascript:void(0)" ng-if="mode === 1" style="text-decoration:underline;" att-accessibility-click="13,32" ng-click="clear()">Clear Months</a>\n                </div>\n            </li>\n          </ul>\n    </div>\n    <div class="datepicker-wrapper show-right" ng-style="{display: (showCalendar && \'block\') || \'none\'}">\n        <span datepicker ng-blur="resetFocus($event)" att-element-focus="focusSingleDateCalendar" ng-show="checkCurrentSelection(\'Custom Single Date\')"></span>\n        <span datepicker ng-blur="resetFocus($event)" att-element-focus="focusRangeCalendar" ng-show="checkCurrentSelection(\'Custom Range\')"></span>\n    </div>\n</div>\n')}]),angular.module("app/scripts/ng_js_att_tpls/datepicker/dateFilterList.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/datepicker/dateFilterList.html",'<li ng-click="!disabled && selectOption(fromDate,toDate,caption)" att-accessibility-click="13,32" ng-class="{\'select2-result-current\': checkCurrentSelection(caption)}" class="select2-result select2-highlighted ng-scope" tabindex="{{!disabled?\'0\':\'-1\'}}">\n                <div class="select2-result-label" ng-class="{\'disabled\':disabled}" ng-transclude></div>\n</li>')}]),angular.module("app/scripts/ng_js_att_tpls/datepicker/datepicker.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/datepicker/datepicker.html",'<div id="datepicker" class="datepicker" ng-class="{\'monthpicker\': mode === 1}" aria-hidden="false" role="dialog" tabindex="-1" aria-labelledby="datepicker">\n    <div class="datepicker-days" style="display: block;">\n        <table class="table-condensed">\n            <thead>\n                <tr>\n                    <th id="month" tabindex="0" class="datepicker-switch" colspan="{{(mode !== 1) && (currentRows[0].length - 2) || (currentRows[0].length)}}" style="text-align:left">{{currentTitle}}</th>\n                    <th ng-if="mode !== 1" id="prev" aria-hidden="{{!disablePrev && \'false\'|| \'true\'}}" tabindex="{{!disablePrev && \'0\'|| \'-1\'}}" att-accessibility-click="13,32" ng-click="!disablePrev && move(-1)">\n            <div class="icons-list" data-size="medium"><i class="icon-arrow-left-circle" ng-class="{\'disabled\': disablePrev}" alt="Left Arrow"></i>\n            </div><span class="hidden-spoken">Previous Month</span>\n            </th>\n            <th ng-if="mode !== 1" id="next" aria-hidden="{{!disableNext && \'false\'|| \'true\'}}" tabindex="{{!disableNext && \'0\'|| \'-1\'}}" att-accessibility-click="13,32" ng-click="!disableNext && move(1)">\n            <div class="icons-list" data-size="medium"><i class="icon-arrow-right-circle" ng-class="{\'disabled\': disableNext}" alt="Right Arrow"></i>\n            </div><span class="hidden-spoken">Next Month</span>\n            </th>\n            </tr>\n            <tr ng-if="labels.length > 0">\n                <th tabindex="-1" class="dow weekday" ng-repeat="label in labels"><span>{{label.pre}}</span></th>\n            </tr>\n            </thead>\n            <tbody>\n                <tr>\n                    <td id="datepickerBody" att-scrollbar colspan="{{currentRows[0].length}}" style="padding: 0px;" headers="">\n                        <table ng-class="{\'table-condensed\': mode === 0, \'monthtable-condensed\': mode === 1}" style="padding: 0px;">\n                            <thead class="hidden-spoken">\n                                <tr ng-show="labels.length > 0">\n                                    <th id="{{label.post}}" tabindex="-1" class="dow weekday" ng-repeat="label in labels"></th>\n                                </tr>\n                            </thead>\n                            <tbody>\n                                <tr ng-repeat="row in currentRows">\n                                    <td headers="{{(mode === 0) && dt.header || \'month\'}}" att-element-focus="dt.focused" aria-hidden="{{(!dt.oldMonth && !dt.nextMonth && !dt.disabled && \'false\') || \'true\'}}" tabindex="{{(!dt.oldMonth && !dt.nextMonth && !dt.disabled && \'0\') || \'-1\'}}" ng-repeat="dt in row" class="days" ng-class="{\'active\': dt.selected || dt.from || dt.to, \'from\': dt.from, \'to\': dt.to, \'range\': dt.dateRange, \'prev-month \': dt.oldMonth, \'next-month\': dt.nextMonth, \'disabled\': dt.disabled, \'today\': dt.today, \'weekend\': dt.weekend}" ng-click="!dt.selected && !dt.from && !dt.to && !dt.disabled && !dt.oldMonth && !dt.nextMonth && select(dt.date)" att-accessibility-click="13,32" aria-label="{{dt.date | date : \'EEEE, MMMM d\'}}"><span class="day">{{dt.label}}</span></td>\n                                </tr>\n                                <tr ng-if="mode === 1" class="divider"><td colspan="{{nextRows[0].length}}"><hr></td></tr>\n                                <tr>\n                                    <th id="month" tabindex="0" class="datepicker-switch internal" colspan="{{nextRows[0].length}}" style="text-align:left">{{nextTitle}}</th>\n                                </tr>\n                                <tr ng-repeat="row in nextRows">\n'+"                                    <td headers=\"{{(mode === 0) && dt.header || 'month'}}\" att-element-focus=\"dt.focused\" aria-hidden=\"{{(!dt.oldMonth && !dt.nextMonth && !dt.disabled && 'false') || 'true'}}\" tabindex=\"{{(!dt.oldMonth && !dt.nextMonth && !dt.disabled && '0') || '-1'}}\" ng-repeat=\"dt in row\" class=\"days\" ng-class=\"{'active': dt.selected || dt.from || dt.to, 'from': dt.from, 'to': dt.to, 'range': dt.dateRange, 'prev-month ': dt.oldMonth, 'next-month': dt.nextMonth, 'disabled': dt.disabled, 'today': dt.today, 'weekend': dt.weekend}\" ng-click=\"!dt.selected && !dt.from && !dt.to && !dt.disabled && !dt.oldMonth && !dt.nextMonth && select(dt.date)\" att-accessibility-click=\"13,32\" aria-label=\"{{dt.date | date : 'EEEE, MMMM d'}}\"><span class=\"day\">{{dt.label}}</span></td>\n                                </tr>\n                            </tbody>\n                        </table>\n                    </td>\n                </tr>\n            </tbody>\n        </table>\n    </div>\n</div>\n")}]),angular.module("app/scripts/ng_js_att_tpls/datepicker/datepickerPopup.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/datepicker/datepickerPopup.html",'<div class="calendar">\n    <div class="box" ng-class="{\'active\': isOpen}">\n        <span ng-transclude></span>\n        <i class="calendar-icon" tabindex="0" att-accessibility-click="13,32" ng-click="toggle()" alt="Calendar Icon"></i>\n    </div>\n    <div class="datepicker-wrapper datepicker-wrapper-display-none" ng-style="{display: (isOpen && \'block\') || \'none\'}" aria-hidden="false" role="dialog" tabindex="-1">\n        <span datepicker></span>\n    </div>\n</div>\n')}]),angular.module("app/scripts/ng_js_att_tpls/dividerLines/dividerLines.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/dividerLines/dividerLines.html",'<div class="divider-container" ng-class="{\'divider-container-light\': lightContainer}">\n    <hr ng-class="{\'divider-light\': lightContainer}">\n</div>\n\n')}]),angular.module("app/scripts/ng_js_att_tpls/dragdrop/fileUpload.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/dragdrop/fileUpload.html",'<label class="fileContainer"><span ng-transclude></span><input type="file" att-file-change></label>')}]),angular.module("app/scripts/ng_js_att_tpls/formField/attFormFieldValidationAlert.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/formField/attFormFieldValidationAlert.html",'<div class="form-field" ng-class="{\'error\': errorMessage, \'warning\': warningMessage}">\n    <label class="form-field__label" ng-class="{\'form-field__label--show\': showLabel, \'form-field__label--hide\': hideLabel}"></label>\n    <div class="form-field-input-container" ng-transclude></div>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/formField/attFormFieldValidationAlertPrv.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/formField/attFormFieldValidationAlertPrv.html",'<div class="form-field" ng-class="{\'error\':hideErrorMsg}">\n    <div class="form-field-input-container" ng-transclude></div>\n    <div class="form-field__message error" type="error" ng-show="hideErrorMsg" >\n          <i class="icon-info-alert"></i>{{errorMessage}}\n       </div>\n</div>\n')}]),angular.module("app/scripts/ng_js_att_tpls/formField/creditCardImage.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/formField/creditCardImage.html",'<span class="css-sprite pull-right">\n<span class="hidden-spoken">We accept</span>\n<ul class="{{newValCCI}}">\n        <li class="css-sprite-mc"><span class="hidden-spoken">MasterCard</span></li>\n        <li class="css-sprite-visa"><span class="hidden-spoken">Visa</span></li>\n        <li class="css-sprite-amex"><span class="hidden-spoken">American Express</span></li>\n        <li class="css-sprite-discover"><span class="hidden-spoken">Discover</span></li>                                                                                                                \n</ul>\n</span>\n<label for="ccForm.card" class="pull-left">Card number</label>')}]),angular.module("app/scripts/ng_js_att_tpls/formField/cvcSecurityImg.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/formField/cvcSecurityImg.html",'<div>\n<button type="button" class="btn btn-alt btn-tooltip" style="padding-top:16px" title="Help"><i class="hidden-spoken">Help</i></button>\n<div class="helpertext" role="tooltip">\n<div class="popover-title"></div>\n<div class="popover-content">\n    <p class="text-legal cvc-cc">\n        <img ng-src="images/{{newValI}}.png" alt="{{newValIAlt}}">\n    </p>\n</div>\n</div>\n</div>\n')}]),angular.module("app/scripts/ng_js_att_tpls/hourpicker/hourpicker.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/hourpicker/hourpicker.html",'<div class="hourpicker">\n    <div class="dropdown-width">\n        <div ng-model="showlist" class="select2-container topDropDownWidth" ng-class="{\'select2-dropdown-open select2-container-active\': showlist}" >\n            <a class="select2-choice" href="javascript:void(0)" id="customSelect" ng-keydown="selectOption(selectPrevNextValue($event,options,selectedOption))" att-accessibility-click="13" ng-click="showDropdown()">\n                <span class="select2-chosen">{{selectedOption}}</span>\n                <span class="select2-arrow"><b></b></span>\n            </a>\n        </div>             \n        <div class="select2-display-none select2-with-searchbox select2-drop-active show-search resultTopWidth" ng-show="showlist">       \n        <ul class="select2-results resultTopMargin" >                       \n            <li  ng-model="ListType" ng-repeat="option in options" att-accessibility-click="13" ng-click="selectOption(option,$index)" class="select2-results-dept-0 select2-result select2-result-selectable"><div class="select2-result-label"><span >{{option}}</span></div></li>                        \n        </ul>\n        </div>\n    </div>\n    <div ng-show="showDaysSelector" class="customdays-width">\n        <div att-divider-lines class="divider-margin-f"></div>  \n        <div class="col-md-3 fromto-margin">\n            <div>From</div> <br>\n            <div>To</div>\n        </div>\n        <div ng-repeat="day in days">\n            <div class="col-md-3 col-md-days">\n                <div  class="col-md-1 daysselect-margin">\n                    <input type="checkbox" ng-model="daysList[day]" title="Day selection {{$index}}" att-checkbox ng-change="addSelectedValue(day)">    \n                </div>\n                <span>{{day}}</span><br>\n                \n                <div class="dropDownMarginBottom">\n                    <div class="select2-container topDropDownWidth" ng-class="{\'select2-dropdown-open select2-container-active\': FrtimeListDay[day]}" >\n                        <a class="select2-choice selectDropDown" href="javascript:void(0)" tabindex="{{daysList[day] ? \'0\' : \'-1\'}}" att-accessibility-click="13" ng-click="daysList[day] && showfromDayDropdown(day)" ng-class="{\'select2-chosen-disabled\':!daysList[day]}"  ng-keydown="daysList[day] && selectFromDayOption(day , selectPrevNextValue($event,fromtime,selectedFromOption[day]));daysList[day] && addSelectedValue(day);">\n                            <span class="select2-chosen dropDownMarginRight" >{{selectedFromOption[day]}} <i ng-if="daysList[day]" ng-class="FrtimeListDay[day] ? \'icon-dropdown-up\' : \'icon-dropdown-down\'"></i></span>\n                        </a>\n                    </div>             \n                    \n                    <div class="select2-display-none select2-with-searchbox select2-drop-active show-search resultFromDropDown"  ng-show="FrtimeListDay[day]">       \n                    <ul class="select2-results resultTopMargin" >                       \n                        <li ng-click="selectFromDayOption(day,time.value);addSelectedValue(day);" ng-repeat="time in fromtime"  class="select2-results-dept-0 select2-result select2-result-selectable"><div class="select2-result-label" ng-class="{\'selectedItemInDropDown\': (time.value==selectedFromOption[day])}"><span >{{time.value}}</span></div></li>                        \n                    </ul>\n                    </div>\n                </div>\n                \n                <div class="dropDownMarginBottom">\n                    <div class="select2-container topDropDownWidth" ng-class="{\'select2-dropdown-open select2-container-active\': TotimeListDay[day]}" >\n                        <a class="select2-choice selectDropDown" href="javascript:void(0)" tabindex="{{daysList[day] ? \'0\' : \'-1\'}}" att-accessibility-click="13" ng-click="daysList[day] && showtoDayDropdown(day)" ng-class="{\'select2-chosen-disabled\':!daysList[day], \'selectDropDown-error\':daysList[day] && showToTimeErrorDay[day]}"  ng-keydown="daysList[day] && selectToDayOption(day , selectPrevNextValue($event,totime,selectedToOption[day]));daysList[day] && addSelectedValue(day);">\n                            <span class="select2-chosen dropDownMarginRight">{{selectedToOption[day]}} <i ng-if="daysList[day]" ng-class="TotimeListDay[day] ? \'icon-dropdown-up\' : \'icon-dropdown-down\'" ></i></span>\n                        </a>\n                    </div>\n                    \n                    <div class="select2-display-none select2-with-searchbox select2-drop-active show-search resultToDropDown" ng-show="TotimeListDay[day]">       \n                    <ul class="select2-results resultTopMargin" >                       \n                        <li ng-click="selectToDayOption(day,time.value);addSelectedValue(day);" ng-repeat="time in totime"  class="select2-results-dept-0 select2-result select2-result-selectable"><div class="select2-result-label" ng-class="{\'selectedItemInDropDown\': (time.value==selectedToOption[day])}"><span >{{time.value}}</span></div></li>                        \n                    </ul>\n                    </div>\n                </div>\n            </div>  \n        </div>    \n        <div att-divider-lines class="divider-margin-s"></div>\n    </div>\n    <div ng-transclude></div>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/links/readMore.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/links/readMore.html",'<div>\n    <div ng-bind-html="textToDisplay" ng-class="{\'att--readMore\': readFlag, \'att--readLess\': !readFlag}" ng-style="readLinkStyle"></div>\n    <span class="att--readmore__link" ng-show="readMoreLink">… <a href="javascript:void(0);" ng-click="readMore()" att-accessbility-click="32,13">Read More</a>\n    </span>\n</div>\n<span class="att--readless__link" ng-show="readLessLink">\n    <a href="javascript:void(0);" ng-click="readLess()" att-accessbility-click="32,13">Read Less</a>\n</span>')}]),angular.module("app/scripts/ng_js_att_tpls/loading/loading.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/loading/loading.html",'<div data-progress="{{progressStatus}}" class="{{colorClass}}" ng-class="{\'att-loading-count\':icon == \'count\',\'loading--small\':icon == \'small\',\'loading\': icon != \'count\'}" alt="Loading">\n    <div class="att-loading-circle" ng-if="icon == \'count\'">\n            <div class="att-loading-circle__mask att-loading-circle__full">\n                       <div class="att-loading-circle__fill"></div>\n          </div>\n                <div class="att-loading-circle__mask att-loading-circle__half">\n                       <div class="att-loading-circle__fill"></div>\n                  <div class="att-loading-circle__fill att-loading-circle__fix"></div>\n          </div>\n        </div>\n        <div ng-class="{\'att-loading-inset\':icon == \'count\',\'loading__inside\':icon != \'count\'}"><div class="att-loading-inset__percentage" ng-if="icon == \'count\'" alt="Loading with Count"></div></div>\n</div>\n\n')}]),angular.module("app/scripts/ng_js_att_tpls/modal/backdrop.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/modal/backdrop.html",'<div class="overlayed" ng-class="{show: animate}" \n'+"     ng-style=\"{'z-index': 2000 + index*10,'overflow':'scroll'}\">         \n</div>")}]),angular.module("app/scripts/ng_js_att_tpls/modal/tabbedItem.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/modal/tabbedItem.html",'<div>\n    <ul class="tabs_overlay">\n        <li ng-repeat="item in items" class="tabs_overlay__item two__item" ng-class="{\'active\':isActiveTab($index)}" ng-click="clickTab($index)">\n            <i class="{{item.iconClass}}"></i>\n            {{item.title}} ({{item.number}})\n            <a class="viewLink" att-link>Show</a>\n        </li>\n    </ul>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/modal/tabbedOverlayItem.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/modal/tabbedOverlayItem.html",'<div>\n    <ul class="tabs_overlay">\n        <li ng-repeat="item in items" class="tabs_overlay__item two__item" ng-class="{\'active\':isActiveTab($index)}" ng-click="clickTab($index)">\n            <i class="{{item.iconClass}}"></i>\n            {{item.title}} ({{item.number}})\n            <a class="viewLink" att-link>Show</a>\n        </li>\n    </ul>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/modal/window.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/modal/window.html",'<div tabindex="-1" role="dialog" att-element-focus="focusModalFlag" class="modals {{ windowClass }}" ng-class="{show: animate}" \n     ng-style="{\'z-index\': 2010 + index*10}"  ng-click="close($event)" ng-transclude>         \n</div>\n')}]),angular.module("app/scripts/ng_js_att_tpls/pagination/pagination.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/pagination/pagination.html",'<div class="pager">\n    <a tabindex="0" href="javascript:void(0)" class="pager__item--prev" att-accessibility-click="13,32" ng-click="prev($event)" ng-if="currentPage > 1"><i class="icon-arrow-left"></i> Previous</a>\n    <a tabindex="0" href="javascript:void(0)" class="pager__item pager__item--link" ng-if="totalPages > 7 && currentPage > 3" att-accessibility-click="13,32" ng-click="selectPage(1, $event)">1</a>\n    <span class="pager__item" ng-if="totalPages > 7 && currentPage > 3">...</span>\n    <a tabindex="0" href="javascript:void(0)" class="pager__item pager__item--link" att-element-focus="isFocused(page)" ng-repeat="page in pages" ng-class="{\'pager__item--active\': checkSelectedPage(page)}" att-accessibility-click="13,32" ng-click="selectPage(page, $event)">{{page}}</a>\n    <span class="pager__item" ng-if="totalPages > 7 && currentPage < totalPages - 2 && showInput !== true">...</span>\n    <span ng-show="totalPages > 7 && showInput === true"><input class="pager__item--input" type="text" placeholder="..." maxlength="2" ng-model="currentPage" aria-label="Current page count"/></span>\n    <a tabindex="0" href="javascript:void(0)" class="pager__item pager__item--link" ng-if="totalPages > 7 && currentPage < totalPages - 2" att-accessibility-click="13,32" ng-click="selectPage(totalPages, $event)">{{totalPages}}</a>\n    <a tabindex="0" href="javascript:void(0)" class="pager__item--next" att-accessibility-click="13,32" ng-click="next($event)" ng-if="currentPage < totalPages">Next <i class="icon-arrow-right"></i></a>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/paneSelector/innerPane.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/paneSelector/innerPane.html","<div class='inner-pane' ng-transclude></div>")}]),angular.module("app/scripts/ng_js_att_tpls/paneSelector/paneGroup.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/paneSelector/paneGroup.html","<div class='pane-group' ng-transclude></div>")}]),angular.module("app/scripts/ng_js_att_tpls/paneSelector/sidePane.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/paneSelector/sidePane.html","<div class='side-pane' ng-transclude></div>")}]),angular.module("app/scripts/ng_js_att_tpls/tooltip/tooltip-popup.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/tooltip/tooltip-popup.html","<div class=\"att-tooltip \" \n     ng-class=\"{ 'att-tooltip--on': isOpen, \n                'att-tooltip--dark att-tooltip--dark--hover':stylett=='dark', \n                'att-tooltip--light att-tooltip--light--hover':stylett=='light',\n                'att-tooltip--left':placement=='left', \n                'att-tooltip--above':placement=='above', \n                'att-tooltip--right':placement=='right', \n                'att-tooltip--below':placement=='below'}\" \n    ng-bind-html=\"content | unsafe\" ></div>")}]),angular.module("app/scripts/ng_js_att_tpls/popOvers/popOvers.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/popOvers/popOvers.html","<div class=\"att-popover popover-demo\" ng-style=\"{backgroundColor:popOverStyle}\"\n     ng-class=\"{'att-tooltip--dark':popOverStyle==='grey',\n                'att-pop-over--left':popOverPlacement==='left', \n                'att-pop-over--above':popOverPlacement==='above', \n                'att-pop-over--right':popOverPlacement==='right'}\" \n    style='position: absolute; max-width: 490px;'>\n    <div class=\"pop-over-caret\"\n         ng-class=\"{'pop-over-caret-border--left':popOverPlacement==='left', \n                'pop-over-caret-border--above':popOverPlacement==='above', \n                'pop-over-caret-border--right':popOverPlacement==='right', \n                'pop-over-caret-border--below':popOverPlacement==='below'}\">\n    </div>\n    <div class=\"pop-over-caret\" ng-style=\"popOverPlacement=='below' && {borderBottom:'6px solid ' +popOverStyle}||popOverPlacement=='left' && {borderLeft:'6px solid ' +popOverStyle}||popOverPlacement=='right' && {borderRight:'6px solid ' +popOverStyle}||popOverPlacement=='above' && {borderTop:'6px solid ' +popOverStyle}\"\n         ng-class=\"{'pop-over-caret--left':popOverPlacement==='left', \n                'pop-over-caret--above':popOverPlacement==='above', \n                'pop-over-caret--right':popOverPlacement==='right', \n                'pop-over-caret--below':popOverPlacement==='below'}\"></div>\n    \n    <div class=\"att-popover-content\">\n"+'      <a ng-if="closeable" href="javascript:void(0)" class="icon-close att-popover__close" ng-click="closeMe();$event.preventDefault()"></a>\n        <div class="popover-packages__container" ng-include="content"></div>\n    </div>\n</div>');\r
+}]),angular.module("app/scripts/ng_js_att_tpls/profileCard/addUser.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/profileCard/addUser.html",'<div  class="col-md-9 profile-card add-user">\n    <div class="atcenter">\n        <div><i class="icon-add"></i></div>\n        <span>add User</span>\n    </div>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/profileCard/profileCard.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/profileCard/profileCard.html",'<div class="col-md-9 profile-card">\n    <div class="top-block">\n       <div class="profile-image">\n            <img ng-if="image" profile-name="{{profile.name}}" ng-src="{{profile.img}}" alt="{{profile.name}}">\n            <span ng-hide="image" class="default-img">{{initials}}</span>\n            <p class="name" tooltip-condition="{{profile.name}}" height="true"></p>\n            <p class="status">\n                <span class="status-icon" ng-class="{\'icon-green\':colorIcon===\'green\',\'icon-red\':colorIcon===\'red\',\'icon-blue\':colorIcon===\'blue\',\'icon-yellow\':colorIcon===\'yellow\'}">   \n                </span>\n                <span>{{profile.state}}<span ng-if="badge" class="status-badge">Admin</span></span>\n            </p>\n        </div>\n    </div>\n    <div class="bottom-block">\n         <div class="profile-details">\n            <label>Username</label>\n            <p att-text-overflow="92%" tooltip-condition="{{profile.userName}}">{{profile.userName}}</p>\n            <label>Email</label>\n            <p att-text-overflow="92%" tooltip-condition="{{profile.email}}">{{profile.email}}</p>\n            <label>Role</label>\n            <p att-text-overflow="92%" tooltip-condition="{{profile.role}}">{{profile.role}}</p>\n            <label>Last Login</label>\n            <p att-text-overflow="92%" tooltip-condition="{{profile.lastLogin}}">{{profile.lastLogin}}</p>\n         </div>\n    </div>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/progressBars/progressBars.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/progressBars/progressBars.html",'<div class="att-progress">\n    <div class="att-progress-value">&nbsp;</div>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/scrollbar/scrollbar.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/scrollbar/scrollbar.html",'<div class="scroll-bar" style="position: absolute">\n    <div class="scroll-thumb" style="position: absolute; overflow: hidden"></div>\n</div>\n<div class="prev icons-list" data-size="medium" ng-show="navigation && prevAvailable" ng-style="{height: scrollbarAxis === \'x\' && position.height + \'px\'}">\n    <a href="javascript:void(0);" ng-click="customScroll(false)" aria-label="Scroll" aria-hidden="true">\n        <i ng-class="{\'icon-chevron-up\': (scrollbarAxis === \'y\'), \'icon-chevron-left\': (scrollbarAxis === \'x\')}"></i>\n    </a>\n</div>\n<div class="scroll-viewport" ng-style="{height: (scrollbarAxis === \'x\' && position.height + \'px\') || viewportHeight, width: viewportWidth}" style="position: relative; overflow: hidden">\n    <div class="scroll-overview" style="position: absolute; display: table; width: 100%" att-position="position" ng-transclude></div>\n</div>\n<div class=\'next icons-list\' data-size="medium" ng-show="navigation && nextAvailable" ng-style="{height: scrollbarAxis === \'x\' && position.height + \'px\'}">\n    <a href="javascript:void(0);" ng-click="customScroll(true)" aria-label="Scroll" aria-hidden="true">\n'+"        <i ng-class=\"{'icon-chevron-down': (scrollbarAxis === 'y'), 'icon-chevron-right': (scrollbarAxis === 'x')}\"></i>\n    </a>\n</div>\n")}]),angular.module("app/scripts/ng_js_att_tpls/search/search.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/search/search.html",'<div class="select2-container show-search" ng-class="{\'select2-dropdown-open\': (showlist && !isDisabled),\'select2-container-disabled\':isDisabled, \'select2-container-active\': isact}" ng-init="isact=false;" style="width: 100%;">\n    <a href="javascript:void(0)" class="select2-choice needsclick" tabindex="0" ng-click="showDropdown()" ng-class="{\'select2-chosen-disabled\':isDisabled}" role="combobox" aria-expanded="{{showlist}}" aria-owns="inList" aria-label="{{selectedOption}} selected" ng-focus="isact=true;" ng-blur="isact=false;">\n        <span class="select2-chosen needsclick" aria-hidden = "true">{{selectedOption}}</span>\n        <abbr class="select2-search-choice-close needsclick"></abbr>\n        <span class="select2-arrow needsclick" role="presentation">\n            <b role="presentation" class="needsclick"></b>\n        </span>\n    </a>    \n    <input class="select2-focusser select2-offscreen"            \n           tabindex="-1" \n           type="text" \n           aria-hidden="true" \n           title="hidden"           \n           aria-haspopup="true"           \n           role="button">    \n</div>\n\n<div class="select2-drop select2-with-searchbox select2-drop-auto-width select2-drop-active" ng-class="{\'select2-display-none\':(!showlist || isDisabled)}" style="width:100%;z-index: 10">\n    <div class="select2-search">\n        <label ng-if="!noFilter" class="select2-offscreen" aria-label="Inline Search Field" aria-hidden="true">Inline Search Field</label>\n        <input ng-if="!noFilter" ng-model="title" aria-label="title" typeahead="c.title for c in cName | filter:$viewValue:startsWith" type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="select2-input" aria-autocomplete="list" placeholder="">\n    </div>\n    <ul id="inList" class="select2-results" role="listbox">\n        <li ng-show="filteredName.length === 0" class="select2-no-results" tabindex="-1">No matches found</li>\n        <li class="select2-results-dept-0 select2-result select2-result-selectable" role="presentation" ng-model="ListType" ng-show="selectMsg && filteredName.length > 0" ng-click="selectOption(selectMsg, \'-1\')" ng-class="{\'select2-result-current\': selectedOption === selectMsg, \'hovstyle\': selectedIndex === -1}" ng-mouseover="hoverIn(-1)" aria-label="{{selectMsg}}" tabindex="-1">\n            <div ng-if="startsWithFilter" class="select2-result-label" ng-bind-html="selectMsg | unsafe" role="option">\n                <span class="select2-match"></span>\n            </div>\n            <div ng-if="!startsWithFilter" class="select2-result-label" ng-bind-html="selectMsg | highlight:title:className | unsafe" role="option">\n                <span class="select2-match"></span>\n            </div>\n        </li>\n\n        <li role="menuitem" ng-if="startsWithFilter" class="select2-results-dept-0 select2-result select2-result-selectable" role="presentation" ng-model="ListType" ng-repeat="(fIndex, item) in filteredName = (cName | startsWith:title:item)" ng-class="{\'select2-result-current\': selectedOption === item.title,\'hovstyle\': selectedIndex === item.index,\'disable\': item.disabled}" ng-click="item.disabled || selectOption(item.title,item.index)" ng-mouseover="hoverIn(item.index)" aria-label="{{item.title}}" tabindex="-1">\n            <div class="select2-result-label" ng-bind-html="item.title | unsafe" role="option">\n                <span class="select2-match"></span>\n            </div>\n        </li>\n\n        <li role="menuitem" ng-if="!startsWithFilter" class="select2-results-dept-0 select2-result select2-result-selectable" role="presentation" ng-model="ListType" ng-repeat="(fIndex, item) in filteredName = (cName | filter:title)" ng-class="{\'select2-result-current\': selectedOption === item.title,\'hovstyle\': selectedIndex === item.index,\'disable\': item.disabled}" ng-click="item.disabled || selectOption(item.title,item.index)" ng-mouseover="hoverIn(item.index)" aria-label="{{item.title}}" tabindex="-1">\n            <div class="select2-result-label" ng-bind-html="item.title | highlight:title:className | unsafe" role="option">\n                <span class="select2-match"></span>\n            </div>\n        </li>\n    </ul>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/select/select.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/select/select.html",'<div class="select2-container show-search" ng-class="{\'select2-dropdown-open\': (showlist && !isDisabled),\'select2-container-disabled\': isDisabled, \'select2-container-active\': isact}" ng-init="isact=false;">\n    <span class="select2-choice needsclick" tabindex="{{isDisabled ? -1 : 0}}" ng-click="showDropdown()" ng-class="{\'select2-chosen-disabled\':isDisabled}" role="combobox" aria-expanded="{{showlist}}" aria-owns="inList" aria-label="{{titleName}} dropdown {{selectedOption}} selected" ng-focus="isact=true;" ng-blur="isact=false;">\n        <span class="select2-chosen needsclick" aria-hidden="true" ng-bind-html="selectedOption | unsafe">{{selectedOption}}</span>\n        <abbr class="select2-search-choice-close needsclick"></abbr>\n        <span class="select2-arrow needsclick" role="presentation">\n            <b role="presentation" class="needsclick"></b>\n        </span>\n    </span>    \n    <input class="select2-focusser select2-offscreen"            \n           tabindex="-1" \n           type="text" \n           aria-hidden="true" \n           title="hidden"           \n           aria-haspopup="true"           \n           role="button">    \n</div>\n\n<div class="select2-drop select2-with-searchbox select2-drop-auto-width select2-drop-active" ng-class="{\'select2-display-none\':(!showlist || isDisabled)}" style="width:100%;z-index: 10">\n    <div class="select2-search">\n        <label ng-if="!noFilter" class="select2-offscreen" aria-label="Inline Search Field" aria-hidden="true">Inline Search Field</label>\n        <input ng-if="!noFilter" ng-model="title" aria-label="title" typeahead="c.title for c in cName | filter:$viewValue:startsWith" type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="select2-input" aria-autocomplete="list" placeholder="">\n    </div>\n    <ul id="inList" class="select2-results" role="listbox">\n        <li ng-if="!noFilter" ng-show="filteredName.length === 0" class="select2-no-results" tabindex="-1">No matches found</li>\n        <li ng-if="!noFilter" class="select2-results-dept-0 select2-result select2-result-selectable" role="presentation" ng-model="ListType" ng-show="selectMsg && filteredName.length > 0" ng-click="selectOption(selectMsg, \'-1\')" ng-class="{\'select2-result-current\': selectedOption === selectMsg, \'hovstyle\': selectedIndex === -1}" ng-mouseover="hoverIn(-1)" aria-label="{{selectMsg}}" tabindex="-1">\n            <div ng-if="startsWithFilter" class="select2-result-label" ng-bind-html="selectMsg | unsafe" role="option">\n                <span class="select2-match"></span>\n            </div>\n            <div ng-if="!startsWithFilter" class="select2-result-label" ng-bind-html="selectMsg | highlight:title:className | unsafe" role="option">\n                <span class="select2-match"></span>\n            </div>\n        </li>\n\n        <li  role="menuitem"  ng-if="startsWithFilter" class="select2-results-dept-0 select2-result select2-result-selectable" ng-model="ListType" ng-repeat="(fIndex, item) in filteredName = (cName | startsWith:title:item)" ng-class="{\'select2-result-current\': selectedOption === item.title,\'hovstyle\': selectedIndex === item.index,\'disable\': item.disabled}" ng-click="item.disabled || selectOption(item.title,item.index)" ng-mouseover="hoverIn(item.index)"  tabindex="-1">\n            <div class="select2-result-label" ng-bind-html="item.title | unsafe" role="option">\n                <span class="select2-match"></span>\n            </div>\n        </li>\n\n        <li role="menuitem" ng-if="!startsWithFilter" class="select2-results-dept-0 select2-result select2-result-selectable" ng-model="ListType" ng-repeat="(fIndex, item) in filteredName = (cName | filter:title)" ng-class="{\'select2-result-current\': selectedOption === item.title,\'hovstyle\': selectedIndex === item.index,\'disable\': item.disabled}" ng-click="item.disabled || selectOption(item.title,item.index)" ng-mouseover="hoverIn(item.index)"  tabindex="-1">\n            <div class="select2-result-label" ng-bind-html="item.title | highlight:title:className | unsafe" role="option">\n                <span class="select2-match"></span>\n            </div>\n        </li>\n    </ul>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/select/textDropdown.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/select/textDropdown.html",'<div tabindex="0" class="text-dropdown">\n        <div class="dropdown" ng-class="{\'not-visible\': isActionsShown}" ng-click="toggle()">\n               <span class="action--selected" ng-bind="currentAction"></span>\n                <i ng-class="isActionsShown ? \'icon-dropdown-up\' : \'icon-dropdown-down\'"></i>\n     </div>\n        <ul ng-class="isActionsShown ? \'actionsOpened\' : \'actionsClosed\'" ng-show="isActionsShown">\n               <li ng-class="{\'highlight\': selectedIndex==$index}" ng-repeat="action in actions track by $index" ng-click="chooseAction($event, action, $index)" ng-mouseover="hoverIn($index)">{{action}}<i ng-class="{\'icon-included-checkmark\': isCurrentAction(action)}" att-accessibility-click="13,32"></i></li>\n   </ul>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/slider/maxContent.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/slider/maxContent.html",'<div class="att-slider__label att-slider__label--max att-slider__label--below" ng-transclude></div>')}]),angular.module("app/scripts/ng_js_att_tpls/slider/minContent.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/slider/minContent.html",'<div class="att-slider__label att-slider__label--min att-slider__label--below" ng-transclude></div>')}]),angular.module("app/scripts/ng_js_att_tpls/slider/slider.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/slider/slider.html",'<div class="att-slider" ng-mousemove="moveElem($event)" ng-mouseup="mouseUp($event)">\n    <div class="att-slider__track">\n        <div class="att-slider__range att-slider__range--disabled" ng-style="disabledStyle"></div>\n        <div class="att-slider__range" ng-style="rangeStyle"></div>\n    </div>\n    <div class="att-slider__handles-container">\n       <div role="menuitem" aria-label="{{ngModelSingle}}" class="att-slider__handle" ng-style="handleStyle" ng-mousedown="mouseDown($event,\'ngModelSingle\')" ng-mousemove="moveElem($event)" ng-mouseup="mouseUp($event)" tabindex="0" ng-keydown="keyDown($event,\'ngModelSingle\')"></div>\n       <div role="menuitem" aria-label="Minimum Value- {{ngModelLow}}" class="att-slider__handle" ng-style="minHandleStyle" ng-mousedown="mouseDown($event,\'ngModelLow\')" ng-focus="focus($event,\'ngModelLow\')" ng-mousemove="moveElem($event)" ng-mouseup="mouseUp($event)" tabindex="0" ng-keyup="keyUp($event,\'ngModelLow\')" ng-keydown="keyDown($event,\'ngModelLow\')"></div>\n       <div role="menuitem" aria-label="Maximum Value- {{ngModelHigh}}" class="att-slider__handle" ng-style="maxHandleStyle" ng-mousedown="mouseDown($event,\'ngModelHigh\')" ng-focus="focus($event,\'ngModelHigh\')" ng-mousemove="moveElem($event)" ng-mouseup="mouseUp($event)" tabindex="0" ng-keyup="keyUp($event,\'ngModelHigh\')" ng-keydown="keyDown($event,\'ngModelHigh\')"></div>\n    </div>\n    <div ng-transclude></div>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/splitButtonDropdown/splitButtonDropdown.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/splitButtonDropdown/splitButtonDropdown.html",'<div class=" btn-group" \n     ng-class="{\'buttons-dropdown--large\':!isSmall, \n                 \'buttons-dropdown--small\':isSmall, \n                 \'action-dropdown\':(isActionDropdown), \n                 \'open\':isDropDownOpen}">\n    <a tabindex="0" href="javascript:void(0)" class="button btn buttons-dropdown__split" \n       ng-class="{\'button--primary\':(btnType==undefined || btnType==\'primary\'), \n                   \'button--secondary\':btnType==\'secondary\', \n                   \'button--disabled\':btnType==\'disabled\', \n                   \'button--small\':isSmall}" \n       ng-if="!isActionDropdown"\n       ng-click="btnType===\'disabled\'?undefined:clickFxn()" att-accessibility-click="13,32">{{btnText}}</a>\n    <a tabindex="0" href="javascript:void(0)" role="button" aria-label="Toggle Dropdown" aria-haspopup="true" class="button buttons-dropdown__drop dropdown-toggle" \n       ng-class="{\'button--primary\':(btnType==undefined || btnType==\'primary\'), \n               \'button--secondary\':btnType==\'secondary\', \n               \'button--disabled\':btnType==\'disabled\', \n               \'button--small\':isSmall}" ng-click="toggleDropdown()" att-accessibility-click="13,32">{{toggleTitle}} </a>\n    <ul class="dropdown-menu" ng-class="{\'align-right\':multiselect ===true}" aria-expanded="{{isDropDownOpen}}" ng-click="hideDropdown()" role="menu" ng-transclude></ul>\n</div>  ')}]),angular.module("app/scripts/ng_js_att_tpls/splitButtonDropdown/splitButtonDropdownItem.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/splitButtonDropdown/splitButtonDropdownItem.html",'<li role="menuitem" att-element-focus="sFlag" tabindex="0" ng-transclude></li>')}]),angular.module("app/scripts/ng_js_att_tpls/splitIconButton/splitIcon.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/splitIconButton/splitIcon.html","<div class='split-icon-button-container'>\n\n      <div class='split-icon-button' ng-class=\"{'icon-with-chevron': isRight && !isMiddle && !isLeftNextDropdown && !isNextToDropDown, 'split-icon-button-middle':isMiddle, 'split-icon-button-right':isRight, 'split-icon-button-left':isLeft, 'split-icon-button-left-dropdown': isLeftNextDropdown ,'split-icon-button-next-dropdown': isNextToDropDown,'split-icon-button-dropdown': isDropDownOpen,'split-icon-button-hover':isIconHovered || isDropDownOpen}\" ng-mouseover='isIconHovered = true;' ng-mouseleave='isIconHovered = false;' tabindex=\"-1\" att-accessibility-click=\"13,32\" ng-click='dropDownClicked();'>\n          <a class='{{icon}}' title='{{iconTitle}}' tabindex=\"0\"></a>\n         <i ng-if=\"isRight && !isMiddle && !isLeftNextDropdown && !isNextToDropDown\" \n                        ng-class=\"isDropDownOpen ? 'icon-dropdown-up' : 'icon-dropdown-down'\"> </i>\n </div> \n\n      <ul ng-if='isDropdown' class='dropdown-menu {{dropDownId}}' ng-show='\n         isDropDownOpen' ng-click='toggleDropdown(false)' role=\"presentation\" ng-transclude>\n         </ul>\n\n</div>")}]),angular.module("app/scripts/ng_js_att_tpls/splitIconButton/splitIconButton.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/splitIconButton/splitIconButton.html","<div>\n   <div ng-if='isLeftLineShown' dir-type='{{iconStateConstants.DIR_TYPE.LEFT}}' expandable-line></div>\n   <div ng-click='clickHandler()' att-split-icon icon='{{icon}}' title='{{title}}' dir-type='{{iconStateConstants.DIR_TYPE.BUTTON}}' hover-watch='isHovered' drop-down-watch='dropDownWatch' drop-down-id='{{dropDownId}}'>\n              <div ng-transclude>\n           </div>\n        </div>\n        <div ng-if='isRightLineShown' dir-type='{{iconStateConstants.DIR_TYPE.RIGHT}}' expandable-line></div>\n</div>")}]),angular.module("app/scripts/ng_js_att_tpls/splitIconButton/splitIconButtonGroup.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/splitIconButton/splitIconButtonGroup.html","<div ng-transclude>\n</div>")}]),angular.module("app/scripts/ng_js_att_tpls/stepSlider/attStepSlider.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/stepSlider/attStepSlider.html",'<span ng-class="mainSliderClass">\n    <table>\n        <tr>\n            <td>\n                <div class="jslider-bg">\n                    <i class="l"></i>\n                    <i class="r"></i>\n                    <i class="v" ng-class="{\'step-slider-green\':sliderColor == COLORS.GREEN, \'step-slider-blue\': sliderColor == COLORS.BLUE_HIGHLIGHT, \'step-slider-magenta\': sliderColor == COLORS.MAGENTA, \'step-slider-gold\': sliderColor == COLORS.GOLD, \'step-slider-purple\': sliderColor == COLORS.PURPLE, \'step-slider-dark-blue\': sliderColor == COLORS.DARK_BLUE, \'step-slider-regular\': sliderColor == COLORS.REGULAR, \'step-slider-white\': sliderColor == COLORS.WHITE, \'cutoff-slider\': isCutOffSlider}"></i>\n                </div>\n                <div class="jslider-pointer" id="left-pointer"></div>\n                <div class="jslider-pointer jslider-pointer-to" ng-class="{\'step-slider-green\':sliderColor == COLORS.GREEN, \'step-slider-blue\': sliderColor == COLORS.BLUE_HIGHLIGHT, \'step-slider-magenta\': sliderColor == COLORS.MAGENTA, \'step-slider-gold\': sliderColor == COLORS.GOLD, \'step-slider-purple\': sliderColor == COLORS.PURPLE, \'step-slider-dark-blue\': sliderColor == COLORS.DARK_BLUE, \'step-slider-regular\': sliderColor == COLORS.REGULAR, \'step-slider-white\':sliderColor == COLORS.WHITE ,\'cutoff-slider\': isCutOffSlider}"></div>\n                <div class="jslider-label"><span ng-bind="from"></span><span ng-bind="options.dimension"></span></div>\n                <div class="jslider-label jslider-label-to"><span ng-bind="toStr"></span><span ng-bind="endDimension"></span></div>\n                <div class="jslider-value" id="jslider-value-left"><span></span>{{options.dimension}}</div>\n                <div class="jslider-value jslider-value-to"><span></span>{{toolTipDimension}}</div>\n                <div class="jslider-scale" ng-class="{\'show-dividers\': showDividers, \'cutoff-slider-dividers\':isCutOffSlider}">\n                </div>\n                <div class="jslider-cutoff">\n                    <div class="jslider-label jslider-label-cutoff">\n                        <span ng-bind="cutOffVal"></span>\n                    </div>\n                </div>\n            </td>\n        </tr>\n    </table>\n</span>\n')}]),angular.module("app/scripts/ng_js_att_tpls/steptracker/step-tracker.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/steptracker/step-tracker.html",'<div class="steptracker1">\n    <div class="steptracker-bg">\n        <div tabindex="0" ng-click="stepclick($event, $index);" att-accessibility-click="13,23" class="steptracker-track size-onethird" ng-repeat="step in sdata"\n             ng-style="set_width($index)"\n             ng-class="{\'last\':laststep($index),\'done\':donesteps($index),\'active\':activestep($index), \'incomplete\': isIncomplete($index), \'disabled\': disableClick}">\n            <div class="circle">{{($index) + 1}}<span>{{step.title}}</span></div>\n            <div ng-if="!laststep($index)" class="track"></div>\n        </div>\n    </div>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/steptracker/step.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/steptracker/step.html",'<div class="steptracker1">\n    <div class="steptracker-bg">\n        <div class="steptracker-track size-onethird" \n             ng-class="{\'last\':laststep($index),\'done\':donesteps($index),\'active\':activestep($index)}">\n            <div class="circle" tabindex="0" \n                 ng-click="stepclick($event, $index);" \n                 att-accessibility-click="13,23">{{($index) + 1}}<span>{{step.title}}</span></div>\n            <div ng-if="!laststep($index)" class="track"></div>\n        </div>\n    </div>\n</div>\n')}]),angular.module("app/scripts/ng_js_att_tpls/steptracker/timeline.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/steptracker/timeline.html","<div class='att-timeline'>\n   <div timeline-dot order='0' title='{{steps[0].title}}' description='{{steps[0].description}}' by='{{steps[0].by}}' date='{{steps[0].date}}' type='{{steps[0].type}}'></div>\n\n <div ng-repeat=\"m in middleSteps track by $index\">\n          <div timeline-bar order='{{$index}}'></div>\n           <div timeline-dot order='{{$index + 1}}' title='{{m.title}}' description='{{m.description}}' by='{{m.by}}' date='{{m.date}}' type='{{m.type}}'>\n               </div>\n        </div>\n\n</div>")}]),angular.module("app/scripts/ng_js_att_tpls/steptracker/timelineBar.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/steptracker/timelineBar.html","<div class='timeline-bar'>\n      <div class='progress-bar' ng-class=\"{'completed-color':isCompleted,'cancelled-color':isCancelled,'alert-color':isAlert}\">\n   </div>\n        <hr></hr>\n</div>")}]),angular.module("app/scripts/ng_js_att_tpls/steptracker/timelineDot.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/steptracker/timelineDot.html","<div class='timeline-dot'>\n\n   <div class='bigger-circle' ng-class=\"{'completed-color':isCompleted,'cancelled-color':isCancelled,'alert-color':isAlert}\">\n  </div>\n\n      <div class='inactive-circle'>\n </div>\n\n      <div class='expandable-circle' ng-class=\"{'completed-color':isCompleted,'cancelled-color':isCancelled,'alert-color':isAlert}\">\n      </div>\n\n      <div ng-class=\"{'below-info-box':isBelowInfoBoxShown, 'above-info-box': !isBelowInfoBoxShown}\" tabindex=\"0\">\n              \n              <div ng-if='isBelowInfoBoxShown' class='vertical-line'>\n               </div>\n\n              <div class='info-container' ng-init='isContentShown=false'>\n                   <div ng-class=\"{'current-step-title':isCurrentStep, 'title':!isCurrentStep,'completed-color-text':isCompleted,'cancelled-color-text':isCancelled,'alert-color-text':isAlert, 'inactive-color-text':isInactive}\" ng-mouseover='titleMouseover(1)' ng-mouseleave='titleMouseleave()' ng-bind='title' ></div>\n                  <div class='content'>\n                         <div class='description' ng-bind='description'></div>\n                         <div class='submitter' ng-bind='by'></div>\n                    </div>\n                        <div class='date' ng-mouseover='titleMouseover(2)' ng-mouseleave='titleMouseleave()' ng-bind='date'></div>\n            </div>\n\n              <div ng-if='!isBelowInfoBoxShown' class='vertical-line'>\n              </div>\n        </div>\n\n</div>")}]),angular.module("app/scripts/ng_js_att_tpls/table/attTable.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/table/attTable.html",'<table class="tablesorter tablesorter-default" ng-transclude></table>\n')}]),angular.module("app/scripts/ng_js_att_tpls/table/attTableBody.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/table/attTableBody.html","<td ng-transclude></td>\n")}]),angular.module("app/scripts/ng_js_att_tpls/table/attTableHeader.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/table/attTableHeader.html","<th role=\"columnheader\" scope=\"col\" aria-live=\"polite\" aria-sort=\"{{sortPattern !== 'null' && '' || sortPattern}}\" aria-label=\"{{headerName}} {{sortable !== 'false' && ': activate to sort' || ' '}} {{sortPattern !== 'null' && '' || sortPattern}}\" tabindex=\"{{sortable !== 'false' && '0' || '-1'}}\" class=\"tablesorter-header\" ng-class=\"{'tablesorter-headerAsc': sortPattern === 'ascending', 'tablesorter-headerDesc': sortPattern === 'descending', 'tablesort-sortable': sortable !== 'false', 'sorter-false': sortable === 'false'}\" att-accessibility-click=\"13,32\" ng-click=\"(sortable !== 'false') && sort();\"><div class=\"tablesorter-header-inner\" ng-transclude></div></th>")}]),angular.module("app/scripts/ng_js_att_tpls/tableMessages/attTableMessage.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/tableMessages/attTableMessage.html",'<div class="att-table-message">\n   <div class="message" ng-if="msgType==messageConstants.TABLE_MESSAGE_TYPES.noMatching">\n      <div class="img-magnify-glass"></div> \n      <div>\n         <div ng-transclude></div>\n      </div>\n   </div>\n   <div class="message" ng-if="msgType==messageConstants.TABLE_MESSAGE_TYPES.errorLoading">\n      <div class="img-oops-exclamation" tabindex="0" aria-label="Oops! The information could not load at this time. Please click link to refresh the page."></div> \n      <div>Oops!</div>\n      <div>The information could not load at this time.</div>\n      <div>Please <a href="javascript:void(0)" ng-click="refreshAction($event)">refresh the page</a>\n      </div>\n   </div>\n   <div class="message" ng-if="msgType==messageConstants.TABLE_MESSAGE_TYPES.magnifySearch">\n      <div class="img-magnify-glass"></div>\n      <div>\n         <p class="title" tabindex="0">Please input values to <br/> begin your search.</p>\n      </div>\n   </div>\n   <div class="message loading-message" ng-if="msgType==messageConstants.TABLE_MESSAGE_TYPES.isLoading">\n      <div class="img-loading-dots"></div>\n      <div ng-transclude></div>\n   </div>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/tableMessages/attUserMessage.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/tableMessages/attUserMessage.html",'<div class="att-user-message">\n  <div ng-class="type==messageConstants.USER_MESSAGE_TYPES.error && trigger ? \'message-wrapper-error\' : \'hidden\'">\n      <div class="message-icon-error"> <i class="icon-info-alert"></i> </div>\n\n      <div class="message-body-wrapper">\n        <div class="message-title-error" ng-if="thetitle && thetitle.length > 0"> <span ng-bind="thetitle" tabindex="0" aria-label="{{thetitle}}"></span> </div>\n        <div class="message-msg" ng-bind="message" ng-if="message && message.length > 0" tabindex="0"></div>\n        <div class="message-bottom">\n           <div ng-transclude></div>\n        </div>\n      </div>\n\n   </div>\n  <div ng-class="type==messageConstants.USER_MESSAGE_TYPES.success && trigger ? \'message-wrapper-success\' : \'hidden\'">\n      <div class="message-icon-success"> <i class="icon-included-checkmark"></i></div>\n\n      <div class="message-body-wrapper">\n        <div class="message-title-success" ng-if="thetitle && thetitle.length > 0" >\n          <span ng-bind="thetitle" tabindex="0" aria-label="{{thetitle}}"></span>\n        </div>\n        <div class="message-msg" ng-bind="message" ng-if="message && message.length > 0" tabindex="0"></div>\n        <div class="message-bottom">\n           <div ng-transclude></div>\n        </div>\n      </div>\n\n   </div>\n</div>\n')}]),angular.module("app/scripts/ng_js_att_tpls/tabs/floatingTabs.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/tabs/floatingTabs.html","<ul ng-class=\"{'tabsbid': size === 'large', 'tabsbid--small': size === 'small'}\">\n <li ng-repeat=\"tab in tabs\" ng-class=\"{'tabsbid__item tabsbid__item--active': isActiveTab(tab.url), 'tabsbid__item': !isActiveTab(tab.url)}\" ng-click=\"onClickTab(tab)\">\n"+'        <a class="tabsbid__item-link" href="{{tab.url}}" tabindex="0" att-accessibility-click="32,13">{{tab.title}}</a>\n  </li>\n</ul>')}]),angular.module("app/scripts/ng_js_att_tpls/tabs/genericTabs.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/tabs/genericTabs.html","<ul ng-class=\"{'tabsbid': size === 'large', 'tabsbid--small': size === 'small'}\">\n    <li ng-repeat=\"tab in tabs\" ng-class=\"{'tabsbid__item tabsbid__item--active': isActive(tab.id), 'tabsbid__item': !isActive(tab.id),'tabs__item--active': isActive(tab.id)}\" ng-click=\"clickTab(tab)\">\n"+'               <a class="tabsbid__item-link" href="{{tab.url}}" tabindex="0" att-accessibility-click="32,13">{{tab.title}}</a>\n    </li>\n</ul>\n')}]),angular.module("app/scripts/ng_js_att_tpls/tabs/menuTab.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/tabs/menuTab.html",'<li class="megamenu__item" ng-mouseover="showHoverChild($event)" ng-class="{\'tabs__item--active\': menuItem.active==true && !hoverChild==true}">\n    <span role="menuitem" att-accessibility-click="13,32" tabindex="0" ng-click="showChildren($event);!clickInactive||resetMenu($event)">{{tabName}}</span>\n    <div ng-transclude></div>\n</li>\n');\r
+}]),angular.module("app/scripts/ng_js_att_tpls/tabs/parentmenuTab.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/tabs/parentmenuTab.html",'<div ng-class="{\'megamenu-tabs\': megaMenu,\'submenu-tabs\': !megaMenu}">\n    <ul class="megamenu__items" role="presentation" ng-transclude>\n    </ul>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/tabs/simplifiedTabs.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/tabs/simplifiedTabs.html",'<div class="simplified-tabs">\n<ul class="simplified-tabs__items" role="tablist">\n    <li ng-repeat="tab in tabs" role="tab" class="simplified-tabs__item" ng-class="{\'tabs__item--active\': isActive(tab.id)}" ng-click="clickTab(tab)" tabindex="0" att-accessibility-click="32,13">{{tab.title}}</li>\n    <li class="tabs__pointer"></li>\n</ul>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/tabs/submenuTab.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/tabs/submenuTab.html",'<li class="tabsbid__item megamenu__item" ng-class="{\'subMenuHover\': menuItem.active==true}">\n<a ng-href="{{tabUrl}}" role="menuitem" ng-if="subMenu === true" ng-mouseover="!subMenu || showChildren($event)" ng-focus="!subMenu ||showChildren($event)" tabindex="{{subMenu==\'true\'?0:-1}}" ng-click="!subMenu ||showMenuClick($event) ; subMenu ||showSubMenuClick($event)" att-accessibility-click="13,32">{{tabName}}</a>\n<a  ng-href="{{tabUrl}}" role="menuitem" ng-if="!menuItem.leafNode && subMenu !== true" ng-mouseover="!subMenu || showChildren($event)" ng-focus="!subMenu ||showChildren($event)" tabindex="{{subMenu==\'true\'?0:-1}}" ng-click="!subMenu ||showMenuClick($event) ; subMenu ||showSubMenuClick($event)" att-accessibility-click="13,32">{{tabName}}</a>\n<span ng-transclude></span>\n</li>\n')}]),angular.module("app/scripts/ng_js_att_tpls/tagBadges/tagBadges.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/tagBadges/tagBadges.html","<div class=\"tags__item\" \n     ng-class=\"{'tags__item--small':isSmall, \n                 'tags__item--color':isColor, \n                 'tags__item--cloud':!isClosable && !isColor,'active':applyActiveClass}\"\n     ng-if=\"display\" \n     ng-style=\"{borderColor: border_type_borderColor, background: isHighlight?'#bbb':undefined, color: isHighlight?'#444':undefined }\"\n"+'     ng-mousedown="activeHighlight(true)" role="presentation" ng-mouseup="activeHighlight(false)">\n    <i class="icon-filter tags__item--icon" ng-if="isIcon">&nbsp;</i>\n    <i class="tags__item--color-icon" ng-if="isColor" ng-style="{backgroundColor: background_type_backgroundColor, borderColor: background_type_borderColor}"></i>\n    <span class="tags__item--title" role="presentation"  tabindex=0  ng-mousedown="activeHighlight(true)" ng-mouseup="activeHighlight(false)" ng-transclude></span>\n    <a href="javascript:void(0)" title="Dismiss Link" class="tags__item--action" ng-click="closeMe();$event.preventDefault()" ng-if="isClosable"\n       ng-style="{color: (isHighlight && \'#444\') || \'#888\' , borderLeft: (isHighlight && \'1px solid #444\')|| \'1px solid #888\' }">\n        <i class="icon-erase">&nbsp;</i>\n    </a>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/toggle/demoToggle.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/toggle/demoToggle.html",'<span ng-transclude></span>\n<div class="att-switch-content" hm-drag = "drag($event)" att-accessibility-click="13,32" ng-click="updateModel($event)" hm-dragstart="alert(\'hello\')" hm-dragend="drag($event)" ng-class="{\'large\' : directiveValue == \'large\'}"  style="-webkit-user-select: none; -webkit-user-drag: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);">\n    <div class="att-switch-onText" ng-style="" ng-class="{\'icon-included-checkmark ico\' : on === undefined,\'large\' : directiveValue == \'large\'}">{{on}}<span class="hidden-spoken">{{directiveValue}} when checked.</span></div>\n    <div class="att-switch-thumb" tabindex="0" title="Toggle switch" role="checkbox"  ng-class="{\'large\' : directiveValue == \'large\'}"></div>\n    <div class="att-switch-offText" ng-class="{\'icon-erase ico\' : on === undefined,\'large\' : directiveValue == \'large\'}">{{off}}<span class="hidden-spoken">{{directiveValue}} when unchecked.</span></div>\n</div>\n')}]),angular.module("app/scripts/ng_js_att_tpls/typeAhead/typeAhead.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/typeAhead/typeAhead.html",'<div class="typeahead mainContainerOuter">\n    <span class="message">To</span>\n    <div class=\'maincontainer\' ng-click="setFocus()" ng-focus="inputActive=true" ng-class ="{\'typeahed_active\':inputActive || (lineItems.length && inputActive)}">\n        <span tag-badges closable ng-repeat ="lineItem in lineItems track by $index" on-close="theMethodToBeCalled($index)" >{{lineItem}}</span>\n        <input type="text"  focus-me="clickFocus" ng-focus="inputActive=true" ng-model="model" ng-keydown="selected = false; selectionIndex($event)"/><br/> \n    </div>\n    <div ng-hide="!model.length || selected">\n        <div class="filtercontainer list-scrollable" ng-show="( items | filter:model).length">\n            <div  class="item" ng-repeat="item in items| filter:model track by $index"  ng-click="handleSelection(item[titleName],item[subtitle])" att-accessibility-click="13,32" ng-class="{active:isCurrent($index,item[titleName],item[subtitle],( items | filter:model).length)}"ng-mouseenter="setCurrent($index)">\n                <span class="title" >{{item[titleName]}}</span>\n                <span class="subtitle">{{item[subtitle]}}</span>\n            </div>  \n        </div>\n    </div>\n   \n    <div class="textAreaEmailContentDiv">\n        <span class="message">Message</span>\n        <textarea rows="4" cols="50" role="textarea" class="textAreaEmailContent" ng-model="emailMessage">To send \n a text, picture, or video message1 to an AT&T wireless device from your email:my message.</textarea>\n        \n    </div>\n    \n</div>\n')}]),angular.module("app/scripts/ng_js_att_tpls/verticalSteptracker/vertical-step-tracker.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/verticalSteptracker/vertical-step-tracker.html","<li>\n    <i ng-class=\"{'icon-tickets-active' : type == 'actual' && id =='Active','icon-tickets-referred' : type == 'actual' && id =='Requested Closed','icon-ticket-regular' : type == 'progress' && id =='In Progress','icon-tickets-contested' : type == 'actual' && id =='Contested','icon-tickets-returned' : type == 'actual' && id =='Deferred','icon-tickets-closed' : type == 'actual' && id =='Ready to Close','icon-tickets-cleared' : type == 'actual' && id =='Cleared'}\"></i>\n    <span ng-transclude></span>\n</li>\n        \n")}]),angular.module("app/scripts/ng_js_att_tpls/videoControls/photoControls.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/videoControls/photoControls.html",'<div>\n    <a title="{{links.prevLink}}" aria-label="Previous Link"  ng-href="{{links.prevLink}}"><i alt="previous" class="icon-arrow-left">&nbsp;</i></a>\n    <span ng-transclude></span>\n    <a title="{{links.nextLink}}" aria-label="Next Link"  ng-href="{{links.nextLink}}"><i alt="next" class="icon-arrow-right">&nbsp;</i></a>\n</div>')}]),angular.module("app/scripts/ng_js_att_tpls/videoControls/videoControls.html",[]).run(["$templateCache",function(e){e.put("app/scripts/ng_js_att_tpls/videoControls/videoControls.html",'<div class="video-player">\n    <div class="video-player__control video-player__play-button">\n        <a class="video-player__button gigant-play" data-toggle-buttons="icon-play, icon-pause" data-target="i"><i class="icon-play"  alt="Play/Pause Button"></i></a>\n    </div>\n    <div class="video-player__control video-player__track">\n\n        <div class="video-player__track--inner">\n            <div class="video-player__track--loaded" style="width: 75%"></div>\n            <div class="video-player__track--played" style="width: 40%">\n                <div class="att-tooltip att-tooltip--on att-tooltip--dark att-tooltip--above video-player__track-tooltip" ng-transclude></div>\n                <div class="video-player__track-handle"></div>\n            </div>\n        </div>\n    </div>\n    <a class="video-player__time" ng-transclude></a>\n    <div class="video-player__control video-player__volume_icon">\n        <a class="video-player__button" data-toggle-buttons="icon-volume-mute, icon-volume-up" data-target="i"><i class="icon-volume-up" alt="Volume Button"></i></a>\n    </div>\n    <ul class="video-player__control video-player__volume">\n        <li class="video-player__volume-bar video-player__volume-bar--full">&nbsp;</li>\n        <li class="video-player__volume-bar video-player__volume-bar--full">&nbsp;</li>\n        <li class="video-player__volume-bar">&nbsp;</li>\n        <li class="video-player__volume-bar">&nbsp;</li>\n        <li class="video-player__volume-bar">&nbsp;</li>\n    </ul>\n    <div class="video-player__control video-player__toggle-fullscreen-button">\n        <a class="video-player__button" data-toggle-buttons="icon-full-screen, icon-normal-screen" data-target="i"><i class="icon-full-screen" alt="Full Screen Button">&nbsp;</i></a>\n    </div>\n</div>')}]),{}}(angular,window);
\ No newline at end of file