BrowserMap.getNewURL = function()

in src/main/js/bmap.js [267:303]


    BrowserMap.getNewURL = function (currentURL, detectedDeviceGroups, urlSelectors) {
        var newURL = null,
            currentVariant = BrowserMap.getCurrentVariant(),
            alternateSite = BrowserMap.getAlternateSite(detectedDeviceGroups, function(alternateLink) {
                if (languageOverride && alternateLink.hreflang && alternateLink.hreflang.lastIndexOf(languageOverride) === 0) {
                    return true;
                } else if (currentVariant && currentVariant.hreflang === alternateLink.hreflang) {
                    return true;
                }
                return false;
            }),
            i,
            dg,
            parameters = BrowserMapUtil.Url.getURLParametersString(currentURL),
            urlNoParams = currentURL.replace(parameters, '');
        if (alternateSite) {
            newURL = alternateSite.href;
        }
        if (!newURL) {
            for (i = 0; i < detectedDeviceGroups.length; i++) {
                dg = BrowserMap.getDeviceGroupByName(detectedDeviceGroups[i]);
                if (dg) {
                    newURL = dg.url;
                    if (newURL) {
                        break;
                    }
                }
            }
        }
        if (!newURL) {
            newURL = BrowserMapUtil.Url.addSelectorsToURL(urlNoParams, urlSelectors);
        }
        if (parameters) {
            newURL += parameters;
        }
        return newURL;
    };