///<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 html meta tags. This class if for internal use only.
                 * @class econda.tagmanager.macro.reader.MetaDataReader
                 * @private
                 */
                var MetaDataReader = (function () {
                    function MetaDataReader() {
                    }
                    MetaDataReader.prototype.readValue = function (macroDefinition) {
                        var tagId = macroDefinition.patternSourceName.split(",");
                        var value = this.getValueFromMetaElement(macroDefinition.patternSourceName);
                        return {
                            value: value,
                            success: true
                        };
                    };
                    MetaDataReader.prototype.readValueWithEvent = function (macroDefinition, eventData) {
                        return {
                            value: undefined,
                            success: false
                        };
                    };
                    /**
                     * Returns a value from a configured meta element
                     *
                     * @param {String} meta
                     * @returns {String} value
                     * @private
                     */
                    MetaDataReader.prototype.getValueFromMetaElement = function (meta) {
                        var metaTags, actMeta = false, value = '', i, ii;
                        metaTags = document.getElementsByTagName("meta");
                        if (metaTags.length != 0) {
                            try {
                                for (i = 0, ii = metaTags.length; i < ii; i += 1) {
                                    actMeta = metaTags[i].getAttribute('name') || metaTags[i].getAttribute('http-equiv')
                                        || metaTags[i].getAttribute('property') || metaTags[i].getAttribute('itemprop') || false;
                                    if (actMeta !== false && actMeta == meta) {
                                        value = metaTags[i].getAttribute('content') ? metaTags[i].getAttribute('content') : undefined;
                                    }
                                }
                            }
                            catch (e) {
                            }
                        }
                        return value;
                    };
                    return MetaDataReader;
                }());
                reader.MetaDataReader = MetaDataReader;
            })(reader = macro.reader || (macro.reader = {}));
        })(macro = tagmanager.macro || (tagmanager.macro = {}));
    })(tagmanager = econda.tagmanager || (econda.tagmanager = {}));
})(econda || (econda = {}));