{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///../20231026163522/app/javascript/packs/pages.js","webpack:///../20231026163522/app/javascript/account/account_core.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","String","isEmpty","this","length","trim","window","init_account_form","form_type","liveValidation","validate_fields","refresh_verification_view","$","change","submit","event","val","validate_form","click","submit_profile_form","modal","Date","now","forEach","field","on","item","attr","is_field_valid","detect_form_edit","process_input_errors","init_create_profile_form","edit_mode","prop","show","hide","init_contact_form","load_state_provinces","init_personal_form","marital_status_refresh","hide_altname_fields_downto","index","animate","current","previous","validate_all_lang_profs","css","parseInt","replace","input","next","is","init_course_history_form","ack_date","init_settings","init_change_password","init_phone_field","target","script","intlTelInput","document","querySelector","nationalMode","utilsScript","formatOnDisplay","initialCountry","undefined","current_country_code","autoHideDialCode","customPlaceholder","selectedCountryPlaceholder","countryData","placeholder","dialCode","dialCodeRegex","RegExp","slice","dialCodePlaceholderMatch","match","err","_placeholder","_div","tel_inputs","push","validate_phone","input_errors","div","addClass","scrollToElement","set_tel_country","code","setCountry","country_id","path","profile_base_url","getJSON","data","iso_code","options","first_option","html","provinces","sp","selected","id","description","empty","fail","console","log","is_old_student","is_forgot_verification","elm","form_target","scrollTop","position","top","ratio","width","dist","offset","height","scrollToTarget","containerEl","isElement","nodeType","isNumber","toString","offsetTop","scrollHeight","offsetHeight","valid","scrolled","tab","each","parent","test","showInvalid","showValid","validate_lang_proficiency","lang","prof","td_lang","td_prof","number","hasCountryCode","startsWith","isValidNumber","errorCode","getValidationError","phone_input_errors","mesg","secondary","message","invalid","first","is_date_valid","selected_date","PHRASE_FUTURE_DATE_ERROR","get_course_date","PHRASE_REQUIRED","PHRASE_INVALID","loc_id","find","includes","is_password_valid","password","is_email_valid","other","is_date_range_valid","is_course_duration_valid","is_date_range_overlap","PHRASE_DATE_RANGE_OVERLAPS","PHRASE_INVALID_DURATION","PHRASE_INVALID_DATE_RANGE","text","removeClass","pass","email","init_date_input","date","get_date_input","zeroPadding","len","day","month","year","str","required","day_optional","act","pos","location","href","indexOf","substring","enabled_save_button","enable_save_button","webkit","messageHandlers","callbackHandler","postMessage","submit_os_account_form","user","delete_image","showConfirm","title","yes","no","callback_or_url","unbind","check_email_confirmation","check_email_errors","check_email_counter","confirmed","setTimeout","confirm_sync","url","auto_sync","prefix","src","img","focus","init_bootstrap_table","bootstrapTable","sortable","mobileResponsive","editable","minWidth","pagination","search","e","row","$element"],"mappings":"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","file":"js/pages-c8fed609257b50c49f54.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 359);\n","import 'account/account_core'\n","String.prototype.isEmpty = function() {\n return (this.length === 0 || this.trim().length === 0);\n};\n\nwindow.init_account_form = function() {\n window.form_type = 'account'\n window.liveValidation = false\n window.validate_fields = [\n 'first_name', 'last_name', 'email', 'login_name', 'password', 'password_confirm',\n 'os_user', 'os_pass', 'last_course_date', 'last_course_location', 'last_course_teachers']\n\n refresh_verification_view()\n $('#forgot-verification-cb').change(function() {\n refresh_verification_view()\n })\n\n $('.profile-form').submit(function(event) {\n if ($('input[name=edit_option]').val() === 'delete') {\n return true\n }\n return validate_form()\n })\n\n $('#create_profile').click(function() {\n submit_profile_form()\n })\n\n $('#accept_policy').click(function() {\n $('.policy-acknowledgement').modal('hide');\n $('#policy_ack_field').val(Date.now())\n $('.profile-form').submit()\n })\n\n $('#reject_policy, .modal-header .close').click(function() {\n $('.policy-acknowledgement').modal('hide');\n })\n\n $('#old_student_checkbox').change(function () {\n refresh_verification_view()\n })\n\n window.validate_fields.forEach(function(field) {\n $('#' + field).on(\"change paste keyup\", function() {\n if (window.liveValidation === true) {\n var item = $(this).attr('id')\n is_field_valid(item)\n if (item === 'os_user') is_field_valid('os_pass')\n if (item === 'os_pass') is_field_valid('os_user')\n }\n })\n });\n\n detect_form_edit()\n process_input_errors()\n}\n\nwindow.init_create_profile_form = function() {\n window.form_type = 'profile'\n window.edit_mode = false\n window.liveValidation = false\n window.validate_fields = ['email', 'login_name', 'password', 'password_confirm', 'os_user', 'os_pass']\n refresh_verification_view()\n window.validate_fields.forEach(function(field) {\n $('#' + field).on(\"change paste keyup\", function() {\n if (window.liveValidation === true) {\n var item = $(this).attr('id')\n is_field_valid(item)\n if (item === 'os_user') is_field_valid('os_pass')\n if (item === 'os_pass') is_field_valid('os_user')\n }\n });\n });\n $('#create_profile_cb').change(function() {\n if ($(this).prop('checked')) {\n $('#account_form').show()\n $('#create_profile_btn').show()\n } else {\n $('#account_form').hide()\n $('#create_profile_btn').hide()\n }\n })\n $('#create_profile_btn').click(function () {\n submit_profile_form()\n })\n $('#old_student_checkbox').change(function () {\n refresh_verification_view()\n })\n process_input_errors()\n}\n\nwindow.init_contact_form = function() {\n window.form_type = 'contact'\n window.liveValidation = false\n window.validate_fields = []\n $('#home_country_id').change(function () {\n load_state_provinces($('#home_country_id').val())\n })\n $('.profile-form').submit(function(event) {\n return validate_form()\n })\n detect_form_edit()\n process_input_errors()\n}\n\nwindow.init_personal_form = function() {\n function marital_status_refresh() {\n if ($('#marital_status').val() === 'Married') {\n $('#spouse_name_field').show()\n $('#spouse_is_meditator_field').show()\n } else {\n $('#spouse_name_field').hide()\n $('#spouse_is_meditator_field').hide()\n }\n }\n\n function hide_altname_fields_downto(index, animate) {\n for (var n = 5; n > index; n--) {\n var current = $('#alternate_name' + n + '_field')\n var previous = $('#alternate_name' + (n-1) + '_field')\n if ($('input', current).val().length === 0) {\n if ($('input', previous).val().length === 0) {\n current.hide(animate ? 400 : 0)\n } else {\n break\n }\n } else {\n break\n }\n }\n }\n\n window.form_type = 'personal'\n window.liveValidation = false\n window.validate_fields = ['date_of_birth']\n $('#home_country_id').change(function () {\n load_state_provinces($('#home_country_id').val())\n })\n $('.profile-form').submit(function(event) {\n return validate_form()\n })\n $('.select-lang-prof').on(\"change\", function() {\n $('#lang_prof_modified').val('true')\n if (window.liveValidation === true) validate_all_lang_profs(true, false)\n })\n $('#profile_image').on('change', function() {\n $('#profile_image_field .input-image').css('display', 'none')\n })\n for (var n = 1; n <= 5; n++) {\n $('#alternate_name' + n + '_field').on(\"change paste keyup\", function() {\n var index = parseInt($(this).attr('id').replace(/\\D/g,'')) + 1\n var input = $('input', this).val()\n if (index <= 5) {\n var next = $('#alternate_name' + index + '_field')\n if (input.length > 0) {\n if (!next.is(\":visible\")) next.show(400)\n } else {\n hide_altname_fields_downto(index-1, true)\n }\n }\n })\n }\n $('#marital_status').on('change', function() {\n marital_status_refresh()\n })\n detect_form_edit()\n process_input_errors()\n hide_altname_fields_downto(1, false)\n marital_status_refresh()\n}\n\nwindow.init_course_history_form = function() {\n window.form_type = 'courses'\n $('input[inputmode=numeric]').on(\"change paste keyup\", function() {\n var val = $(this).val().replace(/[^0-9]/g,'');\n $(this).val(val)\n })\n detect_form_edit()\n}\n\n// DO NOT rename or change this function, it is being used by the iOS mobile app\nwindow.submit_profile_form = function() {\n if (window.form_type === 'account') {\n if (validate_form() === true) {\n if ($('.policy-acknowledgement').length > 0) {\n var ack_date = $('#policy_ack_field').val()\n if (ack_date !== '' && Date.now() - parseInt(ack_date) < 60*60*24*30*11*1000) {\n $('.profile-form').submit();\n } else {\n $('.policy-acknowledgement').modal('show');\n }\n } else {\n $('.profile-form').submit();\n }\n } else {\n window.liveValidation = true;\n }\n return;\n }\n else if (window.form_type === 'profile') {\n if (validate_form() === true) {\n $('.main-container form input[name=exit_action]').val('create_profile')\n $('.main-container form').submit()\n } else {\n window.liveValidation = true\n }\n return\n }\n else if (window.form_type === 'courses' || window.form_type === 'change_password') {\n if (validate_form() === true) {\n $('.profile-form').submit()\n } else {\n window.liveValidation = true\n }\n return\n }\n else {\n window.liveValidation = true\n }\n $('.profile-form').submit()\n}\n\nwindow.init_settings = function() {\n window.form_type = 'settings'\n detect_form_edit()\n}\n\nwindow.init_change_password = function() {\n window.form_type = 'change_password'\n window.liveValidation = false\n window.edit_mode = false\n window.validate_fields = ['current_password', 'password', 'password_confirm']\n window.validate_fields.forEach(function(field) {\n $('#' + field).on(\"change paste keyup\", function() {\n if (window.liveValidation === true) {\n is_field_valid($(this).attr('id'))\n }\n })\n });\n process_input_errors()\n detect_form_edit()\n}\n\nwindow.init_phone_field = function(target, script) {\n var input = window.intlTelInput(document.querySelector(target), {\n nationalMode: false,\n utilsScript: script,\n formatOnDisplay: true,\n initialCountry: window.current_country_code !== undefined ? window.current_country_code : \"us\",\n autoHideDialCode: true,\n customPlaceholder: function(selectedCountryPlaceholder, countryData) {\n var placeholder = \"\"\n try {\n const dialCode = countryData.dialCode;\n const dialCodeRegex = new RegExp(\"\\\\+\" + dialCode.slice(0, 1) + \"\\\\s?\" + dialCode.slice(1));\n const dialCodePlaceholderMatch = selectedCountryPlaceholder.match(dialCodeRegex);\n const dialCodePlaceholder = dialCodePlaceholderMatch ? dialCodePlaceholderMatch[0] : \"+\" + dialCode;\n const restOfNumber = selectedCountryPlaceholder.replace(dialCodeRegex, '');\n placeholder = dialCodePlaceholder + restOfNumber.replace(/\\d/g, 'x');\n } catch(err) { }\n input._placeholder = placeholder\n return placeholder\n },\n });\n input._placeholder = ''\n input._div = $(target + '_field')\n if (window.tel_inputs === undefined) {\n window.tel_inputs = []\n }\n window.tel_inputs.push(input)\n $(target).on(\"change paste keyup\", function() {\n if(window.liveValidation === true) validate_phone(input)\n });\n}\n\nwindow.process_input_errors = function() {\n var scrolled = false\n if (window.input_errors !== undefined) {\n for (var key in window.input_errors) {\n if (window.input_errors.hasOwnProperty(key)) {\n var div = $('#'+key+'_field')\n div.addClass('has-error')\n $('#' + key).on(\"change paste keyup\", function() {\n is_field_valid($(this).attr('id'))\n })\n if (scrolled === false && div.length > 0) {\n scrollToElement(div)\n }\n window.liveValidation = true\n }\n }\n }\n}\n\nwindow.set_tel_country = function(code) {\n if (window.tel_inputs !== undefined) {\n window.tel_inputs.forEach(function(input) {\n if($('input', input._div).val().length === 0) {\n input.setCountry(code)\n }\n });\n }\n}\n\nwindow.load_state_provinces = function(country_id) {\n var path = profile_base_url() + '/contact/country/' + country_id\n var selected_id = -1\n $.getJSON(path, function(data) {\n set_tel_country(data.iso_code)\n var options = '';\n var first_option = ''\n data.provinces.forEach(function(sp) {\n var selected = (sp.id === selected_id) ? 'selected' : ''\n options += ''\n });\n $('#state_province_id').empty()\n $('#state_province_id').html(first_option + options)\n }).fail(function () {\n console.log('load data error')\n });\n}\n\nwindow.refresh_verification_view = function() {\n if (is_old_student()) {\n $('#os-verification-form').show()\n } else {\n $('#os-verification-form').hide()\n }\n if (is_forgot_verification()) {\n $('#verification-user-pass-inputs').hide()\n $('#verification-forgot-inputs').show()\n } else {\n $('#verification-user-pass-inputs').show()\n $('#verification-forgot-inputs').hide()\n }\n}\n\nwindow.is_old_student = function() {\n return $('#old_student_checkbox').prop('checked')\n}\n\nwindow.is_forgot_verification = function() {\n return $('input[name=forgot_verification]').prop('checked')\n}\n\nwindow.scrollToElement = function(elm) {\n if (elm.length === 0) {\n console.log('element not found')\n return\n }\n if (window.form_target) {\n window.form_target.scrollTop(window.form_target.scrollTop() + elm.position().top - 15)\n } else {\n var ratio = ($(window).width() <= 768) ? 0.1 : 0.5\n var dist = elm.offset().top - ($(window).height() * ratio)\n $(window).scrollTop(dist)\n }\n}\n\nwindow.scrollToTarget = function(target, containerEl) {\n var isElement = target && target.nodeType === 1,\n isNumber = Object.prototype.toString.call(target) === '[object Number]';\n\n if (isElement) {\n containerEl.scrollTop = target.offsetTop;\n } else if (isNumber) {\n containerEl.scrollTop = target;\n } else if (target === 'bottom') {\n containerEl.scrollTop = containerEl.scrollHeight - containerEl.offsetHeight;\n } else if (target === 'top') {\n containerEl.scrollTop = 0;\n }\n};\n\nwindow.validate_form = function() {\n var valid = true\n var scrolled = false\n if (window.validate_fields !== undefined) {\n window.validate_fields.forEach(function(field) {\n if (is_field_valid(field) === false) {\n valid = false\n if (!scrolled) {\n scrollToElement($('#'+field+'_field'))\n scrolled = true\n }\n }\n });\n }\n if (window.tel_inputs !== undefined) {\n window.tel_inputs.forEach(function(input) {\n if (!validate_phone(input)) {\n valid = false\n if (!scrolled) {\n scrollToElement(input._div)\n scrolled = true\n }\n }\n });\n }\n if (window.form_type === 'personal') {\n valid = validate_all_lang_profs(valid, scrolled)\n }\n if (window.form_type === 'courses') {\n var tab = $('#selected_tab').val() === '1' ? $('#long-courses') : $('#short-courses')\n $('input[type=number]', tab).each(function() {\n var div = $(this).parent()\n if (/\\D/.test($(this).val())) {\n showInvalid(div)\n valid = false\n if (!scrolled) {\n scrollToElement(div)\n scrolled = true\n }\n } else {\n showValid(div)\n }\n })\n }\n return valid\n}\n\nwindow.validate_all_lang_profs = function(valid, scrolled) {\n ['1', '2', '3'].forEach(function(n) {\n valid = validate_lang_proficiency(valid, scrolled, $('#language_' + n), $('#proficiency_' + n))\n });\n valid = validate_lang_proficiency(valid, scrolled, $('#dl_language_1'), $('#dl_proficiency_1'))\n return valid\n}\n\nwindow.validate_lang_proficiency = function(valid, scrolled, lang, prof) {\n var td_lang = lang.parent()\n var td_prof = prof.parent()\n if (!lang.val().isEmpty() && prof.val().isEmpty()) {\n showInvalid(td_prof)\n valid = false\n if (!scrolled) {\n scrollToElement(prof)\n scrolled = true\n }\n } else {\n showValid(td_prof)\n }\n if (lang.val().isEmpty() && !prof.val().isEmpty()) {\n showInvalid(td_lang)\n valid = false\n if (!scrolled) {\n scrollToElement(lang)\n scrolled = true\n }\n }\n else {\n showValid(td_lang)\n }\n return valid\n}\n\nwindow.validate_phone = function(input) {\n var number = $('input', input._div).val()\n var hasCountryCode = number.startsWith(\"+\")\n if ((input.isValidNumber() && hasCountryCode) || number.length === 0) {\n showValid(input._div)\n return true\n } else {\n var errorCode = !hasCountryCode ? 6 : input.getValidationError();\n if (window.phone_input_errors) {\n var mesg = window.phone_input_errors[errorCode]\n if (errorCode !== 0 && errorCode !== 4 && input._placeholder !== undefined && input._placeholder !== '') {\n mesg = mesg + ' (' + input._placeholder + ')'\n }\n $('.error-msg', input._div).html(mesg)\n }\n showInvalid(input._div)\n return false\n }\n}\n\nwindow.is_field_valid = function(field, secondary) {\n var message = null\n var invalid = false\n var div = $('#'+field+'_field')\n var input = $('input', div).first()\n if (input.prop('type') === 'radio') {\n input = $('input[type=radio]:checked', div)\n if (input.first().val() === undefined) {\n showInvalid(div)\n return false\n } else {\n showValid(div)\n return true\n }\n }\n if (input.length === 0) input = $('select', div).first()\n var value = input.first().val()\n if (value === undefined) {\n return true\n }\n if (value.length < 1 && field === 'last_name') {\n invalid = true\n }\n if (value.length < 4 && field === 'login_name') {\n invalid = true\n }\n if (field === 'date_of_birth' && !is_date_valid(field, true, false)) {\n invalid = true\n }\n if (field === 'start_date') {\n if (!is_date_valid(field, true, true)) {\n message = get_course_date(field, true).isEmpty() ? PHRASE_REQUIRED : PHRASE_INVALID\n invalid = true;\n }\n else if (selected_date('start_date') > Date.now()) {\n message = PHRASE_FUTURE_DATE_ERROR;\n invalid = true;\n }\n }\n if (field === 'end_date') {\n if (!is_date_valid(field, false, true)) {\n message = PHRASE_INVALID\n invalid = true\n }\n else if (selected_date('end_date') > Date.now()) {\n message = PHRASE_FUTURE_DATE_ERROR;\n invalid = true;\n }\n }\n if (value.length < 1 && field === 'course_location') {\n let loc_id = $('#location_id').find(':selected').val()\n if (loc_id === undefined || loc_id === 'other') {\n invalid = true\n }\n }\n if (value.length < 1 && !field.includes('date') && field !== 'course_location'\n && !field.startsWith('os_') && !field.startsWith('last_') && !field.startsWith('password')) {\n invalid = true\n }\n if (field === 'password' && !is_password_valid(value)) {\n invalid = true\n }\n if (field === 'password_confirm') {\n var password = $('input[name=password]').val()\n if (is_password_valid(password) === true && value !== password) {\n invalid = true\n }\n }\n if (field === 'email' && !is_email_valid(value)) {\n invalid = true\n }\n if ((field.startsWith('os_') || field.startsWith('last_')) && is_old_student()) {\n if (is_forgot_verification()) {\n if(['last_course_date', 'last_course_location', 'last_course_teachers'].includes(field) && value.length < 1) {\n invalid = true\n }\n } else {\n if(['os_user', 'os_pass'].includes(field) && value.length < 1) {\n invalid = true\n }\n }\n }\n if (!invalid && (field === 'start_date' || field === 'end_date')) {\n let other = field === 'start_date' ? 'end_date' : 'start_date'\n if(!is_date_range_valid()) {\n invalid = true\n message = PHRASE_INVALID_DATE_RANGE\n }\n else if(!is_course_duration_valid()) {\n invalid = true\n message = PHRASE_INVALID_DURATION\n }\n else if(is_date_range_overlap() && !get_course_date(field).isEmpty()) {\n invalid = true\n message = PHRASE_DATE_RANGE_OVERLAPS\n }\n else {\n message = PHRASE_REQUIRED\n }\n if(!secondary) is_field_valid(other, true)\n }\n if (invalid) {\n showInvalid(div, message)\n } else {\n showValid(div, message)\n }\n return invalid === false\n}\n\nwindow.showInvalid = function(div, message) {\n div.addClass('has-error') // application form use bootstrap3, so need to handle old bootstrap class\n div.find('input, select').addClass('is-invalid')\n $('.error-msg', div).show()\n if (message) {\n $('.error-msg', div).text(message)\n }\n}\n\nwindow.showValid = function(div, message) {\n div.removeClass('has-error') // application form use bootstrap3, so need to handle old bootstrap class\n div.find('input, select').removeClass('is-invalid')\n $('.error-msg', div).hide()\n if (message) {\n $('.error-msg', div).text(message)\n }\n}\n\nwindow.is_password_valid = function(pass) {\n return (pass.length >= 10 && /^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[\\W]).{10,}$/.test(pass))\n}\n\nwindow.is_email_valid = function(email) {\n return /^([\\w\\.%\\+\\-]+)@([\\w\\-]+\\.)+([\\w]{2,})$/i.test(email)\n}\n\nwindow.init_date_input = function(field) {\n $('#'+field+'_day, #'+field+'_month, #'+field+'_year').on('change', function() {\n var date = get_date_input(field)\n $('#'+field+'_input').val(date)\n if (window.liveValidation === true) is_field_valid(field)\n })\n}\n\nwindow.get_date_input = function(field) {\n function zeroPadding(val, len) {\n return ('0000' + val).slice(-len)\n }\n var day = $('#'+field+'_day')\n var month = $('#'+field+'_month')\n var year = $('#'+field+'_year')\n if (month.val() > 0 && year.val() > 0) {\n var str = zeroPadding(year.val(), 4) + '-' + zeroPadding(month.val(), 2)\n if (day.length > 0) {\n str += '-' + zeroPadding(day.val() > 0 ? day.val() : '1', 2)\n } else {\n str += '-01'\n }\n return str\n }\n return ''\n}\n\nwindow.is_date_valid = function(field, required, day_optional) {\n var year = $('#'+field+'_year').val()\n var month = $('#'+field+'_month').val()\n var day = $('#'+field+'_month').val()\n\n if (day_optional) {\n return (year && month) || (!required && !year && !month)\n } else {\n return (year && month && day) || (!required && !year && !month && !day)\n }\n}\n\nwindow.profile_base_url = function() {\n var act = '/account'\n var pos = location.href.indexOf(act)\n return (pos > 0) ? location.href.substring(0, pos + act.length) : act\n}\n\nwindow.detect_form_edit = function() {\n window.enabled_save_button = false\n $('#update-button, #create_profile').attr('disabled', true)\n $('.profile-form input, .profile-form select').on(\"change paste keyup\", function() {\n enable_save_button()\n })\n}\n\nwindow.enable_save_button = function() {\n if (window.enabled_save_button === false) {\n window.enabled_save_button = true\n $('#update-button, #create_profile').attr('disabled', false)\n if (window.webkit !== undefined) {\n try {\n window.webkit.messageHandlers.callbackHandler.postMessage(\"form-updated\");\n } catch(err) {\n console.log('The native context does not exist yet');\n }\n }\n else if (window.callbackHandler !== undefined) {\n try {\n window.callbackHandler.postMessage(\"form-updated\");\n } catch(err) {}\n }\n }\n}\n\n// DO NOT rename or change this function, it is being used by the iOS mobile app\nwindow.submit_os_account_form = function(user, pass) {\n $('#os_user').val(user)\n $('#os_pass').val(pass)\n submit_profile_form()\n}\n\nwindow.delete_image = function(field) {\n $('#' + field + '_field .input-image').css('display', 'none')\n $('#delete_image').val(field)\n enable_save_button()\n}\n\nwindow.showConfirm = function(title, message, yes, no, callback_or_url) {\n var modal = $('#confirmModal')\n modal.modal('show')\n modal.find('.modal-title').text(title)\n modal.find('.modal-body').html(message)\n modal.find('#confirm-yes').text(yes)\n modal.find('#confirm-no').text(no)\n $('#confirm-yes', modal).unbind('click').click(function() {\n $('#confirm-yes', modal).prop('disabled', true)\n $('#confirm-no', modal).prop('disabled', true)\n if (typeof callback_or_url == 'string') location.href = callback_or_url\n else callback_or_url()\n })\n}\n\nwindow.check_email_confirmation = function() {\n if (window.check_email_errors === undefined) {\n window.check_email_errors = 0\n }\n if (window.check_email_counter === undefined) {\n window.check_email_counter = 0\n }\n $.getJSON('/api/v1/account/email_confirmed', function(data) {\n if (data.confirmed === '1') {\n showValid($('#email_field'))\n } else {\n setTimeout(check_email_confirmation, (1000*10) + window.check_email_counter)\n window.check_email_counter += 1000\n }\n }).fail(function () {\n window.check_email_errors += 1\n if (window.check_email_errors < 11) {\n setTimeout(check_email_confirmation, 1000*60*window.check_email_errors)\n }\n });\n}\n\nwindow.confirm_sync = function(url, auto_sync) {\n let modal = $('#sync_modal')\n modal.modal('show')\n if (auto_sync === 'y') $('#modal_option_cb', modal).prop('checked', true)\n $('#confirm-yes', modal).unbind('click').click(function() {\n $('#confirm-yes', modal).prop('disabled', true)\n $('#confirm-no', modal).prop('disabled', true)\n let prefix = url.includes('?') ? '&' : '?';\n url += prefix + 'auto_sync=' + ($('#modal_option_cb', modal).prop('checked') ? 'y' : 'n');\n location.href = url;\n })\n}\n\n$(function() {\n $('#update-button').click(function () {\n submit_profile_form()\n })\n $('.password-toggle').click(function () {\n var src = $('img', $(this)).prop('src')\n var input = $('input', $(this).parent())\n var img = $('img', $(this))\n if (src.includes('eye-slash.png')) {\n img.prop('src', img.attr('src_hide'))\n input.prop('type', 'password')\n } else {\n img.prop('src', img.attr('src_show'))\n input.prop('type', 'text')\n }\n input.focus()\n })\n})\n\nwindow.init_bootstrap_table = function() {\n $(\"#bootstrap-table\").bootstrapTable({\n sortable: true,\n mobileResponsive: true,\n editable: true,\n minWidth: 900,\n pagination: false,\n search: false,\n }).removeClass(\"table-bordered\").on('click-row.bs.table', function (e, row, $element) {\n window.location = $element.data('href');\n });\n}"],"sourceRoot":""}