var OrdinaCerchioClientiAbituali = new Class({

  Implements: Options,

  initialize: function(form, order, options) {
    this.form = $(form).addEvent('submit', this.handleSubmit.bindWithEvent(this));
    this.order = order;
    this.setOptions(options);
    this.fields = this.form.getElement('.fixedFields').getElements('input', 'select', 'textarea');
  },

  handleSubmit: function(e) {
    if (this.performValidation()) this.order.populateHiddens();
    else e.stop();
  },

  performValidation: function() {
    var valid = true;


    if (!$('field_privacy').checked) {
      alert(this.order.options.errorMessage);
      return false;
    }

    $A(this.fields).filter(function(f) {
      return $(f).hasClass('required');
    }).each(function(f) {

      var v=false;
      if (f.get('type') == 'checkbox')
      {
        v = f.checked;
      }
      else
      {
        v = f.get('value') != '';
      }

      f[(v ? 'remove' : 'add') + 'Class']('error');
      valid = valid && v;
    }, this);

    var v = this.order.orderLines.length > 0;
    this.order.emptyOrder[(v ? 'remove' : 'add') + 'Class']('error');
    valid = valid && v;

    if (!valid){
      alert(this.order.options.errorMessage);
    }

    return valid;
  }

});
