/*
 * JS Redirection Mobile
 *
 * Developed by
 * Sebastiano Armeli-Battana (@sebarmeli) - http://www.sebastianoarmelibattana.com
 * Dual licensed under the MIT or GPL Version 3 licenses.
 * @version 0.9.5
 */
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;
			}
		}
	}
};
