cms.modules.filter =
{
    getQuery : function(formElement, queryData)
    {
		if (!queryData)
		{
            var queryData = new Object();
        }
		queryData["cms[template]"] = "ajax";
		
        var nodeNames = ["input", "select", "textarea"];
        for (var iNodeNames = 0 ; iNodeNames < nodeNames.length ; iNodeNames++)
        {
            var fields = formElement.getElementsByTagName(nodeNames[iNodeNames]);
            for (var iFields = 0 ; iFields < fields.length ; iFields++)
            {
                if (fields[iFields].className.match(/tinymce/))
                {
                    var tinyMceField = tinyMCE.get(fields[iFields].name);
                    fields[iFields].value = tinyMceField.getContent();
                    tinyMCE.execCommand('mceRemoveControl', false, fields[iFields].name);
                }
                queryData[fields[iFields].name] = fields[iFields].value;
            }
        }
        return queryData;
    },
	
	disableFields : function(formElement, state)
	{ 
        var nodeNames = ["input", "select", "textarea"];
        for (var iNodeNames = 0 ; iNodeNames < nodeNames.length ; iNodeNames++)
        {
            var fields = formElement.getElementsByTagName(nodeNames[iNodeNames]);
            for (var iFields = 0 ; iFields < fields.length ; iFields++)
            {
				fields[iFields].disabled = state;
            }
        }
	},

    submitAsHttpRequest : function(formElement, responseElementId, queryData)
    {
		this.disableFields(formElement, true);
		
        var request = new HttpRequest();
		request.formElement = formElement;
		if (responseElementId)
		{
			request.responseElement = document.getElementById(responseElementId);
        }
		request.setCallback(this.handleResponse, this);
        request.sendRequest(formElement.action, this.getQuery(formElement, queryData), true);
    },
	
	handleResponse : function(response, request)
	{
        this.disableFields(request.formElement, false);
		request.responseElement.innerHTML = response;
	}
}