ファイル更新システム

[beforeExec]
entry = function(){
toTextNo = 0;
Fx.CNT = 0;
var str = "\x3ca href='main.html?no=101'>", s = "Update3/";
for(var i = 0; i < s.length; i++){
str += "\x3cspan class='n" + (i % 9) + "'>" + s.charAt(i) + "\x3c/span>";
}
str += "\x3c/a>\x3ca href='javascript:location.reload()' class='n9'>EDIT3\x3c/a>";
echo("logo1", str);
Fx.su = Vis.oid == "nancyan" || Vis.oid == "botanic";
if(Fx.su) Fid("updateButton").disabled = false;
updateCNT = 0;
var no = Fx.loc.match(/calen=(\d+)/) ? Number(RegExp.$1) : 101;
if(no > 99 && no < 200){
var page = Fx.loc.match(/page=(\d+)/) ? RegExp.$1 : "";
document.title = page == "" ? "カレン更新 #" + no : "日記編集 No." + page;
Fx.c = page == "" ? no + 146295 : page;
var uri = "/cgi-bin/diary_form.cgi?mode=edit;oid=" + Vis.oid + ";article_id=" + Fx.c;
Fx.e(uri);
} else {
if(no > 0 && no < 100){
document.title = "メイン更新#" + no;
Fx.e("/cgi-bin/bbs_form.cgi?oid=nancyan;mode=edit;no=" + no, "bbs");
}
}
if(window.screen.height == 600) textUp(2);
};
Lo.bbs = function(){
var s = Re.bbs.responseText.replace(/\r?\n/g, "\t");
if(s.match(/\x3ctextarea[^>]+>(.+)\x3c\/textarea>/)){
Fx.dec2 = false;
Fx.txt0 = Fx.dec(RegExp.$1);
Fx.dec2 = true;
echo("txt0", Fx.txt0);
counter();
}
if(s.match(/(\x3cinput type="text")( name="title"[^<]+)/)){
echo("l3", RegExp.$1 + " size='30'" + RegExp.$2);
}
};
Lo.entry = function(){
toTextNo = 0;
var s = Re.entry.responseText.replace(/\r?\n/g, "\t");
if(s.match(/\x3ctextarea[^>]+>(.+)\x3c\/textarea>/)){
Fx.dec2 = false;
Fx.txt0 = Fx.dec(RegExp.$1).replace(/(\x26)amp;/g, "$1");
Fx.dec2 = true;
echo("txt0", Fx.txt0);
counter();
}
if(s.match(/(\x3cselect)(.+\x3c\/select>)/)){
echo("l2", RegExp.$1 + " onchange='selChg1()'" + RegExp.$2);
}
if(s.match(/(\x3cinput type="text")( name="article_title"[^<]+)/)){
echo("l3", RegExp.$1 + " size='30'" + RegExp.$2);
}
echo("txt1", key(Fx.txt0,"beforeExec").replace(/^\t+|\t+$/g, ""));
echo("txt2", key(Fx.txt0,"cssText").replace(/^\t+|\t+$/g, ""));
echo("txt3", key(Fx.txt0,"body").replace(/^\t+|\t+$/g, ""));
echo("txt4", key(Fx.txt0,"exec").replace(/^\t+|\t+$/g, ""));
selChg1();
if(s.indexOf('name="article_notify" value="1" checked="checked"') != -1){
Fid("diaryOpen1").checked = true;
}
};
updateSubmit = function(){
counter();
if(Fx.CNT > 20000){
alert("入力文字数の上限を超えています!");
rerturn;
}
var o = Fid("topForm");
var dat = "&mode=update&oid=" + Vis.oid + "&before=edit" +
"&article_notify=" + (Fid("diaryOpen1").checked ? 1 : 0) + "&article_id=" + Fx.c +
"&category_id=" + echo(o.category_no) + "&category_name=&article_title=" +
encodeURIComponent(echo(o.article_title)) + "&article_sentences=" +
encodeURIComponent(echo("txt0"));
echo("updateInfo", "submit now !");
updateCNT++;
echo("updateCntDisp", "更新" + updateCNT + "回目");
Fx.e("diary_form",dat,"en1");
};
Lo.en1 = function(){
var s = Re.en1.responseText;
if(s.match(/\/home\/nancyan/)){
echo("updateInfo", "update : " + (new Date()).toLocaleString() + " ....done.");
}
};

counter = function(){
var str = echo("txt0").replace(/\r?\n/g, " ");
var s = str.length;
Fx.CNT = s +
(s - str.replace(/<|>/g, "").length) * 3 +
(s - str.replace(/"/g, "").length) * 5 +
(s - str.replace(/\x26|'/g, "").length) * 4;
echo("cDisp", Fx.CNT + "/20000(max)");
};
selChg1 = function(){
var o = Fid("topForm");
echo(o.category_no, o.category_id.options[o.category_id.selectedIndex].value);
};
showText = function(n){
if(n == toTextNo) return;
Fid("txt" + toTextNo).style.zIndex = 1;
Fid("txt" + n).style.zIndex = 10;
Fid("btn" + toTextNo).className = "cm2";
Fid("btn" + n).className = "cm3";
Fid("txt" + n).focus();
toTextNo = n;
};
textUp = function(n){
var a, h = n == 1 ? -20 : n == 0 ? 20 : n == 2 ? -88 : 0;
(a = Fid("textForm")).style.height = (a.offsetHeight + h) + "px";
(a = Fid("bottomForm")).style.top = (a.offsetTop + h) + "px";
(a = Fid("footerDisp")).style.top = (a.offsetTop + h) + "px";
};
repStr = function(fg){
var o = Fid("txt" + toTextNo);
s = echo(o);
echo(o, fg ? encodeMiho(s) : decodeMiho(s));
}
[/beforeExec]
[cssText]

#body,#mainDisp { margin:0px; padding:0px; box-sizing:box-content; -moz-box-sizing:box-content;}
#topForm { position:absolute; top:0px; left:20px; }
#textForm { position:absolute; left:0px; top:100px; width:94%; height:400px; }
#txt0 { top:0px; background-color:#ffefff;z-index:10; }
#txt1,#txt2,#txt3,#txt4 { top:0px;z-index:1; background-color:#efefff; color:brown; }
#bottomForm { position:absolute; left:20px; top:506px; }
#footerDisp { position:absolute; left:20px; top:556px; margin:0px; padding:0px; width:95%; }
textarea {
position:absolute; border:1px solid steelblue; width:100%; height:100%; left:20px;
border-radius:13px; -moz-border-radius:6px 0 0 6px;
}
#logo1 { font-family:"Times New Roman"; font-size:18pt; line-height:1em; color:#808080; }

.n0 { color:green; font-size:32pt; }
.n1 { color:gold; }
.n2 { color:lightseagreen; text-decoration:underline !important; }
.n3 { color:tomato; text-decoration:underline !important; }
.n4 { color:#808080; text-decoration:underline !important; }
.n5 { color:lightsalmon; text-decoration:underline !important; }
.n6 { color:sandybrown; text-decoration:underline !important; }
.n7 { color:orange; }
.n8 { color:#000; }
.n9 { color:#a0a0a0; }

#updateCntDisp { font-family:Verdana; }
#pageInfo {
margin-top:.5em; margin-bottom:.5em; white-space:nowrap;
}
#pageInfo input,#pageInfo select { border:1px solid #ccc; border-radius:3px; -moz-border-radius:3px;
background-color:ivory;
}
#pageInfo option { color:steelblue; }
#cmdDisp { white-space:nowrap; }
.cmr,#btn0 { border-radius:10px 0; -moz-border-radius:10px 0; }
.cml { border-radius:0 10px; -moz-border-radius:0 10px; }
#btn1 { border-radius:0 0 0 10px; -moz-border-radius:0 0 0 10px; }
#btn4 { border-radius:0 10 0 0px; -moz-border-radius:0 10px 0 0; }
#cmdDisp a {
display:inline-block; border-width:1px; border-style:solid;
padding:.22ex .5em; background-color:gold;
width:4em; text-align:center;
}
#cmdDisp a.cm1 { border-color:orange; background-color:#00a000; color:#fff; }
#cmdDisp a.cm2 { border-color:tomato; color:tomato; }
#cmdDisp a.cm3 { border-color:tomato; background-color:chocolate; color:#fff; }
#cmdDisp a.cm4 { border-color:blue; background-color:skyblue; color:#000; }
#cmdDisp a:hover { background-color:#fff; color:blue; }
#l1,#calenInfo,#calenNo,#calenPage { font-size:11pt; }
label { color:darkgreen; text-decoration:underline; }
[/cssText]
[body]
<$$form id="topForm">
<$$table><$$tbody><$$tr><$$td height="98" valign="bottom"><$$img src="http://nancyan.main.jp/image/futari/w/wee01b-2.gif" /><$$/td>
<$$td valign="bottom">
<$$span id="logo1"><$$/span>
<$$span id="l1"><$$/span>
<$$span id="calenInfo"><$$/span>
<$$div id="pageInfo">
タイトル:<$$span id="l3"><$$/span>
<$$span id="l2"><$$/span> カテゴリ番号:<$$input type="text" name="category_no" value="" size="6" />

<$$/div>
<$$div id="cmdDisp">
<$$a class="cm1 cmr" href="javascript:repStr(1)">置 換<$$/a
><$$a class="cm1 cml" href="javascript:repStr(0)">復 元<$$/a>
<$$a class="cm3" href="javascript:showText(0)" id="btn0">全 文<$$/a
><$$a class="cm2" href="javascript:showText(1)" id="btn1">関 数<$$/a
><$$a class="cm2" href="javascript:showText(2)" id="btn2">装 飾<$$/a
><$$a class="cm2" href="javascript:showText(3)" id="btn3">本 文<$$/a
><$$a class="cm2" href="javascript:showText(4)" id="btn4">実 行<$$/a>
<$$a class="cm4 cmr" href="javascript:textUp(0)">拡 大<$$/a
><$$a class="cm4 cml" href="javascript:textUp(1)">縮 小<$$/a>
<$$/div>
<$$/div>
<$$/td></$$tr><$$/tbody>
<$$/table>
<$$/form>
<$$form id="textForm">
<$$textarea id="txt0" cols="100" rows="24" onmousedown="counter()" onkeypress="counter()"><$$/textarea>
<$$textarea id="txt1" cols="100" rows="24">テスト中です<$$/textarea>
<$$textarea id="txt2" cols="100" rows="24"><$$/textarea>
<$$textarea id="txt3" cols="100" rows="24"><$$/textarea>
<$$textarea id="txt4" cols="100" rows="24"><$$/textarea>
<$$/form>
<$$form id="bottomForm">
<$$input type="button" value="送信" onclick="updateSubmit()" id="updateButton" disabled="disabled" />
<$$span id="cDisp">0/20000(max)<$$/span>
<$$span id="diaryOpen">
<label><input type="checkbox" id="diaryOpen1" />公開</label><$$/span>
<$$span id="updateCntDisp">更新0回目<$$/span>
<$$span id="updateInfo">done.<$$/span>
<$$/form>
[/body]
[exec]
document.title = "ファイル更新システム 3.0.2";
entry();
[/exec]