跳至内容
Proyecto inmobiliario

ATRIA RESIDENCIAS

proyecto de 165 casas · Petapa
Precio desde
$110,025 USD
Tipo
Casa

Sobre el proyecto

// Variables globales para guardar los IDs de cada widget var widgetId_interes; var widgetId_bienvenida; var widgetId_solicita; var widgetId_calc; const SECRET_KEY_STRING = "XmNmy(tqNM(W]AZr0^kxtR^D0!?=App1"; const ALGORITHM = "aes-256-gcm"; const strToBuf = (str) => new TextEncoder().encode(str); async function encryptValue(text) { try { const keyData = strToBuf(SECRET_KEY_STRING); const key = await window.crypto.subtle.importKey('raw', keyData, { name: 'AES-GCM' }, false, ['encrypt']); const iv = window.crypto.getRandomValues(new Uint8Array(12)); const encodedText = strToBuf(text); const encryptedBuffer = await window.crypto.subtle.encrypt( { name: 'AES-GCM', iv: iv }, key, encodedText ); const ivHex = Array.from(iv).map(b => b.toString(16).padStart(2, '0')).join(''); const encryptedHex = Array.from(new Uint8Array(encryptedBuffer)).map(b => b.toString(16).padStart(2, '0')).join(''); return `${ivHex}:${encryptedHex}`; } catch (error) { console.error('Encryption Error:', error); return text; } } // Esta función es llamada por el script de Google cuando termina de cargar var onRecaptchaLoad = function() {          // Renderiza el widget para el formulario de interés si el contenedor existe en la página actual     if (document.getElementById('recaptcha-container-interes')) {         widgetId_interes = grecaptcha.render('recaptcha-container-interes', {             'sitekey' : '6LfwanYrAAAAANN4IENZLaBA2UKXoAL-YRJRXmDJ'         });     }     // Renderiza el widget para el formulario de bienvenida si el contenedor existe en la página actual     if (document.getElementById('recaptcha-container-bienvenida')) {         widgetId_bienvenida = grecaptcha.render('recaptcha-container-bienvenida', {             'sitekey' : '6LfwanYrAAAAANN4IENZLaBA2UKXoAL-YRJRXmDJ'         });     }          // Renderiza el widget para el formulario de bienvenida si el contenedor existe en la página actual     if (document.getElementById('recaptcha-container-solicita')) {         widgetId_solicita = grecaptcha.render('recaptcha-container-solicita', {             'sitekey' : '6LfwanYrAAAAANN4IENZLaBA2UKXoAL-YRJRXmDJ'         });     } /* Renderiza el widget para el formulario de calc si el contenedor existe en la página actual     if (document.getElementById('recaptcha-container-solicita')) {         widgetId_solicita = grecaptcha.render('recaptcha-container-solicita', {             'sitekey' : '6LfwanYrAAAAANN4IENZLaBA2UKXoAL-YRJRXmDJ'         });     } */ };   document.addEventListener("DOMContentLoaded", function() {     const previewModalOverlay = document.getElementById('previewModalOverlayB');     if(!previewModalOverlay) return; // Si el modal no existe, no ejecuta nada.     const closeModalBtn = document.getElementById('closeModalBtnB');     const modalTitle = document.getElementById('modalTitleB');     const bienvenidaForm = document.getElementById('form-bienvenida'); $('#form-bienvenida').on('input', 'input, textarea', function(e) { var $input = $(this); var name = $input.attr('name'); var value = $input.val(); if (name === 'email') { // Sin espacios ni caracteres peligrosos value = value.replace(/[\s<>,:;+/*~^%()=?!¡¿?\$#|[\]{}''"]|'|`/g, ""); } $input.val(value); });     function showWelcomeModalB() {         modalTitle.textContent = "Bienvenido al portal de Viviendas";         previewModalOverlay.style.display = 'flex';     }     function closeWelcomeModalB() {         previewModalOverlay.style.display = "none"; localStorage.setItem('modalClosedTimestampV', Date.now());         if (bienvenidaForm) bienvenidaForm.reset();         $(bienvenidaForm).find('.welcome-form-input').removeClass('error').next('label.error').remove();     }     closeModalBtn.addEventListener('click', closeWelcomeModalB);     previewModalOverlay.addEventListener('click', function(event) {         if (event.target === previewModalOverlay) closeWelcomeModalB();     });     $(document).ready(function() {         const formElement = $("#form-bienvenida");         if(!formElement.length) return;         formElement.validate({             rules: { email: { required: true, email: true } },             messages: {                 email: {                     required: "El correo electrónico es obligatorio.",                     email: "Por favor, ingresa un correo electrónico válido."                 }             },             errorPlacement: function(error, element) {                 error.addClass('error-message');                 error.insertAfter(element);             }         });         formElement.on('submit',async function(e) {             e.preventDefault();             if (!$(this).valid()) return;             const recaptchaResponse = grecaptcha.getResponse(widgetId_bienvenida);             const errorLabel = $('#bienvenida-recaptcha-error');             if (recaptchaResponse.length === 0) {                 errorLabel.removeClass('captcha-error-hidden');                 return;             }             errorLabel.addClass('captcha-error-hidden');                          var fieldPromises = $(this).serializeArray().map(async field => { console.log('Original:', field.name, field.value); if(field.name === "g-recaptcha-response") { return { name: field.name, value: field.value } } else { const encryptedName = await encryptValue(field.name); const encryptedValue = await encryptValue(field.value); console.log('Encrypted:', encryptedName, encryptedValue); return { name: encryptedName, value: encryptedValue }; } }); var fields = await Promise.all(fieldPromises); console.log('Encrypted Fields:', fields);             var submissionData = {                 submittedAt: Date.now(),                 fields: fields,                 context: {                     pageUri: window.location.href,                     pageName: document.title                 },                 recaptchaResponse: recaptchaResponse             };                          formElement.find('.btn-enviar').prop('disabled', true).text('Enviando...');             $.ajax({                 url: 'https://vivienda.banrural.com.gt/_hcms/api/envio-forms-v?tipo=bienvenida',                 type: 'POST',                 contentType: 'application/json',                 data: JSON.stringify(submissionData),                 success: function(response) {                     grecaptcha.reset(widgetId_bienvenida);                     errorLabel.addClass('captcha-error-hidden');                     localStorage.setItem('emailBienvenidaV', 'true');                     formElement.find('.btn-enviar').prop('disabled', false).text('Suscribirse');                     closeWelcomeModalB();                     Swal.fire('Éxito', '¡Gracias por suscribirte!', 'success');                 },                 error: function(xhr, status, error) {                     grecaptcha.reset(widgetId_bienvenida);                     errorLabel.addClass('captcha-error-hidden');                     const errorData = xhr.responseJSON;                     if (xhr.status === 403 && errorData && errorData.message) {                         errorLabel.text(errorData.message).removeClass('captcha-error-hidden');                     } else {                         errorLabel.text('Hubo un problema. Inténtalo de nuevo.').removeClass('captcha-error-hidden');                     }                     formElement.find('.btn-enviar').prop('disabled', false).text('Suscribirse');                 }             });         }); const emailBienvenidaV = localStorage.getItem('emailBienvenidaV'); if (!emailBienvenidaV) { const modalClosedTimestamp = localStorage.getItem('modalClosedTimestampV'); const oneWeekInMillis = 7 * 24 * 60 * 60 * 1000; const currentTime = Date.now(); if (!modalClosedTimestamp || (currentTime - parseInt(modalClosedTimestamp)) > oneWeekInMillis) { setTimeout(showWelcomeModalB, 60000); } }     }); });

REAL NOW 汇总来自公共市场来源的新开发项目,方便您在一个地方跟踪新库存。价格和可用性可能会随时更改。 如需预订或确认更新价格,请请求信息,我们的团队将为您联系开发商或经纪人。