PageSourceSearch

https://www.cusquena.com/sites/g/files/seuoyk771/files/js/optimize…FDsLfHZr414rCkuVRHH2aHGA2HIUocGfI.js?tj9gjb

js cusquena.com collected 2026-09-26 10:04:30 UTC 8,572 bytes, 260 lines download raw bytes

1/* Source and licensing information for the line(s) below can be found at https://www.cusquena.com/modules/custom/pe_cusquena_core/js/validate.js. */
2(function ($, Drupal) {
3  Drupal.behaviors.dataLayer = {
4    attach: function (context, settings) {
5      if (drupalSettings.ABDataLayers !== undefined && drupalSettings.ABDataLayers) {
6        drupalSettings.ABDataLayers.forEach(function (item) {
7          dataLayer.push(item);
8        });
9        drupalSettings.ABDataLayers = null;
10      }
11    }
12  };
13
14  Drupal.homePage = {};
15  Drupal.homePage.sendForm = function ($trigger, form) {
16    if ($trigger.hasClass("use-ajax")) {
17      $trigger.trigger("sendRegister");
18    }
19  };
20
21  Drupal.behaviors.validate = {
22    attach: function (context, settings) {
23      $('#custom-register-form, #mds-custom-login-form, #campaigns-register-form, #campaigns-login-form').validate({
24        submitHandler: function (form) {
25          Drupal.homePage.sendForm($("#edit-submit"), form);
26        },
27        rules: {
28          'cities': {
29            requiredSelect: true,
30          },
31          'gender': {
32            requiredSelect: true,
33          },
34          'name': {
35            required: true,
36            lettersonlyspaces: true,
37          },
38          'last_name': {
39            required: true,
40            lettersonlyspacesa: true,
41          },
42          "day": {
43            valueNotEquals: "empty",
44            required: true,
45            requiredSelect: true
46          },
47          "month": {
48            required: true,
49            valueNotEquals: "empty",
50            requiredSelect: true
51          },
52          "year": {
53            required: true,
54            valueNotEquals: "empty",
55            requiredSelect: true
56          },
57          'document': {
58            required: true,
59            digits: true,
60            minlength: 8,
61            maxlength: 10,
62          },
63          'email': {
64            required: true,
65            emailordomain: true
66          },
67          'phone': {
68            required: true,
69            digits: true,
70            maxlength: 9,
71            minlength: 9,
72          },
73
74          'accept_terms': {
75            required: true,
76          }
77        },
78        messages: {
79          'name': {
80            required: 'Ingresa tu nombre',
81            lettersonlyspaces: 'Ingresa un nombre válido',
82          },
83          'last_name': {
84            required: 'Ingresa tu apellido',
85            lettersonlyspacesa: 'Ingresa un apellido válido',
86          },
87          'cities': {
88            requiredSelect: 'Elige una ciudad',
89          },
90          'gender': {
91            requiredSelect: 'Elige su género',
92          },
93          "document": {
94            required: "Ingresa tu número de DNI o Cédula de Extranjería",
95            minlength: "No escriba menos de 8 digitos",
96            maxlength: "No escriba más de 10 digitos",
97          },
98          'email': {
99            required: "Ingresa tu correo electrónico",
100            emailordomain: "Ingresa un correo electrónico válido"
101          },
102          'phone': {
103            required: "Escribe un teléfono",
104            digits: "Escribe un número de celular válido",
105            maxlength: "No escriba menos o más de 9 digitos",
106            minlength: "No escriba menos o más de 9 digitos",
107          },
108          'accept_terms': {
109            required: "Debe aceptar terminos y condiciones y políticas de protección de datos personales",
110          }
111        },
112        errorElement: "span",
113
114        errorPlacement: function (error, element) {
115          if (
116            element.attr("name") == "accept_terms"
117          ) {
118            error.insertAfter(element.next());
119          }
120          else if (
121            element.attr("name") === "day" ||
122            element.attr("name") === "month" ||
123            element.attr("name") === "year"
124          ) {
125            $('.error-date-register').show();
126          }
127          else {
128            error.insertAfter(element);
129          }
130        },
131
132
133      });
134      // })
135    }
136  }
137
138
139  Drupal.behaviors.homePage = {
140    attach: function (context, settings) {
141      Drupal.homePage.submit_register = false;
142      var $body = $("body");
143      $(once("jquery-validation","body")).each(function () {
144        $.extend($.validator.messages, {
145          email: "Por favor, escribe una dirección de correo válida.",
146          required: "Falta completar información",
147          remote: "Por favor, rellena este campo.",
148          email: "Por favor, escribe una dirección de correo válida.",
149          url: "Por favor, escribe una URL válida.",
150          date: "Por favor, escribe una fecha válida.",
151          dateITA: "Por favor, escribe una fecha válida.",
152          dateISO: "Por favor, escribe una fecha (ISO) válida.",
153          number: "Por favor, escribe un número válido.",
154          digits: "Por favor, escribe sólo dígitos.",
155          creditcard: "Por favor, escribe un número de tarjeta válido.",
156          equalTo: "Por favor, escribe el mismo valor de nuevo.",
157          extension: "Por favor, escribe un valor con una extensión aceptada.",
158          maxlength: $.validator.format("Por favor, no escribas más de {0} caracteres."),
159          minlength: $.validator.format("Por favor, no escribas menos de {0} caracteres."),
160          rangelength: $.validator.format("Por favor, escribe un valor entre {0} y {1} caracteres."),
161          range: $.validator.format("Por favor, escribe un valor entre {0} y {1}."),
162          max: $.validator.format("Por favor, escribe un valor menor o igual a {0}."),
163          min: $.validator.format("Por favor, escribe un valor mayor o igual a {0}."),
164        });
165        jQuery.validator.addMethod("lettersonly", function (value, element) {
166          return this.optional(element) || /^[a-z ]+$/i.test(value);
167        });
168        jQuery.validator.addMethod("emailordomain", function (value, element) {
169          return /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i.test(value) && !value?.includes('+');
170        });
171        $.validator.addMethod("lettersonlyspaces",
172          function (value, element) {
173            return this.optional(element) || /^[a-z áéíóúÁÉÍÓÚÜñÑ]+$/i.test(value);
174          },
175          "Solo Ingresa letras"
176        );
177        $.validator.addMethod("lettersonlyspacesa",
178        function (value, element) {
179          return this.optional(element) || /^[a-z áéíóúÁÉÍÓÚÜñÑ]+$/i.test(value);
180        },
181        "Solo Ingresa letras"
182      );
183        $.validator.addMethod("requiredSelect",
184          function (value, element) {
185            return !this.optional(element);
186          }, "Elige una opción");
187
188        $.validator.addMethod("valueNotEquals", function (value, element) {
189          $('#error-date').hide();
190          return value !== 'empty';
191        }, "Value must not equal arg.");
192      });
193
194    }
195
196  }
197
198})(jQuery, window.Drupal);
199
200(function ($, Drupal) {
201
202  //Datalayer
203  Drupal.AjaxCommands.prototype.sendDataLayer = function (ajax, response) {
204    // console.log(response.data.item);
205    dataLayer.push(response.data.item);
206  };
207  Drupal.sendDataLayer = function (sku) {
208    let item = {
209      'event': 'trackEvent',
210      'eventCategory': 'Doble Malta',
211      'eventAction': 'Comprar aquí',
212      'eventLabel': sku,
213    };
214    dataLayer.push(item);
215  }
216
217  Drupal.sendDataLayerVariedades = function (variedad) {
218    let item = {
219      'event': 'trackEvent',
220      'eventCategory': 'Variedades Cusqueña',
221      'eventAction': 'Comprar',
222      'eventLabel': variedad,
223    };
224    dataLayer.push(item);
225  }
226
227  Drupal.sendDataLayerButton1 = function (name) {
228    let item = {
229      'event': 'trackEvent',
230      'eventCategory': 'Maestros del sabor',
231      'eventAction': 'Clic',
232      'eventLabel': name,
233    };
234    dataLayer.push(item);
235  }
236
237  Drupal.sendDataLayerLogin = function (name) {
238    let item = {
239      'event': 'trackEvent',
240      'eventCategory': 'Maestros del sabor',
241      'eventAction': 'Iniciar sesion',
242      'eventLabel': name,
243    };
244    dataLayer.push(item);
245  }
246  // Drupal.AjaxCommands.prototype.sendDataLayer = function (ajax, response) {
247  //   let item =  {
248  //     'event': 'trackEvent',
249  //     'eventCategory': 'Doble Malta',
250  //     'eventAction': 'Comprar aquí',
251  //     'eventLabel': hash('SHA256', $form_state->getValue('email')),
252  // };
253  //   dataLayer.push(response.data.item);
254  // };
255
256
257})(jQuery, Drupal);
258
259
260/* Source and licensing information for the above line(s) can be found at https://www.cusquena.com/modules/custom/pe_cusquena_core/js/validate.js. */

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.