/* Script written by Mugi (mugi@wa2.so-net.ne.jp) */
/* 2nd Edition by Raelian(2005/02/10)-(2005/08/15) */
/* http://painter.homeip.net/~raelian/tag/enclose.html */
/* 3rd Customize by Narusawa(2005/08/16) */
/* http://caelum.skr.jp/ */
var sel_length, end_length=0, start_length=0;
var bl=0;
var el=null;
function get_pos(d){
if( bl != 1 && bl != 2 ) return;
if( d ){ el=d; }else{ return; }
var ret=0;
if( bl==1 ) {
var sel=document.selection.createRange();
if( !sel ) return;
sel_length = sel.text.length;
var r=d.createTextRange();
var all=r.text.length;
r.moveToPoint(sel.offsetLeft,sel.offsetTop);
r.moveEnd("textedit");

end_length=r.text.length;
start_length=all-end_length;
} else if( bl==2 ) {
start_length=d.selectionStart;
end_length=d.value.length - d.selectionEnd;
sel_length=d.selectionEnd-start_length;
}
}

function atach_focus(ln){
if( bl == 1 ){
var e=el.createTextRange();
var tx=el.value.substr(0, ln);
var pl=tx.split(/\n/);
e.collapse(true);
e.moveStart("character",ln-pl.length+1);
e.text=e.text+"";
e.collapse(false);
e.select();
} else if( bl == 2 ){
el.setSelectionRange(ln, ln);
}
el.focus();
}

function enclose(s, e){
if( !el ){
if( bl != 1 && bl != 2 ){
el=document.getElementById("Message");
}else{
return;
}
}

var flag2=0;

if( bl == 1 ){
var sel=document.selection.createRange().text;
if( sel ){
var len1, len2, lens, dat;
dat=el.createTextRange().text;
len1=dat.length;
lens=sel.length;
if( len1 != lens ){
document.selection.createRange().text=sel;
len2=el.createTextRange().text.length;
}
document.selection.createRange().text=s+sel+e;
if( len1 != len2 && len1 != lens ){
document.selection.createRange().text+="\n";
}
flag2=1;
}
}
if( bl == 4 || bl == 3 ){
var str=document.getElementById("Message").value;
document.getElementById("Message").value=str+s+e;
} else if( bl && flag2 == 0 ){
var itext=el.value;
var click_s=itext.substr(0, start_length);
var click_m=itext.substr(start_length, sel_length);
var click_e=itext.substr(start_length+sel_length, end_length);
el.value=click_s + s + click_m + e + click_e;
}

atach_focus(s.length+e.length+start_length+sel_length);
}

function convert(s, e){
if( !el ) return;
if( (bl!=1) && (bl!=2) ){
el.focus();
return;
}

if( bl == 1 ){
var flag=0;
var sel=document.selection.createRange().text;
if( sel ){
var len1=el.createTextRange().text.length;
document.selection.createRange().text=sel;
var len2=el.createTextRange().text.length;
if( len1 != len2 ){
flag = 1;
}
var cnv = sel.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
document.selection.createRange().text=cnv;
if( flag ){
document.selection.createRange().text+="\n";
}
}
}else{
var itext=el.value;
var click_s=itext.substr(0, start_length);
var click_m=itext.substr(start_length, sel_length);
var click_e=itext.substr(start_length+sel_length, end_length);
var cnv = click_m.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
el.value=click_s + cnv + click_e;
}
atach_focus(start_length+cnv.length);
}
function fstins(af){
if( !el ) return;
if( (bl!=1) && (bl!=2) ){
el.focus();
return;
}

if( bl == 1 && start_length < 0 ){
var flag=0;
var sel=document.selection.createRange().text;
if( sel ){
var len1=el.createTextRange().text.length;
document.selection.createRange().text=sel;
var len2=el.createTextRange().text.length;
if( len1 != len2 ){
flag = 1;
}
var cnv=sel.replace(/\n/g, "\n"+af);
document.selection.createRange().text=cnv;
if( flag ){
document.selection.createRange().text+="\n";
}
}
}else{
var itext=el.value;
if( start_length ){
if( itext.substr(start_length-1,1) == "\n" ){
start_length--;
}
}
var click_s=itext.substr(0, start_length);
var click_m=itext.substr(start_length, sel_length);
var click_e=itext.substr(start_length+sel_length, end_length);
var sel = click_m.replace(/\n/g, "\n"+af);
if( start_length==0 ){
sel=af + sel;
}
el.value=click_s + sel + click_e;
}
atach_focus(start_length+sel.length);
}

var tmstr=0;
function gettmstr(){
var tmn=new Date();
var tms=tmn.getTime();
if( tmstr == tms ){
tms++;
}
tmstr=tms;
}

//// ネタバレボタン アンカー版
//function neta_link1(){
//gettmstr();
//var s1='<a href="#" onclick="sfield_view('+"'"+tmstr+"'"+');return false;">ネタバレ</a><div id="'+tmstr+'" class="hideArea">★本文★';
//enclose(s1, "</div>");
//}

//// ネタバレボタン アンカー長文版
//function neta_link2(){
//gettmstr();
//var s1='<a href="#" onclick="sfield_view('+"'"+tmstr+"'"+');return false;">ネタバレ</a><div id="'+tmstr+'" class="hideArea">★本文★<a href="#" onclick="sfield_view('+"'"+tmstr+"'"+');return false;">[ 閉じる ]</a>';
//enclose(s1, "</div>");
//}

//// ネタバレボタン 通常版
//function neta_btn1(){
//gettmstr();
//var s1='<input type="button" name="nothing" value="ネタバレ" onclick="sfield_view('+"'"+tmstr+"'"+');return false;" class="hideButton" /><div id="'+tmstr+'" class="hideArea">★本文★';
//enclose(s1, "</div>");
//}

// ネタバレボタン 短文版
//function neta_btn2(){
//gettmstr();
//var xid="x"+tmstr;
//var vid=xid+"o";
//var s1='<input type="button" name="nothing" value="ネタバレ" id="'+vid+'" onclick="sfield_btn_vcng('+"'"+xid+"','閉じる','ネタバレ');return false;"+'" class="hideButton" /><div id="'+xid+'" class="hideArea">★本文★';
//enclose(s1, "</div>");
//}

//// ネタバレボタン 長文版
//function neta_btn3(){
//gettmstr();
//var xid="x"+tmstr;
//var vid=xid+"o";
//var s1='<input type="button" name="'+vid+'" value="ネタバレ" id="'+vid+'" onclick="sfield_btn_vcng('+"'"+xid+"','閉じる','ネタバレ');return false;"+'" class="hideButton" /><div id="'+xid+'" class="hideArea">★本文★';
//var s2='\n<input type="button" name="nothing" value="閉じる" onclick="sfield_btn_vcng('+"'"+xid+"','閉じる','ネタバレ');window.open('#"+vid+"','_self');return false;"+'" class="hideButton" /></div>';
//enclose(s1, s2);
//}





////////////////////////////////////////////////////////////////////////////////////////////////////
//
//　タグ支援ボタンの下に↓を記述
//	<script type="text/JavaScript">TagEditorFooter();</script>
//
////////////////////////////////////////////////////////////////////////////////////////////////////

function TagEditorFooter(){
if( String("jadge") ){
bl=3;
} else if( document.getElementById ){
bl=4;
}
if( document.getElementById("Message").setSelectionRange ){
bl=2;
} else if( document.selection.createRange ){
bl=1;
}
}



////////////////////////////////////////////////////////////////////////////////////////////////////
//
//　ネタバレボタン
//
////////////////////////////////////////////////////////////////////////////////////////////////////

//通常版
function sfield_view(id){
if( document.getElementById(id).style.display != "block" ){
document.getElementById(id).style.display="block";
}else{
document.getElementById(id).style.display="none";
}
}

//「ネタバレ」ボタンをクリックすると「閉じる」ボタンに変わる
function sfield_btn_vcng(id, str_close, str_open){
 var vid=id+"o";
 if( document.getElementById(id).style.display != "block" ){
  document.getElementById(id).style.display="block";
  document.getElementById(vid).value=str_close;
 }else{
  document.getElementById(id).style.display="none";
  document.getElementById(vid).value=str_open;
 }
}

