Regist_id="";

// トピック投稿文字数チェック
function add_confirm(frm){
//alert(frm);
	var maxlength = 400;
	var body = document.getElementById("UpBody").value;
	var body_len = body.length;
	if(body_len <= maxlength){
		frm.submit();
	}
}

// ページ内リンクでスムーススクロール
function SmoothScroll(targetID){
	if( !document.getElementById ) {return true;}
	var step=10;  //初速度
	var max=100;  //最高速度
	var accel=4;  //加速度
	var interval=30;  //加速インターバル
	var current_y = document.body.scrollTop;
	var element=document.getElementById(targetID);
	if (!element){return true;}
	var target_y = 0;
	for (i = element;i.offsetParent;i=i.offsetParent ){
		target_y += i.offsetTop;
	}
	var count=0;
	if ( current_y > target_y ){ step = -(step); accel = -(accel);}
	var timerid = setInterval(function(){
		if (step<max) step += (count*accel);
		if ( Math.abs(current_y-target_y) < Math.abs(step) ){
			window.scrollTo(document.body.scrollLeft,target_y);
			clearInterval(timerid);
			return false;
		}else{
			window.scrollBy(0,step);
			current_y += step;
			count++;
		}
	},interval);
}

// 一覧表示文字数までの残り入力可能文字数表示
function numCheck(fObj){
	if(document.getElementById("UpBody")){
		var length = fObj.UpBody.value.length;
	} else {
		var length = fObj.EditBody.value.length;
	}
	if(length<=400){
		length1 = 400 - length;
		var html1 = "※入力可能文字数：残り" + length1 + "文字です";
	} else {
		length1 = length - 400;
		var html1 = "※入力可能文字数：" + length1 + "文字超えています";
		var html1 = "<strong><font color=\"red\">" + html1 + "</font></strong>";
	}
	if(length<130){
		length2 = 130 - length;
	} else {
		length2 = 0;
	}
	obj = document.getElementById("count1");
	obj.innerHTML = html1;
	var html2 = "※一覧表示文字数：残り" + length2 + "文字です";
	obj = document.getElementById("count2");
	obj.innerHTML = html2;
}


// コメント投稿
function ajax_back(url){
	//document.getElementById('progress').style.display = '';
	var myAjax = new Ajax.Updater( 'regform_block', url, { 
		method: 'post',
		onComplete: result_confirm
	});	
}

// コメント投稿、通報
function ajax_confirm(cr_flg){
	var msg1 = "";
	var msg2 = "";
	var msg3 = "";
	if(cr_flg == 'comment'){
		var feeling = document.getElementsByName("data[Comment][feeling]");
		var body = document.getElementById("CommentBody");
		var nickname = document.getElementById("Nickname");
		if(nickname && nickname.value==""){
			var msg3 = "※ニックネームは必須入力項目です";
			msg3 = "<p class=\"ErrorMsg\">" + msg3 + "</p>";
			document.getElementById("err3").innerHTML = msg3;
		}
		if(feeling[0].checked==false && feeling[1].checked==false && feeling[2].checked==false && feeling[3].checked==false && feeling[4].checked==false){
			var msg1 = "※表情は必須入力項目です";
			msg1 = "<p class=\"ErrorMsg\">" + msg1 + "</p>";
			document.getElementById("err1").innerHTML = msg1;
		}
		if(body.value==""){
			var msg2 = "※コメントは必須入力項目です";
			msg2 = "<p class=\"ErrorMsg\">" + msg2 + "</p>";
			document.getElementById("err2").innerHTML = msg2;
		}
		if(msg1=="" && msg2=="" && msg3==""){		// 項目入力済みの場合
			// コメントするボタンをクリックできないように
			document.getElementById("FormBtn").innerHTML = "<img src=\"/p/images/btn_comment.gif\" alt=\"コメントする\" />";
		}
		var url = '/topic_detail/comment_regist';
	} else {
		var genre = document.getElementsByName("data[Report][genre]");
		if(genre[0].checked==false && genre[1].checked==false && genre[2].checked==false && genre[3].checked==false){
			var msg1 = "※通報内容は必須入力項目です";
			msg1 = "<p class=\"ErrorMsg\">" + msg1 + "</p>";
			document.getElementById("err1").innerHTML = msg1;
		}
		var url = '/topic_detail/report_regist';
		if(msg1==""){		// 項目入力済みの場合
			// 通報するボタンをクリックできないように
			document.getElementById("FormBtn").innerHTML = "<img src=\"/p/images/btn_report.gif\" alt=\"通報する\" />";
		}
	}
/*
	// ログインチェック
	var url1 = '/topic_detail/login_check';
	var myAjax1 = new Ajax.Request( url1, {
		method: 'post',
		onComplete: function(responseHttpObj) { 
			var res  = responseHttpObj.responseText;
			res_arr = res.split("/");
			if(res_arr[0] != "Login"){
				location.href='/';
			}
		}
	});
*/
	if(msg1=="" && msg2=="" && msg3==""){		// 項目入力済みの場合
		var pars = Form.serialize('regform');
		var myAjax = new Ajax.Updater( 'regform_block', url, {
			method: 'post',
			parameters: pars,
			onComplete: result_confirm
		});
	} else if(cr_flg == 'comment') { 
		if(msg1=="") { document.getElementById("err1").innerHTML = ""; }
		if(msg2=="") { document.getElementById("err2").innerHTML = ""; }
		if(msg3=="") { document.getElementById("err3").innerHTML = ""; }
	}
}

function result_confirm(){
	//document.getElementById('progress').style.display = 'none';
}

	 
// 2007.6.26リリース予定対応 UPD START ↓
// 投票「気になる！」
function vote(topic_id,components_id){
	var now=new Date();
	var point = "point" + components_id;
	var vote = "vote" + components_id;

	e = document.getElementById(vote).childNodes[0];
	e.onclick = '';
	e.src = '/p/images/btn_interest.gif';

	new Effect.Fade(point, { from:1.0, to:0.1, duration:1.0});
	new Effect.Fade(vote, { from:1.0, to:0.1, duration:1.0});
	var myAjax = new Ajax.Request('/votes/index/' + topic_id + '/' + components_id + "?" + now, {
		method: 'post',
		onSuccess: displayResultVote,
		onFailure: displayFail
	});
}
// 2007.6.26リリース予定対応 UPD END ↓

function displayProgress(components_id){
	var result = "result" + components_id;
	$(result).innerHTML = '投票処理中です';
}

// 2007.6.26リリース予定対応 UPD START ↓
function displayResultVote(responseHttpObj){
	var res  = responseHttpObj.responseText;
	res_arr = res.split("/");
	user_id = res_arr[2];
//alert(res);
	if(Regist_id != "" && user_id == 0){
		var del_regist = "regist" + Regist_id;
		r = document.getElementById(del_regist).childNodes[0];
		r.style.display = 'none';
	}
	Regist_id = res_arr[1];

	var point = "point" + res_arr[1];
	var vote = "vote" + res_arr[1];
	if(user_id == 0){
		var regist = "regist" + res_arr[1];
	}

	e = document.getElementById(vote).childNodes[0];
	e.onclick = '';
	e.src = '/p/images/btn_interest_off.gif';
	e.style.cursor = 'default';

	new Effect.Appear(point, { from:0.1, to:1.0, duration:1.0});
	new Effect.Appear(vote, { from:0.1, to:1.0, duration:1.0});
	if(user_id == 0){
		new Effect.Appear(regist, { from:0.1, to:1.0, duration:1.0});
	}
	$(point).innerHTML = "<em>" + res_arr[0] + "</em>";

}
// 2007.6.26リリース予定対応 UPD END ↓

function displayFail(){
//alert("失敗しました！");
}


// コメント拍手
function clap(comment_id,topic_id,components_id){
	var now=new Date();
	var clap = "clap" + components_id;
	var clap_count = "clap_count" + components_id;

	$(clap).innerHTML = "<img src=\"/p/images/btn_clapping.gif\" width=\"55\" height=\"17\" alt=\"このコメントに拍手！\" />";

	new Effect.Fade(clap, { from:1.0, to:0.3, duration:1.0});
	new Effect.Fade(clap_count, { from:1.0, to:0.1, duration:1.0});

	var myAjax = new Ajax.Request('/claps/index/' + comment_id + '/' + topic_id + '/' + components_id + "?" + now, {
		method: 'post',
		onSuccess: displayResultClap,
		onFailure: displayFail
	});
}

function displayResultClap(responseHttpObj){
		var res  = responseHttpObj.responseText;
//alert(res);
		res_arr = res.split("/");
		var count = res_arr[0];
		var clap = "clap" + res_arr[1];
		var clap_count = "clap_count" + res_arr[1];

		$(clap).innerHTML = "<img src=\"/p/images/btn_clapping_off.gif\" width=\"55\" height=\"17\" alt=\"このコメントに拍手！\" />";
		$(clap_count).innerHTML = '(' + count + ')';

		new Effect.Appear(clap, { from:0.3, to:1.0, duration:1.0});
		new Effect.Appear(clap_count, { from:0.1, to:1.0, duration:1.0});
		//$(clap).innerHTML = "<img src=\"/p/images/btn_clapping_off.gif\" width=\"140\" height=\"17\" alt=\"このコメントに拍手！\">&nbsp;" + '(' + count + ')';
}

// コメント削除
function del_confirm(comment_id,topic_id){
	res = confirm("このコメントを削除してもよろしいですか？");
	if(res == true){
		var url = '/topic_detail/comment_delete';
		var pars = 'id=' + comment_id + '&topic_id=' + topic_id;
			var myAjax = new Ajax.Updater( 'regform_block', url, {
			method: 'post',
			parameters: pars,
			onComplete: result_confirm
		});	

	}
}

// プロフィール表示、非表示
function display_profile(user_id,profile){
	var url = '/user/display_profile';
	var pars = 'id=' + user_id + '&profile=' + profile;
	var myAjax = new Ajax.Updater( 'UserProfile', url, {
		method: 'post',
		parameters: pars,
		onComplete: result_confirm
	});	
}


// URL折り返し（Firefox）
(function () {
	if (navigator.appName != 'Netscape') {
		return;
	}	
	var resolver = document.createNSResolver(document.documentElement);
	var nodes = document.evaluate(
			'/descendant::*[not(contains(" TITLE STYLE SCRIPT TEXTAREA XMP ", concat(" ", local-name(), " ")))]/child::text()',
			document.documentElement,
			resolver,
			XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,
			null
		);
//	var regexp = new RegExp("([!-%'-/:=\\?@\\[-`\\{-~]|&amp;)");
	var regexp = new RegExp("([!-%'\\)-/:=\\?@\\\\-`\\|-~]|&amp;)");
	var range  = document.createRange();
	var wbr    = document.createElement('wbr');
	var lastIndex;
	var node;
	for (var i = 0; i < nodes.snapshotLength; i++)
	{
		node = nodes.snapshotItem(i);
		range.selectNode(node);
		while (node && (lastIndex = range.toString().search(regexp)) > -1)
		{
			range.setStart(node, lastIndex+RegExp.$1.length);
			range.insertNode(wbr.cloneNode(true));
			node = node.nextSibling.nextSibling;
			range.selectNode(node);
		}
	}
	range.detach();
})();


// トップページ項目表示・非表示切替
function changeTop(obj,objs){
	document.getElementById(obj).style.display = "block";
	var arr = objs.split("/");
	var count = arr.length;
	for (var i = 0; i < count; i++) {
		document.getElementById(arr[i]).style.display = "none";
	}
}


// 投票「気になる！」
function vote_top(topic_id,components_id){
	var now=new Date();
	var point = "point" + components_id;
	var vote = "vote" + components_id;

	e = document.getElementById(vote).childNodes[0];
	e.onclick = '';
	e.src = '/p/images/btn_interest02.gif';

	new Effect.Fade(point, { from:1.0, to:0.1, duration:1.0});
	new Effect.Fade(vote, { from:1.0, to:0.1, duration:1.0});
	var myAjax = new Ajax.Request('/votes/index/' + topic_id + '/' + components_id + "?" + now, {
		method: 'post',
		onSuccess: displayResultVote_top,
		onFailure: displayFail
	});
}
function displayResultVote_top(responseHttpObj){
	var res  = responseHttpObj.responseText;
	res_arr = res.split("/");
	user_id = res_arr[2];
//alert(res);
	if(Regist_id != "" && user_id == 0){
		var del_regist = "regist" + Regist_id;
		r = document.getElementById(del_regist).childNodes[0];
		r.style.display = 'none';
	}
	Regist_id = res_arr[1];

	var point = "point" + res_arr[1];
	var vote = "vote" + res_arr[1];
	if(user_id == 0){
		var regist = "regist" + res_arr[1];
	}

	e = document.getElementById(vote).childNodes[0];
	e.onclick = '';
	e.src = '/p/images/btn_interest02_off.gif';
	e.style.cursor = 'default';

	new Effect.Appear(point, { from:0.1, to:1.0, duration:1.0});
	new Effect.Appear(vote, { from:0.1, to:1.0, duration:1.0});
	if(user_id == 0){
		new Effect.Appear(regist, { from:0.1, to:1.0, duration:1.0});
	}
	$(point).innerHTML = "<em>" + res_arr[0] + "</em>";

}
