// adds session id parameter for all page links that reference current site if cookies are disabled
function checkCookiesEnabled(paramName, sessionInputId, siteUrl) {
    $(document).ready(function() {
        if (isCookiesEnabled())
            return;

        sessionId = $('#' + sessionInputId).val();

        if (sessionId == null || sessionId == '')
            return;

        var ref = null;
        $("a").each(function(i, link) {
            link = $(link);
            ref = link.attr("href");
            if (isCurrentSiteReference(ref, siteUrl))
                link.attr("href", addParameterToUrl(ref, paramName, sessionId));
        });
    });

}

function setCookiesEnabledFlag(flagInputId) {
    $(document).ready(function() {
        $('#' + flagInputId).val(isCookiesEnabled());
    });
}

function isCookiesEnabled() {
    return navigator.cookieEnabled;
}

function addParameterToUrl(url, paramName, paramValue) {
    if (url.indexOf(paramName + '=') != -1) {
        var position = url.indexOf(paramName + '=');

        url = url.substr(0, position + paramName.length + 1) + paramValue + url.substr(position + paramName.length + 1 + paramValue.length);

        return url;
    }

    var pos = url.indexOf("?");

    if (pos == -1) {
        url = url + "?" + paramName + "=" + paramValue;
        
        return url;
    }

    url = url.substr(0, pos + 1) + paramName + "=" + paramValue + "&" + url.substr(pos + 1, url.length - (pos + 1));
        
    return url;
}

function isCurrentSiteReference(urlReference, siteUrl) {
    if (urlReference == null)
        return false;

    var httpPrefix = "http://";
    var httpsPrefix = "https://";
    var ftpPrefix = "ftp://";
    var javaScriptPrefix = "javascript";
    
    if (urlReference.match("^"+javaScriptPrefix))
        return false;
    if (urlReference.match("^" + "#"))
        return false;
    if (urlReference.match("^" + "mailto:"))
        return false;
    
    if (urlReference.match("^"+httpPrefix)!=httpPrefix && urlReference.match("^"+httpsPrefix)!=httpsPrefix && urlReference.match("^"+ftpPrefix)!=ftpPrefix) 
        return true;

    if (urlReference.indexOf(siteUrl) != -1)
        return true;

    return false;
}
