if (!String.prototype.format) { String.prototype.format = function () { var args = arguments; return this.replace(/{(\d+)}/g, function (match, number) { return typeof args[number] !== 'undefined' ? args[number] : match; }); }; } if (!Array.prototype.hasValue) { Array.prototype.hasValue = function (key, value) { for (var item in this) { if (this.hasOwnProperty(item)) { if (this[item][key] === value) { return true; } } } return false; }; } if (!Array.prototype.contains) { Array.prototype.contains = function (value) { if ($.inArray(value, this) === -1) { return false; } else { return true; } }; } if (!String.prototype.endsWith) { String.prototype.endsWith = function (suffix) { return this.indexOf(suffix, this.length - suffix.length) !== -1; }; } if (!String.prototype.isBase64) { String.prototype.isBase64 = function () { try { var decodedText = atob(this); var encodedText = btoa(decodedText); var isBase64Text = encodedText == this; return isBase64Text; } catch (ex) { return false; } }; } $.fn.onKeyPressEnter = function (func) { return this.each(function () { $(this).keypress(function (event) { var keycode = parseInt(event.keyCode ? event.keyCode : event.which); if (keycode === 13) { func.call(this, event); } }); }); }; $.fn.onKeyPressLeft = function (func) { return this.each(function () { $(this).keypress(function (event) { var keycode = parseInt(event.keyCode ? event.keyCode : event.which); if (keycode === 37) { func.call(this, event); } }); }); }; $.fn.onKeyPressRight = function (func) { return this.each(function () { $(this).keypress(function (event) { var keycode = parseInt(event.keyCode ? event.keyCode : event.which); if (keycode === 39) { func.call(this, event); } }); }); }; jQuery.fn.extend({ insertAtCaret: function (myValue) { return this.each(function (i) { if (document.selection) { //For browsers like Internet Explorer this.focus(); var sel = document.selection.createRange(); sel.text = myValue; this.focus(); } else if (this.selectionStart || this.selectionStart == '0') { //For browsers like Firefox and Webkit based var startPos = this.selectionStart; var endPos = this.selectionEnd; var scrollTop = this.scrollTop; this.value = this.value.substring(0, startPos) + myValue + this.value.substring(endPos, this.value.length); this.focus(); this.selectionStart = startPos + myValue.length; this.selectionEnd = startPos + myValue.length; this.scrollTop = scrollTop; } else { this.value += myValue; this.focus(); } }); } }); $.fn.resetForm = function () { var form = $(this); var inputs = form.find( "input:not([disabled]):not(.disabledItem):not([type='hidden'])" ); $.each(inputs, function () { var input = $(this); var type = input.prop('type'); if (type === 'checkbox' || type === 'radio') { input.prop('checked', false); } else { input.val(''); } }); var multiselects = form.find('select[multiple]'); $.each(multiselects, function () { var multiselect = $(this); var kendoMultiSelect = multiselect.data('kendoMultiSelect'); if (typeof kendoMultiSelect !== 'undefined') kendoMultiSelect.value([]); }); }; var CommonUtils = (function () { var commonUtils = function () {}; commonUtils.allowOnlyNumber = function (e) { return allowOnlyNumber(e); }; commonUtils.checkBrowserVersion = function () { return CheckBrowserVersion(); }; commonUtils.checkKendoComboBoxHasItemByValue = function ( comboBoxName, value ) { return checkKendoComboBoxHasItemByValue(comboBoxName, value); }; commonUtils.createGuid = function (withoutHyphen) { return createGuid(withoutHyphen); }; commonUtils.exists = function (variable) { return exists(variable); }; commonUtils.getHtmlInnerTextFromString = function (variable) { return getHtmlInnerTextFromString(variable); }; commonUtils.getNormalizedHtmlFromString = function (variable) { return getNormalizedHtmlFromString(variable); }; commonUtils.isBool = function (variable) { return isBool(variable); }; commonUtils.isFunction = function (variable) { return isFunction(variable); }; commonUtils.isNull = function (variable) { return isNull(variable); }; commonUtils.isNullOrEmpty = function (variable) { return isNullOrEmpty(variable); }; commonUtils.isNullOrUndefined = function (variable) { return isNull(variable) || isUndefined(variable); }; commonUtils.isNullOrWhiteSpace = function (variable, checkUnstrippedText) { return isNullOrWhiteSpace(variable, checkUnstrippedText); }; commonUtils.isNullOrEmptyOrUndefined = function (variable) { return isNullOrEmpty(variable) || isUndefined(variable); }; commonUtils.isUndefined = function (variable) { return isUndefined(variable); }; commonUtils.parseBool = function (variable) { return parseBool(variable); }; commonUtils.parseNull = function (variable) { return parseNull(variable); }; commonUtils.setCaretPosition = function (input, position) { return setCaretPosition(input, position); }; commonUtils.Log = function (text) { if (!isUndefined(console) && !isUndefined(console.error)) { console.error(text); } }; commonUtils.formFileDownload = function (url, fileId) { if ($('#hidden-form').length > 0) { $('#hidden-form').remove(); } $('
') .attr({ method: 'POST', id: 'hidden-form', action: url }) .appendTo('body'); $('') .attr({ type: 'hidden', id: 'Id', name: 'Id', value: fileId }) .appendTo('#hidden-form'); $('#hidden-form').submit(); }; commonUtils.LineBreakRegex = new RegExp('\r?\n', 'g'); function createGuid(withoutHyphen) { function s4() { return Math.floor((1 + Math.random()) * 0x10000) .toString(16) .substring(1); } if (withoutHyphen) { return s4() + s4() + s4() + s4() + s4() + s4() + s4() + s4(); } return ( s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4() ); } function parseBool(variable) { if ( variable === 'true' || variable === 'True' || variable === true || variable === 1 || variable === '1' ) { return true; } return false; } function parseNull(variable) { if (variable.toLowerCase() === 'null') { return null; } return variable; } function exists(object) { return object.length > 0; } function isUndefined(variable) { return typeof variable === 'undefined'; } function isNull(variable) { return variable == null; } function isNullOrEmpty(variable) { return isNull(variable) || variable === ''; } function isNullOrWhiteSpace(variable, checkUnstrippedText) { if (typeof variable !== 'string') { return true; } if (isUndefined(checkUnstrippedText)) { checkUnstrippedText = true; } var text; if (checkUnstrippedText) { text = variable; } else { text = getHtmlInnerTextFromString(variable); } var result = text.trim(); return isNullOrEmpty(result); } function isBool(variable) { return typeof variable === 'boolean'; } function isFunction(variable) { return typeof variable === 'function'; } function getNormalizedHtmlFromString(variable) { var tempDivElement = document.createElement('textarea'); tempDivElement.innerHTML = variable; return tempDivElement.value; } function getHtmlInnerTextFromString(variable) { var tempDivElement = document.createElement('div'); tempDivElement.innerHTML = getNormalizedHtmlFromString(variable); return tempDivElement.innerText; } function allowOnlyNumber(e) { // Allow: backspace, delete, tab, escape, enter and . if ( $.inArray(e.keyCode, [46, 8, 9, 27, 13, 110]) !== -1 || // Allow: Ctrl/cmd+A (e.keyCode == 65 && (e.ctrlKey === true || e.metaKey === true)) || // Allow: Ctrl/cmd+C (e.keyCode == 67 && (e.ctrlKey === true || e.metaKey === true)) || // Allow: Ctrl/cmd+X (e.keyCode == 88 && (e.ctrlKey === true || e.metaKey === true)) || // Allow: home, end, left, up, right, down (e.keyCode >= 35 && e.keyCode <= 40) ) { // let it happen, don't do anything return; } // Ensure that it is a number and stop the keypress if ( (e.shiftKey || e.keyCode < 48 || e.keyCode > 57) && (e.keyCode < 96 || e.keyCode > 105) ) { e.preventDefault(); } } function checkKendoComboBoxHasItemByValue(comboBoxName, value) { var kendoComboBox = KretaComboBoxHelper.getKendoComboBoxData(comboBoxName); var comboBoxItemsByValue = $.grep(kendoComboBox.dataItems(), function (e) { return e.Value === value; }); var result = comboBoxItemsByValue.length > 0; return result; } function CheckBrowserVersion() { // ha mobilon lévő böngészőről nézi a böngészőt, nincs figyelmeztetés var indexOfMOBI = navigator.userAgent.indexOf('Mobi'); if (indexOfMOBI !== -1) { return true; } var MinVersionEdgeHTML = 14; var MinVersionFirefox = 50; var MinVersionChrome = 50; var MinVersionOpera = 36; var KretaBrowser = (function () { var userAgent = navigator.userAgent; var arr = userAgent.match( /(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i ) || []; var browser = arr[1]; var version = arr[2]; //IE if (/trident/i.test(browser)) { browser = 'IE'; var ieVersionArr = /\brv[ :]+(\d+)/g.exec(userAgent) || []; version = ieVersionArr[1] || ''; return { browser: browser, version: version }; } //Opera és Edge if (browser === 'Chrome') { var isEdgeOrOperaArr = userAgent.match(/\b(OPR|Edge)\/(\d+)/i); if (isEdgeOrOperaArr !== null) { browser = isEdgeOrOperaArr[1].replace('OPR', 'Opera'); version = isEdgeOrOperaArr[2]; return { browser: browser, version: version }; } } var isOtherVersionArr = userAgent.match(/version\/(\d+)/i); //Safari if (isOtherVersionArr !== null) { version = isOtherVersionArr[1]; } return { browser: browser, version: version }; })(); // verzió és böngésző ellenőrzés if ( KretaBrowser.browser === 'Edge' && KretaBrowser.version >= MinVersionEdgeHTML ) { return true; } if ( KretaBrowser.browser === 'Opera' && KretaBrowser.version >= MinVersionOpera ) { return true; } if ( KretaBrowser.browser === 'Firefox' && KretaBrowser.version >= MinVersionFirefox ) { return true; } if ( KretaBrowser.browser === 'Chrome' && KretaBrowser.version >= MinVersionChrome ) { return true; } return false; } function setCaretPosition(input, position) { if (input.setSelectionRange) { // Modern browsers input.focus(); input.setSelectionRange(position, position); } else if (input.createTextRange) { // IE8 and below var textRange = input.createTextRange(); textRange.collapse(true); textRange.moveEnd('character', position); textRange.moveStart('character', position); textRange.select(); } } commonUtils.hunSorterWithKey = function (key) { return function hunSort(x, y) { if (!x.hasOwnProperty(key) || !y.hasOwnProperty(key)) { return 0; } var a = x[key]; var b = y[key]; var hunABC = [ 'A', 'Á', 'B', 'C', 'CS', 'D', 'DZ', 'DZS', 'E', 'É', 'F', 'G', 'GY', 'H', 'I', 'Í', 'J', 'K', 'L', 'LY', 'M', 'N', 'NY', 'O', 'Ó', 'Ö', 'Ő', 'P', 'Q', 'R', 'S', 'SZ', 'T', 'TY', 'U', 'Ú', 'Ü', 'Ű', 'V', 'W', 'X', 'Y', 'Z', 'ZS' ]; var digraphs = ['CS', 'DZ', 'GY', 'LY', 'NY', 'SZ', 'TY', 'ZS']; var trigraphs = ['DZS']; var hunAccentsMap = { Á: 'A', É: 'E', Í: 'I', Ó: 'O', Ő: 'Ö', Ú: 'U', Ű: 'Ü' }; var foreignCharactersMap = { // A À: 'A', Â: 'A', Ă: 'A', Ä: 'A', Ą: 'A', Å: 'A', Ā: 'A', Æ: 'A', // C Č: 'C', Ć: 'C', Ç: 'C', // D Ď: 'D', Ð: 'D', Dž: 'D', Đ: 'D', // E È: 'E', Ê: 'E', Ě: 'E', Ë: 'E', Ę: 'E', Ē: 'E', // G Ğ: 'G', // I Ì: 'I', Î: 'I', Ï: 'I', İ: 'I', Ī: 'I', // L Ĺ: 'L', Ľ: 'L', Lj: 'L', Ł: 'L', Ḷ: 'L', Ḹ: 'L', // N Ň: 'N', Ñ: 'N', Nj: 'N', // O Ò: 'O', Ô: 'O', Õ: 'O', Ō: 'O', Ø: 'O', Œ: 'O', // R Ŕ: 'R', Ř: 'R', Ṛ: 'R', Ṝ: 'R', // S Ś: 'S', Š: 'S', Ŝ: 'S', Ș: 'S', Ş: 'S', // T Ť: 'T', Ț: 'T', Þ: 'T', // U Ù: 'U', Û: 'U', Ů: 'U', Ū: 'U', // Y Ý: 'Y', Ÿ: 'Y', // Z Ź: 'Z', Ż: 'Z', Ž: 'Z' }; var removeAccent = false; // clean special characters and replace ssz -> szsz var cleanerRegex = /(.)(?=\1)(DZS|CS|DZ|GY|LY|NY|SZ|TY|ZS)| |-|\[|\]|\.|\(|\)|/g; var cleanForeignCharacters = function cleanForeignCharacters(text) { return [].concat(text).reduce(function (acc, curr) { return acc + (foreignCharactersMap[curr] || curr); }, ''); }; var getUpperCaseAndReplaxeTwiceOccured = function getUpperCaseAndReplaxeTwiceOccured(text) { return cleanForeignCharacters(text.toUpperCase()).replace( cleanerRegex, '$2$2' ); }; var aUpper = getUpperCaseAndReplaxeTwiceOccured(a); var bUpper = getUpperCaseAndReplaxeTwiceOccured(b); var compareNumbers = function compareNumbers(i, j) { if (i < j) { return -1; } if (i > j) { return 1; } return 0; }; var getCharAndShift = function getCharAndShift(text, index) { var shift = 3; var _char = ''; if (trigraphs.includes(text.substring(index, index + shift))) { _char = text.substring(index, index + shift); } else { shift = 2; if (digraphs.includes(text.substring(index, index + shift))) { _char = text.substring(index, index + shift); } else { shift = 1; _char = text.charAt(index); } } return { shift: shift, char: _char, isNumber: Number.isInteger(parseInt(_char)) }; }; var getIndex = function getIndex(_char2) { return hunABC.indexOf( (removeAccent && hunAccentsMap[_char2]) || _char2 ); }; var compareTexts = function compareTexts(_ref) { var aIndex = _ref.aIndex, bIndex = _ref.bIndex; var _getCharAndShift = getCharAndShift(aUpper, aIndex), aShift = _getCharAndShift.shift, aCurrentChar = _getCharAndShift['char'], aIsNumber = _getCharAndShift.isNumber; var _getCharAndShift2 = getCharAndShift(bUpper, bIndex), bShift = _getCharAndShift2.shift, bCurrentChar = _getCharAndShift2['char'], bIsNumber = _getCharAndShift2.isNumber; var aCharIndex = getIndex(aCurrentChar); var bCharIndex = getIndex(bCurrentChar); if (aIsNumber && bIsNumber) { var aNumber = parseInt(aCurrentChar); var bNumber = parseInt(bCurrentChar); if (aNumber !== bNumber) { return compareNumbers(aNumber, bNumber); } } else if (aCharIndex !== bCharIndex) { return compareNumbers(aCharIndex, bCharIndex); } return compareTexts({ aIndex: aIndex + aShift, bIndex: bIndex + bShift }); }; var cleanAccent = function cleanAccent(text) { return [].concat(text).reduce(function (acc, curr) { return acc + (hunAccentsMap[curr] || curr); }, ''); }; if (aUpper === bUpper) { var aFirstChar = getIndex(a.charAt(0)); var bFirstChar = getIndex(b.charAt(0)); return compareNumbers(aFirstChar, bFirstChar); } return compareTexts({ aIndex: 0, bIndex: 0 }); }; }; commonUtils.getBankszamlaVezetoBankAjax = function (url, bankszamlaszam) { if (bankszamlaszam === undefined) { return ''; } return $.ajax({ type: 'POST', global: false, dataType: 'html', url: url, data: { bankszamlaszam: bankszamlaszam }, success: function (data) { tmp = data; }, error: function (xhr, textStatus, errorThrown) { tmp = ''; } }); }; commonUtils.dateFormat = 'YYYY-MM-DD'; commonUtils.dateTimeFormat = 'YYYY-MM-DD HH:mm'; commonUtils.getUtcTimeFromDateAndTime = function (date, time) { var datum; if (CommonUtils.isNullOrUndefined(date)) { datum = moment(new Date()).format(commonUtils.dateFormat); } else { var parameterDateFormat = date.indexOf('-') > -1 ? commonUtils.dateFormat : 'YYYY. MM. DD.'; datum = moment(date, parameterDateFormat).format(commonUtils.dateFormat); } var splittedTime = ''; if (time.length <= 5) { splittedTime = time.substr(time.length - 5); } else { splittedTime = moment(time, 'HH:mm:ss').format('LT'); // LT -> AM/PM szerepel a time-nál } var idopont = moment(datum + splittedTime, commonUtils.dateTimeFormat); var utcIdopont = moment(idopont).utc().format(commonUtils.dateTimeFormat); var utcTime = moment(utcIdopont).format('HH:mm'); return utcTime; }; commonUtils.SetUtcDateTimeFromDatetime = function (dateTime) { return ( moment(dateTime).format('YYYY-MM-DD') + ' ' + commonUtils.getUtcTimeFromDateAndTime( moment(dateTime).format('YYYY-MM-DD'), moment(dateTime).format('HH:mm:ss') ) ); }; commonUtils.EscapeControlCharacters = function (jsonString) { return ( jsonString .replace(/\n/g, '\\n') // line feed .replace(/\r/g, '\\r') // carriage return .replace(/\t/g, '\\t') // horizontal tab //.replace(/\b/g, "\\b") // backspace .replace(/\v/g, '\\v') // vertical tab //.replace(/\a/g, "\\a") // bell .replace(/\f/g, '\\f') ); // form feed }; commonUtils.JSONparse = function (json) { if (json.substring(1, 2) === '\r' || json.substring(1, 2) === '\n') { return JSON.parse(json); } return JSON.parse(CommonUtils.EscapeControlCharacters(json)); }; //Required if mezők UI oldali ellenőrzése //params: expression: bool, fieldId:string, errorMessage:string -> (pl.: '@Html.Raw(TanuloResource.TanterviJellemzoMegadasaKotelezo.Replace(Environment.NewLine, ""))' ) commonUtils.UpdateRequiredProperies = function (expression, fieldId, errorMessage) { if (expression) { $(fieldId).rules("add", "required"); $(fieldId).attr("data-rule-required", "true"); $(fieldId).attr("data-msg-required", errorMessage); $(fieldId).attr("aria-required", "true"); } else { $(fieldId).rules("remove", "required"); $(fieldId).attr("data-rule-required", "false"); $(fieldId).attr("aria-required", "false"); } } commonUtils.ConvertToDateWithPointsFormat = function (dateWithPoints) { if (dateWithPoints.includes('.')) { splitarray = dateWithPoints.split("."); return splitarray[0] + "-" + splitarray[1] + "-" + splitarray[2]; } return dateWithPoints; } return commonUtils; })();