diary_form 3.1.0

[diary:172231]
[beforeExec]
entry = function(load,offset){
Fid("eDisp").className = "eDisp_sleep";
Fx.page = load ? (Fx.loc.match(/page=(\d+)/) ? RegExp.$1 : "") : echo("article");
if(Fx.page.match(/[^0-9]/) || Fx.page == "") return; // Fx.page = 172231;
document.title = "eDisp:" + Fx.page;
if(typeof(Fx.page) == "string") Fx.page = Number(Fx.page);
if(!load) Fx.page += offset;
echo("article", Fx.page);
echo("eDispMsgDisp", "A" + Fx.page + " : diary data loadding...");
loadEntry();
};
loadEntry = function(){
var doc = Fx.e(["/cgi-bin/diary_form.cgi?mode=edit;oid=",Vis.oid,";article_id=",Fx.page],false);

Fx.dec2 = false;
echo("eDisp", doc.match(/<textarea[^>]+>(.+?)<\/textarea>/) ? Fx.dec(RegExp.$1).replace(/\x26amp;/g, "\x26") : "");
eDispCounter();
if(echo("eDisp") == ""){
echo("eDispMsgDisp", [Fx.page,"の記事は削除されています"]);
echo("msgTitle", "");
var o = Fid("article"); o.focus(); o.select();
return;
}
echo("msgTitle",
doc.match(/<input type="text" name="article_title" value="([^"]+)/) ? RegExp.$1 : ""
);
echo("cateSelDisp",
doc.match(/(<select)(.+<\/select>)/) ?
  RegExp.$1 + " id='cateSel' onchange='selChg1()'" + RegExp.$2 : ""
);
selChg1();
Fid("diaryOpen").checked = doc.match(/name="article_notify" value="1" checked="checked"/);

echo("eDispMsgDisp", "done.");
Fid("eDisp").className = "eDisp_act";
var fg = doc.match(/\x3coption value="\d+" selected="selected"/);
echo("userPost", "(" + (fg ? "本人の記事" : "他人の記事") + ")").className = fg ? "userpost-is" : "userpost-no";
};
upDateEntry = function(){
echo("eDispMsgDisp", "/cgi-bin/diary_form.cgi submit now...");

Fx.e("diary_form",
diaryForm(Fx.page, echo("msgTitle"), echo("eDisp"),Fid("diaryOpen").checked, echo("cate")), "uE2"
);
};
Lo.uE2 = function(){
echo("eDispMsgDisp", "update : " + (new Date()).toLocaleString() + " ....done.");

};
eDispCounter = function(){
echo("eDispCountDisp", echo("eDisp").length + "/16000(max)");
};
counter = function(){
var str = echo("eDisp").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("Disp", Fx.CNT + "/20000(max)");
};
selChg1 = function(){ echo("cate", echo("cateSel")); };
eDispSize = function(fg){
var o = Fid("eDisp");
if(eDispSize.def == null){
eDispSize.def = 41;
eDispSize.pich = (o.offsetHeight - 2) / o.rows;
}
eDispSize.def += fg ? 5 : -5;
o.style.height = Math.floor(eDispSize.pich * eDispSize.def) + "px";
};
repEnt = function(){
return;
var o = Fid("eDisp");
var s = echo(o).replace(/\n/g, "\t");
s = s.replace(/(A\d+ \- A)\d+(\t.A)(\d+)/g, function(e0,e1,e2,e3){
return e1 + (Number(e3) + 1) + e2 + e3;}
);
s = s.replace(/(A\d+ \- A)(\d+)$/g, function(e0,e1,e2){
return e1 + Math.floor(Number(e2) / 1000) + (Number(e2) % 1000 > 4 ? "500" : "000");}
);
s = s.replace(/\t/g, "\n");
echo(o, s);
};
re1 = function(){
var msg = echo("eDisp").replace(/\n/g, "\t");
msg = msg.replace(/www\.(geocities\.jp\/musicgarden_jp|nancyan\.net)\/(.*?)([^\/]+\.)([0-9a-zA-Z\-_]+)/gi,
function(e0,e1,e2,e3,e4){
ty = e4.match(/(gif|jpg|png|bmp)/) ? 0 : e4.match(/(mp3|mid|3gp|mg2|m4a|flv|wmv|swf)/) ? 1 : 2;
return "nancyan.main.jp/" + (ty == 0 ? "image/futari/" +
(e3.charAt(0).match(/[0-9\-_]/) ? "1" : e3.charAt(0).toLowerCase()) + "/" :
ty == 1 ? "music/" : e2) + e3 + e4;
});

echo("eDisp", msg.replace(/\t/g, "\n"));
};
diaryCodeEntry = function(){
var o = Fid("eDisp");
if(echo(o) == "*"){
var str = '\x3cdiv class="diaryObjInfo">【\x3ca href="/home/yadokari/main.html?diary=' + Fx.page + '">ツールの実行\x3c/a>】 【\x3ca href="/home/yadokari/main.html?diary=172231&page=' + Fx.page + '">更新】\x3c/div>\n\x3cdiv class="diaryCode">[diary:' + Fx.page + ']\n[' + 'beforeExec]\n\n[' + '/beforeExec]\n[' + 'cssText]\n\n[' + '/cssText]\n[' + 'body]\n\n[' + '/body]\n[' + 'exec]\ndocument.title = "";\n[' + '/exec]\n[' + '/diary:' + Fx.page + ']\n\x3c/div>\n\n\x3cdiv class="diaryInfo">■diaryCode作成日 ' + (new Date()).toLocaleString() + '\x3c/div>\n';
echo(o, str);
echo("cateSel", 5);
}
};
delbr = function(){
echo("eDisp", echo("eDisp").replace(/\x3cbr \/>/g, ""));
};

bodyReplaceAll = function(s1, s2){
var str = echo("eDisp").replace(/\n/g, "\t");
var str1 = str.replace(/(\[body\]).+$/, "$1");
var str2 = str.replace(/^.+(\[\/body\])/, "$1");
var s = key(str, "body");
s = s.split(s1).join(s2);
echo("eDisp", (str1 + s + str2).replace(/\t/g, "\n"));
};
bodyDec = function(fg){
var str = echo("eDisp").replace(/\n/g, "\t");
var s1 = str.replace(/(\[body\]).+$/, "$1");
var s2 = str.replace(/^.+(\[\/body\])/, "$1");
var s = key(str, "body");
s = fg ? s.replace(/(\x3c)(\/?)(span|div|a|i|b|a|br|img|strong)( |\/?>)/g, "$1" + '$' + '$' + '$' + '$' + "$2$3$4") : s.replace(/\x3c\$\$/g, "\x3c");
echo("eDisp", (s1 + s + s2).replace(/\t/g, "\n"));
};

repEnt = function(){
bodyReplaceAll(echo("rep1"), echo("rep2"));
};

[/beforeExec]
[cssText]
form { font-size:90%; }
.in2 { font-size:80%; }
#eDisp { font-size:110%; }
.eDisp_act { background-color:#fff; color:#000; }
.eDisp_sleep { background-color:#ffefff; color:#ccc; }
.userpost-is { color:brown; font-weight:bold; }
.userpost-no { color:#fff; font-weight:bold; }
[/cssText]
[body]
[form:eForm]
<$$span class="disp_logo">eDisp<$$/span>
<input type="button" value="before" onclick="entry(false,-1)" /><input type="button"
value="this" onclick="entry(false,0)" /><input type="button"
value="next" onclick="entry(false,1)" />
cate:<$$span id="cateSelDisp"><$$/span> <input type="text" id="cate" value="1" size="1" />
<$$span id="userPost"><$$/span>
no:<input type="text" id="article" size="6" value="" />
title:<input type="text" size="40" id="msgTitle" value="" />
[form:sep]
<input type="button" value="▲" onclick="eDispSize(0)" class="in2"/><input type="button" value="▼" onclick="eDispSize(1)" class="in2"/>
[append:1,eDisp]
<input type="button" id="eDispSubmitButton" value="submit" onclick="upDateEntry()" />
<$$span id="eDispCountDisp" class="geo"><$$/span>
<label><input type="checkbox" id="diaryOpen" />open</label><$$/span>
<$$span id="eDispUpdateCnt"><$$/span>
<$$span id="eDispMsgDisp"><$$/span>
[form:sep]
body : <input type="text" size="14" id="rep1" />→<input type="text" size="14" id="rep2" />
<input type="button" value="置換" onclick="repEnt()" />
<input type="button" value="bodyDec" onclick = "bodyDec(0)" />
<input type="button" value="bodyEnc" onclick = "bodyDec(1)" />
<input type="button" value="del-br" onclick="delbr()" />
<input type="button" value="new diaryCode" onclick="diaryCodeEntry()" />
<input type="button" value="nancyan.main.jp 変換" onclick="re1()" />
<input type="button" value="done" onclick="repEnt()"/>
[form:end]
[/body]
[exec]
eDispSize(1);
entry(true);
[/exec]
[/diary:172231]


■仕様書 2010 04/06 07:09 Wrote