/**
 * JQuery PTL binding
 * @author Alexey Scherbakov
 */

jQuery.ajaxSettings.traditional = true;

// TODO fixme enable ajax request queue

var Ptl = {
    ajaxSubmit: function(element, parameters, success, error) {
        var form = element.tagName == 'FORM' ? $(element) : $(element).parents("form:eq(0)");
        var params = form[0] ? form.serialize() : "";
        if (parameters) {
            if (params != "") {
                params += '&';
            }
            params += parameters;
        }
        Ptl.ajax(params, success, error);
        return false;
    },

    ajax: function(parameters, success, error) {
        var url = window.location.href;
        var i = url.indexOf('#');
        if (i > 0) url = url.substring(0, i);
        if (typeof parameters == "object") parameters = $.param(parameters);
        $.ajax({
            type: 'POST',
            url: url,
            cache: false,
            beforeSend : function (xhr) {
                xhr.setRequestHeader('X-Ajax', '1');
            },
            data: parameters,
            success: function(data, textStatus, xhr) {
                // firefox and chrome native JSON parsers hang on certain JSON data, so use eval
                data = eval(data);
                $(data).each(function(i, v) {
                    if (v.type == 'c') {
                        $('#' + v.id).html(v.html);
                    }
                });
                if (success) success(data, textStatus, xhr);
            },
            error: error
        });
        return false;
    }
};


