PageSourceSearch

https://casa.tiscali.it/inc/script/script.js?v=5.11

js tiscali.it collected 2026-09-24 08:52:09 UTC 24,458 bytes, 625 lines download raw bytes

1var host = location.href;
2var absUrl = '';
3
4function openEditor(r) {
5    var u = "/edit.opencms.php?resource=" + r;
6    window.open(u, 'targetWindow', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=1024,height=980')
7}
8
9// When the user clicks on the button, scroll to the top of the document
10
11function is_numeric(n) {
12    return !isNaN(parseFloat(n)) && isFinite(n);
13}
14
15$(document).ready(function () {
16
17
18    $(".openServices").click(function () {
19        $(".openServices").removeClass('show').addClass('hide');
20        $(".closeServices").removeClass('hide').addClass('show');
21        console.debug('apro');
22    });
23    $(".closeServices").click(function () {
24        $(".closeServices").removeClass('show').addClass('hide');
25        $(".openServices").removeClass('hide').addClass('show');
26        console.debug('chiudo');
27    });
28
29    /* Tracciamento Click Nuova HP 2021 */
30    $('.btn-wt-hp').click(function () {
31        getCtWt = $(this).attr('data-ct');
32        getCk1Wt = $(this).attr('data-ck1');
33        trackingNewHp(getCtWt, getCk1Wt, '');
34    });
35    /* tracciamento link pagine articolo */
36    $('.page-art a').click(function () {
37        if ($(this).attr('data-wt') === 'click') {
38            wt.sendinfo({linkId: $(this).text()});
39        }
40    });
41    /*apertura layer tool di copertura e caricamento priority*/
42    DeleteCookie('setprodlna', '/', 'tiscali.it');
43    $('.btn-slide, .btn-wt, #btn-scontrino-mobile, #btn-tc-mobile').click(function () {
44        getCtWt = $(this).attr('data-ct');
45        getCk1Wt = $(this).attr('data-ck1');
46        fbq('track', 'ViewContent', {
47            content_type: 'Scopri'
48        });
49        if ($(this).attr('data-act') === 'bb') {
50            console.log("apro il tc");
51            $("input#Start_From").val($(this).attr('data-prod'));
52            $('#tool-di-copertura .btnWt').attr('data-ck1', getCk1Wt);
53            $('#tool-di-copertura .btn').attr('data-ck1', getCk1Wt);
54            $('#tool-di-copertura-mobile .btn').attr('data-ck1', getCk1Wt);
55            $("#tool-di-copertura,#tool-di-copertura-mobile").modal('show');
56        }
57        if ($(this).attr('data-act') === 'oc') {
58
59            shortCode = $(this).attr('data-shortCode');
60            shortCode_ko = $(this).attr('data-shortCode_ko');
61            console.group("apro operator check mobile");
62            console.debug('shortCode = ' + shortCode);
63            console.debug('shortCode_ko = ' + shortCode_ko);
64            console.groupEnd();
65
66            $('#shortCode').attr('value', shortCode);
67
68            $('#shortCode_ko').attr('value', shortCode_ko);
69            $('#operatorCheck').modal('show');
70        }
71        if ($(this).attr('data-act') === 'cb') {
72            $("#prospectMod").removeClass("hidden");
73            $("#upgradeMod").addClass("hidden");
74            $('#modal-sitofono').modal('show');
75            $('#type-sit').val('HA');
76        }
77    });
78
79    $('#btn-lay_1,#btn-lay_2,#btn-lay_3,#btn-lay_4,#btn-lay_5').click(function () {
80        getCtWt = $(this).attr('data-ct');
81        getCk1Wt = $(this).attr('data-ck1');
82        trackingNewHp(getCtWt, getCk1Wt, '');
83        if ($(this).attr('data-act') == 'bb') {
84            $('#continuaLink').attr('data-pos', 'hp');
85            $('#continuaLink').attr('data-prod', $(this).attr('data-prod'));
86            $('#continuaLink').attr('data-ck1', getCk1Wt);
87        }
88        $('#modal-vd').modal('show');
89    });
90
91    $(".continuaOnline").click(function () {
92        if ($(this).attr('data-pos') == 'hp') {
93            getCtWt = $(this).attr('data-ct');
94            getCk1Wt = $(this).attr('data-ck1');
95            trackingNewHp(getCtWt, getCk1Wt, '');
96            $("input#Start_From").val($(this).attr('data-prod'));
97            $("#tool-di-copertura").modal('show');
98        }
99    });
100
101    $('.link-stripe-hp').click(function () {
102        trackingNewHp('Click Stripe HP', 'Scopri', '');
103    });
104    $('.control-arrow a').click(function () {
105        getCk1Wt = $(this).attr('data-slide');
106        trackingNewHp('Click Sliding', 'Freccia ' + getCk1Wt, '');
107    });
108    $('.carousel-indicators li').click(function () {
109        trackingNewHp('Click Sliding', 'Pallini', '');
110    });
111    $('.alreadyTiscali a , .container-basso .btn , .altriServizi .btn, .infoSocial .btn , .social .btn').click(function () {
112        getCk1Wt = $(this).attr('data-ck1');
113        if (getCk1Wt.indexOf('<br />') !== -1) {
114            var arr = getCk1Wt.split('<br />');
115            getCk1Wt = arr[0];
116        }
117        trackingNewHp('Click Secondo Piano', getCk1Wt, '');
118    });
119    $('#tool-di-copertura .btn, #tool-di-copertura-mobile .btn').click(function () {
120        getCk1Wt = $(this).attr('data-ck1');
121        getStep = $(this).attr('data-step');
122        checkedValues = '';
123        if (getStep == 'Step2') {
124            var checkboxes = $('input[name="voce"]');
125            checkedValues = checkboxes.filter(":checked").map(function () {
126                if (this.value == '0')
127                    return 'NO';
128                else
129                    return 'SI';
130            }).get()
131        } else if (getStep == 'Verifica') {
132            var checkboxes = $('input[name="adsl"]');
133            checkedValues = checkboxes.filter(":checked").map(function () {
134                if (this.value == '0')
135                    return 'NO';
136                else
137                    return 'SI';
138            }).get()
139        }
140        //alert(checkedValues);
141        items = getCk1Wt.split('-');
142        if (items[0] === 'PP') {
143            if (getStep == 'Step2' || getStep == 'Verifica') {
144                trackingNewHp('Click Primo Piano', getCk1Wt, 'VC Overlay ' + items[1] + ' ' + getStep + ' (' + checkedValues + ')');
145            } else {
146                trackingNewHp('Click Primo Piano', getCk1Wt, 'VC Overlay ' + items[1] + ' ' + getStep);
147            }
148        } else {
149            if (getStep == 'Step2' || getStep == 'Verifica') {
150                trackingNewHp('Click Menu Internet e Voce', 'VC Menu Ultrafibra', 'VC Overlay ' + items[1] + ' ' + getStep + ' (' + checkedValues + ')');
151            } else {
152                trackingNewHp('Click Menu Internet e Voce', 'VC Menu Ultrafibra', 'VC Overlay ' + items[1] + ' ' + getStep);
153            }
154        }
155
156    });
157
158    $("#viewDetailsMobile").click(function () {
159        if ($("#commonBoxMobile").is(":hidden")) {
160            offs = $("#viewDetailsMobile").offset();
161            newtop = offs.top - 80;
162            $("#viewDetailsMobile > div > div.col-xs-6.text-right").empty();
163            $("#viewDetailsMobile > div > div.col-xs-6.text-right").text('Chiudi');
164            $("#viewDetailsMobile > div > div.col-xs-6.text-right").css({'background': 'url(/static/img/chiudi.png) no-repeat right'});
165            $(".detailsMobile").css({'border': 'none'});
166            $("#commonBoxMobile").fadeIn();
167            $('html, body').animate({scrollTop: newtop}, 'slow');
168        } else {
169            $("#viewDetailsMobile > div > div.col-xs-6.text-right").empty();
170            $("#viewDetailsMobile > div > div.col-xs-6.text-right").text('Leggi tutto');
171            $("#viewDetailsMobile > div > div.col-xs-6.text-right").css({'background': 'url(/static/img/avanti.png) no-repeat right'});
172            $(".detailsMobile").css({'border-bottom': '1px solid #c0c0c0'});
173            $("#commonBoxMobile").fadeOut();
174            $('html, body').animate({scrollTop: -80}, 'slow');
175        }
176    });
177
178    $('#pdfLink').click(function () {
179        getCk1Wt = $(this).attr('href');
180        trackingNewHp('download-pdf', '8 ' + getCk1Wt, '');
181    });
182    if ($(window).width() <= 768) {
183        dropdownCasa('m');
184    } else {
185        dropdownCasa('d');
186    }
187
188    $('#inbound').change(function () {
189        SetCookie('RETAILER_CODE', this.value, '', '/', 'tiscali.it', '');
190        $('#rcSetted').text('(' + this.value + ')');
191        $('#RetailerCode').val(this.value);
192    });
193    $('#readMore').click(function () {
194        $('#datiSociali').animate({height: "200px"}, 500);
195        $('#readLess').css({'display': 'block'});
196        $('#readMore').css({'display': 'none'});
197        var textP = $('#datiSociali p').text();
198        $('#datiSociali p').remove();
199        $('#datiSociali').html("<div>" + textP + "</div>");
200    });
201    $('#readLess').click(function () {
202        $('#datiSociali').animate({height: "130px"}, 500);
203        $('#readMore').css({'display': 'block'});
204        $('#readLess').css({'display': 'none'});
205        var textDiv = $('#datiSociali div').text();
206        $('#datiSociali div').remove();
207        $('#datiSociali').html("<p>" + textDiv + "</p>");
208        return false;
209    });
210    $("#sendNewsletter").click(function () {
211        newsletter();
212    });
213    $('#stripe-sitofono,#link-sitofono').click(function () {
214        if (this.id == "stripe-sitofono") {
215            try {
216                wt.sendinfo({linkId: 'link-chiamiamo-noi', customClickParameter: {4: "pulsante"}});
217            } catch (err) {
218            }
219        } else {
220            try {
221                wt.sendinfo({linkId: 'link-chiamiamo-noi', customClickParameter: {4: "link"}});
222            } catch (err) {
223            }
224        }
225        $('#tool-di-copertura').modal('hide');
226        $('#modal-cliente').modal('show');
227        //$('#modal-sitofono').modal('show');
228    });
229    $('#close-sitofono').click(function () {
230        $('#modal-sitofono').modal('hide');
231        $('#box-form').css({'display': 'block'});
232        $('#resp-sitofono-text').empty();
233        $('#num_tel').val("");
234        $('#resp-sitofono').css({'display': 'none'});
235        $("#num_tel").css({'border': 'none'});
236        $('#box-err').css({'display': 'none'});
237    });
238    $('#close-cliente').click(function () {
239        $('#modal-cliente').modal('hide');
240    });
241    $('.internalModal').click(function () {
242        c = this.href;
243        c = c.replace("layer", "modal");
244        $('#modalInternal').load(c);
245        $('#modalInternal').modal('show');
246        return false;
247    });
248    $("#set-appuntamento").click(function () {
249        lead = $("#id-lead").val();
250        date = $("#dtp_input2").val();
251        time = $("#form-time").val();
252        if (date == "" || time == null) {
253            $("#respAppointment").html('E\' necessario specificare data ed ora dell\'appuntamento');
254            $("#respAppointment").css({"display": "block"});
255            return false;
256        }
257        $.ajax({
258            type: "POST",
259            url: "/inc/etc/prenota_appuntamento.php",
260            data: {
261                lead: lead,
262                date: date,
263                time: time
264            },
265            dataType: "json",
266            success: function (response) {
267                update = response.insert;
268                if (update == 0) {
269                    error = response.error;
270                    if (error == '1') {
271                        $("#respAppointment").html('Non è stato possibile registrare il suo appuntamento la preghiamo di riprovare più tardi.');
272                    } else if (error == '2') {
273                        $("#respAppointment").html('La sua richiesta è stata già presa in carico da un nostro consulente verrà contattato nella data da lei richiesta.');
274                    } else if (error == '3') {
275                        $("#respAppointment").html('Non è stato possibile registrare il suo appuntamento la preghiamo di riprovare più tardi.');
276                    }
277                } else {
278                    $("#respAppointment").html('Il suo appuntamento è stato registrato e verrà preso in carico da un nostro consulente.');
279                }
280                $("#formAppointment").css({"display": "none"});
281                $("#respAppointment").css({"display": "block"});
282            }
283        });
284    });
285    $("#ti-chiamiamo-noi").click(function (e) {
286        locate = $(this).attr('href');
287        targ = $(this).attr('target');
288        e.preventDefault();
289        try {
290            wt.sendinfo({linkId: "Ti Chiamiamo Noi"});
291        } catch (err) {
292        }
293        if (targ == '_blank') {
294            window.open(locate, '_blank');
295        } else {
296            location.href = locate;
297        }
298    });
299    $("#badgeImage, #stripeSlide").click(function () {
300        href = $("#badgeImage").attr('data-href');
301        targ = $("#badgeImage").attr('data-target');
302        if (targ === "_blank") {
303            window.open(href, '_blank');
304        } else {
305            window.location = href;
306        }
307        if (this.id === 'badgeImage') {
308            wtfrom = "Badge Image";
309        } else {
310            wtfrom = "Badge Stripe";
311        }
312        try {
313            wt.sendinfo({linkId: "Badge Homepage: " + wtfrom});
314        } catch (err) {
315        }
316    });
317});
318
319
320$(window).resize(function () {
321
322    if ($(window).width() <= 768) {
323        dropdownCasa('m');
324    } else {
325        dropdownCasa('d');
326    }
327});
328function trackingNewHp(ct, ck1, ck2) {
329    //console.debug(ct+' - '+ck1+' - '+ck2);
330    try {
331        wt.sendinfo({linkId: ct, customClickParameter: {1: ck1, 2: ck2}});
332    } catch (err) {
333    }
334}
335
336
337function dropdownCasa(s) {
338
339    /* =========================
340       HANDLER COMUNI (desktop + mobile)
341       ========================== */
342
343    // Click sui box prodotto (.boxHref)
344    $(document)
345        .off('click.boxHref')
346        .on('click.boxHref', '.boxHref', function (e) {
347            e.preventDefault();
348            e.stopImmediatePropagation();
349
350            var nameProd  = 'MN-' + $(this).children('.dropdown-header').text();
351            var getProd   = $(this).attr('data-prod');
352            var getAction = $(this).attr('data-act');
353            var getCtWt   = $(this).attr('data-ct');
354            var getCk1Wt  = $(this).attr('data-ck1');
355
356            trackingNewHp(getCtWt, getCk1Wt, '');
357
358            if (getAction === 'mo') {
359                // link diretto
360                location.href = getProd;
361            } else if (getAction === 'bb') {
362                // apertura tool di copertura
363                $("input#Start_From").val(getProd);
364                $('#tool-di-copertura .btnWt').attr('data-ck1', nameProd);
365                $('#tool-di-copertura .btn').attr('data-ck1', nameProd);
366                $('#tool-di-copertura-mobile .btn').attr('data-ck1', nameProd);
367                $("#tool-di-copertura").modal('show');
368                // logica geolab originale
369                add_geolab(City, StreetAddress, prov, zip);
370                geolab = false;
371            }
372        });
373
374    // Tracciamento click su voci semplici di menu
375    $(document)
376        .off('click.dropdownTrack')
377        .on('click.dropdownTrack', '.dropdown-li a, .dropdown-altri a', function () {
378            var getCtWt      = $(this).attr('data-ct');
379            var getMenuTitle = $(this).attr('title');
380            trackingNewHp(getCtWt, getMenuTitle, '');
381        });
382
383
384    /* =========================
385       DESKTOP
386       ========================== */
387    if (s === 'd') {
388
389        // rimuovo eventuali handler mobile
390        $(document).off('click.menuDevice');
391        $(document).off('click.dropdownToggleMobile');
392
393        // click su .dropdown-toggle (link normali del menu)
394        $(document)
395            .off('click.dropdownToggleDesktop')
396            .on('click.dropdownToggleDesktop', '.dropdown-toggle', function () {
397                var getAnchor    = $(this).attr('href');
398                var getMenuTitle = $(this).attr('title');
399
400                if (getAnchor !== "#") {
401                    trackingNewHp('click-menu', getMenuTitle, '');
402                }
403            });
404
405        // mouseenter: apro megamenu e chiudo gli altri
406        $(document)
407            .off('mouseenter.dropdownToggleDesktop')
408            .on('mouseenter.dropdownToggleDesktop', '.dropdown-toggle', function () {
409                var getMegaMenu  = $(this).attr('data-menu');
410                var getMenuTitle = $(this).attr('title');
411                var getMenuView  = $(this).attr('data-view');
412
413                if (getMenuView === '0') {
414                    trackingNewHp('mouse-over', getMenuTitle, '');
415                    $(this).attr('data-view', '1');
416                }
417
418                $('#megamenu' + getMegaMenu).addClass('open');
419
420                var otherMenu = $('.navbar-right>li').length;
421                for (var i = 1; i < otherMenu; i++) {
422                    if (i != getMegaMenu) {
423                        $('#megamenu' + i).removeClass('open');
424                    }
425                }
426            });
427
428        // mouseleave dal blocco megamenu: chiudo
429        $(document)
430            .off('mouseleave.megaDropdownDesktop')
431            .on('mouseleave.megaDropdownDesktop', '.mega-dropdown-menu', function () {
432                var getMegaMenu = $(this).attr('data-menu');
433                $('#megamenu' + getMegaMenu).removeClass('open');
434            });
435
436
437        /* =========================
438           MOBILE
439           ========================== */
440    } else if (s === 'm') {
441
442        // rimuovo handler desktop
443        $(document).off('click.dropdownToggleDesktop');
444        $(document).off('mouseenter.dropdownToggleDesktop');
445        $(document).off('mouseleave.megaDropdownDesktop');
446
447        // Icona hamburger / chiudi menu
448        $(document)
449            .off('click.menuDevice')
450            .on('click.menuDevice', '.menu-device', function (e) {
451                e.preventDefault();
452
453                var $img  = $('.menu-device img');
454                var state = $img.attr('data-view') || 'closed';
455
456
457                if (state === 'closed') {
458                    $img.attr('src', '/static/img/chiudi.png');
459                    $img.attr('srcset', '/static/img/2x/chiudi.png');
460                    $img.attr('data-view', 'opened');
461                } else {
462                    $img.attr('src', '/img/menu.png');
463                    $img.attr('srcset', '/img/2x/menu.png');
464                    $img.attr('data-view', 'closed');
465                }
466            });
467
468        // Click su .dropdown-toggle (apri/chiudi voci del megamenu mobile)
469        $(document)
470            .off('click.dropdownToggleMobile')
471            .on('click.dropdownToggleMobile', '.dropdown-toggle', function (e) {
472                e.preventDefault();
473                e.stopPropagation();
474
475                var getMegaMenu = $(this).attr('data-menu');
476                var classString = $(this).attr('class') || '';
477                var getClass    = classString.split(/\s+/);
478                var $menu       = $('#megamenu' + getMegaMenu);
479                var $link       = $(this);
480
481                // Debug eventuale
482                // console.log("Click menu mobile:", getMegaMenu, getClass);
483
484                // Se l'elemento ha la classe 'mo' lo salto (link diretto)
485                if ($.inArray('mo', getClass) !== -1) {
486                    return;
487                }
488
489                // Inizializzo data-toggle se non presente
490                if (!$menu.attr('data-toggle')) {
491                    $menu.attr('data-toggle', 'closed');
492                }
493
494                var isClosed = $menu.attr('data-toggle') === 'closed';
495
496                if (isClosed) {
497                    // APRO
498                    $menu.addClass('open').attr('data-toggle', 'opened');
499                    $menu.removeClass('arrow-menu');
500                    $menu.addClass('arrow-menu-opened');
501                    var hscroll = $(window).height() - 13;
502                    $('.navbar-nav').css({'height': hscroll});
503
504                    //$link.css({'background': 'url("/static/img/drop-down.png") 95% 15px no-repeat'});
505                    // console.log("→ Menu aperto:", getMegaMenu);
506                } else {
507                    // CHIUDO
508                    $menu.removeClass('open').attr('data-toggle', 'closed');
509                    $menu.removeClass('arrow-menu-opened');
510                    $menu.addClass('arrow-menu');
511                    //$link.css({'background': 'url("/static/img/avanti.png") 95% 15px no-repeat'});
512                    // console.log("→ Menu chiuso:", getMegaMenu);
513                }
514            });
515    }
516}
517
518
519/* pop up*/
520function popup(page) {
521    newwin = window.open(page, "abbonati", 'toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=no,status=no,width=620,height=450,top=0,left=0');
522}
523
524/* cookies */
525function GetCookie(name) {
526    var arg = name + "=";
527    var alen = arg.length;
528    var clen = document.cookie.length;
529    var i = 0;
530    while (i < clen) {
531        var j = i + alen;
532        if (document.cookie.substring(i, j) == arg)
533            return getCookieVal(j);
534        i = document.cookie.indexOf(" ", i) + 1;
535        if (i == 0)
536            break;
537    }
538    return null;
539}
540
541function SetCookie(name, value, expires, path, domain, secure) {
542    var today = new Date();
543    var expires_date = new Date();
544    if (isFinite(expires)) {
545        expires_date.setTime(today.getTime() + 3600000 * 24 * expires);
546    } else {
547        expires_date = expires;
548    }
549    document.cookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expires_date.toGMTString() : "") + ((path) ? "; path=" + path : "") + ((domain) ? ";domain=" + domain : "") + ((secure) ? "; secure" : "");
550}
551
552function DeleteCookie(name, path, domain) {
553    if (GetCookie(name)) {
554        document.cookie = name + "=" + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + "; expires=Tue, 01-Jan-2002 00:00:01 GMT";
555    }
556}
557
558function getCookieVal(offset) {
559    var endstr = document.cookie.indexOf(";", offset);
560    if (endstr == -1)
561        endstr = document.cookie.length;
562    return unescape(document.cookie.substring(offset, endstr));
563}
564
565function uChoice(u) {
566    if (u == 0) {
567        $('body').attr("onunload", 'retention(0)');
568    } else {
569        $('body').attr("onunload", 'retention(1)');
570    }
571}
572
573// target blank
574function target() {
575    for (var i = 0; i < document.links.length; i++) {
576        if (document.links[i].className.indexOf('blank') != -1)
577            document.links[i].target = "_blank";
578    }
579}
580
581window.onload = target;
582//console.debug("actionForm -> "+actionForm);
583// rimozione bordo rosso errore
584function removeError(id) {
585    $("#" + id).css({'background-color': '#FFFFFF'});
586    setTimeout('$("#msg_errore").css({"display":"none"});', 5000);
587    $('.check' + id).removeClass('glyphicon-remove');
588    $('.check' + id).removeClass('glyphicon-ok');
589    // $('.check'+id).addClass('glyphicon-remove');
590}
591
592
593function checkMail(v) {
594    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
595    if (reg.test(v) == false) {
596        return false
597    } else {
598        return true
599    }
600}
601
602function add_geolab2(c, a, p, z) {
603    elemTownRic = c;
604    elemTown = c;
605    elemAddress = a;
606    elemProv = p;
607    elemZip = z;
608    setTimeout('init(\'' + geolab + '\');', 500);
609}
610
611function getFallBackProduct(targetProduct, cntId, backUpKey, productChannel, productNumber, label, device, tot_el, req_type, showReview, isShp, dataId, fixPrice) {
612    return new Promise((resolve, reject) => {
613        var apiUrl = 'https://shopping.tiscali.it/shopping/api/eby/product/article/product?v1.8&bckKey=' + backUpKey + '&channel=' + productChannel + '&count=' + productNumber + '&label=' + label + '&device=' + device + '&totalb=' + tot_el + '&req_type=' + req_type + '&showReview=' + showReview + '&isShp=' + isShp + '&uuid=' + dataId + "&fixPrice=" + fixPrice;
614        $.get(apiUrl)
615                .done(function (data) {
616                    if (typeof data != 'undefined') {
617                        $('.' + targetProduct).html(data);
618                        resolve(cntId)
619                    }
620                })
621                .fail(function (xhr, status, error) {
622                    reject({'error': xhr.status, 'id': cntId, 'target': targetProduct})
623                })
624    })
625}

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.