// dichiarazione del namespace
var it = it || {};
it.bookingexpert = it.bookingexpert || {};

// classe per la visualizzazione del widget di ricerca
it.bookingexpert.AcrBox = {};
// dizionario codice/html dei widget di ricerca
it.bookingexpert.AcrBox.html = [];
// riferimento all'ultimo target
it.bookingexpert.AcrBox.target = null;

it.bookingexpert.AcrBox.gs = {};
// carica il widtget associato al codice specificato all'interno di target
it.bookingexpert.AcrBox.load = function (target, code, opts) {
    if (typeof target === 'string') {
        target = document.getElementById(target);
    }
    it.bookingexpert.AcrBox.target = target;
    if (!code) {
        code = '';
    }
    // impostazioni predefinite
    opts = opts || {};
    opts.modaltarget = opts.modaltarget || 'bemodalframe';
    // cerca il box associato al codice
    var found = null;
    for (var i = 0; i < it.bookingexpert.AcrBox.html.length; i++) {
        var box = it.bookingexpert.AcrBox.html[i];
        if (code === '' || box.code === code) {
            found = box.html;
            break;
        }
    }
    // se box non trovato esco
    if (found === null || found === '') {
        return;
    }
    // visualizza la form di ricerca
    it.bookingexpert.AcrBox.template(target, opts, found);

    var acrurl = it.bookingexpert.AcrBox.acrurl;
    it.bookingexpert.AcrBox.applyListener(target, acrurl);
};

it.bookingexpert.AcrBox.applyListener = function (target, acrurl) {
    var idtarget = "#" + target.id;
    jQuery(idtarget + " input[type=button]").click(function () {
        jQuery(idtarget + ' .result').empty();
        var checkin = jQuery(idtarget + " input[name=checkin]").val();
        var checkout = jQuery(idtarget + " input[name=checkout]").val();
        var layout = jQuery(idtarget + " input[name=layout]").val();
        var hotel = jQuery(idtarget + " input[name=hotel]").val();
        var req = jQuery(idtarget + " textarea[name=request]").val();
        var firstname = jQuery(idtarget + " input[name=firstname]").val();
        var lastname = jQuery(idtarget + " input[name=lastname]").val();
        var email = jQuery(idtarget + " input[name=email]").val();
        var guests = jQuery(idtarget + " select[name=guests]").val();
        var phone = jQuery(idtarget + " input[name=phone]").val();
        var channel = jQuery(idtarget + " input[name=channel]").val();
        var gt = jQuery(idtarget + " select[name^=guesttypes]");
        var lng = jQuery(idtarget + " input[name=lang]").val();
        var guesttypes = [];
        if (gt) {
            jQuery(gt).each(function (index) {
                var gid = jQuery(this).attr('guestid');
                var ages = [];
                var ages2parse = jQuery(idtarget + " select[name=ages\\[0\\]\\[" + gid + "\\]]");
                if (ages2parse) {
                    jQuery(ages2parse).each(function (idx) {
                        ages.push(jQuery(this).val());
                    });
                }
                var aGt = {
                    id: gid,
                    quantity: jQuery(this).val(),
                    ages: ages
                };
                guesttypes.push(aGt);
            });
        }
        var captcha_response = grecaptcha.getResponse();
        if (captcha_response === '') {
            jQuery(idtarget + ' .result').append(it.bookingexpert.AcrBox.lang.captchanotcompleted);
            return;
        }
        if (!jQuery(idtarget + ' input[name=privacy]').is(':checked')) {
            jQuery(idtarget + ' .result').append(it.bookingexpert.AcrBox.lang.acceptprivacy);
            return;
        }
        if ((firstname === undefined) || (firstname.trim().length === 0)
                || (lastname === undefined) || (lastname.trim().length === 0)
                || (email === undefined) || (email.trim().length === 0)
                || (req === undefined) || (req.trim().length === 0)) {
            jQuery(idtarget + ' .result').append(it.bookingexpert.AcrBox.lang.acrdatarequired);
            return;
        }
        if (it.bookingexpert.AcrBox.phonepresent && it.bookingexpert.AcrBox.phonerequired) {
            if ((phone === undefined) || phone.length === 0) {
                jQuery(idtarget + ' .result').append(it.bookingexpert.AcrBox.lang.phonerequired);
                return;
            }
        }
        jQuery.ajax({
            type: "POST",
            url: acrurl,
            data: {
                layout: layout,
                hotel: hotel,
                checkin: (checkin !== undefined) ? checkin : "",
                checkout: (checkout !== undefined) ? checkout : "",
                channel: (channel !== undefined) ? channel : "",
                lang: (lng !== undefined) ? lng : "",
                request: req,
                firstname: firstname,
                lastname: lastname,
                email: email,
                phone: (phone !== undefined) ? phone : "",
                guests: (guests !== undefined) ? guests : "",
                guesttypes: (guesttypes.length > 0) ? JSON.stringify(guesttypes) : "",
                recaptcha_response: captcha_response
            },
            success: function (msg) {
                var ok = msg.response;
                if (ok === 'ok') {
                    jQuery(idtarget + ' .result').append(it.bookingexpert.AcrBox.lang.requestsent);
                    jQuery(idtarget + ' .result').addClass('ok');
                    jQuery(idtarget + " input[type=button]").hide();
                    jQuery(idtarget + ' .g-recaptcha').hide();
                } else {
                    jQuery(idtarget + ' .result').append(msg.error);
                }
            },
            error: function (jqXHR, textStatus, errorThrown) {
                jQuery(idtarget + '.result').append('Richiesta fallita: ' + textStatus);
            }
        });
    });
};
// include il file javascript esterno ed esegue la funzione callback appena pronto
it.bookingexpert.AcrBox.template = function (target, opts, html) {
    // recupera i tag script dal codice del box
    var scripts = '';
    var cleaned = html.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, function () {
        scripts += arguments[0];
        return '';
    });
    // blocco offerte
    cleaned = cleaned.replace(/\{offers(:([\d\w]+))?\}([\s\S]*?)\{\/offers\}/g, function (a, c, d, b) {
        var h = '';
        if (typeof it.bookingexpert.AcrBox.offers !== 'undefined') {
            // cerca estensione
            var n = null;
            if (d) {
                for (var g = 0; g < it.bookingexpert.AcrBox.jsonOffers.length; g++) {
                    n = it.bookingexpert.AcrBox.jsonOffers[g];
                    if (n.code === d) {
                        break;
                    }
                }
            }
            // formatta le offerte
            for (var j = 0; j < it.bookingexpert.AcrBox.offers.length; j++) {
                var f = it.bookingexpert.AcrBox.offers[j];
                if (n !== null) {
                    var q = false;
                    var r = f.type === 'rate' ? n.rates : n.sales;
                    if (r !== null) {
                        for (var g = 0; g < r.length; g++) {
                            if (r[g] === f.id) {
                                q = true;
                                break;
                            }
                        }
                    }
                    if (!n.exclude && !q || n.exclude && q) {
                        continue;
                    }
                }
                h += b.replace(/\{([^\}]+)\}/g, function (c, d) {
                    var f = it.bookingexpert.AcrBox.offers[j];
                    var e = d.split('.');
                    for (var g = 0; g < e.length; g++) {
                        if (e[g] === 'hotel' && typeof it.bookingexpert.AcrBox.domain !== 'undefined') {
                            // cerca informazioni hotel nel dominio
                            for (var i = 0; i < it.bookingexpert.AcrBox.domain.hotels.length; i++) {
                                var t = it.bookingexpert.AcrBox.domain.hotels[i];
                                if (t.id === f[e[g]]) {
                                    f = t;
                                    break;
                                }
                            }
                        } else {
                            f = f[e[g]];
                        }
                        if (f === null) {
                            break;
                        }
                    }
                    return f === null ? '' : f;
                });
            }
        }
        return h;
    });
    // sostituisce i blocchi fino a esaurimento degli stessi
    var blockexp = /\{(simpleform|hidden|services|categories|places|hotels|dates|guests|guesttypes|ages|options|fieldset|coupon|agencycode|captcha)(:(.+?))?\}/g;
    var temp = '';
    while (temp !== cleaned) {
        temp = cleaned;
        cleaned = temp.replace(blockexp, it.bookingexpert.AcrBox.replace);
    }
    // stampa nella destinazione solo html
    target.innerHTML = cleaned;
    //Metto l'asterisco sui campi obbligatori
    var idtarget = "#" + target.id;
    var fn = jQuery(idtarget + " input[name=firstname]").parent().find('label');
    fn.text(fn.text() + '*');
    var ln = jQuery(idtarget + " input[name=lastname]").parent().find('label');
    ln.text(ln.text() + '*');
    var em = jQuery(idtarget + " input[name=email]").parent().find('label');
    em.text(em.text() + '*');
    var rq = jQuery(idtarget + " textarea[name=request]").parent().find('label');
    rq.text(rq.text() + '*');
    //Inserisco il numero di telefono se presente nelle form acr
    if (it.bookingexpert.AcrBox.phonepresent) {
        var phonediv = "<div><label>" + it.bookingexpert.AcrBox.lang.phone;
        if (it.bookingexpert.AcrBox.phonerequired) {
            phonediv += '*';
        }
        phonediv += "</label><input type='text' name='phone' /></div>";
        jQuery(idtarget + " input[name=email]").parent().after(phonediv);
    }
    //Inserisco un messaggio per i campi obbligatori
    jQuery(idtarget + " .result").after("<div class='requiredfieldsmessage'>" + it.bookingexpert.AcrBox.lang.fillrequiredfields + "</div>");
    //Inserisco la checkbox per l'accettazione privacy
    var privtxt = it.bookingexpert.AcrBox.lang.privacytext;
    if (privtxt !== undefined && privtxt !== '') {
        jQuery(idtarget + " .requiredfieldsmessage").
                after("<div class='privacysection'>" +
                        "<input type='checkbox' name='privacy' />" +
                        it.bookingexpert.AcrBox.lang.privacyaccept + " (<span class='privacyread'>" + it.bookingexpert.AcrBox.lang.privacyread + "</span>)" +
                        "</div>");

        jQuery(idtarget + " .privacysection").
                after("<div class='privacytxt' style='display:none'>" +
                        "<label>" + it.bookingexpert.AcrBox.lang.privacytitle + "</label>" +
                        "<div class='privacyscroll'>" + privtxt + "</div>" +
                        "</div>");
    } else {
        alert("Testo privacy non presente!");
        target.innerHTML = '';
        return;
    }



    // registra gli eventi predefiniti
    var forms = target.getElementsByTagName('form');
    for (var x = 0; x < forms.length; x++) {
        if (forms[x].target === opts.modaltarget) {
            forms[x].onsubmit = it.bookingexpert.AcrBox.modal;
        }
    }

    scripts += '<script src="https://www.google.com/recaptcha/api.js" async defer></script>';
    scripts += "<script>jQuery('" + idtarget + " .privacyread').click(function () {jQuery('" + idtarget + " .privacytxt').toggle();});</script>";
    // crea i tag script e esegue il codice
    var div = document.createElement('div');
    div.innerHTML = '.' + scripts;
    for (var x = 1; x < div.childNodes.length; x++) {
        var node = div.childNodes[x];
        var src = node.getAttribute('src');
        var script = document.createElement('script');
        script.setAttribute('type', 'text/javascript');
        if (src !== null) {
            script.setAttribute('src', src);
        }
        script.text = node.innerHTML;
        target.appendChild(script);
    }
};
// codice html per la generazione del form default
it.bookingexpert.AcrBox.replace = function () {
    var b = arguments[1];
    var c = arguments[3];
    if (b === 'simpleform') {
        return it.bookingexpert.AcrBox.replaceSimpleForm();
    } else if (b === 'fieldset') {
        return it.bookingexpert.AcrBox.replaceFieldset(c);
    } else if (b === 'hidden') {
        return it.bookingexpert.AcrBox.replaceHidden();
    } else if (b === 'places') {
        return it.bookingexpert.AcrBox.replacePlaces();
    } else if (b === 'hotels') {
        return it.bookingexpert.AcrBox.replaceHotels();
    } else if (b === 'guests') {
        return it.bookingexpert.AcrBox.replaceGuests(c);
    } else if (b === 'guesttypes') {
        return it.bookingexpert.AcrBox.replaceGuesttypes(c);
    } else if (b === 'services') {
        return it.bookingexpert.AcrBox.replaceServices();
    } else if (b === 'options') {
        return it.bookingexpert.AcrBox.replaceOptions(c);
    } else if (b === 'ages') {
        return it.bookingexpert.AcrBox.replaceAges(c);
    } else if (b === 'coupon') {
        return it.bookingexpert.AcrBox.replaceCoupon(c);
    } else if (b === 'agencycode') {
        return it.bookingexpert.AcrBox.replaceAgencies(c);
    } else if (b === 'categories') {
        return it.bookingexpert.AcrBox.replaceCategories(c);
    } else if (b === 'dates') {
        return it.bookingexpert.AcrBox.replaceDates(c);
    } else if (b === 'captcha') {
        return it.bookingexpert.AcrBox.replaceCaptcha();
    }
    return '';
};

it.bookingexpert.AcrBox.writeOptions = function (c) {
    if (!c) {
        c = '0,9';
    }
    var a = c.split(',').map(function (item) {
        return parseInt(item, 10);
    });
    var str = '';
    for (var y = a[0]; y <= a[1]; y++) {
        str += '<option';
        if (a[2] == y) {
            str += ' selected="selected"';
        }
        str += '>' + y + '</option>';
    }
    return str;

};

it.bookingexpert.AcrBox.replaceCaptcha = function () {
    var str = '<div class="g-recaptcha" data-sitekey="6LeevhoTAAAAALpinGFIn9fo34q9jmr0Mr-sNa3w"></div>';
    return str;
};

it.bookingexpert.AcrBox.captchaReset = function () {
    grecaptcha.reset();
};

// sostituisce le options per le select dinamiche
it.bookingexpert.AcrBox.replaceOptions = function (c) {
    var str = it.bookingexpert.AcrBox.writeOptions(c);
    var a = c.split(',');
    if (a.length === 5 && a[4] === 'guest') {
        it.bookingexpert.AcrBox.gs['guesttypes[0][' + a[3] + ']'] = a[2];
    }
    return str;
};

it.bookingexpert.AcrBox.replaceAges = function (c) {
    var a = c.split(',');
    var str = '';
//    $id,$min,$defval,$agefrom,$ageto,$agedefault,$ageselect
    if (a[6] === "true") {
        str += '<div>';
        if (a[2] !== '0') {
            if (!a[3]) {
                a[3] = 0;
            }
            if (!a[4] || a[4] === "null") {
                a[4] = 18;
            } else if (a[4] > 18) {
                a[4] = 18;
            }
            for (x = a[1]; x <= a[2]; x++) {

                str += it.bookingexpert.AcrBox.strAge(a[0], a[3], a[4], a[5], a[6]);
            }
        }
        str += '</div>';
    }
    return str;

};

it.bookingexpert.AcrBox.showAges = function (guest, agefrom, ageto, agedefault, ageselect) {
    // id, agefrom, ageto, agedefault, ageselect
    if (ageselect) {
        if (!agefrom) {
            agefrom = 0;
        }
        if (!ageto) {
            ageto = 18;
        } else if (ageto > 18) {
            ageto = 18;
        }
        var newone = jQuery(guest).val();
        var oldone = it.bookingexpert.AcrBox.gs[jQuery(guest).attr('name')];
        if (newone > oldone) {
            for (x = oldone; x < newone; x++) {
                var str = it.bookingexpert.AcrBox.strAge(jQuery(guest).attr('guestid'), agefrom, ageto, agedefault);
                jQuery('select[name="guesttypes[0][' + jQuery(guest).attr('guestid') + ']"]').parent('div').children('div').first().append(str);
            }
        } else {
            for (x = oldone; x > newone; x--) {
                jQuery(guest).parent('div').children('div').first().children("div[name='eta']").last().remove();
            }
        }
        it.bookingexpert.AcrBox.gs[jQuery(guest).attr('name')] = newone;

    }
};

it.bookingexpert.AcrBox.strAge = function (guest, agefrom, ageto, agedefault) {
    var str = '<div name="eta"><label>' + it.bookingexpert.AcrBox.lang.age + '</label>';
    str += '<select name="ages[0][' + guest + ']">';
    str += it.bookingexpert.AcrBox.writeOptions('' + agefrom + ',' + ageto + ',' + agedefault);
    str += '</select></div>';
    return str;

};



// sostituisce blocco per luoghi hotels
it.bookingexpert.AcrBox.onPlaceChange = function (sender) {
    if (typeof it.bookingexpert.AcrBox.domain !== 'undefined') {
        var place = sender.value;
        jQuery('select[name=hotel]', it.bookingexpert.AcrBox.target).each(function () {
            this.options.length = 1;
            for (var i = 0; i < it.bookingexpert.AcrBox.domain.hotels.length; i++) {
                var h = it.bookingexpert.AcrBox.domain.hotels[i];
                if (place === '' || place === h.city) {
                    this.options[this.options.length] = new Option(h.name, h.id);
                }
            }
        });
    }
};
// sostituisce blocco date nel caso sia un ecopmmerce prodotti
it.bookingexpert.AcrBox.replaceDates = function () {
    var str = '';
    if (typeof it.bookingexpert.AcrBox.ecommerce !== 'undefined' && it.bookingexpert.AcrBox.hasDates) {
        str += '<div><label>';
        str += it.bookingexpert.AcrBox.lang.checkin;
        str += '</label><input type="text" name="checkin" value="" /></div>';
        str += '<div><label>';
        str += it.bookingexpert.AcrBox.lang.checkout;
        str += '</label><input type="text" name="checkout" value="" /></div>';
    }
    return str;
};
it.bookingexpert.AcrBox.replaceServices = function () {
    var str = '';
    if (typeof it.bookingexpert.AcrBox.services !== 'undefined') {
        str += '<div><label>';
        str += it.bookingexpert.AcrBox.lang.service;
        str += '</label>';
        str += '<select name="service">';
        str += '<option value="">';
        str += it.bookingexpert.AcrBox.lang.all;
        str += '</option>';
        for (var i = 0; i < it.bookingexpert.AcrBox.services.length; i++) {
            var h = it.bookingexpert.AcrBox.services[i];
            str += '<option value="';
            str += h.id;
            str += '">';
            str += h.name;
            str += '</option>';
        }
        str += '</select>';
        str += '</div>';
    }
    return str;
};
// sostituisce blocco per luoghi hotels
it.bookingexpert.AcrBox.replacePlaces = function () {
    var str = '';
    if (typeof it.bookingexpert.AcrBox.domain !== 'undefined') {
        var places = {};
        var sorted = [];
        for (var i = 0; i < it.bookingexpert.AcrBox.domain.hotels.length; i++) {
            var h = it.bookingexpert.AcrBox.domain.hotels[i];
            if (!places[h.city]) {
                places[h.city] = 1;
                sorted.push(h.city);
            }
        }
        sorted.sort();
        str += '<select onchange="it.bookingexpert.AcrBox.onPlaceChange(this)" name="place">';
        str += '<option value="">';
        str += it.bookingexpert.AcrBox.lang.allplaces;
        str += '</option>';
        for (var i in sorted) {
            str += '<option>';
            str += sorted[i];
            str += '</option>';
        }
        str += '</select>';
    }
    return str;
};
// sostituisce blocco per nomi hotels
it.bookingexpert.AcrBox.replaceHotels = function () {
    var str = '';
    if (typeof it.bookingexpert.AcrBox.domain !== 'undefined') {
        str += '<select name="hotel">';
        str += '<option value="">';
        str += it.bookingexpert.AcrBox.lang.allhotels;
        str += '</option>';
        for (var i = 0; i < it.bookingexpert.AcrBox.domain.hotels.length; i++) {
            var h = it.bookingexpert.AcrBox.domain.hotels[i];
            str += '<option value="';
            str += h.id;
            str += '">';
            str += h.name;
            str += '</option>';
        }
        str += '</select>';
    }
    return str;
};
// sostituisce blocco per combiazioni ospiti
it.bookingexpert.AcrBox.replaceGuests = function (c) {
    if (!c) {
        c = '<option value="$id"$favhtml>$description</option>';
    }
    return it.bookingexpert.AcrBox.replaceFields(it.bookingexpert.AcrBox.guests, c);
};
// sostituisce blocco per tipologie ospiti
it.bookingexpert.AcrBox.replaceGuesttypes = function (c) {
    if (!c) {
        // <option>0</option>
        c = '<div><label>$name</label><select name="guesttypes[0][$id]" guestid="$id" onchange="it.bookingexpert.AcrBox.showAges(this, $agefrom, $ageto, $agedefault, $ageselect)">{options:$min,$max,$defval,$id,guest}</select>{ages:$id,$min,$defval,$agefrom,$ageto,$agedefault,$ageselect}</div>';
    }
    return it.bookingexpert.AcrBox.replaceFields(it.bookingexpert.AcrBox.guesttypes, c);
};
// sostituisce blocco per coupon
it.bookingexpert.AcrBox.replaceCoupon = function (c) {
    var str = '<div><label>';
    str += it.bookingexpert.AcrBox.lang.coupon;
    str += '</label><input type="text" name="coupon" /></div>';
    return str;
};
// sostituisce blocco per agenzie
it.bookingexpert.AcrBox.replaceAgencies = function (c) {
    var str = '<div><label>';
    str += it.bookingexpert.AcrBox.lang.agencycode;
    str += '</label><input type="text" name="agencycode" /></div>';
    return str;
};
// sostituisce i segnaposti con i rispettivi valori
it.bookingexpert.AcrBox.replaceFields = function (a, c) {
    var fieldexp = /\$([a-z]+)/g;
    var str = '';
    for (var x = 0; x < a.length; x++) {
        str += c.replace(fieldexp, function () {
            return a[x][arguments[1]];
        });
    }
    return str;
};

it.bookingexpert.AcrBox.onCategoryChange = function (sender) {
    var category = sender.value;
    jQuery('select[name=service]', it.bookingexpert.AcrBox.target).each(function () {
        for (var i = 0; i < this.options.length; i++) {
            this.options[i] = null;
        }
        this.options[0] = new Option('', '');
        var j = 1;
        for (i = 0; i < it.bookingexpert.AcrBox.services.length; i++) {
            if (it.bookingexpert.AcrBox.services[i].category == category || category == '') {
                this.options[j++] = new Option(it.bookingexpert.AcrBox.services[i].name, it.bookingexpert.AcrBox.services[i].id);
            }
        }
        this.options.length = j;
    });
};

// sostituisce blocco per servizi ecommerce
it.bookingexpert.AcrBox.replaceCategories = function () {
    var str = '';
    if (typeof it.bookingexpert.AcrBox.categories !== 'undefined') {
        str += '<div><label>';
        str += it.bookingexpert.AcrBox.lang.category;
        str += '</label>';
        str += '<select name="category" onchange="it.bookingexpert.AcrBox.onCategoryChange(this)">';
        str += '<option value="">';
        str += it.bookingexpert.AcrBox.lang.all;
        str += '</option>';
        for (var i = 0; i < it.bookingexpert.AcrBox.categories.length; i++) {
            var h = it.bookingexpert.AcrBox.categories[i];
            str += '<option value="';
            str += h.id;
            str += '">';
            str += h.name;
            str += '</option>';
        }
        str += '</select>';
        str += '</div>';
    }
    return str;
};
// codice html per la generazione del form default
it.bookingexpert.AcrBox.replaceSimpleForm = function () {
    var str = '<form target="_blank" action="';
    str += it.bookingexpert.AcrBox.url;
    str += it.bookingexpert.AcrBox.contextPath;
    str += it.bookingexpert.AcrBox.action;
    str += '" method="post">';
    str += '{fieldset:nights}</form>';
    return str;
};
// campi hidden
it.bookingexpert.AcrBox.replaceHidden = function () {
    var str = '';
    if (typeof it.bookingexpert.AcrBox.domain !== 'undefined') {
        str += '<input type="hidden" name="domain" value="';
        str += it.bookingexpert.AcrBox.domain.id;
        str += '" />';
    } else {
        str += '<input type="hidden" name="hotel" value="';
        str += it.bookingexpert.AcrBox.hotel;
        str += '" />';
    }
    str += '<input type="hidden" name="lang" value="';
    str += it.bookingexpert.AcrBox.lang.code;
    str += '" />';
    if (typeof it.bookingexpert.AcrBox.ecommerce !== 'undefined') {
        str += '<input type="hidden" name="ecommerce" value="';
        str += it.bookingexpert.AcrBox.ecommerce;
        str += '" />';
    }
    return str;
};
// codice html per la generazione dei campi della form
it.bookingexpert.AcrBox.replaceFieldset = function (b) {
    var str = '{hidden}';
    if (typeof it.bookingexpert.AcrBox.ecommerce === 'undefined' || it.bookingexpert.AcrBox.hasDates) {
        str += '<div><label>';
        str += it.bookingexpert.AcrBox.lang.checkin;
        str += '</label><input type="text" name="checkin" value="';
        if (it.bookingexpert.AcrBox.layout.checkin) {
            str += it.bookingexpert.AcrBox.layout.checkin;
        }
        str += '" /></div><div><label>';
        if (b === 'nights') {
            str += it.bookingexpert.AcrBox.lang.nights;
            str += '</label><select name="nights">{options:1,10,';
            str += it.bookingexpert.AcrBox.layout.nights;
            str += '}</select>';
        } else if (b === 'checkout') {
            str += it.bookingexpert.AcrBox.lang.checkout;
            str += '</label><input type="text" name="checkout" value="" />';
        }
        str += '</div>';
    }
    str += '<div><label>';
    str += it.bookingexpert.AcrBox.lang.guests;
    str += '</label><select name="guests[]">{guests}</select></div><div>';
    str += '<input type="submit" name="search" value="';
    str += it.bookingexpert.AcrBox.lang.search;
    str += '" /></div><a href="http://www.bookingexpert.it" target="_blank"><img src="';
    str += it.bookingexpert.AcrBox.url;
    str += '/resources/images/searchboxpowered.png" alt="" /><span>';
    str += it.bookingexpert.AcrBox.lang.ssl;
    str += '</span></a>';
    return str;
};
// include il file javascript esterno ed esegue la funzione callback appena pronto
it.bookingexpert.AcrBox.include = function (src, callback) {
    if (src instanceof Array) {
        var tail = src;
        src = tail.shift();
        if (tail.length > 0) {
            var prevcallback = callback;
            callback = function () {
                it.bookingexpert.AcrBox.include(tail, prevcallback);
            };
        }
    }
    var script = document.createElement('script');
    script.setAttribute('type', 'text/javascript');
    if (callback) {
        if (script.readyState) {
            // IE
            script.onreadystatechange = function () {
                if (script.readyState === "loaded" || script.readyState === "complete") {
                    script.onreadystatechange = null;
                    callback();
                }
            };
        } else {
            // Others
            script.onload = callback;
        }
    }
    script.src = src;
    document.getElementsByTagName("head")[0].appendChild(script);
};
// apre una finestra modale per la destinazione del post di una form
it.bookingexpert.AcrBox.modal = function () {
    var iframe = document.getElementsByName(this.target);
    if (iframe.length === 0) {
        // crea il frame interno
        iframe = document.createElement('iframe');
        iframe.setAttribute('name', this.target);
        iframe.className = this.target;
        // div container (padding)
        var container = document.createElement('div');
        container.className = this.target + 'container';
        container.appendChild(iframe);
        // div background (opacity)
        var background = document.createElement('div');
        background.className = this.target + 'background';
        background.appendChild(container);
        background.onclick = function () {
            this.parentNode.removeChild(this);
        };
        document.body.appendChild(background);
    }
};
// formatta una data in stringa
it.bookingexpert.AcrBox.dateToString = function (s, v) {
    if (!s)
        s = 'd/m/Y';
    if (!v)
        v = new Date();
    var x = {
        d: v.getDate(),
        m: v.getMonth(),
        Y: v.getFullYear()
    };
    if (x.d < 10)
        x.d = '0' + x.d;
    if (x.m < 10)
        x.m = '0' + x.m;
    return s.replace(/[Ymd]/g, function () {
        return x[arguments[0]];
    });
};
// trasforma una casella input in un selettore di date
it.bookingexpert.AcrBox.datepicker = function (a) {
    a.setAttribute('type', 'hidden');
    var selday = document.createElement('select');
    var selmonth = document.createElement('select');
    var selyear = document.createElement('select');
    var now = new Date();
    for (var i = 1; i <= 31; i++)
        selday.options[selday.options.length] = new Option(i < 10 ? '0' + i : i);
    for (var i = 1; i <= 12; i++)
        selmonth.options[selmonth.options.length] = new Option(it.bookingexpert.AcrBox.lang['month' + i], i < 10 ? '0' + i : i);
    for (var i = now.getFullYear(); i <= now.getFullYear() + 2; i++)
        selyear.options[selyear.options.length] = new Option(i, i);
    selday.selectedIndex = now.getDate() - 1;
    selmonth.selectedIndex = now.getMonth();
    selyear.selectedIndex = 0;
    selday.onchange = selmonth.onchange = selyear.onchange = function () {
        a.value = selyear.value + '/' + selmonth.value + '/' + selday.value;
    };
    a.value = selyear.value + '/' + selmonth.value + '/' + selday.value;
    a.parentNode.insertBefore(selday, a);
    a.parentNode.insertBefore(selmonth, a);
    a.parentNode.insertBefore(selyear, a);
};
// carica il widget per la struttura selezionata
it.bookingexpert.AcrBox.loadHotel = function (id, target, code) {
    if (id > 0) {
        var u = it.bookingexpert.AcrBox.url;
        u += it.bookingexpert.AcrBox.contextPath;
        if (typeof it.bookingexpert.AcrBox.ecommerce === 'undefined') {
            u += "/websites/searchbox?static=false&hotel=";
        } else {
            u += "/websites/servicebox?static=false&hotel=";
        }
        u += id;
        u += "&lang=";
        u += it.bookingexpert.AcrBox.lang.code;
        if (target && code) {
            u += "&target=";
            u += target;
            u += "&code=";
            u += code;
        }
        var scriptid = 'besearchboxhoteldyn';
        var script = document.getElementById(scriptid);
        if (script)
            script.parentNode.removeChild(script);
        script = document.createElement('script');
        script.src = u;
        script.id = scriptid;
        document.body.appendChild(script);
    }
};
// seleziona uno degli hotel nel dominio
it.bookingexpert.AcrBox.selectDomainHotel = function (id) {
    if (typeof it.bookingexpert.AcrBox.domain !== 'undefined') {
        jQuery('select[name=hotel]', it.bookingexpert.AcrBox.target).val(id);
        for (var i = 0; i < it.bookingexpert.AcrBox.domain.hotels.length; i++) {
            var h = it.bookingexpert.AcrBox.domain.hotels[i];
            if (id === h.id) {
                jQuery('select[name=place]', it.bookingexpert.AcrBox.target).val(h.city);
            }
        }
    }
};
// trasforma una casella input in un selettore di date
it.bookingexpert.AcrBox.getCheckout = function () {
    var d = new Date(it.bookingexpert.AcrBox.layout.checkin);
    d.setDate(d.getDate() + it.bookingexpert.AcrBox.layout.nights);
    return d;
};

it.bookingexpert.AcrBox.isMobile = function () {
    var check = false;
    (function (a) {
        if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4)))
            check = true;
    })(navigator.userAgent || navigator.vendor || window.opera);
    return check;
};it.bookingexpert.AcrBox.lang = {"privacyaccept":"S\u00EC, ho letto e accetto l'informativa sulla privacy","code":"it","captchanotcompleted":"reCAPTCHA non completato","acrdatarequired":"Nome, cognome, e-mail e richiesta obbligatori","phonerequired":"Il campo telefono \u00E8 obbligatorio","ssl":"Informazioni protette con certificato SSL a 256 bit","search":"Ricerca","checkin":"Arrivo","month12":"Dic","month11":"Nov","collections":"Tag\/Zone","agencycode":"Agenzie\/Aziende\/TO","checkout":"Partenza","privacytext":"Desideriamo informarLa che i Suoi dati personali, raccolti tramite iscrizione o prenotazione, saranno utilizzati da parte di Hotel Aristeo, nel pieno rispetto dei principi fondamentali, dettati dal decreto legislativo n. 196 del 30 giugno 2003 Codice in materia di protezione dei dati personali e dal Regolamento Europeo 679\/2016 - GDPR.<p><br><\/p><p>Operazioni di trattamento dei dati personali e relativa finalit\u00E0.<\/p><p><br><\/p><p>Di seguito, Le riepiloghiamo ai sensi dell\u2019art. 13, paragrafo 1 del GDPR 679\/2016, tutte le operazioni da noi svolte che implicano raccolta, conservazione od elaborazione dei Suoi dati personali, e gli scopi che perseguiamo con ciascuna di esse:<\/p><p><\/p><ol><li>Raccolta e conservazione dei Suoi dati personali al fine della fornitura del servizio di prenotazione\/acquisto. Trattandosi di trattamenti necessari per la definizione dell\u2019accordo contrattuale e per la sua successiva attuazione, il conferimento \u00E8 obbligatorio.&nbsp;<\/li><li>Utilizzo dei suoi dati per finalit\u00E0 di marketing e promozionali, comunicazioni inerenti la prenotazione e non. Invio di comunicazioni inerenti offerte, promozioni e\/o per via esemplificativa tariffe sconto riservate. Per tale finalit\u00E0, previa acquisizione del suo consenso opzionale, i suoi dati saranno conservati e non saranno comunicati a terzi. Potr\u00E0 revocare il consenso in qualsiasi momento;<\/li><li>Al fine dell\u2019adempimento previsto dal \u201CTesto unico delle leggi di pubblica sicurezza\u201D (articolo 109 R.D. 18.6.1931 n. 773) che ci impone di comunicare alla Questura, per fini di pubblica sicurezza, le generalit\u00E0 dei clienti alloggiati secondo le modalit\u00E0 stabilite dal Ministero dell\u2019Interno (Decreto 7 gennaio 2013). Il conferimento dei dati \u00E8 obbligatorio, ed in caso di rifiuto a fornirli non potremo ospitarla nella nostra struttura. I dati acquisiti per tale finalit\u00E0 non vengono da noi conservati;<\/li><li>Al fine dell\u2019adempimento previsto per gli obblighi amministrativi, contabili e fiscali. Per tali finalit\u00E0 il trattamento \u00E8 effettuato senza necessit\u00E0 di acquisire il suo consenso. I dati sono trattati da noi e da nostri incaricati (ad es. consulente amministrativo, fiscale, tributario), e vengono comunicati all\u2019 esterno solo in adempimento ad obblighi di legge. In caso di rifiuto a conferire i dati necessari per gli adempimenti sopra indicati, non potremo fornirle i servizi richiesti. I dati acquisiti per tali finalit\u00E0 vengono da noi conservati per il tempo previsto dalle rispettive normative (10 anni, e anche oltre in caso di accertamenti fiscali);<\/li><li>Per accelerare le procedure di registrazione in caso di suoi successivi soggiorni presso la nostra struttura. Per tale finalit\u00E0, previa acquisizione del suo consenso al momento dell\u2019arrivo in struttura, revocabile in qualsiasi momento, i suoi dati saranno conservati e saranno utilizzati quando sar\u00E0 nuovamente nostro ospite per le finalit\u00E0 di cui ai punti precedenti;<\/li><\/ol><p>Libert\u00E0 di rilasciare il consenso e conseguenze di un rifiuto.<\/p><p>Il conferimento del consenso al trattamento dei dati personali \u00E8 necessario per permetterci di poter dare seguito alla Sua richiesta. In caso di rifiuto alla prestazione del consenso non ci sar\u00E0 possibile erogarLe i servizi richiesti.<\/p><p><br><\/p><p>In caso di rifiuto del consenso non vi sar\u00E0 alcuna conseguenza.<\/p><p><br><\/p><p><b>In caso di conferma, i dati saranno comunicati a:<\/b><\/p><p>Hotel Aristeo di Zaghini Federica e Zaghini Alessandro S.n.c.<\/p><p>V.le Regina Elena, 106<\/p><p>47924&nbsp; Rimini&nbsp; (RN                                                )<\/p><p>Email: info@hotelaristeo.com<\/p><p><br><\/p><p>e a eventuali incaricati nominati dal Responsabile del Trattamento (art.29 del D.Lgs. 196\/03 e Art. 28 del GDPR 679\/2016).<\/p><p><br><\/p><p>Diritti di cui all'Art. 7 del D.Lgs. 196\/03 e all\u2019Art. 7, par. 3, del GDPR 679\/2016.Lei ha diritto di aggiornare, modificare, cancellare i suoi dati Lei ha diritto di aggiornare, modificare, cancellare i suoi dati (articoli da 15 a 22 del Regolamento UE n. 679 del 2016). Pu\u00F2 inoltre proporre reclamo all\u2019autorit\u00E0 di controllo, secondo le procedure previste dalla normativa vigente.<\/p><p><br><\/p><p><b>Titolare e responsabile del trattamentoTitolare del trattamento \u00E8:<\/b><\/p><p>Hotel Aristeo di Zaghini Federica e Zaghini Alessandro S.n.c.<\/p><p>V.le Regina Elena, 106<\/p><p>47924&nbsp; Rimini&nbsp; (RN                                                )<\/p><p>Email: info@hotelaristeo.com<\/p><p><br><\/p><p><b>Le eventuali istanze ai sensi dell'art. 7 del D. Lgs. 196\/03 dovranno essere indirizzate a:<\/b><\/p><p>Hotel Aristeo di Zaghini Federica e Zaghini Alessandro S.n.c.<\/p><p>V.le Regina Elena, 106<\/p><p>47924&nbsp; Rimini&nbsp; (RN                                                )<\/p><p>Email: info@hotelaristeo.com<\/p><p><\/p><p><br><\/p><p>In mancanza di uno o pi\u00F9 dei precedenti dati \u00E8 necessario fare riferimento all'indirizzo della struttura ricettiva a cui ha prenotato.<br>L'indirizzo \u00E8 quasi sempre disponibile nel voucher di conferma della prenotazione.<\/p>","month1":"Gen","allplaces":"Tutte le localit\u00E0","month2":"Feb","month3":"Mar","month4":"Apr","coupon":"Coupon","month5":"Mag","month6":"Giu","month7":"Lug","month8":"Ago","month9":"Set","month10":"Ott","privacytitle":"Informativa sul trattamento dei dati personali \"Privacy\".","fillrequiredfields":"* La preghiamo di compilare tutti i campi obbligatori","phone":"Telefono","nights":"Notti","privacyread":"Leggi la normativa","guests":"Ospiti","allhotels":"Tutte le strutture","requestsent":"Richiesta inviata","acceptprivacy":"Accetto i termini e le condizioni e l'informativa sulla privacy","age":"Et\u00E0 (anni)"};it.bookingexpert.AcrBox.action = "\/simple\/step1";it.bookingexpert.AcrBox.url = "https:\/\/be.bookingexpert.it";it.bookingexpert.AcrBox.contextPath = "\/book";it.bookingexpert.AcrBox.html = [{"code":"Bedirect","html":"<h4 class=\"searchboxTitle\">Richiedi informazioni<\/h4>\r\n<form>\r\n    {hidden}\r\n    <!-- layout obbligagorio!! -->\r\n    <input type=\"hidden\" name=\"layout\" value=\"15504\">\r\n    <!-- id tag canale facoltativo -->\r\n    <input type=\"hidden\" name=\"channel\" value=\"32304\">\r\n    <!-- checkin e checkout facoltativi -->\r\n    <div><label>Check in<\/label><input type=\"text\" name=\"checkin\" value=\"\" \/><\/div>\r\n    <div><label>Check out<\/label><input type=\"text\" name=\"checkout\" value=\"\" \/><\/div>\r\n    \r\n    <!--facoltativi guests oppure guesttypes-->\r\n    <!--\r\n    <div><label>Ospiti<\/label><select name=\"guests\">{guests}<\/select><\/div>\r\n    -->\r\n    {guesttypes}\r\n    <!--nome, cognome, email e richiesta sono obbligatori-->\r\n    <div><label>Nome<\/label><input type=\"text\" name=\"firstname\" \/><\/div>\r\n    <div><label>Cognome<\/label><input type=\"text\" name=\"lastname\" \/><\/div>\r\n    <div><label>Email<\/label><input type=\"text\" name=\"email\" \/><\/div>\r\n    <div><label>Richiesta<\/label><textarea name=\"request\"><\/textarea><\/div>\r\n    <!-- Il telefono compare da solo se nella form acr c'\u00E8 il dato anagrafico telefono o cellulare-->\r\n    <!-- se il dato anagrafico \u00E8 facoltativo sulla widget sar\u00E0 facoltativo, se \u00E8 obbligatorio sulla widget sar\u00E0 obbligatorio -->\r\n    \r\n    <div class=\"result\"><\/div>\r\n    <input type=\"button\" value=\"Invia richiesta\" \/>\r\n    {captcha}\r\n<\/form>\r\n<script type=\"text\/javascript\">   \r\n    \/\/ impostazioni globali datepicker\r\n    var dplang = $.datepicker.regional[\"it\"];\r\n    var dpopts = {\r\n        dateFormat:'dd-mm-yy',\r\n        changeMonth:true,\r\n        changeYear:true,\r\n        minDate:new Date(),\r\n        beforeShowDay: function(date){\r\n            var dateMin = checkin.datepicker(\"getDate\");\r\n            var dateMax = checkout.datepicker(\"getDate\");\r\n            return [true, date >= dateMin && date <= dateMax ? 'date-range-selected' : ''];\r\n        }\r\n    };\r\n    \/\/ inizializza data arrivo e partenza\r\n    var checkin = $(\"#acrbox input[name=checkin]\");\r\n    var checkout = $(\"#acrbox input[name=checkout]\");    \r\n    checkin.datepicker(dpopts, dplang);    \r\n    checkout.datepicker(dpopts, dplang);    \r\n    checkin.datepicker('option', 'onSelect', function() {\r\n        var dateMin = checkin.datepicker(\"getDate\");\r\n        var rMin = new Date(dateMin.getFullYear(), dateMin.getMonth(),dateMin.getDate() + 1); \r\n        checkout.datepicker(\"option\", \"minDate\", rMin);    \r\n    });   \r\n    \/\/ imposta i valori predefiniti\r\n    checkin.datepicker('setDate', new Date(it.bookingexpert.AcrBox.layout.checkin));\r\n    checkout.datepicker('setDate', it.bookingexpert.AcrBox.getCheckout());\r\n\r\n    $('#ui-datepicker-div').hide();\r\n<\/script>"}];it.bookingexpert.AcrBox.hotel = "42398";it.bookingexpert.AcrBox.layout = {"id":15494,"nights":1,"checkin":"2023-07-05"};it.bookingexpert.AcrBox.guests = [{"id":215952,"favorite":false,"description":"2 Adulti + 2 Bambini (2-11)","favhtml":""},{"id":215951,"favorite":false,"description":"1 Adulto + 2 Bambini (2-11)","favhtml":""},{"id":215949,"favorite":false,"description":"4 Adulti + 1 Bambino (2-11)","favhtml":""},{"id":215956,"favorite":false,"description":"2 Adulti + 3 Bambini (2-11)","favhtml":""},{"id":215955,"favorite":false,"description":"1 Adulto + 3 Bambini (2-11)","favhtml":""},{"id":215953,"favorite":false,"description":"3 Adulti + 2 Bambini (2-11)","favhtml":""},{"id":215960,"favorite":false,"description":"1 Adulto + 1 Neonato (0-1)","favhtml":""},{"id":215958,"favorite":false,"description":"1 Adulto + 4 Bambini (2-11)","favhtml":""},{"id":215964,"favorite":false,"description":"5 Adulti + 1 Neonato (0-1)","favhtml":""},{"id":215963,"favorite":false,"description":"4 Adulti + 1 Neonato (0-1)","favhtml":""},{"id":215962,"favorite":false,"description":"3 Adulti + 1 Neonato (0-1)","favhtml":""},{"id":215961,"favorite":false,"description":"2 Adulti + 1 Neonato (0-1)","favhtml":""},{"id":215968,"favorite":false,"description":"4 Adulti + 1 Bambino (2-11) + 1 Neonato (0-1)","favhtml":""},{"id":215967,"favorite":false,"description":"3 Adulti + 1 Bambino (2-11) + 1 Neonato (0-1)","favhtml":""},{"id":215966,"favorite":false,"description":"2 Adulti + 1 Bambino (2-11) + 1 Neonato (0-1)","favhtml":""},{"id":215965,"favorite":false,"description":"1 Adulto + 1 Bambino (2-11) + 1 Neonato (0-1)","favhtml":""},{"id":215972,"favorite":false,"description":"1 Adulto + 3 Bambini (2-11) + 1 Neonato (0-1)","favhtml":""},{"id":215971,"favorite":false,"description":"3 Adulti + 2 Bambini (2-11) + 1 Neonato (0-1)","favhtml":""},{"id":215970,"favorite":false,"description":"2 Adulti + 2 Bambini (2-11) + 1 Neonato (0-1)","favhtml":""},{"id":215969,"favorite":false,"description":"1 Adulto + 2 Bambini (2-11) + 1 Neonato (0-1)","favhtml":""},{"id":215976,"favorite":false,"description":"2 Adulti + 2 Neonati (0-1)","favhtml":""},{"id":215975,"favorite":false,"description":"1 Adulto + 2 Neonati (0-1)","favhtml":""},{"id":215974,"favorite":false,"description":"1 Adulto + 4 Bambini (2-11) + 1 Neonato (0-1)","favhtml":""},{"id":215973,"favorite":false,"description":"2 Adulti + 3 Bambini (2-11) + 1 Neonato (0-1)","favhtml":""},{"id":215980,"favorite":false,"description":"2 Adulti + 1 Bambino (2-11) + 2 Neonati (0-1)","favhtml":""},{"id":215979,"favorite":false,"description":"1 Adulto + 1 Bambino (2-11) + 2 Neonati (0-1)","favhtml":""},{"id":215978,"favorite":false,"description":"4 Adulti + 2 Neonati (0-1)","favhtml":""},{"id":215977,"favorite":false,"description":"3 Adulti + 2 Neonati (0-1)","favhtml":""},{"id":215984,"favorite":false,"description":"1 Adulto + 3 Bambini (2-11) + 2 Neonati (0-1)","favhtml":""},{"id":215983,"favorite":false,"description":"2 Adulti + 2 Bambini (2-11) + 2 Neonati (0-1)","favhtml":""},{"id":215982,"favorite":false,"description":"1 Adulto + 2 Bambini (2-11) + 2 Neonati (0-1)","favhtml":""},{"id":215981,"favorite":false,"description":"3 Adulti + 1 Bambino (2-11) + 2 Neonati (0-1)","favhtml":""},{"id":215988,"favorite":false,"description":"1 Adulto + 1 Bambino (2-11) + 3 Neonati (0-1)","favhtml":""},{"id":215986,"favorite":false,"description":"2 Adulti + 3 Neonati (0-1)","favhtml":""},{"id":215985,"favorite":false,"description":"1 Adulto + 3 Neonati (0-1)","favhtml":""},{"id":215990,"favorite":false,"description":"1 Adulto + 2 Bambini (2-11) + 3 Neonati (0-1)","favhtml":""},{"id":215989,"favorite":false,"description":"2 Adulti + 1 Bambino (2-11) + 3 Neonati (0-1)","favhtml":""},{"id":215944,"favorite":false,"description":"4 Adulti","favhtml":""},{"id":215943,"favorite":false,"description":"3 Adulti","favhtml":""},{"id":215942,"favorite":true,"description":"2 Adulti","favhtml":" selected=\"selected\""},{"id":215941,"favorite":false,"description":"1 Adulto","favhtml":""},{"id":215948,"favorite":false,"description":"3 Adulti + 1 Bambino (2-11)","favhtml":""},{"id":215947,"favorite":false,"description":"2 Adulti + 1 Bambino (2-11)","favhtml":""},{"id":215946,"favorite":false,"description":"1 Adulto + 1 Bambino (2-11)","favhtml":""},{"id":215945,"favorite":false,"description":"5 Adulti","favhtml":""}];it.bookingexpert.AcrBox.guesttypes = [{"id":20524,"defval":2,"min":1,"max":5,"agefrom":14,"agedefault":18,"ageto":null,"ageselect":false,"name":"Adulti"},{"id":20525,"defval":0,"min":0,"max":4,"agefrom":3,"agedefault":3,"ageto":13,"ageselect":false,"name":"Bambini (3-13)"},{"id":20526,"defval":0,"min":0,"max":3,"agefrom":0,"agedefault":0,"ageto":2,"ageselect":false,"name":"Neonati (0-2)"}];it.bookingexpert.AcrBox.collections = [];it.bookingexpert.AcrBox.acrurl = "https:\/\/bedirect.bookingexpert.it\/beacr\/ws\/customerRequest";it.bookingexpert.AcrBox.phonepresent = true;it.bookingexpert.AcrBox.phonerequired = false;