/*LoginParts*/
/*グローバル変数設定*/
var gl_theme_id;
var gl_tagObj;
var gl_owner_id;
var gl_user_id;
var TID;
var TID1;
var TID2;
var TID3;
var timer;
var timer1;
var timer2;
var timer3;
var timer4;
var login_return;
var gl_now_page;
var gl_now_pagesize;
var errapi;

var follow_Btn_f;				//ﾌｫﾛｰﾎﾞﾀﾝﾌﾗｸﾞ
var follow_CancellBtn_f;		//ﾌｫﾛｰ解除ﾎﾞﾀﾝﾌﾗｸﾞ
var Reject_Btn_f;				//拒否ﾎﾞﾀﾝﾌﾗｸﾞ
var Reject_CancellBtn_f;		//拒否解除ﾎﾞﾀﾝﾌﾗｸﾞ
var CReject_Btn_f;			//ｺﾒﾝﾄ拒否ﾎﾞﾀﾝﾌﾗｸﾞ
var CReject_CancellBtn_f;		//ｺﾒﾝﾄ拒否解除ﾎﾞﾀﾝﾌﾗｸﾞ
var Real_Btn_f;				//ﾘｱﾌﾚ申請ﾎﾞﾀﾝﾌﾗｸﾞ
var Real_CancellBtn_f;		//ﾘｱﾌﾚ解除ﾎﾞﾀﾝﾌﾗｸﾞ
var RejectReal_Btn_f;			//ﾘｱﾌﾚ拒否ﾎﾞﾀﾝﾌﾗｸﾞ
var PermitReal_Btn_f;			//ﾘｱﾌﾚ許可ﾎﾞﾀﾝﾌﾗｸﾞ
var nowReal_Btn_f;			//ﾘｱﾌﾚ申請中ﾎﾞﾀﾝﾌﾗｸﾞ

var city_id;			//ﾕｰｻﾞｰ居住地id
var job_id;				//ﾕｰｻﾞｰ職業id
var followBtn1;
var followBtn2;
var followBtn3;
var followBtn4;

var boFlg;
var userkind;
var loginF;

/****************************************************************
* 機　能： ｺﾝﾃﾝﾂ表示
* 引　数： 無
* 戻り値： 無
****************************************************************/
function Show(){
	$("#contentsArea").attr({style:"display: block;"});
	$("#contents").attr({style:"height: 100%;"});
}
/****************************************************************
* 機　能： ｺﾝﾃﾝﾂ非表示
* 引　数： 無
* 戻り値： 無
****************************************************************/
function NoShow(){
	$("#contentsArea").attr({style:"display: none;"});
	$("#contents").attr({style:"height: 1000px;"});
}
/****************************************************************
* 機　能： login表示
* 引　数： 無
* 戻り値： 無
****************************************************************/
function showLogin(){
	$("#UserLoginForm").attr({style:"display: block;"});
}
/****************************************************************
* 機　能： ログインチェック
* 引　数： 無
* 戻り値： 無
****************************************************************/
function login_chk(){
	NoShow();
	var a = new Array();
	if (location.search.length > 1) {
		var list = location.search.substr(1).split("&");
		for (i in list) {
			a.push(list[i].split("="));
		}
	}
	if(a.length>0){
		if(a[0][0]){
			if(a[0][0]=="at"){
				var newurl = "./servlet/APIReguserActivate";
				newurl += "?at="+a[0][1];
				jQuery.ajax({
					url : newurl,
					type : "post",
					async: false
				});
			}
		}
	}

	var url = "./servlet/APIAuthChk";
	jQuery.ajax({
		url : url,
		type : "post",
		complete : function login_chk_e(httpObj){
			var errmsg ="";
			var disp_login_err = document.getElementById("login_error");
//			if((httpObj.responseText == -1) || (httpObj.responseText == -2)){
			if(httpObj.responseText < 0){
				if(gl_theme_id){
				}else{
					gl_theme_id=0;
				}
				gl_owner_id = "";
				Display_JS("no1");
				$("#li_logout").attr({style:"display:none;"});
				$("#li_newentry").attr({style:"display:block;"});
				$("#li_login").attr({style:"display:block;"});
				$("#newUser").attr({style:"display:block;"});
				$("#UserLoginForm").attr({style:"display:block;"});
				$("#uList").attr({style:"display:block;"});
				$("#ShowOwnerDATA").attr({style:"display: none;"});
				$("#mailbox").attr({style:"display: none;"});
				$("#to_real").remove();
				$("#homebtn").html("<p><a href='index.html'>ホーム</a></p>");
				setFocusin();
			}else{
				//0:正常終了(セッションにログオン済みのユーザー情報を格納)
				if(document.getElementById("UserLoginForm")){
					var disp_login = document.getElementById("UserLoginForm");
					var disp_login_parent = disp_login.parentNode;
					disp_login_parent.removeChild(disp_login);
					var disp_new = document.getElementById("newUser");
					var disp_new_parent = disp_new.parentNode;
					disp_new_parent.removeChild(disp_new);
					tb_remove();
				}
				if(document.getElementById("follow")){
					var disp_follow_btns = document.getElementById("follow");
					var disp_follow_parent = disp_follow_btns.parentNode;
					disp_follow_parent.removeChild(disp_follow_btns);

				}
				if(document.getElementById("real")){
					var disp_real = document.getElementById("real");
					var disp_real_parent = disp_real.parentNode;
					disp_real_parent.removeChild(disp_real);

				}

				$("#In_PutBox").attr({style:"display: block;"});
				$("#ShowOwnerDATA").attr({style:"display: block;"});
				$("#li_login").attr({style:"display:none;"});
				$("#li_newentry").attr({style:"display:none;"});
				$("#li_logout").attr({style:"display:block;"});
//				$("#uList_h").attr({style:"display:none;"});
//				$("#uList").attr({style:"display:none;"});
				$("#uList").remove();
				$("#to_real").remove();
				$("#formselect").attr({style:"display: block;"});
				$("#homebtn").html("<p><a href='index.html'>ホーム</a></p><p><a href='javascript:void(0);' onclick='disp_my();'>マイブログ</a></p>");

				//改行コードを削除してグローバル変数に格納
				gl_owner_id = DeleteLineFeed(httpObj.responseText);
				gl_user_id=gl_owner_id;
				document.getElementById("user_id").value=gl_owner_id;

				L_XML_UP(gl_owner_id,1);
				L_XML_UFLR(gl_owner_id,0,12);
				disp_follow();
				startup(1);
			}
		}
	});
}

/****************************************************************
* 機　能： ログアウト
* 引　数： 無
* 戻り値： 無
****************************************************************/
function logout(){
	var url = "./servlet/APIAuthRemove";
	jQuery.ajax({
		url : url,
		type : "post",
		async: false,
		complete : function(){
			window.location.reload();
		}
	});
}

function closeparts(type){
	//ﾛｸﾞｲﾝ中
	if(conect_chk()>=0){
		if(type==1){
			if(document.getElementById("me_follow")){
				var disp_close_parts = document.getElementById("me_follow");
				var disp_close_parent = disp_close_parts.parentNode;
				disp_close_parent.removeChild(disp_close_parts);
			}
			if(document.getElementById("to_follow")){
				var disp_close_parts = document.getElementById("to_follow");
				var disp_close_parent = disp_close_parts.parentNode;
				disp_close_parent.removeChild(disp_close_parts);
			}
			if(document.getElementById("damy")){
				var disp_close_parts = document.getElementById("damy");
				var disp_close_parent = disp_close_parts.parentNode;
				disp_close_parent.removeChild(disp_close_parts);
			}
			if(document.getElementById("blogEntry_c")){
				var disp_close_parts = document.getElementById("blogEntry_c");
				var disp_close_parent = disp_close_parts.parentNode;
				disp_close_parent.removeChild(disp_close_parts);
			}
			$("#ShowOwnerDATA").attr({style:"display: none;"});
			$("#mailbox").attr({style:"display: none;"});
			$("#homebtn").html("<p><a href='index.html'>ホーム</a></p><p><a href='javascript:void(0);' onclick='disp_my();'>マイブログ</a></p>");
			$("#loginOnly").attr({style:"display: none;"});
			$("#to_block").attr({style:"display: none;"});
			$("#newfollow").attr({style:"display: none;"});
			$("#uList").attr({style:"display: block;"});
			$("#formselect").attr({style:"display: none;"});

		}
	}else{
		//未ﾛｸﾞｲﾝ状態にオーナープロフィールが開いていた場合はクローズする
		if(document.getElementById("me_follow")){
			var disp_close_parts = document.getElementById("me_follow");
			var disp_close_parent = disp_close_parts.parentNode;
			disp_close_parent.removeChild(disp_close_parts);
		}
		if(document.getElementById("to_follow")){
			var disp_close_parts = document.getElementById("to_follow");
			var disp_close_parent = disp_close_parts.parentNode;
			disp_close_parent.removeChild(disp_close_parts);
		}
		if(document.getElementById("damy")){
			var disp_close_parts = document.getElementById("damy");
			var disp_close_parent = disp_close_parts.parentNode;
			disp_close_parent.removeChild(disp_close_parts);
		}
		if(document.getElementById("blogEntry_c")){
			var disp_close_parts = document.getElementById("blogEntry_c");
			var disp_close_parent = disp_close_parts.parentNode;
			disp_close_parent.removeChild(disp_close_parts);
		}
		$("#homebtn").html("<p><a href='index.html'>ホーム</a></p>");
		$("#uList").attr({style:"display: block;"});
		$("#newUser").attr({style:"display:block;"});
		$("#UserLoginForm").attr({style:"display:block;"});
		$("#formselect").attr({style:"display: block;"});
	}
}
/****************************************************************
* 機　能： 閲覧ユーザのﾛｸﾞｲﾝ状態を取得する
* 引　数： 無
* 戻り値： 0>=ﾛｸﾞｲﾝ中(セッション情報あり):ﾕｰｻﾞｰIDを返す
* 		： -1=セッションが取得出来ない
* 		： -2=セッションにログイン情報が登録されていない
****************************************************************/
function conect_chk(){
	var url = "./servlet/APIAuthChk";
	jQuery.ajax({
		url : url,
		type : "post",
		async: false,
		complete : function (httpObj){
			login_return = httpObj.responseText
		}
	});
	return login_return;
}

/****************************************************************
* 機　能：非同期箇所へのThickbox初期化設定
* 引　数： 無
* 戻り値： false
****************************************************************/
function thickbox(link) {
    var t = link.title || link.name || null;
    var a = link.href || link.alt;
    var g = link.rel || false;
    tb_show(t,a,g);
    link.blur();
    return false;
}

/****************************************************************
* 機　能：タイマーSTART
* 引　数： type：タイマーを設定するfunction
* 戻り値： 無
****************************************************************/
function startup(type) {
/*	var sec=60;
	if(type==0){
		TID = setInterval(loadXMLFile(),(sec * 1000)); // 60×1000ミリ秒 = 1分
	}else{
		TID = setInterval(loadXMLFile(),(sec * 1000)); // 60×1000ミリ秒 = 1分
		TID = setInterval(loadXMLFile(),(sec * 1000)); // 60×1000ミリ秒 = 1分
*/
/*		timer1 = new PeriodicalExecuter(L_XML_UFLR(gl_owner_id,0,12), 60);
		timer2 = new PeriodicalExecuter(L_XML_UFLT(gl_owner_id,0,20), 60);
		timer3 = new PeriodicalExecuter(U_loadXMLFile(gl_owner_id), 60);
		timer4 = new PeriodicalExecuter(U_loadXMLFile_c(gl_owner_id), 60);
	}*/
	Show();
}

/****************************************************************
* 機　能：タイマーSTOP
* 引　数： type：タイマーを停止させるfunction
* 戻り値： 無
****************************************************************/
function timestop(type) {
/*	if(TID){
		clearInterval(TID);
	}*/
}

/****************************************************************
* 機　能：テーマ別ひとりごと取得
* 引　数： page：表示ﾍﾟｰｼﾞ、pagesize：1ページに表示する件数
* 戻り値： 無
****************************************************************/
function loadXMLFile(page,pagesize) {
	if(!page){
		page=0;
	}
	if(!pagesize){
		pagesize=20;
	}
	gl_now_page=page;
	gl_now_pagesize=pagesize;
	// テーマ別独り言取得
	var params = "theme_id=" + gl_theme_id + "&time=" + (new Date().getTime()) + "&page=" + page + "&page_size=" + pagesize;

	var url = "./servlet/APIMsg";

	errapi="APIMsg";

	url += "?"+params;
	jQuery.ajax({
		url : url,
		type : "post",
		dataType: "json",
		success:displayData,
		error:errtest
	});
}

/****************************************************************
* 機　能： ﾊﾏｯﾀｰﾕｰｻﾞｰを取得する
* 引　数： 無
* 戻り値： ﾊﾏｯﾀｰﾕｰｻﾞｰﾘｽﾄﾃﾞｰﾀ
****************************************************************/
function loadUserListNoIn() {
	var defNum = 20;
	// ﾕｰｻﾞｰﾘｽﾄ用パラメータ設定
	var params = "cnt=" + defNum;

	var url = "./servlet/APIMulUser";
	url += "?"+params;
	errapi="APIMulUser";
	jQuery.ajax({
		url : url,
		type : "post",
		dataType: "json",
		success:UserList,
		error:errtest
	});
}

/****************************************************************
* 機　能： 拒否リストの有無を取得する
* 引　数： user_id：指定ﾕｰｻﾞｰID、page：表示ﾍﾟｰｼﾞ、pagesize：1ページに表示する件数
* 戻り値： ﾊﾏｯﾀｰﾕｰｻﾞｰﾘｽﾄﾃﾞｰﾀ
****************************************************************/
function ownerBlock() {

	// ﾕｰｻﾞｰﾘｽﾄ用パラメータ設定
	var params = "user_id=" + gl_owner_id +"&page=" + 0 +"&page_size=" + 10;

	var url = "./servlet/APIBlockList";
	url += "?"+params;
	errapi="APIBlockList";
	jQuery.ajax({
		url : url,
		type : "post",
		dataType: "json",
		success:function (data){
			if(data.users[0].num_rows>0){
				//拒否ﾘｽﾄの件数が1件以上存在した為、拒否ﾘｽﾄ表示リンクをownerﾌﾞﾛｯｸに表示する
				if(document.getElementById("userlinks")){
					if(!document.getElementById("blocklinks")){
						var Add_comment_head = document.createElement("div");
						Add_comment_head.setAttribute("id", "blocklinks");
						document.getElementById("userlinks").appendChild(Add_comment_head);
					}
					document.getElementById("blocklinks").innerHTML="<a href='javascript:void(0);' onclick='loadUserBlockList("+0+","+20+");'>拒否ﾘｽﾄ:"+data.users[0].num_rows+"</a>";
				}

			}
		},
		error:errtest
	});
}

/****************************************************************
* 機　能： 拒否リストを取得する
* 引　数： user_id：指定ﾕｰｻﾞｰID、page：表示ﾍﾟｰｼﾞ、pagesize：1ページに表示する件数
* 戻り値： ﾊﾏｯﾀｰﾕｰｻﾞｰﾘｽﾄﾃﾞｰﾀ
****************************************************************/
function loadUserBlockList(page,pagesize) {
	if(isNaN(page)){
		page=0;
	}
	if(isNaN(pagesize)){
		pagesize=20;
	}
	gl_now_page=page;
	gl_now_pagesize=pagesize;

	// ﾕｰｻﾞｰﾘｽﾄ用パラメータ設定
	var params = "user_id=" + gl_owner_id +"&page=" + page +"&page_size=" + pagesize;

	var url = "./servlet/APIBlockList";
	url += "?"+params;
	errapi="APIBlockList";
	jQuery.ajax({
		url : url,
		type : "post",
		dataType: "json",
		success:UserBlockList,
		error:errtest
	});
}

/****************************************************************
* 機　能： ﾘｱﾌﾚ承認の有無を取得する
* 引　数： user_id：指定ﾕｰｻﾞｰID、page：表示ﾍﾟｰｼﾞ、pagesize：1ページに表示する件数
* 戻り値： ﾊﾏｯﾀｰﾕｰｻﾞｰﾘｽﾄﾃﾞｰﾀ
****************************************************************/
function ownerReal() {
	// ﾕｰｻﾞｰﾘｽﾄ用パラメータ設定
	var params = "user_id=" + gl_owner_id +"&page=" + 0 +"&page_size=" + 10;

	var url = "./servlet/APIRealFriendAppr";
	url += "?"+params;
	errapi="APIRealFriendAppr";
	jQuery.ajax({
		url : url,
		type : "post",
		dataType: "json",
		success:function (data){
			if(data.users[0].num_rows>0){
				//ﾘｱﾌﾚ承認の件数が1件以上存在した為、ﾘｱﾌﾚ承認表示リンクをownerﾌﾞﾛｯｸに表示する
				if(document.getElementById("userlinks")){
					if(!document.getElementById("reallinks")){
						var Add_comment_head = document.createElement("div");
						Add_comment_head.setAttribute("id", "reallinks");
						document.getElementById("userlinks").appendChild(Add_comment_head);
					}
					document.getElementById("reallinks").innerHTML="<a href='javascript:void(0);' onclick='loadUserRealList("+0+","+20+");'><blink>ﾘｱﾌﾚ承認:"+data.users[0].num_rows+"</blink></a>";
				}
			}
		},
		error:errtest
	});
}

/****************************************************************
* 機　能： ﾘｱﾌﾚ申請リストを取得する
* 引　数： user_id：指定ﾕｰｻﾞｰID、page：表示ﾍﾟｰｼﾞ、pagesize：1ページに表示する件数
* 戻り値： ﾊﾏｯﾀｰﾕｰｻﾞｰﾘｽﾄﾃﾞｰﾀ
****************************************************************/
function loadUserRealList(page,pagesize) {
	if(isNaN(page)){
		page=0;
	}
	if(isNaN(pagesize)){
		pagesize=20;
	}
	gl_now_page=page;
	gl_now_pagesize=pagesize;

	// ﾕｰｻﾞｰﾘｽﾄ用パラメータ設定
	var params = "user_id=" + gl_owner_id +"&page=" + page +"&page_size=" + pagesize;

	var url = "./servlet/APIRealFriendAppr";
	url += "?"+params;
	errapi="APIRealFriendAppr";
	jQuery.ajax({
		url : url,
		type : "post",
		dataType: "json",
		success:UserRealList,
		error:errtest
	});
}

/****************************************************************
* 機　能： 新着の内容を取得する
* 引　数： user_id：指定ﾕｰｻﾞｰID、page：表示ﾍﾟｰｼﾞ、pagesize：1ページに表示する件数
* 戻り値： ﾊﾏｯﾀｰﾕｰｻﾞｰﾘｽﾄﾃﾞｰﾀ
****************************************************************/
function loadUserNewsList(page,pagesize,type) {
	// ﾕｰｻﾞｰﾘｽﾄ用パラメータ設定
	var params = "user_id=" + gl_owner_id +"&page=" + page +"&page_size=" + pagesize;
	switch(type)
	{
		//新着コメント
		case 1:	var url = "./servlet/APINewComment?"+params;
			errapi="APINewComment";
		jQuery.ajax({url : url,type : "post",dataType: "json",success:function (data){
			$("#centerhead").text("新着コメント");
			document.getElementById("result").innerHTML = parseFM(data,6);
			document.getElementById("view_id").value=110;
		},error:errtest});
		break;
		//新着返答コメント
		case 2:	var url = "./servlet/APINewReplyComment?"+params;
			errapi="APINewReplyComment";
		jQuery.ajax({url : url,type : "post",dataType: "json",success:function (data){
			$("#centerhead").text("新着返答コメント");
			document.getElementById("result").innerHTML = parseFM(data,7);
			document.getElementById("view_id").value=120;
		},error:errtest});
		break;
		//新着メッセージ
/*		case 3:	var url = "./servlet/APINewMail?"+params;
			errapi="APINewMail";
		jQuery.ajax({url : url,type : "post",dataType: "json",success:function (data){
		},error:errtest});
		break;
*/		//新着フォロー
		case 4:	var url = "./servlet/APINewFollower?"+params;
			errapi="APINewFollower";
		jQuery.ajax({url : url,type : "post",dataType: "json",success:function (data){
			if(!document.getElementById("newfollow")){
				//配置先の先頭のノードを取得
				var Add_first_nodes = document.getElementById("me_follow");
				//追加先のdivタグを配置先に生成
				var Add_user_list_me = document.createElement("div");
				Add_user_list_me.setAttribute("id", "newfollow");
				document.getElementById("left_p").insertBefore(Add_user_list_me,Add_first_nodes);
			}
			document.getElementById("newfollow").innerHTML = parseUP(data,5,4,6);
		},error:errtest});
		break;
		//友達入会
		case 5:	var url = "./servlet/APINewFriends?"+params;
			errapi="APINewFriends";
		jQuery.ajax({url : url,type : "post",dataType: "json",success:function (data){
		},error:errtest});
		break;APIRealFriendAppr
		//リアフレ承認待ち
		case 6:	var url = "./servlet/APIRealFriendAppr?"+params;
			errapi="APIRealFriendAppr";
		jQuery.ajax({url : url,type : "post",dataType: "json",success:function (data){
			if(!document.getElementById("newfollow")){
				//配置先の先頭のノードを取得
				var Add_first_nodes = document.getElementById("me_follow");
				//追加先のdivタグを配置先に生成
				var Add_user_list_me = document.createElement("div");
				Add_user_list_me.setAttribute("id", "newfollow");
				document.getElementById("left_p").insertBefore(Add_user_list_me,Add_first_nodes);
			}
			document.getElementById("newfollow").innerHTML = parseUP(data,5,4,5);
		},error:errtest});
		break;
	}
}
/****************************************************************
* 機　能： 新着の有無を取得する
* 引　数： user_id：指定ﾕｰｻﾞｰID、page：表示ﾍﾟｰｼﾞ、pagesize：1ページに表示する件数
* 戻り値： ﾊﾏｯﾀｰﾕｰｻﾞｰﾘｽﾄﾃﾞｰﾀ
****************************************************************/
function ownerNews() {
/*
0:ひとりごとに新着コメントがあります。
1:新着の返答コメントがあります
2新着のお知らせがあります。
4紹介した友達がﾊﾏｯﾀｰに入会しました。
6ｺﾐｭﾆﾃｨ参加が承認されました。
8ハマコマに新着コメントがあります。
9新しくﾌｫﾛｰされました
10新着ﾒｯｾｰｼﾞがあります。
11:新着のﾘｱﾌﾚ依頼があります。
*/
// ﾕｰｻﾞｰﾘｽﾄ用パラメータ設定
	var params = "user_id=" + gl_owner_id;

	var url = "./servlet/APIFlagCheck";
	url += "?"+params;
	errapi="APIFlagCheck";
	jQuery.ajax({
		url : url,
		type : "post",
		dataType: "json",
		async:false,
		success:function (data){
			if(document.getElementById("MuserInfo_c")){
				if(!document.getElementById("newslinks")){
					var Add_comment_head = document.createElement("div");
					Add_comment_head.setAttribute("id", "newslinks");
					document.getElementById("MuserInfo_c").appendChild(Add_comment_head);
				}
			}
			for ( var i = 0; i < (data.flag.length); i++)
			{
				switch(parseInt(data.flag[i].item))
				{
					case 0://ひとりごとに新着コメントがあります。
						var url0="./servlet/APINewComment?user_id="+gl_owner_id+"&page=0&page_size=100";
						jQuery.ajax({url : url0,type : "post",dataType: "json",async:false,
							success:function (data){
								$("#newslinks").append("<a href='javascript:void(0);' onclick='loadUserNewsList(0,20,1);'>新着コメント:"+data.msg.length+"</a><br />");
								}});
						break;
					case 1://新着の返答コメントがあります
						var url1="./servlet/APINewReplyComment?user_id="+gl_owner_id+"&page=0&page_size=100";
						jQuery.ajax({url : url1,type : "post",dataType: "json",async:false,
							success:function (data){
								$("#newslinks").append("<a href='javascript:void(0);' onclick='loadUserNewsList(0,20,2);'>新着返答コメント:"+data.msg.length+"</a><br />");
								}});
						break;
/*					case 2://新着のお知らせがあります
						var url2="./servlet/APINewComment?user_id="+gl_owner_id+"&page=0&page_size=100";
						jQuery.ajax({url : url2,type : "post",dataType: "json",async:false,
							success:function (data){
								$("#newslinks").append("<a href='javascript:void(0);' onclick='loadUserNewsList("+0+","+20+");'>新着お知らせ:"+data.msg.length+"</a><br />");
							}});
						break;
*/					case 4://紹介した友達がﾊﾏｯﾀｰに入会しました
						var url4="./servlet/APINewFriends?user_id="+gl_owner_id+"&page=0&page_size=100";
						jQuery.ajax({url : url4,type : "post",dataType: "json",async:false,
							success:function (data){
								$("#newslinks").append("<a href='javascript:void(0);' onclick='loadUserNewsList(0,20,5);'>友達入会:"+data.users.length+"</a><br />");
							}});
						break;
					case 9://新しくﾌｫﾛｰされました
						var url9="./servlet/APINewFollower?user_id="+gl_owner_id+"&page=0&page_size=100";
						jQuery.ajax({url : url9,type : "post",dataType: "json",async:false,
							success:function (data){
								$("#newslinks").append("<a href='javascript:void(0);' onclick='loadUserNewsList(0,20,4);'>新しくフォローされました:"+data.users.length+"件</a><br />");
							}});
						break;
/*					case 10://新着ﾒｯｾｰｼﾞがあります
						var url9="./servlet/APINewFollower?user_id="+gl_owner_id+"&page=0&page_size=100";
						jQuery.ajax({url : url9,type : "post",dataType: "json",async:false,
							success:function (data){
								$("#newslinks").append("<a href='javascript:void(0);' onclick='loadUserNewsList(0,20,3);'>新しいメッセージがあります:"+data.users.length+"件</a>");
								}});
						break;
*/					case 12://新着のﾘｱﾌﾚ依頼があります
						var url9="./servlet/APINewFollower?user_id="+gl_owner_id+"&page=0&page_size=100";
						jQuery.ajax({url : url9,type : "post",dataType: "json",async:false,
							success:function (data){
								$("#newslinks").append("<a href='javascript:void(0);' onclick='loadUserNewsList(0,20,6);'>リアフレ依頼があります:"+data.users.length+"件</a><br />");
								}});
						break;
				}
			}
		},
		error:errtest
	});
}




/****************************************************************
* 機　能：指定ﾕｰｻﾞｰのひとりごと取得
* 引　数： user_id：指定ﾕｰｻﾞｰID、page：表示ﾍﾟｰｼﾞ、pagesize：1ページに表示する件数
* 戻り値： false
****************************************************************/
function U_loadXMLFile(user_id,page,pagesize,type) {
// 指定ﾕｰｻﾞｰの独り言取得

	if(isNaN(page)){
		page=0;
	}
	if(isNaN(pagesize)){
		pagesize=20;
	}
	if(!type){
		type=0;
	}
	gl_now_page=page;
	gl_now_pagesize=pagesize;
	gl_user_id=user_id;

	var params = "user_id=" + user_id +"&page=" + page +"&page_size=" + pagesize;

	var url = "./servlet/APIMyMsg";
	url += "?"+params;
	errapi="APIMyMsg";


	if(type==0)
	{
		jQuery.ajax({
			url : url,
			type : "post",
			dataType: "json",
			success:displayMyData,
			error:errtest
		});
	}else{
		jQuery.ajax({
			url : url,
			type : "post",
			dataType: "json",
			success:displayUserData,
			error:errtest
		});
	}
}

/****************************************************************
* 機　能：指定ﾕｰｻﾞｰのコメント取得
* 引　数： user_id：指定ﾕｰｻﾞｰID、page：表示ﾍﾟｰｼﾞ、pagesize：1ページに表示する件数
* 戻り値： false
****************************************************************/
function U_loadXMLFile_c(user_id,page,pagesize,type) {
// 指定ﾕｰｻﾞｰのコメント取得
	if(isNaN(page)){
		page=0;
	}
	if(isNaN(pagesize)){
		pagesize=10;
	}
	if(!type){
		type=0;
	}
	gl_now_page_c=page;
	gl_now_pagesize_c=pagesize;
	gl_user_id=user_id;


	var params = "user_id=" + user_id +"&page=" + page +"&page_size=" + pagesize;

	var url = "./servlet/APIMyReplyMsg";
	url += "?"+params;
	errapi="APIMyReplyMsg";

	//jQueryで同期通信を行う
	if(type==0)
	{
		jQuery.ajax({
			url : url,
			type : "post",
			dataType: "json",
			success:displayMyData_c,
			error:errtest
		});
	}else{
		jQuery.ajax({
			url : url,
			type : "post",
			dataType: "json",
			success:displayUserData_c,
			error:errtest
		});
	}
}

/****************************************************************
* 機　能：指定ﾕｰｻﾞｰのﾌｫﾛーひとりごとをチャットブログモード取得
* 引　数： user_id：指定ﾕｰｻﾞｰID、page：表示ﾍﾟｰｼﾞ、pagesize：1ページに表示する件数
* 戻り値： false
****************************************************************/
function TopChatMsg(user_id,page,pagesize) {
	if(isNaN(page)){
		page=0;
	}
	if(isNaN(pagesize)){
		pagesize=20;
	}
	gl_theme_id="100";
	gl_now_page=page;
	gl_now_pagesize=pagesize;
	gl_user_id=user_id;

	var params = "user_id=" + user_id +"&page=" + page +"&page_size=" + pagesize;

	var url = "./servlet/APITopChatMsg";
	url += "?"+params;
	errapi="APITopChatMsg";

	jQuery.ajax({
		url : url,
		type : "post",
		dataType: "json",
		success:displayMyChat,
		error:errtest
	});
}
/****************************************************************
* 機　能：指定ﾕｰｻﾞｰのﾌｫﾛーひとりごとをブログモード取得
* 引　数： user_id：指定ﾕｰｻﾞｰID、page：表示ﾍﾟｰｼﾞ、pagesize：1ページに表示する件数
* 戻り値： false
****************************************************************/
function TopBlogMsg(user_id,page,pagesize) {

// 指定ﾕｰｻﾞｰの独り言取得
	if(isNaN(page)){
		page=0;
	}
	if(isNaN(pagesize)){
		pagesize=20;
	}
	gl_now_page=page;
	gl_now_pagesize=pagesize;
	gl_user_id=user_id;

	var params = "user_id=" + user_id +"&page=" + page +"&page_size=" + pagesize;

	var url = "./servlet/APITopBlogMsg";
	url += "?"+params;
	errapi="APITopBlogMsg";
	jQuery.ajax({
		url : url,
		type : "post",
		dataType: "json",
		success:displayMyBlog,
		error:errtest
	});
}

/****************************************************************
* 機　能：ユーザープロフ表示
* 引　数： user_id：指定ﾕｰｻﾞｰID、page：表示ﾍﾟｰｼﾞ、pagesize：1ページに表示する件数
* 戻り値： false
****************************************************************/
function ALL_userdata(user_id) {
	gl_user_id = user_id;
// ユーザー情報取得(プロフィール&フォロワー)
	if(gl_owner_id!=user_id){
		//コメントボックスを非表示
		$("#In_PutBox").attr({style:"display: none;"});
		$("#loginOnly").attr({style:"display: none;"});
		$("#newUser").attr({style:"display: none;"});
		$("#UserLoginForm").attr({style:"display: none;"});
		$("#ShowOwnerDATA").attr({style:"display: block;"});
		$("#uList").remove();

		L_XML_UP(gl_user_id,0);
	}else{
		login_chk()
	}
}

/****************************************************************
* 機　能：フォロー/フォロワー表示切替
* 引　数： user_id：指定ﾕｰｻﾞｰID、type：0(フォロー表示)、1(フォロワー表示)
* 戻り値： false
****************************************************************/
function follow_change(user_id,type) {
// ユーザー情報取得(プロフィール&フォロワー)
	if(type==0){
		L_XML_UFLT(user_id,0,20);
	}else{
		L_XML_UFLM(user_id,0,20);
	}
}

/****************************************************************
* 機　能： ユーザー情報の取得
* 引　数： user_id:ユーザーID　type:0(指定ﾕｰｻﾞｰ),1(ﾛｸﾞｲﾝﾕｰｻﾞｰ)
* 戻り値： 無
****************************************************************/
function L_XML_UP(user_id,type) {
// プロフィール取得
	var params = "user_id=" + user_id;
	var url = "./servlet/APIUser";
	errapi="APIUser";
	url += "?"+params;
	if(type==0){
		//jQueryで非同期通信を行う
		jQuery.ajax({
			url : url,
			type : "post",
			dataType: "json",
			success:DispUserDATA,
			error:errtest
		});
	}else{
		//jQueryで非同期通信を行う
		jQuery.ajax({
			url : url,
			type : "post",
			dataType: "json",
			success:DispOwnerDATA,
			error:errtest
		});
	}
}

/****************************************************************
* 機　能： フォロー類button表示
* 引　数： user_id:ユーザーID,type 0:一般　1:rss
* 戻り値： 無
****************************************************************/
function T_ADD_Follow(user_id) {
	if(gl_owner_id!=""){
// フォグインユーザー以外の場合のみ、ﾌｫﾛｰ状況取得＋追加削除リアル申請のボタン表示
	if(gl_owner_id!=user_id){
		follow_Btn_f=0;				//ﾌｫﾛｰﾎﾞﾀﾝﾌﾗｸﾞ
		follow_CancellBtn_f=0;		//ﾌｫﾛｰ解除ﾎﾞﾀﾝﾌﾗｸﾞ
		Reject_Btn_f=0;				//拒否ﾎﾞﾀﾝﾌﾗｸﾞ
		Reject_CancellBtn_f=0;		//拒否解除ﾎﾞﾀﾝﾌﾗｸﾞ
		CReject_Btn_f=0;			//ｺﾒﾝﾄ拒否ﾎﾞﾀﾝﾌﾗｸﾞ
		CReject_CancellBtn_f=0;		//ｺﾒﾝﾄ拒否解除ﾎﾞﾀﾝﾌﾗｸﾞ
		Real_Btn_f=0;				//ﾘｱﾌﾚ申請ﾎﾞﾀﾝﾌﾗｸﾞ
		Real_CancellBtn_f=0;		//ﾘｱﾌﾚ解除ﾎﾞﾀﾝﾌﾗｸﾞ
		RejectReal_Btn_f=0;			//ﾘｱﾌﾚ拒否ﾎﾞﾀﾝﾌﾗｸﾞ
		PermitReal_Btn_f=0;			//ﾘｱﾌﾚ許可ﾎﾞﾀﾝﾌﾗｸﾞ
		nowReal_Btn_f=0;			//ﾘｱﾌﾚ申請中ﾎﾞﾀﾝﾌﾗｸﾞ

		followBtn1=0;
		followBtn2=0;
		followBtn3=0;
		followBtn4=0;

		var params = "user_id_from=" + gl_owner_id + "&user_id_to=" + user_id;
		var url = "./servlet/APIFollowChk";
		url += "?"+params;

		jQuery.ajax({
			url : url,
			type : "post",
			dataType : "json",
			async:false,
			success : function(data){
				var my_follow	=	data.follow[0].me_to_you;
				var my_follower	=	data.follow[0].you_to_to;
/*console.log("my_follow=",my_follow);
console.log("my_follower=",my_follower);*/
				switch(parseInt(my_follow)){
					case 0:
						//未ﾌｫﾛｰ
						switch(parseInt(my_follower)){
							case 0:
								//ﾌｫﾛｰﾎﾞﾀﾝ表示
								followBtn1=1;
								follow_Btn_f=1;
								Reject_Btn_f=1;
								break;
							case 1:
								//ﾌｫﾛｰﾎﾞﾀﾝ表示
								followBtn1=1;
								follow_Btn_f=1;
								Reject_Btn_f=1;
								break;
							case 2:
								//拒否のためﾌｫﾛｰﾎﾞﾀﾝ非表示
								followBtn2=1;
								Reject_Btn_f=1;
								break;
							case 3:
								//拒否のためﾌｫﾛｰﾎﾞﾀﾝ非表示
								followBtn4=1;
								break;
						}
						break;
					case 1:
						switch(parseInt(my_follower)){
							case 0:
								followBtn3=1;
								follow_CancellBtn_f=1;
								Reject_Btn_f=1;
								break;
							case 1:
								followBtn3=1;
								follow_CancellBtn_f=1;
								Reject_Btn_f=1;

								//リアルフレンズ状態取得
								var params = "user_id_from=" + gl_owner_id + "&user_id_to=" + gl_user_id;
								var url = "./servlet/APIRealFriendChk";
								url += "?"+params;

								jQuery.ajax(
									{
										url : url,
										type : "post",
										dataType : "json",
										async:false,
										success : function(data){
											var my_real	=	data.real[0].state;
											switch(parseInt(my_real))
											{
												case 0:
													Real_Btn_f=1;
													break;
												case 1:
													Real_CancellBtn_f=1;
													break;
												case 2:
													nowReal_Btn_f=1;
													break;
												case 3:
													RejectReal_Btn_f=1;
													PermitReal_Btn_f=1;
													break;
											}
										}
									});

								break;
							case 2:
								followBtn2=1;
								Reject_Btn_f=1;
								break;
							case 3:
								followBtn4=1;
								break;
						}
						break;
					case 2:
						switch(parseInt(my_follower)){
							case 0:
								followBtn4=1;
								Reject_CancellBtn_f=1;
								break;
							case 1:
								followBtn4=1;
								Reject_CancellBtn_f=1;
								break;
							case 2:
								followBtn4=1;
								Reject_CancellBtn_f=1;
								break;
						}
						break;
					case 3:
						break;
				}
			}
		});
		var defaultbtn="<p><a href='index.html'>ホーム</a></p>";
		var followbtn="<p><a href='javascript:void(0);' onclick='follow_func("+gl_user_id+","+0+");'>フォローする</a></p>";
		var blockbtn="<p><a href='javascript:void(0);' onclick='follow_func("+gl_user_id+","+2+");'>ブロックする</a></p>";
		var unblockbtn="<p><a href='javascript:void(0);' onclick='follow_func("+gl_user_id+","+3+");'>ブロック解除</a></p>";
		var unfollowbtn="<p><a href='javascript:void(0);' onclick='follow_func("+gl_user_id+","+1+");'>フォロー解除</a></p>";
		var rearbtn="<p><a href='javascript:void(0);' onclick='follow_func("+gl_user_id+","+4+");'>リアフレ申請</a></p>";
		var unrealbtn="<p><a href='javascript:void(0);' onclick='follow_func("+gl_user_id+","+5+");'>リアフレ解除</a></p>";
		var yesrealbtn="<p><a href='javascript:void(0);' onclick='follow_func("+gl_user_id+","+7+");'>リアフレ許可</a></p>";
		var norealbtn="<p><a href='javascript:void(0);' onclick='follow_func("+gl_user_id+","+6+");'>リアフレ拒否</a></p>";
		var nowrealbtn="<p>リアフレ申請中</p>";
		if(kind=="0"){
			if(followBtn1==1){$("#homebtn").html(defaultbtn+followbtn+blockbtn);}
			if(followBtn3==1){$("#homebtn").html(defaultbtn+unfollowbtn+blockbtn);}
			if(followBtn2==1){$("#homebtn").html(defaultbtn+blockbtn);}
			if(followBtn4==1){$("#homebtn").html(defaultbtn+unblockbtn);}
			if(Real_Btn_f==1){$("#homebtn").html(defaultbtn+rearbtn);}
			if(Real_CancellBtn_f==1){$("#homebtn").html(defaultbtn+unrearbtn);}
			if((RejectReal_Btn_f==1) || (PermitReal_Btn_f==1)){$("#homebtn").html(defaultbtn+yesrealbtn+norealbtn);}
			if(nowReal_Btn_f==1){$("#homebtn").html(defaultbtn+nowrealbtn);}
		}else{
			if(followBtn1==1){$("#homebtn").html(defaultbtn+followbtn);}
			if(followBtn3==1){$("#homebtn").html(defaultbtn+unfollowbtn);}
		}
	}else{
	}
}
/*
console.log("follow_Btn_f=",follow_Btn_f);//ﾌｫﾛｰﾎﾞﾀﾝﾌﾗｸﾞ
console.log("follow_CancellBtn_f=",follow_CancellBtn_f);		//ﾌｫﾛｰ解除ﾎﾞﾀﾝﾌﾗｸﾞ
console.log("Reject_Btn_f=",Reject_Btn_f);				//拒否ﾎﾞﾀﾝﾌﾗｸﾞ
console.log("Reject_CancellBtn_f=",Reject_CancellBtn_f);		//拒否解除ﾎﾞﾀﾝﾌﾗｸﾞ
console.log("CReject_Btn_f=",CReject_Btn_f);			//ｺﾒﾝﾄ拒否ﾎﾞﾀﾝﾌﾗｸﾞ
console.log("CReject_CancellBtn_f=",CReject_CancellBtn_f);		//ｺﾒﾝﾄ拒否解除ﾎﾞﾀﾝﾌﾗｸﾞ
console.log("Real_Btn_f=",Real_Btn_f);				//ﾘｱﾌﾚ申請ﾎﾞﾀﾝﾌﾗｸﾞ
console.log("Real_CancellBtn_f=",Real_CancellBtn_f);		//ﾘｱﾌﾚ解除ﾎﾞﾀﾝﾌﾗｸﾞ
console.log("RejectReal_Btn_f=",RejectReal_Btn_f);			//ﾘｱﾌﾚ拒否ﾎﾞﾀﾝﾌﾗｸﾞ
console.log("PermitReal_Btn_f=",PermitReal_Btn_f);			//ﾘｱﾌﾚ許可ﾎﾞﾀﾝﾌﾗｸﾞ
console.log("nowReal_Btn_f=",nowReal_Btn_f);			//ﾘｱﾌﾚ申請中ﾎﾞﾀﾝﾌﾗｸﾞ
*/
}
/****************************************************************
* 機　能： 指定ﾕｰｻﾞｰへのﾌｫﾛｰ関数
* 引　数： user_id:指定ユーザーID　
*		： type
*		：　0(ﾌｫﾛ-する)
*		：　1(ﾌｫﾛｰ解除)
*		：　2(拒否)
*		：　3(拒否解除)
*		：　4(ﾘｱﾌﾚ申請)
*		：　5(ﾘｱﾌﾚ解除)
*		：　6(ﾘｱﾌﾚ拒否)
*		：　7(ﾘｱﾌﾚ許可)
*		：　8(ﾘｱﾌﾚ申請中)
* 戻り値： 無
****************************************************************/
function follow_func(user_id,type){
	switch(type)
	{
		case 0:
			var params = "user_id_from=" + gl_owner_id + "&user_id_to=" + user_id;
			var url = "./servlet/APIFollowInsert";
			errapi="APIFollowInsert";
			url += "?"+params;
			jQuery.ajax(
				{
					url : url,
					type : "post",
					dataType : "json",
					async:false,
					success : function(){
					},
					error:errtest,
					complete:comptest
				}
				);
			break;
		case 1:
			var params = "user_id_from=" + gl_owner_id + "&user_id_to=" + user_id;
			var url = "./servlet/APIFollowDelete";
			url += "?"+params;
			errapi="APIFollowDelete";
			jQuery.ajax(
				{
					url : url,
					type : "post",
					dataType : "json",
					async:false,
					success : function(){
					},
					error:errtest,
					complete:comptest
				}
				);
			break;
		case 2:
			var params = "user_id_from=" + gl_owner_id + "&user_id_to=" + user_id;
			var url = "./servlet/APIBlockAdd";
			url += "?"+params;
			errapi="APIBlockAdd";
			jQuery.ajax(
				{
					url : url,
					type : "post",
					dataType : "json",
					async:false,
					success : function(){
					},
					error:errtest,
					complete:comptest
				}
				);
			break;
		case 3:
			var params = "user_id_from=" + gl_owner_id + "&user_id_to=" + user_id;
			var url = "./servlet/APIBlockDelete";
			url += "?"+params;
			errapi="APIBlockDelete";
			jQuery.ajax(
				{
					url : url,
					type : "post",
					dataType : "json",
					async:false,
					success : function(){
					},
					error:errtest,
					complete:comptest
				}
				);
			break;
		case 4:
			var params = "user_id_from=" + gl_owner_id + "&user_id_to=" + user_id;
			var url = "./servlet/APIRealFriendInsert";
			url += "?"+params;
			errapi="APIRealFriendInsert";
			jQuery.ajax(
				{
					url : url,
					type : "post",
					dataType : "json",
					async:false,
					success : function(){
					},
					error:errtest,
					complete:comptest
				}
				);
			break;
		case 5:
			var params = "user_id_from=" + gl_owner_id + "&user_id_to=" + user_id;
			var url = "./servlet/APIFollowDelete";
			url += "?"+params;
			errapi="APIFollowDelete";
			jQuery.ajax(
				{
					url : url,
					type : "post",
					dataType : "json",
					async:false,
					success : function(){
					},
					error:errtest,
					complete:comptest
				}
				);
			break;
		case 6:
			var params = "user_id_from=" + gl_owner_id + "&user_id_to=" + user_id;
			var url = "./servlet/APIRealFriendDisappr";
			url += "?"+params;
			errapi="APIRealFriendDisappr";
			jQuery.ajax(
				{
					url : url,
					type : "post",
					dataType : "json",
					async:false,
					success : function(){
					},
					error:errtest,
					complete:comptest
				}
				);
			break;
		case 7:
			var params = "user_id_from=" + gl_owner_id + "&user_id_to=" + user_id;
			var url = "./servlet/APIRealFriendApprInsert";
			url += "?"+params;
			errapi="APIRealFriendApprInsert";
			jQuery.ajax(
				{
					url : url,
					type : "post",
					dataType : "json",
					async:false,
					success : function(){
					},
					error:errtest,
					complete:comptest
				}
				);
			break;
		case 8:
			break;
	}
	ALL_userdata(gl_user_id);
}



/****************************************************************
* 機　能： 指定ﾕｰｻﾞｰﾌｫﾛｰﾘｽﾄの取得
* 引　数： user_id:ユーザーID　type:0(指定ﾕｰｻﾞｰ),1(ﾛｸﾞｲﾝﾕｰｻﾞｰ)
* 戻り値： 無
****************************************************************/
function L_XML_UFLT(user_id,page,pagesize) {
// 指定したユーザーがフォローしている相手のリストを取得
	if(isNaN(page)){
		page=0;
	}
	if(isNaN(pagesize)){
		pagesize=20;
	}
	var params = "user_id=" + user_id +"&page=" + page +"&page_size=" + pagesize;

	var url = "./servlet/APIFollow";
	url += "?"+params;
	errapi="APIFollow";

	//jQueryで非同期通信を行う
	jQuery.ajax({
		url : url,
		type : "post",
		dataType: "json",
		error:errtest,
		success:DispFollow_to
	});
}
/****************************************************************
* 機　能： 指定ﾕｰｻﾞｰﾌｫﾛﾜｰﾘｽﾄの取得
* 引　数： user_id:ユーザーID　type:0(指定ﾕｰｻﾞｰ),1(ﾛｸﾞｲﾝﾕｰｻﾞｰ)
* 戻り値： 無
****************************************************************/
function L_XML_UFLM(user_id,page,pagesize) {
// 指定したユーザーがフォローされている相手のリストを取得
	if(isNaN(page)){
		page=0;
	}
	if(isNaN(pagesize)){
		pagesize=20;
	}
	var params = "user_id=" + user_id +"&page=" + page +"&page_size=" + pagesize;
	var url = "./servlet/APIFollower";
	url += "?"+params;

	//jQueryで非同期通信を行う
	jQuery.ajax({
		url : url,
		type : "post",
		dataType: "json",
		success:DispFollow_me
	});
}

/****************************************************************
* 機　能： 指定ﾕｰｻﾞｰﾘｱﾙﾌﾚﾝｽﾞﾘｽﾄの取得
* 引　数： user_id:ユーザーID　type:0(指定ﾕｰｻﾞｰ),1(ﾛｸﾞｲﾝﾕｰｻﾞｰ)
* 戻り値： 無
****************************************************************/
function L_XML_UFLR(user_id,page,pagesize) {
// 指定したユーザーリアルフレンズリストを取得
	if(isNaN(page)){
		page=0;
	}
	if(isNaN(pagesize)){
		pagesize=12;
	}
	var params = "user_id=" + user_id +"&page=" + page +"&page_size=" + pagesize;
	var url = "./servlet/APIRealFriend";
	url += "?"+params;

	//jQueryで非同期通信を行う
	jQuery.ajax({
		url : url,
		type : "post",
		dataType: "json",
		success:DispFollow_real
	});
	mail_sender_list(0,100);
}
/****************************************************************
* 機　能： 指定ﾕｰｻﾞｰﾘｱﾙﾌﾚﾝｽﾞﾘｽﾄの取得(メール用)
* 引　数： user_id:ユーザーID　type:0(指定ﾕｰｻﾞｰ),1(ﾛｸﾞｲﾝﾕｰｻﾞｰ)
* 戻り値： 無
****************************************************************/
function mail_sender_list(page,pagesize) {
// 指定したユーザーリアルフレンズリストを取得
	if(isNaN(page)){
		page=0;
	}
	if(isNaN(pagesize)){
		pagesize=100;
	}
	var params = "user_id=" + gl_owner_id +"&page=" + page +"&page_size=" + pagesize;
	var url = "./servlet/APIRealFriend";
	url += "?"+params;

	//jQueryで非同期通信を行う
	jQuery.ajax({
		url : url,
		type : "post",
		dataType: "json",
		success:mail_real
	});
}

function mail_real(data){
	var result="";
	var totalcount=data.users[0].num_rows;
	if(totalcount!=0){
		for ( var i = 0; i < data.users.length; i++) {
			var id 			= data.users[i].user_id;
			var nickname 	= data.users[i].user_nickname;
			var imgdir 		= data.users[i].imagedir_flg;
			var sex 		= data.users[i].user_sex;
			var imgpath 	= data.users[i].image_path;
			result += "<option value='";
			result += id;
			result += "'>";
			result += nickname;
			result += "</option>";
		}
		$("#sendid").html(result);
	}else{
		$(".mailmain").css({display:"none"})
		$("#mail_error_sub").html("ユーザーがいません。");
	}
}


/****************************************************************
* 機　能： 指定ﾒｯｾｰｼﾞのｺﾒﾝﾄﾘｽﾄ取得(コメント押下時)
* 引　数： msg_id:ﾒｯｾｰｼﾞID、page：表示ﾍﾟｰｼﾞ、pagesize：1ページに表示する件数
* 戻り値： 無
****************************************************************/
function L_XML_MSG(msg_id,page,pagesize) {
	if(!page){page=0;}
	if(!pagesize){pagesize=200;}

	var params = "msg_id=" + msg_id + "&page=" + page + "&page_size=" + pagesize + "&user_id=" + gl_owner_id;
	var tagname="baby_msg"+msg_id;

	openObj = document.getElementById(tagname);

	//コメント表示切替
	if(openObj.childNodes.length!=0){
		//閉じる
		for (var i =openObj.childNodes.length-1; i>=0; i--) {
			openObj.removeChild(openObj.childNodes[i]);
			$("#"+tagname).attr({style:"Display:none;"})
		}
	}else{
		//開く
		$("#"+tagname).attr({style:"Display:block;"})
		//コメントの取得
		var url = "./servlet/APIReplyMsg";
		url += "?"+params;
		errapi="APIReplyMsg";

		//jQueryで非同期通信を行う
		jQuery.ajax({
			url : url,
			type : "post",
			dataType: "json",
/*			success:test,*/
			success:function DispMsgDATA(data) {
				var p_themeid=$("#themeid"+msg_id).text();
				var p_user_id=$("#userid"+msg_id).text();
				document.getElementById(tagname).innerHTML = parseUC(data,msg_id,p_themeid,p_user_id);
				//親の追加

				var p_div	= "p_msgcontent"+msg_id;
				var p_nick	= "nick"+msg_id;
				var p_msg	= "userMsg"+msg_id;
				var p_postat= "postedat"+msg_id;
				p_obj=document.getElementById(p_nick).innerHTML;
				p_content=document.getElementById(p_msg).innerHTML;
				p_postedat=document.getElementById(p_postat).innerHTML;
				p_add=document.getElementById(p_div);
				p_add.innerHTML="<p class='name'>"+p_obj+"</p><div class='userMsg'>"+p_content+"</div><div class='postedat'>"+p_postedat+"</div>";
			},
			error:errtest,
			complete:comptest
		});
	}

}
/****************************************************************
* 機　能： 指定ﾒｯｾｰｼﾞのｺﾒﾝﾄﾘｽﾄ取得(ログ押下時)
* 引　数： to_msg_id:親ﾒｯｾｰｼﾞID、msg_id:ﾒｯｾｰｼﾞID、page：表示ﾍﾟｰｼﾞ、pagesize：1ページに表示する件数
* 戻り値： 無
****************************************************************/
function L_XML_MSG_c(to_msg_id,msg_id,page,size) {
// ログメッセージ取得
	if(!page){page=0;}
	if(!size){size=200;}

	var params = "msg_id=" + to_msg_id + "&page=" + page + "&page_size=" + size;
	var tagname="baby_msg"+msg_id;

	openObj = document.getElementById(tagname);

	//コメント表示切替
	if(openObj.childNodes.length!=0){
		//閉じる
		for (var i =openObj.childNodes.length-1; i>=0; i--) {
			openObj.removeChild(openObj.childNodes[i]);
			$("#"+tagname).attr({style:"Display:none;"})
		}
	}else{
		//開く
		$("#"+tagname).attr({style:"Display:block;"})
		//コメントの親を取得
		var p_nickname;
		var p_message;
		var p_postedat;
		var p_userid;
		var p_theme;
		var p_params = "msg_id=" + to_msg_id;
		var p_url = "./servlet/APIReplyMainMsg";
		p_url += "?"+p_params;
		jQuery.ajax({
			url : p_url,
			type : "post",
			dataType: "json",
			async:false,
			success:function (data) {
				p_nickname = data.msg[0].user_nickname;
				p_message = data.msg[0].msg_contents;
				p_postedat=date_chg(data.msg[0].posted_at);
				p_theme=data.msg[0].theme_id;
				p_userid=data.msg[0].user_id;
			},
			error:function (a,b,c){
				alert("error"+a+b+c);
			}
		});
		//コメントの取得
		var url = "./servlet/APIReplyMsg";
		url += "?"+params;
		errapi="APIReplyMsg";

		//jQueryで非同期通信を行う
		jQuery.ajax({
			url : url,
			type : "post",
			dataType: "json",
			success:function DispMsgDATA(data) {
				document.getElementById(tagname).innerHTML = parseUC(data,to_msg_id,p_theme,p_userid);
				//親の追加

				var p_div	= "p_msgcontent"+to_msg_id;
				p_add=document.getElementById(p_div);
				p_add.innerHTML="<p class='name'>"+p_nickname+"</p><div class='userMsg'>"+p_message+"</div><div class='postedat'>"+p_postedat+"</div>";
			},
			error:errtest,
			complete:comptest
		});
	}

}

/****************************************************************
* 機　能： プロフィール編集画面表示
* 引　数： user_id:ユーザーID
* 戻り値： 無
****************************************************************/
function mod_prof() {
	//フォーム入力値の取得
	var usernickname	=	$.trim($("#musrename").val());
	var userbirthday	=	$.trim($("#muserbirth").val());
	var userbloodtype	=	$.trim($("#muserblood").val());
	var usercity		=	$.trim($("#musercity").val());
	var userjob			=	$.trim($("#muserjob").val());
	var userintro		=	$.trim($("#muserintro").val());
	var err="";
	//必須入力チェック
	if(usernickname==""){
		err+="ﾆｯｸﾈｰﾑが未入力です。";
	}
	if(userbirthday!=""){
		if(userbirthday.length!=8){
			err+="生年月日は20090109の様に８桁入力してください。";
		}
	}

	//未入力時の代替え処理
	if(userintro==""){
		userintro="null";
	}

	if(err==""){
		$("#muserid").val(gl_owner_id);
		$("#mviewid").val("100");
		alert("プロフィールの更新が完了しました。");
		return boFlg;
	}else{
		$("#m_error").html(err);
		return false;
	}
}

/****************************************************************
* 機　能： 機能テスト用(通信成功)
* 引　数： data：なんでも
* 戻り値： 無
****************************************************************/
function test(data){
	alert(data);
}

/****************************************************************
* 機　能： 機能テスト用(エラー)
* 引　数： data：なんでも
* 戻り値： 無
****************************************************************/
function errtest(data,textStatus, errorThrown){
	alert("暫定対応：データ取得エラー"+errapi);
}
/****************************************************************
* 機　能： 機能テスト用(通信完了)
* 引　数： data：なんでも
* 戻り値： 無
****************************************************************/
function comptest(data){
}

/****************************************************************
* 機　能： loadXMLFile(コールバック関数)
* 引　数： data：json形式
* 戻り値： 無
****************************************************************/
function displayData(data) {
	document.getElementById("result").innerHTML = parseFM(data,1);
}

/****************************************************************
* 機　能： loadUserListNoIn(コールバック関数)
* 引　数： data：json形式
* 戻り値： 無
****************************************************************/
function UserList(data) {
	if(!document.getElementById("ShowOwnerDATA")){
		var Add_comment_head = document.createElement("div");
		Add_comment_head.setAttribute("id", "ShowOwnerDATA");
		document.getElementById("left_p").appendChild(Add_comment_head);
		var Add_comment_part = document.createElement("div");
		Add_comment_part.setAttribute("id", "uList");
		document.getElementById("left_p").appendChild(Add_comment_part);
	}else{
		if(document.getElementById("userInfo")){
			var disp_comment = document.getElementById("userInfo");
			var disp_comment_parent = disp_comment.parentNode;
			disp_comment_parent.removeChild(disp_comment);
		}
		if(!document.getElementById("uList")){
			var Add_comment_part = document.createElement("div");
			Add_comment_part.setAttribute("id", "uList");
			document.getElementById("left_p").appendChild(Add_comment_part);
		}
	}

	document.getElementById("uList").innerHTML = parseUP(data,5,4,0);
}

/****************************************************************
* 機　能： U_loadXMLFile(コールバック関数)
* 引　数： data：json形式
* 戻り値： 無
****************************************************************/
function displayMyData(data) {
	$("#centerhead").text("マイつぶやき");
	document.getElementById("result").innerHTML = parseFM(data,2);
	document.getElementById("view_id").value=102;
}
/****************************************************************
* 機　能： U_loadXMLFile(コールバック関数)
* 引　数： data：json形式
* 戻り値： 無
****************************************************************/
function DispModProf(data) {
}

/****************************************************************
* 機　能： U_loadXMLFile_c(コールバック関数)
* 引　数： data：json形式
* 戻り値： 無
****************************************************************/
function displayMyData_c(data) {
	if(!document.getElementById("blogEntry_c")){
		//追加先のdivタグを配置先に生成
		var Add_comment_head = document.createElement("div");
		Add_comment_head.setAttribute("id", "blogEntry_c");
		document.getElementById("center_p").appendChild(Add_comment_head);
	}
	if(!document.getElementById("pageId_c")){
		//追加先のdivタグを配置先に生成
		var Add_comment_head = document.createElement("h1");
		Add_comment_head.setAttribute("id", "pageId_c");
		var Add_span_head = document.createElement("span");
		Add_span_head.setAttribute("id", "centerhead_c");
		var Add_span_pre = document.createElement("span");
		Add_span_pre.setAttribute("id", "pre_c");
		var Add_span_next = document.createElement("span");
		Add_span_next.setAttribute("id", "next_c");
		document.getElementById("blogEntry_c").appendChild(Add_comment_head);
		document.getElementById("pageId_c").appendChild(Add_span_pre);
		document.getElementById("pageId_c").appendChild(Add_span_next);
		document.getElementById("pageId_c").appendChild(Add_span_head);
	}
	if(!document.getElementById("result_c")){
		//追加先のdivタグを配置先に生成
		var Add_comment_list = document.createElement("div");
		Add_comment_list.setAttribute("id", "result_c");
		document.getElementById("blogEntry_c").appendChild(Add_comment_list);
	}
	$("#centerhead_c").text("マイコメント");
	document.getElementById("result_c").innerHTML = parseUserComment(data);
}

/****************************************************************
* 機　能： U_loadXMLFile(コールバック関数)
* 引　数： data：json形式
* 戻り値： 無
****************************************************************/
function displayUserData(data) {
	document.getElementById("result").innerHTML = parseFM(data,5);
	document.getElementById("view_id").value=103;
}
/****************************************************************
* 機　能： U_loadXMLFile_c(コールバック関数)
* 引　数： data：json形式
* 戻り値： 無
****************************************************************/
function displayUserData_c(data) {
	document.getElementById("result_c").innerHTML = parseUserComment(data);
}

/****************************************************************
* 機　能： TopChatMsg(コールバック関数)
* 引　数： data：json形式
* 戻り値： 無
****************************************************************/
function displayMyChat(data) {
	$("#centerhead").text("フォローしている人のなぅ");
	document.getElementById("result").innerHTML = parseFM(data,3);
	document.getElementById("view_id").value=100;
}

/****************************************************************
* 機　能： TopBlogMsg(コールバック関数)
* 引　数： data：json形式
* 戻り値： 無
****************************************************************/
function displayMyBlog(data) {
//	document.getElementById("pageId").innerHTML = "<span id='centerhead'>フォローしている人のなぅ<a href='javascript:void(0);' onclick='TopChatMsg("+gl_owner_id+");'>コメント非表示</a></span>";
	document.getElementById("result").innerHTML = parseFM(data,4);
	document.getElementById("view_id").value=101;
}

/****************************************************************
* 機　能： L_XML_UP(コールバック関数)
* 引　数： data：json形式
* 戻り値： 無
****************************************************************/
function DispUserDATA(data) {
	document.getElementById("ShowOwnerDATA").innerHTML = parseUD(data);
	T_ADD_Follow(gl_user_id,userkind);
}

/****************************************************************
* 機　能： L_XML_UP(コールバック関数)
* 引　数： data：json形式
* 戻り値： 無
****************************************************************/
function DispOwnerDATA(data) {
	document.getElementById("ShowOwnerDATA").innerHTML = parseOD(data);
	ownerNews();
}

/****************************************************************
* 機　能： L_XML_UFLT(コールバック関数)
* 引　数： data：json形式
* 戻り値： 無
****************************************************************/
function DispFollow_to(data) {
	if(!document.getElementById("to_follow")){
		//配置先の先頭のノードを取得
		var Add_first_nodes = document.getElementById("damy");
		//追加先のdivタグを配置先に生成
		var Add_user_list_to = document.createElement("div");
		Add_user_list_to.setAttribute("id", "to_follow");
//		document.getElementById("left_p").insertBefore(Add_user_list_to,Add_first_nodes);
		document.getElementById("left_p").appendChild(Add_user_list_to);
	}
	document.getElementById("to_follow").innerHTML = parseUP(data,5,4,1);
}

/****************************************************************
* 機　能： L_XML_UFLM(コールバック関数)
* 引　数： data：json形式
* 戻り値： 無
****************************************************************/
function DispFollow_me(data) {
	if(!document.getElementById("to_follow")){
		//配置先の先頭のノードを取得
		var Add_first_nodes = document.getElementById("damy");
		//追加先のdivタグを配置先に生成
		var Add_user_list_to = document.createElement("div");
		Add_user_list_to.setAttribute("id", "to_follow");
//		document.getElementById("left_p").insertBefore(Add_user_list_to,Add_first_nodes);
		document.getElementById("left_p").appendChild(Add_user_list_to);
	}
	document.getElementById("to_follow").innerHTML = parseUP(data,5,4,2);
}

/****************************************************************
* 機　能： L_XML_UFLR(コールバック関数)
* 引　数： data：json形式
* 戻り値： 無
****************************************************************/
function DispFollow_real(data) {
	if(!document.getElementById("me_follow")){
		//配置先の先頭のノードを取得
		var Add_first_nodes = document.getElementById("damy");
		//追加先のdivタグを配置先に生成
		var Add_user_list_me = document.createElement("div");
		Add_user_list_me.setAttribute("id", "me_follow");
		document.getElementById("left_p").insertBefore(Add_user_list_me,Add_first_nodes);
//		document.getElementById("left_p").appendChild(Add_user_list_me);
	}
	document.getElementById("me_follow").innerHTML = parseUP(data,3,4,3);
	L_XML_UFLT(gl_user_id,0,20);
}

/****************************************************************
* 機　能： user_BlockList(コールバック関数)
* 引　数： data：json形式
* 戻り値： 無
****************************************************************/
function UserBlockList(data) {
	if(!document.getElementById("to_block")){
		//配置先の先頭のノードを取得
		var Add_first_nodes = document.getElementById("me_follow");
		//追加先のdivタグを配置先に生成
		var Add_user_list_me = document.createElement("div");
		Add_user_list_me.setAttribute("id", "to_block");
		document.getElementById("left_p").insertBefore(Add_user_list_me,Add_first_nodes);
//		document.getElementById("left_p").appendChild(Add_user_list_me);
	}
	document.getElementById("to_block").innerHTML = parseUP(data,5,4,4);
}

/****************************************************************
* 機　能： user_RealList(コールバック関数)
* 引　数： data：json形式
* 戻り値： 無
****************************************************************/
function UserRealList(data) {
	if(!document.getElementById("to_real")){
		//配置先の先頭のノードを取得
		var Add_first_nodes = document.getElementById("me_follow");
		//追加先のdivタグを配置先に生成
		var Add_user_list_me = document.createElement("div");
		Add_user_list_me.setAttribute("id", "to_real");
		document.getElementById("left_p").insertBefore(Add_user_list_me,Add_first_nodes);
	}
	document.getElementById("to_real").innerHTML = parseUP(data,5,4,5);
}

/****************************************************************
* 機　能： メイン情報表示
* 引　数： data：json形式、type：機能No
*		： type：1=テーマ別(loadXMLFile),2=マイひとりごと(U_loadXMLFile)
*		：       3=フォローしている人のなぅ(TopChatMsg)
* 戻り値： result：html形式
****************************************************************/
function parseFM(data,type) {
	var result = "";
	var totalcount=data.msg[0].num_rows;
	if(totalcount!=0){
		for ( var i = 0; i < data.msg.length; i++) {
			var n1 = data.msg[i].id;
			var n2 = data.msg[i].user_id;
			var n3 = data.msg[i].user_nickname;
			var n4 = data.msg[i].msg_contents;
			var n5 = data.msg[i].msg_image_path;
			var n6 = data.msg[i].posted_at;
			var n7 = data.msg[i].imagedir_flg;
			var n8 = data.msg[i].user_sex;
			var n9 = data.msg[i].user_imagedir1;
			var n10 = data.msg[i].user_imagedir2;
			var n11 = data.msg[i].user_imagedir3;
			var n12 = data.msg[i].theme_name;
			var n13 = data.msg[i].reply_msg_cnt;
			var n14 = data.msg[i].to_msg_id;
			var n15 = data.msg[i].to_user_id;
			var n16 = data.msg[i].to_user_nickname;
			var n17 = data.msg[i].theme_id;
			var n18 = data.msg[i].filename;

			result += "<div id='msgcontent"+n1+"' class='msgcontent' onMouseOver='mson("+n1+")' onMouseOut='msof("+n1+")'><p class='img'>";
			if(n7 == 0){
				result += "<a href='http://av.mmagic.jp/hamatta.jp/images/"+zeroume(n2,8)+"_s.gif?gender="+n8+"' class='thickbox' title='' onclick='return thickbox(this);'><img src='http://av.mmagic.jp/hamatta.jp/images/"+zeroume(n2,8)+"_s.gif?gender="+n8+"' alt='' width='100' height='100'></a></p>";
			}else if(n7 == 1){
				result += "<img src='./servlet/ImageServlet?img="+n9+"&max_w=200&max_h=200'>";
			}else if(n7 == 2){
				result += "<img src='./servlet/ImageServlet?img="+n10+"&max_w=200&max_h=200'>";

			}else{
				result += "<img src='./servlet/ImageServlet?img="+n11+"&max_w=200&max_h=200'>";
			}

			result += "<div class='com'><span id='comhead'>";
			result += "<div class='nickname'><a id='nick"+n1+"' class='name' href='javascript:void(0);' onclick='ALL_userdata("+n2+");'>"+ n3 +"</a>";

			if((n14==0) || (!n14)){
				if(type!="1"){
					result += "<a id='theme' href='javascript:void(0);' onclick='"+theme(n12)+"'>("+ n12 +")</a>";
				}
				result +="<div id='themeid"+n1+"' style='display:none'>"+n17+"</div><div id='userid"+n1+"' style='display:none'>"+n2+"</div></div>";
			}else{
				result += "<span>⇒"+"<a class='name_c' href='javascript:void(0);' onclick='ALL_userdata("+n15+");'>"+ n16 +"</a>";
				if(type!="1"){
					result +="<a id='theme' href='javascript:void(0);' onclick='"+theme(n12)+"'>("+ n12 +")</a>";
				}
				result +="</span><div id='themeid"+n1+"' style='display:none'>"+n17+"</div></div>";
			}
			result +="<div id='icons'>";
			if(n2==gl_owner_id){
				result += "<a id='trash_a' class='delMsg' href='javascript:void(0);' onclick='return delMsg("+n1+")'><img id='trash' src='./images/trash.png' alt='削除' width='20' height='20'></a>";
			}
			if((n15==gl_owner_id)&&(n2!=gl_owner_id)){
				result += "<a id='ret_msg' class='retmsg' href='javascript:void(0);' onclick='return retMsg("+n14+","+n2+","+n17+")'>返</a>";
			}
			if((n5=="null") || (n5=="")){
			}else{
/*				result += "<a id='camera_a' href='./servlet/ImageServlet?img="+n5+"' title='' class='thickbox' onclick='return thickbox(this);'><img id='camera' src='./images/camera.png' alt='添付' width='20' height='20'></a>";
*/				result += "<a id='camera_a' href='./servlet/ImageServlet?img="+n5+"' onclick='return OpenWindow(this.href)' target='_blank'><img id='camera' src='./images/camera.png' alt='添付' width='20' height='20'></a>";
			}
			result +="</div>";

			if((n18=="null") || (n18=="")){
				result +="<div id='userMsg"+n1+"' class='userMsg'>"+ n4 + "</div>";
			}else{
				result +="<div id='userMsg"+n1+"' class='userMsg'><a href='"+n18+"' target='_blank'>"+ n4 + "</a></div>";
			}


			if((n18=="null") || (n18=="") ||(!n18)){
				if((n14==0) || (!n14)){
					result += "<div id='postedat"+n1+"' class='postedat'>"+date_chg(n6)+"</div><a class='userComent' href='javascript:void(0)' onclick='L_XML_MSG("+n1+")'>コメント("+n13+")</a>";
				}else{
					result += "<div id='postedat"+n1+"' class='postedat'>"+date_chg(n6)+"</div><a class='userComent' href='javascript:void(0)' onclick='L_XML_MSG_c("+n14+","+n1+")'>ログ</a>";
				}
			}else{
					result += "<div id='postedat"+n1+"' class='postedat'>"+date_chg(n6)+"</div>";
			}
			result += "</span></div></div>";
			result += "<div id='baby_msg"+ n1 +"' class='coment' style='display:none;'></div>";
		}
	}else{
		result += "<div id='msgcontent_non' class='msgcontent'>未投稿</div>";
	}
		pager(totalcount,gl_now_page,gl_now_pagesize,type);
return result;
}

/****************************************************************
* 機　能： メイン情報表示(コメント)
* 引　数： data：json形式
* 戻り値： result：HTML形式
****************************************************************/
function parseUserComment(data) {

	var result = "";
	var totalcount_c=data.msg[0].num_rows;
	if(totalcount_c!=0){

		for ( var i = 0; i < data.msg.length; i++) {
			var n1 = data.msg[i].id;
			var n2 = data.msg[i].user_id;
			var n3 = data.msg[i].user_nickname;
			var n4 = data.msg[i].msg_contents;
			var n5 = data.msg[i].msg_image_path;
			var n6 = data.msg[i].posted_at;
			var n7 = data.msg[i].imagedir_flg;
			var n8 = data.msg[i].user_sex;
			var n9 = data.msg[i].user_imagedir1;
			var n10 = data.msg[i].user_imagedir2;
			var n11 = data.msg[i].user_imagedir3;
			var n12 = data.msg[i].theme_name;
			var n13 = data.msg[i].reply_msg_cnt;
			var n14 = data.msg[i].to_msg_id;
			var n15 = data.msg[i].to_user_id;
			var n16 = data.msg[i].to_user_nickname;
			var n17 = data.msg[i].theme_id;

			result += "<div id='msgcontent"+n1+"' class='msgcontent' onMouseOver='mson("+n1+")' onMouseOut='msof("+n1+")'><p class='img'>";

			if(n7 == 0){
				result += "<a href='http://av.mmagic.jp/hamatta.jp/images/"+zeroume(n2,8)+"_s.gif?gender="+n8+"' class='thickbox' onclick='return thickbox(this);'><img src='http://av.mmagic.jp/hamatta.jp/images/"+zeroume(n2,8)+"_s.gif?gender="+n8+"'></a></p>";
			}else if(n7 == 1){
				result += "<img src='./servlet/ImageServlet?img="+n9+"&max_w=45&max_h=45'>";
			}else if(n7 == 2){
				result += "<img src='./servlet/ImageServlet?img="+n10+"&max_w=45&max_h=45'>";

			}else{
				result += "<img src='./servlet/ImageServlet?img="+n11+"&max_w=45&max_h=45'>";
			}

			result += "<div class='com'><span id='comhead'>";
			result += "<div class='nickname'><a id='nick"+n1+"' class='name' href='javascript:void(0);' onclick='ALL_userdata("+n2+");'>"+ n3 +"</a>";

			if(n14!=0){
				result += "<span>⇒"+"<a href='javascript:void(0);' class='name_c' onclick='ALL_userdata("+n15+");'>"+ n16 +"</a></span></div>";
			}else{
				result += "</div>";
			}
			result +="<div id='icons'>";
			if(n2==gl_owner_id){
				result += "<a id='trash_a' class='delMsg' href='javascript:void(0);' onclick='return delMsg("+n1+")'><img id='trash' src='./images/trash.png' alt='削除' width='20' height='20'></a>";
			}
			if((n15==gl_owner_id)&&(n2!=gl_owner_id)){
				result += "<a id='ret_msg' class='retmsg' href='javascript:void(0);' onclick='return retMsg("+n14+","+n2+","+n17+")'>返</a>";
			}
			if((n5=="null") || (n5=="")){
			}else{
				result += "<a id='camera_a' href='."+n5+"' title='' class='thickbox' onclick='return thickbox(this);'><img id='camera' src='./images/camera.png' alt='添付' width='20' height='20'></a>";
			}
			result +="</div>";
			result +="<div id='userMsg"+n1+"' class='userMsg'>"+ n4 + "</div>";

			if(n14!=0){
				result += "<div id='postedat"+n1+"' class='postedat'>"+date_chg(n6)+"</div><a class='userComent' href='javascript:void(0)' onclick='L_XML_MSG_c("+n14+","+n1+")'>ログ</a>";
			}else{
				result += "<div id='postedat"+n1+"' class='postedat'>"+date_chg(n6)+"</div><a class='userComent' href='javascript:void(0)' onclick='L_XML_MSG("+n1+")'>ログ("+n13+")</a>";
			}
			result += "</span></div></div>";
			result += "<div id='baby_msg"+ n1 +"' class='coment' style='display:none;'></div>";
		}
	}else{
		result += "<div id='msgcontent_non' class='msgcontent'>未投稿</div>";
	}
	pager_c(totalcount_c,gl_now_page_c,gl_now_pagesize_c,5);

	return result;
}

/****************************************************************
* 機　能： ﾌｫﾛｰﾘｽﾄ表示
* 引　数： data：json形式、x：表示行数、y：表示列数,type：表示ﾘｽﾄ指定
* 戻り値： result：HTML形式
****************************************************************/
function parseUP(data,x,y,type) {
	var header_coment="";
	if(type==0){
		header_coment=" id='h_alluser'>最近つぶやいた人";
	}else if(type==1){
		header_coment=" id='h_followuser'>フォローしている<a href='javascript:void(0);' onclick='follow_change("+gl_user_id+",1)'><img class='rev' src='./images/icon/change.png' alt='Reverse'/></a>";
	if(data.users[0].num_rows>20){
			header_coment+= "<a href='javascript:void(0);' onclick='add_list(1,"+data.users[0].num_rows+")'><img class='rev' src='./images/icon/down.png' alt='DOWN'/></a>";
		}
	}else if(type==2){
		header_coment=" id='h_followeruser'>フォローされている<a href='javascript:void(0);' onclick='follow_change("+gl_user_id+",0)'><img class='rev' src='./images/icon/change.png' alt='Reverse'/></a>";
		if(data.users[0].num_rows>20){
			header_coment+= "<a href='javascript:void(0);' onclick='add_list(2,"+data.users[0].num_rows+")'><img class='rev' src='./images/icon/down.png' alt='DOWN'/></a>";
		}
	}else if(type==3){
		header_coment=" id='h_realuser'>リアルフレンズ";
		if(data.users[0].num_rows>12){
			header_coment+= "<a href='javascript:void(0);' onclick='add_list(3,"+data.users[0].num_rows+")'><img class='rev' src='./images/icon/down.png' alt='DOWN'/></a>";
		}
	}else if(type==4){
		header_coment=" id='h_canuser'>ブロックリスト";
/*		if(data.users[0].num_rows>20){
			header_coment+= "<a href='javascript:void(0);' onclick='add_list(4,"+data.users[0].num_rows+")'><img class='rev' src='./images/icon/down.png' alt='DOWN'/></a>";
		}*/
	}else if(type==5){
		header_coment=" id='h_user'>リアフレ承認依頼";
/*		if(data.users[0].num_rows>20){
			header_coment+= "<a href='javascript:void(0);' onclick='add_list(5,"+data.users[0].num_rows+")'><img class='rev' src='./images/icon/down.png' alt='DOWN'/></a>";
		}*/
	}else if(type==6){
		header_coment=" id='h_user'>新フォロー";
/*		if(data.users[0].num_rows>20){
			header_coment+= "<a href='javascript:void(0);' onclick='add_list(6,"+data.users[0].num_rows+")'><img class='rev' src='./images/icon/down.png' alt='DOWN'/></a>";
		}*/
	}


	var width_per=100/y;

	var result = "<h1 id='uList_h'><span"+header_coment+"</span></h1><div class='uList'>";
	result += "<table cellspacing='1'>";
	var z=0;
	var v=0;

	for ( var i = 0; i < x; i++) {
		result += "<tr>";
		for(var j=0; j < y; j++){
			//非会員ｱｸｾｽ時のﾕｰｻﾞｰﾘｽﾄ取得が正規に動作するまで暫定対応
			if(!data.msg){
				if(data.users.length<=v){
					var n2 = null;
					var n3 = null;
					var n7 = null;
					var n8 = null;
					var n9 = null;
					var n10 = null;
					var n11 = null;
				}else{
					var n2 = data.users[v].user_id;
					var n3 = data.users[v].user_nickname;
					var n7 = data.users[v].imagedir_flg;
					var n8 = data.users[v].user_sex;
					var n9 = data.users[v].image_path;
					var n10 = data.users[v].user_imagedir2;
					var n11 = data.users[v].user_imagedir3;
				}
			}else{
				if(data.msg.length<=v){
					var n2 = null;
					var n3 = null;
					var n7 = null;
					var n8 = null;
					var n9 = null;
					var n10 = null;
					var n11 = null;
				}else{
					var n2 = data.msg[v].user_id;
					var n3 = data.msg[v].user_nickname;
					var n7 = data.msg[v].imagedir_flg;
					var n8 = data.msg[v].user_sex;
					var n9 = data.msg[v].image_path;
					var n10 = data.msg[v].user_imagedir2;
					var n11 = data.msg[v].user_imagedir3;
				}
			}

//			result += "<td width='"+width_per+"%' style='text-align:center; vertical-align:top; ";
			result += "<td style='text-align:center; vertical-align:top; ";

			if(j==3){
				if(n3){
					result += "' >";
				}else{
					result += "' height='60px' >";
				}
			}else{
				if(n3){
					result += "border-right:solid 1px #ffcccc;' >";
				}else{
					result += "border-right:solid 1px #ffcccc;' height='60px'>";
				}
			}

			if(n3){
				result+="<a href='javascript:void(0);' onclick='ALL_userdata("+n2+");'>";
				if(n7 == 0){
					result += "<img src='http://av.mmagic.jp/hamatta.jp/images/"+zeroume(n2,8)+"_s.gif?gender="+n8+"' align='middle' width='40' height='40' />";
				}else if(n7 == 1){
					result += "<img src='./servlet/ImageServlet?img="+n9+"&max_w=40&max_h=40' align='middle' width='40' height='40' style='width: 45px; margin-top: 2px; margin-left: 2px; margin-right: 2px; margin-bottom: 2px; vertical-align: top' border='0'>";
				}else if(n7 == 2){
					result += "<img src='./servlet/ImageServlet?img="+n9+"&max_w=40&max_h=40' align='middle' width='40' height='40' style='width: 45px; margin-top: 2px; margin-left: 2px; margin-right: 2px; margin-bottom: 2px; vertical-align: top' border='0'>";

				}else{
					result += "<img src='./servlet/ImageServlet?img="+n9+"&max_w=40&max_h=40' align='middle' width='40' height='40' style='width: 45px; margin-top: 2px; margin-left: 2px; margin-right: 2px; margin-bottom: 2px; vertical-align: top' border='0'>";
				}
				result += "</a>";
				result += "<br /><a href='javascript:void(0);' onclick='ALL_userdata("+n2+");'>"+n3.substr(0,4)+"</a></td>";
			}else{
				result += "</td>";
			}
			v = v+1;

		}
		result += "</tr>";

	}
	result += "</table></div>";
	return result;
}

function add_list(type,maxrows){
	var myparam		= "?user_id="+gl_owner_id;
	var yourparam	= "?user_id="+gl_user_id;
	switch(type){
		case 0://最近つぶやいた人
			break;
		case 1://フォローしている
			var url = "./servlet/APIFollow";
			url += yourparam+"&page="+0+"&page_size="+maxrows;
			//jQueryで非同期通信を行う
			jQuery.ajax({
				url : url,
				type : "post",
				dataType: "json",
				success:followaddlist
				});
			break;
		case 2://フォローされている
			var url = "./servlet/APIFollower";
			url += yourparam+"&page="+0+"&page_size="+maxrows;
			//jQueryで非同期通信を行う
			jQuery.ajax({
				url : url,
				type : "post",
				dataType: "json",
				success:followeraddlist
				});
			break;
		case 3://リアルフレンズ
			var url = "./servlet/APIRealFriend";
			url += yourparam+"&page="+0+"&page_size="+maxrows;
			//jQueryで非同期通信を行う
			jQuery.ajax({
				url : url,
				type : "post",
				dataType: "json",
				success:realaddlist
				});
			break;
		case 4://ブロックリスト
			break;
		case 5://リアフレ承認依頼
			break;
		case 6://新フォロー
			break;
	}
}
/*フォローしているにリスト追加*/
function followaddlist(data){
	var m_rows = Math.ceil(data.users[0].num_rows/4)
	$("#to_follow").html(parseUP(data,m_rows,4,1));
	$("#h_followuser").html("フォローしている<a href='javascript:void(0);' onclick='follow_change("+gl_user_id+",1)'><img class='rev' src='./images/icon/change.png' alt='Reverse'/></a><a href='javascript:void(0);' onclick='L_XML_UFLT("+gl_user_id+")'><img class='rev' src='./images/icon/up.png' alt='UP'/></a>");
}
/*フォローされているにリスト追加*/
function followeraddlist(data){
	var m_rows = Math.ceil(data.users[0].num_rows/4)
	$("#to_follow").html(parseUP(data,m_rows,4,2));
	$("#h_followeruser").html("フォローされている<a href='javascript:void(0);' onclick='follow_change("+gl_user_id+",0)'><img class='rev' src='./images/icon/change.png' alt='Reverse'/></a><a href='javascript:void(0);' onclick='L_XML_UFLM("+gl_user_id+")'><img class='rev' src='./images/icon/up.png' alt='UP'/></a>");
}
/*リアルフレンズリスト追加*/
function realaddlist(data){
	var m_rows = Math.ceil(data.users[0].num_rows/4)
	$("#me_follow").html(parseUP(data,m_rows,4,3));
	$("#h_realuser").html("リアルフレンズ<a href='javascript:void(0);' onclick='L_XML_UFLR("+gl_user_id+")'><img class='rev' src='./images/icon/up.png' alt='UP'/></a>");
}


//プロフィールデータ表示用
/****************************************************************
* 機　能： プロフィールデータ表示(一般)
* 引　数： data：json形式
* 戻り値： result：HTML形式
****************************************************************/
function parseUD(data) {
	//性別設定
	if(data.users[0].user_sex==1){
		var sex="男性";
	}else{
		var sex="女性";
	}
	//血液型設定
	if(data.users[0].user_blood_type==0){
		var blood="Ａ型";
	}else if(user_blood_type==1){
		var blood="Ｂ型";
	}else if(user_blood_type==2){
		var blood="Ｏ型";
	}else if(user_blood_type==3){
		var blood="ＡＢ型";
	}else{
		var blood="Ａ型";
	}

	var result = "<div id='userInfo'>";
	result += "<div id='username'>";
	if(data.users[0].ofc_flg!=10000){
		result+=data.users[0].user_nickname + "さん<br />("+data.users[0].num_rows+")";
	}else{
		result+="ＲＳＳフィード<br />"+data.users[0].user_nickname;
	}
	result += "</div><div id='userimg'>";
		//プロフィール画像選択
	result += "<a href='javascript:void(0)'>";
	if(data.users[0].imagedir_flg == 0){
		result += "<img src='http://av.mmagic.jp/hamatta.jp/images/"+zeroume(data.users[0].user_id,8)+".gif?gender="+data.users[0].user_sex+"'>";
	}else if(data.users[0].imagedir_flg == 1){
		result += "<img src='./servlet/ImageServlet?img="+data.users[0].user_imagedir1+"&max_w=180'>";
	}else if(data.users[0].imagedir_flg == 2){
		result += "<img src='./servlet/ImageServlet?img="+data.users[0].user_imagedir2+"&max_w=180'>";
	}else{
		result += "<img src='./servlet/ImageServlet?img="+data.users[0].user_imagedir3+"&max_w=180'>";
	}
	result += "</a></div>";
/*	result += "</div>";*/

	result += "<div id='userInfo_c'>";
	result += "<div id='userlinks'>";
	if(data.users[0].ofc_flg != 10000){
		result += "<p class='userinfoh'><span class='userinfo_h'>性別</span>："+sex+"</p>";
		result += "<p class='userinfoh'><span class='userinfo_h'>血液型</span>："+blood+"</p>";
		result += "<p class='userinfoh'><span class='userinfo_h'>職業</span>：";
		if((data.users[0].user_job=="")||(data.users[0].user_job=="0")){
			result+="未設定</p>";
		}else{
			result+=data.users[0].job_name+"</p>";
		}
		result += "<p class='userinfoh'><span class='userinfo_h'>居住地</span>：";
		if((data.users[0].user_city=="")||(data.users[0].user_city=="0")){
			result+="未設定</p>";
		}else{
			result+=data.users[0].city_name+"</p>";
		}
		result += "<p class='userinfoh'><span class='userinfo_h'>自己紹介</span>：";

		if((data.users[0].user_introduction=="")||(data.users[0].user_introduction=="null")){
			result+="未設定</p>";
		}else{
			result+=data.users[0].user_introduction+"</p>";
		}
	}else{
		result += "ＲＳＳ概要："+data.users[0].user_introduction;
	}
	result += "</div>";
	result += "</div>";
	result += "</div>";

	if(data.users[0].ofc_flg != 10000){
		if(!document.getElementById("blogEntry_c")){
			//追加先のdivタグを配置先に生成
			var Add_comment_head = document.createElement("div");
			Add_comment_head.setAttribute("id", "blogEntry_c");
			document.getElementById("center_p").appendChild(Add_comment_head);
		}
		if(!document.getElementById("pageId_c")){
			//追加先のdivタグを配置先に生成
			var Add_comment_head = document.createElement("h1");
			Add_comment_head.setAttribute("id", "pageId_c");
			var Add_span_head = document.createElement("span");
			Add_span_head.setAttribute("id", "centerhead_c");
			var Add_span_pre = document.createElement("span");
			Add_span_pre.setAttribute("id", "pre_c");
			var Add_span_next = document.createElement("span");
			Add_span_next.setAttribute("id", "next_c");
			document.getElementById("blogEntry_c").appendChild(Add_comment_head);
			document.getElementById("pageId_c").appendChild(Add_span_pre);
			document.getElementById("pageId_c").appendChild(Add_span_next);
			document.getElementById("pageId_c").appendChild(Add_span_head);
		}

		if(!document.getElementById("result_c")){
			//追加先のdivタグを配置先に生成
			var Add_comment_list = document.createElement("div");
			Add_comment_list.setAttribute("id", "result_c");
			document.getElementById("blogEntry_c").appendChild(Add_comment_list);
		}
	}
	if(data.users[0].ofc_flg != 10000){
		$("#centerhead").text(data.users[0].user_nickname+"さんのつぶやき");
		$("#centerhead_c").text(data.users[0].user_nickname+"さんのコメント");
	}else{
		$("#centerhead").text("ＲＳＳ："+data.users[0].user_nickname);
	}
	document.getElementById("view_id").value=200;
	U_loadXMLFile(gl_user_id,0,10,5);
	if(data.users[0].ofc_flg != 10000){
		U_loadXMLFile_c(gl_user_id,0,10,5);
		L_XML_UFLR(gl_user_id,0,12);
		kind=0;
	}else{
		kind=1;
	}
	$("#to_block").attr({style:"display: none;"});
	$("#newfollow").attr({style:"display: none;"});
	return result;
}
//プロフィールデータ表示用(オーナー)
/****************************************************************
* 機　能： プロフィールデータ表示(オーナー)
* 引　数： data：json形式
* 戻り値： result：HTML形式
****************************************************************/
function parseOD(data) {
	var result = "<div id='MuserInfo'>";
	var profresult="";
	//data格納
	var userid				=	data.users[0].user_id;					//ID
	var usernickname		=	data.users[0].user_nickname;			//ﾆｯｸﾈｰﾑ
	var numrows				=	data.users[0].num_rows;					//総つぶやき数
	var usersex				=	data.users[0].user_sex;					//性別
	var userjob				=	data.users[0].user_job;					//職業
	var usercity			=	data.users[0].user_city;				//居住地
	var userbirthday		=	data.users[0].user_birthday;			//生年月日
	var userbloodtype		=	data.users[0].user_blood_type			//血液型
	var userintroduction	=	data.users[0].user_introduction;		//自己紹介
	var authstring			=	data.users[0].auth_string.substr(0,2);	//自己紹介
	var userimgflg			=	parseInt(data.users[0].imagedir_flg);	//Imgフラグ
	var userimgpath			=	"";										//画像パス
	var imgpath1			=	data.users[0].user_imagedir1;			//パス1
	var imgpath2			=	data.users[0].user_imagedir2;			//パス2
	var imgpath3			=	data.users[0].user_imagedir3;			//パス3

	switch(userimgflg){
		case 1:
			userimgpath	=	data.users[0].user_imagedir1;
			break;
		case 2:
			userimgpath	=	data.users[0].user_imagedir2;
			break;
		case 3:
			userimgpath	=	data.users[0].user_imagedir3;
			break;
		default :
			userimgpath	=	"def";
			break;
	}
	result += "<div class='Musername'><a href='javascript:void(0);' onclick='ALL_userdata("+userid+");'>" +usernickname + "さん</a>("+numrows+")</div>";
	result += "<div id='MuserInfo_c'><a class='userpic' href='javascript:void(0)'>";
	//プロフィール画像選択
	if(userimgflg == 0){
		result += "<img src='http://av.mmagic.jp/hamatta.jp/images/"+zeroume(userid,8)+"_s.gif?gender="+usersex+"'>";
		profresult+="<img class='setpic' src='http://av.mmagic.jp/hamatta.jp/images/"+zeroume(userid,8)+"_s.gif?gender="+usersex+"'>";
	}else{
		result += "<img src='./servlet/ImageServlet?img="+userimgpath+"&max_w=200'>";
		profresult+="<img class='setpic' src='./servlet/ImageServlet?img="+userimgpath+"&max_w=200'>";
	}

	result += "</a><div id='userlinks'>";

	result += "<span><a href='#TB_inline?height=350&width=350&inlineId=userProf' class='thickbox' onclick='return thickbox(this);' >プロフィール編集</a></span>";
	result += "<span><a href='#TB_inline?height=250&width=350&inlineId=userProfpic' class='thickbox' onclick='return thickbox(this);' >画像変更</a></span>";
	result += "<span><a href='javascript:void(0)' onclick='mailbox()'>メールＢＯＸ</a></span><br />";
	result += "</div>";
	if(authstring=="PC"){
		result += "<div id='QR'>携帯からはコチラ<br /><img src='./images/QRcode.png' alt='http://www.hamatta.jp/mobile_login.php'/><br /><a href='mailto:?subject=hamatta%8cg%91%d1%90%dd%92%e8&amp;body=%88%c8%89%ba%82%ccURL%82%c9%83A%83N%83Z%83X%82%b5%82%c4%82%ad%82%be%82%b3%82%a2%81B%0D%0Ahttp%3A//www.hamatta.jp/mobile_login.php'>携帯に転送する</a></div>";
	}
	result += "</div>";
	result += "</div>";
	ownerBlock();//拒否ﾘｽﾄ有無確認用
	ownerReal();//ﾘｱﾌﾚ承認有無確認用
	MTR_job(userjob);
	MTR_city(usercity);

	//prof設定
	$("#pics").html(profresult);
	if(!$("#pichead").html()){
		if((!userimgpath)||(userimgpath=="null")){
			$("#userpics").append("<div id='pichead'><p>保管してある写真：無</p></div><p>写真を登録:<input type='file' id='file_field_name' name='file_field_name' /><input type='hidden' name='image_no' value='1'/><input type='hidden' name='view_id' value='100' /></p>");
		}else{
			var Storage="";
			var picnull = 0;
			if((imgpath3) && (imgpath3!="null")){
				Storage+="<p id='del3' class='pic'><a href='javascript:void(0)' onclick='return setpic(3)'>コレにする</a><br /><span id='pic3'><img src='./servlet/ImageServlet?img="+imgpath3+"&max_w=60'></span><br /><a href='javascript:void(0)' onclick='return delpic(3)'>削除</a></p>";
			}else{
				picnull=3;
			}
			if((imgpath2) && (imgpath2!="null")){
				Storage+="<p id='del2' class='pic'><a href='javascript:void(0)' onclick='return setpic(2)'>コレにする</a><br /><span id='pic2'><img src='./servlet/ImageServlet?img="+imgpath2+"&max_w=60'></span><br /><a href='javascript:void(0)' onclick='return delpic(2)'>削除</a></p>";
			}else{
				picnull=2;
			}
			if((imgpath1) && (imgpath1!="null")){
				Storage+="<p id='del1' class='pic'><a href='javascript:void(0)' onclick='return setpic(1)'>コレにする</a><br /><span id='pic1'><img src='./servlet/ImageServlet?img="+imgpath1+"&max_w=60'></span><br /><a href='javascript:void(0)' onclick='return delpic(1)'>削除</a></p>";
			}else{
				picnull=1;
			}
			if(picnull==0){
				var putpic ="<input type='hidden' name='image_no' value='1'/><input type='hidden' name='view_id' value='100' /></p>";
			}else{
				var putpic ="<input type='hidden' name='image_no' value='"+picnull+"'/><input type='hidden' name='view_id' value='100' /></p>";
			}

			$("#userpics").append("<div id='pichead'><p>保管してある写真：</p>"+Storage+"</div><p>写真を登録:<input type='file' id='file_field_name' name='file_field_name' />"+putpic);
		}
	}
	$("#musrename").val(usernickname);
	$("#muserbirth").val(userbirthday);
	if((userintroduction=="")||(userintroduction=="null")){
		$("#muserintro").val("");
	}else{
		$("#muserintro").val(userintroduction);
	}
	$("#muserblood").html(MTR_blood(userbloodtype));

	return result;
}

function mailbox(){
	page=0;
	pagesize=20;
	//各リストの状態確認
	var param = "?user_id="+gl_owner_id+"&page="+page+"&page_size="+pagesize;
	//新着メール有無確認
	jQuery.ajax({url : "./servlet/APINewMail"+param,type:"post",dataType:"json",success:new_mail_ch});
	//受信メール有無確認
	jQuery.ajax({url : "./servlet/APIReceiveMail"+param,type:"post",dataType:"json",success:receve_mail_ch});
	//送信メール有無確認
	jQuery.ajax({url : "./servlet/APISendMail"+param,type:"post",dataType:"json",success:send_mail_ch});
	//未送信メール有無確認
	jQuery.ajax({url : "./servlet/APIUnsentMail"+param,type:"post",dataType:"json",success:unsend_mail_ch});
	$("#mailbox").toggle('fast');
}
function new_mail_ch(data){
	if(data.mail[0].num_rows==0){$("#e_new").text("0");
	}else{$("#e_new").html("<a href='javascript:void(0)' class='maillink' onclick='show_mail(1)'>"+data.mail[0].num_rows+"</a>");}
}
function receve_mail_ch(data){
	if(data.mail[0].num_rows==0){$("#e_receve").text("0");
	}else{$("#e_receve").html("<a href='javascript:void(0)' class='maillink' onclick='show_mail(2)'>"+data.mail[0].num_rows+"</a>");}
}
function send_mail_ch(data){
	if(data.mail[0].num_rows==0){$("#e_send").text("0");
	}else{$("#e_send").html("<a href='javascript:void(0)' class='maillink' onclick='show_mail(3)'>"+data.mail[0].num_rows+"</a>");}
}
function unsend_mail_ch(data){
	if(data.mail[0].num_rows==0){$("#e_unsend").text("0");
	}else{$("#e_unsend").html("<a href='javascript:void(0)' class='maillink' onclick='show_mail(4)'>"+data.mail[0].num_rows+"</a>");}
}

function show_mail(type){
	page=0;
	pagesize=20;
	//各リストの状態確認
	var param = "?user_id="+gl_owner_id+"&page="+page+"&page_size="+pagesize;
	//暫定　ページャー非表示
	$("#pre a").remove();$("#pre").css({backgroundImage:"url()"});
	$("#next a").remove();$("#next").css({backgroundImage:"url()"});

	switch(type){
		case 1:
			//新着メール有無確認
			jQuery.ajax({url : "./servlet/APINewMail"+param,type:"post",async:false,dataType:"json",success:from_mail_list});
			$("#centerhead").text("新着メール");
		break;
		case 2:
			//受信メール有無確認
			jQuery.ajax({url : "./servlet/APIReceiveMail"+param,type:"post",async:false,dataType:"json",success:from_mail_list});
			$("#centerhead").text("受信メール");
		break;
		case 3:
			//送信メール有無確認
			jQuery.ajax({url : "./servlet/APISendMail"+param,type:"post",async:false,dataType:"json",success:to_mail_list});
			$("#centerhead").text("送信メール");
		break;
		case 4:
			//未送信メール有無確認
			jQuery.ajax({url : "./servlet/APIUnsentMail"+param,type:"post",async:false,dataType:"json",success:to_unmail_list});
			$("#centerhead").text("未送信メール");
		break;

	}

}
function from_mail_list(data){
	var result = "";
	var totalcount=data.mail[0].num_rows;
	if(totalcount!=0){
		for ( var i = 0; i < data.mail.length; i++) {
			var id			= data.mail[i].id;
			var userid		= data.mail[i].user_id;
			var touserid	= data.mail[i].to_user_id;
			var title		= data.mail[i].mail_title;
			var msg			= data.mail[i].mail_contents;
			var postedat	= data.mail[i].posted_at;
			var nickname	= data.mail[i].user_nickname;
			var rows		= data.mail[i].num_rows;

			result += "<div id='mailcontent"+id+"' class='mailcontent'>";
			result += "<div class='mailbg'><span id='mailhead'><div id='mailpostedat'>Date:"+date_chg(postedat)+"</div>";
			result += "<div class='mailaj'>From:<a id='nick"+id+"' class='mailname' href='javascript:void(0);' onclick='ALL_userdata("+id+");'>"+ nickname +"</a></div>";
			result +="<div class='mailtitle'>Sbj:"+ title + "</div>";
			result +="<div id='mailicons'>";
			result += "<a class='delmail' href='javascript:void(0);' onclick='return delMail("+id+")'><img class='mailtrash' src='./images/trash.png' alt='削除' width='20' height='20'></a>";
			result += "<a id='mailopen"+id+"' class='mailmsg' href='javascript:void(0)' onclick='readmail("+id+")'>開</a>";
			result += "<a id='resend"+id+"' class='mailmsg' href='javascript:void(0)' onclick='resendmail("+id+","+userid+",\""+nickname+"\",\""+title+"\")'>返</a>";
			result +="</div>";
			result +="<div id='mailmsg"+id+"' class='mailmsg' style='display:none;'><div class='hr'></div>"+ msg + "</div>";
			result += "</span></div></div>";
		}
	}else{
		result += "<div id='msgcontent_non' class='msgcontent'>メールはありません</div>";
	}

	$("#result").html(result);
}

function readmail(id){
	var tgmail = "#mailmsg"+id;
	var tgopen = "#mailopen"+id;
	jQuery.ajax({url : "./servlet/APIMailRead?user_id="+gl_owner_id+"&id="+id,type:"post"});
	$(tgmail).toggle('fast',
					function()
					{
						if($(tgopen).text()=="開")
						{
							$(tgopen).text("閉");
						}else{
							$(tgopen).text("開");
						}
					}
					);
}
function to_mail_list(data){
	var result = "";
	var totalcount=data.mail[0].num_rows;
	if(totalcount!=0){
		for ( var i = 0; i < data.mail.length; i++) {
			var id			= data.mail[i].id;
			var userid		= data.mail[i].user_id;
			var touserid	= data.mail[i].to_user_id;
			var title		= data.mail[i].mail_title;
			var msg			= data.mail[i].mail_contents;
			var postedat	= data.mail[i].posted_at;
			var nickname	= data.mail[i].user_nickname;
			var rows		= data.mail[i].num_rows;

			result += "<div id='mailcontent"+id+"' class='mailcontent'>";
			result += "<div class='mailbg'><span id='mailhead'><div id='mailpostedat'>Date:"+date_chg(postedat)+"</div>";
			result += "<div class='mailaj'>To:<a id='nick"+id+"' class='mailname' href='javascript:void(0);' onclick='ALL_userdata("+id+");'>"+ nickname +"</a></div>";
			result +="<div class='mailtitle'>Sbj:"+ title + "</div>";
			result +="<div id='mailicons'>";
//			result += "<a class='delmail' href='javascript:void(0);' onclick='return delMail("+id+")'><img class='mailtrash' src='./images/trash.png' alt='削除' width='20' height='20'></a>";
			result += "<a class='mailmsg' href='javascript:void(0)' onclick='readmail("+id+")'>開</a>";
			result +="</div>";
			result +="<div id='mailmsg"+id+"' class='mailmsg' style='display:none;'><div class='hr'></div>"+ msg + "</div>";
			result += "</span></div></div>";
		}
	}else{
		result += "<div id='msgcontent_non' class='msgcontent'>メールはありません</div>";
	}

	$("#result").html(result);
}

function resendmail(id,touserid,tousernickname,mailtitle){
	var pageurl=document.URL+"#TB_inline?height=280&width=330&inlineId=mailform";
	$("#return_id").val(id);
	var retuentitle="RE:"+mailtitle;
	$("#mail_title").val(retuentitle);

	var result = "<option value='";
	result += touserid;
	result += "'>";
	result += tousernickname;
	result += "</option>";
	$("#sendid").html(result);

	tb_show("メール返信", pageurl, false);
}

function delMail(id){
	var tgmail = "#mailcontent"+id;
	jQuery.ajax({url : "./servlet/APIMailDelete?user_id="+gl_owner_id+"&id="+id,type:"post"});
	$(tgmail).remove();
}

function parseUC(data,msgid,p_themeid,p_userid) {
	//ﾛｸﾞｲﾝ状態によってformの表示非表示をコントロールする
	if(conect_chk()>=0){
		var tomsgid=data.msg[0].to_msg_id;
		if(!tomsgid){
			tomsgid=msgid;
		}
		//
/*
    (API) - msg_contents メッセージの内容
    (API) - user_id 投稿者のユーザーID
    (API) - to_user_id 投稿対象のユーザーID
    (API) - to_msg_id 投稿対象のメッセージID
    (API) - theme_id 投稿するテーマのID
*/

		var result = "<div id='p_upper'></div><div id='In_PutMsgBox'><form name='putMsg"+msgid+"'class='inputBoxMsg_form' action='./servlet/APIReplyMsgInsert' onsubmit='return putMsgCom("+msgid+")' method='post'><div class='In_form'><textarea id='In_UserMsg"+msgid+"' class='In_UserMsg' type='text' name='msg_contents' rows='2' cols='40'  value=''></textarea></div><div class='In_sub'><input type='submit' value='&nbsp;&nbsp;ｺﾒﾝﾄUP&nbsp;&nbsp;'><input type='hidden' id='p_msg_id' name='to_msg_id' value='"+tomsgid+"' /><input type='hidden' id='user_id' name='user_id' value='"+gl_owner_id+"' /><input type='hidden' id='to_user_id' name='to_user_id' value='"+p_userid+"' /><input type='hidden' id='theme_id' name='theme_id' value='"+p_themeid+"' /><input type='hidden' id='view_id' name='view_id' value='"+gl_theme_id+"' /></div></form></div>";
	}else{
		var result ="<div id='p_upper'></div>";
	}

	result += "<div id='p_msgcontent"+msgid+"' class='p_msgcontent'></div>";
	if(data.msg[0].num_rows!=0){
		for ( var i = 0; i < data.msg.length; i++) {
			var n1 = data.msg[i].id;
			var n2 = data.msg[i].user_id;
			var n3 = data.msg[i].user_nickname;
			var n4 = data.msg[i].msg_contents;
			var n5 = data.msg[i].msg_image_path;
			var n6 = data.msg[i].posted_at;
			var n7 = data.msg[i].imagedir_flg;
			var n8 = data.msg[i].user_sex;
			var n9 = data.msg[i].user_imagedir1;
			var n10 = data.msg[i].user_imagedir2;
			var n11 = data.msg[i].user_imagedir3;
			var tousernickname=data.msg[i].to_user_nickname;
			var touserid=data.msg[i].to_user_id;

			result += "<p id='dashr'></p>";

			result += "<div id='msgcontent"+i+"' class='c_coment'>";
//			result += "<p class='babycom'><span>";
			result += "<div class='babycom'>";

			//表示記事オーナーが自分の場合削除を表示する
			if(n2==gl_owner_id){
				result += "<a class='delMsg' href='javascript:void(0);' onclick='return delMsg("+n1+")'><img id='trash' src='./images/trash.png' alt='削除' width='15' height='15'></a>";
			}
			if((touserid==gl_owner_id)&&(n2!=gl_owner_id)){
				result += "<a id='ret_msg' class='retmsg' href='javascript:void(0);' onclick='return retMsg("+msgid+","+n2+","+p_themeid+")'>返</a>";
			}

			result += "<div class='nickname'><a href='javascript:void(0);' onclick='ALL_userdata("+n2+");'>"+ n3 +"</a>⇒<a href='javascript:void(0);' onclick='ALL_userdata("+touserid+");'>"+ tousernickname +"</a></div><div class='userMsg'>"+ n4 + "</div>";
//			result += "<div class='postedat'>"+date_chg(n6)+"</div></span></p>";
			result += "<div class='postedat'>"+date_chg(n6)+"</div></div>";
			result += "</div>";
		}
	}
	result += "<div id='p_bottom'></div>";
	return result;
}



/****************************************************************
* 機　能： ひとりごとput
* 引　数： ひとりごとFORM
* 戻り値： なし
****************************************************************/
function putMsg() {
		var err="";
	if($("#msg_contents").val().length<=0){
		err+="つぶやきが未入力です。"
	}else if($("#msg_contents").val().length>150){
		err+="つぶやきが１５０文字以上です。"
	}
	if(err!=""){
		$("#msgerr").text(err)
					.css({display:"block"})
					.css("color","red");
		return false;
	}else{
		return true;
	}

}
/****************************************************************
* 機　能： ひとりごとdelete
* 引　数： msg_id
* 戻り値： なし
****************************************************************/
function delMsg(msg_id) {
	//入力メッセージ取得
	var delmsg=document.getElementById("userMsg"+msg_id).innerHTML;

	var chkselect=confirm(delmsg+"\n上記を削除します。よろしいですか？");

	if(chkselect==true){
		var params = "msg_id=" + msg_id + "&user_id=" + gl_owner_id;
		var url = "./servlet/APIMsgDelete";
		url += "?"+params;

		//jQueryで同期通信を行う
		jQuery.ajax({
			url : url,
			type : "post",
			dataType: "json",
			async: false,
			success:function(data){
				if(gl_theme_id>=100){
					TopChatMsg(gl_owner_id,gl_now_page,gl_now_pagesize);
				}else{
					loadXMLFile(gl_now_page,gl_now_pagesize);
				}
			}
		});
	}else{
		return false;
	}
}
/****************************************************************
* 機　能： コメントput
* 引　数： コメントFORM
* 戻り値： なし
****************************************************************/
function putMsgCom(formid) {
	//入力メッセージ取得
//	var u_msg = obj.In_UserMsg.value;
	//選択テーマ取得
//	var p_id = obj.p_msg_id.value;
	var err="";
	if($("#In_UserMsg").val()==""){
		err="コメントが未入力です。";
	}

	if(err!=""){
		alert(err);
		return false;
	}else{
		return true;
	}
/*
    (API) - msg_contents メッセージの内容
    (API) - user_id 投稿者のユーザーID
    (API) - to_user_id 投稿対象のユーザーID
    (API) - to_msg_id 投稿対象のメッセージID
    (API) - theme_id 投稿するテーマのID
	var params = "msg_contents=" + u_msg + "&user_id=" + gl_owner_id + "&to_user_id=" + puser_id + "&to_msg_id=" + p_id + "&theme_id=" + theme_id;
	var url = "./servlet/APIReplyMsgInsert";
	url += "?"+params;
	//jQueryで同期通信を行う
	jQuery.ajax({
		url : url,
		type : "post",
		dataType: "json",
		async: false,
		contentType: "application/x-www-form-urlencoded; charset=UTF-8",
		success:function(){
		},
		error:function(){
		}
	});
*/
}

/****************************************************************
* 機　能： 改行コードの削除
* 引　数： 文言
* 戻り値： 改行コードなしの文言
****************************************************************/
function DeleteLineFeed(myLen) {
	var newLen = '';
	for(var i=0; i<myLen.length; i++){
		text = escape(myLen.substring(i, i+1));
		if(text != "%0D" && text != "%0A"){
			newLen += myLen.substring(i, i+1);
		}
	}
	return newLen;
}

/****************************************************************
* 機　能： Ｌｅｆｔパディング
* 引　数： num:値　len:パディング桁数
* 戻り値： 0でLpadした値
****************************************************************/
function zeroume(num,len){
	var tmp=""+num;
	while(tmp.length<len){
		tmp="0"+tmp;
		}
	return tmp;
}
/****************************************************************
* 機　能： マウスイベント(ＯＮ)
* 引　数：
* 戻り値：
****************************************************************/
function mson(){
}
/****************************************************************
* 機　能： マウスイベント(ＯＦＦ)
* 引　数：
* 戻り値：
****************************************************************/
function msof(){
}

/****************************************************************
* 機　能： テーマ変換(DBより取得したテーマ名をテーマタグIDに割当)
* 引　数： str：テーマ名(※注：DBのテーマ名とPC表示のテーマ名は異なる為注意すること)
* 戻り値： res(テーマタグID)
****************************************************************/
function theme(str){
	switch(str){
		case '日常': var res="Display_JS(\"no1\")";break;//日常
		case '天気': var res="Display_JS(\"no2\")";break;//天気
		case '質問': var res="Display_JS(\"no3\")";break;//質問
		case '音楽・歌手': var res="Display_JS(\"no4\")";break;//音楽・歌手
		case 'ＴＶ・映画': var res="Display_JS(\"no5\")";break;//ＴＶ・映画
		case 'ゲーム': var res="Display_JS(\"no6\")";break;//ゲーム
		case '通学・通勤': var res="Display_JS(\"no7\")";break;//通学・通勤
		case 'ﾏﾝｶﾞ・ｱﾆﾒ': var res="Display_JS(\"no8\")";break;//ﾏﾝｶﾞ・ｱﾆﾒ
		case '芸能・笑い': var res="Display_JS(\"no9\")";break;//芸能・笑い
		case 'ﾏﾏ・子育て': var res="Display_JS(\"no10\")";break;//ﾏﾏ・子育て
		case '恋愛': var res="Display_JS(\"no11\")";break;//恋愛
		case '悩み': var res="Display_JS(\"no12\")";break;//悩み
		case '学校': var res="Display_JS(\"no13\")";break;//学校
		case '仕事': var res="Display_JS(\"no14\")";break;//仕事
		case 'ｼｮｯﾋﾟﾝｸﾞ': var res="Display_JS(\"no15\")";break;//欲しいもの
		case '趣味': var res="Display_JS(\"no16\")";break;//趣味
		case 'スポーツ': var res="Display_JS(\"no17\")";break;//スポーツ
		case 'ペット': var res="Display_JS(\"no18\")";break;//ペット
		case 'ダイエット': var res="Display_JS(\"no19\")";break;//ダイエット
		case 'おでかけ': var res="Display_JS(\"no20\")";break;//おでかけ
		case 'ｺﾞﾊﾝ・ｸﾞﾙﾒ': var res="Display_JS(\"no21\")";break;//ご飯・グルメ
		case 'ギャンブル': var res="Display_JS(\"no22\")";break;//ギャンブル
	}
	return res;
}
/****************************************************************
* 機　能： ページャー
* 引　数： t_count:総件数、n_page：現在のﾍﾟｰｼﾞ、n_pagesize：現在のページサイズ
*		： type：1=テーマ別(loadXMLFile),2=マイひとりごと(U_loadXMLFile)
*		：       3=フォローしている人のなぅ(TopChatMsg)
* 戻り値： ページャー
※別途typeを引数に設定し、typeによってページャーを振り分けるようにする。
****************************************************************/
function pager(t_count,n_page,n_pagesize,type){
	var totalpage=t_count/n_pagesize;
	var next;
	var pre;
	$("#pre a").remove();$("#pre").css({backgroundImage:"url()"});
	$("#next a").remove();$("#next").css({backgroundImage:"url()"});
	if(n_page>0)
	{
		if(type==1){
			pre="loadXMLFile("+(n_page-1)+","+n_pagesize+");";
		}else if(type==2) {
			pre="U_loadXMLFile("+gl_user_id+","+(n_page-1)+","+n_pagesize+");";
		}else if(type==3) {
			pre="TopChatMsg("+gl_owner_id+","+(n_page-1)+","+n_pagesize+");";
		}else if(type==4) {
			pre="TopBlogMsg("+gl_owner_id+","+(n_page-1)+","+n_pagesize+");";
		}else if(type==5) {
			pre="U_loadXMLFile("+gl_user_id+","+(n_page-1)+","+n_pagesize+","+5+");";
		}
		//配置先の先頭のノードを取得
		var Add_first_nodes = document.getElementById("centerhead");

		var Add_pre_span = document.getElementById("pre");
		var Add_pre_Button = document.createElement("a");


		Add_pre_Button.setAttribute("id", "pageIdpre");
		Add_pre_Button.setAttribute("href", "#");
		Add_pre_span.appendChild(Add_pre_Button);
		document.getElementById("pageIdpre").innerHTML="前へ";
		$("#pre").css({backgroundImage:"url(./images/icon/left.png)"});
		$('#pageIdpre').click(function(e){
			e.preventDefault();
			if(type==1){
				loadXMLFile((n_page-1),n_pagesize);
			}else if(type==2) {
				U_loadXMLFile(gl_user_id,(n_page-1),n_pagesize);
			}else if(type==3) {
				TopChatMsg(gl_owner_id,(n_page-1),n_pagesize);
			}else if(type==4) {
				TopBlogMsg(gl_owner_id,(n_page-1),n_pagesize);
			}else if(type==5) {
				U_loadXMLFile(gl_user_id,(n_page-1),n_pagesize,5);
			}

		});
	}
	if(n_page<=(Math.floor(totalpage)-1))
	{
		if(type==1){
			next="loadXMLFile("+(n_page+1)+","+n_pagesize+");";
		}else if(type==2) {
			next="U_loadXMLFile("+gl_user_id+","+(n_page+1)+","+n_pagesize+");";
		}else if(type==3) {
			next="TopChatMsg("+gl_owner_id+","+(n_page+1)+","+n_pagesize+");";
		}else if(type==4) {
			next="TopBlogMsg("+gl_owner_id+","+(n_page+1)+","+n_pagesize+");";
		}else if(type==5) {
			next="U_loadXMLFile("+gl_user_id+","+(n_page+1)+","+n_pagesize+","+5+");";
		}
		//配置先の先頭のノードを取得
		var Add_first_nodes = document.getElementById("centerhead");
		var Add_next_span;
		if(!document.getElementById("next")){
			//追加先のdivタグを配置先に生成
			Add_next_span = document.createElement("span");
			Add_next_span.setAttribute("id", "next");
		}else{
			Add_next_span = document.getElementById("next");
		}
		var Add_next_Button = document.createElement("a");
		Add_next_Button.setAttribute("id", "pageIdnext");
		Add_next_Button.setAttribute("href", "#");
		Add_next_span.appendChild(Add_next_Button);
		document.getElementById("pageIdnext").innerHTML="次へ";
		$("#next").css({backgroundImage:"url(./images/icon/right.png)"});
		$('#pageIdnext').click(function(e){
			e.preventDefault();
			if(type==1){
				loadXMLFile((n_page+1),n_pagesize);
			}else if(type==2) {
				U_loadXMLFile(gl_user_id,(n_page+1),n_pagesize);
			}else if(type==3) {
				TopChatMsg(gl_owner_id,(n_page+1),n_pagesize);
			}else if(type==4) {
				TopBlogMsg(gl_owner_id,(n_page+1),n_pagesize);
			}else if(type==5) {
				U_loadXMLFile(gl_user_id,(n_page+1),n_pagesize,5);
			}
		});
	}
}
/****************************************************************
* 機　能： ページャー
* 引　数： t_count:総件数、n_page：現在のﾍﾟｰｼﾞ、n_pagesize：現在のページサイズ
*		： type：1=テーマ別(loadXMLFile),2=マイひとりごと(U_loadXMLFile)
*		：       3=フォローしている人のなぅ(TopChatMsg)
* 戻り値： ページャー
※別途typeを引数に設定し、typeによってページャーを振り分けるようにする。
****************************************************************/
function pager_c(t_count,n_page,n_pagesize,type){
	var totalpage=t_count/n_pagesize;
	var next;
	var pre;
	$("#pre_c a").remove();$("#pre_c").css({backgroundImage:"url()"});
	$("#next_c a").remove();$("#next_c").css({backgroundImage:"url()"});
	if(n_page>0)
	{
		pre="U_loadXMLFile_c("+gl_user_id+","+(n_page-1)+","+n_pagesize+","+5+");";
		//配置先の先頭のノードを取得
		var Add_first_nodes = document.getElementById("centerhead_c");

		var Add_pre_span = document.getElementById("pre_c");
		var Add_pre_Button = document.createElement("a");

		Add_pre_Button.setAttribute("id", "pageIdpre_c");
		Add_pre_Button.setAttribute("href", "#");
		Add_pre_span.appendChild(Add_pre_Button);
		document.getElementById("pageIdpre_c").innerHTML="前へ";
		$("#pre_c").css({backgroundImage:"url(./images/icon/left.png)"});
		$('#pageIdpre_c').click(function(e){
		e.preventDefault();
		U_loadXMLFile_c(gl_user_id,(n_page-1),n_pagesize,5);

		});
	}
	if(n_page<=(Math.floor(totalpage)-1))
	{
		next="U_loadXMLFile_c("+gl_user_id+","+(n_page+1)+","+n_pagesize+","+5+");";
		//配置先の先頭のノードを取得
		var Add_first_nodes = document.getElementById("centerhead_c");
		var Add_next_span;
		if(!document.getElementById("next_c")){
			//追加先のdivタグを配置先に生成
			Add_next_span = document.createElement("span");
			Add_next_span.setAttribute("id", "next_c");
		}else{
			Add_next_span = document.getElementById("next_c");
		}
		var Add_next_Button = document.createElement("a");
		Add_next_Button.setAttribute("id", "pageIdnext_c");
		Add_next_Button.setAttribute("href", "#");
		Add_next_span.appendChild(Add_next_Button);
		document.getElementById("pageIdnext_c").innerHTML="次へ";
		$("#next_c").css({backgroundImage:"url(./images/icon/right.png)"});
		$('#pageIdnext_c').click(function(e){
		e.preventDefault();
		U_loadXMLFile_c(gl_user_id,(n_page+1),n_pagesize,5);
		});
	}
}

/****************************************************************
* 機　能： メインテーマ切替
* 引　数： no:テーマセレクタID
* 戻り値：
****************************************************************/
function Display_JS(no){
	//ひとりごとヘッダー格納
	tagObj = document.getElementById("pageId");
	timestop();
	switch(no){
		case 'no1':
			$("#centerhead").text("日常のつぶやき");
			$("#theme_id").val(0);
			gl_theme_id = 0; 	break;//日常
		case 'no2':
			$("#centerhead").text("天気のつぶやき");
			$("#theme_id").val(1);
			gl_theme_id = 1;	break;//天気
		case 'no3':
			$("#centerhead").text("質問のつぶやき");
			$("#theme_id").val(9);
			gl_theme_id = 9;	break;//質問
		case 'no4':
			$("#centerhead").text("音楽のつぶやき");
			$("#theme_id").val(3);
			gl_theme_id = 3;	break;//音楽・歌手
		case 'no5':
			$("#centerhead").text("ＴＶ/映画のつぶやき");
			$("#theme_id").val(2);
			gl_theme_id = 2;	break;//ﾃﾚﾋﾞ・映画
		case 'no6':
			$("#centerhead").text("ゲームのつぶやき");
			$("#theme_id").val(11);
			gl_theme_id = 11;	break;//ゲーム
		case 'no7':
			$("#centerhead").text("通学/通勤のつぶやき");
			$("#theme_id").val(4);
			gl_theme_id = 4;	break;//通学・通勤
		case 'no8':
			$("#centerhead").text("マンガのつぶやき");
			$("#theme_id").val(10);
			gl_theme_id = 10;	break;//ﾏﾝｶﾞ・ｱﾆﾒ
		case 'no9':
			$("#centerhead").text("芸能/笑いのつぶやき");
			$("#theme_id").val(7);
			gl_theme_id = 7;	break;//芸能・笑い
		case 'no10':
			$("#centerhead").text("ママ/子育てのつぶやき");
			$("#theme_id").val(8);
			gl_theme_id = 8;	break;//ﾏﾏ・子育て
		case 'no11':
			$("#centerhead").text("恋愛のつぶやき");
			$("#theme_id").val(5);
			gl_theme_id = 5;	break;//恋愛
		case 'no12':
			$("#centerhead").text("悩みのつぶやき");
			$("#theme_id").val(6);
			gl_theme_id = 6;	break;//悩み
		case 'no13':
			$("#centerhead").text("学校のつぶやき");
			$("#theme_id").val(15);
			gl_theme_id = 15;	break;//学校
		case 'no14':
			$("#centerhead").text("仕事のつぶやき");
			$("#theme_id").val(16);
			gl_theme_id = 16;	break;//仕事
		case 'no15':
			$("#centerhead").text("ショッピングのつぶやき");
			$("#theme_id").val(21);
			gl_theme_id = 21;	break;//欲しいもの
		case 'no16':
			$("#centerhead").text("趣味のつぶやき");
			$("#theme_id").val(14);
			gl_theme_id = 14;	break;//趣味
		case 'no17':
			$("#centerhead").text("スポーツのつぶやき");
			$("#theme_id").val(20);
			gl_theme_id = 20;	break;//スポーツ
		case 'no18':
			$("#centerhead").text("ペットのつぶやき");
			$("#theme_id").val(22);
			gl_theme_id = 22;	break;//ペット
		case 'no19':
			$("#centerhead").text("美容/ダイエットのつぶやき");
			$("#theme_id").val(13);
			gl_theme_id = 13;	break;//ダイエット
		case 'no20':
			$("#centerhead").text("おでかけのつぶやき");
			$("#theme_id").val(18);
			gl_theme_id = 18;	break;//おでかけ
		case 'no21':
			$("#centerhead").text("ゴハン/グルメのつぶやき");
			$("#theme_id").val(12);
			gl_theme_id = 12;	break;//ご飯・グルメ
		case 'no22':
			$("#centerhead").text("ギャンブルのつぶやき");
			$("#theme_id").val(23);
			gl_theme_id = 23;	break;//ギャンブル
		default:
			$("#centerhead").text("日常のつぶやき");
			$("#theme_id").val(0);
			gl_theme_id = 0;	//日常
			break;
	}
	closeparts(1);
	loadXMLFile();
	loadUserListNoIn();
	document.getElementById("view_id").value=gl_theme_id;
	startup(0);
}


/****************************************************************
* 機　能： ログインパスワード忘れopen/close
* 引　数：
* 戻り値：
****************************************************************/
function disp_forget_password(){
	var forgetObj = document.getElementById("forget_password");
	var ret = forgetObj.getAttribute("style", "display");
	if(ret=="display: none;"){
		$("#forget_password").attr({style:"Display:block;"})
	}else{
		$("#forget_password").attr({style:"Display:none;"})
	}

}




/****************************************************************
* 機　能： ログイン
* 引　数： forms
* 戻り値： ﾍﾟｰｼﾞ遷移防止のためfalse
****************************************************************/
function login_ajax(){
	loginF=1;
	//入力ﾒｰﾙｱﾄﾞﾚｽ取得
	var u_mail = $("#user_email").val();
	//入力ﾊﾟｽﾜｰﾄﾞ取得
	var u_pass = $.trim($("#user_password").val());

		upass=CybozuLabs.MD5.calc(u_pass);

	var params = "user_email=" + u_mail + "&user_password=" + upass;
	var url = "./servlet/APIAuth";
	url += "?"+params;
	jQuery.ajax({
		url : url,
		type : "post",
		complete :login_user
		});
	return false;
}
/****************************************************************
* 機　能： ログイン2
* 引　数： forms
* 戻り値： ﾍﾟｰｼﾞ遷移防止のためfalse
****************************************************************/
function login_ajax2(){
	loginF=2;
	//入力ﾒｰﾙｱﾄﾞﾚｽ取得
	var u_mail = $("#user_email2").val();
	//入力ﾊﾟｽﾜｰﾄﾞ取得
	var u_pass = $.trim($("#user_password2").val());

		upass=CybozuLabs.MD5.calc(u_pass);

	var params = "user_email=" + u_mail + "&user_password=" + upass;
	var url = "./servlet/APIAuth";
	url += "?"+params;
	jQuery.ajax({
		url : url,
		type : "post",
		complete :login_user
		});
	return false;

}

/****************************************************************
* 機　能： ログインチェック
* 引　数： httpObj
* 戻り値： 無
****************************************************************/
function login_user(httpObj){
	var errmsg ="";
	if(	loginF==1){
		var disp_login_err = document.getElementById("login_error");
	}else{
		var disp_login_err = document.getElementById("login_error_sub");
	}

	if(httpObj.responseText == -1){
		//-1:変数user_emailが取得不可
		errmsg = "<span class='err'>メールアドレスが未入力です</span>";
	}else if(httpObj.responseText == -2){
		//-2:変数user_passwordが取得不可
		errmsg = "<span class='err'>ﾊﾟｽﾜｰﾄﾞが未入力です</span>";
	}else if(httpObj.responseText == -3){
		//-3:変数user_emailの値を持つユーザーがDBに存在しない
		errmsg = "<span class='err'>一致するメールアドレスが存在しません</span>";
	}else if(httpObj.responseText == -4){
		//-4:user_emailとuser_passwordの組み合わせが正しくない)
		errmsg = "<span class='err'>メールアドレスまたはパスワードが間違っています</span>";
	}

	if(errmsg!=""){
		disp_login_err.innerHTML=errmsg;
	}else{
		login_chk();
	}
}
/****************************************************************
* 機　能： フォローチェック画面表示
* 引　数： 無
* 戻り値： 無
****************************************************************/
function disp_follow(){
	TopChatMsg(gl_owner_id);
	if(document.getElementById("blogEntry_c")){
		var disp_comment = document.getElementById("blogEntry_c");
		var disp_comment_parent = disp_comment.parentNode;
		disp_comment_parent.removeChild(disp_comment);
	}
}
/****************************************************************
* 機　能： マイブログ画面表示
* 引　数： 無
* 戻り値： 無
****************************************************************/
function disp_my(){
	$("#In_PutBox").attr({style:"display: block;"});
	$("#ShowOwnerDATA").attr({style:"display: block;"});
	$("#li_login").attr({style:"display:none;"});
	$("#li_newentry").attr({style:"display:none;"});
	$("#li_logout").attr({style:"display:block;"});
	$("#uList_h").attr({style:"display:none;"});
	$("#uList").attr({style:"display:none;"});
	$("#formselect").attr({style:"display: block;"});
	U_loadXMLFile(gl_owner_id);
	U_loadXMLFile_c(gl_owner_id);
	L_XML_UP(gl_owner_id,1);
	L_XML_UFLR(gl_owner_id,0,12);
}
/****************************************************************
* 機　能： コメ新着画面表示
* 引　数： 無
* 戻り値： 無
****************************************************************/
function disp_new(){
}
/****************************************************************
* 機　能： 日付変換表示
* 引　数： date
* 戻り値： 月日時分or分前
****************************************************************/
function date_chg(date){
	youbi = new Array("日","月","火","水","木","金","土");
	var putdate;
	var datadateObj= new Date(((date.replace("-","/")).replace("-","/")).substr(0,19));
	var datadatemillsec=datadateObj.getTime();

	var dataM=datadateObj.getMonth();
	var dataD=datadateObj.getDate();
	var dataH=datadateObj.getHours();
	var dataMin=datadateObj.getMinutes();
	var dataDay=youbi[datadateObj.getDay()];

	var dateObj = new Date();
	var datemillsec=dateObj.getTime();

	if((datemillsec-datadatemillsec)>(60*60*1000)){
		putdate = (dataM+1)+"月"+dataD+"日　"+dataH+"時"+dataMin+"分";
	}else{
		if((datemillsec-datadatemillsec)>(60*1000)){
			putdate=parseInt((datemillsec-datadatemillsec)/(60*1000))+"分前"
		}else{
			putdate=parseInt(((datemillsec-datadatemillsec)/1000)+1)+"秒前"
		}
	}

	return putdate;
}

function MTR_city(id)
{
	city_id=id;
	var url = "./servlet/APIMdbCity";
	//jQueryで非同期通信を行う
	jQuery.ajax({
		url : url,
		type : "post",
		dataType: "json",
		success:function(data){
			var cnt=data.cities.length;
			var cityStr="";
			for(var i=1; i < cnt; i++){
				cityStr+="<option value='"+i+"' ";

				if(data.cities[i].city_id==city_id){
					cityStr+="selected ";
				}
				cityStr+=">"+data.cities[i].city_name+"</option>";
			}
			$("#musercity").html(cityStr);
		},
		error:errtest
	});

}

function MTR_job(id)
{
	job_id=id;
	var url = "./servlet/APIMdbJob";

	//jQueryで非同期通信を行う
	jQuery.ajax({
		url : url,
		type : "post",
		dataType: "json",
		success:function(data){
			var cnt=data.jobs.length;
			var jobStr="";
			for(var i=1; i < cnt; i++){
				jobStr+="<option value='"+i+"' ";

				if(data.jobs[i].job_id==job_id){
					jobStr+="selected ";
				}
				jobStr+=">"+data.jobs[i].job_name+"</option>";
			}
			$("#muserjob").html(jobStr);
		}
	});
}
function MTR_blood(id)
{
	var bloodStr="";
	if((id=="") || (id=="null") || (id==0)){
		bloodStr="<option selected value='1' >Ａ型</option><option value='2'>Ｂ型</option><option value='3'>Ｏ型</option><option value='4'>AB型</option>";
	}else if(id==1){
		bloodStr="<option selected value='1' >Ａ型</option><option value='2'>Ｂ型</option><option value='3'>Ｏ型</option><option value='4'>AB型</option>";
	}else if(id==2){
		bloodStr="<option value='1' >Ａ型</option><option selected value='2'>Ｂ型</option><option value='3'>Ｏ型</option><option value='4'>AB型</option>";
	}else if(id==3){
		bloodStr="<option value='1' >Ａ型</option><option value='2'>Ｂ型</option><option selected value='3'>Ｏ型</option><option value='4'>AB型</option>";
	}else if(id==4){
		bloodStr="<option value='1' >Ａ型</option><option value='2'>Ｂ型</option><option value='3'>Ｏ型</option><option selected value='4'>AB型</option>";
	}
	return bloodStr;
}


function entry(){
	//入力ﾆｯｸﾈｰﾑ取得
	var u_nickname = $("#dname").val();
	//入力性別取得
	if($("#entryForm input:checked").val()){
		var u_sex = $("#entryForm input:checked").val();
	}else{
		var u_sex="";
	}
	//入力ﾒｰﾙｱﾄﾞﾚｽ取得
	var u_mail = $("#dusermail").val();
	//入力確認ﾒｰﾙｱﾄﾞﾚｽ取得
	var u_mailchk = $("#dusermailchk").val();
	//入力ﾊﾟｽﾜｰﾄﾞ取得
	var u_pass = $("#duserpass").val();
	//入力ﾊﾟｽﾜｰﾄﾞ確認取得
	var u_passchk = $("#duserpasschk").val();

	//入力チェック
	var errmsg ="";
	var errmsghead="<span class='err'>エラー<br />";
	var errmsgfoot="</span>";
	if(u_nickname == ""){
		errmsg += "ID(ﾆｯｸﾈｰﾑ)が未入力です。<br />";
	}
	if(u_sex == ""){
		errmsg += "性別を選択してください。<br />";
	}
	if(u_mail == ""){
		errmsg += "ﾒｰﾙｱﾄﾞﾚｽが未入力です。<br />";
	}
	if(u_mailchk == ""){
		errmsg += "確認用ﾒｰﾙｱﾄﾞﾚｽが未入力です。<br />";
	}
	if(u_pass == ""){
		errmsg += "ﾊﾟｽﾜｰﾄﾞが未入力です。<br />";
	}
	if(u_passchk == ""){
		errmsg += "確認用ﾊﾟｽﾜｰﾄﾞが未入力です。<br />";
	}
	if(u_mail!=u_mailchk){
		errmsg += "ﾒｰﾙｱﾄﾞﾚｽが確認用ﾒｰﾙｱﾄﾞﾚｽが一致しません。再度確認をお願いします。<br />";
	}
	if(u_pass!=u_passchk){
		errmsg += "ﾊﾟｽﾜｰﾄﾞが確認用ﾊﾟｽﾜｰﾄﾞが一致しません。再度確認をお願いします。<br />";
	}
	if(errmsg!=""){
		$("#d_error").html(errmsghead+errmsg+errmsgfoot);
		return false;
	}else{
		var passmd5=CybozuLabs.MD5.calc(document.getElementById("duserpass").value);
		$("#hidepass").val(passmd5);
		alert("仮登録申請が完了しました。\n仮登録完了メールをお待ちください。");
		return true;
	}
}


/*loginにフォーカス*/
function setFocusin(){
	window.document.loginmain.user_email.focus();
}

/********************************************************************************************
START：問合せ用関数
********************************************************************************************/
function contactchk(){
	var errchk="";
	//必須チェック
	if($(".name").val()==""){errchk+="お名前を入力してください。<br />";}
	if($(".cat").val()=="0"){errchk+="お問い合わせのカテゴリーを選択してください。<br />";}
	if($(".mail").val()==""){errchk+="メールアドレスを入力してください。<br />";}
	if($(".con").val()==""){errchk+="お問合せ内容を入力してください。<br />";}
	//エラー入力確認
	if($(".errno").val()=="0"){
		$(".subj").val("0");
	}else if($(".errno").val()=="何度も発生した"){
		$(".subj").val("1");
	}else if($(".errno").val()=="一度だけ発生した"){
		$(".subj").val("2");
	}else if($(".errno").val()=="わからない"){
		$(".subj").val("3");
	}

	if(errchk!=""){
		$(".err").html(errchk);
		return false;
	}else{
		return true;
	}

}
/********************************************************************************************
END：問合せ用関数
********************************************************************************************/
/********************************************************************************************
START：退会用関数
********************************************************************************************/
/*ログイン状態による表示内容切替*/
function cancell(){
	if(conect_chk()>=0){
		$("#cancel_off").css({display:"none"});
		$("#cancel_on").css({display:"block"});
	}else{
		$("#cancel_on").css({display:"none"});
		$("#cancel_off").css({display:"block"});
	}
}
/*入力項目チェック*/
function cancelchk(){
	var errchk="";
	//必須チェック
	if($(".reason").val()=="0"){
		errchk+="退会するきっかけを選択してください。<br />";
	}
	//退会理由詳細未入力対応
	if($(".con").val()==""){
		$(".con").val("特になし");
	}

	if(errchk!=""){
		$(".err").html(errchk);
		return false;
	}else{
		return true;
	}

}
/********************************************************************************************
END：退会用関数
********************************************************************************************/
/********************************************************************************************
START：プロフィール編集用関数
********************************************************************************************/
/*プロフィール写真削除*/
function delpic(no){
	var url = "./servlet/APIUserImageDelete?image_no="+no;
	if(confirm("本当に削除しますか？")){

		//jQueryで非同期通信を行う
		jQuery.ajax({
			url : url,
			type : "post",
			dataType: "json",
			success:function(data){
				$("#del"+no).remove();
			},
			complete:function(){
				// 写真の有無確認
				var params = "user_id=" + gl_user_id;
				var url = "./servlet/APIUser";
				errapi="APIUser";
				url += "?"+params;
				//jQueryで非同期通信を行う
				jQuery.ajax({
					url : url,
					type : "post",
					dataType: "json",
					success:function(data){
						var dir_one=data.users[0].user_imagedir1;
						var dir_two=data.users[0].user_imagedir2;
						var dir_thr=data.users[0].user_imagedir3;
						var dir_fl=data.users[0].imagedir_flg;
						var sex=data.users[0].user_sex;
						if(dir_fl==1){
							if((!dir_one)||(dir_one=="null")){
								setpic(0,1,sex);
							}
						}else if(dir_fl==2){
							if((!dir_two)||(dir_two=="null")){
								setpic(0,1,sex);
							}
						}else if(dir_fl==3){
							if((!dir_thr)||(dir_thr=="null")){
								setpic(0,1,sex);
							}
						}
					},
					error:errtest
				});
			}
		});
	}
	return false;
}
/*プロフィール写真設定*/
function setpic(no,flg,sex){
	var url = "./servlet/APIUserImageChange?image_no="+no;
	if(flg==1){
		//jQueryで非同期通信を行う
		jQuery.ajax({
			url : url,
			type : "post",
			dataType: "json",
			success:function(data){
				$("#pics").html("<img class='setpic' src='http://av.mmagic.jp/hamatta.jp/images/"+zeroume(gl_owner_id,8)+"_s.gif?gender="+sex+"'>");
				$(".userpic").html("<img class='setpic' src='http://av.mmagic.jp/hamatta.jp/images/"+zeroume(gl_owner_id,8)+"_s.gif?gender="+sex+"'>");
				alert("画像を変更しました。");
				tb_remove();
			}});

	}else{
		if(confirm("表示する画像を変更しますか？")){
			$("#pics").html($("#pic"+no).html());
			$(".userpic").html($("#pic"+no).html());

			//jQueryで非同期通信を行う
			jQuery.ajax({
				url : url,
				type : "post",
				dataType: "json",
				success:function(data){
					alert("画像を変更しました。");
					tb_remove();
				}});
		}
	}
	return false;
}
/********************************************************************************************
END：プロフィール編集用関数
********************************************************************************************/

/*別サイズウインドウＯＰＥＮ*/
function OpenWindow(url){
	window.open(url, "添付画像", "width=500,height=400");
	return false;
}

function mailsend(){
	var err ="";
	//入力チェック
	var sendid = $("#sendid").val();
	var title = $("#mail_title").val();
	var contents = $("#mail_contents").val();
	var returnid = $("#return_id").val();

	if(!sendid){
		err+="宛先を選択してください。";
	}
	if(!title){
		err+="件名を入力してください。";
	}
	if(!contents){
		err+="本文を入力してください。";
	}

	if(!returnid){
		$("#return_id").val(0);
	}

	$("#from_user_id").val(gl_owner_id);
	$("#from_user_id").val(gl_owner_id);

	if(err){
		$("#mail_error_sub").text(err);
		return false;
	}else{
		$("#mail_view_id").val(100);
		return true;
	}
}

function retMsg(tomsgid,touserid,themeid){
	var pageurl=document.URL+"#TB_inline?height=200&width=330&inlineId=remsgform";
	$("#remsg_view_id").val(gl_theme_id);//
	$("#remsg_user_id").val(gl_owner_id);//
	$("#remsg_theme_id").val(themeid);//
	$("#remsg_tomsg_id").val(tomsgid);//
	$("#remsg_to_user_id").val(touserid);//
	$("#remsg_contents").text("");//
	tb_show("コメント返信", pageurl, false);
}

function remsgsend(){
	var remsg =$("#remsg_contents").val();
	if(!remsg){
		$("#msg_error_sub").text("返答コメントを入力してください。");
		return false;
	}else{
		return true;
	}

}
/*
id：
type:
section:
hour:
TagName:
Height:
Width:
Title:
*/
function modalShow(TagName,Height,Width,Title){
	var pageurl=document.URL+"#TB_inline?height="+Height+"&width="+Width+"&inlineId="+TagName;
	tb_show(Title, pageurl, false);
}







/*
	MD5
	Copyright (C) 2007 MITSUNARI Shigeo at Cybozu Labs, Inc.
	license:new BSD license
	how to use
	CybozuLabs.MD5.calc(<ascii string>);
	CybozuLabs.MD5.calc(<unicode(UTF16) string>, CybozuLabs.MD5.BY_UTF16);

	ex. CybozuLabs.MD5.calc("abc") == "900150983cd24fb0d6963f7d28e17f72";
*/
var CybozuLabs = {
	MD5 : {
		// for Firefox
		int2hex8_Fx : function(x) {
			return this.int2hex8((x[1] * 65536) + x[0]);
		},

		update_Fx : function(buf, charSize) {
			var aL = this.a_[0];
			var aH = this.a_[1];
			var bL = this.b_[0];
			var bH = this.b_[1];
			var cL = this.c_[0];
			var cH = this.c_[1];
			var dL = this.d_[0];
			var dH = this.d_[1];
			var tmpL0, tmpL1, tmpL2, tmpL3, tmpL4, tmpL5, tmpL6, tmpL7, tmpL8, tmpL9, tmpLa, tmpLb, tmpLc, tmpLd, tmpLe, tmpLf;
			var tmpH0, tmpH1, tmpH2, tmpH3, tmpH4, tmpH5, tmpH6, tmpH7, tmpH8, tmpH9, tmpHa, tmpHb, tmpHc, tmpHd, tmpHe, tmpHf;
			if (charSize == 1) {
				tmpL0 = buf.charCodeAt( 0) | (buf.charCodeAt( 1) << 8); tmpH0 = buf.charCodeAt( 2) | (buf.charCodeAt( 3) << 8);
				tmpL1 = buf.charCodeAt( 4) | (buf.charCodeAt( 5) << 8); tmpH1 = buf.charCodeAt( 6) | (buf.charCodeAt( 7) << 8);
				tmpL2 = buf.charCodeAt( 8) | (buf.charCodeAt( 9) << 8); tmpH2 = buf.charCodeAt(10) | (buf.charCodeAt(11) << 8);
				tmpL3 = buf.charCodeAt(12) | (buf.charCodeAt(13) << 8); tmpH3 = buf.charCodeAt(14) | (buf.charCodeAt(15) << 8);
				tmpL4 = buf.charCodeAt(16) | (buf.charCodeAt(17) << 8); tmpH4 = buf.charCodeAt(18) | (buf.charCodeAt(19) << 8);
				tmpL5 = buf.charCodeAt(20) | (buf.charCodeAt(21) << 8); tmpH5 = buf.charCodeAt(22) | (buf.charCodeAt(23) << 8);
				tmpL6 = buf.charCodeAt(24) | (buf.charCodeAt(25) << 8); tmpH6 = buf.charCodeAt(26) | (buf.charCodeAt(27) << 8);
				tmpL7 = buf.charCodeAt(28) | (buf.charCodeAt(29) << 8); tmpH7 = buf.charCodeAt(30) | (buf.charCodeAt(31) << 8);
				tmpL8 = buf.charCodeAt(32) | (buf.charCodeAt(33) << 8); tmpH8 = buf.charCodeAt(34) | (buf.charCodeAt(35) << 8);
				tmpL9 = buf.charCodeAt(36) | (buf.charCodeAt(37) << 8); tmpH9 = buf.charCodeAt(38) | (buf.charCodeAt(39) << 8);
				tmpLa = buf.charCodeAt(40) | (buf.charCodeAt(41) << 8); tmpHa = buf.charCodeAt(42) | (buf.charCodeAt(43) << 8);
				tmpLb = buf.charCodeAt(44) | (buf.charCodeAt(45) << 8); tmpHb = buf.charCodeAt(46) | (buf.charCodeAt(47) << 8);
				tmpLc = buf.charCodeAt(48) | (buf.charCodeAt(49) << 8); tmpHc = buf.charCodeAt(50) | (buf.charCodeAt(51) << 8);
				tmpLd = buf.charCodeAt(52) | (buf.charCodeAt(53) << 8); tmpHd = buf.charCodeAt(54) | (buf.charCodeAt(55) << 8);
				tmpLe = buf.charCodeAt(56) | (buf.charCodeAt(57) << 8); tmpHe = buf.charCodeAt(58) | (buf.charCodeAt(59) << 8);
				tmpLf = buf.charCodeAt(60) | (buf.charCodeAt(61) << 8); tmpHf = buf.charCodeAt(62) | (buf.charCodeAt(63) << 8);
			} else {
				tmpL0 = buf.charCodeAt( 0); tmpH0 = buf.charCodeAt( 1);
				tmpL1 = buf.charCodeAt( 2); tmpH1 = buf.charCodeAt( 3);
				tmpL2 = buf.charCodeAt( 4); tmpH2 = buf.charCodeAt( 5);
				tmpL3 = buf.charCodeAt( 6); tmpH3 = buf.charCodeAt( 7);
				tmpL4 = buf.charCodeAt( 8); tmpH4 = buf.charCodeAt( 9);
				tmpL5 = buf.charCodeAt(10); tmpH5 = buf.charCodeAt(11);
				tmpL6 = buf.charCodeAt(12); tmpH6 = buf.charCodeAt(13);
				tmpL7 = buf.charCodeAt(14); tmpH7 = buf.charCodeAt(15);
				tmpL8 = buf.charCodeAt(16); tmpH8 = buf.charCodeAt(17);
				tmpL9 = buf.charCodeAt(18); tmpH9 = buf.charCodeAt(19);
				tmpLa = buf.charCodeAt(20); tmpHa = buf.charCodeAt(21);
				tmpLb = buf.charCodeAt(22); tmpHb = buf.charCodeAt(23);
				tmpLc = buf.charCodeAt(24); tmpHc = buf.charCodeAt(25);
				tmpLd = buf.charCodeAt(26); tmpHd = buf.charCodeAt(27);
				tmpLe = buf.charCodeAt(28); tmpHe = buf.charCodeAt(29);
				tmpLf = buf.charCodeAt(30); tmpHf = buf.charCodeAt(31);
			}

			var t;
			aL += ((bL & cL) | (~bL & dL)) + tmpL0 + 0xa478; aH += ((bH & cH) | (~bH & dH)) + tmpH0 + 0xd76a;
			aH += aL >> 16;
			aL &= 65535; aH &= 65535;
			t = (aH >>  9) | ((aL <<  7) & 65535); aH = (aL >>  9) | ((aH <<  7) & 65535);
			aL = t + bL; aH += bH; if (aL > 65535) { aL &= 65535; aH++; }
			aH &= 65535;
			dL += ((aL & bL) | (~aL & cL)) + tmpL1 + 0xb756; dH += ((aH & bH) | (~aH & cH)) + tmpH1 + 0xe8c7;
			dH += dL >> 16;
			dL &= 65535; dH &= 65535;
			t = (dH >>  4) | ((dL << 12) & 65535); dH = (dL >>  4) | ((dH << 12) & 65535);
			dL = t + aL; dH += aH; if (dL > 65535) { dL &= 65535; dH++; }
			dH &= 65535;
			cL += ((dL & aL) | (~dL & bL)) + tmpL2 + 0x70db; cH += ((dH & aH) | (~dH & bH)) + tmpH2 + 0x2420;
			cH += cL >> 16;
			cL &= 65535; cH &= 65535;
			t = (cL >> 15) | ((cH <<  1) & 65535); cH = (cH >> 15) | ((cL <<  1) & 65535);
			cL = t + dL; cH += dH; if (cL > 65535) { cL &= 65535; cH++; }
			cH &= 65535;
			bL += ((cL & dL) | (~cL & aL)) + tmpL3 + 0xceee; bH += ((cH & dH) | (~cH & aH)) + tmpH3 + 0xc1bd;
			bH += bL >> 16;
			bL &= 65535; bH &= 65535;
			t = (bL >> 10) | ((bH <<  6) & 65535); bH = (bH >> 10) | ((bL <<  6) & 65535);
			bL = t + cL; bH += cH; if (bL > 65535) { bL &= 65535; bH++; }
			bH &= 65535;
			aL += ((bL & cL) | (~bL & dL)) + tmpL4 + 0x0faf; aH += ((bH & cH) | (~bH & dH)) + tmpH4 + 0xf57c;
			aH += aL >> 16;
			aL &= 65535; aH &= 65535;
			t = (aH >>  9) | ((aL <<  7) & 65535); aH = (aL >>  9) | ((aH <<  7) & 65535);
			aL = t + bL; aH += bH; if (aL > 65535) { aL &= 65535; aH++; }
			aH &= 65535;
			dL += ((aL & bL) | (~aL & cL)) + tmpL5 + 0xc62a; dH += ((aH & bH) | (~aH & cH)) + tmpH5 + 0x4787;
			dH += dL >> 16;
			dL &= 65535; dH &= 65535;
			t = (dH >>  4) | ((dL << 12) & 65535); dH = (dL >>  4) | ((dH << 12) & 65535);
			dL = t + aL; dH += aH; if (dL > 65535) { dL &= 65535; dH++; }
			dH &= 65535;
			cL += ((dL & aL) | (~dL & bL)) + tmpL6 + 0x4613; cH += ((dH & aH) | (~dH & bH)) + tmpH6 + 0xa830;
			cH += cL >> 16;
			cL &= 65535; cH &= 65535;
			t = (cL >> 15) | ((cH <<  1) & 65535); cH = (cH >> 15) | ((cL <<  1) & 65535);
			cL = t + dL; cH += dH; if (cL > 65535) { cL &= 65535; cH++; }
			cH &= 65535;
			bL += ((cL & dL) | (~cL & aL)) + tmpL7 + 0x9501; bH += ((cH & dH) | (~cH & aH)) + tmpH7 + 0xfd46;
			bH += bL >> 16;
			bL &= 65535; bH &= 65535;
			t = (bL >> 10) | ((bH <<  6) & 65535); bH = (bH >> 10) | ((bL <<  6) & 65535);
			bL = t + cL; bH += cH; if (bL > 65535) { bL &= 65535; bH++; }
			bH &= 65535;
			aL += ((bL & cL) | (~bL & dL)) + tmpL8 + 0x98d8; aH += ((bH & cH) | (~bH & dH)) + tmpH8 + 0x6980;
			aH += aL >> 16;
			aL &= 65535; aH &= 65535;
			t = (aH >>  9) | ((aL <<  7) & 65535); aH = (aL >>  9) | ((aH <<  7) & 65535);
			aL = t + bL; aH += bH; if (aL > 65535) { aL &= 65535; aH++; }
			aH &= 65535;
			dL += ((aL & bL) | (~aL & cL)) + tmpL9 + 0xf7af; dH += ((aH & bH) | (~aH & cH)) + tmpH9 + 0x8b44;
			dH += dL >> 16;
			dL &= 65535; dH &= 65535;
			t = (dH >>  4) | ((dL << 12) & 65535); dH = (dL >>  4) | ((dH << 12) & 65535);
			dL = t + aL; dH += aH; if (dL > 65535) { dL &= 65535; dH++; }
			dH &= 65535;
			cL += ((dL & aL) | (~dL & bL)) + tmpLa + 0x5bb1; cH += ((dH & aH) | (~dH & bH)) + tmpHa + 0xffff;
			cH += cL >> 16;
			cL &= 65535; cH &= 65535;
			t = (cL >> 15) | ((cH <<  1) & 65535); cH = (cH >> 15) | ((cL <<  1) & 65535);
			cL = t + dL; cH += dH; if (cL > 65535) { cL &= 65535; cH++; }
			cH &= 65535;
			bL += ((cL & dL) | (~cL & aL)) + tmpLb + 0xd7be; bH += ((cH & dH) | (~cH & aH)) + tmpHb + 0x895c;
			bH += bL >> 16;
			bL &= 65535; bH &= 65535;
			t = (bL >> 10) | ((bH <<  6) & 65535); bH = (bH >> 10) | ((bL <<  6) & 65535);
			bL = t + cL; bH += cH; if (bL > 65535) { bL &= 65535; bH++; }
			bH &= 65535;
			aL += ((bL & cL) | (~bL & dL)) + tmpLc + 0x1122; aH += ((bH & cH) | (~bH & dH)) + tmpHc + 0x6b90;
			aH += aL >> 16;
			aL &= 65535; aH &= 65535;
			t = (aH >>  9) | ((aL <<  7) & 65535); aH = (aL >>  9) | ((aH <<  7) & 65535);
			aL = t + bL; aH += bH; if (aL > 65535) { aL &= 65535; aH++; }
			aH &= 65535;
			dL += ((aL & bL) | (~aL & cL)) + tmpLd + 0x7193; dH += ((aH & bH) | (~aH & cH)) + tmpHd + 0xfd98;
			dH += dL >> 16;
			dL &= 65535; dH &= 65535;
			t = (dH >>  4) | ((dL << 12) & 65535); dH = (dL >>  4) | ((dH << 12) & 65535);
			dL = t + aL; dH += aH; if (dL > 65535) { dL &= 65535; dH++; }
			dH &= 65535;
			cL += ((dL & aL) | (~dL & bL)) + tmpLe + 0x438e; cH += ((dH & aH) | (~dH & bH)) + tmpHe + 0xa679;
			cH += cL >> 16;
			cL &= 65535; cH &= 65535;
			t = (cL >> 15) | ((cH <<  1) & 65535); cH = (cH >> 15) | ((cL <<  1) & 65535);
			cL = t + dL; cH += dH; if (cL > 65535) { cL &= 65535; cH++; }
			cH &= 65535;
			bL += ((cL & dL) | (~cL & aL)) + tmpLf + 0x0821; bH += ((cH & dH) | (~cH & aH)) + tmpHf + 0x49b4;
			bH += bL >> 16;
			bL &= 65535; bH &= 65535;
			t = (bL >> 10) | ((bH <<  6) & 65535); bH = (bH >> 10) | ((bL <<  6) & 65535);
			bL = t + cL; bH += cH; if (bL > 65535) { bL &= 65535; bH++; }
			bH &= 65535;
///
			aL += ((bL & dL) | (cL & ~dL)) + tmpL1 + 0x2562; aH += ((bH & dH) | (cH & ~dH)) + tmpH1 + 0xf61e;
			aH += aL >> 16;
			aL &= 65535; aH &= 65535;
			t = (aH >> 11) | ((aL <<  5) & 65535); aH = (aL >> 11) | ((aH <<  5) & 65535);
			aL = t + bL; aH += bH; if (aL > 65535) { aL &= 65535; aH++; }
			aH &= 65535;
			dL += ((aL & cL) | (bL & ~cL)) + tmpL6 + 0xb340; dH += ((aH & cH) | (bH & ~cH)) + tmpH6 + 0xc040;
			dH += dL >> 16;
			dL &= 65535; dH &= 65535;
			t = (dH >>  7) | ((dL <<  9) & 65535); dH = (dL >>  7) | ((dH <<  9) & 65535);
			dL = t + aL; dH += aH; if (dL > 65535) { dL &= 65535; dH++; }
			dH &= 65535;
			cL += ((dL & bL) | (aL & ~bL)) + tmpLb + 0x5a51; cH += ((dH & bH) | (aH & ~bH)) + tmpHb + 0x265e;
			cH += cL >> 16;
			cL &= 65535; cH &= 65535;
			t = (cH >>  2) | ((cL << 14) & 65535); cH = (cL >>  2) | ((cH << 14) & 65535);
			cL = t + dL; cH += dH; if (cL > 65535) { cL &= 65535; cH++; }
			cH &= 65535;
			bL += ((cL & aL) | (dL & ~aL)) + tmpL0 + 0xc7aa; bH += ((cH & aH) | (dH & ~aH)) + tmpH0 + 0xe9b6;
			bH += bL >> 16;
			bL &= 65535; bH &= 65535;
			t = (bL >> 12) | ((bH <<  4) & 65535); bH = (bH >> 12) | ((bL <<  4) & 65535);
			bL = t + cL; bH += cH; if (bL > 65535) { bL &= 65535; bH++; }
			bH &= 65535;
			aL += ((bL & dL) | (cL & ~dL)) + tmpL5 + 0x105d; aH += ((bH & dH) | (cH & ~dH)) + tmpH5 + 0xd62f;
			aH += aL >> 16;
			aL &= 65535; aH &= 65535;
			t = (aH >> 11) | ((aL <<  5) & 65535); aH = (aL >> 11) | ((aH <<  5) & 65535);
			aL = t + bL; aH += bH; if (aL > 65535) { aL &= 65535; aH++; }
			aH &= 65535;
			dL += ((aL & cL) | (bL & ~cL)) + tmpLa + 0x1453; dH += ((aH & cH) | (bH & ~cH)) + tmpHa + 0x0244;
			dH += dL >> 16;
			dL &= 65535; dH &= 65535;
			t = (dH >>  7) | ((dL <<  9) & 65535); dH = (dL >>  7) | ((dH <<  9) & 65535);
			dL = t + aL; dH += aH; if (dL > 65535) { dL &= 65535; dH++; }
			dH &= 65535;
			cL += ((dL & bL) | (aL & ~bL)) + tmpLf + 0xe681; cH += ((dH & bH) | (aH & ~bH)) + tmpHf + 0xd8a1;
			cH += cL >> 16;
			cL &= 65535; cH &= 65535;
			t = (cH >>  2) | ((cL << 14) & 65535); cH = (cL >>  2) | ((cH << 14) & 65535);
			cL = t + dL; cH += dH; if (cL > 65535) { cL &= 65535; cH++; }
			cH &= 65535;
			bL += ((cL & aL) | (dL & ~aL)) + tmpL4 + 0xfbc8; bH += ((cH & aH) | (dH & ~aH)) + tmpH4 + 0xe7d3;
			bH += bL >> 16;
			bL &= 65535; bH &= 65535;
			t = (bL >> 12) | ((bH <<  4) & 65535); bH = (bH >> 12) | ((bL <<  4) & 65535);
			bL = t + cL; bH += cH; if (bL > 65535) { bL &= 65535; bH++; }
			bH &= 65535;
			aL += ((bL & dL) | (cL & ~dL)) + tmpL9 + 0xcde6; aH += ((bH & dH) | (cH & ~dH)) + tmpH9 + 0x21e1;
			aH += aL >> 16;
			aL &= 65535; aH &= 65535;
			t = (aH >> 11) | ((aL <<  5) & 65535); aH = (aL >> 11) | ((aH <<  5) & 65535);
			aL = t + bL; aH += bH; if (aL > 65535) { aL &= 65535; aH++; }
			aH &= 65535;
			dL += ((aL & cL) | (bL & ~cL)) + tmpLe + 0x07d6; dH += ((aH & cH) | (bH & ~cH)) + tmpHe + 0xc337;
			dH += dL >> 16;
			dL &= 65535; dH &= 65535;
			t = (dH >>  7) | ((dL <<  9) & 65535); dH = (dL >>  7) | ((dH <<  9) & 65535);
			dL = t + aL; dH += aH; if (dL > 65535) { dL &= 65535; dH++; }
			dH &= 65535;
			cL += ((dL & bL) | (aL & ~bL)) + tmpL3 + 0x0d87; cH += ((dH & bH) | (aH & ~bH)) + tmpH3 + 0xf4d5;
			cH += cL >> 16;
			cL &= 65535; cH &= 65535;
			t = (cH >>  2) | ((cL << 14) & 65535); cH = (cL >>  2) | ((cH << 14) & 65535);
			cL = t + dL; cH += dH; if (cL > 65535) { cL &= 65535; cH++; }
			cH &= 65535;
			bL += ((cL & aL) | (dL & ~aL)) + tmpL8 + 0x14ed; bH += ((cH & aH) | (dH & ~aH)) + tmpH8 + 0x455a;
			bH += bL >> 16;
			bL &= 65535; bH &= 65535;
			t = (bL >> 12) | ((bH <<  4) & 65535); bH = (bH >> 12) | ((bL <<  4) & 65535);
			bL = t + cL; bH += cH; if (bL > 65535) { bL &= 65535; bH++; }
			bH &= 65535;
			aL += ((bL & dL) | (cL & ~dL)) + tmpLd + 0xe905; aH += ((bH & dH) | (cH & ~dH)) + tmpHd + 0xa9e3;
			aH += aL >> 16;
			aL &= 65535; aH &= 65535;
			t = (aH >> 11) | ((aL <<  5) & 65535); aH = (aL >> 11) | ((aH <<  5) & 65535);
			aL = t + bL; aH += bH; if (aL > 65535) { aL &= 65535; aH++; }
			aH &= 65535;
			dL += ((aL & cL) | (bL & ~cL)) + tmpL2 + 0xa3f8; dH += ((aH & cH) | (bH & ~cH)) + tmpH2 + 0xfcef;
			dH += dL >> 16;
			dL &= 65535; dH &= 65535;
			t = (dH >>  7) | ((dL <<  9) & 65535); dH = (dL >>  7) | ((dH <<  9) & 65535);
			dL = t + aL; dH += aH; if (dL > 65535) { dL &= 65535; dH++; }
			dH &= 65535;
			cL += ((dL & bL) | (aL & ~bL)) + tmpL7 + 0x02d9; cH += ((dH & bH) | (aH & ~bH)) + tmpH7 + 0x676f;
			cH += cL >> 16;
			cL &= 65535; cH &= 65535;
			t = (cH >>  2) | ((cL << 14) & 65535); cH = (cL >>  2) | ((cH << 14) & 65535);
			cL = t + dL; cH += dH; if (cL > 65535) { cL &= 65535; cH++; }
			cH &= 65535;
			bL += ((cL & aL) | (dL & ~aL)) + tmpLc + 0x4c8a; bH += ((cH & aH) | (dH & ~aH)) + tmpHc + 0x8d2a;
			bH += bL >> 16;
			bL &= 65535; bH &= 65535;
			t = (bL >> 12) | ((bH <<  4) & 65535); bH = (bH >> 12) | ((bL <<  4) & 65535);
			bL = t + cL; bH += cH; if (bL > 65535) { bL &= 65535; bH++; }
			bH &= 65535;
///
			aL += ((bL ^ cL) ^ dL) + tmpL5 + 0x3942; aH += ((bH ^ cH) ^ dH) + tmpH5 + 0xfffa;
			aH += aL >> 16;
			aL &= 65535; aH &= 65535;
			t = (aH >> 12) | ((aL <<  4) & 65535); aH = (aL >> 12) | ((aH <<  4) & 65535);
			aL = t + bL; aH += bH; if (aL > 65535) { aL &= 65535; aH++; }
			aH &= 65535;
			dL += ((aL ^ bL) ^ cL) + tmpL8 + 0xf681; dH += ((aH ^ bH) ^ cH) + tmpH8 + 0x8771;
			dH += dL >> 16;
			dL &= 65535; dH &= 65535;
			t = (dH >>  5) | ((dL << 11) & 65535); dH = (dL >>  5) | ((dH << 11) & 65535);
			dL = t + aL; dH += aH; if (dL > 65535) { dL &= 65535; dH++; }
			dH &= 65535;
			cL += ((dL ^ aL) ^ bL) + tmpLb + 0x6122; cH += ((dH ^ aH) ^ bH) + tmpHb + 0x6d9d;
			cH += cL >> 16;
			cL &= 65535; cH &= 65535;
			t = (cL >> 16) | ((cH <<  0) & 65535); cH = (cH >> 16) | ((cL <<  0) & 65535);
			cL = t + dL; cH += dH; if (cL > 65535) { cL &= 65535; cH++; }
			cH &= 65535;
			bL += ((cL ^ dL) ^ aL) + tmpLe + 0x380c; bH += ((cH ^ dH) ^ aH) + tmpHe + 0xfde5;
			bH += bL >> 16;
			bL &= 65535; bH &= 65535;
			t = (bL >>  9) | ((bH <<  7) & 65535); bH = (bH >>  9) | ((bL <<  7) & 65535);
			bL = t + cL; bH += cH; if (bL > 65535) { bL &= 65535; bH++; }
			bH &= 65535;
			aL += ((bL ^ cL) ^ dL) + tmpL1 + 0xea44; aH += ((bH ^ cH) ^ dH) + tmpH1 + 0xa4be;
			aH += aL >> 16;
			aL &= 65535; aH &= 65535;
			t = (aH >> 12) | ((aL <<  4) & 65535); aH = (aL >> 12) | ((aH <<  4) & 65535);
			aL = t + bL; aH += bH; if (aL > 65535) { aL &= 65535; aH++; }
			aH &= 65535;
			dL += ((aL ^ bL) ^ cL) + tmpL4 + 0xcfa9; dH += ((aH ^ bH) ^ cH) + tmpH4 + 0x4bde;
			dH += dL >> 16;
			dL &= 65535; dH &= 65535;
			t = (dH >>  5) | ((dL << 11) & 65535); dH = (dL >>  5) | ((dH << 11) & 65535);
			dL = t + aL; dH += aH; if (dL > 65535) { dL &= 65535; dH++; }
			dH &= 65535;
			cL += ((dL ^ aL) ^ bL) + tmpL7 + 0x4b60; cH += ((dH ^ aH) ^ bH) + tmpH7 + 0xf6bb;
			cH += cL >> 16;
			cL &= 65535; cH &= 65535;
			t = (cL >> 16) | ((cH <<  0) & 65535); cH = (cH >> 16) | ((cL <<  0) & 65535);
			cL = t + dL; cH += dH; if (cL > 65535) { cL &= 65535; cH++; }
			cH &= 65535;
			bL += ((cL ^ dL) ^ aL) + tmpLa + 0xbc70; bH += ((cH ^ dH) ^ aH) + tmpHa + 0xbebf;
			bH += bL >> 16;
			bL &= 65535; bH &= 65535;
			t = (bL >>  9) | ((bH <<  7) & 65535); bH = (bH >>  9) | ((bL <<  7) & 65535);
			bL = t + cL; bH += cH; if (bL > 65535) { bL &= 65535; bH++; }
			bH &= 65535;
			aL += ((bL ^ cL) ^ dL) + tmpLd + 0x7ec6; aH += ((bH ^ cH) ^ dH) + tmpHd + 0x289b;
			aH += aL >> 16;
			aL &= 65535; aH &= 65535;
			t = (aH >> 12) | ((aL <<  4) & 65535); aH = (aL >> 12) | ((aH <<  4) & 65535);
			aL = t + bL; aH += bH; if (aL > 65535) { aL &= 65535; aH++; }
			aH &= 65535;
			dL += ((aL ^ bL) ^ cL) + tmpL0 + 0x27fa; dH += ((aH ^ bH) ^ cH) + tmpH0 + 0xeaa1;
			dH += dL >> 16;
			dL &= 65535; dH &= 65535;
			t = (dH >>  5) | ((dL << 11) & 65535); dH = (dL >>  5) | ((dH << 11) & 65535);
			dL = t + aL; dH += aH; if (dL > 65535) { dL &= 65535; dH++; }
			dH &= 65535;
			cL += ((dL ^ aL) ^ bL) + tmpL3 + 0x3085; cH += ((dH ^ aH) ^ bH) + tmpH3 + 0xd4ef;
			cH += cL >> 16;
			cL &= 65535; cH &= 65535;
			t = (cL >> 16) | ((cH <<  0) & 65535); cH = (cH >> 16) | ((cL <<  0) & 65535);
			cL = t + dL; cH += dH; if (cL > 65535) { cL &= 65535; cH++; }
			cH &= 65535;
			bL += ((cL ^ dL) ^ aL) + tmpL6 + 0x1d05; bH += ((cH ^ dH) ^ aH) + tmpH6 + 0x0488;
			bH += bL >> 16;
			bL &= 65535; bH &= 65535;
			t = (bL >>  9) | ((bH <<  7) & 65535); bH = (bH >>  9) | ((bL <<  7) & 65535);
			bL = t + cL; bH += cH; if (bL > 65535) { bL &= 65535; bH++; }
			bH &= 65535;
			aL += ((bL ^ cL) ^ dL) + tmpL9 + 0xd039; aH += ((bH ^ cH) ^ dH) + tmpH9 + 0xd9d4;
			aH += aL >> 16;
			aL &= 65535; aH &= 65535;
			t = (aH >> 12) | ((aL <<  4) & 65535); aH = (aL >> 12) | ((aH <<  4) & 65535);
			aL = t + bL; aH += bH; if (aL > 65535) { aL &= 65535; aH++; }
			aH &= 65535;
			dL += ((aL ^ bL) ^ cL) + tmpLc + 0x99e5; dH += ((aH ^ bH) ^ cH) + tmpHc + 0xe6db;
			dH += dL >> 16;
			dL &= 65535; dH &= 65535;
			t = (dH >>  5) | ((dL << 11) & 65535); dH = (dL >>  5) | ((dH << 11) & 65535);
			dL = t + aL; dH += aH; if (dL > 65535) { dL &= 65535; dH++; }
			dH &= 65535;
			cL += ((dL ^ aL) ^ bL) + tmpLf + 0x7cf8; cH += ((dH ^ aH) ^ bH) + tmpHf + 0x1fa2;
			cH += cL >> 16;
			cL &= 65535; cH &= 65535;
			t = (cL >> 16) | ((cH <<  0) & 65535); cH = (cH >> 16) | ((cL <<  0) & 65535);
			cL = t + dL; cH += dH; if (cL > 65535) { cL &= 65535; cH++; }
			cH &= 65535;
			bL += ((cL ^ dL) ^ aL) + tmpL2 + 0x5665; bH += ((cH ^ dH) ^ aH) + tmpH2 + 0xc4ac;
			bH += bL >> 16;
			bL &= 65535; bH &= 65535;
			t = (bL >>  9) | ((bH <<  7) & 65535); bH = (bH >>  9) | ((bL <<  7) & 65535);
			bL = t + cL; bH += cH; if (bL > 65535) { bL &= 65535; bH++; }
			bH &= 65535;
///
			aL += (cL ^ ((65535 - dL) | bL)) + tmpL0 + 0x2244; aH += (cH ^ ((65535 - dH) | bH)) + tmpH0 + 0xf429;
			aH += aL >> 16;
			aL &= 65535; aH &= 65535;
			t = (aH >> 10) | ((aL <<  6) & 65535); aH = (aL >> 10) | ((aH <<  6) & 65535);
			aL = t + bL; aH += bH; if (aL > 65535) { aL &= 65535; aH++; }
			aH &= 65535;
			dL += (bL ^ ((65535 - cL) | aL)) + tmpL7 + 0xff97; dH += (bH ^ ((65535 - cH) | aH)) + tmpH7 + 0x432a;
			dH += dL >> 16;
			dL &= 65535; dH &= 65535;
			t = (dH >>  6) | ((dL << 10) & 65535); dH = (dL >>  6) | ((dH << 10) & 65535);
			dL = t + aL; dH += aH; if (dL > 65535) { dL &= 65535; dH++; }
			dH &= 65535;
			cL += (aL ^ ((65535 - bL) | dL)) + tmpLe + 0x23a7; cH += (aH ^ ((65535 - bH) | dH)) + tmpHe + 0xab94;
			cH += cL >> 16;
			cL &= 65535; cH &= 65535;
			t = (cH >>  1) | ((cL << 15) & 65535); cH = (cL >>  1) | ((cH << 15) & 65535);
			cL = t + dL; cH += dH; if (cL > 65535) { cL &= 65535; cH++; }
			cH &= 65535;
			bL += (dL ^ ((65535 - aL) | cL)) + tmpL5 + 0xa039; bH += (dH ^ ((65535 - aH) | cH)) + tmpH5 + 0xfc93;
			bH += bL >> 16;
			bL &= 65535; bH &= 65535;
			t = (bL >> 11) | ((bH <<  5) & 65535); bH = (bH >> 11) | ((bL <<  5) & 65535);
			bL = t + cL; bH += cH; if (bL > 65535) { bL &= 65535; bH++; }
			bH &= 65535;
			aL += (cL ^ ((65535 - dL) | bL)) + tmpLc + 0x59c3; aH += (cH ^ ((65535 - dH) | bH)) + tmpHc + 0x655b;
			aH += aL >> 16;
			aL &= 65535; aH &= 65535;
			t = (aH >> 10) | ((aL <<  6) & 65535); aH = (aL >> 10) | ((aH <<  6) & 65535);
			aL = t + bL; aH += bH; if (aL > 65535) { aL &= 65535; aH++; }
			aH &= 65535;
			dL += (bL ^ ((65535 - cL) | aL)) + tmpL3 + 0xcc92; dH += (bH ^ ((65535 - cH) | aH)) + tmpH3 + 0x8f0c;
			dH += dL >> 16;
			dL &= 65535; dH &= 65535;
			t = (dH >>  6) | ((dL << 10) & 65535); dH = (dL >>  6) | ((dH << 10) & 65535);
			dL = t + aL; dH += aH; if (dL > 65535) { dL &= 65535; dH++; }
			dH &= 65535;
			cL += (aL ^ ((65535 - bL) | dL)) + tmpLa + 0xf47d; cH += (aH ^ ((65535 - bH) | dH)) + tmpHa + 0xffef;
			cH += cL >> 16;
			cL &= 65535; cH &= 65535;
			t = (cH >>  1) | ((cL << 15) & 65535); cH = (cL >>  1) | ((cH << 15) & 65535);
			cL = t + dL; cH += dH; if (cL > 65535) { cL &= 65535; cH++; }
			cH &= 65535;
			bL += (dL ^ ((65535 - aL) | cL)) + tmpL1 + 0x5dd1; bH += (dH ^ ((65535 - aH) | cH)) + tmpH1 + 0x8584;
			bH += bL >> 16;
			bL &= 65535; bH &= 65535;
			t = (bL >> 11) | ((bH <<  5) & 65535); bH = (bH >> 11) | ((bL <<  5) & 65535);
			bL = t + cL; bH += cH; if (bL > 65535) { bL &= 65535; bH++; }
			bH &= 65535;
			aL += (cL ^ ((65535 - dL) | bL)) + tmpL8 + 0x7e4f; aH += (cH ^ ((65535 - dH) | bH)) + tmpH8 + 0x6fa8;
			aH += aL >> 16;
			aL &= 65535; aH &= 65535;
			t = (aH >> 10) | ((aL <<  6) & 65535); aH = (aL >> 10) | ((aH <<  6) & 65535);
			aL = t + bL; aH += bH; if (aL > 65535) { aL &= 65535; aH++; }
			aH &= 65535;
			dL += (bL ^ ((65535 - cL) | aL)) + tmpLf + 0xe6e0; dH += (bH ^ ((65535 - cH) | aH)) + tmpHf + 0xfe2c;
			dH += dL >> 16;
			dL &= 65535; dH &= 65535;
			t = (dH >>  6) | ((dL << 10) & 65535); dH = (dL >>  6) | ((dH << 10) & 65535);
			dL = t + aL; dH += aH; if (dL > 65535) { dL &= 65535; dH++; }
			dH &= 65535;
			cL += (aL ^ ((65535 - bL) | dL)) + tmpL6 + 0x4314; cH += (aH ^ ((65535 - bH) | dH)) + tmpH6 + 0xa301;
			cH += cL >> 16;
			cL &= 65535; cH &= 65535;
			t = (cH >>  1) | ((cL << 15) & 65535); cH = (cL >>  1) | ((cH << 15) & 65535);
			cL = t + dL; cH += dH; if (cL > 65535) { cL &= 65535; cH++; }
			cH &= 65535;
			bL += (dL ^ ((65535 - aL) | cL)) + tmpLd + 0x11a1; bH += (dH ^ ((65535 - aH) | cH)) + tmpHd + 0x4e08;
			bH += bL >> 16;
			bL &= 65535; bH &= 65535;
			t = (bL >> 11) | ((bH <<  5) & 65535); bH = (bH >> 11) | ((bL <<  5) & 65535);
			bL = t + cL; bH += cH; if (bL > 65535) { bL &= 65535; bH++; }
			bH &= 65535;
			aL += (cL ^ ((65535 - dL) | bL)) + tmpL4 + 0x7e82; aH += (cH ^ ((65535 - dH) | bH)) + tmpH4 + 0xf753;
			aH += aL >> 16;
			aL &= 65535; aH &= 65535;
			t = (aH >> 10) | ((aL <<  6) & 65535); aH = (aL >> 10) | ((aH <<  6) & 65535);
			aL = t + bL; aH += bH; if (aL > 65535) { aL &= 65535; aH++; }
			aH &= 65535;
			dL += (bL ^ ((65535 - cL) | aL)) + tmpLb + 0xf235; dH += (bH ^ ((65535 - cH) | aH)) + tmpHb + 0xbd3a;
			dH += dL >> 16;
			dL &= 65535; dH &= 65535;
			t = (dH >>  6) | ((dL << 10) & 65535); dH = (dL >>  6) | ((dH << 10) & 65535);
			dL = t + aL; dH += aH; if (dL > 65535) { dL &= 65535; dH++; }
			dH &= 65535;
			cL += (aL ^ ((65535 - bL) | dL)) + tmpL2 + 0xd2bb; cH += (aH ^ ((65535 - bH) | dH)) + tmpH2 + 0x2ad7;
			cH += cL >> 16;
			cL &= 65535; cH &= 65535;
			t = (cH >>  1) | ((cL << 15) & 65535); cH = (cL >>  1) | ((cH << 15) & 65535);
			cL = t + dL; cH += dH; if (cL > 65535) { cL &= 65535; cH++; }
			cH &= 65535;
			bL += (dL ^ ((65535 - aL) | cL)) + tmpL9 + 0xd391; bH += (dH ^ ((65535 - aH) | cH)) + tmpH9 + 0xeb86;
			bH += bL >> 16;
			bL &= 65535; bH &= 65535;
			t = (bL >> 11) | ((bH <<  5) & 65535); bH = (bH >> 11) | ((bL <<  5) & 65535);
			bL = t + cL; bH += cH; if (bL > 65535) { bL &= 65535; bH++; }
			bH &= 65535;
///
			t = this.a_[0] += aL; this.a_[1] += aH; if (t > 65535) { this.a_[0] -= 65536; this.a_[1]++; } this.a_[1] &= 65535;
			t = this.b_[0] += bL; this.b_[1] += bH; if (t > 65535) { this.b_[0] -= 65536; this.b_[1]++; } this.b_[1] &= 65535;
			t = this.c_[0] += cL; this.c_[1] += cH; if (t > 65535) { this.c_[0] -= 65536; this.c_[1]++; } this.c_[1] &= 65535;
			t = this.d_[0] += dL; this.d_[1] += dH; if (t > 65535) { this.d_[0] -= 65536; this.d_[1]++; } this.d_[1] &= 65535;
		},

		/* sprintf(buf, "%08x", i32); */
		int2hex8 : function(i32) {
			var i, c, ret = "";
			var hex = "0123456789abcdef";
			for (i = 0; i < 4; i++) {
				c = i32 >>> (i * 8);
				ret += hex.charAt((c >> 4) & 15);
				ret += hex.charAt(c & 15);
			}
			return ret;
		},

		update_std : function(buf, charSize) {
			var a = this.a_, b = this.b_, c = this.c_, d = this.d_;
			var tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7, tmp8, tmp9, tmpa, tmpb, tmpc, tmpd, tmpe, tmpf;
			if (charSize == 1) {
				tmp0 = buf.charCodeAt( 0) | (buf.charCodeAt( 1) << 8) | (buf.charCodeAt( 2) << 16) | (buf.charCodeAt( 3) << 24);
				tmp1 = buf.charCodeAt( 4) | (buf.charCodeAt( 5) << 8) | (buf.charCodeAt( 6) << 16) | (buf.charCodeAt( 7) << 24);
				tmp2 = buf.charCodeAt( 8) | (buf.charCodeAt( 9) << 8) | (buf.charCodeAt(10) << 16) | (buf.charCodeAt(11) << 24);
				tmp3 = buf.charCodeAt(12) | (buf.charCodeAt(13) << 8) | (buf.charCodeAt(14) << 16) | (buf.charCodeAt(15) << 24);
				tmp4 = buf.charCodeAt(16) | (buf.charCodeAt(17) << 8) | (buf.charCodeAt(18) << 16) | (buf.charCodeAt(19) << 24);
				tmp5 = buf.charCodeAt(20) | (buf.charCodeAt(21) << 8) | (buf.charCodeAt(22) << 16) | (buf.charCodeAt(23) << 24);
				tmp6 = buf.charCodeAt(24) | (buf.charCodeAt(25) << 8) | (buf.charCodeAt(26) << 16) | (buf.charCodeAt(27) << 24);
				tmp7 = buf.charCodeAt(28) | (buf.charCodeAt(29) << 8) | (buf.charCodeAt(30) << 16) | (buf.charCodeAt(31) << 24);
				tmp8 = buf.charCodeAt(32) | (buf.charCodeAt(33) << 8) | (buf.charCodeAt(34) << 16) | (buf.charCodeAt(35) << 24);
				tmp9 = buf.charCodeAt(36) | (buf.charCodeAt(37) << 8) | (buf.charCodeAt(38) << 16) | (buf.charCodeAt(39) << 24);
				tmpa = buf.charCodeAt(40) | (buf.charCodeAt(41) << 8) | (buf.charCodeAt(42) << 16) | (buf.charCodeAt(43) << 24);
				tmpb = buf.charCodeAt(44) | (buf.charCodeAt(45) << 8) | (buf.charCodeAt(46) << 16) | (buf.charCodeAt(47) << 24);
				tmpc = buf.charCodeAt(48) | (buf.charCodeAt(49) << 8) | (buf.charCodeAt(50) << 16) | (buf.charCodeAt(51) << 24);
				tmpd = buf.charCodeAt(52) | (buf.charCodeAt(53) << 8) | (buf.charCodeAt(54) << 16) | (buf.charCodeAt(55) << 24);
				tmpe = buf.charCodeAt(56) | (buf.charCodeAt(57) << 8) | (buf.charCodeAt(58) << 16) | (buf.charCodeAt(59) << 24);
				tmpf = buf.charCodeAt(60) | (buf.charCodeAt(61) << 8) | (buf.charCodeAt(62) << 16) | (buf.charCodeAt(63) << 24);
			} else {
				tmp0 = buf.charCodeAt( 0) | (buf.charCodeAt( 1) << 16);
				tmp1 = buf.charCodeAt( 2) | (buf.charCodeAt( 3) << 16);
				tmp2 = buf.charCodeAt( 4) | (buf.charCodeAt( 5) << 16);
				tmp3 = buf.charCodeAt( 6) | (buf.charCodeAt( 7) << 16);
				tmp4 = buf.charCodeAt( 8) | (buf.charCodeAt( 9) << 16);
				tmp5 = buf.charCodeAt(10) | (buf.charCodeAt(11) << 16);
				tmp6 = buf.charCodeAt(12) | (buf.charCodeAt(13) << 16);
				tmp7 = buf.charCodeAt(14) | (buf.charCodeAt(15) << 16);
				tmp8 = buf.charCodeAt(16) | (buf.charCodeAt(17) << 16);
				tmp9 = buf.charCodeAt(18) | (buf.charCodeAt(19) << 16);
				tmpa = buf.charCodeAt(20) | (buf.charCodeAt(21) << 16);
				tmpb = buf.charCodeAt(22) | (buf.charCodeAt(23) << 16);
				tmpc = buf.charCodeAt(24) | (buf.charCodeAt(25) << 16);
				tmpd = buf.charCodeAt(26) | (buf.charCodeAt(27) << 16);
				tmpe = buf.charCodeAt(28) | (buf.charCodeAt(29) << 16);
				tmpf = buf.charCodeAt(30) | (buf.charCodeAt(31) << 16);
			}

			a += tmp0 + 0xd76aa478 + ((b & c) | (~b & d)); a = b + ((a <<  7) | (a >>> 25));
			d += tmp1 + 0xe8c7b756 + ((a & b) | (~a & c)); d = a + ((d << 12) | (d >>> 20));
			c += tmp2 + 0x242070db + ((d & a) | (~d & b)); c = d + ((c << 17) | (c >>> 15));
			b += tmp3 + 0xc1bdceee + ((c & d) | (~c & a)); b = c + ((b << 22) | (b >>> 10));
			a += tmp4 + 0xf57c0faf + ((b & c) | (~b & d)); a = b + ((a <<  7) | (a >>> 25));
			d += tmp5 + 0x4787c62a + ((a & b) | (~a & c)); d = a + ((d << 12) | (d >>> 20));
			c += tmp6 + 0xa8304613 + ((d & a) | (~d & b)); c = d + ((c << 17) | (c >>> 15));
			b += tmp7 + 0xfd469501 + ((c & d) | (~c & a)); b = c + ((b << 22) | (b >>> 10));
			a += tmp8 + 0x698098d8 + ((b & c) | (~b & d)); a = b + ((a <<  7) | (a >>> 25));
			d += tmp9 + 0x8b44f7af + ((a & b) | (~a & c)); d = a + ((d << 12) | (d >>> 20));
			c += tmpa + 0xffff5bb1 + ((d & a) | (~d & b)); c = d + ((c << 17) | (c >>> 15));
			b += tmpb + 0x895cd7be + ((c & d) | (~c & a)); b = c + ((b << 22) | (b >>> 10));
			a += tmpc + 0x6b901122 + ((b & c) | (~b & d)); a = b + ((a <<  7) | (a >>> 25));
			d += tmpd + 0xfd987193 + ((a & b) | (~a & c)); d = a + ((d << 12) | (d >>> 20));
			c += tmpe + 0xa679438e + ((d & a) | (~d & b)); c = d + ((c << 17) | (c >>> 15));
			b += tmpf + 0x49b40821 + ((c & d) | (~c & a)); b = c + ((b << 22) | (b >>> 10));
			a += tmp1 + 0xf61e2562 + ((b & d) | (c & ~d)); a = b + ((a <<  5) | (a >>> 27));
			d += tmp6 + 0xc040b340 + ((a & c) | (b & ~c)); d = a + ((d <<  9) | (d >>> 23));
			c += tmpb + 0x265e5a51 + ((d & b) | (a & ~b)); c = d + ((c << 14) | (c >>> 18));
			b += tmp0 + 0xe9b6c7aa + ((c & a) | (d & ~a)); b = c + ((b << 20) | (b >>> 12));
			a += tmp5 + 0xd62f105d + ((b & d) | (c & ~d)); a = b + ((a <<  5) | (a >>> 27));
			d += tmpa + 0x02441453 + ((a & c) | (b & ~c)); d = a + ((d <<  9) | (d >>> 23));
			c += tmpf + 0xd8a1e681 + ((d & b) | (a & ~b)); c = d + ((c << 14) | (c >>> 18));
			b += tmp4 + 0xe7d3fbc8 + ((c & a) | (d & ~a)); b = c + ((b << 20) | (b >>> 12));
			a += tmp9 + 0x21e1cde6 + ((b & d) | (c & ~d)); a = b + ((a <<  5) | (a >>> 27));
			d += tmpe + 0xc33707d6 + ((a & c) | (b & ~c)); d = a + ((d <<  9) | (d >>> 23));
			c += tmp3 + 0xf4d50d87 + ((d & b) | (a & ~b)); c = d + ((c << 14) | (c >>> 18));
			b += tmp8 + 0x455a14ed + ((c & a) | (d & ~a)); b = c + ((b << 20) | (b >>> 12));
			a += tmpd + 0xa9e3e905 + ((b & d) | (c & ~d)); a = b + ((a <<  5) | (a >>> 27));
			d += tmp2 + 0xfcefa3f8 + ((a & c) | (b & ~c)); d = a + ((d <<  9) | (d >>> 23));
			c += tmp7 + 0x676f02d9 + ((d & b) | (a & ~b)); c = d + ((c << 14) | (c >>> 18));
			b += tmpc + 0x8d2a4c8a + ((c & a) | (d & ~a)); b = c + ((b << 20) | (b >>> 12));
			a += tmp5 + 0xfffa3942 + ((b ^ c) ^ d); a = b + ((a <<  4) | (a >>> 28));
			d += tmp8 + 0x8771f681 + ((a ^ b) ^ c); d = a + ((d << 11) | (d >>> 21));
			c += tmpb + 0x6d9d6122 + ((d ^ a) ^ b); c = d + ((c << 16) | (c >>> 16));
			b += tmpe + 0xfde5380c + ((c ^ d) ^ a); b = c + ((b << 23) | (b >>>  9));
			a += tmp1 + 0xa4beea44 + ((b ^ c) ^ d); a = b + ((a <<  4) | (a >>> 28));
			d += tmp4 + 0x4bdecfa9 + ((a ^ b) ^ c); d = a + ((d << 11) | (d >>> 21));
			c += tmp7 + 0xf6bb4b60 + ((d ^ a) ^ b); c = d + ((c << 16) | (c >>> 16));
			b += tmpa + 0xbebfbc70 + ((c ^ d) ^ a); b = c + ((b << 23) | (b >>>  9));
			a += tmpd + 0x289b7ec6 + ((b ^ c) ^ d); a = b + ((a <<  4) | (a >>> 28));
			d += tmp0 + 0xeaa127fa + ((a ^ b) ^ c); d = a + ((d << 11) | (d >>> 21));
			c += tmp3 + 0xd4ef3085 + ((d ^ a) ^ b); c = d + ((c << 16) | (c >>> 16));
			b += tmp6 + 0x04881d05 + ((c ^ d) ^ a); b = c + ((b << 23) | (b >>>  9));
			a += tmp9 + 0xd9d4d039 + ((b ^ c) ^ d); a = b + ((a <<  4) | (a >>> 28));
			d += tmpc + 0xe6db99e5 + ((a ^ b) ^ c); d = a + ((d << 11) | (d >>> 21));
			c += tmpf + 0x1fa27cf8 + ((d ^ a) ^ b); c = d + ((c << 16) | (c >>> 16));
			b += tmp2 + 0xc4ac5665 + ((c ^ d) ^ a); b = c + ((b << 23) | (b >>>  9));
			a += tmp0 + 0xf4292244 + (c ^ (~d | b)); a = b + ((a <<  6) | (a >>> 26));
			d += tmp7 + 0x432aff97 + (b ^ (~c | a)); d = a + ((d << 10) | (d >>> 22));
			c += tmpe + 0xab9423a7 + (a ^ (~b | d)); c = d + ((c << 15) | (c >>> 17));
			b += tmp5 + 0xfc93a039 + (d ^ (~a | c)); b = c + ((b << 21) | (b >>> 11));
			a += tmpc + 0x655b59c3 + (c ^ (~d | b)); a = b + ((a <<  6) | (a >>> 26));
			d += tmp3 + 0x8f0ccc92 + (b ^ (~c | a)); d = a + ((d << 10) | (d >>> 22));
			c += tmpa + 0xffeff47d + (a ^ (~b | d)); c = d + ((c << 15) | (c >>> 17));
			b += tmp1 + 0x85845dd1 + (d ^ (~a | c)); b = c + ((b << 21) | (b >>> 11));
			a += tmp8 + 0x6fa87e4f + (c ^ (~d | b)); a = b + ((a <<  6) | (a >>> 26));
			d += tmpf + 0xfe2ce6e0 + (b ^ (~c | a)); d = a + ((d << 10) | (d >>> 22));
			c += tmp6 + 0xa3014314 + (a ^ (~b | d)); c = d + ((c << 15) | (c >>> 17));
			b += tmpd + 0x4e0811a1 + (d ^ (~a | c)); b = c + ((b << 21) | (b >>> 11));
			a += tmp4 + 0xf7537e82 + (c ^ (~d | b)); a = b + ((a <<  6) | (a >>> 26));
			d += tmpb + 0xbd3af235 + (b ^ (~c | a)); d = a + ((d << 10) | (d >>> 22));
			c += tmp2 + 0x2ad7d2bb + (a ^ (~b | d)); c = d + ((c << 15) | (c >>> 17));
			b += tmp9 + 0xeb86d391 + (d ^ (~a | c)); b = c + ((b << 21) | (b >>> 11));

			this.a_ = (this.a_ + a) & 0xffffffff;
			this.b_ = (this.b_ + b) & 0xffffffff;
			this.c_ = (this.c_ + c) & 0xffffffff;
			this.d_ = (this.d_ + d) & 0xffffffff;
		},

		fillzero : function(size) {
			var buf = "";
			for (var i = 0; i < size; i++) {
				buf += "\x00";
			}
			return buf;
		},

		main : function(buf, bufSize, update, self, charSize) {
			if (charSize == 1) {
				var totalBitSize = bufSize * 8;
				while (bufSize >= 64) {
					self[update](buf, charSize);
					buf = buf.substr(64);
					bufSize -= 64;
				}
				buf +="\x80";
				if (bufSize >= 56) {
					buf += this.fillzero(63 - bufSize);
					self[update](buf, charSize);
					buf = this.fillzero(56);
				} else {
					buf += this.fillzero(55 - bufSize);
				}
				buf += String.fromCharCode(totalBitSize & 0xff, (totalBitSize >>> 8) & 0xff, (totalBitSize >>> 16) & 0xff, totalBitSize >>> 24);
				buf += "\x00\x00\x00\x00"; // in stead of (totalBitSize) >> 32
				self[update](buf, charSize);
			} else {
				/* charSize == 2 */
				var totalBitSize = bufSize * 16;
				while (bufSize >= 32) {
					self[update](buf, charSize);
					buf = buf.substr(32);
					bufSize -= 32;
				}
				buf +="\x80";
				if (bufSize >= 28) {
					buf += this.fillzero(31 - bufSize);
					self[update](buf, charSize);
					buf = this.fillzero(28);
				} else {
					buf += this.fillzero(27 - bufSize);
				}
				buf += String.fromCharCode(totalBitSize & 0xffff, totalBitSize >>> 16);
				buf += "\x00\x00"; // in stead of (totalBitSize) >> 32
				self[update](buf, charSize);
			}
		},

		VERSION : "1.0",
		BY_ASCII : 0,
		BY_UTF16 : 1,

		calc_Fx : function(msg, mode) {
			var charSize = (arguments.length == 2 && mode == this.BY_UTF16) ? 2 : 1;
			this.a_ = [0x2301, 0x6745];
			this.b_ = [0xab89, 0xefcd];
			this.c_ = [0xdcfe, 0x98ba];
			this.d_ = [0x5476, 0x1032];
			this.main(msg, msg.length, "update_Fx", this, charSize);
			return this.int2hex8_Fx(this.a_) + this.int2hex8_Fx(this.b_) + this.int2hex8_Fx(this.c_) + this.int2hex8_Fx(this.d_);
		},

		calc_std : function(msg, mode) {
			var charSize = (arguments.length == 2 && mode == this.BY_UTF16) ? 2 : 1;
			this.a_ = 0x67452301;
			this.b_ = 0xefcdab89;
			this.c_ = 0x98badcfe;
			this.d_ = 0x10325476;
			this.main(msg, msg.length, "update_std", this, charSize);
			return this.int2hex8(this.a_) + this.int2hex8(this.b_) + this.int2hex8(this.c_) + this.int2hex8(this.d_);
		}
	} // end of MD5
}; // end of CybozuLabs

new function() {
	CybozuLabs.MD5.calc = navigator.userAgent.match(/Firefox/) ? CybozuLabs.MD5.calc_Fx : CybozuLabs.MD5.calc_std;
};
