function sendForm(element, saveDataToForm, qtip, async, doCallBack)
{
    if(! saveDataToForm && saveDataToForm != false) {
        saveDataToForm = false;
    }
    
    if(! qtip && qtip != false) {
        qtip = false;
    }
    
    if(! async && async != false) {
        async = true;
    }
    
    if(! doCallBack && doCallBack != false) {
        doCallBack = true;
    }
    
    element.find('.formElementError').empty();
    
    var url = element.attr('action');
    
    $j.ajax({
        async: async,
        type: 'POST',
        url: url,
        dataType: 'json',
        data: element.serialize(),
        success: function(data) {
            if(data.success == 1) {
                element.data('sent', 'true');
                element.siblings('.formErrors').empty();
                
                if(saveDataToForm) {
                    element.data('data', data);
                }
                
                
                if(doCallBack) {
                    afterFormSuccess();
                }
            } else {               
                $j(data.errors).each(function() {
                    //IE and small monitors and explicit no qtip forms
                    if(this.name != 'sex' && this.name != 'terms' && this.name != 'newsletter') {
                        element.find('[name=' + this.name + ']').each(function() {
                            if($j(this).hasClass('input-1')) {
                                $j(this).addClass('input-1-error');
                            } else if($j(this).hasClass('input-2')) {
                                $j(this).addClass('input-2-error');
                            } else if($j(this).hasClass('input-3')) {
                                $j(this).addClass('input-3-error');
                            } else if($j(this).hasClass('input-4')) {
                                $j(this).addClass('input-4-error');
                            } else if($j(this).hasClass('input-5')) {
                                $j(this).addClass('input-5-error');
                            } else if($j(this).hasClass('input-6')) {
                                $j(this).addClass('input-6-error');
                            }
                        });
                    } else if(this.name == 'terms') {
                        if(qtip) {
                            
                        } else {
                            alert(this.message);
                        }
                    }
                    
                    element.find('#' + this.name +'-error').show();
                    
                    if(qtip) {
                        element.find('#' + this.name +'-error').text('' + this.message + '');
                    }
                });
            }
        }
    });
}
