
/**
 * 二重送信を避けるためsubmitを無効にするためのハンドラ
 */
function reserchDisabled()
{
    return false;
}

/**
 * フォーム検査＆送信AJAXクライアントのハンドラ
 */
function researchSender()
{
    $('#research_error').empty();
    $.ajax({
        'type':     "POST",
        'dataType': 'json',
        'url':      '/research/898/validate/',
        'data':     $('#research_form').serialize(),
        'success':  senderSuccessReceiver,
        'error':    senderErrorReceiver,
        'async':    false
    });
    return false;
}

/**
 * AJAXレシーバ（成功時）
 */
function senderSuccessReceiver(errorMessages)
{
    if (! errorMessages instanceof Array) {
        $('#research_error').append('<li>現在サーバのメンテナンス中です</li>');
        location.href = "#";
    }
    
    // バリデーションOK
    if (errorMessages.length == 0) {
        $('#research_form').unbind('submit');
        $('#research_form').submit();
        $('#research_form').bind('submit', reserchDisabled);
        return;
    }
    
    // バリデーションNG
    jQuery.each(errorMessages, function(i, errMsg) {
        $('#research_error').append('<li>'+ errMsg+ '</li>');
    });
    location.href = "#";
}

/**
 * AJAXレシーバ（失敗時）
 */
function senderErrorReceiver(xhr, status, e)
{
    $('#research_error').append('<li>現在サーバのメンテナンス中です</li>');
    location.href = "#";
}

$('#research_form').bind('submit', researchSender);

