﻿var data_edit_form_lastDisplayContainerId="";
var data_edit_form_lastEditFormHtmlUrl="";

function data_edit_form_show(displayContainerId,editFormHtmlUrl){
    new Ajax.Updater(displayContainerId, editFormHtmlUrl, { method: 'get', insertion: Insertion.Before });
    $(displayContainerId).hide();
    data_edit_form_lastDisplayContainerId=displayContainerId;
    data_edit_form_lastEditFormHtmlUrl=editFormHtmlUrl;
}

function data_edit_form_submit(editContainerId){
    var serializedFormData="";

    var elementsToValidate=$(editContainerId).getElementsBySelector('input[validate]');
    if(elementsToValidate.find(data_edit_form_isElementInvalid)) return;
    
    serializedFormData=Form.serializeElements($(editContainerId).getElementsBySelector('input','textarea','select'));
    
    new Ajax.Request(data_edit_form_lastEditFormHtmlUrl, { method: 'post', parameters: serializedFormData });
    
    $(editContainerId).remove();
    $(data_edit_form_lastDisplayContainerId).show();
    data_edit_form_lastDisplayContainerId="";
    data_edit_form_lastEditFormHtmlUrl="";
}

function data_edit_form_cancel(editContainerId){
    $(editContainerId).remove();
    $(data_edit_form_lastDisplayContainerId).show();
    data_edit_form_lastDisplayContainerId="";
    data_edit_form_lastEditFormHtmlUrl="";
}

function data_edit_form_isElementInvalid(elementToValidate){
    var v=$(elementToValidate).readAttribute("value");
    if(v=="") return false;
    switch($(elementToValidate).readAttribute("validate").toLowerCase()){
        case "float":
            var re_float=/^(\+|\-)?\d+(\.\d+)?$/;
            if(!(v.match(re_float))){
                alert("Bad number format");
                $(elementToValidate).activate()
                return true;
            }else{
                return false;
            }
            break;
    }
    return false;
}