Team:Valencia UPV/javascript core

From 2014.igem.org

/*

  • Jssor.Core 16.0
  • http://www.jssor.com/
  • TERMS OF USE - Jssor.Core
  • Copyright 2014 Jssor
  • Permission is hereby granted, free of charge, to any person obtaining
  • a copy of this software and associated documentation files (the
  • "Software"), to deal in the Software without restriction, including
  • without limitation the rights to use, copy, modify, merge, publish,
  • distribute, sublicense, and/or sell copies of the Software, and to
  • permit persons to whom the Software is furnished to do so, subject to
  • the following conditions:
  • The above copyright notice and this permission notice shall be
  • included in all copies or substantial portions of the Software.
  • THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  • EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  • MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  • NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
  • LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
  • OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
  • WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  • /

/*! Jssor */ $Jssor$ = window.$Jssor$ = window.$Jssor$ || {};


//$JssorDebug$ var $JssorDebug$ = new function () {

   this.$DebugMode = true;
   // Methods
   this.$Log = function (msg, important) {
       var console = window.console || {};
       var debug = this.$DebugMode;
       if (debug && console.log) {
           console.log(msg);
       } else if (debug && important) {
           alert(msg);
       }
   };
   this.$Error = function (msg, e) {
       var console = window.console || {};
       var debug = this.$DebugMode;
       if (debug && console.error) {
           console.error(msg);
       } else if (debug) {
           alert(msg);
       }
       if (debug) {
           // since we're debugging, fail fast by crashing
           throw e || new Error(msg);
       }
   };
   this.$Fail = function (msg) {
       throw new Error(msg);
   };
   this.$Assert = function (value, msg) {
       var debug = this.$DebugMode;
       if (debug) {
           if (!value)
               throw new Error("Assert failed " + msg || "");
       }
   };
   this.$Trace = function (msg) {
       var console = window.console || {};
       var debug = this.$DebugMode;
       if (debug && console.log) {
           console.log(msg);
       }
   };
   this.$Execute = function (func) {
       var debug = this.$DebugMode;
       if (debug)
           func();
   };
   this.$LiveStamp = function (obj, id) {
       var stamp = document.createElement("DIV");
       stamp.setAttribute("id", id);
       obj.$Live = stamp;
   };

};


//$JssorEventManager$ var $JssorEventManager$ = function () {

   var self = this;
   // Fields
   var listeners = {}; // dictionary of eventName --> array of handlers
   // Methods
   self.$On = self.addEventListener = function (eventName, handler) {
       if (typeof (handler) != "function") {
           return;
       }
       if (!listeners[eventName]) {
           listeners[eventName] = [];
       }
       listeners[eventName].push(handler);
   };
   self.$Off = self.removeEventListener = function (eventName, handler) {
       var handlers = listeners[eventName];
       if (typeof (handler) != "function") {
           return;
       } else if (!handlers) {
           return;
       }
       for (var i = 0; i < handlers.length; i++) {
           if (handler == handlers[i]) {
               handlers.splice(i, 1);
               return;
           }
       }
   };
   self.$ClearEventListeners = function (eventName) {
       if (listeners[eventName]) {
           delete listeners[eventName];
       }
   };
   self.$TriggerEvent = function (eventName) {
       var handlers = listeners[eventName];
       var args = [];
       if (!handlers) {
           return;
       }
       for (var i = 1; i < arguments.length; i++) {
           args.push(arguments[i]);
       }
       for (var i = 0; i < handlers.length; i++) {
           try {
               handlers[i].apply(window, args);
           } catch (e) {
               // handler threw an error, ignore, go on to next one
               $JssorDebug$.$Error(e.name + " while executing " + eventName +
                       " handler: " + e.message, e);
           }
       }
   };

};