﻿/// <summary>
/// This function will add the provided parameter name and associated value to a url.
/// The 'url' parameter is optional. If not supplied, 'window.location.href' will be used.
/// </summary>
/// <returns>The modified url</returns>
function AddUrlParameter(parameterName, replacementValue, url) {
    if (url == null)
        url = window.location.href;

    if (url.indexOf("?") > -1) {
        if (url.indexOf(parameterName + "=") > -1) {
            //Retrieve url parameter value
            var origParamValue = get_urlParam(parameterName);

            //Build replacement variables
            var toReplace = parameterName + "=" + origParamValue;
            var replacement = parameterName + "=" + escape(replacementValue);

            //Replace original parameter value with new value
            var newUrl = url.replace(toReplace, replacement);
            return newUrl;
        }
        else
            return url + "&" + parameterName + "=" + escape(replacementValue);
    }
    else
        return url + "?" + parameterName + "=" + escape(replacementValue);
}

/// <summary>
/// This function will remove the provided parameter name and associated value.
/// The 'url' parameter is optional. If not supplied, 'window.location.href' will be used.
/// </summary>
/// <returns>The modified url</returns>
function RemoveUrlParameter(parameterName, url) {
    if (url == null)
        url = window.location.href;

    if (url.indexOf("?") > -1) {
        if (url.indexOf(parameterName + "=") > -1) {
            //Retrieve url parameter value
            var startIndex = url.indexOf(parameterName + "=") + parameterName.length + 1;
            var origParamValue = "";
            for (i = startIndex; i < url.length; i++) {
                var nextChar = url.substr(i);
                if (nextChar != "&")
                    origParamValue = origParamValue + nextChar;
                else
                    break;
            }

            //Build replacement variables
            var toReplace = parameterName + "=" + origParamValue;

            //Replace original parameter value with new value
            var newUrl = url.replace(toReplace, "");

            return newUrl;
        }
        else
            return window.location + "&" + parameterName + "=" + replacementValue;
    }
    else
        return url;
}

function get_urlParam(name) { name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]"); var regexS = "[\\?&]" + name + "=([^&#]*)"; var regex = new RegExp(regexS); var results = regex.exec(window.location.href); if (results == null) return ""; else return results[1]; }
