| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293 | 
							- /*
 
-  *
 
-  *
 
-  *
 
-  *
 
-  */
 
- const START_URL_NAME = 'start.html';
 
- const PAGE_ID_NAME = 'id';
 
- const PAGE_URL_NAME = 'p';
 
- const SITEMAP_COLLAPSE_VAR_NAME = 'c';
 
- const SITEMAP_COLLAPSE_VALUE = "1";
 
- const SITEMAP_CLOSE_VALUE = "2";
 
- const GLOBAL_VAR_NAME = '&ZQZ=s&';
 
- const GLOBAL_VAR_CHECKSUM = 'CSUM';
 
-  (function() {
 
-      // define the root namespace object
 
-      if(!window.$axure) window.$axure = {};
 
-      $axure.utils = {};
 
-      // ------------------------------------------------------------------------
 
-      // Makes an object bindable
 
-      // ------------------------------------------------------------------------
 
-      $axure.utils.makeBindable = function(obj, events) {
 
-          if(obj.registeredBindings != null) return;
 
-          // copy the events
 
-          obj.bindableEvents = events.slice();
 
-          obj.registeredBindings = {};
 
-          obj.bind = function(eventName, fn) {
 
-              var binding = {};
 
-              binding.eventName = eventName;
 
-              binding.action = fn;
 
-              var bindingList = this.registeredBindings[eventName];
 
-              if(bindingList == null) {
 
-                  bindingList = [];
 
-                  this.registeredBindings[eventName] = bindingList;
 
-              }
 
-              bindingList[bindingList.length] = binding;
 
-          };
 
-          obj.unbind = function(eventName) {
 
-              if(eventName.indexOf('.') >= 0) {
 
-                  this.registeredBindings[eventName] = null;
 
-              } else {
 
-                  var event = eventName.split('.')[0];
 
-                  for(var bindingKey in this.registeredBindings) {
 
-                      if(bindingKey.split('.')[0] == event) {
 
-                          this.registeredBindings[bindingKey] = null;
 
-                      }
 
-                  }
 
-              }
 
-          };
 
-          obj.triggerEvent = function(eventName, arg) {
 
-              for(var bindingKey in this.registeredBindings) {
 
-                  if(bindingKey.split('.')[0] == eventName) {
 
-                      var bindings = this.registeredBindings[bindingKey];
 
-                      for(var i = 0; i < bindings.length; i++) {
 
-                          if(arg == null) {
 
-                              bindings[i].action();
 
-                          } else {
 
-                              bindings[i].action(arg);
 
-                          }
 
-                      }
 
-                  }
 
-              }
 
-          };
 
-      };
 
-      $axure.utils.loadCSS = function(url) {
 
-          $('head').append('<link text="text/css" href="' + url + '" rel="Stylesheet" />');
 
-      };
 
-      $axure.utils.loadJS = function(url) {
 
-          $('head').append('<script text="text/javascript" language="JavaScript" src="' + url + '"></script>');
 
-      };
 
-      $axure.utils.curry = function(fn) {
 
-          var curriedArgs = Array.prototype.slice.call(arguments, [1]);
 
-          return function() {
 
-              fn.apply(this, curriedArgs.concat(Array.prototype.slice.call(arguments)));
 
-          };
 
-      };
 
-      $axure.utils.succeeded = function(result) {
 
-          return result && result.success;
 
-      };
 
-      $axure.utils.createUniqueTag = function() {
 
-          return Math.random().toString().substring(2) +
 
-              Math.random().toString().substring(2) +
 
-                  Math.random().toString().substring(2) +
 
-                      Math.random().toString().substring(2);
 
-      };
 
-      $axure.utils.formatDate = function(date) {
 
-          var months = [
 
-              "Jan", "Feb", "Mar", "Apr", "May", "Jun",
 
-              "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
 
-          var hours = date.getHours();
 
-          var amPm = (hours > 11 ? 'PM' : 'AM');
 
-          hours = hours % 12;
 
-          if(hours == '0') hours = '12';
 
-          var minutes = date.getMinutes() + '';
 
-          if(minutes.length == 1) {
 
-              minutes = '0' + minutes;
 
-          }
 
-          return [
 
-              months[date.getMonth()], ' ', date.getDate(), ' ', date.getFullYear(), ' ',
 
-              hours, ':', minutes, ' ', amPm].join('');
 
-      };
 
-      $axure.utils.quickObject = function() {
 
-          var returnVal = {};
 
-          for(var i = 0; i < arguments.length; i += 2) {
 
-              returnVal[arguments[i]] = arguments[i + 1];
 
-          }
 
-          return returnVal;
 
-      };
 
-      
 
-      $axure.utils.isInPlayer = function() { return window.name == 'mainFrame'; }
 
-      // This will return true if prototype is opened from version of app after update with code that sets this value 
 
-      // (won't be able to distinguish between browser and outdated app)
 
-      $axure.utils.isShareApp = function () { return /ShareApp/.test(navigator.userAgent); }
 
-      $axure.utils.setHashStringVar = function(currentHash, varName, varVal) {
 
-          var varWithEqual = varName + '=';
 
-          var poundVarWithEqual = varVal === '' ? '' : '#' + varName + '=' + varVal;
 
-          var ampVarWithEqual = varVal === '' ? '' : '&' + varName + '=' + varVal;
 
-          var hashToSet = '';
 
-          var pageIndex = currentHash.indexOf('#' + varWithEqual);
 
-          if (pageIndex == -1) pageIndex = currentHash.indexOf('&' + varWithEqual);
 
-          if (pageIndex != -1) {
 
-              var newHash = currentHash.substring(0, pageIndex);
 
-              newHash = newHash == '' ? poundVarWithEqual : newHash + ampVarWithEqual;
 
-              var ampIndex = currentHash.indexOf('&', pageIndex + 1);
 
-              if (ampIndex != -1) {
 
-                  newHash = newHash == '' ? '#' + currentHash.substring(ampIndex + 1) : newHash + currentHash.substring(ampIndex);
 
-              }
 
-              hashToSet = newHash;
 
-          } else if (currentHash.indexOf('#') != -1) {
 
-              hashToSet = currentHash + ampVarWithEqual;
 
-          } else {
 
-              hashToSet = poundVarWithEqual;
 
-          }
 
-          if (hashToSet != '' || varVal == '') {
 
-              return hashToSet;
 
-          }
 
-          return null;
 
-      }
 
-      $axure.utils.parseGlobalVars = function(query, setAction) {
 
-          let vars = query.split("&");
 
-          let csum = false;
 
-          for(let i = 0; i < vars.length; i++) {
 
-              let pair = vars[i].split("=");
 
-              let varName = pair[0];
 
-              let varValue = pair[1];
 
-              if(varName) {
 
-                  if(varName == GLOBAL_VAR_CHECKSUM) csum = true;
 
-                  else setAction(varName, decodeURIComponent(varValue), true);
 
-              }
 
-          }
 
-          if(!csum && query.length > 250) {
 
-              window.alert('Axure Warning: The variable values were too long to pass to this page.\n\nIf you are using IE, using Chrome or Firefox will support more data.');
 
-          }
 
-      }
 
-      var matrixBase = {
 
-          mul: function(val) {
 
-              if(val.x !== undefined) {
 
-                  return $axure.utils.Vector2D(
 
-                      this.m11 * val.x + this.m12 * val.y + this.tx,
 
-                      this.m21 * val.x + this.m22 * val.y + this.ty);
 
-              } else if(val.m11) {
 
-                  return $axure.utils.Matrix2D(
 
-                      this.m11 * val.m11 + this.m12 * val.m21,
 
-                      this.m11 * val.m12 + this.m12 * val.m22,
 
-                      this.m21 * val.m11 + this.m22 * val.m21,
 
-                      this.m21 * val.m12 + this.m22 * val.m22,
 
-                      val.tx + this.tx * val.m11 + this.ty * val.m21,
 
-                      val.ty + this.tx * val.m12 + this.ty * val.m22
 
-                  );
 
-              } else if(Number(val)) {
 
-                  var num = Number(val);
 
-                  return $axure.utils.Matrix2D(this.m11 * num, this.m12 * num,
 
-                      this.m21 * num, this.m22 * num,
 
-                      this.tx * num, this.ty * num);
 
-              } else return undefined;
 
-          },
 
-          rotate: function(angle) {
 
-              var angleRad = angle * Math.PI / 180;
 
-              var c = Math.cos(angleRad);
 
-              var s = Math.sin(angleRad);
 
-              return this.mul($axure.utils.Matrix2D(c, -s, s, c));
 
-          },
 
-          translate: function(tx, ty) {
 
-              return this.mul($axure.utils.Matrix2D(1, 0, 0, 1, tx, ty));
 
-          }
 
-      };
 
-      $axure.utils.Matrix2D = function(m11, m12, m21, m22, tx, ty) {
 
-          return $.extend({
 
-              m11: m11 || 0,
 
-              m12: m12 || 0,
 
-              m21: m21 || 0,
 
-              m22: m22 || 0,
 
-              tx: tx || 0,
 
-              ty: ty || 0
 
-          }, matrixBase);
 
-      };
 
-      $axure.utils.Vector2D = function(x, y) {
 
-          return { x: x || 0, y: y || 0 };
 
-      };
 
-      $axure.utils.Matrix2D.identity = function() {
 
-          return $axure.utils.Matrix2D(1, 0, 0, 1, 0, 0);
 
-      };
 
-  })();
 
-  // TODO: [mas] simplify this
 
-  if(window.$axure && window.$axure.internal) {
 
-      $axure.internal(function($ax) { $ax.utils = $axure.utils; });
 
-  }
 
-  // Its too much of a pain to escape everything and use regular expresions, just replace manually
 
-  (function () {
 
-      var original = String.prototype.replace;
 
-      // TODO: maybe use flags or object instead to pass options in
 
-      String.prototype.replace = function (search, newVal, replaceFirst, ignoreCase) {
 
-          // Use original is some cases
 
-          if (search instanceof RegExp) return original.apply(this, arguments);
 
-          search = String(search);
 
-          var searchCompare = ignoreCase ? this.toLowerCase() : this;
 
-          if (ignoreCase) search = search.toLowerCase();
 
-          var searchLength = search.length;
 
-          var thisLength = this.length;
 
-          var index = 0;
 
-          var retVal = '';
 
-          while (index != -1) {
 
-              var nextIndex = searchCompare.indexOf(search, index);
 
-              if (nextIndex != -1) {
 
-                  retVal += this.substring(index, nextIndex) + newVal;
 
-                  index = nextIndex + searchLength;
 
-                  if (index >= thisLength) index = -1;
 
-              } else {
 
-                  retVal += this.substring(index);
 
-                  index = -1;
 
-              }
 
-              if (replaceFirst) break;
 
-          }
 
-          return retVal;
 
-      };
 
-      if (!Array.prototype.indexOf) {
 
-          Array.prototype.indexOf = function (elt /*, from*/) {
 
-              var len = this.length >>> 0;
 
-              var from = trunc(Number(arguments[1]) || 0);
 
-              if(from < 0) from += len;
 
-              for(; from < len; from++) {
 
-                  if(from in this && this[from] === elt) return from;
 
-              }
 
-              return -1;
 
-          };
 
-      }
 
-      var trunc = function(num) {
 
-          return num < 0 ? Math.ceil(num) : Math.floor(num);
 
-      };
 
-  })();
 
 
  |