if (!window.SA) {
    window.SA = {};
}
SA.redirection_mobile = function(m) {
    var c = function(y) {
        var x = new Date();
        x.setTime(x.getTime() + y);
        return x;
    };
    var q = function(C) {
        if (!C) {
            return;
        }
        var x = document.location.search,
            D = x && x.substring(1).split("&"),
            z = 0,
            B = D.length;
        for (; z < B; z++) {
            var y = D[z],
                A = y && y.substring(0, y.indexOf("="));
            if (A === C) {
                return y.substring(y.indexOf("=") + 1, y.length);
            }
        }
    };
    var a = navigator.userAgent.toLowerCase(),
        s = "false",
        f = "true",
        w = m || {},
        r = w.noredirection_param || "noredirection",
        t = w.mobile_prefix || "m",
        o = w.mobile_url,
        d = w.mobile_scheme ? w.mobile_scheme + ":" : document.location.protocol,
        p = document.location.host,
        i = q(r),
        j = o || (t + "." + ( !! p.match(/^www\./i) ? p.substring(4) : p)),
        k = w.cookie_hours || 1,
        g = w.keep_path || false,
        v = w.keep_query || false,
        h = w.tablet_url || j,
        b = !! (a.match(/(iPhone|iPod|blackberry|android 0.5|htc|lg|midp|mmp|mobile|nokia|opera mini|palm|pocket|psp|sgh|smartphone|symbian|treo mini|Playstation Portable|SonyEricsson|Samsung|MobileExplorer|PalmSource|Benq|Windows Phone|Windows Mobile|IEMobile|Windows CE|Nintendo Wii)/i));
    if (document.referrer.indexOf(j) >= 0 || i === f) {
        if (window.sessionStorage) {
            window.sessionStorage.setItem(r, f);
        } else {
            document.cookie = r + "=" + f + ";expires=" + c(3600 * 1000 * k).toUTCString();
        }
    }
    var u = (window.sessionStorage) ? (window.sessionStorage.getItem(r) === f) : false,
        l = document.cookie ? (document.cookie.indexOf(r) >= 0) : false;
    if ( !! (a.match(/(iPad|SCH-I800|xoom|kindle)/i))) {
        var e = (w.tablet_redirection === f || !! w.tablet_url) ? true : false;
        b = false;
    }
    if ((e || b) && !(l || u)) {
        if (w.beforeredirection_callback) {
            if (!w.beforeredirection_callback.call(this)) {
                return;
            }
        }
        var n = "";
        if (g) {
            n += document.location.pathname;
        }
        if (v) {
            n += document.location.search;
        }
        if (e) {
            document.location.href = d + "//" + h + n;
        } else {
            if (b) {
                document.location.href = d + "//" + j + n;
            }
        }
    }
};
