
function submitDynFormAjax(name, redirect_url)
{
    try{
        //alert('frm_'+name);return false;    
        var form = document['frm_'+name];
    
        //gather the form variables and post them
        var form_data = {};
        var fields = form.elements;
    	for(var i=0; i < fields.length; ++i)
    	{
    	    if(fields[i].value)
    	    {
    	       form_data[fields[i].name] = (fields[i].type=='radio' || fields[i].type == 'checkbox') ? (fields[i].checked ? fields[i].value : '') : fields[i].value;
    	    }
    	}
    	
    	form_data['ajax'] = true;
    	var url = form.action;

        Ext.Ajax.request({
            url: url,
            method: 'POST',
            params: form_data,
            success: function(result, request) 
            {
                var jsonData = Ext.util.JSON.decode(result.responseText);
                if(jsonData.success == false)
                {
                    show_error(jsonData);
                }
                else
                {
                    if( redirect_url != '')
                    {
                        window.location.href = redirect_url;
                        return false;
                    }
                    else
                    {
                        show_success(jsonData, name);
                    }

                    if (window.currentwindow)
                    {
                        window.currentwindow.hide();
                    }
                }
            },
            failure: function(result, request) 
            {
                var jsonData = Ext.util.JSON.decode(result.responseText);
                Ext.MessageBox.alert('Failed','unable to save the form: '+jsonData.message);
            }
        });
        
    }
    catch(e)
    {
        //alert(e.message);
    }
    return false;
}

function show_success(json_response, name)
{
    if(typeof ga_track_ajax_form == 'function') 
    {
        ga_track_ajax_form(name);
    }
    Ext.MessageBox.alert('Success', '<br />'+json_response.message);
}

function show_error(json_response)
{
    Ext.MessageBox.alert('Error','Unable to save change: <br /><br />'+json_response.message);
}

