14 Replies Latest reply on Jun 11, 2014 5:46 AM by simoferraro

    Parallax in side of a symbol

    blonde_rik

      How can i amend this to say

      one the stage is a symbol that holds my animations.

       

      EC.Parallax.setup(sym, "horizontal");

       

       

       

      I tried

      EC.Parallax.setup(sym.getSymbol("main"), "horizontal");

       

      and that did not work.

        • 1. Re: Parallax in side of a symbol
          blonde_rik Level 1

          I am pretty sure sym is the stage and my symbol is named main and it is on the main stage

          • 2. Re: Parallax in side of a symbol
            resdesign Adobe Community Professional & MVP

            Just looked at the doc on EC that says:

             

            This feature enables the integration of separate Animate composition into a container of another composition. Entire websites can be built this way and several persons could work independently on one project.

             

            So I do not think you can implement it on a symbol.

             

             

            Did you watch the video here?

             


            http://www.youtube.com/watch?v=ywbgHqc3C0M

             

            If you want to use parallax on symbols, you need to use parallax.js

            • 3. Re: Parallax in side of a symbol
              blonde_rik Level 1

              Thanks.

              This video is where i got my initial functionality.

              the code provided in the video addresses animations on the stages timeline.

              i built one like the one in the video and mine works perfectly.

               

              But when i group the animations into a symbol the functionality dies.

               

              i need to know what to add to tha code to say no longer look at the stages timeline but reather the timeline in the symbol "main" ( which resides on the stages timeline )

               

              thanks

              • 4. Re: Parallax in side of a symbol
                blonde_rik Level 1

                Here is what they have to say about thier Parallax solution.

                 

                 

                 

                Parallax

                 

                This feature enables the integration of separate Animate composition into a container of another composition. Entire websites can be built this way and several persons could work independently on one project.

                 

                Parallax: Simple example

                The following listing shows how to enable the Parallax scrolling effect:

                1. EC.Parallax.setup( sym );

                This script requires the Edge Commons library to be loaded. This can be achieved by placing the following script to the creationComplete handler of the stage:

                1. yepnope({
                2.     load: "http://cdn.edgecommons.org/an/1.0.2/js/min/EdgeCommons.js",
                3. callback: function() {
                4. EC.centerStage(sym);
                5. EC.Parallax.setup(sym);
                6. }
                7. });

                If you want to create a horizontal Parallax Scrolling you have to pass "horizontal" as second parameter:

                1. EC.Parallax.setup(sym, "horizontal");
                • 5. Re: Parallax in side of a symbol
                  resdesign Adobe Community Professional & MVP

                  I understand what you mean but I am not sure this is possible using a symbol to replace the stage. It seem like the function they use is referencing the stage.

                  • 6. Re: Parallax in side of a symbol
                    blonde_rik Level 1

                    Ahhh.

                    I understand now.....

                     

                    So if any amendment was to be made it would be inside the .js ?

                    • 7. Re: Parallax in side of a symbol
                      blonde_rik Level 1

                      So i found this in the javascript.

                       

                      and i added a symbol to the code so that it would not look at the stage but rather inside my symbol for the timeline.

                      The problem now is that i need it to look in to multiple symbols.

                      Symbol_one

                      Symbol_two

                      Symbol_three

                      Symbol_four

                      Symbol_five

                       

                       

                       

                      (function(a){var b=function(){};b.VERSION="1.1.0";b.compositions={};var e=a.$,d=ModulogLog;b.addComposition=function(a){this.compositions[a]={};var b=AdobeEdge.getComposition(a).getStage().getSymbol("main");this.compositions[a].stage=b;var d=AdobeEdge.getComposition(a).getStage().getSymbolElement();this.compositions[a].stageEle ment=d;var e=d.height(),g=d.width();this.compositions[a].stageHeight=e;this.compositions[a].stageWid th=g;d=d.position().top;this.compositions[a].stageTop=d;this.compositions[a].stageMiddle=M ath.floor(d+

                       

                      e/2);this.compositions[a].duration=b.getDuration();b.stop(0)};b.setup=function(b,f){b?(voi d 0===f&&(f="vertical"),this.addComposition(b.getComposition().compId),e(document).scroll(f unction(){function b(){e.each(a.Parallax.compositions,function(a,b){var c=d/(b.stageHeight-e(window).height());b.stage.stop(Math.floor(c*b.duration))})}function c(){e.each(a.Parallax.compositions,function(a,b){var c=d/(b.stageWidth-e(window).width());b.stage.stop(Math.floor(c*b.duration))})}if("vertica l"==f){var d=e(document).scrollTop();

                      b()}else"horizontal"==f&&(d=e(document).scrollLeft(),c())})):d.error("Error in setup(). Argument 'sym' is not optional.","EdgeCommons | Parallax")};a.Parallax=b})(EdgeCommons);

                       

                      any direction would be greatly appreciated.

                      If not perhaps someone else can use this amendment.

                      1 person found this helpful
                      • 8. Re: Parallax in side of a symbol
                        blonde_rik Level 1

                        Here is the new script. it is not the whole thing but just what got reworked " Input 4"

                        Works like a charm for me. Parallax timeline with in multiple symbols.

                         

                        // Input 4

                        (function (a) {

                                  var b = function () {};

                                  b.VERSION = "1.1.0";

                                  b.compositions = {};

                                  var e = a.$,

                                            d = ModulogLog;

                                  b.addComposition = function (a,idx,symbolName) {

                         

                                            this.compositions[idx] = {};

                                            var b = AdobeEdge.getComposition(a).getStage().getSymbol(symbolName);

                                            this.compositions[idx].stage = b;

                                            var d = AdobeEdge.getComposition(a).getStage().getSymbolElement();

                                            this.compositions[idx].stageElement = d;

                                            var e = d.height(),

                                                      g = d.width();

                                            this.compositions[idx].stageHeight = e;

                                            this.compositions[idx].stageWidth = g;

                                            d = d.position().top;

                                            this.compositions[idx].stageTop = d;

                                            this.compositions[idx].stageMiddle = Math.floor(d + e / 2);

                                            this.compositions[idx].duration = b.getDuration();

                                            b.stop(0);

                                  };

                                  b.setup = function (b, f) {

                                            //b ? (void 0 === f && (f = "vertical"), this.addComposition(b.getComposition().compId), e(document).scroll(function () {

                                            //          function b() {

                                            //                    e.each(a.Parallax.compositions, function (a, b) {

                                            //                              var c = d / (b.stageHeight - e(window).height());

                                            //                              b.stage.stop(Math.floor(c * b.duration))

                                            //                    })

                                            //          }

                         

                         

                                            //          function c() {

                                            //                    e.each(a.Parallax.compositions, function (a, b) {

                                            //                              var c = d / (b.stageWidth - e(window).width());

                                            //                              b.stage.stop(Math.floor(c * b.duration))

                                            //                    })

                                            //          }

                                            //          if ("vertical" == f) {

                                            //                    var d = e(document).scrollTop();

                                            //                    b()

                                            //          } else "horizontal" == f && (d = e(document).scrollLeft(), c())

                                            //})) : d.error("Error in setup(). Argument 'sym' is not optional.", "EdgeCommons | Parallax")

                                            this.addComposition(b.getComposition().compId,1,"SymbolOne");

                                            this.addComposition(b.getComposition().compId,2,"SymbolTwo");

                                            this.addComposition(b.getComposition().compId,3,"SymbolThree");

                                            e(document).scroll(function () {

                                                      function b() {

                                                                e.each(a.Parallax.compositions, function (a, b) {

                                                                          var c = d / (b.stageHeight - e(window).height());

                                                                          b.stage.stop(Math.floor(c * b.duration))

                                                                })

                                                      }

                         

                         

                                                      function c() {

                                                                e.each(a.Parallax.compositions, function (a, b) {

                                                                          var c = d / (b.stageWidth - e(window).width());

                                                                          b.stage.stop(Math.floor(c * b.duration))

                                                                })

                                                      }

                                                      if ("vertical" == f) {

                                                                var d = e(document).scrollTop();

                                                                b()

                                                      } else "horizontal" == f && (d = e(document).scrollLeft(), c())

                                            });

                                  };

                                  a.Parallax = b

                        })(EdgeCommons);

                        • 9. Re: Parallax in side of a symbol
                          blonde_rik Level 1

                          OOPs

                          remove the space in the line:

                          this.addComposition(b.getComposition().compId,3,"SymbolThree");

                          1 person found this helpful
                          • 10. Re: Parallax in side of a symbol
                            beepia.ms

                            Tried your code, and I'm not sure if I'm implementing this correctly.

                             

                            are you using js/min/EdgeCommons.Parallax.js locally?

                             

                            Also, are you calling it with the standard EC.Parallax.setup(sym) or a.Parallax.setup(sym)?

                            • 11. Re: Parallax in side of a symbol
                              blonde_rik Level 1

                              Sorry this took so long to respond.

                              download the .js and then change the path in the compsitionready actions.

                               

                              with the EC

                               

                              here is the full script

                               

                               

                              // EdgeCommons v1.0.3 +++ Visit edgecommons.org for documentation, updates and examples +++ Copyright (c) 2013 by Simon Widjaja +++ Distributed under the terms of the MIT license (http://www.opensource.org/licenses/mit-license.html) +++ This notice shall be included in all copies or substantial portions of the Software.

                              // Input 0

                              (function (a, b) {

                                        var e = function () {};

                                        e.VERSION = "0.0.2";

                                        e.$ = b;

                                        a.Modulog = e

                              })(window, jQuery);

                              (function () {

                                        var a = function () {};

                                        a.VERSION = "0.0.2";

                                        a.LEVEL_NONE = 0;

                                        a.LEVEL_ERROR = 1;

                                        a.LEVEL_WARN = 2;

                                        a.LEVEL_INFO = 3;

                                        a.LEVEL_DEBUG = 4;

                                        a.level = a.LEVEL_DEBUG;

                                        var b = null;

                                        a.addLogTarget = function (a) {

                                                  "function" === typeof a && (b = a)

                                        };

                                        a.debug = function (a, d, c) {

                                                  ModulogLog.level >= ModulogLog.LEVEL_DEBUG && (a = "[ DEBUG " + (d ? "| " + d + " " : "") + "] " + a, "undefined" != typeof console && "undefined" != typeof console.debug ? c ? console.debug(a, c) : console.debug(a) : "undefined" != typeof console && "undefined" != typeof console.info && (c ? console.info(a,

                                                            c) : console.info(a)), ModulogLog.__delegate(a, c))

                                        };

                                        a.info = function (a, d, c) {

                                                  ModulogLog.level >= ModulogLog.LEVEL_INFO && (a = "[ INFO " + (d ? "| " + d + " " : "") + "] " + a, "undefined" != typeof console && "undefined" != typeof console.info && (c ? console.info(a, c) : console.info(a)), ModulogLog.__delegate(a, c))

                                        };

                                        a.warn = function (a, d, c) {

                                                  ModulogLog.level >= ModulogLog.LEVEL_WARN && (a = "[ WARN " + (d ? "| " + d + " " : "") + "] " + a, "undefined" != typeof console && "undefined" != typeof console.warn && (c ? console.warn(a, c) : console.warn(a)), ModulogLog.__delegate(a,

                                                            c))

                                        };

                                        a.error = function (a, d, c) {

                                                  ModulogLog.level >= ModulogLog.LEVEL_ERROR && (a = "[ ERROR " + (d ? "| " + d + " " : "") + "] " + a, "undefined" != typeof console && "undefined" != typeof console.error && (c ? console.error(a, c) : console.error(a)), ModulogLog.__delegate(a, c))

                                        };

                                        a.__delegate = function (a, d) {

                                                  b && (d ? b(a + " : " + d.toString()) : b(a))

                                        };

                                        window.Log = window.MLog = window.ModulogLog = a

                              })(window.Modulog);

                              (function (a) {

                                        var b = function () {};

                                        b.VERSION = "0.0.1";

                                        var e = a.$,

                                                  d = null,

                                                  c = ModulogLog;

                                        b.get = function (c) {

                                                  for (var a = c.split("."), b = d, e = 0; e < a.length; e++) {

                                                            var h = a[e];

                                                            b.hasOwnProperty(h) || ModulogLog.warn("Config value not found: " + c, "CONFIG");

                                                            b = b[h]

                                                  }

                                                  return b

                                        };

                                        b.set = function (c, a) {

                                                  for (var b = c.split("."), e = d, h = 0; h < b.length - 1; h++) e = e[b[h]];

                                                  e[b.pop()] = a

                                        };

                                        b.init = function (a, b) {

                                                  "string" === typeof a && jQuery ? e.getJSON(a, function (c) {

                                                            d = c;

                                                            "function" === typeof b && b()

                                                  }) : "object" === typeof a ? d = a : c.error("Could not init config. init() function expects config object or url to config.js. Latter needs jQuery to be initialized before.",

                                                            "Modulog | ModulogConfig")

                                        };

                                        window.Config = window.MConfig = window.ModulogConfig = b

                              })(window.Modulog);

                              // Input 1

                              (function (a, b) {

                                        var e = function () {};

                                        e.VERSION = "1.0.3";

                                        e.$ = b;

                                        a.EC = a.EdgeCommons = e

                              })(window, jQuery);

                              // Input 2

                              (function (a) {

                                        var b = function () {};

                                        b.VERSION = "1.1.0";

                                        var e = a.$,

                                                  d = ModulogLog,

                                                  c = null,

                                                  f = null,

                                                  k = null;

                                        a.getSymbolName = function (c) {

                                                  var d = c.getVariable("symbolSelector");

                                                  (c = c.getParentSymbol()) && (d = d.replace(c.getVariable("symbolSelector") + "_", ""));

                                                  return d = d.replace("#", "")

                                        };

                                        a.getInjectedData = function (c, a) {

                                                  try {

                                                            a = a || "data";

                                                            for ((!c || !c.getParentSymbol) && d.error("getInjectedData(): First argument 'sys' is not optional", "EdgeCommons | Core"); c.getParentSymbol();) c = c.getParentSymbol();

                                                            var f = c.getSymbolElement().find("." +

                                                                      a).html();

                                                            return e.parseJSON(f)

                                                  } catch (b) {

                                                            d.error("Reading injected data failed (scriptClassSelector=" + a + ")", "EdgeCommons | Core", b)

                                                  }

                                        };

                                        a.setAdaptiveLayouts = function (f, b, h, m) {

                                                  !f || !f.length ? d.error("Error in setAdaptiveLayouts(). Argument 'layouts' is not optional and has to be an array.", "EdgeCommons | Core") : (c = f, b && ("function" == typeof m && (k = m), e(window).resize(function () {

                                                            a.applyAdaptiveLayout(b, h)

                                                  }), a.applyAdaptiveLayout(b, h)))

                                        };

                                        a.applyAdaptiveLayout = function (d, a) {

                                                  try {

                                                            d.setVariable("doResizing", function () {

                                                                      var b =

                                                                                d.getComposition().getStage().getSymbolElement().width(),

                                                                                h = d.$(a),

                                                                                q = null;

                                                                      e.each(c, function (c, d) {

                                                                                b >= d - 0 && (q = d)

                                                                      });

                                                                      f != q && (f = q, h.html(""), h = d.createChildSymbol("layout" + q, a), "function" == typeof k && k(q, h));

                                                                      d.$("currentLayout").html(d.getVariable("layout"))

                                                            }), d.getVariable("doResizing")()

                                                  } catch (b) {

                                                            console.error(b)

                                                  }

                                        };

                                        a.centerStage = function (c) {

                                                  c ? c.getComposition().getStage().getSymbolElement().css("margin", "0px auto") : d.error("Error in centerStage(). Argument 'sym' is not optional.", "EdgeCommons | Core")

                                        };

                                        a.loadComposition = function (c, f) {

                                                  if (!c || !f) d.error("Error in loadComposition(). Arguments 'src' and 'sym' are not optional.", "EdgeCommons | Core");

                                                  else {

                                                            try {

                                                                      var b = f.getSymbolElement(),

                                                                                e = "ec_" + Math.random().toString(36).substring(7);

                                                                      b.html('<iframe id="' + e + '" src="' + c + '" style="overflow: hidden; width: 100%; height: 100%; margin: auto; border: 0 none; background-color: rgba(255,255,255,0)"></iframe>');

                                                                      var k = new jQuery.Deferred,

                                                                                q = jQuery("#" + e),

                                                                                o = q[0].contentWindow;

                                                                      q.load(function () {

                                                                                o.AdobeEdge.bootstrapCallback(function (c) {

                                                                                          c =

                                                                                                    o.AdobeEdge.getComposition(c);

                                                                                          k.resolve(c, o.AdobeEdge)

                                                                                })

                                                                      })

                                                            } catch (r) {

                                                                      a.error("Error in loadComposition: ", "EdgeCommons | Core", r.toString())

                                                            }

                                                            return k

                                                  }

                                        };

                                        a.Core = b;

                                        a.Log = d;

                                        a.debug = d.debug;

                                        a.info = d.info;

                                        a.warn = d.warn;

                                        a.error = d.error;

                                        a.Config = MConfig

                              })(EdgeCommons);

                              // Input 3

                              (function (a) {

                                        var b = function () {};

                                        b.VERSION = "1.0.0";

                                        b.soundManifest = null;

                                        var e = ModulogLog,

                                                  d = null;

                                        b.getQueue = function () {

                                                  return d

                                        };

                                        b.setup = function (c, a, b) {

                                                  try {

                                                            c ? (d = new createjs.LoadQueue, d.installPlugin(createjs.Sound), a && d.addEventListener("complete", a), b && d.addEventListener("error", b), d.loadManifest(c)) : e.error("Sound.setup() failed: manifest argument is not optional", "EdgeCommons | Sound")

                                                  } catch (j) {

                                                            e.error("Error in setup(): " + j.toString(), "EdgeCommons | Sound", j)

                                                  }

                                        };

                                        b.play = function (c) {

                                                  return createjs.Sound.play(c,

                                                            createjs.Sound.INTERRUPT_NONE, 0, 0, 0, 1, 0)

                                        };

                                        b.stop = function (c) {

                                                  createjs.Sound.stop(c)

                                        };

                                        a.Sound = b

                              })(EdgeCommons);

                              (function () {

                                        var a = this.createjs = this.createjs || {}, a = a.PreloadJS = a.PreloadJS || {};

                                        a.version = "0.3.0";

                                        a.buildDate = "Tue, 12 Feb 2013 21:12:02 GMT"

                              })();

                              this.createjs = this.createjs || {};

                              (function () {

                                        var a = function () {

                                                  this.initialize()

                                        }, b = a.prototype;

                                        a.initialize = function (a) {

                                                  a.addEventListener = b.addEventListener;

                                                  a.removeEventListener = b.removeEventListener;

                                                  a.removeAllEventListeners = b.removeAllEventListeners;

                                                  a.hasEventListener = b.hasEventListener;

                                                  a.dispatchEvent = b.dispatchEvent

                                        };

                                        b._listeners = null;

                                        b.initialize = function () {};

                                        b.addEventListener = function (a, d) {

                                                  var c = this._listeners;

                                                  c ? this.removeEventListener(a, d) : c = this._listeners = {};

                                                  var f = c[a];

                                                  f || (f = c[a] = []);

                                                  f.push(d);

                                                  return d

                                        };

                                        b.removeEventListener =

                                                  function (a, d) {

                                                            var c = this._listeners;

                                                            if (c) {

                                                                      var f = c[a];

                                                                      if (f)

                                                                                for (var b = 0, j = f.length; b < j; b++)

                                                                                          if (f[b] == d) {

                                                                                                    1 == j ? delete c[a] : f.splice(b, 1);

                                                                                                    break

                                                                                          }

                                                            }

                                        };

                                        b.removeAllEventListeners = function (a) {

                                                  a ? this._listeners && delete this._listeners[a] : this._listeners = null

                                        };

                                        b.dispatchEvent = function (a, d) {

                                                  var c = !1,

                                                            f = this._listeners;

                                                  if (a && f) {

                                                            "string" == typeof a && (a = {

                                                                      type: a

                                                            });

                                                            a.target = d || this;

                                                            f = f[a.type];

                                                            if (!f) return c;

                                                            for (var f = f.slice(), b = 0, j = f.length; b < j; b++) {

                                                                      var g = f[b];

                                                                      g instanceof Function ? c = c || g.apply(null, [a]) : g.handleEvent &&

                                                                                (c = c || g.handleEvent(a))

                                                            }

                                                  }

                                                  return !!c

                                        };

                                        b.hasEventListener = function (a) {

                                                  var d = this._listeners;

                                                  return !(!d || !d[a])

                                        };

                                        b.toString = function () {

                                                  return "[EventDispatcher]"

                                        };

                                        createjs.EventDispatcher = a

                              })();

                              this.createjs = this.createjs || {};

                              (function () {

                                        var a = function () {

                                                  this.init()

                                        };

                                        a.prototype = {};

                                        var b = a.prototype;

                                        a.FILE_PATTERN = /(\w+:\/{2})?((?:\w+\.){2}\w+)?(\/?[\S]+\/|\/)?([\w\-%\.]+)(?:\.)(\w+)?(\?\S+)?/i;

                                        b.loaded = !1;

                                        b.canceled = !1;

                                        b.progress = 0;

                                        b._item = null;

                                        b.onProgress = null;

                                        b.onLoadStart = null;

                                        b.onComplete = null;

                                        b.onError = null;

                                        b.addEventListener = null;

                                        b.removeEventListener = null;

                                        b.removeAllEventListeners = null;

                                        b.dispatchEvent = null;

                                        b.hasEventListener = null;

                                        b._listeners = null;

                                        createjs.EventDispatcher.initialize(b);

                                        b.getItem = function () {

                                                  return this._item

                                        };

                                        b.init = function () {};

                                        b.load = function () {};

                                        b.close = function () {};

                                        b._sendLoadStart = function () {

                                                  this._isCanceled() || (this.onLoadStart && this.onLoadStart({

                                                            target: this

                                                  }), this.dispatchEvent("loadStart"))

                                        };

                                        b._sendProgress = function (a) {

                                                  if (!this._isCanceled()) {

                                                            var d = null;

                                                            if ("number" == typeof a) this.progress = a, d = {

                                                                      loaded: this.progress,

                                                                      total: 1

                                                            };

                                                            else if (d = a, this.progress = a.loaded / a.total, isNaN(this.progress) || Infinity == this.progress) this.progress = 0;

                                                            d.target = this;

                                                            d.type = "progress";

                                                            this.onProgress && this.onProgress(d);

                                                            this.dispatchEvent(d)

                                                  }

                                        };

                                        b._sendComplete = function () {

                                                  this._isCanceled() || (this.onComplete && this.onComplete({

                                                            target: this

                                                  }), this.dispatchEvent("complete"))

                                        };

                                        b._sendError = function (a) {

                                                  this._isCanceled() || (null == a && (a = {}), a.target = this, a.type = "error", this.onError && this.onError(a), this.dispatchEvent(a))

                                        };

                                        b._isCanceled = function () {

                                                  return null == window.createjs || this.canceled ? !0 : !1

                                        };

                                        b._parseURI = function (b) {

                                                  return !b ? null : b.match(a.FILE_PATTERN)

                                        };

                                        b.toString = function () {

                                                  return "[PreloadJS AbstractLoader]"

                                        };

                                        createjs.AbstractLoader =

                                                  a

                              })();

                              this.createjs = this.createjs || {};

                              (function () {

                                        var a = function (d) {

                                                  this.init(d)

                                        }, b = a.prototype = new createjs.AbstractLoader;

                                        a.LOAD_TIMEOUT = 8E3;

                                        a.BINARY = "binary";

                                        a.CSS = "css";

                                        a.IMAGE = "image";

                                        a.JAVASCRIPT = "javascript";

                                        a.JSON = "json";

                                        a.SOUND = "sound";

                                        a.SVG = "svg";

                                        a.TEXT = "text";

                                        a.XML = "xml";

                                        b.useXHR = !0;

                                        b.stopOnError = !1;

                                        b.maintainScriptOrder = !0;

                                        b.next = null;

                                        b.onFileLoad = null;

                                        b.onFileProgress = null;

                                        b._typeCallbacks = null;

                                        b._extensionCallbacks = null;

                                        b._loadStartWasDispatched = !1;

                                        b._maxConnections = 1;

                                        b._currentlyLoadingScript = null;

                                        b._currentLoads = null;

                                        b._loadQueue = null;

                                        b._loadQueueBackup = null;

                                        b._loadItemsById = null;

                                        b._loadItemsBySrc = null;

                                        b._loadedResults = null;

                                        b._loadedRawResults = null;

                                        b._numItems = 0;

                                        b._numItemsLoaded = 0;

                                        b._scriptOrder = null;

                                        b._loadedScripts = null;

                                        b.init = function (d) {

                                                  this._numItems = this._numItemsLoaded = 0;

                                                  this._loadStartWasDispatched = this._paused = !1;

                                                  this._currentLoads = [];

                                                  this._loadQueue = [];

                                                  this._loadQueueBackup = [];

                                                  this._scriptOrder = [];

                                                  this._loadedScripts = [];

                                                  this._loadItemsById = {};

                                                  this._loadItemsBySrc = {};

                                                  this._loadedResults = {};

                                                  this._loadedRawResults = {};

                                                  this._typeCallbacks = {};

                                                  this._extensionCallbacks = {};

                                                  this.setUseXHR(d)

                                        };

                                        b.setUseXHR = function (d) {

                                                  return this.useXHR = !1 != d && null != window.XMLHttpRequest

                                        };

                                        b.removeAll = function () {

                                                  this.remove()

                                        };

                                        b.remove = function (d) {

                                                  var c = null;

                                                  d && !(d instanceof Array) ? c = [d] : d && (c = d);

                                                  d = !1;

                                                  if (c) {

                                                            for (; c.length;) {

                                                                      for (var a = c.pop(), b = this.getResult(a), e = this._loadQueue.length - 1; 0 <= e; e--)

                                                                                if (g = this._loadQueue[e].getItem(), g.id == a || g.src == a) {

                                                                                          this._loadQueue.splice(e, 1)[0].cancel();

                                                                                          break

                                                                                }

                                                                      for (e = this._loadQueueBackup.length - 1; 0 <=

                                                                                e; e--)

                                                                                if (g = this._loadQueueBackup[e].getItem(), g.id == a || g.src == a) {

                                                                                          this._loadQueueBackup.splice(e, 1)[0].cancel();

                                                                                          break

                                                                                }

                                                                      if (b) delete this._loadItemsById[b.id], delete this._loadItemsBySrc[b.src], this._disposeItem(b);

                                                                      else

                                                                                for (e = this._currentLoads.length - 1; 0 <= e; e--) {

                                                                                          var g = this._currentLoads[e].getItem();

                                                                                          if (g.id == a || g.src == a) {

                                                                                                    this._currentLoads.splice(e, 1)[0].cancel();

                                                                                                    d = !0;

                                                                                                    break

                                                                                          }

                                                                                }

                                                            }

                                                            d && this._loadNext()

                                                  } else {

                                                            this.close();

                                                            for (a in this._loadItemsById) this._disposeItem(this._loadItemsById[a]);

                                                            this.initialize(this.useXHR)

                                                  }

                                        };

                                        b.reset = function () {

                                                  this.close();

                                                  for (var a in this._loadItemsById) this._disposeItem(this._loadItemsById[a]);

                                                  a = [];

                                                  i = 0;

                                                  for (l = this._loadQueueBackup.length; i < l; i++) a.push(this._loadQueueBackup[i].getItem());

                                                  this.loadManifest(a, !1)

                                        };

                                        a.isBinary = function (a) {

                                                  switch (a) {

                                                  case createjs.LoadQueue.IMAGE:

                                                  case createjs.LoadQueue.BINARY:

                                                            return !0;

                                                  default:

                                                            return !1

                                                  }

                                        };

                                        b.installPlugin = function (a) {

                                                  if (!(null == a || null == a.getPreloadHandlers)) {

                                                            a = a.getPreloadHandlers();

                                                            if (null != a.types)

                                                                      for (var c = 0, f = a.types.length; c < f; c++) this._typeCallbacks[a.types[c]] =

                                                                                a.callback;

                                                            if (null != a.extensions) {

                                                                      c = 0;

                                                                      for (f = a.extensions.length; c < f; c++) this._extensionCallbacks[a.extensions[c]] = a.callback

                                                            }

                                                  }

                                        };

                                        b.setMaxConnections = function (a) {

                                                  this._maxConnections = a;

                                                  this._paused || this._loadNext()

                                        };

                                        b.loadFile = function (a, c) {

                                                  null == a ? this._sendError({

                                                            text: "PRELOAD_NO_FILE"

                                                  }) : (this._addItem(a), !1 !== c && this.setPaused(!1))

                                        };

                                        b.loadManifest = function (a, c) {

                                                  var f = null;

                                                  if (a instanceof Array) {

                                                            if (0 == a.length) {

                                                                      this._sendError({

                                                                                text: "PRELOAD_MANIFEST_EMPTY"

                                                                      });

                                                                      return

                                                            }

                                                            f = a

                                                  } else {

                                                            if (null == a) {

                                                                      this._sendError({

                                                                                text: "PRELOAD_MANIFEST_NULL"

                                                                      });

                                                                      return

                                                            }

                                                            f = [a]

                                                  }

                                                  for (var b = 0, e = f.length; b < e; b++) this._addItem(f[b]);

                                                  !1 !== c && this.setPaused(!1)

                                        };

                                        b.load = function () {

                                                  this.setPaused(!1)

                                        };

                                        b.getItem = function (a) {

                                                  return this._loadItemsById[a] || this._loadItemsBySrc[a]

                                        };

                                        b.getResult = function (a, c) {

                                                  var b = this._loadItemsById[a] || this._loadItemsBySrc[a];

                                                  if (null == b) return null;

                                                  b = b.id;

                                                  return c && this._loadedRawResults[b] ? this._loadedRawResults[b] : this._loadedResults[b]

                                        };

                                        b.setPaused = function (a) {

                                                  (this._paused = a) || this._loadNext()

                                        };

                                        b.close = function () {

                                                  for (; this._currentLoads.length;) this._currentLoads.pop().cancel();

                                                  this._scriptOrder.length = 0;

                                                  this._loadedScripts.length = 0;

                                                  this.loadStartWasDispatched = !1

                                        };

                                        b._addItem = function (a) {

                                                  a = this._createLoadItem(a);

                                                  if (null != a) {

                                                            var c = this._createLoader(a);

                                                            null != c && (this._loadQueue.push(c), this._loadQueueBackup.push(c), this._numItems++, this._updateProgress(), this.maintainScriptOrder && a.type == createjs.LoadQueue.JAVASCRIPT && c instanceof createjs.XHRLoader && (this._scriptOrder.push(a), this._loadedScripts.push(null)))

                                                  }

                                        };

                                        b._createLoadItem = function (a) {

                                                  var c = null;

                                                  switch (typeof a) {

                                                  case "string":

                                                            c = {

                                                                      src: a

                                                            };

                                                            break;

                                                  case "object":

                                                            c = window.HTMLAudioElement && a instanceof HTMLAudioElement ? {

                                                                      tag: a,

                                                                      src: c.tag.src,

                                                                      type: createjs.LoadQueue.SOUND

                                                            } : a

                                                  }

                                                  a = this._parseURI(c.src);

                                                  null != a && (c.ext = a[5]);

                                                  null == c.type && (c.type = this._getTypeByExtension(c.ext));

                                                  null == c.tag && (c.tag = this._createTag(c.type));

                                                  if (null == c.id || "" == c.id) c.id = c.src;

                                                  if (a = this._typeCallbacks[c.type] || this._extensionCallbacks[c.ext]) {

                                                            a = a(c.src, c.type, c.id, c.data);

                                                            if (!1 === a) return null;

                                                            if (!0 !== a && (null != a.src && (c.src = a.src), null != a.id && (c.id = a.id),

                                                                      null != a.tag && a.tag.load instanceof Function && (c.tag = a.tag), null != a.completeHandler)) c.completeHandler = a.completeHandler;

                                                            a.type && (c.type = a.type);

                                                            a = this._parseURI(c.src);

                                                            null != a && (c.ext = a[5])

                                                  }

                                                  this._loadItemsById[c.id] = c;

                                                  return this._loadItemsBySrc[c.src] = c

                                        };

                                        b._createLoader = function (a) {

                                                  var c = this.useXHR;

                                                  switch (a.type) {

                                                  case createjs.LoadQueue.JSON:

                                                  case createjs.LoadQueue.XML:

                                                  case createjs.LoadQueue.TEXT:

                                                            c = !0;

                                                            break;

                                                  case createjs.LoadQueue.SOUND:

                                                            c = !1

                                                  }

                                                  return c ? new createjs.XHRLoader(a) : new createjs.TagLoader(a)

                                        };

                                        b._loadNext = function () {

                                                  if (!this._paused) {

                                                            this._loadStartWasDispatched || (this._sendLoadStart(), this._loadStartWasDispatched = !0);

                                                            this._numItems == this._numItemsLoaded && (this.loaded = !0, this._sendComplete(), this.next && this.next.load && this.next.load());

                                                            for (var a = 0, c = this._loadQueue.length; a < c && !(this._currentLoads.length >= this._maxConnections); a++) {

                                                                      var b = this._loadQueue[a];

                                                                      if (this.maintainScriptOrder && b instanceof createjs.TagLoader && b.getItem().type == createjs.LoadQueue.JAVASCRIPT) {

                                                                                if (this._currentlyLoadingScript) continue;

                                                                                this._currentlyLoadingScript = !0

                                                                      }

                                                                      this._loadQueue.splice(a, 1);

                                                                      this._loadItem(b);

                                                                      a--;

                                                                      c--

                                                            }

                                                  }

                                        };

                                        b._loadItem = function (a) {

                                                  a.addEventListener("progress", createjs.proxy(this._handleProgress, this));

                                                  a.addEventListener("complete", createjs.proxy(this._handleFileComplete, this));

                                                  a.addEventListener("error", createjs.proxy(this._handleFileError, this));

                                                  this._currentLoads.push(a);

                                                  a.load()

                                        };

                                        b._handleFileError = function (a) {

                                                  var c = a.target;

                                                  this._numItemsLoaded++;

                                                  this._updateProgress();

                                                  a = {

                                                            item: c.getItem()

                                                  };

                                                  this._sendError(a);

                                                  this.stopOnError || (this._removeLoadItem(c), this._loadNext())

                                        };

                                        b._handleFileComplete = function (a) {

                                                  var a = a.target,

                                                            c = a.getItem();

                                                  this._loadedResults[c.id] = a.getResult();

                                                  a instanceof createjs.XHRLoader && (this._loadedRawResults[c.id] = a.getResult(!0));

                                                  this._removeLoadItem(a);

                                                  if (this.maintainScriptOrder && c.type == createjs.LoadQueue.JAVASCRIPT)

                                                            if (a instanceof createjs.TagLoader) this._currentlyLoadingScript = !1;

                                                            else {

                                                                      this._loadedScripts[this._scriptOrder.indexOf(c)] = c;

                                                                      this._checkScriptLoadOrder(a);

                                                                      return

                                                            }

                                                  this._processFinishedLoad(c)

                                        };

                                        b._processFinishedLoad = function (a) {

                                                  this._numItemsLoaded++;

                                                  this._updateProgress();

                                                  this._sendFileComplete(a);

                                                  this._loadNext()

                                        };

                                        b._checkScriptLoadOrder = function () {

                                                  for (var a = this._loadedScripts.length, c = 0; c < a; c++) {

                                                            var b = this._loadedScripts[c];

                                                            if (null === b) break;

                                                            !0 !== b && (this._processFinishedLoad(b), this._loadedScripts[c] = !0, c--, a--)

                                                  }

                                        };

                                        b._removeLoadItem = function (a) {

                                                  for (var c = this._currentLoads.length, b = 0; b < c; b++)

                                                            if (this._currentLoads[b] == a) {

                                                                      this._currentLoads.splice(b, 1);

                                                                      break

                                                            }

                                        };

                                        b._handleProgress = function (a) {

                                                  a =

                                                            a.target;

                                                  this._sendFileProgress(a.getItem(), a.progress);

                                                  this._updateProgress()

                                        };

                                        b._updateProgress = function () {

                                                  var a = this._numItemsLoaded / this._numItems,

                                                            c = this._numItems - this._numItemsLoaded;

                                                  if (0 < c) {

                                                            for (var b = 0, e = 0, j = this._currentLoads.length; e < j; e++) b += this._currentLoads[e].progress;

                                                            a += b / c * (c / this._numItems)

                                                  }

                                                  this._sendProgress(a)

                                        };

                                        b._disposeItem = function (a) {

                                                  delete this._loadedResults[a.id];

                                                  delete this._loadedRawResults[a.id];

                                                  delete this._loadItemsById[a.id];

                                                  delete this._loadItemsBySrc[a.src]

                                        };

                                        b._createTag =

                                                  function (a) {

                                                            var c = null;

                                                            switch (a) {

                                                            case createjs.LoadQueue.IMAGE:

                                                                      return document.createElement("img");

                                                            case createjs.LoadQueue.SOUND:

                                                                      return c = document.createElement("audio"), c.autoplay = !1, c;

                                                            case createjs.LoadQueue.JAVASCRIPT:

                                                                      return c = document.createElement("script"), c.type = "text/javascript", c;

                                                            case createjs.LoadQueue.CSS:

                                                                      return c = this.useXHR ? document.createElement("style") : document.createElement("link"), c.rel = "stylesheet", c.type = "text/css", c;

                                                            case createjs.LoadQueue.SVG:

                                                                      return this.useXHR ? c = document.createElement("svg") :

                                                                                (c = document.createElement("object"), c.type = "image/svg+xml"), c

                                                            }

                                                            return null

                                        };

                                        b._getTypeByExtension = function (a) {

                                                  switch (a) {

                                                  case "jpeg":

                                                  case "jpg":

                                                  case "gif":

                                                  case "png":

                                                  case "webp":

                                                  case "bmp":

                                                            return createjs.LoadQueue.IMAGE;

                                                  case "ogg":

                                                  case "mp3":

                                                  case "wav":

                                                            return createjs.LoadQueue.SOUND;

                                                  case "json":

                                                            return createjs.LoadQueue.JSON;

                                                  case "xml":

                                                            return createjs.LoadQueue.XML;

                                                  case "css":

                                                            return createjs.LoadQueue.CSS;

                                                  case "js":

                                                            return createjs.LoadQueue.JAVASCRIPT;

                                                  case "svg":

                                                            return createjs.LoadQueue.SVG;

                                                  default:

                                                            return createjs.LoadQueue.TEXT

                                                  }

                                        };

                                        b._sendFileProgress = function (a, c) {

                                                  if (this._isCanceled()) this._cleanUp();

                                                  else {

                                                            var b = {

                                                                      target: this,

                                                                      type: "fileprogress",

                                                                      progress: c,

                                                                      loaded: c,

                                                                      total: 1,

                                                                      item: a

                                                            };

                                                            this.onFileProgress && this.onFileProgress(b);

                                                            this.dispatchEvent(b)

                                                  }

                                        };

                                        b._sendFileComplete = function (a) {

                                                  if (!this._isCanceled()) {

                                                            var c = {

                                                                      target: this,

                                                                      type: "fileload",

                                                                      item: a,

                                                                      result: this._loadedResults[a.id],

                                                                      rawResult: this._loadedRawResults[a.id]

                                                            };

                                                            a.completeHandler && a.completeHandler(c);

                                                            this.onFileLoad && this.onFileLoad(c);

                                                            this.dispatchEvent(c)

                                                  }

                                        };

                                        b.toString =

                                                  function () {

                                                            return "[PreloadJS LoadQueue]"

                                        };

                                        createjs.proxy = function (a, c) {

                                                  return function () {

                                                            return a.apply(c, arguments)

                                                  }

                                        };

                                        createjs.LoadQueue = a;

                                        createjs.proxy || (createjs.proxy = function (a, c) {

                                                  var b = Array.prototype.slice.call(arguments, 2);

                                                  return function () {

                                                            return a.apply(c, Array.prototype.slice.call(arguments, 0).concat(b))

                                                  }

                                        });

                                        var e = function () {};

                                        e.init = function () {

                                                  var a = navigator.userAgent;

                                                  e.isFirefox = a.indexOf("Firefox") > -1;

                                                  e.isOpera = window.opera != null;

                                                  e.isChrome = a.indexOf("Chrome") > -1;

                                                  e.isIOS = a.indexOf("iPod") > -1 || a.indexOf("iPhone") > -1 || a.indexOf("iPad") > -1

                                        };

                                        e.init();

                                        createjs.LoadQueue.BrowserDetect = e;

                                        Array.prototype.indexOf || (Array.prototype.indexOf = function (a) {

                                                  if (this == null) throw new TypeError;

                                                  var c = Object(this),

                                                            b = c.length >>> 0;

                                                  if (b === 0) return -1;

                                                  var e = 0;

                                                  arguments.length > 1 && (e = Number(arguments[1]), e != e ? e = 0 : e != 0 && e != Infinity && e != -Infinity && (e = (e > 0 || -1) * Math.floor(Math.abs(e))));

                                                  if (e >= b) return -1;

                                                  for (e = e >= 0 ? e : Math.max(b - Math.abs(e), 0); e < b; e++)

                                                            if (e in c && c[e] === a) return e;

                                                  return -1

                                        })

                              })();

                              this.createjs = this.createjs || {};

                              (function () {

                                        var a = function (a) {

                                                  this.init(a)

                                        }, b = a.prototype = new createjs.AbstractLoader;

                                        b._loadTimeout = null;

                                        b._tagCompleteProxy = null;

                                        b._isAudio = !1;

                                        b._tag = null;

                                        b.init = function (a) {

                                                  this._item = a;

                                                  this._tag = a.tag;

                                                  this._isAudio = window.HTMLAudioElement && a.tag instanceof HTMLAudioElement;

                                                  this._tagCompleteProxy = createjs.proxy(this._handleLoad, this)

                                        };

                                        b.getResult = function () {

                                                  return this._tag

                                        };

                                        b.cancel = function () {

                                                  this.canceled = !0;

                                                  this._clean();

                                                  this.getItem()

                                        };

                                        b.load = function () {

                                                  var a = this._item,

                                                            b = this._tag;

                                                  clearTimeout(this._loadTimeout);

                                                  this._loadTimeout = setTimeout(createjs.proxy(this._handleTimeout, this), createjs.LoadQueue.LOAD_TIMEOUT);

                                                  this._isAudio && (b.src = null, b.preload = "auto");

                                                  b.onerror = createjs.proxy(this._handleError, this);

                                                  this._isAudio ? (b.onstalled = createjs.proxy(this._handleStalled, this), b.addEventListener("canplaythrough", this._tagCompleteProxy, !1)) : (b.onload = createjs.proxy(this._handleLoad, this), b.onreadystatechange = createjs.proxy(this._handleReadyStateChange, this));

                                                  switch (a.type) {

                                                  case createjs.LoadQueue.CSS:

                                                            b.href = a.src;

                                                            break;

                                                  case createjs.LoadQueue.SVG:

                                                            b.data = a.src;

                                                            break;

                                                  default:

                                                            b.src = a.src

                                                  }

                                                  if (a.type == createjs.LoadQueue.SVG || a.type == createjs.LoadQueue.JAVASCRIPT || a.type == createjs.LoadQueue.CSS)(document.body || document.getElementsByTagName("body")[0]).appendChild(b);

                                                  null != b.load && b.load()

                                        };

                                        b._handleTimeout = function () {

                                                  this._clean();

                                                  this._sendError({

                                                            reason: "PRELOAD_TIMEOUT"

                                                  })

                                        };

                                        b._handleStalled = function () {};

                                        b._handleError = function () {

                                                  this._clean();

                                                  this._sendError()

                                        };

                                        b._handleReadyStateChange = function () {

                                                  clearTimeout(this._loadTimeout);

                                                  "loaded" == this.getItem().tag.readyState && this._handleLoad()

                                        };

                                        b._handleLoad = function () {

                                                  if (!this._isCanceled()) {

                                                            var a = this.getItem(),

                                                                      b = a.tag;

                                                            this.loaded || this.isAudio && 4 !== b.readyState || (this.loaded = !0, a.type == createjs.LoadQueue.SVG && (document.body || document.getElementsByTagName("body")[0]).removeChild(b), this._clean(), this._sendComplete())

                                                  }

                                        };

                                        b._clean = function () {

                                                  clearTimeout(this._loadTimeout);

                                                  var a = this.getItem().tag;

                                                  a.onload = null;

                                                  a.removeEventListener && a.removeEventListener("canplaythrough", this._tagCompleteProxy, !1);

                                                  a.onstalled = null;

                                                  a.onprogress = null;

                                                  a.onerror = null;

                                                  a.parentNode && a.parentNode.removeChild(a)

                                        };

                                        b.toString = function () {

                                                  return "[PreloadJS TagLoader]"

                                        };

                                        createjs.TagLoader = a

                              })();

                              this.createjs = this.createjs || {};

                              (function () {

                                        var a = function (a) {

                                                  this.init(a)

                                        }, b = a.prototype = new createjs.AbstractLoader;

                                        b._request = null;

                                        b._loadTimeout = null;

                                        b._xhrLevel = 1;

                                        b._response = null;

                                        b._rawResponse = null;

                                        b.init = function (a) {

                                                  this._item = a;

                                                  this._createXHR(a)

                                        };

                                        b.getResult = function (a) {

                                                  return a && this._rawResponse ? this._rawResponse : this._response

                                        };

                                        b.cancel = function () {

                                                  this.canceled = !0;

                                                  this._clean();

                                                  this._request.abort()

                                        };

                                        b.load = function () {

                                                  if (null == this._request) this._handleError();

                                                  else {

                                                            this._request.onloadstart = createjs.proxy(this._handleLoadStart,

                                                                      this);

                                                            this._request.onprogress = createjs.proxy(this._handleProgress, this);

                                                            this._request.onabort = createjs.proxy(this._handleAbort, this);

                                                            this._request.onerror = createjs.proxy(this._handleError, this);

                                                            this._request.ontimeout = createjs.proxy(this._handleTimeout, this);

                                                            1 == this._xhrLevel && (this._loadTimeout = setTimeout(createjs.proxy(this._handleTimeout, this), createjs.LoadQueue.LOAD_TIMEOUT));

                                                            this._request.onload = createjs.proxy(this._handleLoad, this);

                                                            this._request.onreadystatechange && (this._request.onreadystatechange =

                                                                      this._handleReadyStateChange(this));

                                                            try {

                                                                      this._request.send()

                                                            } catch (a) {

                                                                      this._sendError({

                                                                                source: a

                                                                      })

                                                            }

                                                  }

                                        };

                                        b._handleProgress = function (a) {

                                                  0 < a.loaded && 0 == a.total || this._sendProgress({

                                                            loaded: a.loaded,

                                                            total: a.total

                                                  })

                                        };

                                        b._handleLoadStart = function () {

                                                  clearTimeout(this._loadTimeout);

                                                  this._sendLoadStart()

                                        };

                                        b._handleAbort = function () {

                                                  this._clean();

                                                  this._sendError()

                                        };

                                        b._handleError = function () {

                                                  this._clean();

                                                  this._sendError()

                                        };

                                        b._handleReadyStateChange = function () {

                                                  4 == this._request.readyState && this._handleLoad()

                                        };

                                        b._handleLoad =

                                                  function () {

                                                            this.loaded || (this.loaded = !0, this._checkError() ? (this._response = this._getResponse(), this._clean(), this._generateTag() && this._sendComplete()) : this._handleError())

                                        };

                                        b._handleTimeout = function () {

                                                  this._clean();

                                                  this._sendError({

                                                            reason: "PRELOAD_TIMEOUT"

                                                  })

                                        };

                                        b._checkError = function () {

                                                  switch (parseInt(this._request.status)) {

                                                  case 404:

                                                  case 0:

                                                            return !1

                                                  }

                                                  return !0

                                        };

                                        b._getResponse = function () {

                                                  if (null != this._response) return this._response;

                                                  if (null != this._request.response) return this._request.response;

                                                  try {

                                                            if (null !=

                                                                      this._request.responseText) return this._request.responseText

                                                  } catch (a) {}

                                                  try {

                                                            if (null != this._request.responseXML) return this._request.responseXML

                                                  } catch (b) {}

                                                  return null

                                        };

                                        b._createXHR = function (a) {

                                                  var b = document.createElement("a");

                                                  b.href = a.src;

                                                  var c = document.createElement("a");

                                                  c.href = location.href;

                                                  b = "" != b.hostname && (b.port != c.port || b.protocol != c.protocol || b.hostname != c.hostname);

                                                  c = null;

                                                  if (b && window.XDomainRequest) c = new XDomainRequest;

                                                  else if (window.XMLHttpRequest) c = new XMLHttpRequest;

                                                  else try {

                                                            c = new ActiveXObject("Msxml2.XMLHTTP.6.0")

                                                  } catch (f) {

                                                            try {

                                                                      c =

                                                                                new ActiveXObject("Msxml2.XMLHTTP.3.0")

                                                            } catch (k) {

                                                                      try {

                                                                                c = new ActiveXObject("Msxml2.XMLHTTP")

                                                                      } catch (j) {

                                                                                return !1

                                                                      }

                                                            }

                                                  }

                                                  a.type == createjs.LoadQueue.TEXT && c.overrideMimeType && c.overrideMimeType("text/plain; charset=x-user-defined");

                                                  this._xhrLevel = "string" === typeof c.responseType ? 2 : 1;

                                                  c.open("GET", a.src, !0);

                                                  b && c instanceof XMLHttpRequest && 1 == this._xhrLevel && c.setRequestHeader("Origin", location.origin);

                                                  createjs.LoadQueue.isBinary(a.type) && (c.responseType = "arraybuffer");

                                                  this._request = c;

                                                  return !0

                                        };

                                        b._clean = function () {

                                                  clearTimeout(this._loadTimeout);

                                                  var a = this._request;

                                                  a.onloadstart = null;

                                                  a.onprogress = null;

                                                  a.onabort = null;

                                                  a.onerror = null;

                                                  a.onload = null;

                                                  a.ontimeout = null;

                                                  a.onloadend = null;

                                                  a.onreadystatechange = null

                                        };

                                        b._generateTag = function () {

                                                  var a = this._item.tag;

                                                  switch (this._item.type) {

                                                  case createjs.LoadQueue.IMAGE:

                                                            return a.onload = createjs.proxy(this._handleTagReady, this), a.src = this._item.src, this._rawResponse = this._response, this._response = a, !1;

                                                  case createjs.LoadQueue.JAVASCRIPT:

                                                            a = document.createElement("script");

                                                            this._rawResponse = a.text = this._response;

                                                            this._response = a;

                                                            break;

                                                  case createjs.LoadQueue.CSS:

                                                            document.getElementsByTagName("head")[0].appendChild(a);

                                                            if (a.styleSheet) a.styleSheet.cssText = this._response;

                                                            else {

                                                                      var b = document.createTextNode(this._response);

                                                                      a.appendChild(b)

                                                            }

                                                            this._rawResponse = this._response;

                                                            this._response = a;

                                                            break;

                                                  case createjs.LoadQueue.XML:

                                                            this._response = this._parseXML(this._response, "text/xml");

                                                            break;

                                                  case createjs.LoadQueue.SVG:

                                                            b = this._parseXML(this._response, "image/svg+xml");

                                                            this._rawResponse = this._response;

                                                            a.appendChild(b.documentElement);

                                                            this._response = a;

                                                            break;

                                                  case createjs.LoadQueue.JSON:

                                                            a = {};

                                                            try {

                                                                      a = JSON.parse(this._response)

                                                            } catch (c) {

                                                                      a = null

                                                            }

                                                            this._rawResponse = this._response;

                                                            this._response = a

                                                  }

                                                  return !0

                                        };

                                        b._parseXML = function (a, b) {

                                                  var c = null;

                                                  window.DOMParser ? c = (new DOMParser).parseFromString(a, b) : (c = new ActiveXObject("Microsoft.XMLDOM"), c.async = !1, c.loadXML(a));

                                                  return c

                                        };

                                        b._handleTagReady = function () {

                                                  this._sendComplete()

                                        };

                                        b.toString = function () {

                                                  return "[PreloadJS XHRLoader]"

                                        };

                                        createjs.XHRLoader = a

                              })();

                              "object" !== typeof JSON && (JSON = {});

                              (function () {

                                        function a(a) {

                                                  return 10 > a ? "0" + a : a

                                        }

                               

                               

                                        function b(a) {

                                                  c.lastIndex = 0;

                                                  return c.test(a) ? '"' + a.replace(c, function (a) {

                                                            var c = j[a];

                                                            return "string" === typeof c ? c : "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4)

                                                  }) + '"' : '"' + a + '"'

                                        }

                               

                               

                                        function e(a, c) {

                                                  var d, j, o, r, s = f,

                                                            p, n = c[a];

                                                  n && "object" === typeof n && "function" === typeof n.toJSON && (n = n.toJSON(a));

                                                  "function" === typeof g && (n = g.call(c, a, n));

                                                  switch (typeof n) {

                                                  case "string":

                                                            return b(n);

                                                  case "number":

                                                            return isFinite(n) ? "" + n : "null";

                                                  case "boolean":

                                                  case "null":

                                                            return "" +

                                                                      n;

                                                  case "object":

                                                            if (!n) return "null";

                                                            f += k;

                                                            p = [];

                                                            if ("[object Array]" === Object.prototype.toString.apply(n)) {

                                                                      r = n.length;

                                                                      for (d = 0; d < r; d += 1) p[d] = e(d, n) || "null";

                                                                      o = 0 === p.length ? "[]" : f ? "[\n" + f + p.join(",\n" + f) + "\n" + s + "]" : "[" + p.join(",") + "]";

                                                                      f = s;

                                                                      return o

                                                            }

                                                            if (g && "object" === typeof g) {

                                                                      r = g.length;

                                                                      for (d = 0; d < r; d += 1) "string" === typeof g[d] && (j = g[d], (o = e(j, n)) && p.push(b(j) + (f ? ": " : ":") + o))

                                                            } else

                                                                      for (j in n) Object.prototype.hasOwnProperty.call(n, j) && (o = e(j, n)) && p.push(b(j) + (f ? ": " : ":") + o);

                                                            o = 0 === p.length ? "{}" : f ? "{\n" + f + p.join(",\n" +

                                                                      f) + "\n" + s + "}" : "{" + p.join(",") + "}";

                                                            f = s;

                                                            return o

                                                  }

                                        }

                                        "function" !== typeof Date.prototype.toJSON && (Date.prototype.toJSON = function () {

                                                  return isFinite(this.valueOf()) ? this.getUTCFullYear() + "-" + a(this.getUTCMonth() + 1) + "-" + a(this.getUTCDate()) + "T" + a(this.getUTCHours()) + ":" + a(this.getUTCMinutes()) + ":" + a(this.getUTCSeconds()) + "Z" : null

                                        }, String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function () {

                                                  return this.valueOf()

                                        });

                                        var d = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufef f\ufff0-\uffff]/g,

                                                  c = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u 2060-\u206f\ufeff\ufff0-\uffff]/g,

                                                  f, k, j = {

                                                            "\u0008": "\\b",

                                                            "\t": "\\t",

                                                            "\n": "\\n",

                                                            "\u000c": "\\f",

                                                            "\r": "\\r",

                                                            '"': '\\"',

                                                            "\\": "\\\\"

                                                  }, g;

                                        "function" !== typeof JSON.stringify && (JSON.stringify = function (a, c, b) {

                                                  var d;

                                                  k = f = "";

                                                  if (typeof b === "number")

                                                            for (d = 0; d < b; d = d + 1) k = k + " ";

                                                  else typeof b === "string" && (k = b); if ((g = c) && typeof c !== "function" && (typeof c !== "object" || typeof c.length !== "number")) throw Error("JSON.stringify");

                                                  return e("", {

                                                            "": a

                                                  })

                                        });

                                        "function" !== typeof JSON.parse && (JSON.parse = function (a, c) {

                                                  function b(a, f) {

                                                            var d, e, k = a[f];

                                                            if (k && typeof k === "object")

                                                                      for (d in k) Object.prototype.hasOwnProperty.call(k, d) && (e = b(k, d), e !== void 0 ? k[d] = e : delete k[d]);

                                                            return c.call(a, f, k)

                                                  }

                                                  var f, a = "" + a;

                                                  d.lastIndex = 0;

                                                  d.test(a) && (a = a.replace(d, function (a) {

                                                            return "\\u" + ("0000" + a.charCodeAt(0).toString(16)).slice(-4)

                                                  }));

                                                  if (/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,

                                                            "]").replace(/(?:^|:|,)(?:\s*\[)+/g, ""))) return f = eval("(" + a + ")"), typeof c === "function" ? b({

                                                            "": f

                                                  }, "") : f;

                                                  throw new SyntaxError("JSON.parse");

                                        })

                              })();

                              this.createjs = this.createjs || {};

                              (function () {

                                        var a = function () {

                                                  this.initialize()

                                        }, b = a.prototype;

                                        a.initialize = function (a) {

                                                  a.addEventListener = b.addEventListener;

                                                  a.removeEventListener = b.removeEventListener;

                                                  a.removeAllEventListeners = b.removeAllEventListeners;

                                                  a.hasEventListener = b.hasEventListener;

                                                  a.dispatchEvent = b.dispatchEvent

                                        };

                                        b._listeners = null;

                                        b.initialize = function () {};

                                        b.addEventListener = function (a, b) {

                                                  var c = this._listeners;

                                                  c ? this.removeEventListener(a, b) : c = this._listeners = {};

                                                  var f = c[a];

                                                  f || (f = c[a] = []);

                                                  f.push(b);

                                                  return b

                                        };

                                        b.removeEventListener =

                                                  function (a, b) {

                                                            var c = this._listeners;

                                                            if (c) {

                                                                      var f = c[a];

                                                                      if (f)

                                                                                for (var k = 0, j = f.length; k < j; k++)

                                                                                          if (f[k] == b) {

                                                                                                    1 == j ? delete c[a] : f.splice(k, 1);

                                                                                                    break

                                                                                          }

                                                            }

                                        };

                                        b.removeAllEventListeners = function (a) {

                                                  a ? this._listeners && delete this._listeners[a] : this._listeners = null

                                        };

                                        b.dispatchEvent = function (a, b) {

                                                  var c = !1,

                                                            f = this._listeners;

                                                  if (a && f) {

                                                            "string" == typeof a && (a = {

                                                                      type: a

                                                            });

                                                            a.target = b || this;

                                                            f = f[a.type];

                                                            if (!f) return c;

                                                            for (var f = f.slice(), k = 0, j = f.length; k < j; k++) {

                                                                      var g = f[k];

                                                                      g instanceof Function ? c = c || g.apply(null, [a]) : g.handleEvent &&

                                                                                (c = c || g.handleEvent(a))

                                                            }

                                                  }

                                                  return !!c

                                        };

                                        b.hasEventListener = function (a) {

                                                  var b = this._listeners;

                                                  return !(!b || !b[a])

                                        };

                                        b.toString = function () {

                                                  return "[EventDispatcher]"

                                        };

                                        createjs.EventDispatcher = a

                              })();

                              this.createjs = this.createjs || {};

                              (function () {

                                        function a() {

                                                  throw "Sound cannot be instantiated";

                                        }

                               

                               

                                        function b(a, b) {

                                                  this.init(a, b)

                                        }

                               

                               

                                        function e() {}

                                        a.DELIMITER = "|";

                                        a.AUDIO_TIMEOUT = 8E3;

                                        a.INTERRUPT_ANY = "any";

                                        a.INTERRUPT_EARLY = "early";

                                        a.INTERRUPT_LATE = "late";

                                        a.INTERRUPT_NONE = "none";

                                        a.PLAY_INITED = "playInited";

                                        a.PLAY_SUCCEEDED = "playSucceeded";

                                        a.PLAY_INTERRUPTED = "playInterrupted";

                                        a.PLAY_FINISHED = "playFinished";

                                        a.PLAY_FAILED = "playFailed";

                                        a.SUPPORTED_EXTENSIONS = "mp3 ogg mpeg wav m4a mp4 aiff wma mid".split(" ");

                                        a.EXTENSION_MAP = {

                                                  m4a: "mp4"

                                        };

                                        a.FILE_PATTERN =

                                                  /(\w+:\/{2})?((?:\w+\.){2}\w+)?(\/?[\S]+\/|\/)?([\w\-%\.]+)(?:\.)(\w+)?(\?\S+)? /i;

                                        a.defaultInterruptBehavior = a.INTERRUPT_NONE;

                                        a.lastId = 0;

                                        a.activePlugin = null;

                                        a.pluginsRegistered = !1;

                                        a.masterVolume = 1;

                                        a.masterMute = !1;

                                        a.instances = [];

                                        a.idHash = {};

                                        a.preloadHash = {};

                                        a.defaultSoundInstance = null;

                                        a.addEventListener = null;

                                        a.removeEventListener = null;

                                        a.removeAllEventListeners = null;

                                        a.dispatchEvent = null;

                                        a.hasEventListener = null;

                                        a._listeners = null;

                                        createjs.EventDispatcher.initialize(a);

                                        a.onLoadComplete = null;

                                        a.sendLoadComplete =

                                                  function (c) {

                                                            if (a.preloadHash[c])

                                                                      for (var b = 0, d = a.preloadHash[c].length; b < d; b++) {

                                                                                var e = a.preloadHash[c][b],

                                                                                          e = {

                                                                                                    target: this,

                                                                                                    type: "loadComplete",

                                                                                                    src: e.src,

                                                                                                    id: e.id,

                                                                                                    data: e.data

                                                                                          };

                                                                                a.preloadHash[c][b] = !0;

                                                                                a.onLoadComplete && a.onLoadComplete(e);

                                                                                a.dispatchEvent(e)

                                                                      }

                                        };

                                        a.getPreloadHandlers = function () {

                                                  return {

                                                            callback: createjs.proxy(a.initLoad, a),

                                                            types: ["sound"],

                                                            extensions: a.SUPPORTED_EXTENSIONS

                                                  }

                                        };

                                        a.registerPlugin = function (c) {

                                                  a.pluginsRegistered = !0;

                                                  return null == c ? !1 : c.isSupported() ? (a.activePlugin = new c, !0) : !1

                                        };

                                        a.registerPlugins =

                                                  function (c) {

                                                            for (var b = 0, d = c.length; b < d; b++)

                                                                      if (a.registerPlugin(c[b])) return !0;

                                                            return !1

                                        };

                                        a.initializeDefaultPlugins = function () {

                                                  return null != a.activePlugin ? !0 : a.pluginsRegistered ? !1 : a.registerPlugins([createjs.WebAudioPlugin, createjs.HTMLAudioPlugin]) ? !0 : !1

                                        };

                                        a.isReady = function () {

                                                  return null != a.activePlugin

                                        };

                                        a.getCapabilities = function () {

                                                  return null == a.activePlugin ? null : a.activePlugin.capabilities

                                        };

                                        a.getCapability = function (c) {

                                                  return null == a.activePlugin ? null : a.activePlugin.capabilities[c]

                                        };

                                        a.initLoad =

                                                  function (c, b, d, e) {

                                                            c = a.registerSound(c, d, e, !1);

                                                            return null == c ? !1 : c

                                        };

                                        a.registerSound = function (c, f, d, e) {

                                                  if (!a.initializeDefaultPlugins()) return !1;

                                                  c instanceof Object && (c = c.src, f = c.id, d = c.data);

                                                  var g = a.parsePath(c, "sound", f, d);

                                                  if (null == g) return !1;

                                                  null != f && (a.idHash[f] = g.src);

                                                  var h = null;

                                                  null != d && (isNaN(d.channels) ? isNaN(d) || (h = parseInt(d)) : h = parseInt(d.channels));

                                                  var m = a.activePlugin.register(g.src, h);

                                                  null != m && (null != m.numChannels && (h = m.numChannels), b.create(g.src, h), null == d || !isNaN(d) ? d = g.data = h || b.maxPerChannel() :

                                                            d.channels = g.data.channels = h || b.maxPerChannel(), null != m.tag ? g.tag = m.tag : m.src && (g.src = m.src), null != m.completeHandler && (g.completeHandler = m.completeHandler), g.type = m.type);

                                                  !1 != e && (a.preloadHash[g.src] || (a.preloadHash[g.src] = []), a.preloadHash[g.src].push({

                                                            src: c,

                                                            id: f,

                                                            data: d

                                                  }), 1 == a.preloadHash[g.src].length && a.activePlugin.preload(g.src, m));

                                                  return g

                                        };

                                        a.registerManifest = function (a) {

                                                  for (var b = [], d = 0, e = a.length; d < e; d++) b[d] = createjs.Sound.registerSound(a[d].src, a[d].id, a[d].data, a[d].preload);

                                                  return b

                                        };

                                        a.loadComplete = function (c) {

                                                  var b = a.parsePath(c, "sound"),

                                                            c = b ? a.getSrcById(b.src) : a.getSrcById(c);

                                                  return !0 == a.preloadHash[c][0]

                                        };

                                        a.parsePath = function (c, b, d, e) {

                                                  "string" != typeof c && (c = c.toString());

                                                  for (var c = c.split(a.DELIMITER), b = {

                                                                      type: b || "sound",

                                                                      id: d,

                                                                      data: e

                                                            }, d = a.getCapabilities(), e = 0, g = c.length; e < g; e++) {

                                                            var h = c[e],

                                                                      m = h.match(a.FILE_PATTERN);

                                                            if (null == m) return !1;

                                                            var t = m[4],

                                                                      m = m[5];

                                                            if (d[m] && -1 < a.SUPPORTED_EXTENSIONS.indexOf(m)) return b.name = t, b.src = h, b.extension = m, b

                                                  }

                                                  return null

                                        };

                                        a.play = function (c, b, d, e,

                                                  g, h, m) {

                                                  c = a.createInstance(c);

                                                  a.playInstance(c, b, d, e, g, h, m) || c.playFailed();

                                                  return c

                                        };

                                        a.createInstance = function (c) {

                                                  if (!a.initializeDefaultPlugins()) return a.defaultSoundInstance;

                                                  var d = a.parsePath(c, "sound"),

                                                            c = d ? a.getSrcById(d.src) : a.getSrcById(c),

                                                            d = c.lastIndexOf("."),

                                                            e = c.slice(d + 1); - 1 != d && -1 < a.SUPPORTED_EXTENSIONS.indexOf(e) ? (b.create(c), c = a.activePlugin.create(c)) : c = a.defaultSoundInstance;

                                                  c.uniqueId = a.lastId++;

                                                  return c

                                        };

                                        a.setVolume = function (c) {

                                                  if (null == Number(c)) return !1;

                                                  c = Math.max(0, Math.min(1, c));

                                                  a.masterVolume = c;

                                                  if (!this.activePlugin || !this.activePlugin.setVolume || !this.activePlugin.setVolume(c))

                                                            for (var b = this.instances, d = 0, e = b.length; d < e; d++) b[d].setMasterVolume(c)

                                        };

                                        a.getVolume = function () {

                                                  return a.masterVolume

                                        };

                                        a.mute = function (a) {

                                                  this.masterMute = a;

                                                  if (!this.activePlugin || !this.activePlugin.setMute || !this.activePlugin.setMute(a))

                                                            for (var b = this.instances, d = 0, e = b.length; d < e; d++) b[d].setMasterMute(a)

                                        };

                                        a.setMute = function (a) {

                                                  if (null == a || void 0 == a) return !1;

                                                  this.masterMute = a;

                                                  if (!this.activePlugin || !this.activePlugin.setMute || !this.activePlugin.setMute(a))

                                                            for (var b = this.instances, d = 0, e = b.length; d < e; d++) b[d].setMasterMute(a);

                                                  return !0

                                        };

                                        a.getMute = function () {

                                                  return this.masterMute

                                        };

                                        a.stop = function () {

                                                  for (var a = this.instances, b = a.length; 0 < b; b--) a[b - 1].stop()

                                        };

                                        a.playInstance = function (c, b, d, e, g, h, m) {

                                                  b = b || a.defaultInterruptBehavior;

                                                  null == d && (d = 0);

                                                  null == e && (e = c.getPosition());

                                                  null == g && (g = 0);

                                                  null == h && (h = c.getVolume());

                                                  null == m && (m = c.getPan());

                                                  if (0 == d) {

                                                            if (!a.beginPlaying(c, b, e, g, h, m)) return !1

                                                  } else d = setTimeout(function () {

                                                            a.beginPlaying(c,

                                                                      b, e, g, h, m)

                                                  }, d), c.delayTimeoutId = d;

                                                  this.instances.push(c);

                                                  return !0

                                        };

                                        a.beginPlaying = function (a, d, e, j, g, h) {

                                                  return !b.add(a, d) ? !1 : !a.beginPlaying(e, j, g, h) ? (a = this.instances.indexOf(a), -1 < a && this.instances.splice(a, 1), !1) : !0

                                        };

                                        a.getSrcById = function (c) {

                                                  return null == a.idHash || null == a.idHash[c] ? c : a.idHash[c]

                                        };

                                        a.playFinished = function (a) {

                                                  b.remove(a);

                                                  a = this.instances.indexOf(a); - 1 < a && this.instances.splice(a, 1)

                                        };

                                        a.proxy = function (a, b) {

                                                  return function () {

                                                            return a.apply(b, arguments)

                                                  }

                                        };

                                        createjs.Sound = a;

                                        createjs.proxy =

                                                  function (a, b) {

                                                            var d = Array.prototype.slice.call(arguments, 2);

                                                            return function () {

                                                                      return a.apply(b, Array.prototype.slice.call(arguments, 0).concat(d))

                                                            }

                                        };

                                        b.channels = {};

                                        b.create = function (a, d) {

                                                  return null == b.get(a) ? (b.channels[a] = new b(a, d), !0) : !1

                                        };

                                        b.add = function (a, d) {

                                                  var e = b.get(a.src);

                                                  return null == e ? !1 : e.add(a, d)

                                        };

                                        b.remove = function (a) {

                                                  var d = b.get(a.src);

                                                  if (null == d) return !1;

                                                  d.remove(a);

                                                  return !0

                                        };

                                        b.maxPerChannel = function () {

                                                  return d.maxDefault

                                        };

                                        b.get = function (a) {

                                                  return b.channels[a]

                                        };

                                        var d = b.prototype = {

                                                  src: null,

                                                  max: null,

                                                  maxDefault: 100,

                                                  length: 0,

                                                  init: function (a, b) {

                                                            this.src = a;

                                                            this.max = b || this.maxDefault; - 1 == this.max && this.max == this.maxDefault;

                                                            this.instances = []

                                                  },

                                                  get: function (a) {

                                                            return this.instances[a]

                                                  },

                                                  add: function (a, b) {

                                                            if (!this.getSlot(b, a)) return !1;

                                                            this.instances.push(a);

                                                            this.length++;

                                                            return !0

                                                  },

                                                  remove: function (a) {

                                                            a = this.instances.indexOf(a);

                                                            if (-1 == a) return !1;

                                                            this.instances.splice(a, 1);

                                                            this.length--;

                                                            return !0

                                                  },

                                                  getSlot: function (c) {

                                                            for (var b, d, e = 0, g = this.max; e < g; e++) {

                                                                      b = this.get(e);

                                                                      if (null == b) return !0;

                                                                      if (!(c ==

                                                                                a.INTERRUPT_NONE && b.playState != a.PLAY_FINISHED))

                                                                                if (0 == e) d = b;

                                                                                else if (b.playState == a.PLAY_FINISHED || b == a.PLAY_INTERRUPTED || b == a.PLAY_FAILED) d = b;

                                                                      else if (c == a.INTERRUPT_EARLY && b.getPosition() < d.getPosition() || c == a.INTERRUPT_LATE && b.getPosition() > d.getPosition()) d = b

                                                            }

                                                            return null != d ? (d.interrupt(), this.remove(d), !0) : !1

                                                  },

                                                  toString: function () {

                                                            return "[Sound SoundChannel]"

                                                  }

                                        };

                                        a.defaultSoundInstance = new function () {

                                                  this.isDefault = !0;

                                                  this.addEventListener = this.removeEventListener = this.removeAllEventListener = this.dispatchEvent =

                                                            this.hasEventListener = this._listeners = this.interrupt = this.playFailed = this.pause = this.resume = this.play = this.beginPlaying = this.cleanUp = this.stop = this.setMasterVolume = this.setVolume = this.mute = this.setMute = this.getMute = this.setPan = this.getPosition = this.setPosition = function () {

                                                                      return !1

                                                  };

                                                  this.getVolume = this.getPan = this.getDuration = function () {

                                                            return 0

                                                  };

                                                  this.playState = a.PLAY_FAILED;

                                                  this.toString = function () {

                                                            return "[Sound Default Sound Instance]"

                                                  }

                                        };

                                        e.init = function () {

                                                  var a = navigator.userAgent;

                                                  e.isFirefox = -1 <

                                                            a.indexOf("Firefox");

                                                  e.isOpera = null != window.opera;

                                                  e.isChrome = -1 < a.indexOf("Chrome");

                                                  e.isIOS = -1 < a.indexOf("iPod") || -1 < a.indexOf("iPhone") || -1 < a.indexOf("iPad");

                                                  e.isAndroid = -1 < a.indexOf("Android");

                                                  e.isBlackberry = -1 < a.indexOf("Blackberry")

                                        };

                                        e.init();

                                        createjs.Sound.BrowserDetect = e

                              })();

                              this.createjs = this.createjs || {};

                              (function () {

                                        function a() {

                                                  this.init()

                                        }

                               

                               

                                        function b(a, c) {

                                                  this.init(a, c)

                                        }

                               

                               

                                        function e(a, c) {

                                                  this.init(a, c)

                                        }

                                        a.capabilities = null;

                                        a.isSupported = function () {

                                                  if ("file:" == location.protocol) return !1;

                                                  a.generateCapabilities();

                                                  return null == a.context ? !1 : !0

                                        };

                                        a.generateCapabilities = function () {

                                                  if (null == a.capabilities) {

                                                            var b = document.createElement("audio");

                                                            if (null == b.canPlayType) return null;

                                                            if (window.webkitAudioContext) a.context = new webkitAudioContext;

                                                            else if (window.AudioContext) a.context = new AudioContext;

                                                            else return null;

                                                            a.capabilities = {

                                                                      panning: !0,

                                                                      volume: !0,

                                                                      tracks: -1

                                                            };

                                                            for (var c = createjs.Sound.SUPPORTED_EXTENSIONS, e = createjs.Sound.EXTENSION_MAP, k = 0, j = c.length; k < j; k++) {

                                                                      var g = c[k],

                                                                                h = e[g] || g;

                                                                      a.capabilities[g] = "no" != b.canPlayType("audio/" + g) && "" != b.canPlayType("audio/" + g) || "no" != b.canPlayType("audio/" + h) && "" != b.canPlayType("audio/" + h)

                                                            }

                                                            2 > a.context.destination.numberOfChannels && (a.capabilities.panning = !1);

                                                            a.dynamicsCompressorNode = a.context.createDynamicsCompressor();

                                                            a.dynamicsCompressorNode.connect(a.context.destination);

                                                            a.gainNode = a.context.createGainNode();

                                                            a.gainNode.connect(a.dynamicsCompressorNode)

                                                  }

                                        };

                                        a.prototype = {

                                                  capabilities: null,

                                                  volume: 1,

                                                  context: null,

                                                  dynamicsCompressorNode: null,

                                                  gainNode: null,

                                                  arrayBuffers: null,

                                                  init: function () {

                                                            this.capabilities = a.capabilities;

                                                            this.arrayBuffers = {};

                                                            this.context = a.context;

                                                            this.gainNode = a.gainNode;

                                                            this.dynamicsCompressorNode = a.dynamicsCompressorNode

                                                  },

                                                  register: function (a) {

                                                            this.arrayBuffers[a] = !0;

                                                            return {

                                                                      tag: new e(a, this)

                                                            }

                                                  },

                                                  isPreloadStarted: function (a) {

                                                            return null != this.arrayBuffers[a]

                                                  },

                                                  isPreloadComplete: function (a) {

                                                            return !(null == this.arrayBuffers[a] || !0 == this.arrayBuffers[a])

                                                  },

                                                  removeFromPreload: function (a) {

                                                            delete this.arrayBuffers[a]

                                                  },

                                                  addPreloadResults: function (a, c) {

                                                            this.arrayBuffers[a] = c

                                                  },

                                                  handlePreloadComplete: function () {

                                                            createjs.Sound.sendLoadComplete(this.src)

                                                  },

                                                  preload: function (a) {

                                                            this.arrayBuffers[a] = !0;

                                                            a = new e(a, this);

                                                            a.onload = this.handlePreloadComplete;

                                                            a.load()

                                                  },

                                                  create: function (a) {

                                                            this.isPreloadStarted(a) || this.preload(a);

                                                            return new b(a, this)

                                                  },

                                                  setVolume: function (a) {

                                                            this.volume =

                                                                      a;

                                                            this.updateVolume();

                                                            return !0

                                                  },

                                                  updateVolume: function () {

                                                            var a = createjs.Sound.masterMute ? 0 : this.volume;

                                                            a != this.gainNode.gain.value && (this.gainNode.gain.value = a)

                                                  },

                                                  getVolume: function () {

                                                            return this.volume

                                                  },

                                                  setMute: function () {

                                                            this.updateVolume();

                                                            return !0

                                                  },

                                                  toString: function () {

                                                            return "[WebAudioPlugin]"

                                                  }

                                        };

                                        createjs.WebAudioPlugin = a;

                                        b.prototype = {

                                                  src: null,

                                                  uniqueId: -1,

                                                  playState: null,

                                                  owner: null,

                                                  offset: 0,

                                                  delay: 0,

                                                  volume: 1,

                                                  pan: 0,

                                                  duration: 0,

                                                  remainingLoops: 0,

                                                  delayTimeoutId: null,

                                                  soundCompleteTimeout: null,

                                                  panNode: null,

                                                  gainNode: null,

                                                  sourceNode: null,

                                                  muted: !1,

                                                  paused: !1,

                                                  startTime: 0,

                                                  addEventListener: null,

                                                  removeEventListener: null,

                                                  removeAllEventListeners: null,

                                                  dispatchEvent: null,

                                                  hasEventListener: null,

                                                  _listeners: null,

                                                  endedHandler: null,

                                                  readyHandler: null,

                                                  stalledHandler: null,

                                                  onReady: null,

                                                  onPlaySucceeded: null,

                                                  onPlayInterrupted: null,

                                                  onPlayFailed: null,

                                                  onComplete: null,

                                                  onLoop: null,

                                                  sendEvent: function (a) {

                                                            this.dispatchEvent({

                                                                      target: this,

                                                                      type: a

                                                            })

                                                  },

                                                  init: function (a, c) {

                                                            this.owner = c;

                                                            this.src = a;

                                                            this.panNode = this.owner.context.createPanner();

                                                            this.gainNode = this.owner.context.createGainNode();

                                                            this.gainNode.connect(this.panNode);

                                                            this.owner.isPreloadComplete(this.src) && (this.duration = 1E3 * this.owner.arrayBuffers[this.src].duration);

                                                            this.endedHandler = createjs.proxy(this.handleSoundComplete, this);

                                                            this.readyHandler = createjs.proxy(this.handleSoundReady, this);

                                                            this.stalledHandler = createjs.proxy(this.handleSoundStalled, this)

                                                  },

                                                  cleanUp: function () {

                                                            this.sourceNode && this.sourceNode.playbackState != this.sourceNode.UNSCHEDULED_STATE && (this.sourceNode.noteOff(0),

                                                                      this.sourceNode = null);

                                                            0 != this.panNode.numberOfOutputs && this.panNode.disconnect(0);

                                                            clearTimeout(this.delayTimeoutId);

                                                            clearTimeout(this.soundCompleteTimeout);

                                                            null != window.createjs && createjs.Sound.playFinished(this)

                                                  },

                                                  interrupt: function () {

                                                            this.playState = createjs.Sound.PLAY_INTERRUPTED;

                                                            if (this.onPlayInterrupted) this.onPlayInterrupted(this);

                                                            this.sendEvent("interrupted");

                                                            this.cleanUp();

                                                            this.paused = !1

                                                  },

                                                  handleSoundStalled: function () {

                                                            if (null != this.onPlayFailed) this.onPlayFailed(this);

                                                            this.sendEvent("failed")

                                                  },

                                                  handleSoundReady: function () {

                                                            null != window.createjs && (this.offset > this.getDuration() ? this.playFailed() : (0 > this.offset && (this.offset = 0), this.playState = createjs.Sound.PLAY_SUCCEEDED, this.paused = !1, this.panNode.connect(this.owner.gainNode), this.sourceNode = this.owner.context.createBufferSource(), this.sourceNode.buffer = this.owner.arrayBuffers[this.src], this.duration = 1E3 * this.owner.arrayBuffers[this.src].duration, this.sourceNode.connect(this.gainNode), this.soundCompleteTimeout = setTimeout(this.endedHandler,

                                                                      1E3 * (this.sourceNode.buffer.duration - this.offset)), this.startTime = this.owner.context.currentTime - this.offset, this.sourceNode.noteGrainOn(0, this.offset, this.sourceNode.buffer.duration - this.offset)))

                                                  },

                                                  play: function (a, c, b, e, j, g) {

                                                            this.cleanUp();

                                                            createjs.Sound.playInstance(this, a, c, b, e, j, g)

                                                  },

                                                  beginPlaying: function (a, c, b, e) {

                                                            if (null != window.createjs && this.src) {

                                                                      this.offset = a / 1E3;

                                                                      this.remainingLoops = c;

                                                                      this.setVolume(b);

                                                                      this.setPan(e);

                                                                      if (this.owner.isPreloadComplete(this.src)) return this.handleSoundReady(null),

                                                                      this.onPlaySucceeded && this.onPlaySucceeded(this), this.sendEvent("succeeded"), 1;

                                                                      this.playFailed()

                                                            }

                                                  },

                                                  pause: function () {

                                                            return !this.paused && this.playState == createjs.Sound.PLAY_SUCCEEDED ? (this.paused = !0, this.offset = this.owner.context.currentTime - this.startTime, this.sourceNode.noteOff(0), 0 != this.panNode.numberOfOutputs && this.panNode.disconnect(), clearTimeout(this.delayTimeoutId), clearTimeout(this.soundCompleteTimeout), !0) : !1

                                                  },

                                                  resume: function () {

                                                            if (!this.paused) return !1;

                                                            this.handleSoundReady(null);

                                                            return !0

                                                  },

                                                  stop: function () {

                                                            this.playState = createjs.Sound.PLAY_FINISHED;

                                                            this.cleanUp();

                                                            this.offset = 0;

                                                            return !0

                                                  },

                                                  setVolume: function (a) {

                                                            if (null == Number(a)) return !1;

                                                            this.volume = Math.max(0, Math.min(1, a));

                                                            this.updateVolume();

                                                            return !0

                                                  },

                                                  updateVolume: function () {

                                                            var a = this.muted ? 0 : this.volume;

                                                            return a != this.gainNode.gain.value ? (this.gainNode.gain.value = a, !0) : !1

                                                  },

                                                  getVolume: function () {

                                                            return this.volume

                                                  },

                                                  mute: function (a) {

                                                            this.muted = a;

                                                            this.updateVolume();

                                                            return !0

                                                  },

                                                  setMute: function (a) {

                                                            if (null == a || void 0 == a) return !1;

                                                            this.muted =

                                                                      a;

                                                            this.updateVolume();

                                                            return !0

                                                  },

                                                  getMute: function () {

                                                            return this.muted

                                                  },

                                                  setPan: function (a) {

                                                            if (this.owner.capabilities.panning) this.panNode.setPosition(a, 0, -0.5), this.pan = a;

                                                            else return !1

                                                  },

                                                  getPan: function () {

                                                            return this.pan

                                                  },

                                                  getPosition: function () {

                                                            return 1E3 * (this.paused || null == this.sourceNode ? this.offset : this.owner.context.currentTime - this.startTime)

                                                  },

                                                  setPosition: function (a) {

                                                            this.offset = a / 1E3;

                                                            this.sourceNode && this.sourceNode.playbackState != this.sourceNode.UNSCHEDULED_STATE && (this.sourceNode.noteOff(0),

                                                                      clearTimeout(this.soundCompleteTimeout));

                                                            !this.paused && this.playState == createjs.Sound.PLAY_SUCCEEDED && this.handleSoundReady(null);

                                                            return !0

                                                  },

                                                  getDuration: function () {

                                                            return this.duration

                                                  },

                                                  handleSoundComplete: function () {

                                                            this.offset = 0;

                                                            if (0 != this.remainingLoops) {

                                                                      this.remainingLoops--;

                                                                      this.handleSoundReady(null);

                                                                      if (null != this.onLoop) this.onLoop(this);

                                                                      this.sendEvent("loop")

                                                            } else if (null != window.createjs) {

                                                                      this.playState = createjs.Sound.PLAY_FINISHED;

                                                                      if (null != this.onComplete) this.onComplete(this);

                                                                      this.sendEvent("complete");

                                                                      this.cleanUp()

                                                            }

                                                  },

                                                  playFailed: function () {

                                                            if (null != window.createjs) {

                                                                      this.playState = createjs.Sound.PLAY_FAILED;

                                                                      if (null != this.onPlayFailed) this.onPlayFailed(this);

                                                                      this.sendEvent("failed");

                                                                      this.cleanUp()

                                                            }

                                                  },

                                                  toString: function () {

                                                            return "[WebAudioPlugin SoundInstance]"

                                                  }

                                        };

                                        createjs.EventDispatcher.initialize(b.prototype);

                                        e.prototype = {

                                                  request: null,

                                                  owner: null,

                                                  progress: -1,

                                                  src: null,

                                                  result: null,

                                                  onload: null,

                                                  onprogress: null,

                                                  onError: null,

                                                  init: function (a, c) {

                                                            this.src = a;

                                                            this.owner = c

                                                  },

                                                  load: function (a) {

                                                            null != a && (this.src =

                                                                      a);

                                                            this.request = new XMLHttpRequest;

                                                            this.request.open("GET", this.src, !0);

                                                            this.request.responseType = "arraybuffer";

                                                            this.request.onload = createjs.proxy(this.handleLoad, this);

                                                            this.request.onError = createjs.proxy(this.handleError, this);

                                                            this.request.onprogress = createjs.proxy(this.handleProgress, this);

                                                            this.request.send()

                                                  },

                                                  handleProgress: function (a, c) {

                                                            this.progress = a / c;

                                                            if (null != this.onprogress) this.onprogress({

                                                                      loaded: a,

                                                                      total: c,

                                                                      progress: this.progress

                                                            })

                                                  },

                                                  handleLoad: function () {

                                                            a.context.decodeAudioData(this.request.response,

                                                                      createjs.proxy(this.handleAudioDecoded, this), createjs.proxy(this.handleError, this))

                                                  },

                                                  handleAudioDecoded: function (a) {

                                                            this.progress = 1;

                                                            this.result = a;

                                                            this.owner.addPreloadResults(this.src, this.result);

                                                            this.onload && this.onload()

                                                  },

                                                  handleError: function (a) {

                                                            this.owner.removeFromPreload(this.src);

                                                            this.onerror && this.onerror(a)

                                                  },

                                                  toString: function () {

                                                            return "[WebAudioPlugin WebAudioLoader]"

                                                  }

                                        }

                              })();

                              this.createjs = this.createjs || {};

                              (function () {

                                        function a() {

                                                  this.init()

                                        }

                               

                               

                                        function b(a, b) {

                                                  this.init(a, b)

                                        }

                               

                               

                                        function e(a, b) {

                                                  this.init(a, b)

                                        }

                               

                               

                                        function d(a) {

                                                  this.init(a)

                                        }

                                        a.MAX_INSTANCES = 30;

                                        a.capabilities = null;

                                        a.AUDIO_READY = "canplaythrough";

                                        a.AUDIO_ENDED = "ended";

                                        a.AUDIO_ERROR = "error";

                                        a.AUDIO_STALLED = "stalled";

                                        a.isSupported = function () {

                                                  if (createjs.Sound.BrowserDetect.isIOS) return !1;

                                                  a.generateCapabilities();

                                                  return null == a.tag || null == a.capabilities ? !1 : !0

                                        };

                                        a.generateCapabilities = function () {

                                                  if (null == a.capabilities) {

                                                            var c = a.tag = document.createElement("audio");

                                                            if (null == c.canPlayType) return null;

                                                            a.capabilities = {

                                                                      panning: !0,

                                                                      volume: !0,

                                                                      tracks: -1

                                                            };

                                                            for (var b = createjs.Sound.SUPPORTED_EXTENSIONS, d = createjs.Sound.EXTENSION_MAP, e = 0, g = b.length; e < g; e++) {

                                                                      var h = b[e],

                                                                                m = d[h] || h;

                                                                      a.capabilities[h] = "no" != c.canPlayType("audio/" + h) && "" != c.canPlayType("audio/" + h) || "no" != c.canPlayType("audio/" + m) && "" != c.canPlayType("audio/" + m)

                                                            }

                                                  }

                                        };

                                        a.prototype = {

                                                  capabilities: null,

                                                  audioSources: null,

                                                  defaultNumChannels: 2,

                                                  init: function () {

                                                            this.capabilities = a.capabilities;

                                                            this.audioSources = {}

                                                  },

                                                  register: function (a,

                                                            b) {

                                                            this.audioSources[a] = !0;

                                                            for (var e = d.get(a), j = null, g = b || this.defaultNumChannels, h = 0; h < g; h++) j = this.createTag(a), e.add(j);

                                                            return {

                                                                      tag: j,

                                                                      numChannels: g

                                                            }

                                                  },

                                                  createTag: function (a) {

                                                            var b = document.createElement("audio");

                                                            b.autoplay = !1;

                                                            b.preload = "none";

                                                            b.src = a;

                                                            return b

                                                  },

                                                  create: function (a) {

                                                            if (!this.isPreloadStarted(a)) {

                                                                      var e = d.get(a),

                                                                                k = this.createTag(a);

                                                                      e.add(k);

                                                                      this.preload(a, {

                                                                                tag: k

                                                                      })

                                                            }

                                                            return new b(a, this)

                                                  },

                                                  isPreloadStarted: function (a) {

                                                            return null != this.audioSources[a]

                                                  },

                                                  preload: function (a, b) {

                                                            this.audioSources[a] = !0;

                                                            new e(a, b.tag)

                                                  },

                                                  toString: function () {

                                                            return "[HTMLAudioPlugin]"

                                                  }

                                        };

                                        createjs.HTMLAudioPlugin = a;

                                        b.prototype = {

                                                  src: null,

                                                  uniqueId: -1,

                                                  playState: null,

                                                  owner: null,

                                                  loaded: !1,

                                                  offset: 0,

                                                  delay: 0,

                                                  volume: 1,

                                                  pan: 0,

                                                  duration: 0,

                                                  remainingLoops: 0,

                                                  delayTimeoutId: null,

                                                  tag: null,

                                                  muted: !1,

                                                  paused: !1,

                                                  addEventListener: null,

                                                  removeEventListener: null,

                                                  removeAllEventListeners: null,

                                                  dispatchEvent: null,

                                                  hasEventListener: null,

                                                  _listeners: null,

                                                  onComplete: null,

                                                  onLoop: null,

                                                  onReady: null,

                                                  onPlayFailed: null,

                                                  onPlayInterrupted: null,

                                                  onPlaySucceeded: null,

                                                  endedHandler: null,

                                                  readyHandler: null,

                                                  stalledHandler: null,

                                                  init: function (a, b) {

                                                            this.src = a;

                                                            this.owner = b;

                                                            this.endedHandler = createjs.proxy(this.handleSoundComplete, this);

                                                            this.readyHandler = createjs.proxy(this.handleSoundReady, this);

                                                            this.stalledHandler = createjs.proxy(this.handleSoundStalled, this)

                                                  },

                                                  sendEvent: function (a) {

                                                            this.dispatchEvent({

                                                                      target: this,

                                                                      type: a

                                                            })

                                                  },

                                                  cleanUp: function () {

                                                            var a = this.tag;

                                                            if (null != a) {

                                                                      a.pause();

                                                                      try {

                                                                                a.currentTime = 0

                                                                      } catch (b) {}

                                                                      a.removeEventListener(createjs.HTMLAudioPlugin.AUDIO_ENDED, this.endedHandler, !1);

                                                                      a.removeEventListener(createjs.HTMLAudioPlugin.AUDIO_READY, this.readyHandler, !1);

                                                                      d.setInstance(this.src, a);

                                                                      this.tag = null

                                                            }

                                                            clearTimeout(this.delayTimeoutId);

                                                            null != window.createjs && createjs.Sound.playFinished(this)

                                                  },

                                                  interrupt: function () {

                                                            if (null != this.tag) {

                                                                      this.playState = createjs.Sound.PLAY_INTERRUPTED;

                                                                      if (this.onPlayInterrupted) this.onPlayInterrupted(this);

                                                                      this.sendEvent("interrupted");

                                                                      this.cleanUp();

                                                                      this.paused = !1

                                                            }

                                                  },

                                                  play: function (a, b, d, e, g, h) {

                                                            this.cleanUp();

                                                            createjs.Sound.playInstance(this, a, b, d,

                                                                      e, g, h)

                                                  },

                                                  beginPlaying: function (a, b, e) {

                                                            if (null == window.createjs) return -1;

                                                            var j = this.tag = d.getInstance(this.src);

                                                            if (null == j) return this.playFailed(), -1;

                                                            this.duration = 1E3 * this.tag.duration;

                                                            j.addEventListener(createjs.HTMLAudioPlugin.AUDIO_ENDED, this.endedHandler, !1);

                                                            this.offset = a;

                                                            this.volume = e;

                                                            this.updateVolume();

                                                            this.remainingLoops = b;

                                                            4 !== j.readyState ? (j.addEventListener(createjs.HTMLAudioPlugin.AUDIO_READY, this.readyHandler, !1), j.addEventListener(createjs.HTMLAudioPlugin.AUDIO_STALLED, this.stalledHandler, !1), j.load()) : this.handleSoundReady(null);

                                                            this.onPlaySucceeded && this.onPlaySucceeded(this);

                                                            this.sendEvent("succeeded");

                                                            return 1

                                                  },

                                                  handleSoundStalled: function () {

                                                            if (null != this.onPlayFailed) this.onPlayFailed(this);

                                                            this.sendEvent("failed");

                                                            this.cleanUp()

                                                  },

                                                  handleSoundReady: function () {

                                                            null != window.createjs && (this.playState = createjs.Sound.PLAY_SUCCEEDED, this.paused = !1, this.tag.removeEventListener(createjs.HTMLAudioPlugin.AUDIO_READY, this.readyHandler, !1), this.offset >= this.getDuration() ? this.playFailed() :

                                                                      (0 < this.offset && (this.tag.currentTime = 0.0010 * this.offset), -1 == this.remainingLoops && (this.tag.loop = !0), this.tag.play()))

                                                  },

                                                  pause: function () {

                                                            return !this.paused && this.playState == createjs.Sound.PLAY_SUCCEEDED && null != this.tag ? (this.paused = !0, this.tag.pause(), clearTimeout(this.delayTimeoutId), !0) : !1

                                                  },

                                                  resume: function () {

                                                            if (!this.paused || null == this.tag) return !1;

                                                            this.paused = !1;

                                                            this.tag.play();

                                                            return !0

                                                  },

                                                  stop: function () {

                                                            this.offset = 0;

                                                            this.pause();

                                                            this.playState = createjs.Sound.PLAY_FINISHED;

                                                            this.cleanUp();

                                                            return !0

                                                  },

                                                  setMasterVolume: function () {

                                                            this.updateVolume();

                                                            return !0

                                                  },

                                                  setVolume: function (a) {

                                                            if (null == Number(a)) return !1;

                                                            this.volume = Math.max(0, Math.min(1, a));

                                                            this.updateVolume();

                                                            return !0

                                                  },

                                                  updateVolume: function () {

                                                            if (null != this.tag) {

                                                                      var a = this.muted || createjs.Sound.masterMute ? 0 : this.volume * createjs.Sound.masterVolume;

                                                                      a != this.tag.volume && (this.tag.volume = a);

                                                                      return !0

                                                            }

                                                            return !1

                                                  },

                                                  getVolume: function () {

                                                            return this.volume

                                                  },

                                                  mute: function (a) {

                                                            this.muted = a;

                                                            this.updateVolume();

                                                            return !0

                                                  },

                                                  setMasterMute: function () {

                                                            this.updateVolume();

                                                            return !0

                                                  },

                                                  setMute: function (a) {

                                                            if (null == a || void 0 == a) return !1;

                                                            this.muted = a;

                                                            this.updateVolume();

                                                            return !0

                                                  },

                                                  getMute: function () {

                                                            return this.muted

                                                  },

                                                  setPan: function () {

                                                            return !1

                                                  },

                                                  getPan: function () {

                                                            return 0

                                                  },

                                                  getPosition: function () {

                                                            return null == this.tag ? this.offset : 1E3 * this.tag.currentTime

                                                  },

                                                  setPosition: function (a) {

                                                            if (null == this.tag) this.offset = a;

                                                            else try {

                                                                      this.tag.currentTime = 0.0010 * a

                                                            } catch (b) {

                                                                      return !1

                                                            }

                                                            return !0

                                                  },

                                                  getDuration: function () {

                                                            return this.duration

                                                  },

                                                  handleSoundComplete: function () {

                                                            this.offset = 0;

                                                            if (0 != this.remainingLoops) {

                                                                      this.remainingLoops--;

                                                                      this.tag.play();

                                                                      if (null != this.onLoop) this.onLoop(this);

                                                                      this.sendEvent("loop")

                                                            } else if (null != window.createjs) {

                                                                      this.playState = createjs.Sound.PLAY_FINISHED;

                                                                      if (null != this.onComplete) this.onComplete(this);

                                                                      this.sendEvent("complete");

                                                                      this.cleanUp()

                                                            }

                                                  },

                                                  playFailed: function () {

                                                            if (null != window.createjs) {

                                                                      this.playState = createjs.Sound.PLAY_FAILED;

                                                                      if (null != this.onPlayFailed) this.onPlayFailed(this);

                                                                      this.sendEvent("failed");

                                                                      this.cleanUp()

                                                            }

                                                  },

                                                  toString: function () {

                                                            return "[HTMLAudioPlugin SoundInstance]"

                                                  }

                                        };

                                        createjs.EventDispatcher.initialize(b.prototype);

                                        e.prototype = {

                                                  src: null,

                                                  tag: null,

                                                  preloadTimer: null,

                                                  loadedHandler: null,

                                                  init: function (a, b) {

                                                            this.src = a;

                                                            this.tag = b;

                                                            this.preloadTimer = setInterval(createjs.proxy(this.preloadTick, this), 200);

                                                            this.loadedHandler = createjs.proxy(this.sendLoadedEvent, this);

                                                            this.tag.addEventListener && this.tag.addEventListener("canplaythrough", this.loadedHandler);

                                                            this.tag.onreadystatechange = createjs.proxy(this.sendLoadedEvent, this);

                                                            this.tag.preload = "auto";

                                                            this.tag.src = a;

                                                            this.tag.load()

                                                  },

                                                  preloadTick: function () {

                                                            var a = this.tag.buffered,

                                                                      b = this.tag.duration;

                                                            0 < a.length && a.end(0) >= b - 1 && this.handleTagLoaded()

                                                  },

                                                  handleTagLoaded: function () {

                                                            clearInterval(this.preloadTimer)

                                                  },

                                                  sendLoadedEvent: function () {

                                                            this.tag.removeEventListener && this.tag.removeEventListener("canplaythrough", this.loadedHandler);

                                                            this.tag.onreadystatechange = null;

                                                            createjs.Sound.sendLoadComplete(this.src)

                                                  },

                                                  toString: function () {

                                                            return "[HTMLAudioPlugin HTMLAudioLoader]"

                                                  }

                                        };

                                        d.tags = {};

                                        d.get = function (a) {

                                                  var b = d.tags[a];

                                                  null == b && (b = d.tags[a] = new d(a));

                                                  return b

                                        };

                                        d.getInstance = function (a) {

                                                  a =

                                                            d.tags[a];

                                                  return null == a ? null : a.get()

                                        };

                                        d.setInstance = function (a, b) {

                                                  var e = d.tags[a];

                                                  return null == e ? null : e.set(b)

                                        };

                                        d.prototype = {

                                                  src: null,

                                                  length: 0,

                                                  available: 0,

                                                  tags: null,

                                                  init: function (a) {

                                                            this.src = a;

                                                            this.tags = []

                                                  },

                                                  add: function (a) {

                                                            this.tags.push(a);

                                                            this.length++;

                                                            this.available++

                                                  },

                                                  get: function () {

                                                            if (0 == this.tags.length) return null;

                                                            this.available = this.tags.length;

                                                            var a = this.tags.pop();

                                                            null == a.parentNode && document.body.appendChild(a);

                                                            return a

                                                  },

                                                  set: function (a) {

                                                            -1 == this.tags.indexOf(a) && this.tags.push(a);

                                                            this.available =

                                                                      this.tags.length

                                                  },

                                                  toString: function () {

                                                            return "[HTMLAudioPlugin TagPool]"

                                                  }

                                        }

                              })();

                              (function () {

                                        var a = this.createjs = this.createjs || {}, a = a.SoundJS = a.SoundJS || {};

                                        a.version = "0.4.0";

                                        a.buildDate = "Tue, 12 Feb 2013 21:11:51 GMT"

                              })();

                              // Input 4

                              (function (a) {

                                        var b = function () {};

                                        b.VERSION = "1.1.0";

                                        b.compositions = {};

                                        var e = a.$,

                                                  d = ModulogLog;

                                        b.addComposition = function (a,idx,symbolName) {

                               

                                                  this.compositions[idx] = {};

                                                  var b = AdobeEdge.getComposition(a).getStage().getSymbol(symbolName);

                                                  this.compositions[idx].stage = b;

                                                  var d = AdobeEdge.getComposition(a).getStage().getSymbolElement();

                                                  this.compositions[idx].stageElement = d;

                                                  var e = d.height(),

                                                            g = d.width();

                                                  this.compositions[idx].stageHeight = e;

                                                  this.compositions[idx].stageWidth = g;

                                                  d = d.position().top;

                                                  this.compositions[idx].stageTop = d;

                                                  this.compositions[idx].stageMiddle = Math.floor(d + e / 2);

                                                  this.compositions[idx].duration = b.getDuration();

                                                  b.stop(0);

                                        };

                                        b.setup = function (b, f) {

                                                  //b ? (void 0 === f && (f = "vertical"), this.addComposition(b.getComposition().compId), e(document).scroll(function () {

                                                  //          function b() {

                                                  //                    e.each(a.Parallax.compositions, function (a, b) {

                                                  //                              var c = d / (b.stageHeight - e(window).height());

                                                  //                              b.stage.stop(Math.floor(c * b.duration))

                                                  //                    })

                                                  //          }

                               

                               

                                                  //          function c() {

                                                  //                    e.each(a.Parallax.compositions, function (a, b) {

                                                  //                              var c = d / (b.stageWidth - e(window).width());

                                                  //                              b.stage.stop(Math.floor(c * b.duration))

                                                  //                    })

                                                  //          }

                                                  //          if ("vertical" == f) {

                                                  //                    var d = e(document).scrollTop();

                                                  //                    b()

                                                  //          } else "horizontal" == f && (d = e(document).scrollLeft(), c())

                                                  //})) : d.error("Error in setup(). Argument 'sym' is not optional.", "EdgeCommons | Parallax")

                                                  this.addComposition(b.getComposition().compId,1,"SymbolOne" );

                                                  this.addComposition(b.getComposition().compId,2,"SymbolTwo" );

                                                  this.addComposition(b.getComposition().compId,3,"SymbolThree");

                                                  e(document).scroll(function () {

                                                            function b() {

                                                                      e.each(a.Parallax.compositions, function (a, b) {

                                                                                var c = d / (b.stageHeight - e(window).height());

                                                                                b.stage.stop(Math.floor(c * b.duration))

                                                                      })

                                                            }

                               

                               

                                                            function c() {

                                                                      e.each(a.Parallax.compositions, function (a, b) {

                                                                                var c = d / (b.stageWidth - e(window).width());

                                                                                b.stage.stop(Math.floor(c * b.duration))

                                                                      })

                                                            }

                                                            if ("vertical" == f) {

                                                                      var d = e(document).scrollTop();

                                                                      b()

                                                            } else "horizontal" == f && (d = e(document).scrollLeft(), c())

                                                  });

                                        };

                                        a.Parallax = b

                              })(EdgeCommons);

                              // Input 5

                              (function (a) {

                                        var b = function () {};

                                        b.VERSION = "1.0.0";

                                        var e = a.$,

                                                  d = ModulogLog;

                                        b.open = function (b, f) {

                                                  try {

                                                            if ("image" != b.type && "animate" != b.type && "youtube" != b.type) d.error("Error in open(). Unsupported type: " + b.type, "EdgeCommons | Spotlight");

                                                            else {

                                                                      void 0 == f && (f = window.top.document);

                                                                      b.width = b.width || 400;

                                                                      b.height = b.height || 600;

                                                                      b.borderWidth = b.borderWidth || 5;

                                                                      b.borderColor = b.borderColor || "#FFF";

                                                                      e("body", f).append('<div id="spotlight"> <div class="background"> </div> </div>');

                                                                      e("#spotlight .background", f).append('<div class="base"></div>');

                                                                      e("#spotlight .background", f).append('<div class="close-button"></div>');

                                                                      e("#spotlight .close-button", f).css("margin-left", 0.5 * b.width - 15 + b.borderWidth).css("margin-top", -0.5 * b.height - 15);

                                                                      var k = e("#spotlight .base", f);

                                                                      k.css("width", 0).css("height", 0).css("margin-left", 0).css("margin-top", 0).css("border-width", b.borderWidth).css("border-color", b.borderColor).css("border-radius", 5);

                                                                      k.animate({

                                                                                width: b.width,

                                                                                "margin-left": -0.5 * b.width,

                                                                                height: b.height,

                                                                                "margin-top": -0.5 * b.height

                                                                      }, 400, "easeOutBack", function () {

                                                                                e("#spotlight .content",

                                                                                          f).css("display", "inline");

                                                                                e("#spotlight .fader", f).fadeOut(2E3);

                                                                                e("#spotlight .close-button", f).fadeIn()

                                                                      });

                                                                      k.append('<div class="content"></div>');

                                                                      var j = e("#spotlight .content", f),

                                                                                g = document.location.href.split("/"); - 1 != g[g.length - 1].indexOf(".") && g.pop();

                                                                      var h = g.join("/");

                                                                      switch (b.type) {

                                                                      case "image":

                                                                                var m = -1 == b.source.indexOf("http:") ? h + "/" + b.source : b.source;

                                                                                j.append('<img src="' + m + '" />');

                                                                                break;

                                                                      case "animate":

                                                                                m = -1 == b.source.indexOf("http:") ? h + "/" + b.source : b.source;

                                                                                j.append('<iframe src="' + m + '" style="overflow: hidden; width: 100%; height: 100%; margin: auto; border: 0 none;"></iframe>');

                                                                                break;

                                                                      case "youtube":

                                                                                j.append('<iframe width="' + b.width + '" height="' + b.height + '" src="http://www.youtube.com/embed/' + b.source + "?autoplay=" + (b.param && b.param.autoPlay ? "1" : "0") + '" frameborder="0" allowfullscreen></iframe>')

                                                                      }

                                                                      j.append('<div class="fader"></div>');

                                                                      e("#spotlight .fader", f);

                                                                      e("#spotlight .background", f).click(function () {

                                                                                a.Spotlight.close(b, f)

                                                                      });

                                                                      return !0

                                                            }

                                                  } catch (t) {

                                                            return d.error(t.toString()), !1

                                                  }

                                        };

                                        b.close = function (a, b) {

                                                  void 0 == b && (b = window.top.document);

                                                  e("#spotlight .content", b).remove();

                                                  e("#spotlight .close-button", b).remove();

                                                  e("#spotlight .background", b).fadeOut(400);

                                                  e("#spotlight .base", b).animate({

                                                            width: 0,

                                                            "margin-left": 0,

                                                            height: 0,

                                                            "margin-top": 0,

                                                            opacity: 0

                                                  }, 400, "easeOutCubic", function () {

                                                            e("#spotlight", b).remove()

                                                  })

                                        };

                                        a.Spotlight = b

                              })(EdgeCommons);

                              // Input 6

                              (function (a) {

                                        var b = function () {};

                                        b.VERSION = "1.0.0";

                                        b.accessSVG = function (a) {

                                                  if (a.is("div")) var b = a.css("background-image").replace("url(", "").replace(")", ""),

                                                  b = b.replace('"', "");

                                                  a.css("background-image", "");

                                                  var c = "ec_" + Math.random().toString(36).substring(7);

                                                  a.append('<embed id="' + c + '" src="' + b + '" type="image/svg+xml" width="100%" height="100%" />');

                                                  var f = new jQuery.Deferred,

                                                            k = document.getElementById(c);

                                                  k.onload = function () {

                                                            var a = k.getSVGDocument();

                                                            a.notify = function (a, b) {

                                                                      var c = document.createEvent("CustomEvent");

                                                                      c.initEvent(b, !0, !0);

                                                                      a.dispatchEvent(c)

                                                            };

                                                            f.resolve(a, k, c)

                                                  };

                                                  return f

                                        };

                                        a.SVG = b

                              })(EdgeCommons);

                              • 12. Re: Parallax in side of a symbol
                                blonde_rik Level 1

                                And yes i have downloaded and amended the js and am running it locally.

                                • 13. Re: Parallax in side of a symbol
                                  beepia.ms Level 1

                                  Supremely helpful. Going to give this a shot. Thank you!

                                   

                                  I'm also trying to get Edge to play nice with ios7 on transitions with changing the 'scrollProperty' to 'transform' so that there's smoother scrollability. I'll post my findings.

                                   

                                  Thanks again.

                                  • 14. Re: Parallax in side of a symbol
                                    simoferraro

                                    Hi,

                                     

                                    I'm trying to implement this code but still I can't see anything happening. Is there something I have to do at the timeline level to make this work?

                                     

                                    When I launch the browser preview I just get a blank page even though if I inspect the element I can see that it loads everything it just doesn't kick off the animation in the symbol. I can't autoplay it though otherwise the parallax won't work.

                                     

                                    Help!

                                     

                                    Thanks,

                                     

                                    Simo