PageSourceSearch

https://sentphilipshue.herokuapp.com/js/custom.js

js sentphilipshue.herokuapp.com collected 2026-10-03 14:52:07 UTC 46,986 bytes, 1,314 lines download raw bytes

1import 'jquery'
2import * as wNumb from './wNumb.js'
3import { config } from './config.js';
4import { showLog, sentEvent, isSafari, saveValue, getValue, cleanPunctuation, cleanAccents, getOptions, bisiestos, meses30, needDatePicker, getToday, isMobile, isAndroidDevice } from './util.js'
5import { saveValueForm, form, initialiceForm } from './formUtil.js'
6import { popupHtml } from './interactions.js'
7import { currentQuestion, idCurrentQuestion, textToSubmit } from './chat.js'
8import { activateSendText } from './speech-input.js'
9import modals from './modals.js'
10import { hideChatBox } from './chatbox.js'
11
12import noUiSlider from 'nouislider'
13import 'nouislider/distribute/nouislider.css';
14
15
16/*No importamos en este proyecto moment*/
17//import moment from 'moment';
18
19/*No importamos en este proyecto slick*/
20import slick from './slick.js'
21import '../css/slick.css'/*Posible borrado*/
22
23/*No importamos en este proyecto Cocoen*/
24//import Cocoen from "cocoen";
25//import '../css/cocoen.min.css'/*Posible borrado*/
26
27/*No importamos en este proyecto timepicker*/
28//import '../css/jquery.timepicker.css'/*Posible borrado*/
29
30/*No importamos en este proyecto timepicker*/
31//import '../css/hover.css'/*Posible borrado*/
32
33
34export var noUiSliderCustom = noUiSlider
35export var momentCustom = {}
36export var slickCustom = slick
37export var CocoenCustom = {}
38
39var _Sn = {};
40_Sn.Jq = jQuery;
41_Sn.config = config;
42
43//_Sn.Jq("body").toggleClass("dotted")
44
45_Sn.Jq(".option-quick-image.payload").css("display", "none")
46
47setTimeout(() => {
48    let videoBackground = document.querySelector('video')
49    if (videoBackground != null) {
50        videoBackground.pause();
51        videoBackground.defaultPlaybackRate = 0.5;
52        videoBackground.play();
53        document.getElementsByTagName('video')[0].onended = function () {
54            this.load();
55        };
56    }
57
58
59
60}, 3000)
61
62
63
64
65
66/////////////////////////////////////////////////////////////////////////////////
67///SE CHEQUEA LA EXISTENCIA DE UN BANNER EN LA PARTE DE ABAJO, SE REAJUSTA LA UBICACION DEL  
68///LOGO DE ROBOT PARA QUE NO INTERFIERA CON EL CTA DE LA PAGINA QUE HAY EN EL BANNER
69var bottomLogoIni, bottomMiniboxIni;
70var heightBannerTymit;
71var bannerTymitSelector = '';
72
73function existsLogoSentimer() {
74    if (_Sn.Jq('#ned09-chtbt').length > 0) {
75        bottomLogoIni = _Sn.Jq('#ned09-chtbt').css('bottom').split('px')[0]
76        return true
77    } else {
78        return false
79    }
80}
81
82function existsMiniboxSentimer() {
83    if (_Sn.Jq('.minibox.showChat').length > 0) {
84        bottomMiniboxIni = _Sn.Jq('.minibox.showChat').css('bottom').split('px')[0]
85        return true
86    } else {
87        return false
88    }
89}
90
91function existsBannerTymit() {
92    if (_Sn.Jq(bannerTymitSelector).length > 0 && _Sn.Jq(bannerTymitSelector).css('display') != 'none') {
93        heightBannerTymit = parseInt(_Sn.Jq(bannerTymitSelector).height())
94        return true
95    } else {
96        return false
97    }
98}
99
100var manageAvatarPlace = setInterval(() => {
101    if (existsLogoSentimer()) {
102        var rePaintLogoButton = setInterval(() => {
103            if (existsBannerTymit()) {
104                _Sn.Jq('#ned09-chtbt').css('bottom', parseInt(bottomLogoIni) + 30 + heightBannerTymit + 'px');
105            } else {
106                _Sn.Jq('#ned09-chtbt').css('bottom', bottomLogoIni + 'px')
107            }
108        }, 300)
109        clearInterval(manageAvatarPlace);
110    }
111}, 500)
112
113
114var manageMiniboxPlace = setInterval(() => {
115    if (existsMiniboxSentimer()) {
116        var rePaintMiniboxButton = setInterval(() => {
117            if (existsBannerTymit()) {
118                _Sn.Jq('.minibox.showChat').css('bottom', parseInt(bottomMiniboxIni) + 30 + heightBannerTymit + 'px');
119            } else {
120                _Sn.Jq('.minibox.showChat').css('bottom', bottomMiniboxIni + 'px')
121            }
122        }, 300)
123        clearInterval(manageMiniboxPlace);
124    }
125}, 500)
126
127////////////////////////////////////////////////////////////////////////////////////////
128////////////////////////////////////////////////////////////////////////////////////////
129
130var timestampINI = Date.now();
131_Sn.Jq(window).on('unload', function () {
132    sentEvent({ id: _Sn.config.id, event: "CUSTOMIZED_EVENT:secondsInPage:" + ((Date.now() - timestampINI) / 1000).toString() })
133})
134
135_Sn.config.zindex = '60000'
136
137var bot_interacted = false,
138    bot_start_callme = false,
139    bot_start_usercall = false,
140    bot_start_contract = false,
141    bot_start_other = false,
142    bot_finish_other = false,
143    page_finish_other = false,
144    bot_button1 = false,
145    bot_button2 = false,
146    bot_button3 = false,
147    bot_button4 = false,
148    bot_button5 = false,
149    bot_button6 = false,
150    bot_button7 = false,
151    bot_button8 = false,
152    bot_button9 = false,
153    bot_button10 = false,
154    bot_menu_option1 = false,
155    bot_menu_option2 = false,
156    bot_menu_option3 = false,
157    bot_menu_option4 = false,
158    bot_menu_inputtext = false,
159    bot_finish_callme = false;
160
161var urlParams = new URLSearchParams(window.location.search);
162var campaign = urlParams.get('vn');
163
164export function customizeDisplay() {
165
166
167}
168export function checkInteraction(event) {
169    if (_Sn.Jq(event.currentTarget).attr('href').indexOf("tel:") != -1) {
170        sentEvent({ id: _Sn.config.id, event: "CUSTOMIZED_EVENT:callfromuser" });
171    }
172}
173
174///////////////////////////////////////////////////////////////////
175//REPORT USER BLOCKED INI
176///////////////////////////////////////////////////////////////////
177var userBlockedInterval = setInterval(function () {
178    if (_Sn.config.loadingTime != 0 && new Date().getTime() - _Sn.config.loadingTime > _Sn.config.maxLoadingTime) {
179        _Sn.config.loadingTime = 0;
180        sentEvent({id:_Sn.config.id,event:"CUSTOMIZED_EVENT:USER BLOCKED"});
181        reportUserBlocked();
182        clearInterval(userBlockedInterval)
183    }
184}, 5000)
185
186
187function reportUserBlocked() {
188    var getRequest = _Sn.Jq.ajax({
189        url: _Sn.config.hostPublic + "/userblocked",
190        data: {
191            idUser: _Sn.config.id,
192        },
193        type: 'POST',
194        crossDomain: true,
195        dataType: 'json',
196    });
197    getRequest.done(function () {
198    })
199
200
201}
202
203///////////////////////////////////////////////////////////////////
204//REPORT USER BLOCKED FIN
205///////////////////////////////////////////////////////////////////
206
207export function sendUserToQuestion(newQuestion) {
208    var getRequest = _Sn.Jq.ajax({
209        url: _Sn.config.hostPublic + "/sendusertoquestion",
210        data: {
211            idUser: _Sn.config.id,
212            question: newQuestion,
213        },
214        type: 'POST',
215        crossDomain: true,
216        dataType: 'json',
217    });
218    getRequest.done(function () {
219    })
220
221
222}
223
224var timeoutFeedback;
225export function resetTimerFeedback() {
226    //En este robot no pedimos feedback
227}
228
229function askForFeedback() {
230    var getRequest = _Sn.Jq.ajax({
231        url: _Sn.config.hostPublic + "/askforfeedback",
232        data: {
233            idUser: _Sn.config.id,
234        },
235        type: 'POST',
236        crossDomain: true,
237        dataType: 'json',
238    });
239    getRequest.done(function () {
240    })
241}
242
243
244
245export function HandleSlide() {
246
247}
248
249export function addSpan(cta) {
250    if (cta == "cta1") {
251        return "";
252    } else {
253        return "";
254    }
255}
256
257export function customize(str) {
258    if (str != undefined) {
259        return str.split("images/bot/").join("images/bot/");
260    } else {
261        return "";
262    }
263}
264
265export function resolveSliderImages(string) {
266    var html = "";
267    if (string.indexOf("<SLIDER-IMAGES>") != -1) {
268        re = new RegExp('<SLIDER-IMAGES>.+<SLIDER-IMAGES>');
269        var value = re.exec(string);
270
271        var text = value[0].split("<SLIDER-IMAGES>")[1];
272
273        var images = text.split(";");
274        html = "" + "<div class='resulimages'>" + "<div class='single-item slider_popup'>";
275        for (i = 0; i < images.length; i++) {
276            html = html + "<img class='result imageResult' src='" + hostPublic + "/images/bot/" + images[i] + "'>";
277        }
278        html = html + "</div>" + "</div>" + "";
279
280        string = (value != undefined ? string.split(value).join(html) : string);
281    }
282    return string;
283}
284
285
286export function resolveMetaData(string) {
287    var re;
288
289    if (string.indexOf('download_Large.svg') != -1) {
290        if (isAndroidDevice()) {
291            string = string.split('download_Large.svg').join('googleplay.png');
292        } else {
293            string = string.split('download_Large.svg').join('appstore.svg');
294        }
295    }
296    if (string.indexOf("<URL_MEMORIA>") != -1) {
297        re = new RegExp('<URL_MEMORIA>.+<URL_MEMORIA>');
298        var value = re.exec(string);
299        var url = value[0].split("<URL_MEMORIA>")[1].split(":::")[1];
300        var text = value[0].split("<URL_MEMORIA>")[1].split(":::")[0];
301        string = string.split(value[0]).join("<a class='sentimerlink' href='" + url + "' target='_blank'>
301" + text + "</a>&nbsp");
302    }
303
304    if (string.indexOf("<URL_DOSSIER>") != -1) {
305        re = new RegExp('<URL_DOSSIER>.+<URL_DOSSIER>');
306        var value = re.exec(string);
307        var url = value[0].split("<URL_DOSSIER>")[1].split(":::")[1];
308        var text = value[0].split("<URL_DOSSIER>")[1].split(":::")[0];
309        string = string.split(value[0]).join("<a class='sentimerlink' href='" + url + "' target='_blank'>" + text + "</a>&nbsp");
310    }
311
312    if (string.indexOf("<URL_PLANOS>") != -1) {
313        re = new RegExp('<URL_PLANOS>.+<URL_PLANOS>');
314        var value = re.exec(string);
315        var url = value[0].split("<URL_PLANOS>")[1].split(":::")[1];
316        var text = value[0].split("<URL_PLANOS>")[1].split(":::")[0];
317        string = string.split(value[0]).join("<a class='sentimerlink' href='" + url + "' target='_blank'>" + text + "</a>&nbsp");
318    }
319
320
321
322
323    while (string.indexOf("<URL_LINK>") != -1) {
324        re = new RegExp('<URL_LINK>.+?<URL_LINK>?');
325        var value = re.exec(string)[0];
326        var newValue = value.split("<URL_LINK>").join("")
327        var url = newValue.split(":::")[1];
328        var text = newValue.split(":::")[0];
329
330        string = string.split(value).join("<a class='sentimerlink' href='" + url + "' target='_blank'>
330" + text + "</a>&nbsp");
331    }
332    /*
333    var pairUrlLinks = 1;
334    while(string.indexOf("<URL_LINK>") != -1) {
335        string = string.replace("<URL_LINK>","<URL_LINK" + pairUrlLinks + ">").replace("<URL_LINK>","<URL_LINK" + pairUrlLinks + ">");
336        pairUrlLinks = pairUrlLinks + 1;
337    }
338    
339    for (var i=1;i<10;i++) {
340        if (string.indexOf("<URL_LINK" + i.toString() + ">") != -1) {
341            re = new RegExp('<URL_LINK' + i.toString() + '>.+<URL_LINK' + i.toString() + '>');
342            var value = re.exec(string);
343            var newValue = value
344            var url = value[0].split("<:::></:::>")[1];
345            var text = value[0].split("<URL_LINK" + i.toString() + ">")[1].split(":::")[0];
346            string = string.split(value[0]).join("<a class='sentimerlink' href='" + url + "' target='_blank'>" + text + "</a>&nbsp");
347        }
348    }
349
350    var pairUrlPopup = 1;
351    while(string.indexOf("<POPUP>") != -1) {
352        string = string.replace("<POPUP>","<POPUP" + pairUrlPopup + ">").replace("<POPUP>","<POPUP" + pairUrlPopup + ">");
353        pairUrlPopup = pairUrlPopup + 1;
354    }
355    */
356
357    for (var i = 1; i < 10; i++) {
358        if (string.indexOf("<POPUP" + i.toString() + ">") != -1) {
359            re = new RegExp('<POPUP' + i.toString() + '>.+<POPUP' + i.toString() + '>');
360            var value = re.exec(string);
361
362            var idPopup = value[0].split("<POPUP" + i.toString() + ">")[1].split(":").length > 1 ? value[0].split("<POPUP" + i.toString() + ">")[1].split(":")[0] : value;
363            var text = value[0].split("<POPUP" + i.toString() + ">")[1].split(":").length > 1 ? value[0].split("<POPUP" + i.toString() + ">")[1].split(":")[1] : "<i class='fa fa-info-circle'></i>";
364
365            string = string.split(value[0]).join(popupHtml.split("##IDPOPUP##").join(idPopup).split("##TEXT##").join(text).split("<POPUP>").join(""));
366
367        }
368    }
369
370    if (string.indexOf("<IMPORTANT>") != -1) {
371        re = new RegExp('<IMPORTANT>.+<IMPORTANT>');
372        var value = re.exec(string);
373        string = (value != undefined ? string.split(value).join('<span style="font-weight:bold;font-family:edp">' + value[0].split("<IMPORTANT>")[1] + '</span>') : string);
374    }
375
376    if (string.indexOf("<LESSIMPORTANT>") != -1) {
377        re = new RegExp('<LESSIMPORTANT>.+<LESSIMPORTANT>');
378        var value = re.exec(string);
379
380        string = (value != undefined ? string.split(value).join('<span style="font-size:.8em;font-family:edp">' + value[0].split("<LESSIMPORTANT>")[1] + '</span>') : string);
381    }
382
383    if (string.indexOf("<POPUP>") != -1) {
384        re = new RegExp('<POPUP>.+<POPUP>');
385        var value = re.exec(string)[0];
386
387        var value2 = value.split("<POPUP>").join("");
388        var idPopup = value2.split(":").length > 1 ? value2.split(":")[0] : value2;
389        var text = value2.split(":").length > 1 ? value2.split(":")[1] : "<i class='fa fa-info-circle'></i>";
390
391        string = string.split(value).join(popupHtml.split("##IDPOPUP##").join(idPopup).split("##TEXT##").join(text).split("<POPUP>").join(""));
392    }
393
394    if (string.indexOf("<POPUP_PISOS>") != -1) {
395        re = new RegExp('<POPUP_PISOS>.+<POPUP_PISOS>');
396        var value = re.exec(string)[0];
397
398        var value2 = value.split("<POPUP_PISOS>").join("");
399        var idPopup = value2.split(":").length > 1 ? value2.split(":")[0] : value2;
400        var text = value2.split(":").length > 1 ? value2.split(":")[1] : "<i class='fa fa-info-circle'></i>";
401
402        string = string.split(value).join(popupHtml.split("##IDPOPUP##").join(idPopup).split("##TEXT##").join(text).split("<POPUP_PISOS>").join(""));
403    }
404
405    if (string.indexOf("<ICON>") != -1) {
406        re = new RegExp('<ICON>.+<ICON>');
407        var value = re.exec(string);
408        return '<div class="cardImage icon"><span class="' + value[0].split("<ICON>")[1] + '"></span></div>';
409    }
410
411    if (string.indexOf("<IMAGE>") != -1) {
412        re = new RegExp('<IMAGE>.+<IMAGE>');
413        var value = re.exec(string);
414        let IMAGE_PART = "	<img class='imageCard' style='margin-top:1em' src='" + _Sn.config.hostPublic + "/images/bot/" + value[0].split("<IMAGE>")[1] + "' />"
415        string = string.split(value).join(IMAGE_PART)
416    }
417
418    string = string.split("##UTM_GOLF##").join("https://www.visitcostadelsol.com/?utm_source=landing_chat&utm_medium=pantallas_ext&utm_campaign=CdS2021-F2-landing_chat_golf&utm_content=golf&utm_term=x")
419    string = string.split("##UTM_BEACH##").join("https://www.visitcostadelsol.com/?utm_source=landing_chat&utm_medium=pantallas_ext&utm_campaign=CdS2021-F2-landing_chat_soly_playa&utm_content=sol_playa&utm_term=x")
420    string = string.split("##UTM_FOOD##").join("https://www.visitcostadelsol.com/?utm_source=landing_chat&utm_medium=pantallas_ext&utm_campaign=CdS2021-F2-landing_chat_gastronomia&utm_content=gastronomia&utm_term=x")
421    string = string.split("##UTM_PLACES##").join("https://www.visitcostadelsol.com/?utm_source=landing_chat&utm_medium=pantallas_ext&utm_campaign=CdS2021-F2-landing_chat_naturaleza&utm_content=interior_naturaleza&utm_term=x")
422    string = string.split("##UTM_OUTDOORS##").join("https://www.visitcostadelsol.com/?utm_source=landing_chat&utm_medium=pantallas_ext&utm_campaign=CdS2021-F2-landing_chat_naturaleza&utm_content=interior_naturaleza&utm_term=x")
423
424    return string;
425}
426
427var hasStarted;
428export function setHasStarted(value) {
429    hasStarted = value;
430}
431
432export function getHasStarted(value) {
433    return hasStarted;
434}
435
436export var contactPhone = '';
437
438
439export var numberUsers = 1;
440
441export function setNumberUsers(amount) {
442    numberUsers = amount;
443}
444
445export function isDateValid(day, month, year) {
446    var error;
447    if (day == "Día" || month == "Mes" || year == "Año") {
448        error = "Fechas Incompletas";
449    }
450    if (month == "02" && (day == "30" || day == "31")) {
451        error = "La fecha no es correcta";
452    } else if (month == "02" && day == "29" && bisiestos.indexOf(year) == -1) {
453        error = "La fecha no es correcta";
454    } else if (meses30.indexOf(month) != -1 && day == "31") {
455        error = "La fecha no es correcta";
456    }
457
458    return error;
459}
460
461export function getObjectFromDates(year, month, day) {
462    return { "birthDate": year + "-" + month + "-" + day };
463}
464
465export function getStringFromDates(key, insured) {
466    if (currentQuestion.indexOf("dob_policyholder") != -1) {
467        return insured.birthDate.split("-")[2] + "/" + insured.birthDate.split("-")[1] + "/" + insured.birthDate.split("-")[0] + "<br/>";
468    } else {
469        return insured.birthDate.split("-")[2] + "/" + insured.birthDate.split("-")[1] + "/" + insured.birthDate.split("-")[0] + "<br/>";
470    }
471}
472
473export function customTextToBot(textToBot) {
474    if (textToBot[0] != undefined && textToBot[0].birthDate != undefined && currentQuestion.indexOf("dob") == -1) {
475        return textToBot[0].birthDate;
476    } else {
477        return textToBot;
478    }
479}
480
481export function generateCustomImagePromotion(text) {
482
483    return undefined;
484}
485
486export function areResults(elements) {
487    return elements[0].buttons.length > 2
488}
489
490export var cardResultsHtml = "<div class='item notvisible'>" +
491    "   <div class='zone1'>" +
492    "       <div class='cardInfo'>" +
493    "           <div class='cardTitle'>" +
494    "               ###TITLE###" +
495    "           </div>" +
496    "           <div class='cardSubtitle'>" +
497    "               ###SUBTITLE###" +
498    "           </div>" +
499    "       </div>" +
500    "   </div>" +
501    "   <div class='zone2'>" +
502    "       <div class='cardImage'>" +
503    "           <img class='imageCard' src='###IMAGE###' />" +
504    "       </div>" +
505    "       <div class='buttonsCard'>" +
506    "           ###BUTTONS###" +
507    "       </div>" +
508    "   </div>" +
509    "</div>";
510
511
512export var minDayforDates = "";
513export var maxDayforDates = "";
514
515function hideChatMessage() {
516    _Sn.Jq("#chatform").css("visibility", "hidden");
517}
518
519function showChatMessage() {
520    _Sn.Jq("#chatform").css("visibility", "visible");
521}
522
523/*
524_Sn.Jq.getJSON("https://api.ipify.org?format=json", function(data) {
525  console.log(data.ip);
526
527_Sn.Jq.ajax({
528    url: "https://api.ipgeolocationapi.com/geolocate/184.149.48.32",
529}).done(function(data) {
530    console.log( data );
531});
532
533
534
535})
536*/
537setTimeout(function () {
538    saveValue("device", (isMobile ? "mobile" : "desktop"))
539}, 5000)
540
541export function manageEvents(message, jqEvent) {
542    if (message != undefined) {
543/*
544        if (
545
546            (
547                message.indexOf("get-call_telefono") != -1 ||
548                message.indexOf("get-call_name") != -1 ||
549                message.indexOf("get-call_email") != -1 ||
550                message.indexOf("comparar-rendimiento_compararrendimiento_result1") != -1 ||
551                message.indexOf("determinar-rendimiento_determinarrendimiento_result1") != -1 ||
552                message.indexOf("collection_") != -1 ||
553                message.indexOf("sin-afore_intro_noafore") != -1 ||
554                message.indexOf("quees-afore_intro_quees") != -1 ||
555                message.indexOf("conocer-estatus_intro_checkafore") != -1 ||
556                message.indexOf("comoelegir-afore_intro_comoelegir") != -1 ||
557                message.indexOf("masinfoescribir") != -1 
558            )
559        ) {
560            showChatMessage();
561        } else {
562            hideChatMessage();
563        }
564*/
565        if (jqEvent != undefined && jqEvent.text != undefined && jqEvent.text.indexOf("<CATEGORY>") != -1) {
566            if (jqEvent.text.indexOf("<CATEGORY>GOLF") != -1) { setTimeout(() => { sendUserToQuestion("determine-customer-need_20001"); }, 1000) }
567            else if (jqEvent.text.indexOf("<CATEGORY>BEACH") != -1) { setTimeout(() => { sendUserToQuestion("determine-customer-need_20001"); }, 1000) }
568            else if (jqEvent.text.indexOf("<CATEGORY>OUTDOORS") != -1) { setTimeout(() => { sendUserToQuestion("determine-customer-need_20001"); }, 1000) }
569            else if (jqEvent.text.indexOf("<CATEGORY>FOOD") != -1) { setTimeout(() => { sendUserToQuestion("determine-customer-need_20001"); }, 1000) }
570            else if (jqEvent.text.indexOf("<CATEGORY>PLACES") != -1) { setTimeout(() => { sendUserToQuestion("determine-customer-need_20001"); }, 1000) }
571            else { setTimeout(() => { sendUserToQuestion("determine-customer-need_20001"); }, 1000) }
572        }
573
574        if (message.indexOf('icall') != -1) {
575            sentEvent({ id: _Sn.config.id, event: "bot_start_other" });
576        }
577        if (message.indexOf("farewell_message_contactexpert") != -1) {
578            sentEvent({ id: _Sn.config.id, event: "bot_finish_callme" });
579        }
580        if (message.indexOf("_contact_expert") != -1 && bot_start_callme == false) {
581            bot_start_callme = true;
582            sentEvent({ id: _Sn.config.id, event: "bot_start_callme" });
583        }
584        if (message.indexOf("determine-mainproduct_promotions") != -1) {
585            bot_button1 = true;
586            sentEvent({ id: _Sn.config.id, event: "bot_button1" });
587        }
588        if (bot_interacted == false && message == "bot_interacted") {
589            bot_interacted = true;
590            hasStarted = true;
591            saveValue("hasStarted", true);
592            sentEvent({ id: _Sn.config.id, event: "bot_interacted" });
593            
594        }
595        if (message == "bot_interacted") {
596            _Sn.Jq(".sentimer .volveraempezar").css("display", "block");
597        }
598        if (message.indexOf("questionSent_") != -1) {
599            sentEvent({ id: _Sn.config.id, event: "questionSent", question: message.split("questionSent_")[1] });
600        }
601        if (message.indexOf("-minibox") != -1) {
602            sentEvent({ id: _Sn.config.id, event: "CUSTOMIZED_EVENT:ShownMinibox:" + document.URL.split(":").join(("/")) });
603        }
604        if (currentQuestion != undefined && currentQuestion.indexOf("date_start") != -1 && _Sn.Jq(".sentimer #message").val() == "") {
605            minDayforDates = getToday("-");
606        }
607        if (currentQuestion != undefined && currentQuestion.indexOf("date_start") != -1 && _Sn.Jq(".sentimer #message").val() != "") {
608            minDayforDates = _Sn.Jq(".sentimer #message").val();
609        }
610        if (jqEvent != undefined || message == 'textEntered') {
611            eventsToClient.forEach(function (event) {
612                if (currentQuestion.indexOf(event) != -1) {
613                    var event = 'chat-' + (currentQuestion.indexOf('_') != -1 ? currentQuestion.split('_')[1] : currentQuestion);
614                    _Sn.Jq('.sentimer').trigger(event, [textToSubmit]);
615                }
616            })
617        }
618    }
619}
620
621var dateStart = "";
622export function customVisualization(msg) {
623    if (currentQuestion != undefined) {
624        if (currentQuestion.indexOf("date_start") != -1 && needDatePicker) {
625            $('#pickerDate').datepicker({
626                dateFormat: 'yy-mm-dd',
627                todayHighlight: true,
628                autoclose: true,
629                orientation: 'auto bottom'
630            });
631            var fromdate = moment();
632            $("#pickerDate").datepicker("setDate", fromdate.toDate());
633        }
634
635        if (currentQuestion.indexOf("date_end") != -1 && needDatePicker) {
636            $('#pickerDate').datepicker({
637                dateFormat: 'yy-mm-dd',
638                todayHighlight: true,
639                autoclose: true,
640                orientation: 'auto bottom'
641            });
642            var todate = moment();
643            $("#pickerDate").datepicker("option", 'minDate', dateStart.toDate());
644            $("#pickerDate").datepicker("setDate", dateStart.toDate());
645        }
646    }
647    if (isSafari) {
648        $(".sentimer #date").css('border-radius', '0px');
649    }
650    //Solo queremos modificar la pregunta en caso de ser el ultimo bloque
651    if(msg.last && currentQuestion != undefined && currentQuestion.indexOf("edad") != -1 ) {
652        sentEvent({ id: _Sn.config.id, event: "CUSTOMIZED_EVENT:PREGUNTA EDAD:BOTONES"})  
653    } 
654    
655}
656
657export function customActionPostSendMessage(){
658    //console.log("customActionPostSend;",currentQuestion.indexOf("edad"),_Sn.Jq(".age-afore").length)
659    if(currentQuestion.indexOf("edad") != -1 && _Sn.Jq(".age-afore").length == 1) {
660        _Sn.Jq(".age-afore").remove()
661    }
662}
663
664export function showCustomRange(range) {
665    var rangeSlider = document.getElementById('slider-range');
666    var rangeSpan = document.getElementById('slider-span');
667
668    if (rangeSlider != null) {
669        if (range == "customRange1") {
670
671            var bigValueSlider = rangeSlider;
672            var bigValueSpan = rangeSpan;
673
674            var range_all_sliders = {
675                'min': [50000],
676                '10%': [150000, 5000],
677                '50%': [20000, 10000],
678                'max': [1000000]
679            };
680
681            var moneyFormat = wNumb({
682                thousand: '.',
683                suffix: '€',
684                decimals: 0
685            });
686
687            var bigValueSlider = rangeSlider;
688            var bigValueSpan = rangeSpan;
689
690            noUiSlider.create(bigValueSlider, {
691                start: 200000,
692                connect: [true, false],
693                tooltips: [moneyFormat],
694                // format: wNumb({
695                //     decimals: 0
696                // }),
697                range: range_all_sliders
698            });
699
700            bigValueSlider.noUiSlider.on('update', function (values, handle) {
701                bigValueSpan.innerHTML = moneyFormat.to(parseFloat(values[handle]));
702            });
703
704            rangeSlider.noUiSlider.on('update', function (values, handle) {
705                document.getElementById("message").value = moneyFormat.to(parseFloat(values[handle]));
706                activateSendText();
707            });
708        } else if (range == "customRange2") {
709
710            var bigValueSlider = rangeSlider;
711            var bigValueSpan = rangeSpan;
712
713            var range_all_sliders = {
714                'min': [0],
715                '10%': [1000, 1000],
716                '50%': [50000, 1000],
717                'max': [100000]
718            };
719
720            var moneyFormat = wNumb({
721                thousand: '.',
722                suffix: '€',
723                decimals: 0
724            });
725
726            var bigValueSlider = rangeSlider;
727            var bigValueSpan = rangeSpan;
728
729            noUiSlider.create(bigValueSlider, {
730                start: 10000,
731                connect: [true, false],
732                tooltips: [moneyFormat],
733                // format: wNumb({
734                //     decimals: 0
735                // }),
736                range: range_all_sliders
737            });
738
739            bigValueSlider.noUiSlider.on('update', function (values, handle) {
740                bigValueSpan.innerHTML = moneyFormat.to(parseFloat(values[handle]));
741            });
742
743            rangeSlider.noUiSlider.on('update', function (values, handle) {
744                document.getElementById("message").value = moneyFormat.to(parseFloat(values[handle]));
745                activateSendText();
746            });
747        } else if (range == "customRange3") {
748
749            var bigValueSlider = rangeSlider;
750            var bigValueSpan = rangeSpan;
751
752            var range_all_sliders = {
753                'min': [0],
754                'max': [24]
755            };
756
757            var moneyFormat = wNumb({
758                thousand: '.',
759                suffix: ' hours',
760                decimals: 0
761            });
762
763            var bigValueSlider = rangeSlider;
764            var bigValueSpan = rangeSpan;
765
766            noUiSlider.create(bigValueSlider, {
767                start: 100,
768                connect: [true, false],
769                tooltips: [moneyFormat],
770                // format: wNumb({
771                //     decimals: 0
772                // }),
773                range: range_all_sliders
774            });
775
776            bigValueSlider.noUiSlider.on('update', function (values, handle) {
777                bigValueSpan.innerHTML = moneyFormat.to(parseFloat(values[handle]));
778            });
779
780            rangeSlider.noUiSlider.on('update', function (values, handle) {
781                document.getElementById("message").value = moneyFormat.to(parseFloat(values[handle]));
782                activateSendText();
783            });
784
785            rangeSlider.noUiSlider.set(5);
786
787        } else if (range == "customRange4") {
788
789            var bigValueSlider = rangeSlider;
790            var bigValueSpan = rangeSpan;
791
792            var range_all_sliders = {
793                'min': [18],
794                'max': [65]
795            };
796
797            var moneyFormat = wNumb({
798                thousand: '.',
799                suffix: ' años',
800                decimals: 0
801            });
802
803            var bigValueSlider = rangeSlider;
804            var bigValueSpan = rangeSpan;
805
806            noUiSlider.create(bigValueSlider, {
807                start: 35,
808                connect: [true, false],
809                tooltips: [moneyFormat],
810                // format: wNumb({
811                //     decimals: 0
812                // }),
813                range: range_all_sliders
814            });
815
816            bigValueSlider.noUiSlider.on('update', function (values, handle) {
817                bigValueSpan.innerHTML = moneyFormat.to(parseFloat(values[handle]));
818            });
819
820            rangeSlider.noUiSlider.on('update', function (values, handle) {
821                document.getElementById("message").value = moneyFormat.to(parseFloat(values[handle]));
822                activateSendText();
823            });
824        } else {
825            var slideOptionsRange = {
826                'min': [parseInt(rangeSlider.getAttribute('min'))],
827                'max': [parseInt(rangeSlider.getAttribute('max'))]
828            }
829            if (rangeSlider.getAttribute('scale') != '$SCALE') {
830                slideOptionsRange['70%'] = [parseInt(rangeSlider.getAttribute('scale'))]
831            }
832
833            noUiSlider.create(rangeSlider, {
834                start: [rangeSlider.getAttribute('start')],
835                step: parseInt(rangeSlider.getAttribute('step')),
836                tooltips: [wNumb({ decimals: rangeSlider.getAttribute('decimals') })],
837                range: slideOptionsRange,
838
839                format: wNumb({
840                    decimals: parseInt(rangeSlider.getAttribute('decimals')),
841                    thousand: '.',
842                    suffix: ' ' + rangeSlider.getAttribute('units'),
843                })
844            });
845
846            //sentimerJq('.noUi-value[data-value="0"]')[0].innerHTML = "mas de 5"
847            rangeSlider.noUiSlider.on('update', function (values, handle) {
848                document.getElementById("message").value = values[handle];
849                activateSendText();
850            });
851        }
852    }
853}
854
855
856
857
858
859
860export function initializeUser() {
861    if (window.location.href.indexOf('test1') !== -1) {
862        _Sn.config.firstInteraction = "determine-specificproduct_100direct";
863    } else {
864        var random = Math.floor(Math.random()*100)
865        if(random < 50){
866            _Sn.config.firstInteraction = window.location.href;
867            sentEvent({id:_Sn.config.id,event:"CUSTOMIZED_EVENT:TEST NORMAL"})
868    
869        } else {
870            _Sn.config.firstInteraction = "determine-specificproduct_100direct";
871            sentEvent({id:_Sn.config.id,event:"CUSTOMIZED_EVENT:TEST DIRECTO"})
872        }
873    }
874}
875
876var eventsToClient = [
877
878];
879
880export var customRanges = {
881    "customRange1": "<div class='sent_range'><div id='slider-range' min='$MIN' max='$MAX' start='$START' pip1='$PIP1' pip2='$PIP2' units='$UNITS'  decimals='$DECIMALS' step='$STEP' scale='$SCALE'></div><div class='confirmRangeButton'><button>Enviar</button></div></div>" +
882        "<div style='margin-top: 2em;text-align: center;font-weight: 600;'><span class='example-val' id='slider-span' style='display:none'>0</span></div>",
883    "customRange2": "<div class='sent_range'><div id='slider-range' min='$MIN' max='$MAX' start='$START' pip1='$PIP1' pip2='$PIP2' units='$UNITS'  decimals='$DECIMALS' step='$STEP' scale='$SCALE'></div><div class='confirmRangeButton'><button>Enviar</button></div></div>" +
884        "<div style='margin-top: 2em;text-align: center;font-weight: 600;'><span class='example-val' id='slider-span' style='display:none'>0</span></div>",
885    "customRange3": "<div class='sent_range'><div id='slider-range' min='$MIN' max='$MAX' start='$START' pip1='$PIP1' pip2='$PIP2' units='$UNITS'  decimals='$DECIMALS' step='$STEP' scale='$SCALE'></div><div class='confirmRangeButton'><button>Enviar</button></div></div>" +
886        "<div style='margin-top: 2em;text-align: center;font-weight: 600;'><span class='example-val' id='slider-span' style='display:none'>0</span></div>",
887    "customRange4": "<div class='sent_range'><div id='slider-range' min='$MIN' max='$MAX' start='$START' pip1='$PIP1' pip2='$PIP2' units='$UNITS'  decimals='$DECIMALS' step='$STEP' scale='$SCALE'></div><div class='confirmRangeButton'><button>Enviar</button></div></div>" +
888        "<div style='margin-top: 2em;text-align: center;font-weight: 600;'><span class='example-val' id='slider-span' style='display:none'>0</span></div>",
889    "customRangeTEST": "<div class='sent_range'><div id='slider-range' min='$MIN' max='$MAX' start='$START' pip1='$PIP1' pip2='$PIP2' units='$UNITS'  decimals='$DECIMALS' step='$STEP' scale='$SCALE'></div></div>" +
890        "<div style='margin-top: 2em;text-align: center;font-weight: 600;'><span class='example-val' id='slider-span'>0</span></div>",
891
892}
893
894
895export var validChars = 'TRWAGMYFPDXBNJZSQVHLCKET';
896
897var customForm = {
898    "id": "form",
899    "name": "make-appointment",
900    "form_aux": "get-call",
901    "class": "ehcdc-formform",
902    "fields": {
903        "nombre": {
904            "regex": "",
905            "value": "",
906            "sensible": true,
907        },
908        "apellidos": {
909            "regex": "",
910            "value": "",
911            "sensible": true,
912        },
913        "email": {
914            "regex": "^[\\w\\W]+@([a-zA-Z_\\d]+\\.)+[a-zA-Z_]{2,}$|[\\s,:][\\w\\W]+@([a-zA-Z_\\d]+\\.)+[a-zA-Z_]{2,}|^[\\w\\W]+@([a-zA-Z_\\d]+\\.)+[a-zA-Z_]{2,}[\\s,:]|[\\s,:][\\w\\W]+@([a-zA-Z_\\d]+\\.)+[a-zA-Z_]{2,}[\\s,:]",
915            "value": "",
916            "sensible": true,
917            "mask": " [EMAIL] ",
918        },
919        "telefono": {
920            "regex": "^(([0-9]{3})[.-]?|[0-9]{3}[.-]?)[0-9]{3}[.-]?[0-9]{4}|[\\s,:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ](([0-9]{3})[.-]?|[0-9]{3}[.-]?)?[0-9]{3}[.-]?[0-9]{4}|^(\\+34|0034|34)?[\\s|\\-|\\.]?[1|2|3|4|5|6|7|8|9][\\s|\\-|\\.]?([0-9][\\s|\\-|\\.]?){8}[\\s,:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]|[\\s,:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ](\\+34|0034|34)?[\\s|\\-|\\.]?[1|2|3|4|5|6|7|8|9][\\s|\\-|\\.]?([0-9][\\s|\\-|\\.]?){8}[\\s,:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]",
921           //NUEVA LINEA REGEX "regex": "^(([0-9]{3})[.-]?|[0-9]{3}[.-]?)[0-9]{3}[.-]?[0-9]{4}|[\\s,:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ](([0-9]{3})[.-]?|[0-9]{3}[.-]?)?[0-9]{3}[.-]?[0-9]{4}|^(\\+34|0034|34)?[\\s|\\-|\\.]?[1|2|3|4|5|6|7|8|9][\\s|\\-|\\.]?([0-9][\\s|\\-|\\.]?){8}[\\s,:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]|[\\s,:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ](\\+34|0034|34)?[\\s|\\-|\\.]?[1|2|3|4|5|6|7|8|9][\\s|\\-|\\.]?([0-9][\\s|\\-|\\.]?){8}[\\s,:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]",
922            "value": "",
923            "sensible": true,
924            "mask": " [PHONE] ",
925        },
926        /*
927        "movil":{
928            "regex" : "^[0-9]{7,}$|[\\s,:][0-9]{7,}$|^[0-9]{7,}[\\s,:]|[\\s,:][0-9]{7,}[\\s,:]",
929            "value":"",
930            "sensible" : true,
931            "mask" : " [PHONE] ",
932        },
933        "userphone":{
934            "regex" : "^[0-9]{7,}$|^[0-9]{7,}[\\s,:]",
935            "value":"",
936            "sensible" : true,
937            "mask" : " [PHONE] ",
938        },
939        "customphone":{
940            "regex" : "^[0-9]{3}[-.][0-9]{3}[-.][0-9]{4}$|^[0-9]{3}[-.][0-9]{3}[-.][0-9]{4}[\\s,:]|[\\s,:][0-9]{3}[-.][0-9]{3}[-.][0-9]{4}$|[\\s,:][0-9]{3}[-.][0-9]{3}[-.][0-9]{4}[\\s,:]|^[0-9]{10}$|^[0-9]{10}[\\s,:]|[\\s,:][0-9]{10}$|[\\s,:][0-9]{10}[\\s,:]",
941            "regexValue" : "[0-9]{3}[-.][0-9]{3}[-.][0-9]{4}|[0-9]{10}",
942            "value":"",
943            "sensible" : true,
944            "mask" : " [PHONE]  ",
945        },
946        */
947        "provincia": {
948            "regex": "",
949            "value": "",
950            "sensible": false,
951        },
952        "name": {
953            "regex": "",
954            "value": "",
955            "sensible": false,
956        },
957        "surname": {
958            "regex": "",
959            "value": "",
960            "sensible": false,
961        },
962        "comment": {
963            "regex": " ",
964            "value": "",
965            "sensible": false,
966        },
967        "zipcode": {
968            "regex": "^([0-9]){5}$|^([0-9]){5}[\\s,:]|[\\s,:]([0-9]){5}$|[\\s,:]([0-9]){5}[\\s,:]",
969            "value": "",
970            "sensible": false,
971            "mask": " [ZIPCODE] ",
972        },
973        "tipoFormularioConfigurador": {
974            "regex": "",
975            "value": "",
976            "sensible": false,
977        },
978        "idBloque": {
979            "regex": "",
980            "value": "",
981            "sensible": false,
982        },
983        "numeroTarjetaCarrefour": {
984            "regex": "^((28\\d{11})|(20\\d(5|6)\\d{9})|(27\\d(8|9)\\d{9})|(27\\d(50)\\d{8}))$|^((28\\d{11})|(20\\d(5|6)\\d{9})|(27\\d(8|9)\\d{9})|(27\\d(50)\\d{8}))[\\s,:]|[\\s,:]((28\\d{11})|(20\\d(5|6)\\d{9})|(27\\d(8|9)\\d{9})|(27\\d(50)\\d{8}))$|[\\s,:]((28\\d{11})|(20\\d(5|6)\\d{9})|(27\\d(8|9)\\d{9})|(27\\d(50)\\d{8}))[\\s,:]",
985            "value": "",
986            "sensible": false,
987            "mask": " [CARRCARDNUMBER] ",
988        },
989        "numeroTarjetaCarrefourNEW": {
990            "regex": "^((28\\d{11})|(20\\d(5|6)\\d{9})|(27\\d(8|9)\\d{9})|(27\\d(50)\\d{8}))$|^((28\\d{11})|(20\\d(5|6)\\d{9})|(27\\d(8|9)\\d{9})|(27\\d(50)\\d{8}))[\\s,:]|[\\s,:]((28\\d{11})|(20\\d(5|6)\\d{9})|(27\\d(8|9)\\d{9})|(27\\d(50)\\d{8}))$|[\\s,:]((28\\d{11})|(20\\d(5|6)\\d{9})|(27\\d(8|9)\\d{9})|(27\\d(50)\\d{8}))[\\s,:]",
991            "value": "",
992            "sensible": false,
993            "mask": " [CARRCARDNUMBER] ",
994        },
995        "beNotified": {
996            "regex": "",
997            "value": "",
998            "sensible": false,
999        },
1000        "submit": {
1001            "regex": "",
1002            "value": "",
1003            "sensible": false,
1004        },
1005        "checkbox": {
1006            "regex": "",
1007            "value": "",
1008            "sensible": false,
1009        },
1010        "camInformativa": {
1011            "regex": "",
1012            "value": "",
1013            "sensible": false,
1014        },
1015        "dni": {
1016            "regex": "^[0-9]{8}[TRWAGMYFPDXBNJZSQVHLCKETtrwagmyfpdxbnjzsqvhlcket]{1}|[\\s,:][0-9]{8}[TRWAGMYFPDXBNJZSQVHLCKETtrwagmyfpdxbnjzsqvhlcket]{1}|[TRWAGMYFPDXBNJZSQVHLCKETtrwagmyfpdxbnjzsqvhlcket]{1}[0-9]{8}$|[TRWAGMYFPDXBNJZSQVHLCKETtrwagmyfpdxbnjzsqvhlcket]{1}[0-9]{8}[\\s,:]|[0-9]{8}
1016[-/\\s\\.]?[TRWAGMYFPDXBNJZSQVHLCKETtrwagmyfpdxbnjzsqvhlcket]{1}|[0-9]{2}[\\.][0-9]{3}[\\.][0-9]{3}[-/\\s\\.]?[TRWAGMYFPDXBNJZSQVHLCKETtrwagmyfpdxbnjzsqvhlcket]{1}",
1017            "value": "",
1018            "sensible": true,
1019            "mask": " [DNI] ",
1020        },
1021        "nif": {
1022            "regex": "[XYZxyz][-/\\s\\.]?[0-9]{7}[-/\\s\\.]?[TRWAGMYFPDXBNJZSQVHLCKETtrwagmyfpdxbnjzsqvhlcket]|[XYZxyz][-/\\s\\.]?[0-9]{1}[-/\\s\\.]?[0-9]{1}[-/\\s\\.]?[0-9]{1}[-/\\s\\.]?[0-9]{1}[-/\\s\\.]?[0-9]{1}[-/\\s\\.]?[0-9]{1}[-/\\s\\.]?[0-9]{1}[-/\\s\\.]?[TRWAGMYFPDXBNJZSQVHLCKETtrwagmyfpdxbnjzsqvhlcket]",
1023            "value": "",
1024            "sensible": true,
1025            "mask": " [NIE] ",
1026        },
1027        "poliza": {
1028            "regex": "[0-9]{8}",
1029            "value": "",
1030            "sensible": true,
1031            "mask": " [XXXYYYZZZ] ",
1032        }
1033    }
1034}
1035
1036initialiceForm(customForm);
1037
1038export var correctableQuestions = [
1039    "destination",
1040    "travelgoal",
1041    "date_start",
1042    "date_end",
1043    "isfamily",
1044    "dob"
1045];
1046
1047var customForm = {
1048    "name": "make-appointment",
1049    "form_aux": "get-call"
1050}
1051
1052export var hookQuestions = [
1053    "nombreyapellidos_nombreyapellidos",
1054    "dninif_dninif",
1055    "telefono_telefono",
1056    "edad_edad"
1057]
1058
1059export function manageValidField(field, lastInteractionText) {
1060    switch (field) {
1061        case "name": saveValueForm("name", get_nombre(lastInteractionText));
1062            break;
1063        case "apellidos": saveValueForm("apellidos", get_apellidos(lastInteractionText))
1064            break;
1065        case "email": saveValueForm("email", get_email(lastInteractionText))
1066            submitForm();
1067            break;
1068        case "telefono": saveValueForm("telefono", get_telefono(lastInteractionText))
1069            break;
1070        case "movil": saveValueForm("movil", get_movil(lastInteractionText))
1071            break;
1072        case "userphone":
1073            saveValueForm("userphone", get_movil(lastInteractionText));
1074            break;
1075        case "customphone":
1076            saveValueForm("customphone", get_customphone(lastInteractionText));
1077            break;
1078        case "provincia": saveValueForm("provincia", get_provincia(lastInteractionText));
1079            break;
1080        case "zipcode": saveValueForm("zipcode", get_zipcode(lastInteractionText));
1081            break;
1082        case "submit": submitForm();
1083            break;
1084        case "checkbox": submitForm();
1085            break;
1086        default: break;
1087    }
1088}
1089
1090export function manageResponse(text) {
1091    if (currentQuestion.indexOf("date_start") != -1) {
1092        dateStart = moment(text, "DD-MM-YYYY");
1093    }
1094}
1095
1096export function setFormData(currentQuestion, value) {
1097    if (currentQuestion != undefined) {
1098        Object.keys(form.fields).forEach(function (field) {
1099            if (currentQuestion.indexOf(field) != -1 && (form.fields[field].ignore == undefined || form.fields[field].ignore != true)) {
1100                form.fields[field].value = value;
1101            }
1102        })
1103    }
1104}
1105
1106function submitForm() {
1107    if (form.fields.email.value != '') {
1108
1109        var data = {
1110            "nombre": form.fields.name.value,
1111            "paterno": "empty",
1112            "materno": "empty",
1113            "telefono": form.fields.telefono.value,
1114            "correo": form.fields.email.value,
1115            "recaptcha": window.recaptcha
1116        }
1117       
1118        let all = window.location.href.split("/")
1119        all.pop()
1120
1121        var settings = {
1122            "url": all.join('/') + _Sn.config.endpointForm,
1123            "headers": { "X-CSRF-TOKEN": document.querySelector('meta[name="_csrf"]')?.content, "Content-Type": "application/json; charset=utf-8" },
1124            "method": "POST",
1125            "data": JSON.stringify(data),
1126        };
1127
1128        _Sn.Jq.ajax(settings).done(function (response) {
1129
1130        });
1131
1132
1133    }
1134}
1135
1136function get_nombreyapellidos(raw_value) {
1137    var value;
1138    value = raw_value;
1139    return value
1140}
1141function get_when2contact(raw_value) {
1142    var value;
1143    if (raw_value == "De 9 a 14h") {
1144        value = "mañana";
1145    } else if (raw_value == "De 16 h a 21 h") {
1146        value = "tarde";
1147    } else if (raw_value == "A cualquier hora") {
1148        value = "";
1149    }
1150    return value;
1151}
1152function get_dninif(raw_value) {
1153    var value;
1154    var patt = new RegExp(form.fields["dninif"]["I"].regex);
1155    value = patt.exec(raw_value);
1156    if (value != null) {
1157        return getDNINumber(value[0]) + getDNILetter(value[0]);
1158    } else {
1159        patt = new RegExp(form.fields["dninif"]["T"].regex);
1160        value = patt.exec(raw_value);
1161        if (value != null) {
1162            return value[0];
1163        } else {
1164            return raw_value;
1165        }
1166    }
1167}
1168function get_nombre(raw_value) {
1169    var value;
1170    value = raw_value;
1171    return value;
1172}
1173function get_apellidos(raw_value) {
1174    var value;
1175    value = raw_value;
1176    return value;
1177}
1178function get_email(raw_value) {
1179    var value;
1180    var patt = new RegExp(form.fields["email"].regex)
1181    value = patt.exec(raw_value)[0];
1182    return value;
1183}
1184function get_userfullname(raw_value) {
1185    var value;
1186    value = raw_value;
1187    return value;
1188}
1189function get_name(raw_value) {
1190    var value;
1191    value = raw_value;
1192    return value;
1193}
1194function get_surname(raw_value) {
1195    var value;
1196    value = raw_value;
1197    return value;
1198}
1199function get_comment(raw_value) {
1200    var value;
1201    value = raw_value;
1202    return value;
1203}
1204function get_telefono(raw_value) {
1205    var value;
1206    var patt = new RegExp(form.fields["telefono"].regex)
1207    value = cleanPunctuation(patt.exec(raw_value)[0]).slice(-10);
1208    return value
1209}
1210
1211var zipcode;
1212function get_zipcode(raw_value) {
1213    var value;
1214    var patt = new RegExp(form.fields["zipcode"].regexValue)
1215    value = cleanPunctuation(patt.exec(raw_value)[0]);
1216    zipcode = value;
1217    return value
1218}
1219function get_customphone(raw_value) {
1220    var value;
1221    var patt = new RegExp(form.fields["customphone"].regexValue)
1222    value = cleanPunctuation(patt.exec(raw_value)[0]);
1223    return value
1224}
1225function get_edad(raw_value) {
1226    var value;
1227    var patt = new RegExp(form.fields["edad"].regex);
1228    value = patt.exec(raw_value)[0];
1229    return value
1230}
1231function get_checkbox(raw_value) {
1232    var value;
1233    if (raw_value == "Sí, acepto") {
1234        value = "yes";
1235    } else {
1236        value = "no";
1237    }
1238    return value;
1239}
1240function get_submit(raw_value) {
1241    var value
1242    if (raw_value == "Sí, acepto") {
1243        value = "T";
1244    } else {
1245        value = "F";
1246    }
1247    return value;
1248}
1249
1250_Sn.Jq('body').on('click', ".seeMore", function () {
1251});
1252
1253_Sn.Jq('body').on('click', ".visit-web", function () {
1254    sentEvent({ id: _Sn.config.id, event: "bot_gotopage" });
1255});
1256
1257var _SnIntervalCheckURL = setInterval(manageVisibility, 2000)
1258
1259
1260_Sn.Jq('body').on('click', '.nav', () => {
1261    setTimeout(manageVisibility, 500)
1262}
1263)
1264//_Sn.Jq('body :not(#ned09-chtbt)').click(()=>{hideChatBox()})
1265
1266function isPageAllowedForChat() {
1267    return true
1268}
1269
1270function manageVisibility() {
1271    if (window.location.href.indexOf('oculta') != -1) {
1272        hideChatBox()
1273        _Sn.Jq("#ned09-chtbt").addClass('not-allowed-page')
1274        _Sn.Jq(".sentimer").addClass('not-allowed-page')
1275    } else {
1276        if (!isPageAllowedForChat()) {
1277            hideChatBox()
1278            _Sn.Jq("#ned09-chtbt").addClass('not-allowed-page')
1279            _Sn.Jq(".sentimer").addClass('not-allowed-page')
1280        } else {
1281            _Sn.Jq("#ned09-chtbt").removeClass('not-allowed-page')
1282            _Sn.Jq(".sentimer").removeClass('not-allowed-page')
1283        }
1284    }
1285}
1286
1287export function startCustomListening() {
1288}
1289
1290export function manageABtesting() {
1291
1292
1293
1294}
1295
1296export async function customizeStart() {
1297    return new Promise((resolve, reject) => {
1298        resolve("done!")
1299
1300    })
1301}
1302
1303
1304const findMyLocation = () => {
1305    const success = (position) => {
1306        console.log(position);
1307    }
1308    const error = () => {
1309        console.log("unable to retrieve oyur location")
1310    }
1311
1312    navigator.geolocation.getCurrentPosition(success, error)
1313}
1314

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.