スマートフォンとPCサイトやタブレット(iPad,Androidタブレット)でサイト表示を振り分けたい(参照元がスマホサイトの場合、リダイレクトしない)

スマートフォンサイトとPCサイトを振り分け、さらにスマートフォンのユーザがPCサイトを見たい場合、再度スマートフォンサイトへのリダイレクトを防ぐという設定をしてみました。
/にPCサイトのindex.html、
/sp/にスマートフォンサイトのindex.htmlがある場合の例です。

function load(){
var ua =navigator.userAgent;
var ref = document.referrer;
var spsite = "http://****.com/sp/" //スマートフォンサイトのURLを記入してください
if  ((ua.indexOf('iPhone') > -1  || ua.indexOf('iPod') > -1 || (ua.indexOf('Android') > -1 && ua.indexOf('Mobile') > -1) )&& ref != spsite ) {
        location.href = 'sp/';
    }
};

var userAgent = navigator.userAgent.toLowerCase();

(function(){
	if(document.addEventListener){ // opera,safari,mozilla向け
		document.addEventListener("DOMContentLoaded", load, false);
	} else if(/msie/.test(userAgent)){ // IE向け
		try {
			document.documentElement.doScroll("left");
		} catch(error){
			setTimeout(arguments.callee, 0);
			return;
		}
		load();
	} else {
		window.onload = load;
	}
})();