げ、放置スクリプトがあった

ちょっとファイルの整理をしていたら、作りかけのまま放置されていたスクリプトが見つかった。
2007年8月だかCS3が出た2ヵ月後ぐらいに作っていたもの。放置されていたからには当然このままでは動かない。けれど捨てるには惜しい。もしかしてこれをネタにしていけば結構書くことがあるかも。
ということで現状のまま公開。そのうち解説とか書けるといいなあ。

/**************************************************************************/
/*                特定の時間保存していない場合に警告する                  */
/*                                                           by お~まち  */
/*                                              2007.08.27  Version 1.00  */
/**************************************************************************/
#targetengine "session"
limitMinutes = 0.2; //警告するまでの時間(分)
//開いているドキュメントのリストを操作
var docList = new Array();
app.eventListeners.add("afterNew",    addList, false);
app.eventListeners.add("afterOpen",   addList, false);
app.eventListeners.add("afterRevert", updateList, false);
app.eventListeners.add("afterSave",   updateList, false);
app.eventListeners.add("afterSaveAs", updateList, false);
app.eventListeners.add("beforeClose", removeList, false);
/* チェックを行うイベントのタイミング(ツールパネル、効かない)
addEL(app.menuActions.item("$ID/Selection Tool")); //選択ツール
addEL(app.menuActions.item("$ID/Direct Selection Tool")); //ダイレクト選択ツール
addEL(app.menuActions.item("$ID/kCropToolStringKey")); //ポジションツール
addEL(app.menuActions.item("$ID/Pen Tool")); //ペンツール
addEL(app.menuActions.item("$ID/Add Anchor Point Tool")); //アンカーポイントを追加ツール
addEL(app.menuActions.item("$ID/Remove Anchor Point Tool")); //アンカーポイントを削除
addEL(app.menuActions.item("$ID/Convert Direction Point Tool")); //アンカーポイントの切り換えツール
addEL(app.menuActions.item("$ID/Type Tool")); //横組み文字ツール
addEL(app.menuActions.item("$ID/Vertical Type Tool")); //縦組み文字ツール
addEL(app.menuActions.item("$ID/Path Type Horz Tool")); //横組みパスツール
addEL(app.menuActions.item("$ID/Path Type Vert Tool")); //縦組みパスツール
addEL(app.menuActions.item("$ID/Pencil Tool")); //鉛筆ツール
addEL(app.menuActions.item("$ID/Smooth Tool")); //スムーズツール
addEL(app.menuActions.item("$ID/Erase Tool")); //消しゴムツール
addEL(app.menuActions.item("$ID/Line Tool")); //線ツール
addEL(app.menuActions.item("$ID/Rectangle Frame Tool")); //長方形フレームツール
addEL(app.menuActions.item("$ID/Oval Frame Tool")); //楕円形フレームツール
addEL(app.menuActions.item("$ID/Polygon Frame Tool")); //多角形フレームツール
addEL(app.menuActions.item("$ID/Rectangle Tool")); //長方形ツール
addEL(app.menuActions.item("$ID/Oval Tool")); //楕円形ツール
addEL(app.menuActions.item("$ID/Polygon Tool")); //多角形ツール
addEL(app.menuActions.item("$ID/FrameGrid Horz Tool")); //横組みグリッドツール
addEL(app.menuActions.item("$ID/FrameGrid Vert Tool")); //縦組みグリッドツール
addEL(app.menuActions.item("$ID/$$$/ToolName/PushButtonTool")); //ボタンツール
addEL(app.menuActions.item("$ID/Scissors Tool")); //はさみツール
addEL(app.menuActions.item("$ID/Rotate Tool")); //回転ツール
addEL(app.menuActions.item("$ID/Scale Tool")); //拡大 / 縮小ツール
addEL(app.menuActions.item("$ID/Shear Tool")); //シアーツール
addEL(app.menuActions.item("$ID/Gradient Tool")); //グラデーションスウォッチツール
addEL(app.menuActions.item("$ID/kGradientFeatherTool")); //グラデーションぼかしツール
addEL(app.menuActions.item("$ID/Free Transform Tool")); //自由変形ツール
addEL(app.menuActions.item("$ID/Note Tool")); //注釈ツール
addEL(app.menuActions.item("$ID/Eyedropper Tool")); //スポイトツール
addEL(app.menuActions.item("$ID/Measure Tool")); //ものさしツール
addEL(app.menuActions.item("$ID/Grabber Hand Tool")); //手のひらツール
addEL(app.menuActions.item("$ID/Zoom Tool")); //ズームツール
addEL(app.menuActions.item("$ID/Swap Fill and Stroke Colors")); //塗りと線のカラーを入れ替える
addEL(app.menuActions.item("$ID/Toggle Fill and Stroke")); //塗りと線を入れ替え
addEL(app.menuActions.item("$ID/Apply Default Fill and Stroke Colors")); //初期値の塗りと線のカラーを適用
addEL(app.menuActions.item("$ID/Toggle Text and Object Control")); //テキストとオブジェクトコントロールを切り替える
addEL(app.menuActions.item("$ID/ApplyColor")); //カラーを適用
addEL(app.menuActions.item("$ID/ApplyGradient")); //グラデーションを適用
addEL(app.menuActions.item("$ID/ApplyNone")); //適用なし
addEL(app.menuActions.item("$ID/Normal View Mode Tool")); //標準モード
addEL(app.menuActions.item("$ID/Preview Mode Tool")); //プレビューモード
addEL(app.menuActions.item("$ID/Bleed Mode Tool")); //裁ち落としモード
addEL(app.menuActions.item("$ID/Slug Mode Tool")); //印刷可能領域モード
*/
//チェックを行うイベントのタイミング(その他)
addEL(app.menuActions.item("$ID/Cut"));
addEL(app.menuActions.item("$ID/Copy");
addEL(app.menuActions.item("$ID/Paste");
addEL(app.menuActions.item("$ID/Zoom In")); //ズームイン
addEL(app.menuActions.item("$ID/Zoom Out")); //ズームアウト
addEL(app.menuActions.item("$ID/ToggleViewSetting")); //デフォルトとプレビュー表示設定間を切り替える
addEL(app.menuActions.item("$ID/ToggleControlPanelTextMode")); //コントロールパネル内での文字と段落モード切り替え
function addEL (myMenu) {
    myMenu.eventListeners.add("afterInvoke", cktime, false);
}
//最終保存からの時間を調べて、過ぎてたら警告を出す
function cktime () {
    for (i = 0; i < docList.length; i++) {
        if (docList[i] != "" ) {
            var docName = docList[i].split("\t")[0];
            var myLimit = parseInt(docList[i].split("\t")[1]);
            var d = new Date();
            if (d.getTime() > myLimit ) {
                alert("ドキュメント '" + docName + "' は\n"
                    + "最後に保存(もしくは新規作成)されてから "
                    + limitMinutes + " 分経過しました。\n"
                    + "そろそろ保存したほうがいいですよ。");
            }
        }
    }
}
//開いているドキュメントのリストに追加
function addList (e) {
    var myStr = e.parent.name + "\t";
    var d = new Date();
    var myLimit = d.getTime() + limitMinutes * 60 * 1000;
    myStr += myLimit.toString();
    docList.push(myStr);
}
//開いているドキュメントのリストから削除
function removeList (e) {
    var myStr = e.parent.name;
    for (i = 0; i < docList.length; i++) {
        if (docList[i].split("\t")[0] == myStr ) {
            docList[i] = "";
            break;
        }
    }
}
//開いているドキュメントのリストの保存時間を更新
function updateList (e) {
    var myStr = e.parent.name;
    for (i = 0; i < docList.length; i++) {
        if (docList[i].split("\t")[0] == myStr ) {
            var d = new Date();
            var myLimit = d.getTime() + limitMinutes * 60 * 1000;
            docList[i] = myStr + "\t" + myLimit.toString();
            break;
        }
    }
}