///<reference path="./IMacroReader.ts" />
///<reference path="./IMacroReaderResult.ts" />
///<reference path="../IMacroDefinition.ts" /> 
///<reference path="../../../cookie/Store.ts" />
var econda;
(function (econda) {
    var tagmanager;
    (function (tagmanager) {
        var macro;
        (function (macro) {
            var reader;
            (function (reader) {
                /**
                 * Read data from js snipped. This class if for internal use only.
                 * @class econda.tagmanager.macro.reader.JsSnippetReader
                 * @private
                 */
                var JsSnippetReader = (function () {
                    function JsSnippetReader() {
                    }
                    JsSnippetReader.prototype.readValue = function (macroDefinition) {
                        var ret;
                        var evaluatedValue;
                        try {
                            evaluatedValue = this.evalScript(macroDefinition.code);
                        }
                        catch (e) {
                        }
                        return {
                            value: evaluatedValue,
                            success: (typeof evaluatedValue !== 'undefined')
                        };
                    };
                    JsSnippetReader.prototype.readValueWithEvent = function (macroDefinition, eventData) {
                        return {
                            value: undefined,
                            success: false
                        };
                    };
                    JsSnippetReader.prototype.evalScript = function (code) {
                        var jsCodeToExecute = '(function(){ ' + code + '})();';
                        return eval(jsCodeToExecute);
                    };
                    return JsSnippetReader;
                }());
                reader.JsSnippetReader = JsSnippetReader;
            })(reader = macro.reader || (macro.reader = {}));
        })(macro = tagmanager.macro || (tagmanager.macro = {}));
    })(tagmanager = econda.tagmanager || (econda.tagmanager = {}));
})(econda || (econda = {}));