function isBlank(item) {
	item = String(item).toLowerCase();
	if(item == "undefined" || item == "" || item == "null") return true;
	else return false;
}
function parseBoolean(input) {
	input = String(input).toUpperCase();
	if(input == "TRUE" || input == "YES" || input == "1" || input == "T" || input == "Y") return true;
	else if(input == "FALSE" || input == "NO" || input == "0" || input == "F" || input == "N") return false;
	else return false;
}
function getCurrentDomainName() {
	var url = String(location);
	var domainName = extractDomain(url);
	return domainName;
}
function extractDomain(url) {
	var url = url.replace("http://", "");
	url = url.replace("https://", "");
	var slashIndex = url.indexOf("/");
	if(slashIndex == -1) slashIndex = url.length;
	var url = url.substring(0, slashIndex);
	var urlSectionArray = url.split('.');
	var urlSectionArrayLength = urlSectionArray.length;
	var domainName = "";
	for(var i=urlSectionArrayLength - 2;i<urlSectionArrayLength; i++) {
		domainName += "." + urlSectionArray[i];
	}
	return domainName;
}
function pdGetCookie(cookieName) {
	var allCookies = String(document.cookie);
	var cookieStart = allCookies.indexOf(cookieName + "=");
	if(cookieStart == -1) return "";
	cookieStart = cookieStart + cookieName.length + 1;
	var cookieEnd = allCookies.indexOf(";", cookieStart);
	if(cookieEnd == -1) cookieEnd = allCookies.length;
	var cookieValue = allCookies.substring(cookieStart, cookieEnd);
	return cookieValue;
}
function pdSetCookie(cookieName, cookieValue, cookieDomain, cookiePath, expirationDate) {
	if(isBlank(cookieDomain)) cookieDomain = getCurrentDomainName();
	if(isBlank(cookiePath)) cookiePath = "/";
	var cookieString = encodeURIComponent(cookieName) + "=" + encodeURIComponent(cookieValue) + ";domain=" + cookieDomain + ";path=" + cookiePath;
	if(!isBlank(expirationDate)) {
		cookieString += ";expires=" + expirationDate.toGMTString();
	}
	document.cookie = cookieString;
	return true;
}
function pdIsMobileDevice() {
	var isMobile = false;
	var mobileSignatureList = new Array('iphone', 'ipod', 'android', 'palm', 'blackberry', 'devices60', 'devicesymbian', 'windows ce', 'opera mini', 'webos', 'windows phone', 'playbook', 'touchpad');
	var agent = navigator.userAgent.toLowerCase();
	for(var i=0;i<mobileSignatureList.length;i++) {
		if(agent.indexOf(mobileSignatureList[i]) > -1) {
			isMobile = true;
		}
	}
	return isMobile;
}
function pdGetDisableMobileFromQueryString() {
	var queryString = String(window.location.search.substring(1));
	var queryStringKey = "disableMobile=";
	var start = queryString.lastIndexOf(queryStringKey);
	if(start > -1) start += queryStringKey.length;
	queryString = queryString.substring(start, queryString.length);
	var finish = queryString.indexOf("&");
	if(finish == -1) finish = queryString.length;
	var disableMobile = parseBoolean(queryString.substring(0, finish));
	if(disableMobile == true) pdSetCookie("pdDisableMobile", "true");
	return disableMobile;
}
function pdGetDisableMobileFromCookie() {
	var pdDisableMobile = parseBoolean(pdGetCookie("pdDisableMobile"));
	return pdDisableMobile;
}
function pdMobileRedirect() {
	var pdDisableMobileByQueryString = pdGetDisableMobileFromQueryString();
	var pdDisableMobileByCookie = pdGetDisableMobileFromCookie();
	var pdDisableMobile = pdDisableMobileByQueryString || pdDisableMobileByCookie;
	var pdIsMobile = pdIsMobileDevice();
	var pdCurrentUrl = String(location.href);
	if(pdIsMobile == true  && pdDisableMobile == false){
		var mobileUrlPrefix = "m";	//**** CHANGE TO "mobile" FOR SITES THAT USE "mobile.XXXXXXXXXXX.com"'
		var mobileUrl = "";
		if(pdCurrentUrl.indexOf("www.") > -1) mobileUrl = pdCurrentUrl.replace("http://www.", "http://" + mobileUrlPrefix + ".");
		else if(pdCurrentUrl.indexOf("store.") > -1) mobileUrl = pdCurrentUrl.replace("http://store.", "http://" + mobileUrlPrefix + ".");
		else mobileUrl= pdCurrentUrl.replace("http://", "http://" + mobileUrlPrefix + ".");
		if(pdCurrentUrl != mobileUrl && !isBlank(mobileUrl)) location.replace(mobileUrl);
	}
}
pdMobileRedirect();

