// Definizioni globali var g_abs_booking_ap = ''; var g_abs_booking_minisite_url = ''; var g_abs_booking_is_local = '0'; var g_abs_booking_waiting_msg1_01 = 'Stiamo elaborando la Sua richiesta'; var g_abs_booking_waiting_msg2_01 = 'Si prega di attendere'; var g_abs_booking_waiting_msg1_02 = 'Per favore, inserire i dati ospite per proseguire'; var g_abs_booking_waiting_msg2_02 = ''; var g_abs_booking_waiting_loader_img = 'https://internetsm.abs-one.com/common/images/ajax-loader2.gif'; var g_abs_booking_waiting_loader_msg = 'Caricamento'; // // Inizializzazione del listner per gli eventi scatenati dal padre // if (g_abs_booking_minisite_url != '') { // Listner dei messaggi dalla finestra padre $.receiveMessage(function(e){ // Rimando la richiesta alla pagina (se la pagina lo gestisce) if (typeof(manageParentAction) === "function") { manageParentAction(e.data); } }, g_abs_booking_minisite_url ); } // // Comunica con la finestra padre inviando un messaggio // function onStep(whichStep) { if (g_abs_booking_minisite_url != '') { $.postMessage("onstep" + whichStep + g_abs_booking_ap, g_abs_booking_minisite_url, parent ); } } // // Imposta un valore in un cookie utilizzando il sito padre // function onSetCookie(sid) { if (g_abs_booking_minisite_url != '') { $.postMessage("onSetCookie|" + sid, g_abs_booking_minisite_url, parent ); } } // // Esegue un evento verso il padre // function doEvent(eventName) { if (g_abs_booking_minisite_url != '') { $.postMessage(eventName + g_abs_booking_ap, g_abs_booking_minisite_url, parent ); } } // // Qualora sia necessario aspettare una animazione prima di dare l'indicazione di resize // function delayUnifiedResizeIFrame() { window.setTimeout(unifiedResizeIFrame, 1000); } // // Comunica con la finestra padre indicando di ridimensionare l'altezza // function unifiedResizeIFrame(mult_type) { if (g_abs_booking_minisite_url == '') return; // Fattori di scala var pixel = 15; // Valori usati in Step2 var mult_a = 0.2; var mult_b = 1.05 if (mult_type == 1) { // Valori usati in Step1 pixel = 10; mult_a = 0.1; mult_b = 1.1; } if (g_abs_booking_is_local == 1) { $(document).ready(function() { var newHeight = parseInt($('#container').height()) + pixel; if( $('#bookingframe',parent.window.document).height()!=undefined ){ $('#bookingframe',parent.window.document).height(newHeight + (newHeight * mult_a)); } }); } else { var newHeight = (parseInt($('#container').height()) + pixel) * mult_b; $.postMessage(newHeight.toString(), g_abs_booking_minisite_url, parent ); } }; // // Comunica con la finestra padre di scrollare on top // function unifiedScrollTop() { if (g_abs_booking_minisite_url == '') return; if (g_abs_booking_is_local == 1) { /* $(document).ready(function() { if( $('#bookingframe',parent.window.document).height()!=undefined ){ $('#bookingframe',parent.window.document).offset().top; } }); */ } else { $.postMessage("scrollTop", g_abs_booking_minisite_url, parent ); } } // // Cambia la lingua corrente // function changeLanguage(theFormId, theFieldId) { // var theForm = $('#' + theFormId); var theField = $('#' + theFieldId); // Aggiunta in coda della nuova lingua (l'ultima vince) var currAction = theForm.attr("action"); theForm.attr("action", currAction + '&lg=' + theField.val()); // TODO: invece di appendere sostituire. // Submit theForm.submit(); } // // Messaggio di waiting unificato // function unifiedWaitingMessage() { var idMessaggio = 0; // Argomenti opzionali di javascript if (arguments.length > 0) { // id di messaggio personalizzato idMessaggio = arguments[0]; } var testoMessaggio = ''; switch (idMessaggio) { case 0: testoMessaggio = '

' + g_abs_booking_waiting_msg1_01 + '
' + g_abs_booking_waiting_msg2_01 + '
Caricamento...

'; break; case 1: testoMessaggio = '

' + g_abs_booking_waiting_msg1_02 + '
' + g_abs_booking_waiting_msg2_02 + '
Caricamento...

'; break; } // jQuery.blockUI({ message: testoMessaggio, css: { border: '2px solid #3a4c5e', padding: '20px', backgroundColor: '#fff', '-webkit-border-radius': '10px', '-moz-border-radius': '10px', color: '#3a4c5e' }, overlayCSS: { backgroundColor: '#3a4c5e', opacity: .7 } }); } // // Sblocca la schermata // function unifiedUblockWindow() { jQuery.unblockUI(); } function showElementById(elId){ jQuery(elId).show(); } // // Dato un identificativo univoco di un campo input ne parsa il valore float // function jsParseFieldFloatFromInput(fieldId) { var amount = jQuery( fieldId ).val(); amount = amount.replace(".", ""); amount = amount.replace(",", "."); return parseFloat(amount); } // // Formatta un numero // function jsNumberFormat(number, decimals, dec_point, thousands_sep) { number = number + ''; number = number.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); // BRUM: nuova regular expression per matchare anche i numeri con una sola cifra var reg = new RegExp("^[-]?([0-9]+\.[0-9]+$|[0-9]+$)"); if (reg.test(number)) { if (dec_point.replace(/^\s\s*/, '').replace(/\s\s*$/, '') == '') dec_point = ','; if (thousands_sep.replace(/^\s\s*/, '').replace(/\s\s*$/, '') == '') thousands_sep = '.'; if (dec_point == thousands_sep) if (thousands_sep == '.') thousands_sep = ','; else thousands_sep ='.'; if (number == '') number = '0'; a_number = number.split('.'); if (thousands_sep.toLowerCase() != 'none') { var i_int = 3; output = ''; var i_last = a_number[0].length; for (i_ctr = 0; i_ctr < i_last; i_ctr++) { output = a_number[0].substr((i_last - i_ctr - 1),1) + output; if ((i_ctr - 2) % i_int == 0) output = thousands_sep + output; } if (output.substr(0,1) == thousands_sep) output = output.substr(1); } if (dec_point.toLowerCase() != 'none') { if (a_number.length == 1) a_number[1] = ''; if (a_number[1] == '') a_number[1] = '0'; while (a_number[1].length < decimals) a_number[1] = a_number[1] + '0'; a_number[1] = a_number[1].substr(0,decimals); output += dec_point + a_number[1]; } } return output; } // --------------------------------------------------------------------------------------------------------------------- // Funzioni comuni per la colorbox // Aggiunge o reimposta la colorbox considerando o meno un offset negativo function addColorbox(negativeOffset) { var lastNotEmpty = 0; $("a.gallery").each(function (i) { var offset = $(this).offset(); var o = offset.top - negativeOffset - 40; if (o < 0) o = 0; if (o == 0) o = lastNotEmpty; else lastNotEmpty = o; // Non e' responsive (se non alla riapertura della gallery) ma ci si adatta... var maxw = 800, maxh = 600; var wWidth = $(window).width(); if (wWidth < (maxw + 20)) { maxw = wWidth - 20; maxh = (maxw / 4) * 3; } // Adattamento per evitare che l'immagine scompaia sotto il bordo del frame var wh = $( document ).height(); if ( (o + maxh) > wh) o = wh - maxh - 10; if ( o < 0) o = 0; $(this).colorbox({photo:true, scalePhotos: true, maxWidth: maxw, maxHeight: maxh, opacity: 0.6, top:o}); }); } // Per compatibilita' con tutti i browser function getScrollOffsets() { // This works for all browsers except IE versions 8 and before if ( window.pageXOffset != null ) return { x: window.pageXOffset, y: window.pageYOffset }; // For browsers in Standards mode var doc = window.document; if ( document.compatMode === "CSS1Compat" ) { return { x: doc.documentElement.scrollLeft, y: doc.documentElement.scrollTop }; } // For browsers in Quirks mode return { x: doc.body.scrollLeft, y: doc.body.scrollTop }; } // Gestione scroll all'interno di un iframe con scroll auto function bodyScroll() { // Molto dispendioso: ogni volta che si fa un'offset bisogna riscrivere la colorbox (ma non ho trovato altre alternative...) var offsets = getScrollOffsets(); // negativeOffset = offsets.y; // In questo caso bisogna dare come offset negativo la scroll della finestra addColorbox(negativeOffset); } // ---------------------------------------------------------------------------------------------------------------------