The Best Spanish online language courses 2024 Comparison (2024)

Price comparison: 1 week Spanish course

Sort by: Best rated (overall)|Most popular|Best rated teaching quality|Best rated social activities|Lowest price

See all 20 Spanish courses in Mexico City

Interested in courses in other cities?

All 210 courses in Mexico

Interested in online courses?

Have a look at our top picks of Live Online Spanish courses at the best prices.

Mexico City map with schools offering courses

The Best Spanish online language courses 2024 Comparison (1)

The Best Spanish online language courses 2024 Comparison (2)The Best Spanish online language courses 2024 Comparison (3)The Best Spanish online language courses 2024 Comparison (4)

Reviews by former students who attended a course in Mexico City

The Best Spanish online language courses 2024 Comparison (5)

Lessons (2 hours of private lessons and 4 hours of group lessons daily) were excellent, friendliness of ALL teachers and staff exceptional.

29 January 2024
Course: Intensive Course + 10 - 2 weeks
Student age: 49 years

Show more

4.7 | 16 reviews

SusanneInternational House

The Best Spanish online language courses 2024 Comparison (6)

The staff were all very wonderful- patient, warm, understanding. Our tours and outings were among the best parts of my trip. I would certainly suggest adding a regular trip to Mercado Jamaica to the outings offered by the school.
I had a fantastic 2 week vitist and would happily consider returning

9 November 2023
Course: Intensive Course + Cooking - 2 weeks
Student age: 53 years

Show more

4.7 | 16 reviews

Wendi-StarrInternational House

The Best Spanish online language courses 2024 Comparison (7)

I took 2 weeks of intensive group lessons as well as additional private lessons. The organisation was excellent, all the staff were always available and helpful with any questions. The teachers were excellent, catering to individual interests and incorporating these topics into the lessons, so that in addition to the language, a lot of Mexican history and social and societal topics were also taught. Learning was fun. The central location of the school is excellent.

4 November 2023
Course: Intensive Course + 10 - 2 weeks
Student age: 56 years

Show more

4.7 | 16 reviews

PeterInternational House

The Best Spanish online language courses 2024 Comparison (8)

Although I joined only for a week, I feel like I made great progress. The teachers and staff were all helpful, friendly, and competent. I would definitely pick IH again and hope to take more courses in the future.

30 October 2023
Course: Intensive Course - 1 week
Student age: 45 years

Show more

4.7 | 16 reviews

Sara-DuanaInternational House

The Best Spanish online language courses 2024 Comparison (9)

very flexible when it comes to changes in the schedule of private classes. The teachers were very friendly.

26 September 2023
Course: Language Course (Intensive) - 2 weeks
Student age: 50 years

Show more

4.2 | 5 reviews

Petra

The Best Spanish online language courses 2024 Comparison (10)

It's a very professional School. The people are so nice and amazing. The teachers are the best.

29 August 2023
Course: Intensive Course - 1 week
Student age: 58 years

Show more

4.7 | 16 reviews

ItayInternational House

The Best Spanish online language courses 2024 Comparison (11)

Staff were very friendly and helpful. Excursions were good.

25 July 2023
Course: Intensive Course + Latin Dancing - 2 weeks
Student age: 71 years

Show more

4.7 | 16 reviews

kevinInternational House

The Best Spanish online language courses 2024 Comparison (12)

Location and the quality of the instructors
Great learning organization with excellent instructors. Location of the school is excellent as well as the price and benefits that you derive from attending.

29 March 2023
Course: One-to-One Lessons 10 - 1 week
Student age: 71 years

Show more

4.7 | 16 reviews

Rudy International House

The Best Spanish online language courses 2024 Comparison (13)

The teachers are very competent, interested, committed and friendly. I felt very welcome at all times. I was particularly pleased that cultural content was discussed in the lessons. The teachers responded very well to the language level of the individual students. The groups were not too large so that everyone could make progress.

12 November 2022
Course: Language Course (Intensive) - 3 weeks
Student age: 42 years

Show more

4.2 | 5 reviews

Kristina

The Best Spanish online language courses 2024 Comparison (14)

Easy learning environment. Friendly staff.

17 October 2022
Course: Intensive Course - 1 week
Student age: 70 years

Show more

4.7 | 16 reviews

MargueriteInternational House

The Best Spanish online language courses 2024 Comparison (15)

Everyone, teaching, administrative and supporting staff were great - friendly, helpful and knowledgeable.

20 June 2022
Course: Intensive Course - 4 weeks
Student age: 68 years

Show more

4.7 | 16 reviews

RobertInternational House

Q&A - Questions and answers about Mexico City

  • Yes, you are welcome to book your private lessons and start your programme on any Monday, year-round.

    Ana Carolina Dos Santos, LanguageCourse.Net - Aug 30, 2023

  • Mexico does not have an official religion. Roman Catholicism is the dominant faith and is deeply culturally pervasive. It is estimated over 80% of the population identifies as Catholic. There are many churches you can visit during your time in Mexico.

    Ana Carolina Dos Santos, LanguageCourse.Net - Jun 06, 2023

  • Lessons are from Monday to Friday and students can start always on a Monday.

    Ana Carolina Dos Santos, LanguageCourse.Net - Apr 10, 2023

  • The school L&C Spanish School is open year-round and students can start their Spanish courses on any Monday. The course covers the most practical, real-life conversational situations according to the level being taken. Classes are held from Monday to Friday. Cultural activities and field trips once a week are included in the price.

    Ana Carolina Dos Santos, LanguageCourse.Net - Dec 16, 2022

  • International House Mexico City can offer you a combination of group lessons - in which you will learn the general Spanish language, with private lessons focused on the medical Spanish skills that you need to deliver excellence in your job.

    Ana Carolina Dos Santos, LanguageCourse.Net - Nov 28, 2022

    FAQ about courses in Mexico City

    • International House has received the best overall rating in Mexico City.

    • International House, located in Alfonso Reyes No. 224, Condesa has been voted as the school with the best location in Mexico City.

    • Students rated the activity program at as the best.

    • International House was rated highest for quality of teaching.

    • 'Residence' at Blue Cotton Schools is the best rated accommodation in Mexico City.

    • Yes, we do offer English lessons with a native teacher. We have a Canadian teacher as part of our staff.

      Fernando Silva, Administration from L&C Spanish School - Nov 07, 2022

      Questions about Spanish schools in Mexico City?

      Get free advice from our language travel experts to help you find the best school for you.

      The Best Spanish online language courses 2024 Comparison (16)Send a questionOr+1-646 503 18 10 / +44-330 124 03 17

      course destinations

      Spanish schools in Mexico

      • Cancun (12 courses)
      • Felipe Carrillo Puerto (3 courses)
      • Guadalajara (10 courses)
      • Guanajuato (26 courses)
      • Mérida (YUC) (8 courses)
      • Mexico City (28 courses)
      • Oaxaca (17 courses)
      • Playa del Carmen (47 courses)
      • Puerto Escondido (25 courses)
      • Puerto Vallarta (9 courses)
      • Queretaro (25 courses)

      Spanish schools in the rest of the world

      • Argentina (207 courses)
      • Australia (5 courses)
      • Austria (9 courses)
      • Belgium (4 courses)
      • Bolivia (20 courses)
      • Brazil (15 courses)
      • Canada (15 courses)
      • Chile (55 courses)
      • Colombia (107 courses)
      • Costa Rica (177 courses)
      • Cuba (33 courses)
      • Czech Republic (37 courses)
      • Dominican Republic (21 courses)
      • Ecuador (131 courses)
      • England UK (64 courses)
      • France (37 courses)
      • Germany (104 courses)
      • Guatemala (24 courses)
      • Hong Kong (3 courses)
      • Hungary (10 courses)
      • India (1 course)
      • Ireland (10 courses)
      • Italy (59 courses)
      • Japan (5 courses)
      • Latvia (2 courses)
      • Netherlands (23 courses)
      • Northern Ireland (1 course)
      • Norway (1 course)
      • Panama (132 courses)
      • Peru (116 courses)
      • Poland (23 courses)
      • Portugal (10 courses)
      • Russia (2 courses)
      • Scotland (1 course)
      • Singapore (6 courses)
      • Spain (2312 courses)
      • Switzerland (25 courses)
      • Tunisia (7 courses)
      • Turkey (2 courses)
      • Ukraine (1 course)
      • Uruguay (38 courses)
      • USA (77 courses)
      • Venezuela (8 courses)
`; } } jQuery("#activeFilters, #activeFiltersBot").html(htmlFilters);var results_ids = "#filterResult";if (intersec.length > 2) {results_ids += ", #filterResultBot";} else {jQuery("#filterResultBot").css('display', 'none');}if (jQuery("#juniorIntro, #topCityWrap").length > 0) { if (htmlFilters) {jQuery("#juniorIntro, #topCityWrap").fadeOut(400, function() {jQuery(results_ids).css('display', 'inline-block');scroll_if_anchor('#filterResult'); }); }} else {jQuery(results_ids).css('display', 'inline-block');scroll_if_anchor('#filterResult');} if (!htmlFilters) { jQuery("#filterResult, #filterResultBot").css('display', 'none'); }jQuery("#filterNum, #filterNumBot").text(replacedString); // check if there's no checkbox filter checked before hiding the whole filterResult} else if (!jQuery(".filterIndicator").hasClass("isACheckBox") && !jQuery(".filterIndicator").hasClass("isADropDown")) { jQuery("#filterResult, #filterResultBot").css('display', 'none'); jQuery("#juniorIntro, #topCityWrap").fadeIn();} else { // if there are checkbox filter checked but no other filter running, update the message accordingly and remove all non-checkboxes pills (.filterIndicator) var str; if (intersec.length > 0) { if (intersec.length == 1) { str = " course in Mexico City matches the following filters: "; } else { str = " courses in Mexico City match the following filters: "; } } else { str = "No results found that match the following filters:"; } var replacedString = str.replace("", intersec.length ); jQuery("#juniorIntro").hide(400); jQuery(".topCityWrap").slideUp(); jQuery("#filterNum, #filterNumBot").text(replacedString); jQuery('.filterIndicator:not(.isACheckBox):not(.isADropDown)').remove(); }} function setCookie(name, value) { document.cookie = name + "=" + (value || "") + "; path=/"; } let setupPaginationObj = false; function storeFunctionCall(functionName, parameters) { if (isFacetJs) { if (!setupPaginationObj && paginationFunctionCall) { paginatedFiltersObj = paginationFunctionCall; paginatedFiltersObj.url = currentURL; setupPaginationObj = true; } const filterName = paginatedFiltersObj[functionName]; if (functionName === "filter_dropdown") { filterName[parameters[1]] = parameters[0]; } else if (functionName === "filter_checkbox") { !filterName[parameters[2]] && (filterName[parameters[2]] = []); // Add/remove value depending on "isChecked" if (parameters[1]) { if (!filterName[parameters[2]].includes(parameters[0])) { filterName[parameters[2]].push(parameters[0]); } } else { filterName[parameters[2]] = filterName[parameters[2]].filter(item => item !== parameters[0]); } } else if (functionName === "filter_rating") { paginatedFiltersObj[functionName] = parameters[0]; } else if (functionName === "filter_lessons" || functionName === "filter_students" || functionName === "filter_price_per_lesson" || functionName === "filter_prices") { filterName[0] = parameters[0]; filterName[1] = parameters[1]; } setCookie('functionCallPagination', JSON.stringify(paginatedFiltersObj)); } else { setCookie('functionCall', JSON.stringify({functionName, parameters, rangeSliderIndex: handleIndex})); document.getElementById("cover-spin").style.display = "block"; // IF (in age filter an age of less than 16 years has been selected) => load the junior course page instead of standard course page. if (0 && parameters[1] === "student_age_filter" && parameters[0] < 16) { window.location = "/schools-mexico-city/"; } else { window.location = "/schools-mexico-city/general"; } } }function filter_accommo(enable_acco_list) {filter_results['accommo'] = [];if (enable_acco_list.length > 0) {for (var i = filter_results['all'].length - 1; i >= 0; i--) {var id = filter_results['all'][i];if (schools[id]['accommo_types'].length > 0) {var inters = enable_acco_list.filter(function(value) {return -1 !== schools[id]['accommo_types'].indexOf(value)});if (inters.length > 0) {filter_results['accommo'].push(id);}}}} else {// No filterfilter_results['accommo'] = filter_results['all'];}apply_all_filters();}function filter_subcats(enable_cat_list) {filter_results['subcats'] = [];if (enable_cat_list.length > 0) {for (var i = filter_results['all'].length - 1; i >= 0; i--) {var id = filter_results['all'][i];if (enable_cat_list.includes(parseInt(schools[id]['subcategory'])))filter_results['subcats'].push(id);}}apply_all_filters();}function filter_lessons(min, max) { storeFunctionCall('filter_lessons', [...arguments]); if (!isFacetJs) return;filter_results['lessons'] = [];for (var i = filter_results['all'].length - 1; i >= 0; i--) {var id = filter_results['all'][i];if (schools[id]['lessons_per_week'].length > 0) {if (parseInt(schools[id]['lessons_per_week']) >= min && parseInt(schools[id]['lessons_per_week']) <= max) {filter_results['lessons'].push(id);}}}apply_all_filters();}function filter_students(min, max) { storeFunctionCall('filter_students', [...arguments]); if (!isFacetJs) return;filter_results['students'] = [];for (var i = filter_results['all'].length - 1; i >= 0; i--) {var id = filter_results['all'][i];if (schools[id]['max_students'].length > 0) {if (parseInt(schools[id]['max_students']) >= min && parseInt(schools[id]['max_students']) <= max) {filter_results['students'].push(id);}}}apply_all_filters();}function filter_rating(min) { storeFunctionCall('filter_rating', [...arguments]); if (!isFacetJs) return;if (min > 0) {filter_results['rating'] = [];for (var i = filter_results['all'].length - 1; i >= 0; i--) {var id = filter_results['all'][i];if (schools[id]['rating'].length > 0) {if (parseFloat(schools[id]['rating']) >= min) {filter_results['rating'].push(id);}}}} else {// No filterfilter_results['rating'] = filter_results['all'];}apply_all_filters();} function filter_checkbox(checkboxValue, isChecked, filterType) { storeFunctionCall('filter_checkbox', [...arguments]); if (!isFacetJs) return; const checkboxValueToNum = +checkboxValue; const checkedCheckboxes = jQuery(`#${filterType} input:checked`); const type = filterType.replace("checkBox_", ""); const checksLength = checkedCheckboxes.length; // Reset array if previously zero checks (isChecked && checksLength === 1) && (filter_results[type] = []); for (let i = filter_results['all'].length - 1; i >= 0; i--) { const id = filter_results['all'][i]; // Normalize course value as an array always to simplify further calculations const courseVal = Array.isArray(schools[id][type]) ? schools[id][type].map(Number) : [+schools[id][type]]; const filterArr = filter_results[type]; // Determine if checkboxValue is an array and handle accordingly const matchCondition = courseVal.includes(checkboxValueToNum); if (matchCondition) { // Include the course id in the filter array if the checked checkbox value is in the looping course value and not already present in the filter array if (isChecked) { !filterArr.includes(id) && filterArr.push(id); // Remove the course id from the filter array if the unchecked checkbox value is in the looping course value and doesn't match to other checked values in the case there are currently other checked checkboxes } else if (!isChecked) { // Before removing the current looping course, ensure no other checked checkboxes match any of its course values const allCheckedValues = checkedCheckboxes.map(function() { return +jQuery(this).val(); }).get(); const isPresentInOtherChecks = courseVal.some(val => allCheckedValues.includes(+val)); if (!isPresentInOtherChecks) { const index = filterArr.indexOf(id); if (index > -1) filterArr.splice(index, 1); } } } } // Reset array if currently zero checks if (checksLength === 0) { filter_results[type] = filter_results['all'].slice(); // slice with empty parameter to create a shallow copy of the array } apply_all_filters(false, true, type, checksLength === 0); } function filter_dropdown(dropDownValue, filterType) { storeFunctionCall('filter_dropdown', [...arguments]); if (!isFacetJs) return; const type = filterType.replace("_filter", ""); // Reset array if val is "0" if (dropDownValue === 0) { filter_results[type] = filter_results['all'].slice(); } else { for (let i = filter_results['all'].length - 1; i >= 0; i--) { const id = filter_results['all'][i]; const courseVal = schools[id][type]; const filterArr = filter_results[type]; let matchCondition = false; if (type === "course_duration") { matchCondition = courseVal.map(Number).includes(dropDownValue); } if (type === "student_age") { const [minAge, maxAge] = courseVal; matchCondition = (+minAge === 0 || +minAge <= dropDownValue) && (+maxAge === 0 || +maxAge >= dropDownValue); if (dropDownValue <= 17) { jQuery("#juniorCoursesSpecialMsg").show(); } } if (matchCondition) { !filterArr.includes(id) && filterArr.push(id); } else { const index = filterArr.indexOf(id); if (index > -1) filterArr.splice(index, 1); } } } apply_all_filters(false, false, type, false, true); }function filter_prices(min, max) { storeFunctionCall('filter_prices', [...arguments]); if (!isFacetJs) return;filter_results['prices'] = [];for (var i = filter_results['all'].length - 1; i >= 0; i--) {var id = filter_results['all'][i];if (schools[id]['course_price'].length > 0) {if (parseInt(schools[id]['course_price']) >= min && parseInt(schools[id]['course_price']) <= max)filter_results['prices'].push(id);}}apply_all_filters();} function filter_price_per_lesson(min, max) { storeFunctionCall('filter_price_per_lesson', [...arguments]); if (!isFacetJs) return; filter_results['price_per_lesson'] = []; for (var i = filter_results['all'].length - 1; i >= 0; i--) { var id = filter_results['all'][i]; if (schools[id]['price_per_lesson'].length > 0) { if (parseInt(schools[id]['price_per_lesson']) >= min && parseInt(schools[id]['price_per_lesson']) <= max) filter_results['price_per_lesson'].push(id); } } apply_all_filters(); }function onChangeSubcatFilter() {var cat_list = [];var subcatNavSpan = document.querySelectorAll("#subcatNav ul li span");for (var i = 0, len = subcatNavSpan.length; i < len; i++) {if (subcatNavSpan[i].getElementsByTagName("input")[0].checked) {cat_list.push( parseInt( subcatNavSpan[i].attributes['cat_type'].value ) );}}filter_subcats(cat_list);}function reset_subcats() {filter_results['subcats'] = filter_results['all'];var subcatNavSpan = document.querySelectorAll("#subcatNav ul li span");for (var i = 0, len = subcatNavSpan.length; i < len; i++) {subcatNavSpan[i].getElementsByTagName("input")[0].checked = true;}apply_all_filters();}function onChangeAccoFilter() {var acco_list = [];var accommoNavSpan = document.querySelectorAll("#accommoNav ul li span");for (var i = 0, len = accommoNavSpan.length; i < len; i++) {if (accommoNavSpan[i].getElementsByTagName("input")[0].checked) {acco_list.push( parseInt( accommoNavSpan[i].attributes['acco_type'].value ) );}};filter_accommo(acco_list);}function reset_accommo() {filter_results['accommo'] = filter_results['all'];var accommoNavSpan = document.querySelectorAll("#accommoNav ul li span");for (var i = 0, len = accommoNavSpan.length; i < len; i++) {accommoNavSpan[i].getElementsByTagName("input")[0].checked = false;};apply_all_filters();}function reset_prices() {filter_results['prices'] = filter_results['all'];jQuery("#coursePrice_left").text(rangesSliders["course_price"][0]);jQuery("#coursePrice_right").text(rangesSliders["course_price"][1]);jQuery('#sliderRange_coursePrice').slider("option", "values", [rangesSliders["course_price"][0], rangesSliders["course_price"][1]]);apply_all_filters();} function reset_price_per_lesson() { filter_results['price_per_lesson'] = filter_results['all']; jQuery("#pricePerLesson_left").text(rangesSliders["price_per_lesson"][0]); jQuery("#pricePerLesson_right").text(rangesSliders["price_per_lesson"][1]); jQuery('#sliderRange_pricePerLesson').slider("option", "values", [rangesSliders["price_per_lesson"][0], rangesSliders["price_per_lesson"][1]]); apply_all_filters(); }function reset_lessons() {filter_results['lessons'] = filter_results['all'];jQuery("#numOfLessons_left").text(rangesSliders["lessons_per_week"][0]);jQuery("#numOfLessons_right").text(rangesSliders["lessons_per_week"][1]);jQuery('#sliderRange_numOfLessons').slider("option", "values", [rangesSliders["lessons_per_week"][0], rangesSliders["lessons_per_week"][1]]);apply_all_filters();}function reset_students() {filter_results['students'] = filter_results['all'];jQuery("#numOfStudents_left").text(rangesSliders["max_students"][0]);jQuery("#numOfStudents_right").text(rangesSliders["max_students"][1]);jQuery('#sliderRange_numOfStudents').slider("option", "values", [rangesSliders["max_students"][0], rangesSliders["max_students"][1]]);apply_all_filters();}function reset_rating() {filter_rating(0);jQuery('#ratingStarsLeftBar use').removeClass('starFiltselected');} function reset_checkbox(type) { jQuery(`#checkBox_${type} input:checked`).click(); } function reset_student_age() { jQuery('#student_age_filter ul li:first-child a').click(); } function reset_course_duration() { jQuery('#course_duration_filter ul li:first-child a').click(); }function filter_details(filter, value) {var detail = "";var starEl = jQuery('#ratingStarsLeftBar .starFiltselected');var ratingValue = parseInt(starEl.last().data('value'), 10) || value;switch(filter) {case "lessons": detail = ": [" + jQuery('#sliderRange_numOfLessons').slider("option", "values")[0] + " - " + jQuery('#sliderRange_numOfLessons').slider("option", "values")[1] + "]"; break;case "students": detail = ": [" + jQuery('#sliderRange_numOfStudents').slider("option", "values")[0] + " - " + jQuery('#sliderRange_numOfStudents').slider("option", "values")[1] + "]"; break;case "prices": detail = ": [" + jQuery('#sliderRange_coursePrice').slider("option", "values")[0] + " US$ - " + jQuery('#sliderRange_coursePrice').slider("option", "values")[1] + " US$]"; break; case "price_per_lesson": detail = ": [" + jQuery('#sliderRange_pricePerLesson').slider("option", "values")[0] + " US$ - " + jQuery('#sliderRange_pricePerLesson').slider("option", "values")[1] + " US$]"; break;case "rating": detail = ": [" + ratingValue +" stars or better]"; break;case "accommo": detail += ": " + jQuery("#checkBox_accommo input:checked").map(function() { return jQuery(this).parent().text().trim(); }).get().join(', '); break; case "school": detail += ": " + jQuery("#checkBox_school input:checked").map(function() { return jQuery(this).parent().text().trim(); }).get().join(', '); break; case "cities": detail += ": " + jQuery("#checkBox_cities input:checked").map(function() { return jQuery(this).parent().text().trim(); }).get().join(', '); break; case "room_occupancy": detail += ": " + jQuery("#checkBox_room_occupancy input:checked").map(function() { return jQuery(this).parent().text().trim(); }).get().join(', '); break; case "language_level": detail += ": " + jQuery("#checkBox_language_level input:checked").map(function() { return jQuery(this).parent().text().trim(); }).get().join(', '); break; case "accommodation_type": detail += ": " + jQuery("#checkBox_accommodation_type input:checked").map(function() { return jQuery(this).parent().text().trim(); }).get().join(', '); break; case "meal_plans": detail += ": " + jQuery("#checkBox_meal_plans input:checked").map(function() { return jQuery(this).parent().text().trim(); }).get().join(', '); break; case "course_duration": const cDurVal = jQuery("#course_duration_dd_filter .sel_filter").text(); detail += ": " + cDurVal + " " + (+cDurVal === 1 ? "week" : "weeks"); break; case "student_age": detail += ": " + jQuery("#student_age_dd_filter .sel_filter").text() + " years old"; break;default:;}return detail;}

Do you need a visa?


Country of Nationality:

Duration: weeks

Warning!

Please choose a Monday as a course starting date.

";if (pc_result['prices']['discount_tuition'] > 0) {tpl += "" + pc_result['prices']['tuition_before_so'] + currency + "";} else {tpl += "";}tpl += Math.ceil(pc_result['prices']['tuition_before_so'] - pc_result['prices']['discount_tuition']) + currency + "" + pc_result['prices']['course_name'] + "";if (pc_result['prices']['accommodation_accom'] > 0 && pc_result['prices']['includes_accommodation'] != 1) {tpl += "" + pc_result['prices']['accommodation_accom'] + currency + "" + pc_result['prices']['accommodation_name'] + "";}if (pc_result['prices']['inscription']>0) {tpl += "" + pc_result['prices']['inscription'] + currency + "School's administrative fee";}if (pc_result['prices']['includes_accommodation'] != 1 && pc_result['prices']['accommodation_fee']>0) {tpl += "" + pc_result['prices']['accommodation_fee'] + currency + "One time accommodation fee charged by school";}if (pc_result['prices']['hs_course'] > 0 && selected_date!=0) {tpl += "" + pc_result['prices']['hs_course'] + currency + "High season supplement (Course)";}if (pc_result['prices']['hs_accommodation'] > 0 && selected_date!=0) {tpl += "" + pc_result['prices']['hs_accommodation'] + currency + "High season supplement (Accommodation)";}if (pc_result['prices']['hasCourseOffer'] == true && pc_result['prices']['offerCourseDiscount'] > 0) {tpl += "" + "-" + pc_result['prices']['offerCourseDiscount'] + currency + "" + pc_result['prices']['textSpecialOfferCourse'] + "";}if (pc_result['prices']['hasAccommodationOffer'] == true && pc_result['prices']['offerAccommodationDiscount'] > 0) {tpl += "" + "-" + pc_result['prices']['offerAccommodationDiscount'] + currency + "" + pc_result['prices']['textSpecialOfferAccommodation'] + "";}tpl += "";var total = pc_result['prices']['total'];var total_nodiscount = pc_result['prices']['subtotal'] + pc_result['prices']['offerCourseDiscount'] + pc_result['prices']['offerAccommodationDiscount'];if (selected_date==0) {var hs_course = parseInt(pc_result['prices']['hs_course']);if (isNaN(hs_course)) {hs_course=0;}var hs_accommo = parseInt(pc_result['prices']['hs_accommodation']);if (isNaN(hs_accommo)) {hs_accommo=0;}total -= ( hs_course + hs_accommo);total_nodiscount -= ( hs_course + hs_accommo);}if (total_nodiscount > total) {tpl += "" + Math.ceil(total_nodiscount) + currency + "";} else {tpl += "";}tpl += Math.ceil(total) + currency + "
";if (selected_date!=0) {tpl += "Total final price including seasonal supplements, school registration fees and applicable sales tax.";} else {tpl += "Total final price including school registration fees and applicable sales tax.";}//tpl += jQuery("#courseSelected_" + school_id).attr("extra-info");tpl += jQuery("#infotooltip_" + school_index).attr("extra-info");jQuery("#infotooltip_" + school_index).attr("data-original-title", tpl);}
");const alterTooltipf = function() {if (jQuery(".mobileCloseTooltip").length == 0) {jQuery('.tooltip-inner').prepend(newInsert);}}if (aDataToggleTooltip.length !== 0 ) {let i;for (i = aDataToggleTooltip.length - 1; i >= 0; i--) {const el = jQuery(aDataToggleTooltip[i]);el.on('inserted.bs.tooltip', alterTooltipf)}}}// touch screen device detectionif ( ("ontouchstart" in window || window.DocumentTouch && document instanceof DocumentTouch) === true ) {// put close button in tooltips when touchscreen is detected setTimeout(function() { itsTouchScreen(); }, 2500);}function destroyFlagToolEtc() {// destroy language flags tooltip when mobile// Mobile search box micro-plugin variables// const searchQuery = jQuery("#search_query");// destroy the flags info tooltip in mobileif (typeof(flagsTooltip.tooltip) === 'function') {flagsTooltip.tooltip('destroy');}langListPop.off('hide.bs.popover');// turn off the event to re-init the tooltip after flags selector popover hideslangListPop.on('show.bs.popover', function() {langListPop.off('hide.bs.popover');});/** Mobile search box micro-plugin **/// start with transparent in order to don't hide magnifying glass icon// searchQuery.css('background-color', 'transparent');// bind focus event// searchQuery.on('focus', function() {// const that = jQuery(this);// to calculate search box deployment final width// const totalSearchFieldWidth = jQuery("#cBoxTabWrap").outerWidth() - jQuery("#searchForm_small").outerWidth() - 87;// background-color play to always show icon and have white background in search field// that.css('background-color', '#fff');// Show 'searchPlaceholderVar' variable is defined in the 'page_header.tpl' then animate the search field// that.attr('placeholder', searchPlaceholderVar).animate({// width: totalSearchFieldWidth,// }, 400, "swing", function() { // jQuery("#magniFyingGlass").hide(); // jQuery("#closeSearchBar").show(); // });// });//bind blur event// searchQuery.on('blur', function() {// const that = jQuery(this);// const glyphiconSearch = jQuery("#searchForm_small").find(".fa-search");// //contactBoxPhonesMobText.css('color', '');// // z-index play// glyphiconSearch.css('z-index', '4');// that.animate({// // animate back to zero width to close the field// width: 0,// }, 400, function() { // // jQuery("#magniFyingGlass").show(); // // jQuery("#closeSearchBar").hide();// // // background and z-index play// // that.css('background-color', 'transparent');// // glyphiconSearch.css('z-index', '');// });// });/** END OF => Mobile search box micro-plugin **/}// La siguiente función "slidingMenu();" sirve para mostrar y ocultar el sliding facetted menú lateral en el responsive modefunction slidingMenu() {// toggle side menuconst leftMenuBtns = jQuery("#filterMobBut, #cbp-spmenu-s2, #showLeft, #closeButtonSlideMenuTop, #closeButtonSlideMenuBot");// elements for toggling classes overconst bodyContent = jQuery("#body_content");const menuLeft = jQuery("#cbp-spmenu-s2");const closeButTopEl = jQuery('#closeButtonSlideMenuTop')[0];const closeButBotEl = jQuery('#closeButtonSlideMenuBot')[0];leftMenuBtns.on('click', function(event) {const transitionEvent = whichTransitionEvent();// No need of using event.stopPropagation() anymore writing the condition below!// to check if click is originated from outside the side menu itself// https://css-tricks.com/dangers-stopping-event-propagation/#article-header-id-2if (!jQuery(event.target).closest('#wrapSlideMenu').length || (event.target == closeButTopEl && event.currentTarget.id != "cbp-spmenu-s2") || (event.target == closeButBotEl && event.currentTarget.id != "cbp-spmenu-s2") ) {menuLeft.toggleClass('cbp-spmenu-open');// triggered only when closing the sidebar, so detect the transition end before changing z-indexif (bodyContent.hasClass('cbp-spmenu-opened')) {// .one() => because if the event handler is not removed after its called, the class will be removed from the second triggering and so on (the handler continue running if not cancelled)menuLeft.one(transitionEvent, function() {bodyContent.removeClass('cbp-spmenu-opened');});} else {// triggered only when opening the sidebar: no need of changing z-indexbodyContent.addClass('cbp-spmenu-opened');}}});}// END of slidingMenu() logicif (currentSize.width <= 1024) {slidingMenu();}// trigger reflows on resize width from desktop to mobilejQuery(window).on('widthOnlyResizedMobile', function() {var leftMenuBtns = jQuery("#filterMobBut, #cbp-spmenu-s2, #showLeft, #closeButtonSlideMenuTop, #closeButtonSlideMenuBot");leftMenuBtns.off('click');slidingMenu();}); /***********************************//** Main school_overview reflows **//*********************************/// school_overview repositions when resizing from desktop to mobilefunction mobileResp() {const contentPanel = jQuery("#content_panel");const schoolContainer = contentPanel.find(".schoolContainer");let starting_date = jQuery("#calendar_date").val();const schoolDetailsDropWrap = contentPanel.find(".schoolDetailsDropWrap");const resultsDetails2 = jQuery(".resultsDetails2"); // const reflowBlocks = jQuery(".reflowBlocks");const ratingWrap = jQuery(".ratingBlockWrap").find(".ratingWrap");// var textInsideCalc = jQuery('.textInsideCalc');// var calcModal = jQuery("#calcModal");// calcModal.appendTo(textInsideCalc);// modal changes on resizejQuery(".modal-backdrop").css('display', '');// calcModal.addClass('modal fade').removeClass('modalDisplay');jQuery("#decorator_xx10").addClass('modal-dialog');// jQuery("#modalContent").addClass('modal-content');// school_overview FACETS onlycontentPanel.find(".wrappableDivFacets").addClass('collapse').css('height', '');/*reflowBlocks.each(function() { const that = jQuery(this); const closest = that.closest(".middleAndResults"); closest.find(".resultsDetails2").insertAfter(that); that.insertAfter(closest.find(".mainRatingWrap")); });*/ resultsDetails2.each(function() { const that = jQuery(this); that.insertAfter(that.closest(".middleAndResults").find(".reflowBlocks")); });schoolDetailsDropWrap.each(function(){const that = jQuery(this);that.closest(".middleAndResults").find('.buttonToSchoolWrap').appendTo(that.closest('.schoolRightContentWrap'));// that.parent().find('.resultsLogos').after(that.find('.school_overview_p_inside_box_results'));if (that.hasClass('secondarySchoolBlock')) {that.appendTo(that.closest('.middleTop').find('.contentSideImg'));}});ratingWrap.each(function() {const that = jQuery(this);that.after(that.prev());});schoolContainer.each(function() {const that = jQuery(this);that.find(".resultsBand").prependTo(that.find(".middleTop"));// schoolDetailsDropWrap.css('width', '');that.find(".newBadge").insertAfter(that.find(".schoolPictWrap"));that.find(".schoolStrenghtsWrap").appendTo(that.find(".resultsDetails2")); that.find(".schoolDetailsDropWrap").insertAfter(that.find(".mainRatingWrap"));});// school_overview calculator partjQuery("#mob_duration_sel").html(jQuery("#duration_sel").html());if (starting_date == "") {starting_date = jQuery("#calendar_date_intro").html();jQuery("#calendarIndicator").html("+").addClass("calNumEmpty").removeClass("calNumFilled");} else if (typeof(starting_date) !== 'undefined') {jQuery("#calendarIndicator").html( starting_date.substr(0, starting_date.indexOf(' ')) ).addClass("calNumFilled").removeClass("calNumEmpty");}// jQuery("#mob_calendar_date").html(starting_date);jQuery("#mob_course_category_sel").html(jQuery("#course_category_sel").html());jQuery("#mob_accommodation_type_sel").html(jQuery("#accommodation_type_sel").html());jQuery(".modal-backdrop").css('display', '');// calcModal.addClass('modal fade').removeClass('modalDisplay');jQuery("#decorator_xx10").addClass('modal-dialog');// jQuery("#modalContent").addClass('modal-content');jQuery("span.city_video_big").addClass("city_video").removeClass("city_video_big");// school_overview secondary schools collapsibles// jQuery('[id^=schoolAltRatings], [id^=dataSchool]').collapse('show');// jQuery('[id^=S_Name]').removeClass("DDColl").addClass("DDExp");}// Main school_overview desktop repositionsfunction schoolOverviewReposition() {const contentPanel = jQuery("#content_panel");const schoolContainer = contentPanel.find(".schoolContainer");const schoolRightContentWrap = jQuery(".schoolRightContentWrap");const resultsDetails2_1 = jQuery(".resultsDetails2_1");const ratingWrap = jQuery(".ratingBlockWrap").find(".ratingWrap");const middleWrap = jQuery('.middleWrap');// var boxedBottWrap = jQuery('#boxedBottWrap');// var calcModal = jQuery("#calcModal");// calcModal.appendTo(boxedBottWrap);schoolContainer.each(function() {const that = jQuery(this);that.find(".resultsBand").insertBefore(that.find(schoolRightContentWrap));that.find(".newBadge").prependTo(that.find(".buttonToSchoolWrap"));that.find(".schoolStrenghtsWrap").insertAfter(that.find(".middleBot")); that.find(".schoolDetailsDropWrap ").appendTo(that.find(".middleTop"))// To avoid elements repositioning flashes during page load// that.find(".contentSideImg, .schoolDetailsDropWrap, .buttonToSchoolWrap").show();});schoolRightContentWrap.each(function() {const that = jQuery(this);// https://es.stackoverflow.com/questions/61505/c%C3%B3mo-hacer-para-aplicar-important-de-css-con-jquery-javascriptif (that.find(".schoolDetailsDropWrap")[0]) {// that.find(".schoolDetailsDropWrap")[0].style.setProperty('width', '88%', 'important');that.find(".buttonToSchoolWrap").appendTo(that.find(resultsDetails2_1));}});// resultsDetails2_1.each(function() {// const that = jQuery(this);// that.closest(".middleAndResults").find(".reflowBlocks").insertAfter(that.closest(".middleAndResults").find(".head_yellow_7"));// });middleWrap.each(function(){const that = jQuery(this);that.after(that.find(".resultsDetails2"));// that.find(".school_overview_p_inside_box_results").prependTo(that.find(".schoolDetailsDropWrap"));});ratingWrap.each(function() {const that = jQuery(this);that.next().after(that);});contentPanel.find(".schoolDetailsDropWrap").find(".wrappableDiv").unwrap();// calcModal.removeClass('modal fade').addClass('modalDisplay');jQuery("#decorator_xx10").removeClass('modal-dialog');// jQuery("#modalContent").removeClass('modal-content');jQuery("span.city_video").addClass("city_video_big").removeClass("city_video");// school_overview FACETS onlycontentPanel.find(".wrappableDivFacets").removeClass('collapse').css('height', 'auto');// school_overview secondary schools collapsibles// jQuery('[id^=schoolPicture]').collapse('hide').height('0px');// jQuery('[id^=S_Name]').removeClass("DDExp").addClass("DDColl");} function trimSchoolDescriptions(textLength, removeLink = false) { function trimToWords(text, wordCount) { // Remove line breaks and extra spaces text = text.replace(/\s+/g, ' ').trim(); const words = text.split(' '); if (words.length <= wordCount) { return text; } let trimmed = words.slice(0, wordCount).join(' '); // Remove any non-alphanumeric characters from the end of the trimmed text trimmed = trimmed.replace(/[^a-zA-Z0-9]+$/, ''); return trimmed + ' ...'; } const elements = document.querySelectorAll('.school_overview_p_inside_box_results_inside'); for (let i = 0; i < elements.length; i++) { const originalText = elements[i].textContent || elements[i].innerText; elements[i].textContent = trimToWords(originalText, textLength); } }if (currentSize.width >= 1025) {schoolOverviewReposition(); trimSchoolDescriptions(22);// const bar_flags_new = jQuery("#bar_flags_new").detach();// bar_flags_new.appendTo("#searchFormSmallWrap");} else { trimSchoolDescriptions(12, true); } jQuery('[id^=schoolPicture]').collapse('hide').height('0px');// trigger reflows to be done in mobile mode when resizing from desktop to mobilejQuery(window).on('widthOnlyResizedMobile', mobileResp);// ... and viceversajQuery(window).on('widthOnlyResizedDesktop', function() {// const mainRatingWrap = jQuery(".mainRatingWrap");schoolOverviewReposition();// jQuery(".resultsDetails2_1").each(function() {// const that = jQuery(this);// that.closest(".middleAndResults").find(mainRatingWrap).prependTo(that);// });});/**************************//** Main school reflows **//************************/function allPagesDesktopReflows() {// const bar_flags_new = jQuery("#bar_flags_new").detach();// ALL pages => flags widget// bar_flags_new.appendTo("#searchFormSmallWrap");// ALL pages => "wechat" "whatsapp" "kakao" & "skype"jQuery("#contactBoxSkype").insertAfter("#contactBoxPhones"); // ALL pages => cBox jQuery("#contactBoxChat").insertBefore("#contactBoxTextareaDiv");// ALL PAGES (footer)// ALL pages where we use bootstrap modalsjQuery('.modal-backdrop.fade.in').css('display', 'none');// All pages but UG (header)jQuery("#searchFormSmallWrap").prependTo("#headSearchBar");} // remove placeholder on focus event jQuery("#searchBarMob .search_query, .searchQueryWrap .search_query").on('focus', function() { jQuery(this).removeAttr('placeholder'); });flagsTooltipInit = function() {if (typeof jQuery().tooltip === 'function') {// destroy lang flags tooltip if flags popover is shownlangListPop.on('show.bs.popover', function() {flagsTooltip.tooltip('destroy');});if (currentSize.width <= 1024) {if (typeof(flagsTooltip.tooltip) === 'function') {flagsTooltip.tooltip('destroy');}} else {if (!windowMatchObj.mqoh.matches) {// re-init lang flags tooltip when flags popover is hiddenlangListPop.on('hide.bs.popover', function() {jQuery('[data-toggle="tooltipTop"]').tooltip({trigger : 'hover',placement: 'top'});});}if (windowMatchObj.mqoh.matches) {if (typeof(flagsTooltip.tooltip) === 'function') {flagsTooltip.tooltip('destroy');langListPop.off('hide.bs.popover');}}}}}// avoid hiding flags selector if the cBox is overlapping itfunction avoidHidingFlags() {if (windowMatchObj.mqoh.matches) { const contactBoxWrapper = jQuery('#contactBoxWrapper');langListPop.on('show.bs.popover', function () {contactBoxWrapper.css('z-index', '10');});langListPop.one('hide.bs.popover', function () {contactBoxWrapper.css('z-index', '');if (typeof(flagsTooltip.tooltip) === 'function') {flagsTooltip.tooltip('destroy');}});flagsTooltip.on('show.bs.tooltip', function () {if (typeof(flagsTooltip.tooltip) === 'function') {flagsTooltip.tooltip('destroy');}});} else {langListPop.off('show.bs.popover hidden.bs.popover');flagsTooltipInit();}}avoidHidingFlags();windowMatchObj.mqoh.addListener(avoidHidingFlags);jQuery(window).on('widthOnlyResized', function() {// restart bind and width in case of window resize in order to don't hide magnifying glass icon// jQuery("#search_query").off('focus blur').css('width', '');});if (currentSize.width <= 1024) {destroyFlagToolEtc();}if (currentSize.width >= 1025) {allPagesDesktopReflows(); } // remove heading middle line if 2 lines if (!(jQuery('#school_overview').length && currentSize.width <= 1024)) { const h2Elements = jQuery('h2'); for (let i = 0; i < h2Elements.length; i++) { const el = jQuery(h2Elements[i]); if (el.find('.titleSep').height() > 40) { el.addClass('removeBorderBottom'); } }; }// execute destroy language flags tooltip + mobile searchbar (triggered only on mobile and only on resize from desktop mode)jQuery(window).on('widthOnlyResizedMobile', function() {// const bar_flags_new = jQuery("#bar_flags_new").detach();destroyFlagToolEtc();// bar_flags_new.appendTo(jQuery("#cBoxTabWrap"));jQuery("#contactBoxChat").insertAfter("#contactBoxTextareaDiv");jQuery("#searchFormSmallWrap").insertAfter("#contactBoxChat");if (typeof getLangSuggestion === "function") {getLangSuggestion(0);}reInitPopover('#changeLanguageFlags'); jQuery("#contactBoxSkype").insertBefore("#sendBlockWrap");});// Triggered only on desktop and only on resize from mobile modejQuery(window).on('widthOnlyResizedDesktop', function() {// ALL PAGES => re-init the tooltip if previously destroyed on mobileallPagesDesktopReflows();if (typeof(flagsTooltip.tooltip) === 'function') {// IMPORTANT: .tooltip('destroy') is asynchronous, and immediate creation of another popover fails, while the previous one is being destroyed [same that happens with .popover('destroy') method].// https://stackoverflow.com/questions/27238938/bootstrap-popover-destroy-recreate-works-only-every-second-time#answer-27345242setTimeout(function() {flagsTooltip.tooltip({trigger : 'hover',placement: 'top'});}, 200);}// ALL PAGES => re-init event handler if previously turned off on mobilelangListPop.on('show.bs.popover', function() {// re-init lang flags tooltip when flags popover is hiddenlangListPop.on('hide.bs.popover', function() {setTimeout(function() {flagsTooltip.tooltip({trigger : 'hover',placement: 'top'});}, 200);});});reInitPopover('body');});}); /* CLOSING BIG WINDOW ONLOAD FUNCTION */ ';// right template when container distance to right is more than 300px in desktop mode or the cBox is closed} else if ( distanceToRight > 300 || !contactBoxStatuses.locked ) {return '';}// always bottom template when mobile mode} else if ( windowWidth <= 1024 ) {return '';}};if (typeof jQuery().tooltip === 'function') {// init price calculator or price breakdown tooltipstooltipPC.tooltip({trigger : 'hover',placement: function (tooltip, button) { if (jQuery(button).hasClass('carouselTooltipBtn')) { return 'bottom'; }const distanceToRight = distanceOfPCToRight();const windowWidth = window.innerWidth;if (windowWidth >= 1025) {// left show when container distance to right is less than 300px in desktop mode or the cBox is openedif ( distanceToRight <= 300 || contactBoxStatuses.locked ) {return 'left';// right show when container distance to right is more than 300px in desktop mode or the cBox is closed} else if ( distanceToRight > 300 || !contactBoxStatuses.locked ) {return 'right';}// always bottom show when mobile mode} else if ( windowWidth <= 1024 ) {return 'bottom';}},html: true,// get templatetemplate: templateTooltipPC()});};// conditionals to right/left/bottom open tooltips -- first select each tooltipfor (i = tooltipPC.length - 1; i >= 0; i--) {// when tooltip is completely visible, alter its HTML inserting or removing classes:jQuery(tooltipPC[i]).on('inserted.bs.tooltip', function() {const windowWidth = window.innerWidth;if (windowWidth >= 1025) {// left show when container distance to right is less than 300px in desktop mode and the cBox is openedif ( distanceOfPCToRight() <= 300 || contactBoxStatuses.locked ) {jQuery('.tooltip').removeClass("tri-left tri-up").addClass("tri-right tri-down");// right show when container distance to right is more than 300px in desktop mode and the cBox is closed} else if ( distanceOfPCToRight() > 300 || !contactBoxStatuses.locked ) {jQuery('.tooltip').removeClass("tri-right tri-up").addClass("tri-left tri-down");}// always bottom show when mobile mode} else if ( windowWidth <= 1024 ) {jQuery('.tooltip').removeClass("tri-down tri-right tri-left").addClass("tri-up");}});}};jQuery(window).on('load', function() {setTimeout(function() {// execute tooltip function above on window loadinitTooltipPC();}, 2000);});jQuery(window).on('load', function() {// university detailsif (jQuery('.ranking-table.variant').length > 0) {jQuery('.ranking-table.variant .provider').tooltip({html: true,template: '',title: 'loading...',placement: function (tooltip, button) {const windowWidth = window.innerWidth;if( windowWidth <= 1024 ) { placement = 'bottom';} else { placement = 'right';}return placement;},trigger: 'hover click'}).on('show.bs.tooltip', function() {const that = jQuery(this);const title = that.find('.primary_indicators').html();// 'data-original-title' => https://stackoverflow.com/questions/9501921/change-twitter-bootstrap-tooltip-content-on-clickthat.attr('data-original-title', title).tooltip('fixTitle');});} if (window.innerWidth >= 1025) { !jQuery("#radios_lists").length && showAgentImg(); cBoxDesktopReflows(); jQuery("#searchBarMob input").prop('disabled', true); jQuery("#searchBarDesk input").prop('disabled', false); } else { jQuery("#buttonToChat, #contactBoxTextareaDiv, #proActiveBubbleWrapMob").on('click', showAgentImg); jQuery("#proActiveBubbleWrapMob .closeContactBox").on('click', function(e) { e.stopPropagation(); jQuery("#proActiveBubbleWrapMob").fadeOut(300); }); jQuery("#searchBarDesk input").prop('disabled', true); jQuery("#searchBarMob input").prop('disabled', false); } function cBoxDesktopReflows() { jQuery("#contactBoxAgent").insertAfter(jQuery("#closingTab")); } function showAgentImg() { const cBoxAgent = jQuery("#contactBoxAgent"); if (document.getElementById('contactBoxSkype')?.innerHTML !== '') { const cBoxImg = document.getElementById("cBoxImg"); if (cBoxImg) { cBoxImg.setAttribute("src", cBoxImg.getAttribute('data-image')); cBoxAgent.show(); } const theSkypeImg = document.getElementById("theSkypeImg"); theSkypeImg && theSkypeImg.setAttribute("src", theSkypeImg.getAttribute('data-image')); const theKakaoImg = document.getElementById("theKakaoImg"); theKakaoImg && theKakaoImg.setAttribute("src", theKakaoImg.getAttribute('data-image')); const theWechatImg = document.getElementById("theWechatImg"); theWechatImg && theWechatImg.setAttribute("src", theWechatImg.getAttribute('data-image')); const weChatQRImg = document.getElementById("weChatQRImg"); weChatQRImg && weChatQRImg.setAttribute("src", weChatQRImg.getAttribute('data-image')); const theWhatsAppImg = document.getElementById("theWhatsAppImg"); theWhatsAppImg && theWhatsAppImg.setAttribute("src", theWhatsAppImg.getAttribute('data-image')); } else { cBoxAgent.hide(); setTimeout(showAgentImg, 100); } } jQuery(window).on('widthOnlyResizedMobile', function() { jQuery("#contactBoxAgent").insertAfter(jQuery("#closingFunctions")); jQuery("#searchBarDesk input").prop('disabled', true); jQuery("#searchBarMob input").prop('disabled', false); }); jQuery(window).on('widthOnlyResizedDesktop', function() { cBoxDesktopReflows(); jQuery("#searchBarMob input").prop('disabled', true); jQuery("#searchBarDesk input").prop('disabled', false); }); });

`; jQuery('body').append(alertHtml); jQuery('.custom-alert').hide().fadeIn(500); setTimeout(function() { jQuery('.custom-alert').fadeOut(500, function() { jQuery(this).remove(); }); }, 10000); }});/* Special 'popWithFunc' popover with special 'favorites' behaviour. Check extended functionality in 'customBootstrapPlugins.js' */function favoPopText(that) {if (that.find("svg").hasClass('selected')) {return " Added to favorites"; // return "

{*/literal}{$words.added_to_favorites}{literal*}

";} else {return " Removed from favorites";}}/* END of special 'favorites' behaviour */

"); jQuery("#starting_date_notice_dp").html('Please choose a Monday as a course starting date.'); } }// previous was desktopjQuery(window).on('widthOnlyResizedMobile', function() {ResCarouselSize();});// previous was mobilejQuery(window).on('widthOnlyResizedDesktop', function() {ResCarouselSize();});// normal responsivenessjQuery(window).on('widthOnlyResized', function() {if (currentSize.width <= 1185) {// DEP: all below is to avoid a glitch: bad calculations & goofy layout rendering when resizing and carousel collapsible containers are opened// DEP: only select secondary blocks collapsible elements// DEP: var elements = jQuery("div[id$='_coll']");// check fn on jquery.tpl (this is just to collapse all secondary blocks elements)enableDisableCollapseSecond(false);// DEP: jQuery(elements).one('hidden.bs.collapse', function() {ResCarouselSize();// DEP: });}});/******************************//*** END OF MULTI-CAROUSEL ***//****************************/

The Best Spanish online language courses 2024 Comparison (2024)
Top Articles
Video Editing Online Courses: Master The Basics - FilmDaft
10 Best Photography Websites, Courses, & Resources to Learn Photography | Envato Tuts+
Ads of Cars for Sale in Lithuania
Luxury Real Estate in Schönwalde-Glien: Luxury Real Estate Listings
Super Bowl 59: Wettquoten vor den Training Camps 2024
How Tom Brady and Tampa Bay Buccaneers Beat the Chiefs to Win the Super Bowl (Published 2021)
eCourts Frequently Asked Questions | NJ Courts
Cacagirl Boyfriend Jay? Relationship Timeline And Age Gap
Strike Skills Poe
Tennis-Turniere 2024: Kalender und Ergebnisse für wichtige ATP und WTA-Turniere
Kent Records — Kent Archaeological Society
Saxet Funeral Home Corpus Christi Tx Obituaries
Latest Posts
100 Days Of School Printables Free
McCallum Vintage Recipe Divas
Article information

Author: Otha Schamberger

Last Updated:

Views: 6101

Rating: 4.4 / 5 (75 voted)

Reviews: 82% of readers found this page helpful

Author information

Name: Otha Schamberger

Birthday: 1999-08-15

Address: Suite 490 606 Hammes Ferry, Carterhaven, IL 62290

Phone: +8557035444877

Job: Forward IT Agent

Hobby: Fishing, Flying, Jewelry making, Digital arts, Sand art, Parkour, tabletop games

Introduction: My name is Otha Schamberger, I am a vast, good, healthy, cheerful, energetic, gorgeous, magnificent person who loves writing and wants to share my knowledge and understanding with you.