/* Minification failed. Returning unminified contents.
(6266,5-17): run-time error JS1292: Strict-mode does not allow duplicate property names: 'mf_country'
(6039,5-18): run-time error JS1292: Strict-mode does not allow duplicate property names: 'ex_linkType'
(5880,5-23): run-time error JS1292: Strict-mode does not allow duplicate property names: 'ag_sortAscending'
(5738,5-22): run-time error JS1292: Strict-mode does not allow duplicate property names: 'mf_profileImage'
(5772,5-33): run-time error JS1292: Strict-mode does not allow duplicate property names: "mf_participantStatusOnline"
(5831,5-17): run-time error JS1292: Strict-mode does not allow duplicate property names: 'mf_country'
(5834,5-17): run-time error JS1292: Strict-mode does not allow duplicate property names: 'mf_orderBy'
(5648,5-19): run-time error JS1292: Strict-mode does not allow duplicate property names: 'ex_leadsList'
(5661,5-15): run-time error JS1292: Strict-mode does not allow duplicate property names: 'ex_phone'
(5554,5-16): run-time error JS1292: Strict-mode does not allow duplicate property names: 'li_regNow'
(5465,5-18): run-time error JS1292: Strict-mode does not allow duplicate property names: 'mf_lectures'
(5295,5-18): run-time error JS1292: Strict-mode does not allow duplicate property names: 'ex_linkType'
(5195,5-17): run-time error JS1292: Strict-mode does not allow duplicate property names: 'mf_country'
(4962,5-19): run-time error JS1292: Strict-mode does not allow duplicate property names: 'ex_leadsList'
(684,17-21): run-time error JS1300: Strict-mode does not allow assignment to undefined variables: body
(4877,9-16): run-time error JS1300: Strict-mode does not allow assignment to undefined variables: culture
 */
'use strict';
var __extends = (this && this.__extends) || (function () {
    var extendStatics = function (d, b) {
        extendStatics = Object.setPrototypeOf ||
            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
        return extendStatics(d, b);
    };
    return function (d, b) {
        if (typeof b !== "function" && b !== null)
            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
var __generator = (this && this.__generator) || function (thisArg, body) {
    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
    return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
    function verb(n) { return function (v) { return step([n, v]); }; }
    function step(op) {
        if (f) throw new TypeError("Generator is already executing.");
        while (g && (g = 0, op[0] && (_ = 0)), _) try {
            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
            if (y = 0, t) op = [op[0] & 2, t.value];
            switch (op[0]) {
                case 0: case 1: t = op; break;
                case 4: _.label++; return { value: op[1], done: false };
                case 5: _.label++; y = op[1]; op = [0]; continue;
                case 7: op = _.ops.pop(); _.trys.pop(); continue;
                default:
                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
                    if (t[2]) _.ops.pop();
                    _.trys.pop(); continue;
            }
            op = body.call(thisArg, _);
        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
    }
};
function tryGetValue(object, value) {
    return Object.keys(object).find(function (key) {
        return object[key] === value;
    });
}
function EACookie(cookieName) {
    var _cookieName = cookieName;
    var _cookie = GetCookie();
    var _cookieArray = _cookie.split('&');
    var getBoolOrString = function (value) {
        if (!value)
            return '';
        var str = value;
        str = decodeURIComponent(str);
        return str;
    };
    var GetCookieVal = function (key, defaultValue) {
        if (!key && _cookieArray.length <= 1)
            return _cookieArray.length == 0 ? 0 : _cookieArray[0];
        for (var i = 0; i < _cookieArray.length; i++) {
            var split = _cookieArray[i].split('=');
            var param = split[0];
            var value = split[1];
            if (param === key) {
                if (_cookieArray[i].endsWith('=') && split.length > 2 && split[2] == '')
                    for (var j = 0; j < split.length; j++) {
                        if (split[j] == '')
                            value += '=';
                    }
                return getBoolOrString(value);
            }
        }
        return defaultValue;
    };
    function GetCookie() {
        var name = _cookieName + "=";
        var ca = document.cookie.split(';');
        for (var i = 0; i < ca.length; i++) {
            var c = ca[i];
            while (c.charAt(0) === ' ')
                c = c.substring(1);
            if (c.indexOf(name) === 0)
                return c.substring(name.length, c.length);
        }
        return "";
    }
    var replaceUrlParam = function (url, paramName, paramValue) {
        if (paramValue == null) {
            paramValue = '';
        }
        var pattern = new RegExp('\\b(' + paramName + '=).*?(&|#|$)');
        if (url.search(pattern) >= 0) {
            return url.replace(pattern, '$1' + paramValue + '$2');
        }
        url = url.replace(/[?#]$/, '');
        return url + '&' + paramName + '=' + paramValue;
    };
    var setCookie = function (cvalue, exdays) {
        exdays = exdays || 30;
        var d = new Date();
        d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
        var expires = "expires=" + d.toUTCString();
        document.cookie = _cookieName + "=" + cvalue + "; " + expires + "; path=/";
    };
    this.GetCookieBool = function (key, defaultVal) {
        var value = GetCookieVal(key);
        if (!value)
            return defaultVal;
        var str;
        if (isNaN(value) && Boolean(value)) {
            try {
                str = JSON.parse(value.toLowerCase());
                return str;
            }
            catch (e) {
                str = value;
            }
        }
        else
            str = defaultVal;
        return str;
    };
    this.GetCookieInt = function (key, defaultValue) {
        var v = GetCookieVal(key, defaultValue);
        return v == defaultValue ? defaultValue : parseInt(v);
    };
    this.GetCookieString = function (key, defaultValue) {
        return GetCookieVal(key, defaultValue);
    };
    this.SetCookieValue = function (param, val) {
        var newCookie = replaceUrlParam(_cookie, param, val);
        _cookie = newCookie;
        setCookie(newCookie, 7);
        _cookieArray = _cookie.split('&');
    };
}
function EASerializer() {
    var utils = new objectUtils();
    function deepFreeze(object) {
        var propNames = Object.getOwnPropertyNames(object);
        for (var _i = 0, propNames_1 = propNames; _i < propNames_1.length; _i++) {
            var name_1 = propNames_1[_i];
            var value = object[name_1];
            if (value && typeof value === "object") {
                object[name_1];
                deepFreeze(value);
            }
        }
        if (object.constructor.name != 'Object')
            object['_type'] = object.constructor.name;
        return Object.freeze(object);
    }
    function deepRestore(object) {
        if (object == null || utils.isPrimitive(object))
            return object;
        var propNames = Object.getOwnPropertyNames(object);
        for (var _i = 0, propNames_2 = propNames; _i < propNames_2.length; _i++) {
            var name_2 = propNames_2[_i];
            var value = object[name_2];
            if (value && typeof value === "object") {
                object[name_2] = deepRestore(value);
            }
        }
        if (object.hasOwnProperty('_type')) {
            var instance = eval("new " + object['_type'] + "()");
            object = Object.assign(instance, object);
        }
        return object;
    }
    this.copy = function (source, deep) {
        return copy(source, deep);
    };
    function copy(source, deep) {
        var o, prop, type;
        if (typeof source != 'object' || source === null) {
            o = source;
            return o;
        }
        o = new source.constructor();
        for (prop in source) {
            if (source.hasOwnProperty(prop)) {
                type = typeof source[prop];
                if (deep && type == 'object' && source[prop] !== null) {
                    o[prop] = copy(source[prop], deep);
                }
                else {
                    o[prop] = source[prop];
                }
            }
        }
        return o;
    }
    this.serialize = function (obj) {
        deepFreeze(obj);
        return JSON.stringify(obj);
    };
    this.deSerialize = function (json) {
        var obj = '';
        try {
            obj = JSON.parse(json);
        }
        catch (e) {
            return json;
        }
        obj = deepRestore(obj);
        return obj;
    };
}
var storageTypes = {
    "local": "localStorage",
    "session": "sessionStorage",
};
function storage(storageType) {
    var serializer = new EASerializer();
    var utils = new objectUtils();
    var obj = { data: {}, timestamp: 0, expiry: 0 };
    var min = 5, expires = true;
    var initialise = false;
    if (!storageType)
        storageType = storageTypes.local;
    var isSupported = storageType in window && window[storageType] !== null;
    if (!isSupported) {
        console.log('No storage support');
    }
    function init(isExpires, minuets) {
        if (!isSupported)
            return;
        initialise = true;
        if (isExpires == undefined && minuets > 0)
            isExpires = true;
        expires = isExpires;
        if (!isNaN(minuets) && minuets > 0)
            min = minuets;
    }
    this.SetExpiry = function (minuets) {
        if (!isNaN(minuets))
            minuets < 0 ? expires = false : min = minuets;
    };
    this.Save = function (key, newData, expiry) {
        this.ensureInit();
        if (!isSupported)
            return;
        if (!expiry && expires)
            expiry = min;
        var d = utils.isPrimitive(newData) ? newData : serializer.serialize(newData);
        obj = { data: d, timestamp: new Date().getTime(), expiry: expiry, expires: expires };
        try {
            window[storageType].setItem(key, JSON.stringify(obj));
        }
        catch (e) {
        }
    };
    this.AddData = function (key, newData, expiry) {
        if (!isSupported)
            return;
        if (!expiry && expires)
            expiry = min;
        var list = [];
        var data = this.Get(key);
        if (data)
            list = data.data;
        list = list.concat(list, newData);
        this.Save(key, list, expiry);
    };
    this.Get = function (key) {
        this.ensureInit();
        if (!isSupported)
            return;
        var localData = window[storageType].getItem(key);
        if (!localData)
            return null;
        obj = JSON.parse(localData);
        if (utils.isPrimitive(obj) || obj.hasOwnProperty('data') == false)
            return obj;
        var timestamp = obj.timestamp;
        if (timestamp && obj.expiry && obj.expiry >= 0) {
            var diff = new Date().getTime() - obj.timestamp;
            if (Math.round(diff / 60000) > obj.expiry) {
                return null;
            }
        }
        var data = serializer.deSerialize(obj.data);
        return data;
    };
    this.GetNoExpiry = function (key) {
        this.ensureInit();
        if (!isSupported)
            return null;
        var localData = window[storageType].getItem(key);
        if (!localData)
            return null;
        obj = JSON.parse(localData);
        if (!obj)
            return null;
        if (utils.isPrimitive(obj) || obj.hasOwnProperty('data') == false)
            return obj;
        var data = serializer.deSerialize(obj.data);
        return data;
    };
    this.Delete = function (key) {
        var item = window[storageType].getItem(key);
        if (item)
            window[storageType].removeItem(key);
    };
    this.ensureInit = function () {
        if (!initialise)
            init(expires, 5);
    };
}
function objectUtils() {
    var pascalCasePattern = new RegExp("^([A-Z])([a-z]+)");
    var camelCasePattern = new RegExp("^([a-z])([A-Z]+)");
    function setObject(destination, source) {
        var keys = Object.keys(source);
        keys.forEach(function (key, idx) {
            var psc = pascalCaseToCamelCase(key);
            var value = source[key];
            if (destination.hasOwnProperty('_' + psc))
                key = '_' + psc;
            if (isObject(destination[key])) {
                if (destination[key].hasOwnProperty("_value")) {
                    if (isObject(value))
                        destination[key] = value;
                    else
                        destination[key]['_value'] = value;
                }
                else
                    destination[key] = setObject(destination[key], value);
            }
            else {
                destination[key] = nullToEmpty(value);
            }
        });
        return destination;
    }
    function isObject(value) {
        if (value == null
            || typeof value != 'object'
            || Array.isArray(value))
            return false;
        return true;
    }
    this.LoadFromJson = function (destination, jsonData) {
        if (!jsonData)
            return null;
        var json = JSON.parse(jsonData);
        return this.LoadObject(destination, json);
    };
    this.LoadObject = function (destination, source) {
        destination = setObject(destination, source);
        return destination;
    };
    function nullToEmpty(value) {
        return value == null ? '' : value;
    }
    this.isPrimitive = function (test) {
        return (test !== Object(test));
    };
    function pascalCaseToCamelCase(propname) {
        if (pascalCasePattern.test(propname))
            return propname.charAt(0).toLowerCase() + propname.slice(1);
        else
            return propname;
    }
    function camelCaseToPascalCase(propname) {
        if (camelCasePattern.test(propname))
            return propname.charAt(0).toUpperCase() + propname.slice(1);
        else
            return propname;
    }
    function convertPropertyNames(obj, converterFn) {
        var r, value, t = Object.prototype.toString.apply(obj);
        if (t == "[object Object]") {
            r = {};
            for (var propname in obj) {
                value = obj[propname];
                r[converterFn(propname)] = convertPropertyNames(value, converterFn);
            }
            return r;
        }
        else if (t == "[object Array]") {
            r = [];
            for (var i = 0, L = obj.length; i < L; ++i) {
                value = obj[i];
                r[i] = convertPropertyNames(value, converterFn);
            }
            return r;
        }
        return obj;
    }
}
function getKeyByValue(object, value) {
    var keys = Object.keys(object);
    for (var i = 0; i < keys.length; i++) {
        if (object[keys[i]] == value)
            return keys[i];
    }
    return '';
}
var EADate = (function () {
    function EADate(date) {
        if (date === void 0) { date = null; }
        if (!date)
            date = new Date();
        else if (date instanceof Date == false) {
            if (isNaN(date))
                date = new Date(date);
            else
                date = new Date(parseInt(date));
        }
        this._date = date;
        this.d = date.getDate();
        this.M = date.getMonth() + 1;
        this.y = date.getFullYear();
        this.h = date.getHours();
        this.m = date.getMinutes();
        this.s = date.getSeconds();
        this.offset = date.getTimezoneOffset();
    }
    EADate.prototype.convertToTimeZone = function (timezone) {
        return EADate.convertToTimeZone(this._date, timezone);
    };
    EADate.prototype.setTimezone = function (timezone) {
        var d = EADate.convertToTimeZone(this._date, timezone);
        this._date = d;
        this.d = d.getDate();
        this.M = d.getMonth() + 1;
        this.y = d.getFullYear();
        this.h = d.getHours();
        this.m = d.getMinutes();
        this.s = d.getSeconds();
        return this;
    };
    EADate.prototype.isToday = function () {
        var today = new Date();
        return isSameDay(today);
    };
    EADate.prototype.diff = function (somedate) {
        return this._date - somedate;
    };
    EADate.prototype.isSameDay = function (someDate) {
        return this.d == someDate.getDate() &&
            this.M == someDate.getMonth() + 1 &&
            this.y == someDate.getFullYear();
    };
    EADate.prototype.format = function (formatString) {
        return this.getDateString(this._date, formatString);
    };
    EADate.prototype.isSame = function (newD, datePart) {
        datePart = datePart.toLowerCase();
        switch (datePart) {
            case 'd':
                return newD.d == this.d;
            case 'm':
                return newD.M == this.M;
            case 'y':
                return newD.y == this.y;
        }
        return false;
    };
    EADate.prototype.getDateString = function (date, format) {
        return new moment(date).format(format);
        var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], monthsLong = ['January', 'February', 'March', 'April', 'May', 'Jun', 'July', 'August', 'September', 'October', 'November', 'December'], dayName = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], getPaddedComp = function (comp) {
            return ((parseInt(comp) < 10) ? ('0' + comp) : comp);
        }, formattedDate = format, o = {
            "y+": date.getFullYear(),
            "MMMM+": monthsLong[date.getMonth()],
            "MM+": months[date.getMonth()],
            "ddd+": dayName[date.getDay()],
            "dd+": getPaddedComp(date.getDate()),
            "d+": date.getDate(),
            "hh+": getPaddedComp((date.getHours() > 12) ? date.getHours() % 12 : date.getHours()),
            "h+": (date.getHours() > 12) ? date.getHours() % 12 : date.getHours(),
            "H+": getPaddedComp(date.getHours()),
            "m+": getPaddedComp(date.getMinutes()),
            "s+": getPaddedComp(date.getSeconds()),
            "S+": getPaddedComp(date.getMilliseconds()),
            "a+": (date.getHours() >= 12) ? 'pm' : 'am',
            "A+": (date.getHours() >= 12) ? 'PM' : 'AM'
        };
        for (var k in o) {
            if (new RegExp("(" + k + ")").test(format)) {
                formattedDate = formattedDate.replaceAll(RegExp.$1, o[k]);
            }
        }
        return formattedDate;
    };
    EADate.prototype.toRelativeDay = function () {
        var str = '';
        var ed = new EADate();
        if (this.isSameDay(ed._date))
            str = 'Today';
        else {
            if (this.isSame(ed, 'm') && this.isSame(ed, 'y'))
                if (ed.d == (this.d + 1))
                    str = 'Tomorrow';
        }
        if (!str)
            str = this.format('MMMM DD, YYYY');
        return str;
    };
    EADate.getDateRangeText = function (startDate, endDate, withYear, withTime, language) {
        if (withYear === void 0) { withYear = true; }
        if (withTime === void 0) { withTime = true; }
        if (language === void 0) { language = 0; }
        if (!startDate)
            return;
        if (!endDate)
            endDate = startDate;
        var ci = 'en-us';
        var d1 = new EADate(startDate);
        var d2 = new EADate(endDate);
        if (d1.isSame(d2, 'd')) {
            var format = "{0}, {1} {2}";
            var month = withYear ? d1.format("MMMM, YYYY") : d1.format("MMMM");
            if (withTime)
                format += ', {3} - {4}';
            return String.format(format, d1.format("dddd"), d1.format("DD"), month, d1.format('hh:mm A'), d2.format('hh:mm A'));
        }
        var date;
        var year = d1.format(", YYYY");
        if (d1.isSame(d2, 'm')) {
            var month = EADate.getMonth(d1);
            date = month + " " + d1.format("DD") + " - "
                + d2.format("DD") + year;
        }
        else {
            if (d1.isSame(d2, 'y')) {
                var sm = EADate.getMonth(d1);
                var em = EADate.getMonth(d2);
                var sd = d1.format("DD");
                var ed = d2.format("DD");
                date = sm + " " + sd + " - " + em + " " + ed + year;
            }
            else {
                date = d1.format("MMMM DD YYYY") + ' - ' + d2.format('MMMM DD YYYY');
            }
        }
        return date;
    };
    EADate.convertToTimeZone = function (date, timezoneDiffHours) {
        if (date instanceof Date == false) {
            if (isNaN(date))
                date = new Date(date);
            else
                date = new Date(parseInt(date));
        }
        var userTimezoneOffset = date.getTimezoneOffset();
        var offset = (userTimezoneOffset + (timezoneDiffHours * 60)) * 60 * 1000;
        date.setTime(date.getTime() + offset);
        return date;
    };
    EADate.getMonth = function (date) {
        return date.format('MMMM');
    };
    EADate.getUTCOffset = function () {
        var date = new Date();
        var offset = date.getTimezoneOffset() * -1;
        return offset / 60;
    };
    Object.defineProperty(EADate, "dateFormat", {
        get: function () {
            return {
                usDate: 'MMMM D, YYYY',
                usDay: 'dddd MMMM D, YYYY',
                usTime: 'hh:mm A',
                usDateTime: 'MMMM D, YYYY hh:mm A'
            };
        },
        enumerable: false,
        configurable: true
    });
    EADate.prototype.fromNow = function () {
        var seconds = Math.floor((new Date() - this._date) / 1000);
        var interval = seconds / 31536000;
        if (interval > 1) {
            return Math.floor(interval) + " years";
        }
        interval = seconds / 2592000;
        if (interval > 1) {
            return Math.floor(interval) + " months";
        }
        interval = seconds / 86400;
        if (interval > 1) {
            return Math.floor(interval) + " days";
        }
        interval = seconds / 3600;
        if (interval > 1) {
            return Math.floor(interval) + " hours";
        }
        interval = seconds / 60;
        if (interval > 1) {
            return Math.floor(interval) + " minutes";
        }
        return Math.floor(seconds) + " seconds";
    };
    return EADate;
}());
var HttpRequestParams = (function () {
    function HttpRequestParams() {
        this.data = {};
        this._serialize = function (obj) {
            var str = [];
            for (var p in obj)
                str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
            return str.join("&");
        };
    }
    HttpRequestParams.prototype.GetParams = function (commandType) {
        var data = '';
        if (Object.keys(this.data).length) {
            if (commandType == HttpCommand.commandType.Post)
                data = JSON.stringify(this.data);
            else
                data = "?" + this._serialize(this.data);
        }
        return data;
    };
    HttpRequestParams.prototype.AddWithValue = function (key, value) {
        this.data[key] = value;
    };
    return HttpRequestParams;
}());
var HttpCommand = (function () {
    function HttpCommand(xhrCommand) {
        if (xhrCommand === void 0) { xhrCommand = ''; }
        this.xhrCommand = xhrCommand;
        this.commandType = HttpCommand.commandType.Get;
        this.makeAsync = false;
        this._params = new HttpRequestParams();
        this._serialize = function (obj) {
            var str = [];
            for (var p in obj)
                str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
            return str.join("&");
        };
    }
    Object.defineProperty(HttpCommand, "commandType", {
        get: function () {
            return { Get: 'GET', Post: 'POST', Put: 'PUT', Delete: 'DELETE' };
        },
        enumerable: false,
        configurable: true
    });
    HttpCommand.prototype.SendHttpRequest = function () {
        var result = null, body = null;
        var request = new XMLHttpRequest();
        if (this.xhrCommand != HttpCommand.commandType.Post)
            this.xhrCommand += this._params.GetParams(this.commandType);
        else
            body = this._params.GetParams(this.commandType);
        request.open(this.commandType, this.xhrCommand, this.makeAsync);
        request.setRequestHeader('FROM-ANGULAR', 'true');
        request.send(body);
        if (request.status === 200)
            result = request.responseText;
        else {
            if (request.status == 401) {
                EALogger.logDebug(request.status + ' request', JSON.stringify(this));
            }
            return null;
        }
        return result || '';
    };
    HttpCommand.prototype.SendHttpRequestAsync = function () {
        var httpCmd = this;
        return new Promise(function (resolve, reject) {
            var request = new XMLHttpRequest();
            if (httpCmd.xhrCommand != HttpCommand.commandType.Post)
                httpCmd.xhrCommand += httpCmd._params.GetParams(httpCmd.commandType);
            else
                body = httpCmd._params.GetParams(httpCmd.commandType);
            request.open(httpCmd.commandType, httpCmd.xhrCommand, httpCmd.makeAsync);
            request.setRequestHeader('FROM-ANGULAR', 'true');
            request.onload = function (e) {
                if (request.readyState === 4) {
                    if (request.status === 200)
                        resolve(request.responseText);
                    else {
                        console.error(request.statusText);
                        reject(null);
                    }
                }
            };
            request.onerror = function (e) {
                console.error(request.statusText);
                reject(null);
            };
            request.send(httpCmd._params.GetParams());
        });
    };
    return HttpCommand;
}());
var Server = (function () {
    function Server() {
    }
    Server.GetNewLoadCommand = function (command) {
        var cmd = new HttpCommand();
        cmd.xhrCommand = command;
        cmd.commandType = HttpCommand.commandType.Get;
        return cmd;
    };
    Server.ReadOne = function (T, cmd) {
        if (cmd === void 0) { cmd = new HttpCommand(); }
        var res = null;
        var jsonData = cmd.SendHttpRequest();
        if (jsonData) {
            var utils_1 = new objectUtils();
            try {
                res = eval("new " + T.prototype.constructor.name + "(" + key + ")");
            }
            catch (e) {
                res = eval("new " + T.prototype.constructor.name + "()");
            }
            utils_1.LoadFromJson(res, jsonData);
        }
        return res;
    };
    Server.ReadList = function (T, cmd) {
        if (cmd === void 0) { cmd = new HttpCommand(); }
        var res = [];
        var jsonData = cmd.SendHttpRequest();
        if (jsonData != null) {
            var utils_2 = new objectUtils();
            var jsonArr = JSON.parse(jsonData);
            if (Array.isArray(jsonArr)) {
                jsonArr.forEach(function (obj, idx) {
                    if (T != null) {
                        var ctr = eval("new " + T.prototype.constructor.name + "()");
                        utils_2.LoadObject(ctr, obj);
                        ctr.setLoaded();
                        res.push(ctr);
                    }
                    else
                        res.push(obj);
                });
            }
        }
        return res;
    };
    Server.ReadPrimitive = function (cmd) {
        if (cmd === void 0) { cmd = new HttpCommand(); }
        var jsonData = cmd.SendHttpRequest();
        return jsonData;
    };
    Server.ReadPrimitiveAsync = function (cmd) {
        if (cmd === void 0) { cmd = new HttpCommand(); }
        cmd.makeAsync = true;
        var data = function (resolve, reject) {
            return __awaiter(this, void 0, void 0, function () {
                var jsonData;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0: return [4, cmd.SendHttpRequestAsync()];
                        case 1:
                            jsonData = _a.sent();
                            if (jsonData)
                                resolve(jsonData);
                            else
                                reject(null);
                            return [2];
                    }
                });
            });
        };
        return new Promise(data);
    };
    Server.ReadOneAsync = function (T, cmd) {
        if (cmd === void 0) { cmd = new HttpCommand(); }
        cmd.makeAsync = true;
        var data = function (resolve, reject) {
            return __awaiter(this, void 0, void 0, function () {
                var jsonData, utils_3;
                return __generator(this, function (_a) {
                    switch (_a.label) {
                        case 0: return [4, cmd.SendHttpRequestAsync()];
                        case 1:
                            jsonData = _a.sent();
                            if (jsonData != null) {
                                utils_3 = new objectUtils();
                                utils_3.LoadFromJson(T, jsonData);
                                resolve(T);
                            }
                            else
                                reject(null);
                            return [2];
                    }
                });
            });
        };
        return new Promise(data);
    };
    return Server;
}());
var EACheckBox = (function () {
    function EACheckBox(key, value, isChecked) {
        if (isChecked === void 0) { isChecked = false; }
        this.Key = key;
        this.Value = value;
        this.IsChecked = isChecked;
    }
    return EACheckBox;
}());
var ServerCache = (function () {
    function ServerCache() {
    }
    ServerCache.ExpirationMode = function () {
        return {
            default: 0,
            sliding: 1
        };
    };
    ServerCache.Save = function (T, key, data) {
        if (key == undefined)
            return false;
        var cacheKey = T.prototype.constructor.name + '_' + key.toString();
        var sc = new storage();
        sc.expires = true;
        var d = new EASerializer().copy(data, true);
        sc.Save(cacheKey, d);
        return true;
    };
    ServerCache.AddData = function (T, key, data) {
        if (key == undefined)
            return false;
        var cacheKey = T.prototype.constructor.name + '_' + key.toString();
        var sc = new storage();
        sc.expires = true;
        var d = new EASerializer().copy(data, true);
        sc.AddData(cacheKey, d);
        return true;
    };
    ServerCache.Get = function (T, key) {
        var cacheKey = T.prototype.constructor.name + '_' + key.toString();
        var sc = new storage();
        return sc.Get(cacheKey);
    };
    ServerCache.GetNoExpiry = function (T, key) {
        var cacheKey = T.prototype.constructor.name + '_' + key.toString();
        var sc = new storage();
        return sc.GetNoExpiry(cacheKey);
    };
    ServerCache.GetWithCreate = function (T, key) {
        var cachedObj = ServerCache.Get(T, key);
        if (!cachedObj)
            cachedObj = new T.prototype.constructor(key);
        return cachedObj;
    };
    ServerCache.Remove = function (T, key) {
        var cacheKey = T.prototype.constructor.name + '_' + key.toString();
        var sc = new storage();
        return sc.Delete(cacheKey);
    };
    return ServerCache;
}());
var EaEnum = (function () {
    function EaEnum(enums, isFlags, value) {
        if (isFlags === void 0) { isFlags = false; }
        if (value === void 0) { value = null; }
        this._enum = enums;
        this._isFlags = isFlags;
        this._value = value;
    }
    EaEnum.toBindableDictionary = function (enumObj, minValue, maxValue) {
        if (minValue === void 0) { minValue = 0; }
        if (maxValue === void 0) { maxValue = Infinity; }
        var keys = Object.keys(enumObj);
        var arr = [];
        for (var i = 0; i < keys.length; i++) {
            var val = enumObj[keys[i]];
            if (isNaN(val) || (isNaN(val) == false && val >= minValue))
                arr.push({ Key: enumObj[keys[i]], Value: '' + keys[i] });
        }
        return arr;
    };
    EaEnum.prototype.toNumber = function (value) {
        if (value === void 0) { value = this._value; }
        var val = 0;
        if (!value || isNaN(value) == false)
            val = value;
        else {
            value = value.toLowerCase();
            var keys = Object.keys(this._enum);
            for (var i = 0; i < keys.length; i++) {
                if (keys[i].toLowerCase() == value) {
                    val = this._enum[keys[i]];
                    break;
                }
            }
        }
        return val;
    };
    EaEnum.prototype.hasFlag = function (flag, value) {
        if (value === void 0) { value = this._value; }
        if (!value || !flag) {
            return false;
        }
        var val = this.toNumber(value);
        var fVal = (flag & val) > 0;
        return fVal;
    };
    EaEnum.prototype.isSingleFlag = function (val) {
        if (val === void 0) { val = this._value; }
        var isFlagName = isNaN(val);
        if (val == 0)
            return false;
        var keys = Object.keys(this._enum);
        for (var i = 0; i < keys.length; i++) {
            if (isFlagName && keys[i].toLowerCase() == val)
                return true;
            else if ((this._enum[keys[i]] == val))
                return true;
        }
        return false;
    };
    EaEnum.prototype.toString = function () {
        var value = this._value, str = '';
        var isStr = isNaN(value);
        var keys = Object.keys(this._enum);
        if (isStr)
            str = value.toLowerCase();
        else {
            if (this._isFlags == false) {
                if (keys.length < value)
                    return '';
                str = keys[value];
            }
        }
        if (!str) {
            var r = 0, values = [];
            for (var i = 0; i < keys.length; i++) {
                var val = this._enum[keys[i]];
                if (isStr || this._isFlags == false) {
                    if (keys[i].toLowerCase() == value) {
                        values.push(val);
                        break;
                    }
                }
                else {
                    if ((val & value) > 0)
                        values.push(keys[i]);
                }
            }
            str = values.join(', ');
        }
        return spaceCamelCase(str);
    };
    EaEnum.prototype.setFlag = function (flag, addFlag) {
        if (addFlag)
            this.addFlag(flag);
        else
            this.removeFlag(flag);
        return this;
    };
    EaEnum.prototype.addFlag = function (flag) {
        this._value += flag;
        return this;
    };
    EaEnum.prototype.removeFlag = function (flag) {
        this._value &= ~flag;
        return this;
    };
    return EaEnum;
}());
var EALogLevel = 4;
var EALogger = (function () {
    function EALogger() {
    }
    EALogger.logMessage = function (message) {
        var data = [];
        for (var _i = 1; _i < arguments.length; _i++) {
            data[_i - 1] = arguments[_i];
        }
        this.write(EALogger.logLevel.Info, message, data);
        return this;
    };
    ;
    EALogger.logDebug = function (message) {
        var data = [];
        for (var _i = 1; _i < arguments.length; _i++) {
            data[_i - 1] = arguments[_i];
        }
        this.write(EALogger.logLevel.Debug, message, data);
        return this;
    };
    ;
    EALogger.logDebug = function (message, data) {
        EALogger.log(EALogger.logLevel.Debug, message, data);
    };
    ;
    EALogger.logError = function (message) {
        var data = [];
        for (var _i = 1; _i < arguments.length; _i++) {
            data[_i - 1] = arguments[_i];
        }
        EALogger.log(EALogger.logLevel.Error, message, data);
        return this;
    };
    ;
    EALogger.logError = function (message, data) {
        EALogger.log(EALogger.logLevel.Error, message, data);
    };
    EALogger.logInfo = function (message, data) {
        EALogger.log(EALogger.logLevel.Info, message, data);
    };
    EALogger.logInfo = function (message) {
        var data = [];
        for (var _i = 1; _i < arguments.length; _i++) {
            data[_i - 1] = arguments[_i];
        }
        EALogger.log(EALogger.logLevel.Info, message, data);
    };
    EALogger.log = function (logLevel, message, data) {
        if (!EALogger.isLogAllowed(logLevel))
            return this;
        if (!data)
            data = '';
        var d = Array.isArray(data) || new objectUtils().isPrimitive(data) == false ? JSON.stringify(data) : data;
        var now = new Date();
        var minutes = now.getMinutes();
        var seconds = now.getSeconds();
        var hour = now.getHours();
        var dts = "".concat(hour, ":").concat(minutes, ":").concat(seconds);
        var msg = dts + " (" + EALogger.getlogLevelDesc(logLevel) + ')'
            + message;
        if (d)
            msg += '. ' + d;
        console.log('%c ' + msg, EALogger.getColor(logLevel));
        return this;
    };
    ;
    EALogger.log2 = function (logLevel, message) {
        var data = [];
        for (var _i = 2; _i < arguments.length; _i++) {
            data[_i - 2] = arguments[_i];
        }
        if (EALogLevel <= logLevel)
            switch (logLevel) {
                case EALogger.logLevel.Debug:
                    console.debug(message, data);
                    break;
                case EALogger.logLevel.Info:
                    console.info(message, data);
                    break;
                case EALogger.logLevel.Warning:
                    console.warn(message, data);
                    break;
                case EALogger.logLevel.Critical:
                case EALogger.logLevel.Error:
                    console.error(message, data);
                    break;
                default:
                    console.log(message, data);
                    break;
            }
    };
    EALogger.isLogAllowed = function (logLevel) {
        return EALogLevel <= logLevel;
    };
    Object.defineProperty(EALogger, "logLevel", {
        get: function () {
            return {
                All: 0,
                Debug: 1,
                Info: 2,
                Warning: 3,
                Error: 4,
                Critical: 5
            };
        },
        enumerable: false,
        configurable: true
    });
    EALogger.getlogLevelDesc = function (logLevel) {
        var desc = getKeyByValue(EALogger.logLevel, logLevel);
        return desc;
    };
    EALogger.getColor = function (logLevel) {
        var color = '';
        switch (logLevel) {
            case EALogger.logLevel.Debug:
                color = "green";
                break;
            case EALogger.logLevel.Info:
                color = 'blue';
                break;
            case EALogger.logLevel.Warning:
                color = 'yellow';
                break;
            case EALogger.logLevel.Critical:
            case EALogger.logLevel.Error:
                color = 'red';
                break;
            default:
                color = 'black';
                break;
        }
        return 'color:' + color + ';';
    };
    return EALogger;
}());
var PersistentState = (function (_super) {
    __extends(PersistentState, _super);
    function PersistentState() {
        var _this = _super.call(this, PersistentState._state, false, 0) || this;
        _this._state = 0;
        return _this;
    }
    Object.defineProperty(PersistentState.prototype, "state", {
        get: function () {
            return this._state;
        },
        set: function (newState) {
            this._state = newState;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(PersistentState, "_state", {
        get: function () {
            return {
                NotLoaded: 0,
                New: 1,
                Loaded: 2,
                Dirty: 3,
                Loading: 4
            };
        },
        enumerable: false,
        configurable: true
    });
    return PersistentState;
}(EaEnum));
var PersistentObject = (function () {
    function PersistentObject(primary) {
        if (primary === void 0) { primary = 0; }
        this._primary = primary;
        this._loadCommad = '';
        this._state = new PersistentState(PersistentState._state.NotLoaded);
    }
    Object.defineProperty(PersistentObject.prototype, "isLoaded", {
        get: function () {
            return this._state == PersistentState._state.Loaded;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(PersistentObject.prototype, "isNew", {
        get: function () {
            this.loadIfNeeded();
            return this._state == PersistentState._state.New;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(PersistentObject.prototype, "isDirty", {
        get: function () {
            return this._state == PersistentState._state.Dirty;
        },
        enumerable: false,
        configurable: true
    });
    PersistentObject.prototype.forceNew = function () {
        this._state = PersistentState._state.New;
    };
    PersistentObject.prototype.setLoaded = function () {
        this._state = PersistentState._state.Loaded;
    };
    PersistentObject.prototype.setNotLoaded = function () {
        this._state = PersistentState._state.NotLoaded;
    };
    PersistentObject.prototype.markDirty = function () {
        this.loadIfNeeded();
        if (this._state._value == PersistentState._state.Loaded)
            this._state = PersistentState._state.Dirty;
    };
    PersistentObject.prototype.setIfNeeded = function (propName, newValue) {
        if (this[propName] != newValue) {
            this[propName] = newValue;
            this.markDirty();
        }
    };
    PersistentObject.prototype.loadIfNeeded = function () {
        if (this._state._value == PersistentState._state.NotLoaded) {
            this.load();
        }
    };
    PersistentObject.prototype.load = function () {
        var loadCmd = this.getLoadCommand();
        if (loadCmd) {
            var cmd = Server.GetNewLoadCommand(loadCmd);
            var jsonData = cmd.SendHttpRequest();
            if (jsonData) {
                var utils_4 = new objectUtils();
                utils_4.LoadFromJson(this, jsonData);
                this._state = PersistentState._state.Loaded;
            }
            else
                this.setNotLoaded();
        }
    };
    PersistentObject.prototype.getLoadCommand = function () {
        return '';
    };
    PersistentObject.getFromCache = function (T, key) {
        if (key == undefined)
            return null;
        var res = ServerCache.Get(T, key);
        if (res == null) {
            var obj = void 0;
            try {
                obj = eval("new " + T.prototype.constructor.name + "(" + key + ")");
            }
            catch (e) {
                obj = eval("new " + T.prototype.constructor.name + "()");
            }
            obj.loadIfNeeded();
            res = obj;
            if (res.isLoaded)
                ServerCache.Save(T, key, new EASerializer().copy(obj, true));
        }
        return res;
    };
    PersistentObject.readOne = function (T, cmd) {
        var res = Server.ReadOne(T, cmd);
        if (res)
            res.setLoaded();
        return res;
    };
    PersistentObject.prototype.save = function (T, key, data) {
        ServerCache.Save(T, key, new EASerializer().copy(data, true));
    };
    PersistentObject.prototype.delete = function (T, key) {
        ServerCache.Remove(T, key);
    };
    return PersistentObject;
}());
var cookieName = "face2face";
var appCacheVersion = 'v18';
var loginCookie = "ea";
var utils = new objectUtils();
var eaApi = 'https://api.eventact.com/u/v1/';
var openApi = 'https://api.eventact.com/o/v1/';
var roomType = {
    Hall: 0,
    Meeting: 1,
    ParticipantRoom: 2,
    PrivateRoom: 3,
    PosterRoom: 4,
    NetworkingRoom: 5,
    Group: 6
};
var cameraPermissions = {
    'pending': 'pending',
    'granted': 'granted',
    'denied': 'denied',
};
var tileType = {
    Custom: 0,
    Participants: 1,
    Speakers: 2,
    MyLectures: 3,
    MyProfile: 4,
    Schedule: 5,
    Posters: 6,
    Wall: 7,
    Leads: 8,
    ExhibitorList: 9,
    Exhibitor: 10,
    Sponsor: 11,
    Messages: 12,
    FAQ: 13,
    Program: 14,
    Polls: 15,
    Ticket: 16,
    Directions: 17,
    VenueMap: 18,
    SocialMedia: 19,
    Announcements: 20,
    Quizzes: 21,
    Help: 22,
    LiveView: 23,
    MyBooth: 24,
    MyRoom: 25,
    VOD: 26,
    EPosters: 27,
    SponsorList: 28,
    GeneralInfo: 29,
    NetworkingRoom: 30,
    ParticipatingCompanies: 31,
    Registration: 32,
    Timetable: 33,
    Committee: 34
};
var otErrors = {
    "OT_HARDWARE_UNAVAILABLE": "Please check that your camera is connected and not being used by another application and try again.",
    "OT_NOT_CONNECTED": "Publishing your video failed. You are not connected to the internet.",
    "OT_CREATE_PEER_CONNECTION_FAILED": "Publishing your video failed. This could be due to a restrictive firewall.",
    "OT_USER_MEDIA_ACCESS_DENIED": 'Can’t access voice or video devices on this machine. Please enable access to your camera or microphone.',
    "UnknownPublishError": 'Please check that your webcam is connected and not being used by another application and try again.',
    'NotReadableError': "Please check that your camera is connected and not being used by another application and try again.",
    '"OT_TIMEOUT"': "Internet connection is too slow."
};
var participantRoles = {
    Participant: 0x01,
    VIP: 0x04,
    Visitor: 0x08,
    Speaker: 0x10,
    Press: 0x20,
    Exhibitor: 0x40,
    Sponsor: 0x80,
    Staff: 0x100,
    Committee: 0x200,
    Organizer: 0x400,
    InvitedSpeaker: 0x800,
    PresentingAuthor: 0X1000,
    CustomRole1: 0X2000,
    CustomRole2: 0X4000,
    CustomRole3: 0X8000,
};
var langType = {
    All: 0,
    English: 0x0009,
    Hebrew: 0x000D,
    French: 0x000c,
    Spanish: 0x000a,
    Italian: 0x0010,
    Portuguese: 0x0016,
    Russian: 0x0019,
    Arabic: 0x0001,
    Chinese: 0x0004,
    Japanese: 0x0011,
    Greek: 0x0008,
    German: 0x0007,
    Albanian: 0x001C,
    Romanian: 0x0018,
    Slovenian: 0x0024
};
var baseRoutes = ['login', 'l', 'pp'];
var _appURL, _baseURL;
function getAppUrl(excludeApp) {
    if (_baseURL && excludeApp)
        return _baseURL;
    if (_appURL && !excludeApp)
        return _appURL;
    var url = window.location.protocol + "//" + window.location.host + "/";
    var f2fAppLocation = "app", appName = "", appNamePath = "";
    var pathNameList = window.location.pathname.split('/');
    if (pathNameList.length >= 2)
        appNamePath = pathNameList[1].toLowerCase();
    if (!!appNamePath && appNamePath != f2fAppLocation && baseRoutes.indexOf(appNamePath) == -1)
        appName = appNamePath + (!appNamePath.endsWith('/') ? '/' : '');
    if ((location.hostname === "localhost" || location.hostname === "127.0.0.1") == false) {
        url += appName + (!appName.endsWith('/') ? '/' : '');
    }
    _baseURL = url;
    _appURL = url + f2fAppLocation;
    if (_appURL.endsWith('/') == false)
        _appURL += "/";
    return excludeApp ? _baseURL : _appURL;
}
var isLocalhost = location.hostname === "localhost" || location.hostname === "127.0.0.1";
function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), results = regex.exec(location.search);
    return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
function breakpoint() {
    if (window['debug'])
        debugger;
}
var timeFormat = {
    Seconds: 0,
    Minutes: 1,
    Hours: 2
};
function groupBy(array, key) {
    return array.reduce(function (item, obj) {
        var property = obj[key] || '';
        item[property] = item[property] || [];
        item[property].push(obj);
        return item;
    }, {});
}
function getTime(timeToSet, format) {
    if (format === void 0) { format = timeFormat.Seconds; }
    if (!timeToSet)
        return 0;
    var multiply = 1;
    switch (format) {
        case timeFormat.Minutes:
            multiply = 60;
            break;
        case timeFormat.Hours:
            multiply = 3600;
            break;
    }
    return timeToSet * 1000 * multiply;
}
function ensureScript(url) {
    var exists = isScriptLoaded(url);
    if (!exists)
        addScript(url);
}
function removeStyle(url) {
    if (!url)
        return;
    var styles = document.getElementsByTagName('link');
    for (var i = styles.length; i--;) {
        if (styles[i].href == url)
            styles[i].parentNode.removeChild(styles[i]);
    }
    return false;
}
function ensureStyle(url) {
    var exists = isStyleLoaded(url);
    if (!exists)
        addCSSFile(url);
}
function isScriptLoaded(url) {
    if (!url)
        return;
    var scripts = document.getElementsByTagName('script');
    for (var i = scripts.length; i--;) {
        if (scripts[i].src == url)
            return true;
    }
    return false;
}
function isStyleLoaded(url) {
    if (!url)
        return;
    var styles = document.getElementsByTagName('link');
    for (var i = styles.length; i--;) {
        if (styles[i].href == url)
            return true;
    }
    return false;
}
function addScript(url) {
    var head = document.getElementsByTagName("head")[0];
    var s = document.createElement("script");
    s.type = "text/javascript";
    s.src = url;
    head.appendChild(s);
}
function addCSSFile(url) {
    var head = document.getElementsByTagName("head")[0];
    var s = document.createElement("style");
    s.type = "text/css";
    s.src = url;
    head.appendChild(s);
}
function spaceCamelCase(str) {
    return str
        .replace(/([a-z])([A-Z])/g, '$1 $2')
        .replace(/\b([A-Z]+)([A-Z])([a-z])/, '$1 $2$3')
        .replace(/^./, function (str) {
        return str.toUpperCase();
    });
}
;
var lastWord;
if (!String.prototype.endsWith) {
    String.prototype.endsWith = function (search, this_len) {
        if (this_len === undefined || this_len > this.length) {
            this_len = this.length;
        }
        return this.substring(this_len - search.length, this_len) === search;
    };
}
if (!String.prototype.toTitleCase) {
    String.prototype.toTitleCase = function () {
        var i, j, str, lowers, uppers;
        var firstchar = 0;
        var regex = new RegExp(/([^\W_]+[^\s-]*) */g);
        if (lastWord) {
            regex = new RegExp(/\s(\w+)$/);
            firstchar = 1;
        }
        str = this.replace(regex, function (txt) {
            return (lastWord ? txt.charAt(0) : '') + txt.charAt(firstchar).toUpperCase() + txt.substr(firstchar + 1).toLowerCase();
        });
        lowers = ['A', 'An', 'The', 'And', 'But', 'Or', 'For', 'Nor', 'As', 'At',
            'By', 'For', 'From', 'In', 'Into', 'Near', 'Of', 'On', 'Onto', 'To', 'With'];
        for (i = 0, j = lowers.length; i < j; i++)
            str = str.replace(new RegExp('\\s' + lowers[i] + '\\s', 'g'), function (txt) {
                return txt.toLowerCase();
            });
        uppers = ['Id', 'Tv'];
        for (i = 0, j = uppers.length; i < j; i++)
            str = str.replace(new RegExp('\\b' + uppers[i] + '\\b', 'g'), uppers[i].toUpperCase());
        return str;
    };
}
if (!String.prototype.toSentenceCase) {
    String.prototype.toSentenceCase = function () {
        var newString = this.toLowerCase().replace(/(^\s*\w|[\.\!\?]\s*\w)/g, function (c) { return c.toUpperCase(); });
        return newString;
    };
}
if (!String.prototype.includes) {
    String.prototype.includes = function (search, start) {
        if (typeof start !== 'number') {
            start = 0;
        }
        if (start + search.length > this.length) {
            return false;
        }
        else {
            return this.indexOf(search, start) !== -1;
        }
    };
}
if (!String.prototype.toCamelCase) {
    String.prototype.toCamelCase = function () {
        return spaceCamelCase(this);
    };
}
;
if (!String.prototype.replaceAll) {
    String.prototype.replaceAll = function (str, newStr) {
        if (Object.prototype.toString.call(str).toLowerCase() === '[object regexp]') {
            return this.replace(str, newStr);
        }
        return this.replace(new RegExp(str, 'g'), newStr);
    };
}
function bindListeners() {
    var lastWord = false;
    var shiftHold = false;
    var keyupStop = false;
    var tcLength;
    var scLength;
    $('.tc').on('keyup', function (e) {
        if (this.value.length == 0)
            return;
        if (e.which == 16)
            shiftHold = false;
        if (e.which == 8 || e.which == 37 || e.which == 39 || shiftHold)
            keyupStop = true;
        if (keyupStop && e.which == 32) {
            keyupStop = false;
            lastWord = true;
        }
        if (!keyupStop)
            this.value = this.value.toTitleCase();
    });
    $('.tc').on('keydown', function (e) {
        if ($(this).is("textarea") || e.which == 16 || e.which == 20) {
            shiftHold = true;
            return;
        }
    });
    $('.tc').on('paste', function (e) {
        keyupStop = true;
    });
    $('.tc').focusin(function () {
        keyupStop = false;
        shiftHold = false;
        if (this.value)
            lastWord = true;
        else
            lastWord = false;
    });
    $('.sc').on('paste', function (e) {
        keyupStop = true;
    });
    $('.sc').focusin(function () {
        if (this.value)
            keyupStop = true;
        else
            keyupStop = false;
    });
    $('.sc').on('keydown', function (e) {
        if ($(this).is("textarea") || e.which == 16 || e.which == 20)
            keyupStop = true;
    });
    $('.sc').keyup(function () {
        if (!keyupStop)
            this.value = this.value.toSentenceCase();
    });
}
function getPageSettings(projectID, tileID, type) {
    var tiles = new storage().GetNoExpiry(projectID);
    if (tiles && tiles.length) {
        if (tileID > -1)
            return tiles[tileID];
        var tile = tiles.find(function (t) {
            return t.Type == type;
        });
        if (tile)
            return tile;
    }
    return null;
}
function getRandomNumber(min, max) {
    return Math.floor(Math.random() * (max - min) + min);
}
function isRTL(text) {
    if (!text)
        return false;
    var rtlChars = [
        '\u0600-\u06FF',
        '\u0750-\u077F',
        '\uFB50-\uFDFF',
        '\uFE70-\uFEFF',
        '\u05D0-\u05FF'
    ].join("");
    var regex = new RegExp("[" + rtlChars + "]", "g");
    var found = regex.test(text);
    return found;
}
function isCacheVersionUpdated() {
    var v = new storage().GetNoExpiry('event-v');
    if (!v)
        return false;
    return v != appCacheVersion;
}
function setCacheVersion() {
    new storage().Save('event-v', appCacheVersion);
}
function ensureProject() {
    if (!f2fApp.projectID)
        return true;
    var sm = new storage();
    var projectID = sm.GetNoExpiry('event');
    if (!projectID || isNaN(projectID)) {
        sm.Save('event', f2fApp.projectID);
        return true;
    }
    else if (projectID != f2fApp.projectID) {
        sm.Save('event', f2fApp.projectID);
        return false;
    }
    return true;
}
var AppTile = (function () {
    function AppTile() {
        this.Title = '';
        this.Description = '';
        this.BackgroundImage = '';
        this.HeaderImage = '';
        this.FooterImage = '';
        this.BackgroundColor = '';
        this.Icon = '';
        this.TileURL = '';
        this.Changing = false;
        this.Order = 0;
        this.Coords = [];
        this.Size = 0;
        this.Type = 0;
        this.Type = 0;
        this.Settings = '';
        this.Role = 0;
        this.TypeName = '';
        this.BackgroundImageURL = '';
        this.HeaderImageURL = '';
        this.FooterImageURL = '';
    }
    return AppTile;
}());
var EAParticipantRole = (function (_super) {
    __extends(EAParticipantRole, _super);
    function EAParticipantRole(value) {
        if (value === void 0) { value = 0; }
        var _this = _super.call(this, participantRoles, true, value) || this;
        _this._value = value;
        return _this;
    }
    EAParticipantRole.prototype.isSingleFlag = function (role) {
        if (role === void 0) { role = this._value; }
        var isRoleName = isNaN(role);
        if (role == 0)
            return false;
        var keys = Object.keys(this.role);
        for (var i = 0; i < keys.length; i++) {
            if (isRoleName && keys[i].toLowerCase() == role)
                return true;
            else if ((this.role[keys[i]] == role))
                return true;
        }
        return false;
    };
    EAParticipantRole.prototype.getRole = function (role) {
        var isRoleName = isNaN(role);
        var r = 0;
        var keys = Object.keys(this.role);
        if (isRoleName)
            role = role.toLowerCase();
        for (var i = 0; i < keys.length; i++) {
            var val = this.role[keys[i]];
            if (isRoleName) {
                if (keys[i].toLowerCase() == role)
                    return val;
            }
            else if ((val & role) > 0)
                r += val;
        }
        return r;
    };
    EAParticipantRole.prototype.getRoleName = function (role) {
        if (!role)
            role == this._value;
        var roleText = [];
        role = role.toLowerCase();
        var keys = Object.keys(this._enum);
        for (var i = 0; i < keys.length; i++) {
            if (keys[i].toLowerCase() == role)
                return keys[i];
            if ((this._enum[keys[i]] & role) > 0)
                roleText.push(keys[i]);
        }
        return spaceCamelCase(roleText.join(", "));
    };
    EAParticipantRole.prototype.hasFlag = function (flag) {
        return _super.prototype.hasFlag.call(this, flag, this._value);
    };
    EAParticipantRole.roles = participantRoles;
    return EAParticipantRole;
}(EaEnum));
var EALanguage = (function (_super) {
    __extends(EALanguage, _super);
    function EALanguage(value) {
        if (value === void 0) { value = null; }
        var _this = _super.call(this, langType, false, value) || this;
        _this._type = langType;
        _this._lngType = value;
        return _this;
    }
    EALanguage.prototype.getLangKey = function (lang) {
        if (lang === void 0) { lang = this._value; }
        var val = this.toString(lang);
        if (!val)
            val = "All";
        return val;
    };
    EALanguage.prototype.convertToType = function (lang) {
        if (lang === void 0) { lang = this._value; }
        return EALanguage.convertToType(lang);
    };
    EALanguage.prototype.convertToString = function (lang) {
        if (lang === void 0) { lang = this._value; }
        var lng;
        if (isNaN(lang))
            lng = lang;
        else {
            switch (lang) {
                case langType.English:
                    lng = "en";
                    break;
                case langType.Hebrew:
                    lng = "he";
                    break;
                case langType.French:
                    lng = "fr";
                    break;
                case langType.Spanish:
                    lng = "es";
                    break;
                case langType.Italian:
                    lng = "it";
                    break;
                case langType.Portuguese:
                    lng = "pt";
                    break;
                case langType.Russian:
                    lng = "ru";
                    break;
                case langType.Arabic:
                    lng = "ar";
                    break;
                case langType.Chinese:
                    lng = "zh";
                    break;
                case langType.Japanese:
                    lng = "ja";
                    break;
                case langType.Greek:
                    lng = "gr";
                    break;
                case langType.German:
                    lng = "ge";
                    break;
                case langType.Albanian:
                    lng = "sq";
                    break;
                case langType.Romanian:
                    lng = "ro";
                    break;
                case langType.Slovenian:
                    lng = "sl";
                    break;
                default:
                    lng = "";
                    break;
            }
        }
        return lng;
    };
    EALanguage.prototype.isRTL = function () {
        return EALanguage.isRTL(this._value);
    };
    EALanguage.prototype.toString = function (lang) {
        if (lang === void 0) { lang = this.lang; }
        var keys = Object.keys(this._enum);
        var name = null;
        if (isNaN(lang)) {
            name = keys.find(function (x) {
                return x.toLowerCase() == lang.toLowerCase();
            });
        }
        if (name != null && name.length > 0)
            name = name[0];
        else {
            for (var i = 0; i < keys.length; i++) {
                if (this._type[keys[i]] == lang) {
                    name = keys[i];
                    break;
                }
            }
        }
        if (!name || name.length == 0)
            name = 'All';
        return name;
    };
    EALanguage.convertToType = function (lang) {
        var val;
        if (!isNaN(lang))
            val = lang;
        else {
            switch (lang.toLowerCase()) {
                case "he":
                    val = langType.Hebrew;
                    break;
                case "en":
                    val = langType.English;
                    break;
                case "fr":
                    val = langType.French;
                    break;
                case "es":
                    val = langType.Spanish;
                    break;
                case "it":
                    val = langType.Italian;
                    break;
                case "pt":
                    val = langType.Portuguese;
                    break;
                case "ru":
                    val = langType.Russian;
                    break;
                case "ar":
                    val = langType.Arabic;
                    break;
                case "zh":
                    val = langType.Chinese;
                    break;
                case "ja":
                    val = langType.Japanese;
                    break;
                case "gr":
                    val = langType.German;
                    break;
                case "sq":
                    val = langType.Albanian;
                    break;
                case "ro":
                    val = langType.Romanian;
                    break;
                case "sl":
                    val = langType.Slovenian;
                    break;
                default:
                    var keys = Object.keys(this.type);
                    var enumVal = keys.find(function (x) {
                        return x.toLowerCase() == lang.toLowerCase();
                    });
                    if (enumVal)
                        val = EALanguage.type[enumVal];
                    else
                        val = langType.Auto;
                    break;
            }
        }
        return val;
    };
    EALanguage.isRTL = function (lang) {
        var type = EALanguage.convertToType(lang);
        var res = false;
        switch (type) {
            case langType.Hebrew:
            case langType.Arabic:
                res = true;
                break;
            default:
                res = false;
                break;
        }
        return res;
    };
    EALanguage.toBindableDictionary = function () {
        return _super.toBindableDictionary.call(this, langType, 1);
    };
    EALanguage.type = langType;
    return EALanguage;
}(EaEnum));
var AppMode = {
    MenuAndHall: 0,
    MenuAndGrid: 1,
    Menu: 2,
    VirtualLobby: 3
};
var ParticipantLink = (function () {
    function ParticipantLink(linkTitle, linkURL, linkType) {
        if (linkTitle === void 0) { linkTitle = ''; }
        if (linkURL === void 0) { linkURL = ''; }
        if (linkType === void 0) { linkType = 0; }
        this.LinkURL = linkURL;
        this.LinkTitle = linkTitle;
        this.LinkType = linkType;
        this.FISecret = "";
        this.Lang = 0;
        this.FrameSupport = false;
        this.Icon = '';
    }
    ParticipantLink.prototype.setLinkDefalts = function () {
        if (!this.LinkURL)
            return;
        this.LinkURL = ParticipantLink.fixURL(this.LinkURL);
        if (this.LinkType == ParticipantLink.Type.Auto)
            this.LinkType = ParticipantLink.getLinkType(this.LinkURL);
        return this;
    };
    ParticipantLink.prototype.isFileType = function () {
        var res = false;
        switch (this.LinkType) {
            case ParticipantLink.Type.Image:
            case ParticipantLink.Type.PDF:
            case ParticipantLink.Type.MP4:
                res = true;
                break;
            default:
                res = false;
        }
        return res;
    };
    ParticipantLink.prototype.setData = function (link) {
        this.LinkTitle = link.LinkTitle;
        this.LinkURL = link.LinkURL;
        this.LinkType = link.LinkType;
        this.FISecret = link.FISecret;
        this.Lang = link.Lang;
        this.FrameSupport = link.FrameSupport;
        this.Icon = link.Icon;
        return this;
    };
    ParticipantLink.prototype.isValid = function () {
        if (this.LinkURL || this.FISecret)
            return true;
        return false;
    };
    Object.defineProperty(ParticipantLink.prototype, "linkTypeDesc", {
        get: function () {
            if (this.isFileType())
                return "file";
            return "link";
        },
        enumerable: false,
        configurable: true
    });
    ParticipantLink.getLinkType = function (link) {
        if (!link)
            return 0;
        link = link.toLowerCase();
        var type = ParticipantLink.Type;
        var keys = Object.keys(type);
        for (var i = 0; i < keys.length; i++) {
            if (link.indexOf(keys[i].toLowerCase()) > -1)
                return type[keys[i]];
        }
        if (ParticipantLink.hasImgExtension(link))
            return type.Image;
        if (ParticipantLink.hasVideoExtension(link))
            return type.MP4;
        return type.Website;
    };
    ParticipantLink.hasImgExtension = function (url) {
        var exts = [".jpg", ".jpeg", ".bmp", ".gif", ".png"];
        return (new RegExp('(' + exts.join('|')
            .replace(/\./g, '\\.') + ')$'))
            .test(url);
    };
    ParticipantLink.hasVideoExtension = function (url) {
        var exts = [".mp4", ".mkv", ".webm"];
        return (new RegExp('(' + exts.join('|')
            .replace(/\./g, '\\.') + ')$'))
            .test(url);
    };
    ParticipantLink.getLinkIcon = function (type) {
        var linkType = ParticipantLink.Type;
        var icon = '';
        switch (type) {
            case linkType.Facebook:
                icon = 'mdi-facebook';
                break;
            case linkType.Twitter:
                icon = 'mdi-twitter';
                break;
            case linkType.LinkedIn:
                icon = 'mdi-linkedin';
                break;
            case linkType.Youtu:
                icon = 'mdi-youtube';
                break;
            case linkType.PDF:
                icon = 'mdi-file';
                break;
            case linkType.MP4:
                icon = 'mdi-video';
                break;
            default:
                icon = 'mdi-web';
                break;
        }
        return icon;
    };
    ParticipantLink.getLinkText = function (type) {
        var str = '';
        var linkType = ParticipantLink.Type;
        switch (type) {
            case linkType.Facebook:
            case linkType.LinkedIn:
            case linkType.Twitter:
            case linkType.Website:
                str = tryGetValue(linkType, type);
                break;
        }
        return str;
    };
    ParticipantLink.ensurePrefix = function (linkURL) {
        var url = linkURL;
        if (!linkURL)
            url = "";
        else {
            url = url.replace(/\/$/, "");
            if (url.startsWith('https') == false && url.startsWith('http') == false)
                url = 'http://' + url;
        }
        return url;
    };
    ParticipantLink.isSocialLink = function (type) {
        var linkType = ParticipantLink.Type;
        var isSocial = false;
        switch (type) {
            case linkType.Facebook:
            case linkType.LinkedIn:
            case linkType.Twitter:
                isSocial = true;
                break;
        }
        return isSocial;
    };
    Object.defineProperty(ParticipantLink, "Type", {
        get: function () {
            return {
                Auto: 0,
                Facebook: 1,
                LinkedIn: 2,
                Twitter: 3,
                Youtu: 4,
                Image: 5,
                Website: 6,
                PDF: 7,
                MP4: 8,
            };
        },
        enumerable: false,
        configurable: true
    });
    ParticipantLink.fixURL = function (url) {
        if (!url)
            return;
        url = url.replaceAll(" ", "");
        if (url.indexOf(",") > -1)
            url = url.split(',')[0];
        return ParticipantLink.ensurePrefix(url);
    };
    ParticipantLink.serializeLinks = function (linkList) {
        var str = null;
        if (linkList.length) {
            for (var i = 0; i < linkList.length; i++)
                linkList[i].setLinkDefalts();
            str = JSON.stringify(linkList);
        }
        return str;
    };
    ParticipantLink.deSerializeLinks = function (linkList) {
        var arr = [];
        if (linkList) {
            var links = JSON.parse(linkList);
            for (var i = 0; i < links.length; i++)
                arr.push(new ParticipantLink().setData(links[i]));
        }
        return arr;
    };
    ParticipantLink.initLinks = function (linkList) {
        var arr = [];
        if (linkList && linkList.length) {
            for (var i = 0; i < linkList.length; i++) {
                if (!linkList[i].LinkURL)
                    continue;
                arr.push(new ParticipantLink().setData(linkList[i]));
            }
        }
        return arr;
    };
    return ParticipantLink;
}());
var EAParticipant = (function (_super) {
    __extends(EAParticipant, _super);
    function EAParticipant(pI) {
        if (pI === void 0) { pI = 0; }
        var _this = _super.call(this) || this;
        var _faceCookie = new EACookie(cookieName);
        _this._participantID = _faceCookie.GetCookieInt('p');
        _this._userID = _faceCookie.GetCookieInt('u');
        _this._iD = 0;
        _this._name = '';
        _this._lastName = '';
        _this._title = '';
        _this._companyName = '';
        _this._email = '';
        _this._logo = '';
        _this._loginTimes = 0;
        _this._exhibitorID = 0;
        _this._connections = {};
        _this.countryFlag = '';
        _this.countryName = '';
        _this.mainContact = false;
        _this._role = new EAParticipantRole(0);
        _this._baseURL = getAppUrl() + "Participants/";
        _this.Links = [];
        _this.SocialLinks = [];
        _this.SubscriberConnectionJson = null;
        _this.MessagesUnread = 0;
        _this.Lang = 0;
        _this.LoginTimes = 0;
        _this.Tags = [];
        return _this;
    }
    Object.defineProperty(EAParticipant.prototype, "email", {
        get: function () {
            return this._email;
        },
        set: function (email) {
            this._email = email;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAParticipant.prototype, "connections", {
        get: function () {
            return this._connections;
        },
        set: function (conn) {
            this._connections = conn;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAParticipant.prototype, "participantRole", {
        get: function () {
            return this._role.toNumber();
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAParticipant.prototype, "role", {
        get: function () {
            return this._role;
        },
        set: function (r) {
            if (utils.isPrimitive(r))
                this._role._value = r;
            else
                this._role = r;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAParticipant.prototype, "name", {
        get: function () {
            _super.prototype.loadIfNeeded.call(this, this);
            return this._name;
        },
        set: function (n) {
            _super.prototype.setIfNeeded.call(this, '_name', n);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAParticipant.prototype, "loginTimes", {
        get: function () {
            return this._loginTimes;
        },
        set: function (lt) {
            this._loginTimes = lt;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAParticipant.prototype, "lastName", {
        get: function () {
            _super.prototype.loadIfNeeded.call(this, this);
            return this._lastName;
        },
        set: function (ln) {
            _super.prototype.setIfNeeded.call(this, '_lastName', ln);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAParticipant.prototype, "participantID", {
        get: function () {
            return this._participantID;
        },
        set: function (id) {
            this._participantID = id;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAParticipant.prototype, "userID", {
        get: function () {
            return this._userID;
        },
        set: function (id) {
            this._userID = id;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAParticipant.prototype, "exhibitorID", {
        get: function () {
            return this._exhibitorID;
        },
        set: function (id) {
            this._exhibitorID = id;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAParticipant.prototype, "fullName", {
        get: function () {
            return this.name + ' ' + this.lastName;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAParticipant.prototype, "roleName", {
        get: function () {
            var l = this._role.removeFlag(EAParticipantRole.roles.Participant);
            return l.toString();
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAParticipant.prototype, "organization", {
        get: function () {
            return this._companyName;
        },
        set: function (org) {
            this._companyName = org;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAParticipant.prototype, "title", {
        get: function () {
            return this._title;
        },
        set: function (t) {
            this._title = t;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAParticipant.prototype, "logo", {
        get: function () {
            return this._logo;
        },
        set: function (logo) {
            return this._logo = logo;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAParticipant.prototype, "ID", {
        get: function () {
            return this._iD;
        },
        set: function (id) {
            this._iD = id;
        },
        enumerable: false,
        configurable: true
    });
    EAParticipant.prototype.isOrganizer = function () {
        return this.role.hasFlag(EAParticipantRole.roles.Organizer);
    };
    EAParticipant.prototype.isSponsor = function () {
        return this.role.hasFlag(EAParticipantRole.roles.Sponsor);
    };
    EAParticipant.prototype.isExhibitor = function () {
        return this.role.hasFlag(EAParticipantRole.roles.Exhibitor);
    };
    EAParticipant.prototype.isSpeaker = function () {
        return this.role.hasFlag(EAParticipantRole.roles.Speaker);
    };
    EAParticipant.prototype.getConnections = function (roomID, force) {
        var participant = this;
        var promise = new Promise(function (resolve, reject) {
            if (participant.connections.hasOwnProperty(roomID) && !force)
                return resolve(participant.connections[roomID]);
            var cmd = Server.GetNewLoadCommand(participant._baseURL + "/GetCurrentPublisherConnStr");
            cmd._params.AddWithValue("roomID", roomID);
            Server.ReadPrimitiveAsync(cmd)
                .then(function (res) {
                participant.connections[roomID] = res;
                resolve(res);
            })
                .catch(function (err) {
                console.log('getConnections error ' + err);
                reject(err);
            });
        });
        return promise;
    };
    EAParticipant.prototype.setParticipant = function (participant) {
        this.setLoaded();
        utils.LoadObject(this, participant);
    };
    EAParticipant.getFromCache = function (participantID) {
        return _super.getFromCache.call(this, EAParticipant, participantID);
    };
    EAParticipant.prototype.removeFromCache = function () {
        ServerCache.Remove(EAParticipant, this.participantID);
    };
    EAParticipant.prototype.getLoadCommand = function () {
        return this._baseURL + "/GetCurrentParticipant?inclConnStr=false";
    };
    Object.defineProperty(EAParticipant, "role", {
        get: function () {
            return EAParticipantRole.roles;
        },
        enumerable: false,
        configurable: true
    });
    return EAParticipant;
}(PersistentObject));
var EAStreamingContext = (function () {
    function EAStreamingContext() {
        this._mainRoomID = '';
        this._subRoomID = '';
        this._subRoomType = 0;
        this._isStreaming = false;
        this._isSharingScreen = false;
        this._isProccessing = false;
        this._canStream = false;
        this._isMain = false;
        this.isProcessing = false;
        this.isSubscribedToVideo = false;
        this.isSubscribedToScreen = false;
        this._streamingDest = 0;
    }
    Object.defineProperty(EAStreamingContext.prototype, "roomID", {
        get: function () {
            return this._mainRoomID;
        },
        set: function (val) {
            this._mainRoomID = val;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAStreamingContext.prototype, "subRoomID", {
        get: function () {
            return this._subRoomID;
        },
        set: function (val) {
            this._subRoomID = val;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAStreamingContext.prototype, "roomType", {
        get: function () {
            return this._subRoomType;
        },
        set: function (val) {
            this._subRoomType = val;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAStreamingContext.prototype, "isStreaming", {
        get: function () {
            return this._isStreaming;
        },
        set: function (val) {
            this._isStreaming = val;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAStreamingContext.prototype, "isSharingScreen", {
        get: function () {
            return this._isSharingScreen;
        },
        set: function (val) {
            this._isSharingScreen = val;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAStreamingContext.prototype, "isProccessing", {
        get: function () {
            return this._isProccessing;
        },
        set: function (val) {
            this._isProccessing = val;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAStreamingContext.prototype, "isStreamingOrSharingScreen", {
        get: function () {
            return this._isSharingScreen || this.isStreaming;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAStreamingContext.prototype, "canStream", {
        get: function () {
            return this._canStream;
        },
        set: function (val) {
            this._canStream = val;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAStreamingContext.prototype, "isMain", {
        get: function () {
            return this._isMain;
        },
        set: function (val) {
            this._isMain = val;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAStreamingContext.prototype, "streamingDestination", {
        get: function () {
            return this._streamingDest;
        },
        set: function (val) {
            this._streamingDest = val;
        },
        enumerable: false,
        configurable: true
    });
    EAStreamingContext.isStreamableRoom = function (mainRoomID, roomID, roomType, path) {
        return EAStreamingContext.isStreamableSubRoom(roomID, roomType);
    };
    EAStreamingContext.isStreamableSubRoom = function (roomID, type) {
        var res = false;
        switch (type) {
            case roomType.PosterRoom:
                res = !!roomID;
                break;
            case roomType.ParticipantRoom:
            case roomType.Group:
            case roomType.Meeting:
            case roomType.Hall:
                res = true;
                break;
            default:
                res = false;
        }
        return res;
    };
    EAStreamingContext.getRoomType = function (type) {
        var res = roomType.Hall;
        switch (type) {
            case tileType.Posters:
            case tileType.EPosters:
                res = roomType.PosterRoom;
                break;
            case tileType.MyBooth:
            case tileType.MyRoom:
                res = roomType.PrivateRoom;
                break;
            case tileType.Meeting:
            case tileType.NetworkingRoom:
                res = roomType.Meeting;
                break;
        }
        return res;
    };
    return EAStreamingContext;
}());
var EAStream = (function () {
    function EAStream() {
        this._streamType = 0;
        this._streamURL = '';
        this._sessions = [];
        this.Loop == false;
        this._error = '';
        this._isActive = false;
        this.Tracks = [];
    }
    Object.defineProperty(EAStream.prototype, "isActive", {
        get: function () {
            return this._isActive;
        },
        set: function (val) {
            this._isActive = val;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAStream.prototype, "StreamType", {
        get: function () {
            return this._streamType;
        },
        set: function (type) {
            this._streamType = type;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAStream.prototype, "StreamURL", {
        get: function () {
            return this._streamURL;
        },
        set: function (url) {
            this._streamURL = url;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAStream.prototype, "Sessions", {
        get: function () {
            return this._sessions;
        },
        set: function (sessions) {
            this._sessions = sessions;
        },
        enumerable: false,
        configurable: true
    });
    EAStream.prototype.setStream = function (stream) {
        this.StreamType = stream.StreamType;
        this.StreamURL = stream.StreamURL;
        this.Sessions = stream.Sessions;
        this.Loop = stream.Loop;
        if (stream.Tracks && stream.Tracks.length)
            for (var i = 0; i < stream.Tracks.length; i++) {
                this.Tracks.push(new EAStreamTrack().setTrack(stream.Tracks[i]));
            }
    };
    Object.defineProperty(EAStream, "streamType", {
        get: function () {
            return {
                None: 0,
                Eventact: 1,
                Webpage: 2,
                Frame: 3,
                Youtube: 4,
                Zoom: 5,
                HLS: 6,
                Mpeg: 7,
                Dash: 8,
                Vimeo: 9,
                Facebook: 10,
                EmbedCode: 11,
                NewWindow: 12,
                HLSVOD: 13,
                VOD: 14
            };
        },
        enumerable: false,
        configurable: true
    });
    EAStream.GetFromStream = function (stream) {
        var s = new EAStream();
        s.setStream(stream);
        return s;
    };
    return EAStream;
}());
var EAStreamTrack = (function () {
    function EAStreamTrack() {
        this.SourceURL = '';
        this.Lang = '';
        this.Label = '';
        this.Kind = 0;
    }
    EAStreamTrack.prototype.setTrack = function (track) {
        this.SourceURL = track.SourceURL;
        this.Lang = track.Lang;
        this.Label = track.Label;
        this.Kind = track.Kind;
        return this;
    };
    return EAStreamTrack;
}());
var EaHall = (function (_super) {
    __extends(EaHall, _super);
    function EaHall(hallID) {
        if (hallID === void 0) { hallID = 0; }
        var _this = _super.call(this, hallID) || this;
        _this._hallID = hallID;
        _this.ChatID = hallID;
        _this._title = '';
        _this._backgroundURL = '';
        _this._videoURL = '';
        _this._participantList = false;
        _this._participantPanel = false;
        _this._reactions = false;
        _this._participantsCount = false;
        _this._announcementView = false;
        _this._chat = new EaEnum(EaHall.chatMode, false, 0);
        _this.EnableChat = false;
        _this._mainStream = new EAStream();
        _this._altStream = new EAStream();
        _this._options = new EaEnum(0);
        _this._role = new EAParticipantRole(0);
        _this.Streams = [];
        _this.Tiles = [];
        _this.Error = "";
        _this.Type = 0;
        _this.CategoryName = '';
        _this._participantsView = new EAParticipantRole(0);
        _this._participantsCountView = new EAParticipantRole(0);
        _this.roomID = Room.setRoomID(hallID, roomType.Hall);
        return _this;
    }
    Object.defineProperty(EaHall.prototype, "Title", {
        get: function () {
            return this._title;
        },
        set: function (t) {
            this._title = t;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EaHall.prototype, "ParticipantList", {
        get: function () {
            return this._participantList;
        },
        set: function (pl) {
            this._participantList = pl;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EaHall.prototype, "ParticipantsCount", {
        get: function () {
            return this._participantsCount;
        },
        set: function (pc) {
            this._participantsCount = pc;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EaHall.prototype, "ParticipantsView", {
        get: function () {
            return this._participantsView;
        },
        set: function (pl) {
            this._participantsView = pl;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EaHall.prototype, "ParticipantsCountView", {
        get: function () {
            return this._participantsCountView;
        },
        set: function (pc) {
            this._participantsCountView = pc;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EaHall.prototype, "AnnouncementView", {
        get: function () {
            return this._announcementView;
        },
        set: function (av) {
            this._announcementView = av;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EaHall.prototype, "VideoURL", {
        get: function () {
            return this._videoURL;
        },
        set: function (vUrl) {
            this._videoURL = vUrl;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EaHall.prototype, "ParticipantPanel", {
        get: function () {
            return this._participantPanel;
        },
        set: function (pl) {
            this._participantPanel = pl;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EaHall.prototype, "Reactions", {
        get: function () {
            return this._reactions;
        },
        set: function (r) {
            this._reactions = r;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EaHall.prototype, "BackgroundURL", {
        get: function () {
            return this._backgroundURL;
        },
        set: function (bg) {
            this._backgroundURL = bg;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EaHall.prototype, "hallID", {
        get: function () {
            return this._hallID;
        },
        set: function (hallID) {
            this._hallID = hallID;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EaHall.prototype, "Role", {
        get: function () {
            return this._role;
        },
        set: function (r) {
            if (utils.isPrimitive(r))
                this._role._value = r;
            else
                this._role = r;
        },
        enumerable: false,
        configurable: true
    });
    EaHall.prototype.canBroadcast = function (role) {
        return this._role.hasFlag(role);
    };
    EaHall.prototype.canViewParticipants = function (role) {
        return this.ParticipantsView.hasFlag(role);
    };
    EaHall.prototype.canViewParticipantsCount = function (role) {
        return this.ParticipantsCountView.hasFlag(role);
    };
    EaHall.prototype.isLobby = function () {
        return this.Type == EaHall.hallType.Lobby;
    };
    Object.defineProperty(EaHall, "hallType", {
        get: function () {
            return {
                LectureHall: 1,
                GeneralHall: 2,
                ExhibitionBooth: 4,
                MeetingPlace: 8,
                Lobby: 16
            };
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EaHall, "chatMode", {
        get: function () {
            return { Off: 0, Auto: 1, Moderated: 2, Unmoderated: 3 };
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EaHall, "videoMode", {
        get: function () {
            return { Off: 0, Moderated: 1, Unmoderated: 2 };
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EaHall.prototype, "chat", {
        get: function () {
            return this._chat != EaHall.chatMode.Off;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EaHall.prototype, "MainStream", {
        get: function () {
            return this._mainStream;
        },
        set: function (ms) {
            if (ms == null)
                this._mainStream = null;
            else {
                if (this._mainStream == null)
                    this._mainStream = new this._mainStream();
                this._mainStream.setStream(ms);
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EaHall.prototype, "AltStream", {
        get: function () {
            return this._altStream;
        },
        set: function (ms) {
            this._altStream = ms;
        },
        enumerable: false,
        configurable: true
    });
    EaHall.getFromCache = function (hallID) {
        return _super.getFromCache.call(this, EaHall, hallID);
    };
    EaHall.getHall = function (hallID) {
        var loadCmd = getAppUrl() + 'LiveStream/GetHall';
        var cmd = Server.GetNewLoadCommand(loadCmd);
        cmd._params.AddWithValue("hallID", hallID);
        return _super.readOne.call(this, EaHall, cmd);
    };
    EaHall.prototype.setHall = function (hall) {
        if (hall != null) {
            new objectUtils().LoadObject(this, hall);
            this.roomID = Room.setRoomID(this.hallID, roomType.Hall);
        }
        this.setLoaded();
        return this;
    };
    EaHall.prototype.getLoadCommand = function () {
        return getAppUrl() + 'LiveStream/GetHall?hallID=' + this._hallID;
    };
    EaHall.prototype.save = function () {
        _super.prototype.save.call(this, EaHall, this.hallID, this);
    };
    return EaHall;
}(PersistentObject));
var AppSettings = (function (_super) {
    __extends(AppSettings, _super);
    function AppSettings(projectID) {
        if (projectID === void 0) { projectID = 0; }
        var _this = _super.call(this, projectID) || this;
        _this._faceCookie = new EACookie(cookieName);
        _this.TimeZoneName = '';
        _this.TimeZoneOffset = 0;
        _this._fullScreenMenu = false;
        _this._participantsGroups = false;
        _this._disableCompanyProfile = '';
        _this._startDate = null;
        _this._welcomeMessage = '';
        _this._hideLeadMethods = false;
        _this._defaultHall = 0;
        _this._homeScreen = _this._faceCookie.GetCookieInt('hs');
        _this._lang = '';
        return _this;
    }
    Object.defineProperty(AppSettings.prototype, "welcomeMessage", {
        get: function () {
            return this._welcomeMessage;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(AppSettings.prototype, "participantsGroups", {
        get: function () {
            return this._participantsGroups;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(AppSettings.prototype, "isStarted", {
        get: function () {
            var d = EADate.convertToTimeZone(this._startDate, this.TimeZoneOffset);
            return d < new Date();
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(AppSettings.prototype, "startDate", {
        get: function () {
            return this._startDate;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(AppSettings.prototype, "projStartDate", {
        get: function () {
            return EADate.convertToTimeZone(this._startDate, this.TimeZoneOffset);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(AppSettings.prototype, "homeScreen", {
        get: function () {
            return this._homeScreen;
        },
        set: function (val) {
            this._homeScreen = val;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(AppSettings.prototype, "fullScreenMenu", {
        get: function () {
            return this._homeScreen == AppMode.Menu;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(AppSettings.prototype, "hideLeadMethods", {
        get: function () {
            return this._hideLeadMethods;
        },
        set: function (val) {
            this._hideLeadMethods = val;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(AppSettings.prototype, "defaultHall", {
        get: function () {
            return this._defaultHall;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(AppSettings.prototype, "DisableCompanyProfile", {
        get: function () {
            return this._disableCompanyProfile;
        },
        set: function (val) {
            this._disableCompanyProfile = val;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(AppSettings.prototype, "lang", {
        get: function () {
            return this._lang;
        },
        set: function (value) {
            this._lang = value;
        },
        enumerable: false,
        configurable: true
    });
    AppSettings.prototype.getLoadCommand = function () {
        return getAppUrl() + "Home/GetAppSettings";
    };
    AppSettings.getSettings = function () {
        var cmd = Server.GetNewLoadCommand(getAppUrl() + "Home/GetAppSettings");
        return Server.ReadOne(AppSettings, cmd);
    };
    AppSettings.getFromCache = function (projectID) {
        return _super.getFromCache.call(this, AppSettings, projectID);
    };
    return AppSettings;
}(PersistentObject));
var Face2FaceApp = (function () {
    function Face2FaceApp(projectID) {
        if (projectID === void 0) { projectID = 0; }
        var _faceCookie = new EACookie(cookieName);
        this._projectID = _faceCookie.GetCookieInt('e') || projectID;
        this._lang = new EALanguage(_faceCookie.GetCookieInt('l', 0));
        this._companyID = _faceCookie.GetCookieInt('c');
        this._participantID = _faceCookie.GetCookieInt('p');
        this._accID = _faceCookie.GetCookieInt('a');
        this._key = _faceCookie.GetCookieString('t');
        this._participant = null;
        this._eahall = null;
        this.lang = this._lang.convertToString();
        this._logs = new UserLogs(this._participantID);
        this._settings = null;
        this._roomList = [];
    }
    Object.defineProperty(Face2FaceApp.prototype, "_faceCookie", {
        get: function () {
            return new EACookie(cookieName);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Face2FaceApp.prototype, "projectID", {
        get: function () {
            if (this._projectID == 0)
                this._projectID = this._faceCookie.GetCookieInt('e');
            return this._projectID;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Face2FaceApp.prototype, "companyID", {
        get: function () {
            if (this._company == 0)
                this._companyID = this._faceCookie.GetCookieInt('c');
            return this._companyID;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Face2FaceApp.prototype, "langType", {
        get: function () {
            return this._lang.convertToType();
        },
        set: function (lng) {
            var l = EALanguage.convertToType(lng);
            this.language = l;
            this.lang = this.language.convertToString();
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Face2FaceApp.prototype, "language", {
        get: function () {
            return this._lang;
        },
        set: function (lng) {
            return this._lang._value = lng;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Face2FaceApp.prototype, "participantID", {
        get: function () {
            return this._participantID;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Face2FaceApp.prototype, "userID", {
        get: function () {
            return this._accID;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Face2FaceApp.prototype, "key", {
        get: function () {
            return this._key;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Face2FaceApp.prototype, "mode", {
        get: function () {
            return this._mode;
        },
        set: function (nm) {
            this._mode._mode = (nm);
            this._faceCookie.SetCookieValue('m', nm);
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Face2FaceApp.prototype, "isMobile", {
        get: function () {
            return true;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Face2FaceApp.prototype, "lastHallID", {
        get: function () {
            return this._faceCookie.GetCookieInt('lh', 0);
        },
        set: function (lh) {
            this._faceCookie.SetCookieValue('lh', lh);
        },
        enumerable: false,
        configurable: true
    });
    Face2FaceApp.prototype.validateHall = function (hallID) {
        var res = true;
        if (this._eahall == null || this._eahall.isLoaded == false || this._eahall.ChatID != hallID) {
            this._eahall = EaHall.getHall(hallID);
            if (this._eahall == null || this._eahall.isLoaded == false) {
                this.lastHallID = 0;
                res = false;
            }
            else
                this.lastHallID = this._eahall.ChatID;
        }
        return res;
    };
    Face2FaceApp.prototype.reloadUserData = function () {
        this._lang = new EALanguage(this._faceCookie.GetCookieInt('l', 0));
        this.lang = this._lang.convertToString();
        this._companyID = this._faceCookie.GetCookieInt('c');
        this._participantID = this._faceCookie.GetCookieInt('p');
        this._accID = this._faceCookie.GetCookieInt('a');
        this._key = this._faceCookie.GetCookieString('t');
    };
    Object.defineProperty(Face2FaceApp.prototype, "currentHall", {
        get: function () {
            if (this._eahall == null || (this._eahall.isLoaded == false && this._eahall.ChatID > 0) || this._eahall.ChatID != this.lastHallID) {
                this._eahall = EaHall.getFromCache(this.lastHallID);
            }
            return this._eahall;
        },
        set: function (hall) {
            if (hall != null) {
                if (this._eahall == null)
                    this._eahall = new EaHall(hall.ChatID);
                this._eahall.setHall(hall);
                this.lastHallID = this._eahall.hallID;
            }
            else {
                this.clearHall();
            }
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Face2FaceApp.prototype, "currentParticipant", {
        get: function () {
            if (this._participant == null || !this._participant.isLoaded) {
                if (this.participantID == 0)
                    this.reloadUserData();
                this._participant = EAParticipant.getFromCache(this.participantID || -1);
            }
            return this._participant;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Face2FaceApp.prototype, "roomList", {
        get: function () {
            return this._roomList;
        },
        enumerable: false,
        configurable: true
    });
    Face2FaceApp.prototype.getRoom = function (roomID) {
        return this.roomList.find(function (room) {
            return room.RoomID == roomID;
        });
    };
    Face2FaceApp.prototype.addRoom = function (roomID) {
        var room = this.getRoom(roomID);
        if (!room) {
            room = new Room();
            room.RoomID = roomID;
            this._roomList.push(room);
        }
        return room;
    };
    Face2FaceApp.prototype.removeRoom = function (roomID) {
        var roomIdx = this.roomList.findIndex(function (room) {
            return room.RoomID == roomID;
        });
        if (roomIdx > -1)
            this._roomList.splice(roomID, 1);
    };
    Face2FaceApp.prototype.clearHall = function () {
        if (this._eahall != null) {
            ServerCache.Remove(EaHall, this.lastHallID);
            this.lastHallID = 0;
            this._eahall = null;
        }
    };
    Face2FaceApp.prototype.clearParticipant = function () {
        if (this._participant && this.participantID)
            ServerCache.Remove(EAParticipant, this.participantID);
        this._participant = null;
    };
    Object.defineProperty(Face2FaceApp.prototype, "userLogs", {
        get: function () {
            if (this._logs == null || this._logs.isLoaded == false) {
                this._logs = UserLogs.getFromCache(this.participantID);
            }
            return this._logs;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Face2FaceApp.prototype, "settings", {
        get: function () {
            if (this._settings == null) {
                this._settings = AppSettings.getSettings();
            }
            return this._settings;
        },
        enumerable: false,
        configurable: true
    });
    Face2FaceApp.prototype.updateLogs = function () {
        if (this.userLogs != null)
            this.userLogs.updateParticipantLog(this.participantID, this.currentParticipant.loginTimes, this.lastHallID);
    };
    Object.defineProperty(Face2FaceApp.prototype, "defaultHall", {
        get: function () {
            return this.settings.defaultHall;
        },
        enumerable: false,
        configurable: true
    });
    return Face2FaceApp;
}());
function OtStatus() {
    this.isProcessing = false;
    this.isPublishingVideo = false;
    this.isPublishingScreen = false;
    this.isSubscribedToVideo = false;
    this.isSubscribedToScreen = false;
    this.isMuted = false;
}
var otConnection = (function () {
    function otConnection() {
        this.PublisherConnection = null;
        this.ApiKey = '';
        this.Id = 0;
        this.Role = 0;
        this.SubscriberSessions = [];
    }
    return otConnection;
}());
var OtParticipant = (function () {
    function OtParticipant() {
        this.participantID = 0;
        this.connection = null;
        this.publisherConnection = null;
        this.subscriberConnections = [];
        this.Name = '';
        this.publisherScreen = null;
        this.publisherVideo = null;
        this.subscriberObject = [];
        this.subscriberScreen = [];
        this.newElementId = null;
        this.isConnected = false;
        this.status = new OtStatus();
        this.isSubscribedToVideo = false;
        this.isSubscribedToScreen = false;
        this.subscriberConnected = false;
        this.publisherConnected = false;
        this._streamingContext = new EAStreamingContext();
        this.forceConnection = false;
    }
    Object.defineProperty(OtParticipant.prototype, "isProcessing", {
        get: function () {
            return this._streamingContext.isProcessing;
        },
        set: function (val) {
            this._streamingContext.isProccessing = val;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(OtParticipant.prototype, "isPublishingVideo", {
        get: function () {
            return this._streamingContext.isStreaming;
        },
        set: function (val) {
            this._streamingContext.isStreaming = val;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(OtParticipant.prototype, "isPublishingScreen", {
        get: function () {
            return this.streamingContext.isSharingScreen;
        },
        set: function (val) {
            this.streamingContext.isSharingScreen = val;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(OtParticipant.prototype, "streamingContext", {
        get: function () {
            return this._streamingContext;
        },
        set: function (val) {
            this._streamingContext = val;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(OtParticipant.prototype, "isMain", {
        get: function () {
            return this._streamingContext.isMain;
        },
        set: function (val) {
            this._streamingContext.isMain = val;
        },
        enumerable: false,
        configurable: true
    });
    return OtParticipant;
}());
var mediaType = {
    video: 0,
    screen: 1
};
function OtAdapter() {
    this.session = null;
    this.sessionID = '';
    this.token = '';
    this.position = 0;
    this.OT = null;
    this.screens = [];
    this.participants = [];
    this.publisher = new OtParticipant();
    this.subscribers = [];
    this.publishers = [];
    this.error = '';
    this.publishersCount = 0;
    this.streams = 0;
    this.status = new OtStatus();
    this.videoInputDevices = [];
    this.audioInputDevices = [];
    this.videoSource = null;
    this.audioSource = null;
    this.screenCount = 0;
    this.SpeakerDetection = function (subscriber, startTalking, stopTalking) {
        var activity = null;
        if (!subscriber)
            return;
        subscriber.on('audioLevelUpdated', function (event) {
            var now = Date.now();
            if (event.audioLevel > 0.2) {
                if (!activity) {
                    activity = { timestamp: now, talking: false };
                }
                else if (activity.talking) {
                    activity.timestamp = now;
                }
                else if (now - activity.timestamp > 1000) {
                    activity.talking = true;
                    if (typeof (startTalking) === 'function') {
                        startTalking();
                    }
                }
            }
            else if (activity && now - activity.timestamp > 3000) {
                if (activity.talking) {
                    if (typeof (stopTalking) === 'function') {
                        stopTalking();
                    }
                }
                activity = null;
            }
        });
    };
    this.initAdapter = function (ot) {
        this.OT = ot;
    };
    this.UpdateVideoSource = function (deviceId) {
        var session = this;
        var promise = new Promise(function (resolve, reject) {
            if (!session.publisher || !session.publisher.publisherVideo || !session.publisher.publisherVideo.setVideoSource)
                reject("No publisher");
            session.publisher.publisherVideo.setVideoSource(deviceId).then(function (err) {
                resolve(err);
            });
        });
        return promise;
    };
    this.UpdateAudioSource = function (audioSource) {
        var session = this;
        var promise = new Promise(function (resolve, reject) {
            if (!session.publisher || !session.publisher.publisherVideo || !session.publisher.publisherVideo.setAudioSource)
                reject("No publisher");
            session.publisher.publisherVideo.setAudioSource(audioSource).then(function (err) {
                resolve(err);
            }).catch(function () {
                resolve('an error occurred');
            });
        });
        return promise;
    };
    this.getParticipant = function (participantID) {
        var found = this.participants.find(function (p) {
            return p.participantID == participantID;
        });
        return found;
    };
    this.GetDevices = function (onFinish) {
        var audioInputDevices;
        var videoInputDevices;
        var adapter = this;
        this.OT.getDevices(function (error, devices) {
            if (devices && devices.length) {
                audioInputDevices = devices.filter(function (element) {
                    return element.kind == "audioInput";
                });
                videoInputDevices = devices.filter(function (element) {
                    return element.kind == "videoInput";
                });
                adapter.videoInputDevices = videoInputDevices;
                adapter.audioInputDevices = audioInputDevices;
            }
            onFinish(error, videoInputDevices, audioInputDevices);
        });
    };
    this.InitSession = function (participant, apiKey, sessionId, onNewConnectionCallback, onConnectionDestroyedCallback, newStreamCallback, streamDestroyedCallback) {
        var adapter = this;
        var session = this.OT.initSession(apiKey, sessionId);
        adapter.session = session;
        session.on({
            connectionCreated: function (event) {
                if (onNewConnectionCallback) {
                    onNewConnectionCallback(event);
                }
            },
            sessionReconnected: function (event) {
                EALogger.logDebug('session reconnected', event);
            },
            streamCreated: function (event) {
                var stream = event.stream;
                if (stream.videoType == 'camera')
                    adapter.streams++;
                try {
                    var _a = JSON.parse(stream.connection.data), id = _a.id, role = _a.role;
                    var exisingPublisher = adapter.getPublisher(id);
                    if (exisingPublisher == null) {
                        exisingPublisher = new OtParticipant();
                        exisingPublisher.participantID = id;
                        exisingPublisher.isPublishingVideo = true;
                        adapter.publishers.push(exisingPublisher);
                    }
                    if (stream.videoType == 'camera')
                        exisingPublisher.isPublishingVideo = true;
                    else
                        exisingPublisher.isPublishingScreen = true;
                }
                catch (e) {
                    console.log('InitSession streamCreated error ' + e);
                }
                if (newStreamCallback)
                    newStreamCallback(stream, sessionId, participant);
            },
            streamDestroyed: function (event) {
                var stream = event.stream;
                if (stream.videoType == 'camera' && adapter.streams > 0)
                    adapter.streams--;
                try {
                    var _a = JSON.parse(stream.connection.data), id = _a.id, role = _a.role;
                    var publisherIdx = adapter.publishers.findIndex(function (x) {
                        return function (x) { return x.participantId == id; };
                    });
                    if (publisherIdx > -1) {
                        var p = adapter.publishers[i];
                        if (stream.videoType == 'camera')
                            p.isPublishingVideo = false;
                        else
                            exisingPublisher.isPublishingScreen = false;
                        if (p.isPublishingScreen == false && p.isPublishingVideo == false)
                            adapter.publishers.splice(publisherIdx, 1);
                    }
                }
                catch (e) {
                }
                if (streamDestroyedCallback)
                    streamDestroyedCallback(event);
            },
            muteForced: function (event) {
                adapter.status.isMuted = event.active;
            },
            sessionDisconnected: function (event) {
                if (event.reason == "networkDisconnected") {
                    EALogger.logDebug("Your network connection terminated.");
                }
                else
                    EALogger.logDebug("sessionDisconnected", event);
            },
            connectionDestroyed: function (event) {
                if (onConnectionDestroyedCallback)
                    onConnectionDestroyedCallback(event);
            }
        });
        return session;
    };
    this.InitPublisher = function (participant, elementId, publishOptions, type, callback, onStatusChange) {
        if (!elementId)
            elementId = document.createElement('div');
        var adapter = this;
        var publisher = this.OT.initPublisher(elementId, publishOptions, function (err) {
            if (err) {
                adapter.error = err;
                console.log(err);
                if (callback)
                    return callback(null, err);
            }
            if (type == mediaType.screen)
                participant.publisherScreen = publisher;
            else
                participant.publisherVideo = publisher;
            var p = adapter.getParticipant(participant.participantID);
            if (!p)
                adapter.participants.push(participant);
            var pb = adapter.getPublisher(participant.participantID);
            if (!pb)
                adapter.publishers.push(participant);
            adapter.publisher = participant;
            callback(publisher, err);
        });
        adapter.videoSource = publisher.getVideoSource();
        adapter.audioSource = publisher.getAudioSource();
        if (typeof onStatusChange == 'function')
            publisher.on({
                accessAllowed: function (event) {
                    onStatusChange(cameraPermissions.granted);
                },
                accessDenied: function (event) {
                    onStatusChange(cameraPermissions.denied);
                },
                accessDialogOpened: function (event) {
                    onStatusChange(cameraPermissions.pending);
                },
                accessDialogClosed: function (event) {
                },
                muteForced: function (event) {
                    onStatusChange(null, event.isActive);
                    adapter.status.isMuted = event.active;
                }
            });
    };
    this.Publish = function (publisher, type, publishCallback, publishStoppedCallback) {
        var adapter = this;
        var publishObj = type == mediaType.screen ? publisher.publisherScreen : publisher.publisherVideo;
        this.session.publish(publishObj, null, function (error) {
            publisher.isProcessing = false;
            if (error) {
                console.log("".concat(error.message, " | connection.SessionId:  ").concat(publisher.connection.PublisherConnection.SessionId, " | connection.id: ").concat(publisher.connection.Id, " "));
            }
            if (publishCallback)
                publishCallback(publisher, error);
        });
        publishObj.on('mediaStopped', function (event) {
            if (publishStoppedCallback)
                publishStoppedCallback();
            adapter.setPublishingTypes(mediaType.video);
            if (publishStoppedCallback)
                publishStoppedCallback(event);
        });
    };
    this.removePublisher = function (publisher) {
        var pIdx = this.publishers.findIndex(function (p) {
            return p.participantID = publisher.participantID;
        });
        if (pIdx > -1)
            this.publishers.splice(pIdx, 1);
    };
    this.UnsubscribeScreen = function (participantID, streamId, subOptions) {
        if (this.subscribers.length > 0 && streamId) {
            var idx = this.subscribers.findIndex(function (p) {
                return p.participantID == participantID;
            });
            if (idx == -1)
                return;
            var p = this.subscribers[idx];
            if (p && p.subscriberObject.length && p.newElementId) {
                var obj = p.subscriberObject.find(function (x) {
                    return (x.stream.videoType != 'screen');
                });
                moveSubscriberToNewElement(this.session, this.subscribers, obj ? obj.streamId : null, p.newElementId, (subOptions || this.subOptions));
            }
            var streamIdx = p.subscriberObject.findIndex(function (x) { return x && x.streamId == streamId; });
            if (streamIdx > -1) {
                p.subscriberObject.splice(streamIdx, 1);
                if (this.screenCount > 0)
                    this.screenCount--;
            }
            if (!p.subscriberObject.length && idx > -1)
                this.subscribers.splice(idx, 1);
        }
    };
    function getSubscriber(subscribers, participantID) {
        var subscriber = subscribers.find(function (p) {
            return p.participantID == participantID;
        });
        return subscriber;
    }
    function getSubsriberByStreamId(participants, mediaObj) {
        var subscriberIdx = participants.findIndex(function (x) {
            return x.subscriberObject.streamId == mediaObj.streamId || x.subscriberObject.Id == mediaObj.streamId;
        });
        return subscriberIdx;
    }
    function removeOTObject(otArray, otObject) {
        var idx = otArray.findIndex(function (x) { return x && (x.streamId == otObject.streamId || x.Id == otObject.streamId); });
        if (idx >= 0)
            otArray.splice(idx, 1);
    }
    function moveSubscriberToNewElement(session, subscribers, streamId, newVideoElementId, subOptions) {
        for (var i = 0; i < subscribers.length; i++) {
            if (!subscribers[i].subscriberObject.length)
                continue;
            var oldSubscriberIdx = subscribers[i].subscriberObject.findIndex(function (x) {
                return x && x.streamId == streamId;
            });
            if (oldSubscriberIdx == -1)
                continue;
            var oldSubscriber = subscribers[i].subscriberObject[oldSubscriberIdx];
            var stream = oldSubscriber.stream;
            if (stream) {
                var subscriber = session.subscribe(stream, newVideoElementId, subOptions, function (err) {
                    if (!err)
                        session.unsubscribe(oldSubscriber);
                });
                subscribers[i].subscriberObject[oldSubscriberIdx] = subscriber;
            }
        }
        return subscribers;
    }
    this.getDefaultPublisherOptions = function (participant) {
        return {
            insertMode: 'append',
            name: participant.Name,
            width: '100%',
            height: '100%',
            facingMode: 'user',
            showControls: true,
            audioBitrate: 92000,
            frameRate: 7,
            resolution: "320x240",
            style: {
                nameDisplayMode: "on"
            }
        };
    };
    this.getPublisher = function (participantID) {
        var p = this.publishers.find(function (x) {
            return x.participantID == participantID;
        });
        return p;
    };
    this.Unpublish = function (participantID, type) {
        var p = participantID && participantID != this.publisher.participantID ? this.getPublisher(participantID) : this.publisher;
        if (p) {
            var publisherObject = type == mediaType.video ? p.publisherVideo : p.publisherScreen;
            if (publisherObject) {
                this.session.unpublish(publisherObject);
                this.setPublishingTypes(type);
            }
        }
    };
    this.Connect = function (token, onConnetedCallback) {
        if (!this.session)
            return;
        if (this.IsConnected()) {
            if (onConnetedCallback)
                onConnetedCallback();
        }
        else
            this.session.connect(token, onConnetedCallback);
    };
    this.IsConnected = function () {
        return this.session && (this.session.currentState == "connected" || this.session.currentState == "connecting");
    };
    this.Disconnect = function () {
        if (!this.session)
            return;
        this.session.off();
        this.session.disconnect();
    };
    this.subOptions = {
        insertMode: 'append',
        width: '100%',
        height: '100%',
        showControls: true,
        style: {
            nameDisplayMode: "on"
        }
    };
    this.Subscribe = function (subscriber, stream, newVideoElementId, newScreenElementId, newVideoElementIdWhenScreen, limitFrameRate) {
        if (!stream)
            return;
        EALogger.logInfo('session subscribe ' + newVideoElementId + ' ' + stream);
        var adapter = this;
        var subOptions = this.subOptions, subscriberObj;
        var p = getSubscriber(this.subscribers, subscriber.participantID);
        if (!p) {
            p = subscriber;
            adapter.subscribers.push(p);
        }
        if (stream.videoType === 'screen') {
            subOptions.style.nameDisplayMode = "off";
            if (p.isSubscribedToVideo && newVideoElementIdWhenScreen) {
                var obj = subscriber.subscriberObject.find(function (x) {
                    return (x.stream.videoType != 'screen');
                });
                var vid = obj ? obj.streamId : '';
                adapter.subscribers = moveSubscriberToNewElement(adapter.session, adapter.subscribers, vid, newVideoElementIdWhenScreen, subOptions);
            }
            subOptions.style.nameDisplayMode = "on";
            subscriberObj = adapter.session.subscribe(stream, newScreenElementId, subOptions, function (err) { console.log(err); });
            p.isSubscribedToScreen = true;
            if (limitFrameRate)
                subscriberObj.restrictFrameRate(true);
            if (!p.Name)
                p.Name = stream.name;
            p.newElementId = newVideoElementId;
            if (subscriberObj != undefined)
                p.subscriberObject.push(subscriberObj);
            this.screenCount++;
        }
        else {
            subOptions.style.nameDisplayMode = "on";
            if (p.isSubscribedToScreen && newVideoElementIdWhenScreen) {
                subOptions.style.nameDisplayMode = "off";
                subscriberObj = adapter.session.subscribe(stream, newVideoElementIdWhenScreen, subOptions, function (err) {
                    if (err)
                        console.log(err);
                });
            }
            else {
                subOptions.style.nameDisplayMode = "on";
                subscriberObj = adapter.session.subscribe(stream, newVideoElementId, subOptions, function (err) {
                    if (err)
                        console.log(err);
                });
            }
            p.Name = stream.name;
            p.newElementId = newVideoElementId;
            if (subscriberObj != undefined)
                p.subscriberObject.push(subscriberObj);
            adapter.setSubscribingTypes(this.subscribers);
        }
        return subscriberObj;
    };
    this.Unsubscribe = function (participantID, streamId, type) {
        if (type == mediaType.screen)
            this.UnsubscribeScreen(participantID, streamId);
        else
            this.UnsubscribeStream(participantID, streamId, type);
    };
    this.UnsubscribeStream = function (participantID, streamId, type) {
        var idx = -1;
        idx = this.subscribers.findIndex(function (s) {
            return s.participantID == participantID;
        });
        if (idx > -1) {
            var s = this.subscribers[idx];
            if (s && s.subscriberObject.length) {
                var streamIdx = s.subscriberObject.findIndex(function (x) {
                    return x && x.streamId == streamId;
                });
                if (streamIdx > -1) {
                    unsubscribeStream(this.session, s.subscriberObject[streamIdx]);
                    s.subscriberObject.splice(streamIdx, 1);
                    if (s.subscriberObject.length == 0)
                        this.subscribers.splice(idx, 1);
                }
            }
        }
    };
    this.DisconnectIfNeeded = function () {
    };
    this.UnsubscribeAll = function () {
        var session = this.session;
        for (var i = 0; i < this.subscribers.length; i++) {
            var p = this.subscribers[i];
            p.isProcessing = true;
            this.subscribers[i].subscriberObject.forEach(function (stream, idx) {
                unsubscribeStream(session, stream);
            });
            p.isProcessing = false;
            p.isSubscribedToVideo = false;
        }
        this.screenCount = 0;
        this.subscribers.splice(0, this.subscribers.length - 1);
        this.Disconnect();
    };
    this.clearSubscribers = function () {
        this.screenCount = 0;
        this.subscribers = [];
    };
    this.UnpublishAll = function () {
        if (!this.session)
            return;
        while (this.publishers && this.publishers.length > 0) {
            var pub = this.publishers.splice(0, 1)[0];
            if (pub.publisherVideo)
                pub.publisherVideo.destroy();
            if (pub.publisherScreen)
                pub.publisherScreen.destroy();
        }
        this.Disconnect();
    };
    function unsubscribeStream(session, stream) {
        session.unsubscribe(stream);
    }
    this.setPublishingTypes = function (type) {
        for (var i = 0; i < this.publishers.length; i++) {
            var publisher = this.publishers[i];
            var publisherObject = null;
            if (type == mediaType.video) {
                publisherObject = publisher.publisherVideo;
                publisher.isPublishingVideo = false;
            }
            else {
                publisher.publisherScreen;
                publisher.isPublishingScreen = false;
            }
            if (!publisherObject || !publisherObject.stream)
                continue;
            switch (publisherObject.stream.videoType) {
                case "camera":
                    publisher.isPublishingVideo = true;
                    break;
                case "screen":
                    publisher.isPublishingScreen = true;
                    break;
            }
        }
    };
    this.setSubscribingTypes = function (list) {
        for (var i = 0; i < list.length; i++) {
            var subscriber = list[i];
            if (!subscriber.subscriberObject.length) {
                subscriber.isSubscribedToScreen = subscriber.isSubscribedToVideo = false;
                continue;
            }
            for (var j = 0; j < subscriber.subscriberObject.length; j++) {
                if (!subscriber.subscriberObject[j] || !subscriber.subscriberObject[j].stream)
                    continue;
                switch (subscriber.subscriberObject[j].stream.videoType) {
                    case "camera":
                        subscriber.isSubscribedToVideo = true;
                        break;
                    case "screen":
                        subscriber.isSubscribedToScreen = true;
                        break;
                }
            }
        }
    };
}
var clientRole = {
    MainPublisher: 1,
    GuestPublisher: 2,
    Subscriber: 3,
    Moderator: 4,
    Manager: 5,
    PendingMainPublisher: 6,
    PendingGuestPublisher: 7,
};
var RoomPermissions = (function () {
    function RoomPermissions() {
        this.CanStream = false;
        this.CanModerate = false;
        this.CanView = false;
        this.IsMain = false;
        this.IsOwner = false;
        this.CanRecord = false;
    }
    RoomPermissions.getPermissions = function (roomID) {
        var cmd = Server.GetNewLoadCommand(getAppUrl() + "Room/GetRoomPermissions");
        cmd._params.AddWithValue("roomId", roomID);
        return Server.ReadOne(RoomPermissions, cmd);
    };
    return RoomPermissions;
}());
var Room = (function () {
    function Room() {
        this._type = 0;
        this._roomID = '';
        this._roomName = '';
        this._ot = null;
        this._participants = [];
        this.publisher = new OtParticipant();
        this.subscriber = new OtParticipant();
        this.isLoaded = false;
        this.isOwner = false;
        this.isPublic = false;
        this.canStream = false;
        this.canView = false;
        this.forceConnection = false;
        this._isMain = false;
        this.session = new OtAdapter();
        this.subscribers = [];
        this.tryLoadOpenTok();
        this.SubscriberConnectionJson = '';
        this._permissions = null;
        this.streamsCount = 0;
    }
    Object.defineProperty(Room.prototype, "Type", {
        get: function () {
            return this._type;
        },
        set: function (type) {
            this._type = type;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Room.prototype, "RoomID", {
        get: function () {
            return this._roomID;
        },
        set: function (roomID) {
            this._roomID = roomID;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Room.prototype, "RoomName", {
        get: function () {
            return this._roomName;
        },
        set: function (roomName) {
            this._roomName = roomName;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Room.prototype, "Participants", {
        get: function () {
            return this._participants;
        },
        set: function (p) {
            this.Participants = p;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Room.prototype, "OT", {
        get: function () {
            return this._ot;
        },
        set: function (ot) {
            this._ot = ot;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Room.prototype, "publishers", {
        get: function () {
            if (this.session.IsConnected() && this.isLoaded)
                return this.session.publishers;
            return [];
        },
        set: function (p) {
            this.session.publishers = p;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Room.prototype, "allPublishers", {
        get: function () {
            var count = this.session.publishers.length;
            for (var i = 0; i < this.subscribers.length; i++) {
                if (this.subscribers[i].publishers)
                    count += this.subscribers[i].publishers.length;
            }
            return count;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(Room.prototype, "Permissions", {
        get: function () {
            if (this._permissions == null) {
                this._permissions = RoomPermissions.getPermissions(this.RoomID);
            }
            return this._permissions;
        },
        enumerable: false,
        configurable: true
    });
    Room.prototype.getPermissions = function () {
        this._permissions = RoomPermissions.getPermissions(this.RoomID);
    };
    Room.prototype.getSubscribers = function () {
        var s = [];
        if (this.isLoaded) {
            for (var i = 0; i < this.subscribers.length; i++) {
                s = s.concat(s, this.subscribers[i].subscribers);
            }
        }
        return s;
    };
    Object.defineProperty(Room.prototype, "screens", {
        get: function () {
            var s = 0;
            if (this.isLoaded) {
                for (var i = 0; i < this.subscribers.length; i++) {
                    s += this.subscribers[i].screenCount;
                }
            }
            return s;
        },
        enumerable: false,
        configurable: true
    });
    Room.prototype.isStreamableRoom = function () {
        return ((this.Type == roomType.Hall && Room.getRoomID(this.RoomID) > 0) ||
            EAStreamingContext.isStreamableSubRoom(this.RoomID, this.Type));
    };
    Room.prototype.tryLoadOpenTok = function () {
        if (!window.OT)
            this.isLoaded = false;
        else
            this.isLoaded = true;
        this.OT = window.OT;
        this.session.initAdapter(this.OT);
    };
    Room.prototype.initConnection = function (participant, connection) {
        if (!connection)
            throw "no connection";
        if (!this.OT || !this.isLoaded)
            throw "no OT";
        try {
            connection = JSON.parse(connection);
        }
        catch (e) {
            EALogger.logError("initConnection OT error", e);
        }
        var p = this.getParticipant(participant.participantID);
        if (!p) {
            p = new OtParticipant();
            p.connection = {};
            p.participantID = participant.participantID;
            p.Name = participant.fullName;
        }
        p.connection.ApiKey = connection.ApiKey;
        p.connection.Id = connection.Id;
        switch (connection.Role) {
            case clientRole.GuestPublisher:
            case clientRole.MainPublisher:
            case clientRole.PendingMainPublisher:
            case clientRole.PendingGuestPublisher:
                p.connection.PublisherConnection = connection.PublisherConnection;
                if (!this.publisher)
                    this.publisher = p;
                if (!this.publisher.participantID) {
                    this.publisher.participantID = participant.participantID;
                    this.publisher.connection = {};
                    this.publisher.Name = participant.fullName;
                }
                else
                    this.publisher.connection = p.connection;
                if (this.session.token && this.session.token != connection.PublisherConnection.Token)
                    this.publisher.forceConnection = true;
                this.session.token = connection.PublisherConnection.Token;
                if (this.session.sessionID && this.sessionID != connection.PublisherConnection.SessionId)
                    this.publisher.forceConnection = true;
                this.session.sessionID = connection.PublisherConnection.SessionId;
                this.session.role = connection.PublisherConnection.Role;
                this.session.position = connection.PublisherConnection.Position;
                break;
            case clientRole.Moderator:
            case clientRole.Subscriber:
                for (var i = 0; i < connection.SubscriberSessions.length; i++) {
                    var a = new OtAdapter();
                    a.initAdapter(this.OT);
                    a.sessionID = connection.SubscriberSessions[i].SessionId;
                    a.token = connection.SubscriberSessions[i].Token;
                    a.position = connection.SubscriberSessions[i].Position;
                    a.role = connection.SubscriberSessions[i].Role;
                    var existingIdx = this.subscribers.findIndex(function (x) {
                        return x.sessionID == a.sessionID;
                    });
                    if (existingIdx == -1)
                        this.subscribers.push(a);
                    else
                        this.subscribers[existingIdx] = a;
                }
                this.subscriber.subscriberConnections = connection.SubscriberSessions;
                p.connection.SubscriberSessions = connection.SubscriberSessions;
        }
        return p;
    };
    Room.prototype.initPublisher = function (elementId, publishOptions, type, callback, onPermissionUpdate) {
        var p = this.publisher;
        publishOptions = (publishOptions || this.session.getDefaultPublisherOptions(p));
        this.session.InitPublisher(p, elementId, publishOptions, type, function (publisherObj, error) {
            if (!error) {
                if (type == mediaType.screen)
                    p.publisherScreen = publisherObj;
                else
                    p.publisherVideo = publisherObj;
            }
            if (callback)
                callback(p, error);
        }, onPermissionUpdate);
    };
    Room.prototype.IsConnectedToSession = function (session) {
        var connected = false;
        if (session.sessionID == this.session.sessionID)
            connected = this.session.IsConnected() || session.IsConnected();
        return connected;
    };
    Room.prototype.IsPublisherConnected = function () {
        var sessionConnected = this.session.IsConnected();
        if (sessionConnected == false) {
            var session = this.session;
            var adapter = this.subscribers.find(function (adapter) {
                return adapter.sessionID == session.sessionID;
            });
            if (adapter)
                sessionConnected = adapter.IsConnected();
        }
        return sessionConnected;
    };
    Room.prototype.ConnectPublisher = function (participant, connection, onNewConnectionCallback, onConnectionDestroyedCallback, onConnetedCallback) {
        var room = this;
        var promise = new Promise(function (resolve, reject) {
            if (!room.isLoaded)
                return resolve(false);
            var p = room.initConnection(participant, connection);
            if (!room.publisher)
                return reject(null);
            var publisherConn = p.connection.PublisherConnection;
            room.session.InitSession(p, p.connection.ApiKey, publisherConn.SessionId, onNewConnectionCallback, onConnectionDestroyedCallback);
            if (room.session.OT && room.session.OT.hasOwnProperty('on'))
                room.session.OT.on("exception", function (event) {
                    console.log(event.message);
                    return resolve(false);
                });
            if ((room.publisher.publisherConnected || room.IsPublisherConnected())) {
                if (onConnetedCallback)
                    onConnetedCallback(null);
                return resolve(true);
            }
            else {
                try {
                    room.session.Connect(publisherConn.Token, function (error) {
                        room.publisher.publisherConnected = false;
                        room.publisher.isProcessing = false;
                        if (error) {
                            if (onConnetedCallback)
                                onConnetedCallback(error);
                            resolve(false);
                        }
                        else
                            resolve(true);
                    });
                }
                catch (e) {
                    if (onConnetedCallback)
                        onConnetedCallback(error);
                    resolve(false);
                }
            }
        });
        return promise;
    };
    Room.prototype.ConnectSubscriber = function (participant, connection, onNewConnectionCallback, onConnectionDestroyedCallback, onConnetedCallback, newStreamCallback, streamDestroyedCallback) {
        var room = this;
        var promise = new Promise(function (resolve, reject) {
            if (!room.isLoaded)
                return resolve(false);
            var p = room.initConnection(participant, connection);
            if (!p)
                return reject(null);
            room.subscriber = p;
            var connected = 0;
            room.subscriber.isProcessing = true;
            for (var i = 0; i < room.subscribers.length; i++) {
                var otSession = room.subscribers[i];
                connected++;
                otSession.InitSession(p, p.connection.ApiKey, otSession.sessionID, onNewConnectionCallback, onConnectionDestroyedCallback, function (stream, sessionId, participant) {
                    if (stream && stream.videoType == 'camera')
                        room.streamsCount++;
                    if (newStreamCallback)
                        newStreamCallback(stream, sessionId, participant);
                }, function (event) {
                    var stream = event.stream;
                    if (stream.videoType == 'camera' && room.streamsCount > 0)
                        room.streamsCount--;
                    if (streamDestroyedCallback)
                        streamDestroyedCallback(event);
                });
                room.IsPublisherConnected();
                if (i == room.subscribers.length - 1 && (otSession.IsConnected() || room.IsConnectedToSession(OtAdapter))) {
                    if (onConnetedCallback)
                        onConnetedCallback(null);
                    return resolve(true);
                }
                else {
                    var callback = null;
                    if (i == room.subscribers.length - 1)
                        callback = function (error) {
                            if (error)
                                return resolve(false);
                            if (onConnetedCallback)
                                onConnetedCallback(error);
                            return resolve(error ? false : true);
                        };
                    otSession.Connect(otSession.token, callback);
                }
            }
            if (connected == 0)
                return reject(null);
            p.isProcessing = false;
            p.subscriberConnected = true;
            room.subscriber = p;
        });
        return promise;
    };
    Room.prototype.PublishVideo = function (elementId, publishOptions, onMediaStoppedCallback, onPublishedCallBack) {
        var room = this;
        room.publisher.isProcessing = true;
        try {
            this.initPublisher(elementId, publishOptions, mediaType.video, function (publisher, err) {
                if (err)
                    onPublishedCallBack(publisher, err);
                else {
                    room.publisher = publisher;
                    if (room.publisher.isPublishingVideo == false) {
                        room.session.Publish(publisher, mediaType.video, function (publisher, error) {
                            room.publisher.isProcessing = false;
                            if (error)
                                EALogger.logError(error);
                            else {
                                room.publisher.isPublishingVideo = true;
                                room.streamsCount++;
                            }
                            if (onPublishedCallBack)
                                onPublishedCallBack(room.publisher, error);
                        }, onMediaStoppedCallback);
                    }
                    else {
                        if (onPublishedCallBack)
                            onPublishedCallBack(room.publisher, null);
                    }
                }
            }, function (permission, isMuted) {
                if (permission == null) {
                    room.publisher.status.isMuted = isMuted;
                    room.session.status.isMuted = isMuted;
                }
            });
        }
        catch (e) {
            console.error(e);
            if (onPublishedCallBack)
                onPublishedCallBack(room.publisher, e);
        }
    };
    Room.prototype.PublishScreen = function (participantId, elementId, publishOptions, onMediaStoppedCallback, onPublishedCallBack) {
        this.publisher.isProcessing = true;
        var room = this;
        this.initPublisher(elementId, publishOptions, mediaType.screen, function (publisher, error) {
            room.publisher.isPublishingScreen = false;
            if (error)
                onPublishedCallBack(publisher, error);
            else {
                room.publisher = publisher;
                room.session.Publish(publisher, mediaType.screen, function (publisher, error) {
                    room.publisher.isProcessing = false;
                    if (error)
                        EALogger.logError("publish error", error);
                    else {
                        room.publisher.isPublishingScreen = true;
                        room.streamsCount++;
                    }
                    if (onPublishedCallBack)
                        onPublishedCallBack(room.publisher, error);
                }, onMediaStoppedCallback);
            }
        }, function (permission, isMuted) {
            if (permission == null) {
                room.publisher.status.isMuted = isMuted;
                room.session.status.isMuted = isMuted;
            }
        });
    };
    Room.prototype.Subscribe = function (participant, stream, sessionID, newVideoElementId, newScreenElementId, newVideoElementIdWhenScreen, limitFrameRate) {
        var subscriberObj;
        for (var i = 0; i < this.subscribers.length; i++) {
            if (sessionID == this.subscribers[i].sessionID) {
                var _a = JSON.parse(stream.connection.data), id = _a.id, role = _a.role;
                var exising = this.subscribers[i].subscribers.find(function (x) {
                    return x.participantID == id;
                });
                if (exising == null) {
                    exising = new OtParticipant();
                    exising.participantID = id;
                    this.subscribers[i].participants.push(exising);
                    this.subscribers[i].subscribers.push(exising);
                    this.subscribers[i].publishers.push(exising);
                }
                subscriberObj = this.subscribers[i].Subscribe(exising, stream, newVideoElementId, newScreenElementId, newVideoElementIdWhenScreen, limitFrameRate);
                break;
            }
        }
        return subscriberObj;
    };
    Room.prototype.UnpublishVideo = function () {
        this.session.Unpublish(this.publisher.participantID, mediaType.video);
        this.publisher.isPublishingVideo = false;
        if (this.streamscount > 0)
            this.streamsCount--;
    };
    Room.prototype.Unsubscribe = function (participantID, type) {
        for (var i = 0; i < this.subscribers.length; i++) {
            this.subscribers[i].Unsubscribe(participantID, type);
        }
    };
    Room.prototype.UnsubscribeAll = function () {
        for (var i = 0; i < this.subscribers.length; i++) {
            this.subscribers[i].UnsubscribeAll();
        }
    };
    Room.prototype.GetAdapter = function (sessionID) {
        var adapter = null;
        for (var i = 0; i < this.subscribers.length; i++)
            if (sessionID == this.subscribers[i].sessionID) {
                adapter = this.subscribers[i];
                break;
            }
        return adapter;
    };
    Room.prototype.UnpublishScreen = function () {
        this.session.Unpublish(this.publisher.participantID, mediaType.screen);
        this.publisher.isPublishingScreen = false;
        if (this.streamscount > 0)
            this.streamsCount--;
    };
    Room.prototype.UnPublish = function (participantID) {
        this.UnpublishVideo();
        this.UnpublishScreen();
        if (participantID) {
            var idx = this.publishers.findIndex(function (x) {
                return x.participantID == participantID;
            });
            if (idx > -1)
                this.publishers.splice(idx, 1);
        }
    };
    Room.prototype.UnpublishAll = function () {
        this.session.UnpublishAll();
    };
    Room.prototype.Disconnect = function () {
        this.session.Disconnect();
    };
    Room.prototype.getParticipant = function (participantID) {
        var found = this._participants.find(function (p) {
            return p.participantID == participantID;
        });
        return found;
    };
    Room.setRoomID = function (id, type) {
        var numId = isNaN(id) ? this.getRoomID(id) : id;
        return type + '_' + numId;
    };
    Room.getRoomID = function (roomid) {
        var id = 0;
        if (roomid) {
            id = roomid.split('_');
            if (id.length > 1)
                id = id[1];
            else
                id = roomid;
        }
        return id;
    };
    return Room;
}());
var ParticipantLog = (function () {
    function ParticipantLog() {
        this.participantID = 0;
        this.hallID = 0;
        this.loginTimeIndex = 0;
        this.outTime = 0;
        this.inTime = 0;
    }
    return ParticipantLog;
}());
var UserLogs = (function (_super) {
    __extends(UserLogs, _super);
    function UserLogs(participantID) {
        var _this = _super.call(this, participantID) || this;
        _this.participantID = participantID;
        _this.loginLogs = [];
        return _this;
    }
    UserLogs.prototype.updateParticipantLog = function (participantID, loginIndex, hallID) {
        this.participantID = participantID;
        if (this.loginLogs.length == 0)
            this.loginLogs.push(this.createNewLog(participantID, loginIndex, hallID));
        else {
            var time = new Date().getTime();
            var idx = this.loginLogs.length - 1;
            this.loginLogs[idx].outTime = time;
            this.loginLogs[idx].outTime = time;
            if (this.loginLogs[idx].hallID != hallID || this.loginLogs[idx].loginTimeIndex != loginIndex)
                this.loginLogs.push(this.createNewLog(participantID, loginIndex, hallID));
        }
        this.save();
    };
    UserLogs.prototype.createNewLog = function (participantID, loginIndex, hallID) {
        var date = new Date();
        var log = new ParticipantLog();
        log.participantID = participantID;
        log.loginTimeIndex = loginIndex;
        log.hallID = hallID;
        log.inTime = date.getTime();
        log.outTime = date.getTime();
        return log;
    };
    UserLogs.prototype.save = function () {
        _super.prototype.save.call(this, UserLogs, this.participantID, this);
    };
    UserLogs.prototype.clearLogs = function () {
        this.loginLogs = [];
        this.save();
    };
    UserLogs.getFromCache = function (participantID) {
        return _super.getFromCache.call(this, UserLogs, participantID);
    };
    return UserLogs;
}(PersistentObject));
var EAExhibitor = (function (_super) {
    __extends(EAExhibitor, _super);
    function EAExhibitor(exhibitorID) {
        if (exhibitorID === void 0) { exhibitorID = 0; }
        var _this = _super.call(this, exhibitorID) || this;
        _this.exhibitorID = exhibitorID;
        _this._name = "";
        _this._logo = "";
        _this._booth = '';
        _this._showBizCard = false;
        _this._showConnect = false;
        _this._exType = new EAParticipantRole(0);
        _this._members = [];
        _this._membersLoaded = false;
        _this.membersIdList = [];
        _this.exhibitorTags = [];
        _this._mainContact = 0;
        _this.mainExhibitorID = 0;
        return _this;
    }
    Object.defineProperty(EAExhibitor.prototype, "mainContact", {
        get: function () {
            return this._mainContact;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAExhibitor.prototype, "name", {
        get: function () {
            return this._name;
        },
        set: function (n) {
            this._name = n;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAExhibitor.prototype, "type", {
        get: function () {
            return this._exType.toNumber();
        },
        set: function (t) {
            return this._exType = t;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAExhibitor.prototype, "exhibitor", {
        get: function () {
            return this.type == EAParticipantRole.roles.Exhibitor;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAExhibitor.prototype, "sponsor", {
        get: function () {
            return this.type == EAParticipantRole.roles.Sponsor;
        },
        enumerable: false,
        configurable: true
    });
    Object.defineProperty(EAExhibitor.prototype, "members", {
        get: function () {
            if (!this._membersLoaded) {
                this._members = this.getMembers();
                this._membersLoaded = true;
            }
            return this._members;
        },
        enumerable: false,
        configurable: true
    });
    EAExhibitor.prototype.setExhibitor = function (exModel) {
        this.setLoaded();
        this.exhibitorID = exModel.ExhibitorID;
        this._exType._value = exModel.Type;
        this._mainContact = exModel.MainContact;
        this.name = exModel.Name;
    };
    EAExhibitor.prototype.getMembers = function () {
        var cmd = Server.GetNewLoadCommand(getAppUrl() + 'exhibitors/GetExhibitorStaff');
        cmd._params.AddWithValue("exhibitorID", this.exhibitorID);
        return Server.ReadList(null, cmd);
    };
    EAExhibitor.prototype.getNextMember = function (position) {
        var ex = this.nextMember(position);
        if (ex && ex.EventParticipantID)
            this.saveLastID(ex.EventParticipantID);
        return ex;
    };
    EAExhibitor.prototype.nextMember = function (position) {
        if (!this.members.length)
            return null;
        if (this.members.length == 1) {
            if (position > 1)
                return null;
            return this.members[0];
        }
        var model = null;
        var membersIdList = this.membersIdList;
        this.members.forEach(function (em, idx) {
            if (membersIdList.indexOf(em.EventParticipantID) == -1) {
                model = em;
                return;
            }
        });
        if (model == null) {
            this.membersIdList = membersIdList = [];
            model = this.members[0];
        }
        return model;
    };
    EAExhibitor.prototype.saveLastID = function (id) {
        if (!this.exhibitorID)
            return;
        var sponsorIdx;
        while ((sponsorIdx = this.membersIdList.indexOf(id)) !== -1)
            this.membersIdList.splice(sponsorIdx, 1);
        this.membersIdList.push(id);
    };
    EAExhibitor.prototype.save = function () {
        return _super.prototype.save.call(this, EAExhibitor, this.exhibitorID, this);
    };
    EAExhibitor.prototype.isMain = function (pId) {
        return this._mainContact > 0 && this._mainContact == pId;
    };
    EAExhibitor.getFromCache = function (exhibitorID) {
        var s = _super.getFromCache.call(this, EAExhibitor, exhibitorID);
        s.exhibitorID = exhibitorID;
        return s;
    };
    return EAExhibitor;
}(PersistentObject));
var ProfileTag = (function () {
    function ProfileTag(profileTagID, lang, tagTitle, parentTagID) {
        if (profileTagID === void 0) { profileTagID = 0; }
        if (lang === void 0) { lang = 0; }
        if (tagTitle === void 0) { tagTitle = ''; }
        if (parentTagID === void 0) { parentTagID = 0; }
        this.profileTagID = profileTagID;
        this.lang = lang;
        this.tagTitle = tagTitle;
        this.tagParent = parentTagID;
        this.tags = [];
    }
    ProfileTag.getListFromCache = function (projectID, lang) {
        var key = projectID + "_" + lang;
        return ServerCache.Get(ProfileTag, key) || [];
    };
    ProfileTag.saveList = function (projectID, lang, list) {
        var key = projectID + "_" + lang;
        return ServerCache.Save(ProfileTag, key, list);
    };
    ProfileTag.getExhibitorListFromCache = function (projectID, lang) {
        var key = "exhibitor_" + projectID + "_" + lang;
        return ServerCache.Get(ProfileTag, key) || [];
    };
    ProfileTag.saveExhibitorList = function (projectID, lang, list) {
        var key = "exhibitor_" + projectID + "_" + lang;
        return ServerCache.Save(ProfileTag, key, list);
    };
    ProfileTag.getParticipantListFromCache = function (projectID, lang) {
        var key = "participants_" + projectID + "_" + lang;
        return ServerCache.Get(ProfileTag, key) || [];
    };
    ProfileTag.saveParticipantList = function (projectID, lang, list) {
        var key = "participants_" + projectID + "_" + lang;
        return ServerCache.Save(ProfileTag, key, list);
    };
    return ProfileTag;
}());
var ProfileTagList = (function (_super) {
    __extends(ProfileTagList, _super);
    function ProfileTagList(projectID, lang, tags) {
        if (tags === void 0) { tags = []; }
        var _this = _super.call(this, 0) || this;
        _this.projectID = projectID;
        _this.lang = lang;
        _this.Tags = tags;
        return _this;
    }
    ProfileTagList.getListFromCache = function (projectID, lang) {
        var key = projectID + "_" + lang;
        return ServerCache.Get(ProfileTagList, key) || [];
    };
    ProfileTagList.prototype.save = function () {
        var key = this.projectID + "_" + this.lang;
        _super.prototype.save.call(this, this, key, this.Tags);
    };
    return ProfileTagList;
}(PersistentObject));
var presentationTypes = {
    Undefined: 0,
    Unknown: 1,
    Break: 2,
    Oral: 3,
    Poster: 4,
    Workshop: 5,
    Round_Table: 6,
    Debate: 7,
    Does_not_matter: 8,
    Both_are_suitable: 9,
    Film: 10,
    Panel: 11,
    Lecture: 12,
    Research: 13,
    No_Preference: 14,
    Plenary: 15,
    Invited_Lecture: 16,
    Short_Talk: 17,
    Individual_Paper: 18,
    Symposium: 19,
    Session: 20,
    Poster_and_short_talk: 21,
    Oral_or_Poster: 22,
    EPoster: 23,
    Rejected: 24,
    Video_Presentation: 25,
    Express_Communication: 26,
    Open_Forum: 27,
    Teaching_Course: 28,
    Social: 29,
    Full_Session: 30,
    Oral_poster: 31,
    Other: 32,
    FlashPosterTalk: 33,
    Demonstration: 34,
    ParallelLectures: 35,
    General: 36,
    OverlappingLectures: 37,
    SingleLecture: 38,
    Lunch: 39,
    Reject: 1000,
    ReviseandResubmit: 1001,
    Default: 1002
};
var lectureDisplay = (function () {
    function lectureDisplay() {
        this.showTitle = false;
        this.time = '';
        this.titleOnTop = true;
    }
    return lectureDisplay;
}());
var sessionLecture = (function () {
    function sessionLecture(session, lecture, day) {
        this.sessionID = session.sessionID;
        this.lecture = null;
        this.displayType = 0;
        this.showDetails = false;
        this.displayTypeCss = null;
        this.wasInit = false;
        this.day = null;
        this.display = null;
        this.lectureID = lecture.lectureID;
        this.title = '';
        this.starts = '';
        this.ends = '';
        this.notes = '';
        this.abstractCode = '';
        this.code = '';
        this.authors = [];
        this.institutes = [];
        this.PresentingAuthors = [];
        this.lectureLang = '';
        this.hall = '';
        this.serial = 0;
        this.serial = 0;
        this.sponsors = session.sponsors;
        this.topicID = 0;
        if (session && lecture)
            this.setLecture(session, lecture, day);
    }
    sessionLecture.prototype.setLecture = function (session, lecture, day) {
        this.agendaID = session.agendaID;
        this.sessionID = session.sessionID;
        this.topicID = session.topicID;
        this.hallsDescription = session.hallsDescription;
        this.title = session.title;
        this.displayType = session.displayTypes;
        this.subTitle = session.subTitle;
        this.lecture = lecture;
        this.lectureID = lecture.lectureID;
        this.day = day;
    };
    sessionLecture.prototype.getSessionClass = function () {
        if (this.displayTypeCss)
            return this.displayTypeCss;
        this.displayTypeCss = this.getDisplayTypeCss();
        return this.displayTypeCss;
    };
    sessionLecture.prototype.showLecutureTitle = function () {
        switch (this.displayType) {
            case presentationTypes.SingleLecture:
            case presentationTypes.Workshop:
            case presentationTypes.Break:
            case presentationTypes.Lunch:
            case presentationTypes.Panel:
            case presentationTypes.Social:
                return false;
            default:
                return true;
        }
    };
    sessionLecture.prototype.getDisplayTypeCss = function () {
        switch (this.displayType) {
            case presentationTypes.SingleLecture:
            case presentationTypes.Lecture:
            case presentationTypes.Plenary:
            case presentationTypes.Invited_Lecture:
                return 'activity-lecture';
            case presentationTypes.Panel:
                return 'activity-panel';
            case presentationTypes.Workshop:
                return 'activity-workshop';
            case presentationTypes.Break:
                return 'activity-break';
            case presentationTypes.Lunch:
                return 'activity-lunch';
            case presentationTypes.Social:
                return 'activity-social';
            case presentationTypes.Poster:
                return 'activity-poster';
            default:
                return "";
        }
    };
    sessionLecture.prototype.init = function (day) {
        if (this.wasInit)
            return;
        this.display = new lectureDisplay();
        this.display.showTitle = this.showLecutureTitle();
        this.display.time = this.lecture.startTime + " - " + this.lecture.endTime;
        if (this.lecture.institutes.length > 0) {
            var nextIdx = 0;
            for (var i = 0; i < this.lecture.institutes.length; i++) {
                if (this.lecture.institutes.index > nextIdx)
                    nextIdx = this.lecture.institutes[i].index;
            }
            for (var i = 0; i < this.lecture.institutes.length; i++) {
                var inst = this.lecture.institutes[i];
                if (inst.index < 0)
                    inst.displayIndex = ++nextIdx;
                else
                    inst.displayIndex = inst.index;
            }
        }
        if (this.lecture.authors.length)
            this.presentingAuthors = this.lecture.authors.filter(function (x) { return x.isPresenting; });
        this.wasInit = true;
    };
    return sessionLecture;
}());
var f2fApp = new Face2FaceApp();
function getUserToken() {
    var c = new EACookie(loginCookie);
    return c.GetCookieString("APIKEY", '');
}
//# sourceMappingURL=jsout.js.map;
var resources = {};

var modules = {
    'login': 'li',
    'registration': 'rg',
    'agenda': 'ag',
    'meetings': 'mf',
    'general': 'ea',
    'exhibitors': 'ex',
}

function getAllTranslations(lang, excludedModules = []) {
    let translations = {};
    let keys = Object.keys(modules);
    for (let i = 0; i < keys.length; i++) {
        let key = keys[i] + '_' + lang;
        if (excludedModules.indexOf(keys[i]) > -1)
            continue;

        let obj = resources[key];
        if (!obj)
            continue;

        translations = Object.assign(translations, obj);
    }

    return translations;
}

function getModuleTranslation(module, key, lang) {
    let resource = resources[module + '_' + lang];
    if (resource && resource.hasOwnProperty(key))
        return resource[key];
    else
        return '';
}

function getAllModuleTranslation(module, lang) {
    let key = module + '_' + lang;
    let obj = resources[key];
    if (!obj) return {};

    return obj;
}

function ResourceManager() {
    let c = document.documentElement.lang || 'en';
    this.culture = c;
    this.getModuleTranslation = getModuleTranslation;
    this.getAllModuleTranslation = getAllModuleTranslation;

    this.GetString = function (module, key, culture) {
        /*  todo: 
         *       1. use culture 
                 2. if not found use end or space camel case
                 3. support string.format with key standardize?
        */
        if (!culture)
            culture = this.culture || 'en';

        return getModuleTranslation(module, key, culture);
    };


    this.SetCulture = function (language) {
        culture = language;
    }

    this.GetAllTranslations = function (lang = culture, excludedModules = []) {
        return getAllTranslations(lang, excludedModules);
    };
}

;
resources.exhibitors_en = {
    'ex_connectWith': "Connect with {0} team",
    'ex_shareMyCard': 'Share my business card',
    'ex_connect': 'Connect',
    "ex_toWebsite": "{0} website",
    "ex_adPrompt": "Interested?",
    "ex_adInterested": "Yes",
    "ex_adNotInterested": "No",
    "ex_booth": "Booth {0}",
    "ex_boothEmpty": "No exhibitors in this booth.",
    "ex_country": "Country/Region",
    "ex_description": "Description",
    "ex_website": "Website",
    "ex_address": "Address",
    "ex_tagline": "Slogan",
    "ex_taglineDesc": "A short slogan up to 55 characters, including spaces",
    "ex_link1": "Link 1",
    "ex_link2": "Link 2",
    "ex_link3": "Link 3",
    'ex_email': 'Email',
    "ex_logo": "Logo",
    "ex_coverImage": "Cover image",
    "ex_alsoKnownAs": "Also known as",
    'ex_saveProfileError': 'Failed to save',
    'ex_saveProfileSuccess': 'Saved successfully',
    'ex_requiredFieldsError': 'Check required fields',
    'ex_noLeads': 'No leads collected yet.',
    'ex_noMeetings': 'No meetings scheduled yet.',
    'ex_contactDetails': 'Contact Details',
    'ex_profile': 'Attributes',
    'ex_links': 'Links',
    'ex_files': 'Files',
    'ex_linkType': 'Link type',
    'ex_linkUrl': 'Link URL',
    'ex_linkTitle': 'Link title',
    'ex_addLink': 'Add link',
    'ex_deleteLink': 'Delete link',
    'ex_addFile': 'Add file',
    'ex_deleteFile': 'Delete file',
    'ex_fileTitle': 'File title',
    'ex_maxUploadSize': 'Max upload size: 1MB',
    'ex_fileType': 'File Type',
    'ex_contactDetailOrgan': 'Contact Detail Organ',
    'ex_alternativeOrgName': 'Alternative Org Name',
    'ex_characters': 'Maximum Characters: 803',
    'ex_downloadReport': 'Download report',
    'ex_leadsList': 'Leads list',
    'ex_addNew': 'Add new',
    'ex_showCam': 'Show camera',
    'ex_hideCam': 'Hide camera',
    'ex_find': 'Find',
    'ex_findSponsor': 'Start entering sponsor name',
    'ex_findExhibitor': 'Start entering exhibitor name',
    'ex_timesAre': 'Times are in',
    'ex_myMeetings': 'Meeting Slots',
    'ex_linksAndFiles': 'Links and files',
    'ex_team': 'Team',
    'ex_clickUploadImage': 'Click to upload image',
    'ex_ClickUploadLogo': 'Click to upload logo',
    'ex_generalDetails': 'General Details',
    'ex_setExhibitor': 'Add as exhibitor',
    'ex_unsetExhibitor': 'Unset as exhibitor',
    'ex_setSponsor': 'Set as sponsor',
    'ex_unsetSponsor': 'Unset as sponsor',
    'ex_add': 'Add',
    'ex_remove': 'Remove',
    'ex_boothNotConfigured': 'Your booth is not configured.',
    'ex_contactOrganiser': 'Please contact the organizer',
    'ex_selectYourCompany': 'Select your company',
    'ex_clickOnOrganization': 'Click on the organization to associate with it.',
    'ex_authorizationRequired': 'Authorization required',
    'ex_verifyYouAreAuthorized': 'Please verify you are authorized',
    'ex_close': 'Close',
    'ex_leads': 'Leads',
    'ex_status': 'Status',
    'ex_collectLeads': 'Collect leads',
    'ex_leadsList': 'Leads list',
    'ex_addManually': 'Add manually',
    'ex_scanOrType': "Scan/type visitor's code",
    'ex_visiterCodeRequired': 'Visiter code is required',
    'ex_alreadyCollectedLead': "You've already collected this lead, please update the details if needed.",
    'ex_wasAddedtoLeads': '{0} was successfully added to your leads list.',
    'ex_addNewLead': 'Add New Lead',
    'ex_back': 'Back',
    'ex_firstName': 'First Name',
    'ex_nameRequired': 'Name is required',
    'ex_lastName': 'Last Name',
    'ex_lastNameRequired': 'Last name is required',
    'ex_invalidEmail': 'Invalid email address',
    'ex_phone': 'Phone',
    'ex_whoToMeet': 'Who would you like to meet?',
    'ex_createNewMeeting': 'Create a new meeting',
    'ex_enterParticipantName': 'Enter participant name',
    'ex_when': 'When?',
    'ex_where': 'Where?',
    'ex_notVisibleParticipants': 'Not visible in Participant List',
    'ex_freeToMeet': 'Free to meet people',
    'ex_busy': 'Busy',
    'ex_meetingWith': 'Meeting with',
    'ex_at': 'at: ',
    'ex_reserved': 'Reserved: ',
}

resources.login_en = {
    'li_continueAs': "Continue as {0}",
    'li_or': "or",
    'li_logout': "Logout",
    'li_tryAgain': "Try again",
    'li_oops': "Oops",
    'li_disconnceted': "You've been disconnected due to {0}",
    'li_insertEmail': "Please insert email address",
    'li_signIn': " Sign in to {0}",
    'li_anotherConnction': "Your account has logged in on another device",
    'li_email': "Email",
    'li_password': "Password",
    'li_startNextworking': "Login",
    'li_networkingWelcome': "<h3>Welcome</h3><br><h4>Use your personal link or enter your event code</h4>",
    'li_invalidEventCode': "Please fill a valid event code",
    'li_noEvent': "This event does not exist, please try again.",
    'li_loginLinkError': "We're sorry, your request couldn't be completed. Please try again later.",
    'li_noPasswordLink': 'No password?',
    'li_askOTP': 'Ask for a one-time password >',
    'li_eventCode': 'Event Code #',
    'li_next': 'Next',
    'li_logIn': 'Log In',
    'li_rememberMe': 'Remember Me',
    'li_regNow': 'Not registered yet? Click Here',
    'li_otpPrompt': "<p>Don't remember your password? No problem, we can send you a one time password.</p><p>Please choose how would you like to receive the password:</p>",
    'li_otpEmail': 'Send one-time password to email',
    'li_otpSms': 'Send one-time password to phone',
    'li_otpEmailSuccess': "We've e-mailed your one-time password to {0}. It may take a minute to arrive.",
    'li_otpSmsSuccess': "We've sent your one-time password to {0}. It may take a minute to arrive.",
    'li_enterCode': 'Enter your one-time password',
    'li_otpRequired': 'One-time password is required',
    'li_otpExceeded': 'You have exceeded the number of allowed recovery attempts',
    'li_invalidCode': 'Invalid code',
    'li_otpFailed': "We currently can not send you a one-time password, please contact support",
    'li_otpEventIssue': 'The link to the app is invalid',
    'li_otpAccountIssue': 'We can not find the account, please validate your details or contact support',
    'li_otpAccessIssue': 'This account does not have access to this feature, please validate your details or contact support',
    'li_wrongOtp': 'Incorrect code. Please try again.',
}

resources.general_en = {
    'ea_myMeeting': "My meeting room",
    'ea_reloadApp': "Reload APP",
    'ea_logOut': "Log Out",
    'ea_changeMode': "Change mode",
    'ea_messages': "Messages",
    'ea_schedule': "Schedule",
    'ea_viewProfile': 'My Profile',
    'ea_viewExhibitorProfile': 'Organization Profile',
    'ea_changeLang': 'Change language',
    'ea_pollStartErr': 'Cannot start poll',
    'ea_pollStartSuccess': 'Poll started successfully',
    'ea_pollClosed': 'Poll closed',
    'ea_pollEnded': 'Thank you for participating',
    'ea_pollNoResults': 'No results yet',
    'ea_counterDays': 'Days',
    'ea_counterHours': 'Hours',
    'ea_counterMinutes': 'Minutes',
    'ea_counterSeconds': 'Seconds',
    'ea_enlarge': 'Enlarge',
    'ea_play': 'Play',
    'ea_stop': 'Stop',
    'ea_recordMessage': 'Send a video message to the host',
    'ea_sendMessage': 'Send a text question to the host',
    'ea_raisHand': 'Request to talk',
    'ea_saveAndClose': 'Save & close',
    'ea_JoinNow': 'Join now',
    'ea_readyToJoin': 'Ready to join?',
    'ea_getReady': 'Get ready',
    'ea_emojiEmoticon': 'Express pleasure',
    'ea_emojiThumbUp': 'Indicate approval',
    'ea_emojiHandClap': 'Applaud',
    'ea_emojiKiss': 'Send love',
    'ea_emojiAngry': 'Express anger',
    'ea_emojiThumbDown': 'Indicate disapproval',
    'ea_startsIn': 'Starts in',
    'ea_screenName': '{0}\'s screen',
    'ea_backToHome': 'click to return to home ->',
    'ea_muteParticipants': 'Mute participants',
    'ea_adminMessage': 'Message from the host',
    'ea_confirmAction': 'Confirmation needed',
    'ea_limitReached': 'The number of concurrent guests speakers is limited. Please try again later.',
    'ea_chatEmpty': 'This chat is currently empty. Send a message to get things started!',
    'ea_typeMessage': 'Type a message',
    'ea_send': 'Send',
    'ea_now': 'now',
    'ea_thisIsWhere': 'This is where participants can share their thoughts, views, criticisms or pictures with everyone.'
}

resources.meetings_en = {
    'mf_about': 'About',
    'mf_all': 'All',
    'mf_socialLinks': 'Links to Share',
    'mf_country': 'Country/Region',
    'mf_organization': 'Company',
    'mf_title': 'Title',
    'mf_jobTitle': 'Job Title',
    'mf_profileSummary': 'Profile Summary',
    'mf_profileExtension': 'Profile Extension',
    'mf_lang': 'Language',
    'mf_link1': 'Link to share/website',
    'mf_link2': 'Link to share 2',
    'mf_link3': 'Link to share 3',
    'mf_link4': 'Link to share 4',
    'mf_lectures': 'Lectures',
    'mf_profileSave': 'Save',
    'mf_profileImage': 'Profile Photo',
    'mf_personalDetails': 'Personal Details',
    'mf_saveProfileError': 'Failed to save profile',
    'mf_saveProfileSuccess': 'Profile saved successfully',
    'mf_requiredFieldsError': 'Check required fields',
    'mf_Online': 'Online',
    'mf_addNoteTo': 'Add a note to {0} {1}.',
    'mf_addMessage': 'Message (optional)',
    'mf_preferredTimes': 'Select your preferred meeting times',
    'mf_selectTimes': 'Select your preferred meeting times',
    'mf_myMeeting': 'My meeting room',
    'mf_onlineMeeting': 'Request online meeting',
    'mf_connectWith': 'Do you want to connect with {0} {1} from {2}?',
    'mf_setMeeting': 'Set a Meeting',
    'mf_selectTime': 'Select meeting time',
    'mf_scheduleMeeting': 'Schedule a meeting...',
    'mf_meetNow': 'Meet now',
    'mf_sendMessage': 'Send a message',
    'mf_face2Face': 'Request in-person meeting',
    'mf_completeProfileTitle': 'Add a profile summary',
    'mf_completeProfileImage': 'Please go to your profile and add a profile image',
    'mf_profileUpdate': 'Save',
    'mf_sendMessageFailed': 'Message was not sent.',
    'mf_sendMessageSuccess': 'Message was sent.',
    'mf_completeMissingUnknown': 'What is your job title?',
    'mf_completeMissingCompany': 'Update your company name',
    'mf_completeMissingPosition': 'What is your job title in {0}?',
    'mf_completeMissingSummary': 'Adding information to your profile enhances your credibility and helps others get to know you better.',
    "mf_toWebsite": "{0} website",
    "mf_profileEdit": "Edit",
    "mf_speaker": "SPEAKER",
    "mf_exhibitor": "EXHIBITOR",
    "mf_profileShare": "Share",
    "mf_click": "Click",
    "mf_profileEditDesc": " to add a profile summary",
    "mf_waitingInRoomTitle": "Someone is waiting in your room right now",
    "mf_waitingInRoomBody": "Click to meet now",
    "mf_newMessage": "New message",
    "mf_newMessageFrom": "From ",
    "mf_meetingRequest": "New meeting request",
    "mf_meetingRequestPending": "Pending meeting request",
    "mf_participantStatusOnline": "{0} is <b>Online</b> - so it shouldn't take long",
    "mf_participantStatusOffline": "{0} is offline",
    "mf_predefinedTimeSlots": "Pre-defined time slots",
    "mf_custom": "Custom",
    "mf_messageRequired": "Please enter your message",
    "mf_meetingDateRequired": "Please select date",
    "mf_meetingTimeRequired": "Please select time",
    "mf_informationRequired": "This information is required",
    'mf_send': 'Send',
    'mf_more': 'More',
    'mf_speakers': 'Speakers',
    'mf_speakersKeynote': 'Keynote Speakers',
    'mf_speakersFeatured': 'Featured Speakers',
    'mf_speakersOrganizers': 'Organizers',
    'mf_cancelMeetingSuccess': 'Meeting canceled',
    'mf_cancelMeetingFailed': 'Failed to delete meeting',
    'mf_rejectMeetingSuccess': 'Meeting declined',
    'mf_rejectMeetingFailed': 'Failed to decline meeting',
    'mf_acceptMeetingFailed': 'Failed to accept meeting',
    'mf_blockFailed': 'Failed to block',
    'mf_sendScheduleFailed': 'Failed to send Schedule.',
    'mf_sendScheduleSuccess': 'Sent successfully, please check your mail.',
    'mf_websiteVisible': 'Make yourself visible in the event website.',
    'mf_participants': 'Participants',
    'mf_limitedUser': 'This user is limited because the basic account details are missing',
    'mf_rejectMeeting': 'Are you sure you want to decline this meeting?',
    'mf_yes': 'Yes',
    'mf_no': 'No',
    'mf_requestMeeting': 'Request a Meeting',
    'mf_messageExchange': 'Message Exchange with {0}',
    'mf_meetingScheduled': 'Meeting scheduled at {0} on {1}',
    'mf_messageTo': 'Message to {0}',
    'mf_wantToMeet': 'wants to meet you',
    'mf_prefTime': 'My preferred meeting time',
    'mf_accept': 'Accept',
    'mf_decline': 'Decline',
    'mf_viewMeeting': 'View meeting',
    'mf_startMeeting': 'Start meeting',
    'mf_onlineMeetingScheduled': 'Online meeting scheduled on {0}',
    'mf_meetingUpdated': 'Meeting updated',
    'mf_updateMeeting': 'Update meeting',
    'mf_bcSent': '{0} has sent you his ',
    'mf_businessCard': 'business card',
    'mf_selectedTime': 'Preferred meeting time:',
    'mf_addLink': 'Add link',
    'mf_profile': 'Profile',
    'mf_profilePrompt': 'Keep your profile summary brief, clear, and concise, highlighting your unique skills, achievements, and personality.',
    'mf_profileSummaryHelp': 'Up to 1,000 chars',
    'mf_blockExMessages': 'Block messages from exhibitors and sponsors',
    'mf_blockParticipantMessages': 'Block messages from participants',
    'mf_noOrganization': "Your personal profile doesn't include an organization name. To create an organization profile, please <a href = '#!/MyProfile'> <u>edit your personal profile</u></a> and add an organization name.",
    'mf_noMessages': 'No Messages',
    'mf_messagesDescription': "Messages from and to other participants. Click on a participant's name to view the chat with that participant.",
    'mf_backToHome': 'Go back to the home page',
    'mf_findParticipant': 'Participant or Company name',
    'mf_getAMatch': 'Get a match',
    'mf_advancedFind': 'Advanced Find',
    'mf_position': 'Position',
    'mf_name': 'Name',
    'mf_country': 'Country',
    'mf_role': 'Role',
    'mf_orderBy': 'Sort by',
    'mf_orderByLast': 'Last seen',
    'mf_sendingToSelf': 'It looks like you tried to connect with yourself. This feature is currently unavailable. Why not explore other profiles instead?',
    'mf_sendShedule': 'Send Schedule to E-mail',
    'mf_meetings': 'Meetings',
    'mf_addMeeting': 'Add meeting',
    'mf_thisMeetingSchedule': 'This is your meeting schedule.',
    'mf_thisMeetingScheduleSend': 'To add the meeting schedule to your calendar send it to your email.',
    'mf_noActivities': 'No activities yet.',
    'mf_createAPage': 'Create a page for',
    'mf_noPage': '{0} does not have a page yet',
    'mf_authorizedToCreatePage': 'I am authorized by {0} and have the right to act on its behalf to create and manage this page',
    'mf_category': 'Category',
    'mf_searchDidNotMatch': 'Your search did not match anything to display.',
    'mf_networkingPrivacy': 'Networking Privacy Notice',
    'mf_visibillityConsent': 'To meet and interact with other attendees please approve your participation in the networking platform.',
    'mf_visibilityConsentName': 'Your name, company, job title, image you provided will be shared with other participants',
    'mf_visibilityConsentNot': 'Email and phone number are NOT SHARED with other participants.',
    'mf_takeBack': 'Take me back',
    'mf_agree': 'I agree',
    'mf_viewParticipantProfile': 'See Profile',
    'mf_gotoParticipantProfile': 'Go to Profile Page',
}

resources.agenda_en = {
    'ag_recording': 'recording...',
    'ag_finished': 'Message recorded  ',
    'ag_recordMsg': 'Start recording',
    'ag_finishRec': 'Click to finish',
    'ag_reRecord': 'Record again',
    'ag_messageSend': 'Send',
    'ag_messageCancel': 'Cancel',
    'ag_noCamAccess': 'Please allow camera access',
    'ag_camAccess': 'Opening camera',
    'ag_unsupported': 'Your browser is currently unsupported',
    'ag_messageFailed': "Message delivery failed. check your input and try again",
    'ag_messageSuccess': "Your message has been sent.",
    'ag_uploadInProgress': 'Uploading recording',
    'ag_messageRecordPrompt': "When you are ready click the record button to record. \n Your recording will be reviewed by the organizer before publishing",
    'ag_eposterSearch': 'Enter keyword or author name',
    'ag_lectures': 'Lectures',
    'ag_posters': 'Posters',
    'ag_comingUp': 'Coming Up',
    'ag_next': 'Next',
    'ag_previous': 'Previous',
    'ag_lectureSearch': 'Enter lecture name',
    'ag_find': 'Find lecture',
    'ag_sort': 'Sort',
    'ag_sortAscending': 'Ascending',
    'ag_sortDescending': 'Descending',
    'ag_lectureNote': 'Notes',
}

resources.registration_en = {
    'rg_noTickets': 'No tickets',
    'rg_noRegistrations': 'No registrations',
}
;
resources.exhibitors_es = {
    'ex_connectWith': "Conectar con el {0} equipo",
    'ex_shareMyCard': 'Compartir mi tarjeta de negocios',
    'ex_connect': 'Conectar',
    "ex_toWebsite": "{0} Sitio web",
    "ex_adPrompt": "¿Interesado?",
    "ex_adInterested": "Si",
    "ex_adNotInterested": "No",
    "ex_booth": "Stand {0}",
    "ex_boothEmpty": "No hay expositores en este stand.",
    "ex_country": "País/Región",
    "ex_description": "Descripción",
    "ex_website": "Sitio web",
    "ex_address": "Dirección",
    "ex_tagline": "Eslogan",
    "ex_taglineDesc": "Un eslogan breve hasta 55 caracteres, espacios incluídos",
    "ex_link1": "Enlace 1",
    "ex_link2": "Enlace 2",
    "ex_link3": "Enlace 3",
    "ex_email": "Correo electrónico",
    "ex_logo": "Logo",
    "ex_coverImage": "Imagen de portada",
    "ex_alsoKnownAs": "También conocido como",
    'ex_saveProfileError': 'Error al guardar',
    'ex_saveProfileSuccess': 'Guardado con éxito',
    'ex_requiredFieldsError': 'Comprobar campos obligatorios',
    'ex_noLeads': 'No se han recopilado clientes potenciales.',
    'ex_noMeetings': 'Aún no hay reuniones programadas.',
    'ex_contactDetails': 'Datos de contacto',
    'ex_profile': 'Atributos',
    'ex_links': 'Enlaces',
    'ex_files': 'Archivos',
    'ex_linkType': 'Tipo de enlace',
    'ex_linkUrl': 'Enlace URL',
    'ex_linkTitle': 'Título del enlace',
    'ex_addLink': 'Agregar enlace',
    'ex_deleteLink': 'Borrar enlace',
    'ex_addFile': 'Agregar archivo',
    'ex_deleteFile': 'Borrar archivo',
    'ex_fileTitle': 'Título del archivo',
    'ex_linkType': 'Tipo de archivo',
    'ex_downloadReport': 'Descargar informe',
    'ex_leadsList': 'Lista de clientes potenciales',
    'ex_addNew': 'Agregar nuevo',
    'ex_showCam': 'Mostrar cámara',
    'ex_find': 'Encontrar',
}

resources.login_es = {
    'li_continueAs': "Continuar como {0}",
    'li_or': "o",
    'li_logout': "Cerrar sesión",
    'li_tryAgain': "Inténtelo de nuevo",
    'li_oops': "Ups",
    'li_disconnceted': "Ha sido desconectado debido a {0}",
    'li_insertEmail': "Introduzca su dirección de correo electrónico",
    'li_signIn': " Registrarse {0}",
    'li_anotherConnction': "Su cuenta ha iniciado sesión en otro dispositivo",
    'li_email': "Correo electrónico",
    'li_password': "Contraseña",
    'li_startNextworking': "Iniciar sesión",
    'li_networkingWelcome': "<h3>Bienvenido</h3><br><h4>Utilice su enlace personal o introduzca el código de su evento</h4>",
    'li_invalidEventCode': "Introduzca un código de evento válido",
    'li_noEvent': "Este evento no existe, por favor inténtelo de nuevo.",
    'li_loginLinkError': "Lo sentimos, no se ha podido completar su solicitud. Vuelva a intentarlo más tarde.",
    'li_noPasswordLink': '¿Sin contraseña?',
    'li_askOTP': 'Solicitar una contraseña de un solo uso >',
    'li_eventCode': 'Código del evento #',
    'li_next': 'Siguiente',
    'li_logIn': 'Iniciar sesión',
    'li_rememberMe': 'Recordarme',
    'li_regNow': '¿Aún no se ha registrado? Haga clic aquí',
    'li_otpPrompt': "<p>¿No recuerda su contraseña? No hay problema, podemos enviarle una contraseña de un solo uso.</p><p>Seleccione como desea recibir la contraseña:</p>",
    'li_otpEmail': 'Enviar contraseña de un solo uso al correo electrónico',
    'li_otpSms': 'Enviar contraseña de un solo uso al teléfono',
    'li_otpEmailSuccess': "Hemos enviado por correo electrónico su contraseña de un solo uso a {0}. Puede tardar un minuto en llegar.",
    'li_otpSmsSuccess': "Hemos enviado su contraseña de un solo uso a {0}. Puede tardar un minuto en llegar.",
    'li_enterCode': 'Introduzca su contraseña de un solo uso',
    'li_otpRequired': 'Se requiere contraseña de un solo uso',
    'li_otpExceeded': 'Ha superado el número de intentos de recuperación permitidos',
    'li_invalidCode': 'Código inválido',
    'li_otpFailed': "No podemos enviarle una contraseña de un solo uso en este momento. Por favor, comuníquese con nuestro equipo de soporte.",
    'li_otpEventIssue': 'El enlace a la aplicación no es válido.',
    'li_otpAccountIssue': 'No podemos encontrar la cuenta. Por favor, valide sus datos o comuníquese con nuestro equipo de soporte.',
    'li_otpAccessIssue': 'Esta cuenta no tiene acceso a esta función. Por favor, valide sus datos o comuníquese con nuestro equipo de soporte.',
    'li_wrongOtp': 'Código incorrecto. Por favor, inténtelo de nuevo.',
    'li_forgetMe': 'Olvídame',
    'li_canClose': 'Puedes cerrar esta ventana',
    'li_toCheckin': 'Hacer check-in en ',
}

resources.general_es = {
    'ea_myMeeting': "Mi sala de reuniones",
    'ea_reloadApp': "Recargar APP",
    'ea_logOut': "Cerrar sesión",
    'ea_changeMode': "Cambiar modo",
    'ea_messages': "Mensajes",
    'ea_schedule': "Programa",
    'ea_viewProfile': 'Mi perfil',
    'ea_viewExhibitorProfile': 'Perfil de la organización',
    'ea_changeLang': 'Cambiar idioma',
    'ea_pollStartErr': 'No se puede iniciar la encuesta',
    'ea_pollStartSuccess': 'Encuesta iniciada con éxito',
    'ea_pollClosed': 'Encuesta cerrada',
    'ea_pollEnded': 'Gracias por participar',
    'ea_pollNoResults': 'Aún no hay resultados',
    'ea_counterDays': 'Días',
    'ea_counterHours': 'Horas',
    'ea_counterMinutes': 'Minutos',
    'ea_counterSeconds': 'Segundos',
    'ea_enlarge': 'Ampliar',
    'ea_play': 'Reproducir',
    'ea_stop': 'Detener',
    'ea_recordMessage': 'Enviar un mensaje de vídeo al anfitrión',
    'ea_sendMessage': 'Enviar una pregunta al anfitrión',
    'ea_raisHand': 'Solicitud para hablar',
    'ea_saveAndClose': 'Guardar & Cerrar',
    'ea_JoinNow': 'Únete ahora',
    'ea_readyToJoin': '¿Listo para unirse?',
    'ea_getReady': 'Prepárate',
    'ea_emojiEmoticon': 'Expresar satisfacción',
    'ea_emojiThumbUp': 'Indicar aprobación',
    'ea_emojiHandClap': 'Aplaudir',
    'ea_emojiKiss': 'Enviar amor',
    'ea_emojiAngry': 'Expresar enfado',
    'ea_emojiThumbDown': 'Indicar desaprobación',
    'ea_startsIn': 'Comienza en',
    'ea_screenName': '{0}\'s screen',
    'ea_backToHome': 'clic para volver a la página de inicio ->',
    'ea_muteParticipants': 'Silenciar a los participantes',
    'ea_adminMessage': 'Mensaje del anfitrión',
    'ea_confirmAction': 'Se requiere confirmación',
    'ea_limitReached': 'El número de ponentes invitados simultáneos es limitado. Vuelva a intentarlo más tarde.',
    'ea_chatEmpty': 'Este chat está actualmente vacío. Envía un mensaje para empezar!',
    'ea_typeMessage': 'Escribe un mensaje',
    'ea_send': 'Enviar',
    'ea_now': 'ahora',
    'ea_noAnnouncements': 'No hay anuncios para mostrar',

}

resources.meetings_es = {
    'mf_about': 'Acerca de',
    'mf_socialLinks': 'Enlaces para compartir',
    'mf_country': 'País/Región',
    'mf_organization': 'Empresa',
    'mf_title': 'Título',
    'mf_profileSummary': 'Resumen del perfil',
    'mf_profileExtension': 'Ampliación del perfil',
    'mf_lang': 'Idioma',
    'mf_link1': 'Enlace para compartir/sitio web',
    'mf_link2': 'Enlace para compartir 2',
    'mf_link3': 'Enlace para compartir 3',
    'mf_link4': 'Enlace para compartir 4',
    'mf_lectures': 'Conferencias',
    'mf_profileSave': 'Guardar',
    'mf_profileImage': 'Foto de perfil',
    'mf_personalDetails': 'Datos personales',
    'mf_saveProfileError': 'Error al guardar el perfil',
    'mf_saveProfileSuccess': 'Perfil guardado con éxito',
    'mf_requiredFieldsError': 'Comprobar los campos obligatorios',
    'mf_Online': 'En línea',
    'mf_addNoteTo': 'Añadir una nota {0} {1}.',
    'mf_addMessage': 'Mensaje (opcional)',
    'mf_preferredTimes': 'Seleccione su horario preferido de reunión',
    'mf_selectTimes': 'Seleccione su horario de reunión',
    'mf_myMeeting': 'Mi sala de reuniones',
    'mf_onlineMeeting': 'Solicitar reunión online',
    'mf_connectWith': '¿Quiere conectar con {0} {1} desde {2}?',
    'mf_setMeeting': 'Establecer una reunión',
    'mf_selectTime': 'Seleccione la hora de la reunión',
    'mf_scheduleMeeting': 'Programar una reunión...',
    'mf_meetNow': 'Reunirse ahora',
    'mf_sendMessage': 'Enviar un mensaje',
    'mf_face2Face': 'Solicitar reunión en persona',
    'mf_completeProfileTitle': 'Añade un resumen del perfil',
    'mf_completeProfileImage': 'Vaya a su perfil y añada una imagen de perfil',
    'mf_profileUpdate': 'Guardar',
    'mf_sendMessageFailed': 'El mensaje no se ha enviado.',
    'mf_sendMessageSuccess': 'El mensaje se ha enviado.',
    'mf_completeMissingUnknown': '¿Cuál es tu Título?',
    'mf_completeMissingCompany': 'Actualice el nombre de su empresa',
    'mf_completeMissingPosition': '¿Cuál es su puesto de trabajo en {0}?',
    'mf_completeMissingSummary': 'Añadir información a tu perfil aumenta tu credibilidad y ayuda a los demás a conocerte mejor.',
    "mf_toWebsite": "{0} sitio web",
    "mf_profileEdit": "Editar",
    "mf_speaker": "ORADOR",
    "mf_exhibitor": "EXPOSITOR",
    "mf_profileShare": "Compartir",
    "mf_click": "Clic",
    "mf_profileEditDesc": "para añadir un resumen del perfil",
    "mf_waitingInRoomTitle": "Alguien está esperando en tu sala ahora mismo",
    "mf_waitingInRoomBody": "Haga clic para reunirse ahora",
    "mf_newMessage": "Nuevo mensaje",
    "mf_newMessageFrom": "De ",
    "mf_meetingRequest": "Nueva solicitud de reunión",
    "mf_meetingRequestPending": "Solicitud de reunión pendiente",
    "mf_participantStatusOnline": "{0} está <b>en línea</b> - asi que no tardará mucho",
    "mf_participantStatusOffline": "{0} no está en línea",
    "mf_predefinedTimeSlots": "Franjas horarias predefinidas",
    "mf_custom": "Personalizar",
    "mf_messageRequired": "Escriba su mensaje",
    "mf_meetingDateRequired": "Seleccione una fecha",
    "mf_meetingTimeRequired": "Selecciona la hora",
    'mf_send': 'Enviar',
    'mf_more': 'Más',
    'mf_speakers': 'Oradores',
    'mf_speakersKeynote': 'Oradores principales',
    'mf_speakersFeatured': 'Oradores destacados',
    'mf_speakersOrganizers': 'Organizadores',
    'mf_lectures': 'Conferencias1',
    'mf_cancelMeetingSuccess': 'Reunión cancelada',
    'mf_cancelMeetingFailed': 'Error al borrar reunión',
    'mf_rejectMeetingSuccess': 'Reunión rechazada',
    'mf_rejectMeetingFailed': 'No rechazó la reunión',
    'mf_acceptMeetingFailed': 'No se aceptó la reunión',
    'mf_blockFailed': 'Error al bloquear',
    'mf_sendScheduleFailed': 'No se pudo enviar el programa.',
    'mf_sendScheduleSuccess': 'Enviado con éxito, por favor revise su correo.',
    'mf_websiteVisible': 'Hazte visible en la web del evento.',
    'mf_participants': 'Participantes',
    'mf_limitedUser': 'Este usuario está limitado porque faltan los datos básicos de la cuenta',
    'mf_rejectMeeting': '¿Estás seguro de que quieres rechazar esta reunión?',
    'mf_yes': 'Si',
    'mf_no': 'No',
    'mf_requestMeeting': 'Solicitar una reunión',
    'mf_messageExchange': 'Intercambio de mensajes con {0}',
    'mf_meetingScheduled': 'Reunión programada {0} el {1}',
    'mf_messageTo': 'Mensaje para {0}',
    'mf_wantToMeet': 'quiere conocerte',
    'mf_prefTime': 'Mi hora de reunión preferida',
    'mf_accept': 'Aceptar',
    'mf_decline': 'Rechazar',
    'mf_viewMeeting': 'Ver reunión',
    'mf_startMeeting': 'Comenzar reunión',
    'mf_onlineMeetingScheduled': 'Reunión en línea prevista el {0}',
    'mf_meetingUpdated': 'Reunión actualizada',
    'mf_updateMeeting': 'Actualización de la reunión',
    'mf_bcSent': '{0} te ha enviado su ',
    'mf_businessCard': 'tarjeta de negocios',
    'mf_selectedTime': 'Ha elegido la siguiente hora de reunión:',
    'mf_addLink': 'Agregar enlace',
    'mf_profile': 'Perfil',
    'mf_profilePrompt': 'El resumen de tu perfil debe ser breve, claro y conciso, y destacar tus aptitudes, logros y personalidad.',
    'mf_profileSummaryHelp': 'Hasta 1.000 caracteres',
    'mf_blockExMessages': 'Bloquear mensajes de expositores y patrocinadores',
    'mf_blockParticipantMessages': 'Bloquear mensajes de los participantes',

}

resources.agenda_es = {
    'ag_recording': 'grabando...',
    'ag_finished': 'Mensaje grabado  ',
    'ag_recordMsg': 'Iniciar grabación',
    'ag_finishRec': 'Clic para finalizar',
    'ag_reRecord': 'Grabar de nuevo',
    'ag_messageSend': 'Enviar',
    'ag_messageCancel': 'Cancelar',
    'ag_noCamAccess': 'Permita el acceso a la cámara',
    'ag_camAccess': 'Abrir cámara',
    'ag_unsupported': 'Su navegador no es compatible',
    'ag_messageFailed': "Error en la entrega del mensaje. Compruebe su entrada e inténtelo de nuevo.",
    'ag_messageSuccess': "Tu mensaje ha sido enviado.",
    'ag_uploadInProgress': 'Subir grabación',
    'ag_messageRecordPrompt': "Cuando esté listo, haga clic en el botón de grabación para grabar. \n Su grabación será revisada por el organizador antes de publicarla",
    'ag_eposterSearch': 'Introduzca la palabra clave o el nombre del autor',
    'ag_lectures': 'Conferencias',
    'ag_posters': 'Resúmenes',
}

resources.registration_es = {
    'rg_noTickets': 'No hay tickets',
    'rg_noRegistrations': 'No hay inscripciones',
}
;
resources.login_he = {
    'li_continueAs': "המשיכו כ-{0}",
    'li_or': "או",
    'li_logout': "התנתקו",
    'li_tryAgain': "נסה שוב",
    'li_oops': "אופס",
    'li_disconnceted': "נותקת בגלל {0}",
    'li_insertEmail': 'נא להזין כתובת דוא"ל',
    'li_signIn': "היכנס ל- {0}",
    'li_anotherConnction': "החשבון מחובר במכשיר אחר",
    'li_email': 'דוא"ל',
    'li_password': "סיסמא",
    'li_startNextworking': "כניסה",
    'li_networkingWelcome': "<h3>ברוכים הבאים</ h3><br><h4>לכניסה השתמש בלינק האישי או הכנס קוד אירוע</ h4>",
    'li_invalidEventCode': "אנא למלא קוד אירוע חוקי",
    'li_noEvent': "אירוע זה אינו קיים, נא לנסות שוב.",
    'li_loginLinkError': "אנו מצטערים, לא ניתן היה להשלים את בקשתך. נא לנסות שוב מאוחר יותר.",
    'li_noPasswordLink': 'אין סיסמא?',
    'li_askOTP': 'בקשת סיסמה חד פעמית >',
    'li_eventCode': '# קוד אירוע',
    'li_next': 'הבא',
    'li_logIn': 'התחברות',
    'li_rememberMe': 'זכור אותי',
    'li_regNow': 'עדיין לא רשום? לחץ כאן',
    'li_regNow': 'עדיין לא רשום? לחץ כאן',
    'li_otpPrompt': "<p> אינך זוכר את הסיסמה שלך? אין בעיה, אנו יכולים לשלוח לך סיסמה חד פעמית. </ p> <p> אנא בחר כיצד תרצה לקבל את הסיסמה: </ p>",
    'li_otpEmail': 'שלח סיסמה חד פעמית לדוא"ל',
    'li_otpSms': 'שלח סיסמה חד פעמית לטלפון',
    'li_otpEmailSuccess': 'שלחנו בדוא"ל את הסיסמה החד פעמית שלך אל {0}. ייתכן שייקח דקה להגיע.',
    'li_otpSmsSuccess': "שלחנו את הסיסמה החד פעמית שלך אל {0}. ייתכן שייקח דקה להגיע.",
    'li_enterCode': 'הזן את הסיסמה החד פעמית שלך',
    'li_otpRequired': 'נדרשת סיסמה חד פעמית',
    'li_otpExceeded': 'חרגת מגבלת הניסיונות',
    'li_invalidCode': 'קוד לא תקין',
    'li_otpFailed': 'לא הצלחנו לשלוח סיסמא חד פעמית. אנא בדוק את הפרטים שהזנתה או פנה לתמיכה',
    'li_otpEventIssue': 'בעיה בקישור, אנא בדוק את שלמות הקישור',
    'li_otpAccountIssue': 'לא ניתן להכנס עם הפרטים שהזנתה, בדוק את הפרטים או פנה לתמיכה',
    'li_otpAccessIssue': 'אין הרשאה לכניסה, פנה לתמיכה',
    'li_wrongOtp': 'קוד חד פעמי לא נכון, אנא נסה שוב',
}

resources.exhibitors_he = {
    'ex_shareMyCard': 'השאירו פרטים לחזרה',
    'ex_connectWith': "יצירת קשר עם צוות {0}",
    'ex_connect': "יצירת קשר",
    'ex_toWebsite': "אתר {0}",
    "ex_adPrompt": "מעניין?",
    "ex_adInterested": "כן",
    "ex_adNotInterested": "לא",
    "ex_booth": "ביתן {0}",
    "ex_boothEmpty": "אין מציגים עם דוכן זה.",
    "ex_country": "מדינה/איזור",
    "ex_description": "תיאור",
    "ex_website": "אתר",
    "ex_address": "כתובת",
    "ex_tagline": "סלוגן",
    "ex_taglineDesc": "סלוגן קצר עד 55 תווים כולל רווחים",
    "ex_link1": "קישור 1",
    "ex_link2": "קישור 2",
    "ex_link3": "'קישור 3",
    "ex_email": "מייל",
    "ex_phone": "Phone",
    "ex_logo": "לוגו",
    "ex_coverImage": "תמונת שער",
    "ex_alsoKnownAs": "שם נוסף",
    'ex_saveProfileError': 'השמירה נכשלה',
    'ex_saveProfileSuccess': 'נתונים נשמרו בהצלחה',
    'ex_requiredFieldsError': 'שדות חובה חסרים',
    'ex_noLeads': 'טרם נאספו לידים',
    'ex_noMeetings': 'טרם נקבעו פגישות.',
    'ex_contactDetails': 'פרטי איש הקשר',
    'ex_profile': 'מאפיינים',
    'ex_links': 'קישורים',
    'ex_files': 'קבצים',
    'ex_linkType': 'סוג קישור',
    'ex_linkUrl': 'כתובת קישור',
    'ex_linkTitle': 'כותרת קישור',
    'ex_addLink': 'הוספת קישור',
    'ex_deleteLink': 'מחיקת קישור',
    'ex_addFile': 'הוספת קובץ',
    'ex_deleteFile': 'מחיקת קובץ',
    'ex_fileTitle': 'כותרת הקובץ',
    'ex_fileType': 'סוג קובץ',
    'ex_maxUploadSize': 'משקל העלאה מקסימלי: 1MB',
    'ex_contactDetailOrgan': 'פרטי קשר של הארגון',
    'ex_alternativeOrgName': 'שמ נוסך',
    'ex_characters': 'מקסימום תווים: 803',
    'ex_downloadReport': 'הורדת קובץ',
    'ex_leadsList': 'רשימת לידים',
    'ex_addNew': 'הוספת חדש',
    'ex_showCam': 'הצגת מצלמה',
    'ex_hideCam': 'הסתר מצלמה',
    'ex_find': 'חיפוש',
    'ex_findSponsor': 'התחל להזין את שם החסות',
    'ex_findExhibitor': 'התחל להזין את שם המציג',
    'ex_timesAre': 'זמן המוצג:',
    'ex_myMeetings': 'חלונות זמן לפגישה',
    'ex_linksAndFiles': 'לינקים וקבצים',
    'ex_team': 'צוות',
    'ex_clickUploadImage': 'לחץ להעלאת תמונה',
    'ex_ClickUploadLogo': 'לחץ להעלאת לוגו',
    'ex_generalDetails': 'פרטים כלליים',
    'ex_setExhibitor': 'הוסף מציג',
    'ex_unsetExhibitor': 'הסר מציג',
    'ex_setSponsor': 'הוסף ספונסר',
    'ex_unsetSponsor': 'הסר ספונסר',
    'ex_add': 'הוסף',
    'ex_remove': 'הסר',
    'ex_boothNotConfigured': 'הדוכן שלך אינו מוגדר.',
    'ex_contactOrganiser': 'אנא צרו קשר עם המארגן',
    "ex_selectYourCompany": "בחר את החברה שלך",
    "ex_clickOnOrganization": "לחץ על הארגון כדי להשתייך אליו.",
    "ex_authorizationRequired": "נדרשת הרשאה",
    "ex_verifyYouAreAuthorized": "אנא אמת שאתה מורשה",
    "ex_close": "סגור",
    'ex_leads': 'לידים',
    'ex_status': 'סטטוס',
    'ex_collectLeads': 'איסוף לידים',
    'ex_leadsList': 'רשימת לידים',
    'ex_addManually': 'הוסף ידנית',
    'ex_scanOrType': "סרוק או הקלד את קוד המבקר",
    'ex_visiterCodeRequired': 'נדרש קוד מבקר',
    'ex_alreadyCollectedLead': "כבר אספת את הליד הזה, אנא עדכן את הפרטים במידת הצורך.",
    'ex_wasAddedtoLeads': '{0} נוסף בהצלחה לרשימת הלידים שלך.',
    'ex_addNewLead': 'הוסף ליד חדש',
    'ex_back': 'חזרה',
    'ex_firstName': 'שם פרטי',
    'ex_nameRequired': 'השם נדרש',
    'ex_lastName': 'שם משפחה',
    'ex_lastNameRequired': 'שם המשפחה נדרש',
    'ex_invalidEmail': "כתובת דואיל לא תקינ",
    'ex_phone': 'טלפון',
    'ex_whoToMeet': 'את מי היית רוצה לפגוש?',
    'ex_createNewMeeting': 'צור פגישה חדשה',
    'ex_enterParticipantName': 'הזן את שם המשתתף',
    'ex_when': 'מתי?',
    'ex_where': 'איפה?',
    'ex_notVisibleParticipants': 'לא נראה ברשימת המשתתפים',
    'ex_freeToMeet': 'פנוי לפגוש אנשים',
    'ex_busy': 'עסוק',
    'ex_meetingWith': 'פגישה עם',
    'ex_at': 'ב: ',
    'ex_reserved': 'שמורות: ',
}
 
resources.general_he = {
    'ea_messages': "הודעות",
    'ea_reloadApp': "טעינה מחדש",
    'ea_myMeeting': "חדר הפגישות שלי",
    'ea_logOut': "להתנתק",
    'ea_changeMode': "שינוי תצוגה",
    'ea_schedule': "לוח זמנים",
    'ea_viewProfile': 'הפרופיל שלי',
    'ea_viewExhibitorProfile': 'פרופיל חברה',
    'ea_pollStartErr': 'לא ניתן להתחיל בסקר',
    'ea_pollStartSuccess': 'הסקר התחיל בהצלחה',
    'ea_pollClosed': 'הסקר הסתיים',
    'ea_pollEnded': 'תודה על השתתפותך',
    'ea_pollNoResults': 'אין עדיין תוצאות',
    'ea_counterDays': 'ימים',
    'ea_counterHours': 'שעות',
    'ea_counterMinutes': 'דקות',
    'ea_counterSeconds': 'שניות',
    'ea_enlarge': 'הגדלה',
    'ea_play': 'הפעלת ניגון',
    'ea_stop': 'עצירת ניגון',
    'ea_recordMessage': 'שליחת וידאו למארחים',
    'ea_sendMessage': 'שליחת הודעות טקסט למארחים',
    'ea_raisHand': 'בקשת רשות דיבור',
    'ea_emojiEmoticon': 'הבעת הנאה',
    'ea_emojiThumbUp': 'הבעת חיזוק',
    'ea_emojiHandClap': 'מחיאות כפיים',
    'ea_emojiKiss': 'שלח אהבה',
    'ea_emojiAngry': 'הבעת כעס',
    'ea_emojiThumbDown': 'הבעת אי הסכמה',
    'ea_startsIn': 'מתחיל בעוד',
    'ea_screenName': 'המסך של {0}',
    'ea_backToHome': 'חזרה לעמוד הכניסה ->',
    'ea_muteParticipants': 'השתקת משתתפים',
    'ea_adminMessage': 'הודעה מהמארגנים',
    'ea_confirmAction': 'נדרש אישור',
    'ea_limitReached': 'לא ניתן לשתף מצלמה כרגע. באולם זה מספר המשתתפים המשתפים מצלמה הוגבל אנא נסה שנית מאוחר יותר',
    'ea_chatEmpty':'השיחה הזו ריקה כרגע, שלח הודעה בשביל להתחיל את השיחה',
    'ea_typeMessage': 'הקלידו הודעה',
    'ea_send': 'שליחה',
    'ea_now': 'עכשיו',
    'ea_thisIsWhere': 'כאן המשתתפים יכולים לשתף את המחשבות, הדעות, הביקורות או התמונות שלהם עם כולם.',
}

resources.meetings_he = {
    'mf_about': 'אודות',
    'mf_all': 'הכל',
    'mf_socialLinks': 'רשתות חברתיות',
    'mf_country': 'מדינה/איזור',
    'mf_organization': 'חברה',
    'mf_jobTitle': 'תיאור התפקיד',
    'mf_title': 'תואר',
    'mf_link1': 'לינק לשיתוף/אתר',
    'mf_link2': 'קישור לשיתוף 2',
    'mf_link3': 'קישור לשיתוף 3',
    'mf_link4': 'קישור לשיתוף 4',
    'mf_lectures': 'הרצאות',
    'mf_profileSave': 'שמירה',
    'mf_profileImage': 'תמונת פרופיל',
    'mf_personalDetails': 'פרטים אישיים',
    'mf_profileSummary': 'סיכום פרופיל',
    'mf_profileExtension': 'פרופיל מורחב',
    'mf_lang': 'שפה',
    'mf_profileImage': 'תמונת פרופיל',
    'mf_saveProfileError': 'שמירת פרופיל נכשלה',
    'mf_saveProfileSuccess': 'פרופיל נשמר בהצלחה',
    'mf_requiredFieldsError': 'שדות חובה ריקים',
    'mf_Online': 'אונליין',
    'mf_addNoteTo': 'הודעה ל-{0} {1}.',
    'mf_addMessage': 'הודעה (אופציונלי)',
    'mf_preferredTimes': 'בחרו את זמני הפגישה המועדפים',
    'mf_myMeeting': 'חדר הפגישות שלי',
    'mf_onlineMeeting': 'פגישה מקוונת',
    'mf_connectWith': 'האם להתחבר עם {0} {1} מ-{2}?',
    'mf_setMeeting': 'קביעת פגישה',
    'mf_selectTime': 'בחירת זמן פגישה',
    'mf_scheduleMeeting': 'פגישה',
    'mf_meetNow': 'שיחת וידאו עכשיו',
    'mf_sendMessage': 'הודעה',
    'mf_face2Face': 'פנים מול פנים',
    'mf_completeProfileTitle': 'השלימו את הפרופיל שלכם',
    'mf_completeProfileImage': 'יש לעבור לעמוד הפרופיל ולהסיף תמונת פרופיל',
    'mf_sendMessageFailed': 'ההודעה לא נשלחה.',
    'mf_sendMessageSuccess': 'ההודעה נשלחה.',
    'mf_completeMissingUnknown': 'מה תיאור התפקיד שלך?',
    'mf_completeMissingCompany': 'עדכנ/י את שם החברה שלך',
    'mf_completeMissingPosition': 'מה תיאור התפקיד ב-{0}?',
    'mf_completeMissingSummary': 'אנא כתבו משהו על עצמכם',
    'mf_profileUpdate': 'עדכון',
    "mf_toWebsite": "{0} אתר",
    "mf_profileEdit": "עריכה",
    "mf_speaker": "מרצה",
    "mf_exhibitor": "מציג",
    "mf_profileShare": "שיתוף",
    "mf_click": "לחץ",
    "mf_profileEditDesc": "להוסיף סיכום כדי לשתף את מה שאתה עושה ואת ההזדמנויות שאתה מחפש",
    "mf_participantStatusOnline": "",
    "mf_participantStatusOnline": "{0} <b>מחובר/ת</b> אז זה לא אמור לקחת הרבה זמן",
    "mf_participantStatusOffline": "{0} לא מחובר/ת",
    "mf_predefinedTimeSlots": "זמני פגישות קבועים מראש",
    "mf_custom": "מותאם אישית",
    "mf_messageRequired": "נא להזין הודעה",
    "mf_meetingDateRequired": "נא לבחור תאריך",
    "mf_meetingTimeRequired": "נא לבחור שעה",
    "mf_informationRequired": "אנא מלאו את הפרטים",
    'mf_send': 'שליחה',
    'mf_more': 'מידע נוסף',
    'mf_speakers': 'דוברים',
    'mf_committee': 'ועדה מדעית',
    'mf_speakersKeynote': 'דוברים מרכזיים',
    'mf_speakersFeatured': 'דוברים בולטים',
    'mf_speakersOrganizers': 'מארגנים',
    'mf_cancelMeetingSuccess': 'פגישה בוטלה',
    'mf_cancelMeetingFailed': 'ביטול פגישה נכשל',
    'mf_rejectMeetingSuccess': 'בקשת פגישה נדחתה',
    'mf_rejectMeetingFailed': 'ביטול בקשת פגישה נכשלה',
    'mf_sendScheduleFailed': 'שליחת לו"ז נכשלה',
    'mf_sendScheduleSuccess': 'נשלח בהצלחה, נא לבדוק את המייל',
    'mf_websiteVisible': 'הפוך את עצמך לגלוי באתר האירוע.',
    'mf_participants': 'משתתפים',
    'mf_limitedUser': 'חסרים פרטי משתמש בסיסים ולכן החשבון מוגבל',
    'mf_rejectMeeting': 'האם ברצונך לבטל את הפגישה?',
    'mf_yes': 'כן',
    'mf_no': 'לא',
    'mf_requestMeeting': 'בקשת פגישה',
    'mf_messageExchange': 'שיחה עם {0}',
    'mf_meetingScheduled': 'פגישה נקבעה ב-{0} ב-{1}',
    'mf_messageTo': 'הודעה אל {0}',
    'mf_wantToMeet': ' רוצה לפגוש אותך ',
    'mf_prefTime': 'זמן הפגישה המועדף עליי',
    'mf_accept': 'אישור',
    'mf_decline': 'סירוב',
    'mf_viewMeeting': 'צפייה בפגישה',
    'mf_startMeeting': 'התחלת פגישה',
    'mf_onlineMeetingScheduled': 'פגישה מקוונת מתוכננת ב-{0}',
    'mf_meetingUpdated': 'פגישה עודכנה',
    'mf_updateMeeting': 'עדכון פגישה',
    'mf_bcSent': '{0} שלח לך ',
    'mf_businessCard': 'כרטיס ביקור',
    'mf_selectedTime': 'בחרת בזמן הפגישה הרצוי הבא:',
    'mf_meetingRequestPending': 'בקשת פגישה ממתינה',
    'mf_addLink': 'הוספת קישור',
    'mf_profile': 'Profile',
    'mf_profilePrompt': 'ניתן לכתוב על תחומי העניין שלך, הניסיון, התעשייה, הכישורים, ההישגים או חוויות העבודה הקודמות שלך.',
    'mf_profileSummaryHelp': 'עד 1,000 תווים',
    'mf_blockExMessages': 'חסימת הודעות ממציגים ונותני חסות',
    'mf_blockParticipantMessages': 'חסימת הודעות ממשתתפים',
    'mf_noOrganization': "הפרופיל האישי שלך אינו כולל שם ארגון.<br>בשביל ליצור פרופיל של הארגון שלך, <a href = '#!/MyProfile'></u>ערוך את הפרופיל האישי<u> </a> שלך והוסף שם ארגון.",
    'mf_noMessages': 'אין הודעות',
    'mf_messagesDescription': "הודעות ממשתתפים אחרים ומהם. לחץ על שם המשתתף כדי להציג את השיחה עם המשתתף.",
    'mf_backToHome': 'חזרה לעמוד הכניסה',
    'mf_findParticipant': 'שם המשתתף או החברה',
    'mf_getAMatch': 'קבל התאמה',
    'mf_advancedFind': 'חיפוש מתקדם',
    'mf_position': 'הפקיד',
    'mf_name': 'שם',
    'mf_country': 'מדינה',
    'mf_role': 'תפקיד בכנס',
    'mf_orderBy': 'נראה לאחרונה',
    'mf_orderBy': 'מיין לפי',
    'mf_orderByLast': 'נראה לאחרונה',
    'mf_sendingToSelf': "נראה שניסית ליצור קשר עם עצמך.פיצ'ר זה אינה זמין כרגע. למה לא לנסות פרופילים אחרים במקום? ",
    'mf_sendShedule': 'שלח לוח זמנים למייל',
    'mf_meetings': 'פגישות',
    'mf_addMeeting': 'הוסף פגישה',
    'mf_thisMeetingSchedule': 'זה לו"ז פגישות שלך.',
    'mf_thisMeetingScheduleSend': 'כדי להוסיף אותו ליומן שלך שלח אותו למייל שלך.',
    'mf_noActivities': 'אין עדיין פעילויות',
    'mf_createAPage': 'צור עמוד עבור',
    'mf_noPage': 'ל{0} אין עדיין עמוד',
    'mf_authorizedToCreatePage': 'אני מורשה על ידי {0} ויש לי את הזכות לפעול בשמה כדי ליצור ולנהל דף זה.',
    'mf_category': 'קטגוריה',
    'mf_searchDidNotMatch': 'החיפוש שלך לא תאם שום דבר להצגה.',
    'mf_networkingPrivacy': 'הודעת פרטיות לרשתות חברתיות',
    'mf_visibillityConsent': 'כדי לפגוש ולהתחבר עם משתתפים אחרים, אנא אשר את השתתפותך בפלטפורמת הנטוורקינג.',
    'mf_visibilityConsentName': 'שמך, שם החברה, תפקידך, והתמונה שסיפקת ישותפו עם משתתפים אחרים.',
    'mf_visibilityConsentNot': 'דואר אלקטרוני ומספר טלפון אינם משותפים עם משתתפים אחרים.',
    'mf_takeBack': 'החזירו אותי',
    'mf_agree': 'מאושר',
}

resources.agenda_he = {
    'ag_recording': 'מקליט...',
    'ag_uploadInProgress': 'שומר הקלטה',
    'ag_finished': 'הודעה הוקלטה  ',
    'ag_recordMsg': 'התחלת הקלטה',
    'ag_finishRec': 'סיום הקלטה',
    'ag_noCamAccess': 'נא לאפשר גישה למצלמה',
    'ag_camAccess': 'פתיחת מצלמה',
    'ag_reRecord': 'שינוי הקלטה',
    'ag_messageSend': 'שליחה',
    'ag_messageCancel': 'ביטול',
    'ag_unsupported': 'הדפדפן שלך אינו נתמך',
    'ag_messageFailed': " שליחת ההודעה נכשלה. יש לבדוק את הנתונים ולנסות שוב",
    'ag_messageSuccess': "ההודעה שלך נשלחה",
    'ag_messageRecordPrompt': "כדי להתחיל יש ללחוץ על כפתור ההקלטה .\n ההקלטה שלך תיבדק על ידי המארגנים לפני הפרסום",
    'ag_eposterSearch': 'חיפוש מילות מפתח או שמות הכותבים',
    'ag_lectures': 'הרצאות',
    'ag_posters': 'פוסטרים',
    'ag_comingUp': 'בקרוב',
    'ag_next': 'הבא',
    'ag_previous': 'הקודם',
    'ag_find': 'חיפוש הרצאה',
    'ag_sort': 'מיון',
    'ag_sortAscending': 'סדר עולה',
    'ag_sortAscending': 'סדר יורד',
    'ag_lectureNote': 'הערות',
}

resources.registration_en = {
    'rg_noTickets': 'אין כרטיסים להצגה',
    'rg_noRegistrations': 'אין הרשמות',
}
;
resources.exhibitors_ja = {
    'ex_connectWith': "{0}チームと接続",
    'ex_shareMyCard': '名刺を共有する',
    'ex_connect': '接続',
    "ex_toWebsite": "{0}ウェブサイト",
}

resources.general_ja = {
    'ea_myMeeting': "私の会議室",
    'ea_reloadApp': "アプリをリロード",
    'ea_logOut': "ログアウト",
    'ea_changeMode': "モードの変更",
    'ea_messages': "メッセージ",
    'ea_schedule': "スケジュール",
    'ea_viewProfile': 'プロファイルの表示',
    'ea_changeLang': '言語の変更',
}


resources.login_ja = {
    'li_continueAs': "続行として{0}",
    'li_or': "または",
    'li_logout': "ログアウト",
    'li_tryAgain': "再試行",
    'li_oops': "おっと",
    'li_disconnceted': "{0}が原因で切断されました",
    'li_insertEmail': "メールアドレスを挿入してください",
    'li_signIn': "{0}にサインインします",
    'li_anotherConnction': "アカウントは別のデバイスにログインしています",
    'li_email': "Email",
    'li_password': "パスワード",
    'li_startNextworking': "ネットワークの開始",
    'li_networkingWelcome': "<h3>Welcome to Face2Face</ h3> <h4>ネットワークを開始してください！</ h4>",
    'li_invalidEventCode': "有効なイベントコードを入力してください",
    'li_noEvent': "このイベントは存在しません。もう一度やり直してください。",
    'li_loginLinkError': "申し訳ありませんが,リクエストを完了できませんでした。しばらくしてからもう一度お試しください。",
    'li_noPasswordLink': 'パスワードなし？',
    'li_askOTP': 'ワンタイムパスワードを要求する>',
    'li_eventCode': 'イベントコード＃',
    'li_next': '次へ',
    'li_logIn': 'ログイン',
    'li_rememberMe': '私を覚えている/記憶する/',
    'li_regNow': 'まだ登録されていませんか？ここをクリック',
    'li_otpPrompt': "<p>パスワードを覚えていませんか？問題ありません。ワンタイムパスワードをお送りします。</ p> <p>パスワードの受け取り方法を選択してください:</ p>" ,
    'li_otpEmail': 'ワンタイムパスワードを電子メールに送信',
    'li_otpSms': 'ワンタイムパスワードを電話に送信する',
    'li_otpEmailSuccess': "ワンタイムパスワードを{0}にメールで送信しました。到着までに1分ほどかかる場合があります。",
    'li_otpSmsSuccess': "ワンタイムパスワードを{0}に送信しました。到着までに1分ほどかかる場合があります。",
    'li_enterCode': 'ワンタイムパスワードを入力してください',
    'li_otpRequired': 'ワンタイムパスワードが必要です',
    'li_otpExceeded': '許可された回復の試行回数を超えました',
    'li_invalidCode': '無効なコード',
    'li_otpFailed': '確認コードの送信に失敗しました。もう一度やり直してください',
    'li_otpEventIssue': 'アプリへのリンクが無効です',
    'li_otpAccountIssue': 'アカウントが見つかりません。詳細を確認するか、サポートにお問い合わせください。',
    'li_otpAccessIssue': 'このアカウントにはこの機能へのアクセス権がありません。詳細を確認するか、サポートにお問い合わせください。',
    'li_wrongOtp': '不正なコード。もう一度やり直してください。」',
}

resources.meetings_ja = {
    'mf_socialLinks': 'ソーシャルリンク',
    'mf_country': '国',
    'mf_organization': '会社',
    'mf_title': 'タイトル',
    'mf_profileSummary': 'プロファイルの概要',
    'mf_profileExtension': 'プロファイル拡張',
    'mf_lang': '言語',
    'mf_link1': 'リンク1',
    'mf_link2': 'リンク2',
    'mf_link3': 'リンク3',
    'mf_link4': 'リンク4',
    'mf_lectures': 'Lectures',
    'mf_profileSave': '保存',
    'mf_profileImage': 'プロファイル画像',
    'mf_personalDetails': '個人情報',
    'mf_saveProfileError': 'プロファイルの保存に失敗しました',
    'mf_saveProfileSuccess': 'プロファイルが正常に保存されました',
    'mf_requiredFieldsError': '必須フィールドを確認してください',
    'mf_Online': 'オンライン',
    'mf_addNoteTo': '{0} {1}にメモを追加します。',
    'mf_addMessage': 'メッセージ（オプション）',
    'mf_preferredTimes': '希望の会議時間を選択します',
    'mf_selectTimes': '希望の会議時間を選択します',
    'mf_myMeeting': '私の会議室',
    'mf_onlineMeeting': 'オンライン会議',
    'mf_connectWith': '{2}から{0} {1}に接続しますか？',
    'mf_setMeeting': '会議を設定する',
    'mf_selectTime': '会議時間を選択',
    'mf_scheduleMeeting': '会議をスケジュールします...',
    'mf_meetNow': '今すぐ会う',
    'mf_sendMessage': 'メッセージを送信する',
    'mf_face2Face': 'フェイス2フェイス',
    'mf_completeProfileTitle': 'プロファイルを完成させます',
    'mf_completeProfileImage': 'プロフィールに移動してプロフィール画像を追加してください',
    'mf_profileUpdate': '更新',
    'mf_sendMessageFailed': 'メッセージは送信されませんでした。',
    'mf_sendMessageSuccess': 'メッセージが送信されました。',
    'mf_completeMissingUnknown': 'あなたの{0}は何ですか？',
    'mf_completeMissingCompany': '会社名を更新します',
    'mf_completeMissingPosition': '{0}でのあなたの位置は何ですか？',
    'mf_completeMissingSummary': 'あなた自身について何か書いてください',
    "mf_toWebsite": "{0}ウェブサイト",
    "mf_profileEdit": "編集",
    "mf_speaker": "SPEAKER",
    "mf_exhibitor": "EXHIBITOR",
    "mf_profileShare": "共有",
    "mf_click": "クリック",
    "mf_profileEditDesc": "あなたがしていることとあなたが探している機会を共有するための要約を追加する",
}
;
resources.exhibitors_ro = {
    'ex_connectWith': 'Conectează-te cu echipa lui {0}',
    'ex_shareMyCard': 'Împărtășește-mi cartea de vizită',
    'ex_connect': 'Conectează',
    "ex_toWebsite": "Website-ul lui {0}",
    "ex_adPrompt": "Interesat?",
    "ex_adInterested": "Da",
    "ex_adNotInterested": "Nu",
    "ex_booth": "Stand {0}",
    "ex_boothEmpty": "Niciun expozant în acest stand.",
    "ex_country": "Țară/Regiune",
    "ex_description": "Descriere",
    "ex_website": "Website",
    "ex_address": "Adresă",
    "ex_tagline": "Slogan",
    "ex_taglineDesc": "Un slogan scurt de până la 55 de caractere, inclusiv spații",
    "ex_link1": "Link 1",
    "ex_link2": "Link 2",
    "ex_link3": "Link 3",
    "ex_email": "Email",
    "ex_logo": "Logo",
    "ex_coverImage": "Imagine de copertă",
    "ex_alsoKnownAs": "Cunoscut și ca",
    'ex_saveProfileError': 'Salvare nereușită',
    'ex_saveProfileSuccess': 'Salvat cu succe',
    'ex_requiredFieldsError': 'Verificați câmpurile obligatorii',
    'ex_noLeads': 'Niciun lead colectat încă.',
    'ex_noMeetings': 'Niciun întâlnire programată încă.',
    'ex_contactDetails': 'Detalii de contact',
    'ex_profile': 'Atribute',
    'ex_links': 'Linkuri',
    'ex_files': 'Fișiere',
    'ex_linkType': 'Tip link',
    'ex_linkUrl': 'URL link',
    'ex_linkTitle': 'Titlu link',
    'ex_addLink': 'Adaugă link',
    'ex_deleteLink': 'Șterge link',
    'ex_addFile': 'Adaugă fișier',
    'ex_deleteFile': 'Șterge fișier',
    'ex_fileTitle': 'Titlu fișier',
    'ex_linkType': 'Tip fișier',
    'ex_downloadReport': 'Descarcă raport',
    'ex_leadsList': 'Listă de leaduri',
    'ex_addNew': 'Adaugă nou',
    'ex_showCam': 'Afișează camera',
    'ex_find': 'Găsește',
    'ex_findSponsor': 'Începeți să introduceți numele sponsorului',
    'ex_findExhibitor': 'Începeți să introduceți numele expozantului',
    'ex_myMeetings': 'Întâlnirile mele',
    'ex_linksAndFiles': 'Linkuri și fișiere',
    'ex_team': 'Echipă',
    'ex_generalDetails': 'Detalii generale',
    'ex_boothNotConfigured': 'Standul dvs. nu este configurat',
    'ex_contactOrganiser': 'Vă rugăm să contactați organizatorul',
    'ex_selectYourCompany': 'Selectați compania dvs.',
    'ex_clickOnOrganization': 'Faceți clic pe organizație pentru a o asocia.',
    'ex_authorizationRequired': 'Autorizare necesară',
    'ex_verifyYouAreAuthorized': 'Vă rugăm să verificați dacă sunteți autorizat',
    'ex_close': 'Închide',
    'ex_leads': 'lient potențial',


}

resources.login_ro = {
    'li_continueAs': "Continuă ca {0}",
    'li_or': "sau",
    'li_logout': "Deconectare",
    'li_tryAgain': "Încearcă din nou",
    'li_oops': "Oops",
    'li_disconnceted': "Ați fost deconectat din cauza lui {0}",
    'li_insertEmail': "Introduceți adresa de e-mail",
    'li_signIn': "Conectează-te la {0}",
    'li_anotherConnction': "Contul dvs. s-a conectat pe un alt dispozitiv",
    'li_email': "Email",
    'li_password': "Parolă",
    'li_startNextworking': "Conectare",
    'li_networkingWelcome': "<h3>Bun venit</h3><br><h4>Folosiți link-ul personal sau introduceți codul evenimentului</h4>",
    'li_invalidEventCode': "Vă rugăm să introduceți un cod de eveniment valid",
    'li_noEvent': "Acest eveniment nu există, vă rugăm să încercați din nou.",
    'li_loginLinkError': "Ne pare rău, solicitarea dvs. nu a putut fi finalizată. Vă rugăm să încercați din nou mai târziu.",
    'li_noPasswordLink': 'Nu aveți parolă?',
    'li_askOTP': 'Solicită o parolă de unică folosință',
    'li_eventCode': 'Cod eveniment #',
    'li_next': 'Următorul',
    'li_logIn': 'Conectare',
    'li_rememberMe': 'Ține-mă minte',
    'li_regNow': 'Nu ești încă înregistrat? Apasă aici',
    'li_otpPrompt': "<p>Nu îți amintești parola? Nicio problemă, îți putem trimite o parolă de unică folosință.</p><p>Vă rugăm să alegeți modul în care doriți să primiți parola:</p>",
    'li_otpEmail': 'Trimite parolă de unică folosință la e-mail',
    'li_otpSms': 'Trimite parolă de unică folosință la telefon',
    'li_otpEmailSuccess': "V-am trimis parola de unică folosință la {0}. Poate dura un minut să sosească.",
    'li_otpSmsSuccess': "V-am trimis parola de unică folosință la {0}. Poate dura un minut să sosească.",
    'li_enterCode': 'Introduceți parola de unică folosință',
    'li_otpRequired': 'Este necesară o parolă de unică folosință',
    'li_otpExceeded': 'Ați depășit numărul de încercări de recuperare permise',
    'li_invalidCode': 'Cod invalid',
    'li_otpFailed': 'Eroare la trimiterea codului de verificare, vă rugăm să încercați din nou',
    'li_wrongOtp': 'Cod incorect. Vă rugăm să încercați din nou.',
}

resources.general_ro = {
    'ea_myMeeting': "Sala mea de întâlnire",
    'ea_reloadApp': "Reîncarcă aplicația",
    'ea_logOut': "Deconectare",
    'ea_changeMode': "Schimbă modul",
    'ea_messages': "Mesaje",
    'ea_schedule': "Program",
    'ea_viewProfile': 'Profilul meu',
    'ea_viewExhibitorProfile': 'Profilul organizației',
    'ea_changeLang': 'Schimbă limba',
    'ea_pollStartErr': 'Nu se poate începe sondajul',
    'ea_pollStartSuccess': 'Sondajul a fost pornit cu succes',
    'ea_pollClosed': 'Sondaj închis',
    'ea_pollEnded': 'Vă mulțumim pentru participare',
    'ea_pollNoResults': 'Niciun rezultat încă',
    'ea_counterDays': 'Zile',
    'ea_counterHours': 'Ore',
    'ea_counterMinutes': 'Minute',
    'ea_counterSeconds': 'Secunde',
    'ea_enlarge': 'Mărește',
    'ea_play': 'Redă',
    'ea_stop': 'Stop',
    'ea_recordMessage': 'Trimiteți un mesaj video gazdei',
    'ea_sendMessage': 'Trimiteți o întrebare text gazdei',
    'ea_raisHand': 'Solicitare de a vorbi',
    'ea_saveAndClose': 'Salvează și închide',
    'ea_JoinNow': 'Alătură-te acum',
    'ea_readyToJoin': 'Ești gata să te alături?',
    'ea_getReady': 'Pregătește-te',
    'ea_emojiEmoticon': 'Exprimă plăcere',
    'ea_emojiThumbUp': 'Indică aprobare',
    'ea_emojiHandClap': 'Aplaudă',
    'ea_emojiKiss': 'Trimite iubire',
    'ea_emojiAngry': 'Exprimă furie',
    'ea_emojiThumbDown': 'Indică dezaprobare',
    'ea_startsIn': 'Începe în',
    'ea_screenName': 'Ecranul lui {0}',
    'ea_backToHome': 'apasă pentru a reveni la pagina de start ->',
    'ea_muteParticipants': 'Mută participanții',
    'ea_adminMessage': 'Mesaj de la gazdă',
    'ea_confirmAction': 'Confirmare necesară',
    'ea_limitReached': 'Numărul de vorbitori invitați simultan este limitat. Vă rugăm să încercați din nou mai târziu.',
    'ea_chatEmpty': 'Acest chat este gol în prezent. Trimiteți un mesaj pentru a începe!',
    'ea_typeMessage': 'Scrie un mesaj', 
    'ea_send': 'Trimite',
    'ea_now': 'acum',

}

resources.meetings_ro = {
    'mf_about': 'Despre',
    'mf_all': 'Toate',
    'mf_socialLinks': 'Linkuri de distribuit',
    'mf_country': 'Țară/Regiune',
    'mf_organization': 'Companie',
    'mf_title': 'Titlu',
    'mf_jobTitle': 'Funcție',
    'mf_profileSummary': 'Rezumat profil',
    'mf_profileExtension': 'Extensie profil',
    'mf_lang': 'Limbă',
    'mf_link1': 'Link de distribuit/website',
    'mf_link2': 'Link de distribuit 2',
    'mf_link3': 'Link de distribuit 3',
    'mf_link4': 'Link de distribuit 4',
    'mf_lectures': 'Lecții',
    'mf_profileSave': 'Salvează',
    'mf_profileImage': 'Fotografie profil',
    'mf_personalDetails': 'Detalii personale',
    'mf_saveProfileError': 'Eroare la salvarea profilului',
    'mf_saveProfileSuccess': 'Profil salvat cu succes',
    'mf_requiredFieldsError': 'Verificați câmpurile obligatorii',
    'mf_Online': 'Online',
    'mf_addNoteTo': 'Adăugați o notă la {0} {1}.',
    'mf_addMessage': 'Mesaj (opțional)',
    'mf_preferredTimes': 'Selectați-vă intervalele de timp preferate pentru întâlniri',
    'mf_selectTimes': 'Selectați-vă intervalele de timp preferate pentru întâlniri',
    'mf_myMeeting': 'Sala mea de întâlnire',
    'mf_onlineMeeting': 'Solicitare întâlnire online',
    'mf_connectWith': 'Doriți să vă conectați cu {0} {1} din {2}?',
    'mf_setMeeting': 'Stabiliți o întâlnire',
    'mf_selectTime': 'Selectați ora întâlnirii',
    'mf_scheduleMeeting': 'Programați o întâlnire...',
    'mf_meetNow': 'Întâlnește acum',
    'mf_sendMessage': 'Trimiteți un mesaj',
    'mf_face2Face': 'Solicitare întâlnire față în față',
    'mf_completeProfileTitle': 'Adăugați un rezumat al profilului',
    'mf_completeProfileImage': 'Vă rugăm să accesați profilul dvs. și să adăugați o imagine de profil',
    'mf_profileUpdate': 'Salvează',
    'mf_sendMessageFailed': 'Mesajul nu a fost trimis.',
    'mf_sendMessageSuccess': 'Mesajul a fost trimis.',
    'mf_completeMissingUnknown': 'Care este funcția dvs.?',
    'mf_completeMissingCompany': 'Actualizați numele companiei dvs.', 
    'mf_completeMissingPosition': 'Care este funcția dvs. în {0}?',
    'mf_completeMissingSummary': 'Adăugarea de informații la profilul dvs. vă îmbunătățește credibilitatea și îi ajută pe ceilalți să vă cunoască mai bine.',
    "mf_toWebsite": 'website-ul {0}',
    "mf_profileEdit": 'Editare',
    "mf_speaker": 'VORBITOR',
    "mf_exhibitor": 'EXPOZANT',
    "mf_profileShare": 'Distribuie',
    "mf_click": "Click",
    "mf_profileEditDesc": ' pentru a adăuga un rezumat al profilului',
    "mf_waitingInRoomTitle": 'Cineva așteaptă în camera dvs. chiar acum',
    "mf_waitingInRoomBody": 'Apasă pentru a te întâlni acum',
    "mf_newMessage": 'Mesaj nou',
    "mf_newMessageFrom": 'De la ',
    "mf_meetingRequest": 'Solicitare întâlnire nouă',
    "mf_meetingRequestPending": 'Solicitare întâlnire în așteptare',
    "mf_participantStatusOnline": '{0} este <b>Online</b> - deci nu ar trebui să dureze mult',
    "mf_participantStatusOffline": '{0} este offline',
    "mf_predefinedTimeSlots": 'Intervale de timp predefinite',
    "mf_custom": 'Personalizat',
    "mf_messageRequired": 'Vă rugăm să introduceți mesajul dvs.',
    "mf_meetingDateRequired": 'Vă rugăm să selectați data',
    "mf_meetingTimeRequired": 'Vă rugăm să selectați ora',
    "mf_informationRequired": 'Această informație este necesară',
    'mf_send': 'Trimite',
    'mf_more': 'Mai mult',
    'mf_speakers': 'Vorbitori',
    'mf_speakersKeynote': 'Vorbitori principali',
    'mf_speakersFeatured': 'Vorbitori invitați',
    'mf_speakersOrganizers': 'Organizatori',
    'mf_cancelMeetingSuccess': 'Întâlnire anulată',
    'mf_cancelMeetingFailed': 'Ștergerea întâlnirii a eșuat',
    'mf_rejectMeetingSuccess': 'Întâlnire refuzată',
    'mf_rejectMeetingFailed': 'Refuzarea întâlnirii a eșuat',
    'mf_acceptMeetingFailed': 'Acceptarea întâlnirii a eșuat',
    'mf_blockFailed': 'Blocare eșuată',
    'mf_sendScheduleFailed': 'Trimiterea programului a eșuat.',
    'mf_sendScheduleSuccess': 'Trimis cu succes, vă rugăm să verificați e-mailul.',
    'mf_websiteVisible': 'Fă-te vizibil pe site-ul evenimentului.',
    'mf_participants': 'Participanți',
    'mf_limitedUser': 'Acest utilizator este limitat deoarece detaliile contului de bază lipsesc',
    'mf_rejectMeeting': 'Sunteți sigur că doriți să refuzați această întâlnire?',
    'mf_yes': 'Da',
    'mf_no': 'Nu',
    'mf_requestMeeting': 'Solicită o întâlnire',
    'mf_messageExchange': 'Schimb de mesaje cu {0}',
    'mf_meetingScheduled': 'Întâlnire programată la {0} pe {1}',
    'mf_messageTo': 'Mesaj către {0}',
    'mf_wantToMeet': 'doreste sa te intalneasca',
    'mf_prefTime': 'Ora preferată de întâlnire:',
    'mf_accept': 'Acceptă',
    'mf_decline': 'Refuză',
    'mf_viewMeeting': 'Vizualizați întâlnirea',
    'mf_startMeeting': 'Începeți întâlnirea',
    'mf_onlineMeetingScheduled': 'Întâlnire online programată pe {0}',
    'mf_meetingUpdated': 'Întâlnire actualizată',
    'mf_updateMeeting': 'Actualizați întâlnirea',
    'mf_bcSent': '{0} ți-a trimis cartea lui de vizită',
    'mf_businessCard': 'Cartea de vizită',
    'mf_selectedTime': 'Ora preferată de întâlnire:',
    'mf_addLink': 'Adaugă link',
    'mf_profile': 'Profil',
    'mf_profilePrompt': 'Mențineți-vă rezumatul profilului scurt, clar și concis, evidențiind abilitățile, realizările și personalitatea dvs. unice.',
    'mf_profileSummaryHelp': 'Până la 1.000 de caractere',
    'mf_blockExMessages': 'Blocați mesajele de la expozanți și sponsori',
    'mf_blockParticipantMessages': 'Blocați mesajele de la participanți',
    'mf_noOrganization': "Profilul dvs. personal nu include numele unei organizații.<br>Pentru a crea un profil de organizație, vă rugăm<a href = '#!/MyProfile'> <u>editați-vă profilul personal</u></a>și adăugați numele unei organizații.",
    'mf_noMessages': 'Niciun mesaj',
    'mf_messagesDescription': 'Mesaje către și de la alți participanți. Faceți clic pe numele unui participant pentru a vedea chat-ul cu acel participant.',
    'mf_backToHome': 'Înapoi la pagina de pornire',
    'mf_findParticipant': 'Nume participant sau companie',
    'mf_getAMatch': 'Găsește o potrivire',
    'mf_advancedFind': 'Căutare avansată',
    'mf_position': 'Poziție',
    'mf_name': 'Nume',
    'mf_country': 'Țară',
    'mf_role': 'Rol',
    'mf_orderBy': 'Sortează după',
    'mf_orderByLast': 'Văzut ultima dată',
    'mf_sendingToSelf': 'Se pare că ați încercat să vă conectați cu dvs. Această funcție este momentan indisponibilă. De ce să nu explorați în schimb alte profiluri?',
    'mf_sendShedule': 'Trimiteți Programul la E-mail',
    'mf_meetings': 'Întâlniri',
    'mf_addMeeting': 'Adăugați întâlnire',
    'mf_thisMeetingSchedule': 'Acesta este programul dvs. de întâlniri.',
    'mf_thisMeetingScheduleSend': 'Pentru a-l adăuga la calendar, trimiteți-l la e-mailul dvs.',
    'mf_noActivities': 'Niciuna activitate încă.',
    'mf_createAPage': 'Creează o pagină pentru',
    'mf_noPage': '{0} nu are încă o pagină',
    'mf_authorizedToCreatePage': 'Sunt autorizat de {0} și am dreptul să acționez în numele său pentru a crea și gestiona această pagină',
    'mf_category': 'Categorie',
    'mf_searchDidNotMatch': 'Căutarea dvs. nu a găsit nimic de afișat.',
    'mf_networkingPrivacy': 'Notificare de Confidențialitate pentru Rețele Sociale',
    'mf_visibillityConsent': 'Pentru a întâlni și interacționa cu alți participanți, vă rugăm să aprobați participarea dumneavoastră pe platforma de networking.',
    'mf_visibilityConsentName': 'Numele tău, compania, titlul de muncă și imaginea pe care ai furnizat-o vor fi împărtășite cu alți participanți.',
    'mf_visibilityConsentNot': 'Adresa de email și numărul de telefon NU sunt ÎMPĂRTĂȘITE cu alți participanți.',
    'mf_takeBack': 'Întoarce-mă',
    'mf_agree': 'Sunt de acord',


}

resources.agenda_ro = {
    'ag_recording': 'înregistrare...',
    'ag_finished': 'Mesaj înregistrat',
    'ag_recordMsg': 'Începeți înregistrarea',
    'ag_finishRec': 'Apasă pentru a termina',
    'ag_reRecord': 'Înregistrează din nou',
    'ag_messageSend': 'Trimite',
    'ag_messageCancel': 'Anulează',
    'ag_noCamAccess': 'Vă rugăm să permiteți accesul la cameră',
    'ag_camAccess': 'Deschidere cameră',
    'ag_unsupported': 'Browserul dvs. nu este acceptat în prezent',
    'ag_messageFailed': 'Livrarea mesajului a eșuat. verificați datele introduse și încercați din nou',
    'ag_messageSuccess': 'Mesajul dvs. a fost trimis.',
    'ag_uploadInProgress': 'Încarcare înregistrare',
    'ag_messageRecordPrompt': 'Când sunteți gata, apăsați butonul de înregistrare pentru a înregistra. \n Înregistrarea dvs. va fi revizuită de organizator înainte de publicare',
    'ag_eposterSearch': 'Introduceți cuvânt cheie sau numele autorului',
    'ag_lectures': 'Lecții',
    'ag_posters': 'Postere',
    'ag_next': 'Următorul',
    'ag_previous': 'Anterior',
    'ag_lectureSearch': 'Introduceți numele lecției',
    'ag_find': 'Găsește lecție',
    'ag_sort': 'Sortează',
    'ag_sortAscending': 'Ascendent',
    'ag_sortDescending': 'Descendent',
    'ag_lectureNote': 'Note',
}

resources.registration_ro = {
    'rg_noTickets': 'Niciun bilet',
    'rg_noRegistrations': 'Niciun abonat',
}
;
