/*
※埋め込みスクリプト例
<script
	language="javascript"
	src="***.js"
	title="スクリプトタイトル"	ページのタイトルよりも優先される
	id | name="analyzerjs"		固定値
></script>
*/
function xDef() {
	for(var i=0; i<arguments.length; ++i){if(typeof(arguments[i])=='undefined') return false;}
	return true;
}
function xCreateElement(sTag) {
  if (document.createElement) return document.createElement(sTag);
  else return null;
}
function xGetElementById(e) {
	if (e==null) return e;
	else if (document.all) return document.all[e];
	else if (document.getElementById) return document.getElementById(e);
	else return null;
}
function xGetElementsByName(e) {
	if (e==null) return e;
	else if (document.all) return document.all[e];
	else if (document.getElementsByName) return document.getElementsByName(e);
	else return null;
}
function xGetElementsByTagName(t,p) {
	var list = null;
	t = t || '*';
	p = xGetElementById(p) || document;
	if (typeof p.getElementsByTagName != 'undefined') { // DOM1
		list = p.getElementsByTagName(t);
		if (t=='*' && (!list || !list.length)) list = p.all; // IE5 '*' bug
	}
	else { // IE4 object model
		if (t=='*') list = p.all;
		else if (p.all && p.all.tags) list = p.all.tags(t);
	}
	return list || [];
}
function getScriptTitle() {
	var e = xGetElementById("analyzerjs");
	if (!e) {
		e = xGetElementsByName("analyzerjs");
		if (e) {
			e = e[0];
		}
	}
	if (e == null) {
		e = xGetElementsByName("analyzerjs");
		if (e != null) e = e[0];
	}
	if (e != null) {
		return e.title;
	}
}
function selectTitle() {
	var s = getScriptTitle();
	if (s != null && s.length > 0) return s;
	return document.title;
}
function isChild(w) {
	if(w == w.parent) return false;
	if(w.document.referrer == w.parent.document.location.href) return true;
	return false;
}
function getReferrer(w) {
	if (!isChild(w)) {
		// トップ
		return w.document.referrer;
	} else {
		// 自分の親を指定する
		return getReferrer(w.parent);
	}
}
function encode(str){
	if(str==null) return "";
    var val;
    var i;
    var s;
    var u;
    val = "";
    for(i=0;i<str.length;i++) {
        s = str.charAt(i);
        u = str.charCodeAt(i);
        if(s==" ") {
        	val += "+";
        } else {
            if(u==0x2a||u==0x2d||u==0x2e||u==0x5f||((u>=0x30)&&(u<=0x39))
            	||((u>=0x41)&&(u<=0x5a))||((u>=0x61)&&(u<=0x7a))) {
                val = val + s;
            } else {
                if((u>=0x0)&&(u<=0x7f)) {
                    s = "0"+u.toString(16);
                    val += "%"+ s.substr(s.length-2);
                } else if(u>0x1fffff) {
                    val += "%" + (oxf0 + ((u & 0x1c0000) >> 18)).toString(16);
                    val += "%" + (0x80 + ((u & 0x3f000) >> 12)).toString(16);
                    val += "%" + (0x80 + ((u & 0xfc0) >> 6)).toString(16);
                    val += "%" + (0x80 + (u & 0x3f)).toString(16);
                } else if(u>0x7ff) {
                    val += "%" + (0xe0 + ((u & 0xf000) >> 12)).toString(16);
                    val += "%" + (0x80 + ((u & 0xfc0) >> 6)).toString(16);
                    val += "%" + (0x80 + (u & 0x3f)).toString(16);
                } else {
                    val += "%" + (0xc0 + ((u & 0x7c0) >> 6)).toString(16);
                    val += "%" + (0x80 + (u & 0x3f)).toString(16);
                }
            }
        }
    }
    return val;
}
function doCSM(elm) {
	if (elm);
	else return true;

	var title = selectTitle();
	if (title);
	else title = "";
	var url = document.location.href;
	var src = server + "csm?p=" +
			encode(url) +
			"," +
			encode(title) +
			"," +
			encode(elm.href) +
			"," +
			encode("" + new Date().getTime());
	if (elm.target) {
		src += "," + encode(elm.target);
	}

	var csmJs = xGetElementsByName("csmJs");
	if (csmJs) {
		if (typeof(csmJs.length) != "undefined") csmJs = csmJs[0];
	}
	var csmImg = xGetElementsByName("csmImg");
	if (csmImg) {
		if (typeof(csmImg.length) != "undefined") csmImg = csmImg[0];
	} else if (document.images) {
		if (document.images.length > 0) {
			csmImg = document.images[0];
		}
	}

	var ua = navigator.userAgent;
	var NN = 0;
	var FF = 0;
	var SF = 0;
	var MZ = 0;
	var IE = 0;
	var OP = 0;
	if (ua.match(/Navigator\/9\.[0-9]/)) {
		NN = 9.0;
	} else if (ua.match(/Netscape\/[0-9]/)) {
		NN = ua.match(/Netscape\/([0-9])/);
	} else if (ua.match(/Netscape6/)) {
		NN = 6.0;
	} else if (ua.match(/Firefox\/[1-9]\.[0-9]/)) {
		FF = 1.0;
	} else if (ua.match(/^Mozilla\/5\.0 \(Windows;.*?\).*Safari/)) {
		SF = 3.0
	} else if (ua.match(/Safari\/(8[0-9]|3[0-9]{2})/)) {
		csmImg.src = src + ",1";
		return true;
	} else if (ua.match(/Safari/)) {
		SF = 2.0;
	} else if (ua.match(/Opera 6/)) {
		csmImg.src = src + ",1";
		return true;
	} else if (ua.match(/Opera.(8|9)/)) {
		OP = 8.0;
	} else if (ua.match(/MSIE/)) {
		IE = 4;
	} else if (csmJs) {
		csmJs.src = src;
		return __judgeRetVal(elm.target);
	} else if (csmImg) {
		csmImg.src = src + ",1";
		return true;
	}

	var parent = xGetElementsByTagName("head");
	if (parent && typeof(parent.length) != "undefined") {
		if (parent.length > 0) parent = parent[0];
		else parent = null;
	}
	if (!parent) parent = xGetElementsByTagName("body");
	if (parent && typeof(parent.length) != "undefined") {
		if (parent.length > 0) parent = parent[0];
		else parent = null;
	}
	if (!parent) parent = xGetElementsByTagName("html");
	if (parent && typeof(parent.length) != "undefined") {
		if (parent.length > 0) parent = parent[0];
		else parent = null;
	}

	if (!parent) {
		return true;	// 未対応
	}

	if (!parent.appendChild) {
		return true;			// 未対応
	}
	if (NN >= 6 || FF >= 1 || SF >= 2 || MZ >= 5 || IE >= 4 || OP >= 8) {
		csmJs = xCreateElement("script");

		csmJs.type = "text/javascript";
		csmJs.src = src;
		parent.appendChild(csmJs);
	}
	return __judgeRetVal(elm.target);
}
function __judgeRetVal(target) {
	if (!target || target == "_self" || target == window.name) {
		return false;
	}
	return true;
}

// 解析
var title		= selectTitle();
var href		= document.location.href;
var referrer	= getReferrer(window);
var server		= "http://ap.optic.or.jp/analyzer/";
var src 		= server + "access?" +
	encode(title)+","+encode(href)+","+encode(referrer);
document.open();
document.write("<script type=\"text/javascript\" src=\"" + src + "\"></script>");
// 企業サイト移動
document.write("<img name=\"csmImg\" src=\"" + server + "img/dummy.gif\" style=\"position: absolute; left: 0px; top: 0px;\">");
document.write("<script name=\"csmJs\" type=\"text/javascript\" charset=\"shift_jis\" src=\"" + server + "dummy.js\"></script>");
document.close();
