{"version":3,"file":"application_hoepliacademy-fb696ce2.js","sources":["../../../app/whitelabels/hoepliacademy/assets/javascripts/custom.js","../../../app/whitelabels/hoepliacademy/assets/javascripts/events.js","../../../app/whitelabels/hoepliacademy/assets/javascripts/tutors/check_box_form.js","../../../app/whitelabels/hoepliacademy/assets/javascripts/tutors/flash.js","../../../app/whitelabels/hoepliacademy/assets/javascripts/tutors/login.js","../../../app/whitelabels/hoepliacademy/assets/javascripts/tutors/custom.js","../../../app/whitelabels/hoepliacademy/assets/javascripts/tableau/custom.js","../../../app/whitelabels/hoepliacademy/assets/javascripts/application.js","../../../app/frontend/entrypoints/application_hoepliacademy.js"],"sourcesContent":["$(function () {\n //navbar bg on window scroll\n const scrollTopNav = document.getElementById('navbar');\n // Add an event listener to monitor scroll\n window.addEventListener('scroll', () => {\n const scrollPos = document.documentElement.scrollTop || document.body.scrollTop;\n\n // Handle thresholds\n if (scrollPos > 200) {\n // Apply styles for the higher threshold\n scrollTopNav.classList.add('coloredBG');\n } else if (scrollPos > 120) {\n // Apply styles for the lower threshold\n scrollTopNav.classList.add('coloredBG');\n } else {\n // Remove all styles when below the lower threshold\n scrollTopNav.classList.remove('coloredBG');\n }\n });\n\n // Scroll to top functionality\n scrollTopNav.addEventListener('click', () => {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n });\n //navbar bg on window scroll // end\n\n var $myCarousel = $(\"header.carousel\");\n // Initialize carousel\n $myCarousel.carousel({\n interval: 5000,\n });\n //*****************************//\n // ** slider for reviews box **\n var $myCarousel2 = $(\"#bottom-slider\");\n // Initialize carousel\n $myCarousel2.carousel({\n interval: 5000,\n });\n\n //*****************************//\n // slider on genitori page\n var $myCarousel2 = $(\"#genitori-slider\");\n // Initialize carousel\n $myCarousel2.carousel({\n interval: 5000,\n });\n\n $myCarousel2.bind(\"slid.bs.carousel\", function (e) {\n var indx = $(\"ol.carousel-indicators li.active\").data(\"slide-to\");\n $(\".genitori .box-slider a\").each(function () {\n $(this).removeClass(\"focused\");\n });\n $('div.slider-console a[data-bs-target=\"#genitori-slider\"][data-bs-slide-to=' + indx + \"]\").addClass(\"focused\");\n });\n\n var $myCarousel3 = $(\"#insegnanti-slider\");\n // Initialize carousel\n $myCarousel3.carousel({\n interval: 5000,\n });\n //*****************************//\n // slider on genitori page\n var $myCarouselBlog = $(\"#blog-slider\");\n // Initialize carousel\n $myCarouselBlog.carousel({\n interval: 5000,\n });\n //*****************************//\n // slider on insegnanti page\n // Instantiate the Bootstrap carousel\n $(\".multi-item-carousel\").carousel({\n interval: false,\n });\n // for every slide in carousel, copy the next slide's item in the slide.\n // Do the same for the next, next item.\n $(\".multi-item-carousel .item\").each(function () {\n var next = $(this).next();\n if (!next.length) {\n next = $(this).siblings(\":first\");\n }\n next.children(\":first-child\").clone().appendTo($(this));\n\n if (next.next().length > 0) {\n next.next().children(\":first-child\").clone().appendTo($(this));\n } else {\n $(this).siblings(\":first\").children(\":first-child\").clone().appendTo($(this));\n }\n });\n\n // Select all links with hashes\n $('a.scrollAnimation[href*=\"#\"]')\n // Remove links that don't actually link to anything\n .not('[href=\"#\"]')\n .not('[href=\"#0\"]')\n .click(function (event) {\n // On-page links\n if (location.pathname.replace(/^\\//, \"\") == this.pathname.replace(/^\\//, \"\") && location.hostname == this.hostname) {\n // Figure out element to scroll to\n var target = $(this.hash);\n target = target.length ? target : $(\"[name=\" + this.hash.slice(1) + \"]\");\n // Does a scroll target exist?\n if (target.length) {\n // Only prevent default if animation is actually gonna happen\n event.preventDefault();\n $(\"html, body\").animate(\n {\n scrollTop: target.offset().top,\n },\n 1000,\n function () {\n // Callback after animation\n // Must change focus!\n var $target = $(target);\n $target.focus();\n if ($target.is(\":focus\")) {\n // Checking if the target was focused\n return false;\n } else {\n $target.attr(\"tabindex\", \"-1\"); // Adding tabindex for elements not focusable\n $target.focus(); // Set focus again\n }\n }\n );\n }\n }\n });\n});\n\n//*********************************************************************//\n//**** header carousel scripts for text and buttons animations ****//\n//*********************************************************************//\n// slider on the homepage\n\n$(function () {\n $(\"#reg_teacher_form\").submit(function () {\n return validate(this);\n });\n\n if ($(\"#countainer_schools\").children().length == 1) {\n $(\".remove_school_link\").css(\"display\", \"none\");\n }\n});\n\nwindow.toggle_visibility = function toggle_visibility(id) {\n var e = document.getElementById(id);\n if (e.style.display != \"none\") e.style.display = \"none\";\n else e.style.display = \"block\";\n};\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 set_autocomplete_school($(v));\n });\n});\n\n/**\n * Get the parent-element and then the first block of fileds \"city\" and \"schools\".\n * We have to use the document.ready workaround just to be sure all fields are correctly loaded in page\n */\n\n// used in add_school function\nvar containerSchools = null;\nvar firstSchoolBlock = null;\n\n$(function () {\n containerSchools = $(\"#countainer_schools\");\n firstSchoolBlock = containerSchools.find(\" > .dynamic_section:first\").clone(); // force to select the first one\n firstSchoolBlock.find(\"select.selectpicker\").selectpicker(\"destroy\").addClass(\"selectpicker\");\n});\n\n$('[data-purpose=\"fill-dropdown\"]').change();\n\nwindow.add_school = function add_school() {\n // Fat: refactor js in order to avoid duplicate-field manipulation\n\n // var containerSchools = $(\"#countainer_schools\");\n\n if (containerSchools.children().length < 5) {\n // clone the first block without events\n var new_block = firstSchoolBlock.clone();\n // fix: remove duplicated IDs\n new_block.find(\"input, select\").each(function (i, e) {\n e.id = \"\";\n });\n\n // prepare new html fileds\n new_block.find(\"input\").val(\"\");\n new_block.find(\"select option\").remove();\n\n set_autocomplete_city(new_block.find('[data-purpose=\"fill-dropdown\"]'));\n\n new_block.find(\".remove_school_link\").css(\"display\", \"block\");\n\n // re-initialize selectpicker for school (code taken from application.js)\n new_block.find(\"select\").selectpicker();\n if (/Android|webOS|BlackBerry/i.test(navigator.userAgent)) {\n $(\".selectpicker\").selectpicker(\"mobile\");\n }\n\n containerSchools.append(new_block);\n\n containerSchools.find(\".remove_school_link\").css(\"display\", \"block\");\n }\n};\n\nwindow.remove_school = function remove_school(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.isOdd = function isOdd(value) {\n if (value % 2 != 0) return true;\n else return false;\n};\n\nwindow.update_panel_school_subjects = function update_panel_school_subjects(me) {\n var summary = $(\"#school_subject_summary\").text();\n var selected = $(me).text();\n $(\"#school_subject_summary\").text((summary += selected));\n};\n\n$(document).on(\"click\", 'input[data-purpose=\"fill_summary_school_subjects\"]', function () {\n $(\".panel_checkboxes\").css(\"display\", \"block\");\n var $checked = $(\"input:checked\");\n var texts = $checked.map(function (i, el) {\n return $(el).closest(\"label\").find(\"span\").html();\n });\n $(\"#school_subject_summary\").text($.makeArray(texts).join(\", \"));\n});\n\nwindow.trim = function trim(s) {\n if (s != null) {\n s = s.replace(/(^\\s*)|(\\s*$)/gi, \"\");\n s = s.replace(/[ ]{2,}/gi, \" \");\n s = s.replace(/\\n /, \"\\n\");\n return s;\n }\n};\n\n$(\"#areadropdown\")\n .change(function (e) {\n var container1 = document.getElementById(\"container_school_subjects_1\");\n var container2 = document.getElementById(\"container_school_subjects_2\");\n $(\"#school_subject_summary\").text(\"\");\n container1.innerHTML = \"\";\n container2.innerHTML = \"\";\n var selected = this.value.split(\"-\");\n var term = trim(selected[0]);\n var area = trim(selected[1]);\n var query = \"/profile/school-subject?term=\" + term;\n if (area != null) {\n query += \"&area=\" + area;\n }\n $.getJSON(query, function (schoolSubjects) {\n for (var i = 0; i < schoolSubjects.length; i++) {\n var obj = schoolSubjects[i];\n var target = container1;\n if (isOdd(i)) target = container2;\n\n var content = \"