function changeLanguage(previousLang) { var languageSelector = document.getElementById('languageSelector'); $('#langConfirmModal').modal('show'); var selectedLanguage = languageSelector.value; $('#langModalCancel').on('click', function(e) { var previousLanguage = $('#languageId').val(); $('#languageSelector').val(previousLanguage); }); $('#langModalSave').on('click', function(e) { // Hide the modal $('#langConfirmModal').modal('hide'); // Update the message resolver $.post('change-locale.htm', { langId: selectedLanguage }, // Success callback function(data) { var newURL = updateURLParameter(window.location.href, 'langId', selectedLanguage); document.getElementById('languageId').value = selectedLanguage; // Refresh page window.location.href = newURL; } ); }); } function updateURLParameter(url, param, paramVal) { var newAdditionalURL = ""; var tempArray = url.split("?"); var baseURL = tempArray[0]; var additionalURL = tempArray[1]; var temp = ""; if (additionalURL) { tempArray = additionalURL.split("&"); for (var i = 0; i < tempArray.length; i++) { if (tempArray[i].split('=')[0] != param) { newAdditionalURL += temp + tempArray[i]; temp = "&"; } } } var rows_txt = temp + "" + param + "=" + paramVal; return baseURL + "?" + newAdditionalURL + rows_txt; }