(function() { var jQuery; var self = this; var _load_counter = 0; var _required_js = []; var _required_css = []; var _opts = { log: false, /* to log messages */ widget_version: 6.93, /*need to increase this when made changes in js or css to refresh browser cache*/ jq_version: '2.2.4', /*required jquery version*/ domain: '' /*site domain, this will be identify runtime and set accordingly*/ }; this.log = function(msg, force) { if (_opts.log || force) { console.log(msg); } }; this.loadJS = function() { if (self._required_js[_load_counter]) { var js_src = self._required_js[_load_counter]; self.log('Loading script : ' + js_src); var script = document.createElement('script'); script.type = 'text/javascript'; script.src = js_src; if (-1 == js_src.toLowerCase().indexOf(_opts.domain.toLowerCase())) { script.async = true; } if (script.readyState) { script.onreadystatechange = function() { if (this.readyState == 'complete' || this.readyState == 'loaded') { self.log('******Loaded script : ' + this.src); _load_counter++; self.loadJS(); } }; } else { script.onload = function() { self.log('******Loaded script : ' + this.src); _load_counter++; self.loadJS(); }; } document.head.appendChild(script); } else { _load_counter = 0; this.loadCss(); } }; this.loadCss = function() { if (self._required_css[_load_counter]) { var css_src = self._required_css[_load_counter]; self.log('Loading style : ' + css_src); var style = document.createElement('link'); style.rel = 'stylesheet'; style.href = css_src; style.type = 'text/css'; style.onload = function() { self.log('******Loaded style : ' + this.href); _load_counter++; self.loadCss(); }; var css_prepend = parseInt(document.getElementById("ibcwjs").getAttribute("data-css-prepend")); if (isNaN(css_prepend)) css_prepend = 0; if (css_prepend === null || css_prepend === 0) { document.head.appendChild(style); } else { var head_tag = document.getElementsByTagName('head')[0]; head_tag.insertBefore(style, head_tag.childNodes[0]); } } else { _load_counter = 0; jQuery = window.jQuery; this.initApp(); } }; this.getRequiredJs = function() { var scripts = []; if (window.jQuery === undefined || window.jQuery.fn.jquery !== _opts.jq_version) { self.log("Required JQuery version '" + _opts.jq_version + "' not found"); scripts.push("//ajax.googleapis.com/ajax/libs/jquery/" + _opts.jq_version + "/jquery.min.js"); } else { self.log("Required JQuery version '" + _opts.jq_version + "' already present"); } var url = 'https://www.ibc.travel'; _opts.domain = url; scripts.push('/js/ibc.js'); scripts.push("//maps.googleapis.com/maps/api/js?key=AIzaSyA9djRfdPcln67ZhnzpUrn9UqwGfQ4EhB8"); scripts.push("//apis.google.com/js/client.js"); //scripts.push("//connect.facebook.net/en_US/sdk.js"); return scripts; }; this.getRequiredCss = function() { var styles = []; styles.push(_opts.domain + "/min/?g=wcss&v=" + _opts.widget_version); return styles; }; this.initApp = function() { var o_script = jQuery('#ibcwjs'); var container = o_script.data("id"); var hotel_id = o_script.data("hotel"); if (!hotel_id) { hotel_id = 0; } var group_name = o_script.data("group"); if (!group_name) { group_name = ''; } var subgroup_name = o_script.data("subgroup"); if (!subgroup_name) { subgroup_name = ''; } var dest_dropdown = o_script.data("location-dropdown"); if (dest_dropdown) { dest_dropdown = 1; } else { dest_dropdown = 0; } var destination = o_script.data("destination"); if (!destination) { destination = ''; } if (container) { container = "ibcwcontainer"; } $('
').insertAfter("#" + container); $(" ").appendTo(document.head); app._source = 'widget'; app.createScriptDynamically('//www.paypalobjects.com/api/checkout.js'); if (o_script.data("source")) { app._source = o_script.data("source"); } app._redirect_ibc = 0; if (o_script.data("redirect-ibc")) { app._redirect_ibc = 1; } app._redirect_new_tab = 0; if (o_script.data("redirect-new-tab")) { app._redirect_new_tab = 1; } app._content_div_id = container; app._hotel_id = hotel_id; app._group_name = group_name; app._subgroup_name = subgroup_name; app._dest_dropdown = dest_dropdown; app._source_destination = destination; app._enable_log = _opts.log; app._booking_source = "widget-" + window.location.hostname.replace("www.", ""); var site_url = window.location.href; // THIS CODE IS USED FOR DEEP LINK if (app.getURLParameterByName('skd-checkin', site_url) && app.getURLParameterByName('skd-checkout', site_url) && app.getURLParameterByName('skd-total-rooms', site_url) && app.getURLParameterByName('adult_room1', site_url) && app.getURLParameterByName('no_children', site_url)) { var checkin = app.getURLParameterByName('skd-checkin', site_url); var checkout = app.getURLParameterByName('skd-checkout', site_url); var no_rooms = app.getURLParameterByName('skd-total-rooms', site_url); var no_adults = app.getURLParameterByName('adult_room1', site_url); var no_child = app.getURLParameterByName('no_children', site_url); var default_date = $.datepicker.formatDate('M d, yy', new Date(checkin)) + ' - ' + $.datepicker.formatDate('M d, yy', new Date(checkout)); app.setData('ibc_scheckin_out', default_date); app.setData('ibc_sadults', no_adults); app.setData('ibc_schilds', no_child); app.setData('ibc_srooms', no_rooms); app.setData('ibc_schild_ages', ''); app._booking_source = app.getURLParameterByName('utm_source', site_url); app.init(); app.getAvailability('', hotel_id, checkin, checkout, no_adults, no_child, no_rooms, '', '', 2); } else { app.init(); } if (o_script.data("booking-source")) { app._booking_source = o_script.data("booking-source"); } /* this is temporary added to log all domains which are using widget */ }; self._required_js = self.getRequiredJs(); self._required_css = self.getRequiredCss(); self.loadJS(); })();