{"version":3,"file":"application_hachetteantoine-b06c6683.js","sources":["../../../app/whitelabels/hachetteantoine/assets/javascripts/login_signup.js","../../../app/whitelabels/hachetteantoine/assets/javascripts/school_select.js","../../../app/whitelabels/hachetteantoine/assets/javascripts/events.js","../../../app/whitelabels/hachetteantoine/assets/javascripts/custom.js","../../../app/whitelabels/hachetteantoine/assets/javascripts/tutors/check_box_form.js","../../../app/whitelabels/hachetteantoine/assets/javascripts/tutors/flash.js","../../../app/whitelabels/hachetteantoine/assets/javascripts/tutors/login.js","../../../app/whitelabels/hachetteantoine/assets/javascripts/tutors/custom.js","../../../app/whitelabels/hachetteantoine/assets/javascripts/tableau/custom.js","../../../app/whitelabels/hachetteantoine/assets/javascripts/application.js","../../../app/frontend/entrypoints/application_hachetteantoine.js"],"sourcesContent":["$(function() {\n $(\"header.user-role-select-form .signup-steps input:submit[name!='commit']\").on('click', function(event) {\n event.preventDefault();\n manageStepChange(this);\n });\n\n $('header.user-role-select-form .flat-box-steps-circle div').on('click', function() {\n manageStepCircles(this);\n });\n\n $(\"header.user-role-select-form .signup-steps input:submit[name='commit']\").on('click', function(event) {\n event.preventDefault();\n $(this).closest('form').submit();\n });\n\n $('header.user-role-select-form input').on('change keyup', function() {\n manageInputChange(this);\n });\n\n // ---> START ---- role 1\n\n $('.step-1-role1 input').on('change keyup', function() {\n manageDisableBtn(this, 1);\n });\n\n $('.step-1-role1 select').on('change keyup', function() {\n manageDisableBtn(this, 1);\n });\n\n $('.step-1-role1 select').on('change keyup', function() {\n // $('.userbday-day').parsley().validate();\n // $('.userbday-month').parsley().validate();\n // $('.userbday-year').parsley().validate();\n manageDisableBtn(this, 1);\n });\n\n $('.step-2-role1 input').on('change keyup', function() {\n manageDisableBtn(this, 2);\n });\n\n $('.step-2-role1 select.user-school-nation').on('change keyup', function() {\n manageDisableBtn(this, 2);\n });\n\n $('.step-2-role1 select.user-school-id').on('change keyup', function() {\n manageDisableBtn(this, 2);\n });\n\n $('.step-3-role1 input').on('change keyup', function() {\n manageDisableBtn(this, 3);\n });\n\n // <--- END ---- role 1\n\n // ---> START ---- role 2\n\n $('.step-1-role2 input').on('change keyup', function() {\n manageDisableBtn(this, 1);\n });\n\n $('.step-1-role2 select').on('change keyup', function() {\n // $('.userbday-day').parsley().validate();\n // $('.userbday-month').parsley().validate();\n // $('.userbday-year').parsley().validate();\n manageDisableBtn(this, 1);\n });\n\n $('.step-2-role2 input').on('change keyup', function() {\n manageDisableBtn(this, 2);\n });\n\n $('.step-2-role2 select').on('change keyup', function() {\n manageDisableBtn(this, 2);\n });\n\n $('.step-3-role2 input').on('change keyup', function() {\n manageDisableBtn(this, 3);\n });\n\n $('.step-3-role2 select').on('change keyup', function() {\n // $('.parentbday-day').parsley().validate();\n // $('.parentbday-month').parsley().validate();\n // $('.parentbday-year').parsley().validate();\n manageDisableBtn(this, 3);\n });\n\n $('.step-4-role2 input').on('change keyup', function() {\n manageDisableBtn(this, 4);\n });\n\n // <--- END ---- role 2\n\n // ---> START ---- role 3\n\n $('.step-3-role3 input').on('change keyup', function() {\n manageDisableBtn(this, 3);\n });\n\n $('.step-1-role3 input').on('change keyup', function() {\n manageDisableBtn(this, 1);\n });\n $('.step-2-role3 input').on('change keyup', function() {\n manageDisableBtn(this, 2);\n });\n $('.step-1-role3 select').on('change keyup', function() {\n // $('.userbday-day').parsley().validate();\n // $('.userbday-month').parsley().validate();\n // $('.userbday-year').parsley().validate();\n manageDisableBtn(this, 1);\n });\n $('.step-2-role3 select').on('change keyup', function() {\n manageDisableBtn(this, 2);\n });\n\n // <--- END ---- role 3\n\n // required to avoid double-click on submit button\n $(\".btn-signup-flow-last\").one('click', function (event) {\n $(this).prop('disabled', true);\n });\n $(\".btn-signup-flow-last\").dblclick(function(e){\n e.preventDefault();\n });\n});\n\n\n// --- START login/sign-up flow functions ----\n\nvar getCurrentStep = window.getCurrentStep = function($this) {\n var classesParent = $($this).closest('.signup-steps').attr('class').split(' ');\n var curStep = classesParent[2].split('-')[1];\n return curStep;\n};\n\nvar manageDisableBtn = window.manageDisableBtn = function($this, step) {\n var btn = $($this).closest('.signup-steps').find(\"input[type='submit']\");\n var filled = $('#new_user').parsley({excluded: \"\"}).isValid({group: 'step_' + step});\n if (filled === true) {\n $(btn).prop('disabled', false);\n } else {\n $(btn).prop('disabled', true);\n }\n};\n\nvar onPrivaciesChange = window.onPrivaciesChange = function($this, step) {\n if ($($this).is(':checked')) {\n $($this).attr('value', '1');\n $($this).attr('checked', true);\n } else {\n $($this).attr('value', '');\n $($this).attr('checked', null);\n }\n manageDisableBtn($this, step);\n};\n\nvar dateSeparator = '/';\n\nvar correctCaptcha = window.correctCaptcha = function(response) {\n $('#recaptcha_status').val('1');\n var classesParent = $(\".g-recaptcha\").closest('.signup-steps').attr('class').split(' ');\n var curStep = classesParent[2].split('-')[1];\n manageDisableBtn(\".g-recaptcha\", curStep);\n};\n\nvar manageStepCircles = window.manageStepCircles = function($this) {\n var currentIndex = $($this).siblings('.active').attr('class').split(' ')[0].split('-')[1];\n var selected = $($this).attr('class').split(' ')[0];\n var selectedIndex = selected.split('-')[1];\n if (selectedIndex*1 < currentIndex*1) {\n $('.flat-box.signup-steps').hide();\n $('.flat-box-header.signup-steps').hide();\n $('.flat-box-steps-circle').hide();\n $('.flat-box.signup-steps.'+ selected).show();\n $('.flat-box-header.signup-steps.'+ selected).show();\n $('.flat-box-steps-circle.'+selected).show();\n $(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\n }\n};\n\nvar manageInputChange = window.manageInputChange = function($this) {\n var step = getCurrentStep($this);\n if ($($this).is(':checkbox')) {\n if ($($this).attr('id') == 'checkbox-form-tos_agreement') {\n $('.privacies input:checkbox').prop('checked', $($this).is(':checked'));\n $('.privacies input:checkbox').each(function() {\n onPrivaciesChange(this);\n });\n } else {\n $('#checkbox-form-tos_agreement').prop('checked', false);\n $('#checkbox-form-tos_agreement').attr('value', '');\n }\n onPrivaciesChange($this, step);\n }\n};\n\nvar manageStepChange = window.manageStepChange = function($this) {\n var classesParent = $($this).closest('.signup-steps').attr('class').split(' ');\n var curStep = classesParent[2].split('-')[1];\n var curFlow = classesParent[2].split('-')[2]\n var nextStep = curStep*1+1;\n $('.signup-steps').hide();\n if ($('.step-'+ nextStep + '-' + curFlow).hasClass('skip-step')) {\n console.log('skip this step');\n nextStep = nextStep +1;\n }\n $('.step-'+ nextStep + '-' + curFlow).show();\n $(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\n};\n\nvar gobackSignupFlow = window.gobackSignupFlow = function($this) {\n // event.preventDefault();\n var classesParent = $($this).closest('.signup-steps').attr('class').split(' ');\n var curStep = classesParent[2].split('-')[1];\n var curFlow = classesParent[2].split('-')[2]\n var nextStep = curStep*1-1;\n $('.signup-steps').hide();\n if ($('.step-'+ nextStep + '-' + curFlow).hasClass('skip-step')) {\n nextStep = nextStep - 1;\n }\n $('.step-'+ nextStep + '-' + curFlow).show();\n $(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\n};\n\n// --- START login/sign-up flow functions ----\n\n","// get served country list\nvar servedCountryList = (window.servedCountryList = function () {\n var countryList;\n $.ajax({\n url: \"/school_data/countries_with_regions_list\",\n dataType: \"json\",\n async: false,\n success: function (data) {\n countryList = data;\n },\n });\n return countryList;\n});\n\n// function thet gets the list of coutries from endpoint '/school_data/countries_with_regions_list' and returns it\n\n$(document).on(\"change focusout\", '[data-purpose=\"fill-dropdown\"]', function (e) {\n var input = $(this).closest(\".dynamic_section\").find(\"input\")[1];\n $.each($('[data-purpose=\"auto-school\"]'), function (idx, v) {\n setAutocompleteSchool($(v));\n });\n});\n\n$(function () {\n $(\".user-school-id\").on(\"change\", function () {\n if ($(\".user-school-id\").val() == \"custom_school\") {\n displayCustomSchool($(\".trigger-show-custom-school-name\"));\n showSchoolSecondaryFields();\n $(\".back-to-sel-school\").show();\n } else {\n showSchoolSecondaryFields();\n }\n });\n});\n\n$(function () {\n $.each($('[data-purpose=\"fill-dropdown\"]'), function (idx, v) {\n setAutocompleteRegion($(v));\n });\n var city = $(\".user-school-region\");\n city.attr(\"autocomplete\", \"none\");\n});\n\n// --- START school select functions ----\n\nvar schoolNationChange = (window.schoolNationChange = function (param) {\n var $this = $(param);\n var container = $this.parents(\".user-school-inputs\");\n var nation = container.find(\".user-school-nation\");\n var cityContainer = container.find(\".user-school-region-container\");\n var city = container.find(\".user-school-region\");\n var cityOptions = container.find(\".user-school-region option\");\n var cityOptionsOther = container.find(\".user-school-region option[data-country!='\" + $this.val() + \"']\");\n var sel = container.find(\".user-school-id\");\n var customSchoolName = container.find(\".custom-school-name\");\n var customUserClass = container.find(\".custom-user-class\");\n var schools = container.find(\".school-name\");\n\n // clear fields\n city.val(\"\");\n customSchoolName.val(\"\");\n customUserClass.val(\"\");\n sel.find(\"option\").filter(\".deletable\").remove();\n schools.hide();\n hideCustomSchool(container.find(\".trigger-show-custom-school-name\"));\n\n // show city if supported\n // if Nation not supported list available schools or fill school name manually\n // nation.val() is the country id selcted\n if (nation.val() !== \"\" && servedCountryList().includes(parseInt(nation.val()))) {\n fillRegions(city, nation.val());\n cityOptions.show();\n // Hide city of other states\n cityOptionsOther.hide();\n cityContainer.show();\n // container.find('.ask-for-custom-school').show();\n } else {\n showSchoolSecondaryFields();\n displayCustomSchool(param);\n cityContainer.hide();\n city.val(\"-ANY-\");\n $(\".back-to-sel-school\").hide();\n // container.find('.ask-for-custom-school').hide();\n }\n});\n\nvar clearSelectSchool = (window.clearSelectSchool = function (param) {\n var $this = $(param);\n var container = $this.parents(\".user-school-inputs\");\n var sel = container.find(\".user-school-id\");\n var userClass = container.find(\".user-class\");\n sel.selectedIndex = 0;\n userClass.val(\"\");\n});\n\nvar clearCustomSchool = (window.clearCustomSchool = function (param) {\n var $this = $(param);\n var container = $this.parents(\".user-school-inputs\");\n var customSchoolName = container.find(\"#user_schools_attributes_name\");\n var customUserClass = container.find(\".custom-user-class input\");\n customSchoolName.val(\"\");\n customUserClass.val(\"\");\n});\n\nvar clearChosenSchool = (window.clearChosenSchool = function (param) {\n clearSelectSchool(param);\n clearCustomSchool(param);\n});\n\nvar schoolCityChange = (window.schoolCityChange = function (param) {\n clearChosenSchool(param);\n hideCustomSchool($(\".trigger-show-custom-school-name\"));\n var $this = $(param);\n var container = $this.parents(\".user-school-inputs\");\n var nation = container.find(\".user-school-nation\").val();\n var region_id = container.find(\".user-school-region\").val();\n var sel = container.find(\".user-school-id\");\n var schools = container.find(\".school-name\");\n fillSchools(sel, region_id);\n});\n\n// var triggerShowCustomSchoolName = function(param) {\n// clearChosenSchool(param);\n// var $this = $(param);\n// var container = $this.parents('.user-school-inputs');\n// container.children('.trigger-show-custom-school-name').each(function() {\n// $this.toggle();\n// });\n// container.find('.school-name').toggle();\n// container.find('.custom-school-name').toggle();\n// select school from existing\n// if (container.find('.user-school-id').is(\":hidden\")) {\n// container.find('.user-school-id').attr('required', null);\n// container.find('.user-school-region').attr('required', null);\n// container.find('.user-school-region').val('');\n// container.find('.user-school-region-container').hide();\n// container.find('#user_schools_attributes_name').attr('required', 'required');\n// } else { // custom school\n// container.find('.user-school-id').attr('required', 'required');\n// container.find('.user-school-region').attr('required', 'required');\n// container.find('.user-school-region-container').show();\n// container.find('#user_schools_attributes_name').attr('required', null);\n// };\n// container.find('.custom-user-class').toggle();\n// container.find('.user-class').toggle();\n\n// manageDisableBtn($this.parents('.user-school-inputs'), 2);\n// };\n\nvar displayCustomSchool = (window.displayCustomSchool = function (param) {\n var $this = $(param);\n var container = $this.parents(\".user-school-inputs\");\n clearChosenSchool(param);\n container.find(\".school-name\").hide();\n // container.find(\".user-school-region-container\").hide();\n container.find(\".custom-school-name\").show();\n //fix required\n // container.find(\".user-school-id\").attr(\"required\", null);\n container.find(\".user-school-region\").attr(\"required\", null);\n // container.find(\".user-school-region\").val(\"-ANY-\");\n // container.find(\".user-school-region-container\").hide();\n container.find(\"#user_schools_attributes_name\").attr(\"required\", \"required\");\n});\n\nvar hideCustomSchool = (window.hideCustomSchool = function (param) {\n clearChosenSchool(param);\n var $this = $(param);\n var container = $this.parents(\".user-school-inputs\");\n // container.find('.school-name').show();\n container.find(\".custom-school-name\").hide();\n // fix required\n container.find(\".user-school-id\").attr(\"required\", \"required\");\n container.find(\".user-school-region\").attr(\"required\", \"required\");\n container.find(\".user-school-region-container\").show();\n container.find(\"#user_schools_attributes_name\").attr(\"required\", null);\n});\n\nwindow.backToSelSchool = function backToSelSchool(param) {\n hideCustomSchool($(\".trigger-show-custom-school-name\"));\n $(\".school-name\").show();\n};\n\nwindow.showSchoolSecondaryFields = function showSchoolSecondaryFields(param) {\n $(\".user-school-class-container\").show();\n $(\".user-school-position-container\").show();\n $(\".user-school-subject-container\").show();\n};\n\nwindow.hideSchoolSecondaryFields = function hideSchoolSecondaryFields(param) {\n $(\".user-school-class-container\").hide();\n $(\".user-school-position-container\").hide();\n $(\".user-school-subject-container\").hide();\n};\n\nvar addSchool = (window.addSchool = function () {\n if ($(\"#countainer_schools\").children().length < 5) {\n var lastBlock = $(\"#countainer_schools .dynamic_section\").last();\n var lastCounter = lastBlock.attr(\"data-counter\");\n $(\"#countainer_schools\").append(lastBlock.clone());\n var newBlock = $(\"#countainer_schools .dynamic_section\").last();\n\n newBlock.find(\"input\").val(\"\");\n newBlock.find(\"select.user-school-id option\").remove();\n\n var counter = lastCounter * 1 + 1;\n newBlock.attr(\"data-counter\", counter);\n\n newBlock.find(\".chosen-container\").remove();\n newBlock.find(\".user-school-nation\").chosen();\n // newBlock.find('.user-school-nation').attr('name', 'user[custom_schools]['+ counter + '][state]');\n // newBlock.find('.user-school-region').attr('name', 'user[custom_schools]['+ counter + '][city]');\n // newBlock.find('.user-school-name').attr('name', 'user[custom_schools]['+ counter + '][name]');\n newBlock.find(\".user-school-name\").attr(\"id\", \"user_custom_schools_\" + counter + \"_name\");\n newBlock.find(\".user-school-region\").attr(\"id\", \"user_custom_schools_\" + counter + \"_city\");\n\n setAutocompleteRegion(newBlock.find('[data-purpose=\"fill-dropdown\"]'));\n setAutocompleteSchool(newBlock.find('[data-purpose=\"auto-school\"]'));\n $(\".remove_school_link\").css(\"display\", \"block\");\n }\n});\n\nvar removeSchool = (window.removeSchool = function (me) {\n if ($(\"#countainer_schools\").children().length > 1) {\n $(me).closest(\".dynamic_section\").remove();\n }\n if ($(\"#countainer_schools\").children().length == 1) {\n $(\".remove_school_link\").css(\"display\", \"none\");\n }\n});\n\nwindow.fillSchools = function fillSchools(obj, region_id) {\n var schools = obj.parents(\".school-name\");\n if (region_id === undefined) {\n region_id = 0;\n }\n obj.find(\"option\").filter(\".deletable\").remove();\n if (region_id) {\n var composedUrl = \"/school_data/school_list_by_region_id?codice_scuola_parsed=false®ion_id=\" + region_id;\n $.ajax({\n url: composedUrl,\n dataType: \"json\",\n success: function (result) {\n if (result.length == 0) {\n // do nothing\n schools.hide();\n } else {\n $.each(result, function (key, value) {\n obj.prepend('\");\n });\n obj.prepend(\"\");\n schools.show();\n }\n },\n });\n }\n};\n\nwindow.fillRegions = function fillRegions(obj, nation) {\n var regions = obj.parents(\".user-school-region-container\");\n if (nation === undefined) {\n nation = \"undefined\";\n }\n obj.find(\"option\").filter(\".deletable\").remove();\n var sanitizedNation = trim(nation);\n if (sanitizedNation && sanitizedNation !== \"\") {\n var composedUrl = \"/school_data/regions_list_by_country_id?country_id=\" + sanitizedNation;\n $.ajax({\n url: composedUrl,\n dataType: \"json\",\n success: function (result) {\n if (result.length == 0) {\n // do nothing\n regions.hide();\n } else {\n obj.append(\"\");\n $.each(result, function (key, value) {\n obj.append(\"\");\n });\n regions.show();\n }\n },\n });\n }\n};\n\nwindow.setAutocompleteRegion = function setAutocompleteRegion(obj) {\n obj\n .autocomplete({\n minLength: 2,\n delay: 500,\n source: \"/profile/city-list\",\n source: function (request, response) {\n // request.term is the term searched for.\n // response is the callback function you must call to update the autocomplete's\n // suggestion list.\n var nation = $(obj).parents(\".user-school-inputs\").find(\".user-school-nation\").val();\n var params = { term: request.term };\n if (nation !== undefined) {\n params.nation = nation;\n }\n $.ajax({\n url: \"/profile/city-list\",\n data: params,\n dataType: \"json\",\n success: response,\n error: function () {\n response([]);\n },\n });\n },\n\n focus: function (event, ui) {\n obj.val(ui.item.label);\n return false;\n },\n\n select: function (event, ui) {\n obj.val(toTitleCase(ui.item.city));\n return false;\n },\n })\n .data(\"ui-autocomplete\")._renderItem = function (ul, item) {\n return $(\"