| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 | 
							- // ******* GLOBAL VARIABLE PROVIDER ******** //
 
- $axure.internal(function($ax) {
 
-     var _globalVariableValues = {};
 
-     var _globalVariableProvider = {};
 
-     $ax.globalVariableProvider = _globalVariableProvider;
 
-     var setVariableValue = function(variable, value, suppressBroadcast) {
 
-         if(!(value instanceof Object)) value = value.toString();
 
-         variable = variable.toLowerCase();
 
-         _globalVariableValues[variable] = value;
 
-         if(suppressBroadcast !== true) {
 
-             var varData = {
 
-                 globalVarName: variable,
 
-                 globalVarValue: value.toString()
 
-             };
 
-             $axure.messageCenter.postMessage('setGlobalVar', varData);
 
-         }
 
-         //Post global var values only if pageData is loaded (suppresses exception which occurs when page loads)
 
-         if($ax.pageData) {
 
-             _postGlobalVarVals();
 
-         }
 
-     };
 
-     _globalVariableProvider.setVariableValue = setVariableValue;
 
-     var getVariableValue = function(variable, eventInfo, ignoreDefaultsForLinkUrl) {
 
-         variable = variable.toLowerCase();
 
-         if(_globalVariableValues[variable] !== undefined) {
 
-             //If this is for the GetLinkUrl function and 
 
-             //the current value of the global variable is the same as the default defined in the document, don't return it
 
-             if(ignoreDefaultsForLinkUrl == true && $ax.document.globalVariables[variable] == _globalVariableValues[variable]) {
 
-                 return null;
 
-             }
 
-             return _globalVariableValues[variable];
 
-         }
 
-         if($ax.document.globalVariables[variable] !== undefined) return ignoreDefaultsForLinkUrl == true ? null : $ax.document.globalVariables[variable];
 
-         switch(variable) {
 
-             case "pagename": return $ax.pageData.page.name;
 
-             case "now": return eventInfo.now;
 
-             case "gendate": return $ax.pageData.generationDate;
 
-             case "dragx": return $ax.drag.GetDragX();
 
-             case "dragy": return $ax.drag.GetDragY();
 
-             case "totaldragx": return $ax.drag.GetTotalDragX();
 
-             case "totaldragy": return $ax.drag.GetTotalDragY();
 
-             case "dragtime": return $ax.drag.GetDragTime();
 
-             case "math": return Math;
 
-             case "date": return Date;
 
-             case "window": return eventInfo && eventInfo.window;
 
-             case "this": return eventInfo && eventInfo.thiswidget && $ax.getWidgetInfo(eventInfo.thiswidget.elementId);
 
-             case "item": return (eventInfo && eventInfo.item && eventInfo.item.valid && eventInfo.item) || getVariableValue('targetitem', eventInfo, ignoreDefaultsForLinkUrl);
 
-             case "targetitem": return eventInfo && eventInfo.targetElement && $ax.getItemInfo(eventInfo.targetElement);
 
-             case "repeater": return eventInfo && eventInfo.repeater;
 
-             case "target": return eventInfo && eventInfo.targetElement && $ax.getWidgetInfo(eventInfo.targetElement);
 
-             case "cursor": return eventInfo && eventInfo.cursor;
 
-             default:
 
-                 var gen = variable.substr(0, 3) == "gen";
 
-                 var date = gen ? $ax.pageData.generationDate : new Date();
 
-                 var prop = gen ? variable.substr(3) : variable;
 
-                 switch(prop) {
 
-                     case "day": return date.getDate();
 
-                     case "month": return date.getMonth() + 1;
 
-                     case "monthname": return $ax.getMonthName(date.getMonth());
 
-                     case "dayofweek": return $ax.getDayOfWeek(date.getDay());
 
-                     case "year": return date.getFullYear();
 
-                     case "time": return date.toLocaleTimeString();
 
-                     case "hours": return date.getHours();
 
-                     case "minutes": return date.getMinutes();
 
-                     case "seconds": return date.getSeconds();
 
-                     default: return '';
 
-                 }
 
-         }
 
-     };
 
-     _globalVariableProvider.getVariableValue = getVariableValue;
 
-     var load = function() {
 
-         let query = (window.location.href.split("#")[1] || ''); //hash.substring(1); Firefox decodes this so & in variables breaks
 
-         if(query.length > 0) {
 
-             $ax.utils.parseGlobalVars(query, setVariableValue);
 
-         }
 
-     };
 
-     var getLinkUrl = function(baseUrl, useGlobalVarName) {
 
-         var toAdd = '';
 
-         var definedVariables = _getDefinedVariables();
 
-         for(var i = 0; i < definedVariables.length; i++) {
 
-             var key = definedVariables[i];
 
-             var val = getVariableValue(key, undefined, true);
 
-             if(val != null) {
 
-                 if(toAdd.length > 0) toAdd += '&';
 
-                 else if(useGlobalVarName) toAdd = GLOBAL_VAR_NAME;
 
-                 toAdd += key + '=' + encodeURIComponent(val);
 
-             }
 
-         }
 
-         return toAdd.length > 0 ? baseUrl + (useGlobalVarName ? '' : $axure.shouldSendVarsToServer() ? '?' : '#') + toAdd + "&" + GLOBAL_VAR_CHECKSUM + "=1" : baseUrl;
 
-     };
 
-     _globalVariableProvider.getLinkUrl = getLinkUrl;
 
-     var _getDefinedVariables = function() {
 
-         return $ax.pageData.variables;
 
-     };
 
-     _globalVariableProvider.getDefinedVariables = _getDefinedVariables;
 
-     var _postGlobalVarVals = function() {
 
-         var retVal = {};
 
-         var definedVariables = _getDefinedVariables();
 
-         for(var i = 0; i < definedVariables.length; i++) {
 
-             var key = definedVariables[i];
 
-             var val = getVariableValue(key);
 
-             if(val != null) {
 
-                 retVal[key] = val;
 
-             }
 
-         }
 
-         $ax.messageCenter.postMessage('globalVariableValues', retVal);
 
-     };
 
-     $ax.messageCenter.addMessageListener(function(message, data) {
 
-         if(message == 'getGlobalVariables') {
 
-             _postGlobalVarVals();
 
-         } else if(message == 'resetGlobalVariables') {
 
-             _globalVariableValues = {};
 
-             _postGlobalVarVals();
 
-         }
 
-     });
 
-     load();
 
- });
 
 
  |