
(function(){
    function success(){
        $("error").setStyle("display", "none");
        $("success").setStyle("display", "block").highlight("#bce8ee");
        $("submit-btn").set("disabled", "disabled");
    }

    function error(errs){
        var ul = $("error-list");
        ul.empty();
        errs.each(function(msg){
            ul.adopt(new Element("li", {
                html: msg
            }));
        });
        $("success").setStyle("display", "none");
        $("error").setStyle("display", "block").highlight("#f0ae95");
    }

    $("submit-btn").addEvent("click", function(){
        var frm = $("contact-frm");

        var data = {};
        $$("#contact-frm input, #contact-frm textarea").each(function(i){
            data[i.name] = i.value;
        });
        // 入力チェック
        var errs = [];
        // 必須項目
        var required = ["お名前", "メールアドレス", "メールアドレス（確認）",
                        "件名", "お問い合わせ内容"];
        required.each(function(i){
            if (data[i] == ""){
                errs.push(i + "を入力してください");
            }
        });
        // メールアドレス
        if (data["メールアドレス"] != data["メールアドレス（確認）"]){
            errs.push("メールアドレスが異なります");
        }
        // 本文
        if (data["お問い合わせ内容"].length > 300){
            errs.push("お問い合わせ内容は300字以内で入力してください");
        }
        if (errs.length){
            error(errs);
            return;
        }

        new Request({
            url: "submit.php",
            data: data,
            link: "ignore",
            onSuccess: function(r){
                if (r != "OK"){
                    error(["システム エラーが発生したため送信できませんでした"]);
                    return;
                }
                success();
            }
        }).send();
    });

    $("reset-btn").addEvent("click", function(e){
        $("submit-btn").set("disabled", null);
        $("error").setStyle("display", "none");
        $("success").setStyle("display", "none");
    });
})();
