function switchLocale(locale){ reloadWithQueryStringVars({"_lang": locale}); } function reloadWithQueryStringVars (queryStringVars) { var existingQueryVars = location.search ? location.search.substring(1).split("&") : [], currentUrl = location.search ? location.href.replace(location.search,"") : location.href, newQueryVars = {}, newUrl = currentUrl.replace(/#/g, "") + "?"; if(existingQueryVars.length > 0) { for (var i = 0; i < existingQueryVars.length; i++) { var pair = existingQueryVars[i].split("="); newQueryVars[pair[0]] = pair[1]; } } if(queryStringVars) { for (var queryStringVar in queryStringVars) { newQueryVars[queryStringVar] = queryStringVars[queryStringVar]; } } if(newQueryVars) { for (var newQueryVar in newQueryVars) { newUrl += newQueryVar + "=" + newQueryVars[newQueryVar] + "&"; } newUrl = newUrl.substring(0, newUrl.length-1); window.location.href = newUrl; } else { window.location.href = location.href; } }