/* -------------- GLOBAL VARIABLES -------------------------------- */ var CONTAINERELEMENT = null; var SITEURL = "http://www.vinivi.com/"; var SERVICEURL = SITEURL + "ResourcesHandler/HotelWidgetHandler.ashx"; /* --------------- END GLOBAL VARIABLES ------------------------- */ String.format = function () { var s = arguments[0]; for (var i = 0; i < arguments.length - 1; i++) { var reg = new RegExp("\\{" + i + "\\}", "gm"); s = s.replace(reg, arguments[i + 1]); } return s; } String.trim = function (str, chars) { return String.ltrim(String.rtrim(str, chars), chars); } String.ltrim = function (str, chars) { chars = chars || "\\s"; return str.replace(new RegExp("^[" + chars + "]+", "g"), ""); } String.rtrim = function (str, chars) { chars = chars || "\\s"; return str.replace(new RegExp("[" + chars + "]+$", "g"), ""); } function InitializeContainerElement() { CONTAINERELEMENT = document.getElementById("hotelWidget53AE3B1E-E83B-4030-A4A7-FA8A35D07564"); } function ValidateContainerElement() { if (CONTAINERELEMENT == null) { alert("Error while initializing hotel widget container element."); return false; } CONTAINERELEMENT.innerHTML = String.trim(CONTAINERELEMENT.innerHTML); if (CONTAINERELEMENT.firstChild == null || CONTAINERELEMENT.firstChild.tagName != "A" || ( (CONTAINERELEMENT.firstChild.href.indexOf('http://www.vinivi.com/') < 0) && (CONTAINERELEMENT.firstChild.href.indexOf('http://www.vinivi.co.uk/') < 0) ) ) { alert("Widget hotel container element must have a valid link to your accommodation page on Vinivi!"); return false; } return true; } function RegisterScript(scriptId, scriptUrl) { try { var oldScript = document.getElementById(scriptId); if (oldScript != null) { oldScript.parentNode.removeChild(oldScript); delete oldScript; } var newScript = document.createElement('script'); newScript.id = scriptId; newScript.type = 'text/javascript'; newScript.src = scriptUrl; document.getElementsByTagName("head")[0].appendChild(newScript); } catch (exc) { alert("Error while registering neccessary script."); } } function RegisterInlineScript(scriptId, scriptBody) { try { var oldScript = document.getElementById(scriptId); if (oldScript != null) { oldScript.parentNode.removeChild(oldScript); delete oldScript; } var newScript = document.createElement('script'); newScript.id = scriptId; newScript.type = 'text/javascript'; newScript.text = scriptBody; document.getElementsByTagName("head")[0].appendChild(newScript); } catch (exc) { alert("Error while registering neccessary inline script."); } } function RegisterCss(cssId, cssUrl) { try { var oldCss = document.getElementById(cssId); if (oldCss != null) { oldCss.parentNode.removeChild(oldCss); delete oldCss; } var newCss = document.createElement('link'); newCss.id = cssId; newCss.type = 'text/css'; newCss.rel = 'stylesheet'; newCss.href = cssUrl; newCss.media = 'screen'; document.getElementsByTagName("head")[0].appendChild(newCss); } catch (exc) { alert("Error while registering neccessary stylesheet."); } } function RenderHotelWidget() { var hotelID = "799"; var widgetId = "53AE3B1E-E83B-4030-A4A7-FA8A35D07564"; RegisterScript("scrGetHotelWidgetInfo" + widgetId, String.format("{0}?mn=GetHotelWidgetInfo&rmn=RenderHotelWidgetInfo&id={1}&wid={2}", SERVICEURL, hotelID, widgetId)); } function RenderHotelWidgetInfo(data) { var hotelWidget = data.HotelWidget; if (hotelWidget.OnLoadScript != '') { RegisterInlineScript("scrHotelWidgetOnLoadScript" + hotelWidget.Id, hotelWidget.OnLoadScript); } if (hotelWidget.Css != '') { RegisterCss("cssHotelWidget" + hotelWidget.Id, hotelWidget.Css); } if (hotelWidget.Html != '') { var wrapperDiv = document.createElement('div'); wrapperDiv.innerHTML = hotelWidget.Html; document.getElementById("hotelWidget" + hotelWidget.Id).appendChild(wrapperDiv); } } try { InitializeContainerElement(); if (ValidateContainerElement()) { window.onload = RenderHotelWidget(); } } catch (exc) {}