TPAFC = {};

TPAFC.UserInfo = {
	IO       : 0,
	ImageURL : "",
	Name     : "",
	Get : function(Param) {
		if(Param.length == 2 && Param[0]) {
			this.IO = 1, this.Name = Param[0], this.ImageURL = (Param[1] != "") ? Param[1] : "/resources/images/common/aside/ui_userimage_no-image.gif";
			if(!this.ImageURL.match(/^\//))   this.ImageURL = "/member/upload/" + this.ImageURL;
		}
	},
	Set : function() {
		var UserInfoBlock = document.getElementById("user-info");
		UserInfoBlock.innerHTML = this.IO ? [
			'		<p class="non-visual"><em>ログイン状況（ログインしています）</em></p>',
			'		<div class="aside-subsection">',
			'			<p class="user-status"><strong><img alt="Member" src="/resources/images/common/aside/ui_userstatus_member.gif" /></strong></p>',
			'			<div class="figure user-image"><img alt="" src="' + this.ImageURL + '" /></div>',
			'			<p class="greeting">ようこそ<br /><a href="/member/mypage" title="' + this.Name + '様のマイページ"><em class="user-name">' + this.Name + '</em></a>様</p>',
			'			<div class="nav" id="log-io">',
			'				<ul>',
			'					<li><a href="/member/login/logout"><img alt="ログアウト" src="/resources/images/common/aside/ui_logout_link.gif" /></a></li>',
			'				</ul>',
			'			</div>',
			'		</div>'
		].join("") : [
			'		<p class="non-visual"><em>ログイン状況（ログインしていません）</em></p>',
			'		<div class="aside-subsection">',
			'			<p class="user-status"><strong><img alt="Guest" src="/resources/images/common/aside/ui_userstatus_guest.gif" /></strong></p>',
			'			<div class="figure user-image"><img alt="" src="/resources/images/common/aside/ui_userimage_guest.gif" /></div>',
			'			<p class="greeting">ようこそ<br /><em class="user-name">ゲスト</em>様</p>',
			'			<div class="nav" id="log-io">',
			'				<ul>',
			'					<li><a href="/member/login"><img alt="ログイン" src="/resources/images/common/aside/ui_login_link.gif" /></a></li>',
			'				</ul>',
			'			</div>',
			'			<div class="aside annotation">',
			'				<p>会員登録（有料）については<a href="/guide/registration.html">「会員登録」のページ</a>をご覧ください。</p>',
			'			</div>',
			'		</div>'
		].join("");
	},
	Care : function() {
		var Fn = function() {
			var IMG = { O : document.getElementById("user-info").getElementsByTagName("img")[1] };
			IMG.H = parseInt(IMG.O.offsetHeight), IMG.W = parseInt(IMG.O.offsetWidth);
			if(IMG.H && (IMG.H < 60)) IMG.O.style.marginTop  = ((60 - IMG.H) / 2) + "px";
			if(IMG.W && (IMG.W < 60)) IMG.O.style.marginLeft = ((60 - IMG.W) / 2) + "px";
			if(sML.UA.Ge) {
				var EM = document.getElementById("user-info").getElementsByTagName("em")[1];
				EM.innerHTML = sML.insertZeroWidthSpace(EM.innerHTML);
			}
		}
		if(sML.UA.WK) sML.onLoad.addEventListener(Fn);
		else          Fn();
	}
}

TPAFC.getOREMA = function() {

	var M = [
		"- abcdefg hijklmn opqrstu vwxyz",
		"a", "b", "c", "d", "e", "f", "g",
		"h", "i", "j", "k", "l", "m", "n",
		"o", "p", "q", "r", "s", "t", "u",
		"v", "w", "x", "y", "z", "_", "-"
	];

	M = [
		[M[1], M[18], M[5], M[14], M[1]],
		[M[15], M[16]],
		[M[20], M[8], M[9], M[14], M[11], M[16], M[1], M[18], M[11]],
		[M[10], M[16]]
	];

	M = M[0].join("") + "-" + M[1].join("") + "@" + M[2].join("") + "." + M[3].join("");

	return M;

}

TPAFC.buttonInteraction = {
	Param  : [
		["_hover"]/*,
		[
			function() {},
			function() {},
			function() {
				this.style.backgroundColor = "#333333";
				sML.setOpacity(this.getElementsByTagName("img")[0], 0.8);
			},
			function() {
				this.style.backgroundColor = "transparent";
				sML.setOpacity(this.getElementsByTagName("img")[0], 1);
			}
		],
		function() {
			sML.setOpacity(this.getElementsByTagName("img")[0], 1);
		}*/
	]
}

sML.onRead.addEventListener(function() {

	sML.setLinksToOpenNewWindow(
		toArray(document.getElementsByClassName("external")).filter(function(ITEM) {
			return !ITEM.href.match(/\.pdf$/);
		})
	);

	var PCB = document.getElementById("page-content-body");

	sML.setButtonInteractions(
		toArray(
			document.getElementById("page-header").getElementsByClassName("nav"),
			document.getElementById("user-info").getElementsByClassName("nav"),
			PCB.getElementsByClassName("aside appealing"),
			PCB.getElementsByClassName("enumeration-nav"),
			PCB.getElementsByClassName("back-nav"),
			PCB.getElementsByClassName("file-download-nav"),
			PCB.getElementsByClassName("submission"),
			document.getElementsByIds("page-content-body-bottom-nav", "local-nav"),
			document.getElementById("page-footer").getElementsByClassName("nav")
		),
		TPAFC.buttonInteraction.Param[0],
		TPAFC.buttonInteraction.Param[1],
		TPAFC.buttonInteraction.Param[2]
	);

	TPAFC.UserInfo.Care();

});
