(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"; } $('