/* 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/ */ /* 4th Customize by くらげ(2008/11/3) */ /* http://kurageya.xrea.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, "&").replace(//g, ">").replace(/"/g, """); 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, "&").replace(//g, ">").replace(/"/g, """); 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; }