/** * BookingEvolution * Wordpress reservation form Helper. * This script will help integration between wordpress type form and bookingevolution widgets * * @version: 1.02 * @author: Toniolo Marco. * @uses: Jquery * */ jQuery(window).load(function(){ window.setTimeout( function(){bewpfix_listener(0) ;} , 500 ); }); function bewpfix_listener(i) { var elem = jQuery(".beform") ; if( elem && elem.length ) { bewpfix_init(elem) } else { if( i>=100 ) { console.error("BE NOT LOADED CANNOT FIX LINKS"); } else { window.setTimeout( function(){ bewpfix_listener(++i) } , 150 ); } } } function bewpfix_init(elem) { if( typeof _BECUSTOM !="object" ) { var error = true ; var data = {h:false,l:false}; // LOOK FOR TOSOM BOOKINGEVOLUTION STANDARD RESERVATION BAR if( elem && elem.length ) { data.h = elem[0].hotel.value; data.l = elem[0].lan.value ; error = false; } // First control failure look for Daniele's plugin if(error) { elem = jQuery("#be-mc-form") ; if( elem && elem.length ) { data.h = elem[0].hotel.value; data.l = elem[0].lan.value ; error = false; } } if(error) {console.error("NO BE DATA");return false;} var _BECUSTOM = { login:data.h , lan:data.l } ; } if( typeof _BECUSTOM.login == "undefined" ) { console.error("NO BE LOGIN") ; } if( typeof _BECUSTOM.lan == "undefined" || isNaN( _BECUSTOM.lan ) ) { console.error("WRONG BE LANG") ; } var selector = ".be2-book-link" ; if( typeof _BECUSTOM.selector != "undefined" ) { selector = _BECUSTOM.selector ; } if( typeof selector == "string" ) { tmp = selector ; selector = [] ; selector[0] = tmp ; } var openMobile = false ; var hotel = _BECUSTOM.login ; var lang = _BECUSTOM.lan ; // Create an hidden trigger according to the bookingevolution standard if none is found var trigger = jQuery("#belightbox") ; if(!trigger || trigger.length<=0 ) { // LOOK FOR BOOKINGEVOLUTION STANDARD WIDGET trigger = jQuery(".bookingevolution-tsmbe") ; hotel = trigger.attr("data-hotel") lang = trigger.attr("data-lang") // Revert to be lang codes switch(lang) { case "it": lang=1; break; case "en": lang=2; break; case "fr": lang=3; break; case "es": lang=4; break; case "de": lang=5; break; default : lang=2; } } else { // KEEP ON USING DEFAULT TRIGGER DATA hotel = jQuery("#belightbox").attr("data-hotel"); lang = jQuery("#belightbox").attr("data-lan"); } if(!trigger || trigger.length<=0 ) { if( typeof _BECUSTOM != "undefined" ) { console.log("BE: created virtual trigger CUSTOM MODE"); var trigger = document.createElement("div") ; var triggerText = document.createTextNode("TEST") ; hotel = _BECUSTOM.login ; lang = _BECUSTOM.lan ; trigger.setAttribute("id","belightbox") ; trigger.setAttribute("data-hotel", hotel ) ; trigger.setAttribute("data-lan", lang ) ; trigger.appendChild(triggerText) //trigger.setAttribute("style","position:absolute;top:0px;left:0px;z-index:999999") ; trigger.setAttribute("style","position:absolute;top:-1000px;left:-1000px") ; // Append the hidden trigger document.getElementsByTagName("body")[0].appendChild(trigger) ; //console.log(trigger) //console.error("BE ERROR: cannot create virtual trigger") ; } } if( isNaN(lang) ){lang=2;} if( typeof hotel != "undefined" && hotel && typeof mobilebe2 != "undefined" ) { var idxb2m = false ; // Use std cycle to avoid indexOf comaptibility issues for( var j=0 ; j0 ) { a = sel.find("a") ; if( a && a.length ) { a.on("click",function(){ openbe2( hotel , lang ) }) ; /* if(!be2wp_isSmartphone()) { a.on("click",function(){ customOpenBe2() }); } else{ a.on("click",function(){ openbe2( hotel , lang )}); }/* */ } else { sel.on("click",function(){ openbe2( hotel , lang ); }) ; /* if(!be2wp_isSmartphone()){ sel.on("click",function(){ customOpenBe2() }); } else{ sel.on("click",function(){ openbe2( hotel , lang );}) ; } /* */ } //sel.click( function(){ customOpenBe2() }); } } else { sel.on("click", function(){ openbe2( hotel , lang ); }); } } bewpfix_step2() } function bewpfix_step2() { // ADDITIONAL EXCEPTIONS var hotel = jQuery("#belightbox").attr("data-hotel"); var lang = jQuery("#belightbox").attr("data-lan"); if(hotel && hotel=="falier") { // if( be2wp_isSmartphone() ) { jQuery("#mobile-advanced li.be2-book-link").on("click",function(){ openbe2( hotel , lang ); }) } } } // The clicker function :P function customOpenBe2() { var t = jQuery("#belightbox") ; t.click(); } function be2wp_isSmartphone() { // Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini // NEXUS 7 // Mozilla/5.0 (Linux; Android 4.3; Nexus 7 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Safari/537.36 // NEXUS s // Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Nexus S Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 // HTC ONE EVO ... // Mozilla/5.0 (Linux; Android 4.0.3; HTC One X Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19 var UA = window.navigator.userAgent; var out = false ; if( /Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(UA) ) { // Check for android smartphones if( /Android/i.test(UA) ) { if( /Mobile/i.test(UA) ) { out = true ; } } else { out = true ; } } return out ; }