$(function(){
    $("table .toggleHandle").bind("click", function(){
        $(this).next("div").slideToggle() ;
    }) ;
    $("td a").bind("click", function(e){
        e.preventDefault() ;
    });
    setResult() ;

    $("#mailaddress").bind("focus", function(){
        $(this).val("") ;
    }).bind("blur", function(){
        if(!$(this).val()) {
            $(this).val("メールアドレスを入力してください。");
        }
    });


    // usage ajax elements.
    var $addr = $("#mailaddress"),
        $loading = $("#ajaxLoading"),
        $msg = $("#ajaxMessages") ;

    // easy validate mail address.
    function validateAddress(addr) {
        return /^[^@]+@[^@]+$/.test(addr) ;
    }

    // call jQuery ajax.
    function runAjax() {
        $loading.show();
        var getSubmitData = function() {
                return $("#calculateForm").find("select, :text, :hidden").serialize();
            },
            successCallback = function(data, status) {
                var timer ;

                $loading.hide() ;
                $msg.addClass("success").html(data.messages);
                $msg.slideDown() ;
                timer = setInterval(function(){
                    $msg.slideUp(function(){
                         $msg.removeClass("success").html("") ;
                    }) ;
                    clearInterval(timer);
                },3000);
        },
        $t = $(this) ;

        $.ajax({
            "url" : "form/index.php",
            "data" : getSubmitData(),
            "type" : "POST",
            "dataType" : "json",
            "success" : function(d, s) {
                successCallback(d, s) ;
            },
            "error" : function(XMLHttpRequest, textStatus, errorThrown) {
            },
            "complete" : function(a, b) {
                $loading.hide() ;
            }
        });
    }



    $("#ajaxSubmit").bind("click", function(e){
        var timer ;
        if(!validateAddress($addr.val())) {
            $msg.addClass("error").html("メールアドレスを正しく入力して下さい。");
            $msg.slideDown(function(){
                timer = setInterval(function(){
                    $msg.slideUp(function(){
                        $(this).removeClass("error");
                    }) ;
                    clearInterval(timer);
                }, 3000);
            });
        }
        else {
            runAjax() ;
        }
        e.preventDefault() ;
    });
});

