﻿//function addjQueryReference() { if (window.jQuery === null) { var e = document.createElement("script"); e.src = "http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"; e.type = "text/javascript"; if (document.getElementsByTagName("head").length > 0) { document.getElementsByTagName("head")[0].appendChild(e) } else if (document.getElementsByTagName("body").length > 0) { var a = document.getElementsByTagName("body")[0]; if (a.hasChildNodes()) { a.insertBefore(e, a.firstChild) } else { a.appendChild(e) } } } } addjQueryReference(); var iCallID; var soapVersion = 0; var cmNamespace = "uri:IBE"; var ApplicationName = ""; var transportURI = ""; var PageID = 0; var PageName = ""; var PageNum = 0; var CheckHistory = ""; var Wait = null; var jsonServer = null; var selectedOffer = ""; var selectedOfferName = ""; var tmpContent = ""; var BookingID = ""; var BookingOpp = ""; var OffersCounter = 0; var PageSize = 0; var params; var FlightsOnly = false; var gotoBooking = false; var IBESeachType = 0; var originalOfferIndex = 0; var tmpRow1 = ""; var tmpRow2 = ""; var tmpData = ""; var my_array; var targetPage; function GetWaitDiv() { if (GetElementById('divWait') !== null) { Wait = GetElementById('divWait'); Wait.style.left = ((screen.availWidth - Wait.offsetWidth) / 3) + "px"; Wait.style.top = ((screen.availHeight - Wait.offsetHeight) / 3) + "px" } } function init() { try { jsonServer = new srvIBE() } catch (e) { } GetWaitDiv(); if (startupErrors !== null) { if (startupErrors.length > 0) { for (var i = 0; i < startupErrors.length; i++) { processError(startupErrors[i].message, startupErrors[i].url, startupErrors[i].lineNumber, startupErrors[i].snippet) } startupErrors.length = 0 } } } function PopulateContent(a) { var b = document.createElement("div"); b.innerHTML = a; for (i = 0; i < b.childNodes.length; i++) { selectedOffer.appendChild(b.childNodes.item(i).cloneNode(true)) } } function offerCheckCallbackFunction(a, b) { if (a.result.resultCode != -1) { GetElementById('FlightBookingID').value = a.result.bookingID; GetElementById('OfferGUID').value = b; GetElementById('PageNum').value = "1"; for (var i = 0; i < GetElementById('Duration').options.length; i++) { if (GetElementById('Duration').options[i].value == 6) { GetElementById('Duration').selectedIndex = i } } GetElementById('DurationDays').value = a.result.duration; GetElementById('FromDate').value = a.result.fromDate; GetElementById('ToDate').value = a.result.toDate; GetElementById('FlightDataXML').value = a.result.offerDataXML; CheckFields(); GetElementById('Target').value = targetPage; if (gotoBooking) { var c = GetElementById('frmIBEMainForm'); var d = GetElementById("SecureSite"); c.action = d.value.replace(/;/g, ':'); c.submit() } } } function checkifSingleCell(a) { var b = true; if (a.split('<td').length > 0) { var c = 0; var d = a.split('<td').length - 1; var e = 0; for (i = 0; i < a.split('<td').length; i++) { if (a.split('<td')[i].split('</td>').length > 0) { if (a.split('<td')[i].replace(/ /g, '').length > 0) { e = e + 1; var f = a.split('<td')[i]; if (f.search('</td>') > 0) { c = c + 1 } if ((c == e) && i != d) { b = false } } } } } return b } function PopulateInlineContent(a) { if (!selectedOffer) { return } var b = a.indexOf("<", 0); var c = a.split('<td').length - 1; if (selectedOffer.hasChildNodes()) { for (i = selectedOffer.childNodes.length - 1; i >= 0; i--) { selectedOffer.removeChild(selectedOffer.childNodes.item(i)) } } if (selectedOffer.nodeName.toUpperCase() == "TR") { while (b > -1) { if (a.substring(b, b + 4) != "<!--") { if (a.split('<td').length > 0) { if (checkifSingleCell(a)) { var d = -1; var e; var f = selectedOffer.insertCell(-1); if (a.split('(<td.>.</td>')[0].replace(/ /g, '').length > 0) { if (d == a.split('(<td.>.</td>')[0].indexOf("class=\"", 0)) { d = 0 } else { d = a.split('(<td.>.</td>')[0].indexOf("class=\"", 0) + 7 } e = a.split('(<td.>.</td>')[0].indexOf("\"", d); if (d > 0) { f.className = a.split('(<td.>.</td>')[0].substring(d, e) } d = -1; if (d == a.split('(<td.>.</td>')[0].indexOf("colspan=", 0)) { d = 0 } else { d = a.split('(<td.>.</td>')[0].indexOf("colspan=", 0) + 9 } e = a.split('(<td.>.</td>')[0].indexOf(">", 0); var g = a.split('(<td.>.</td>')[0].indexOf(" ", d); if (g < e) { e = g } if ((d > 8) && (e > d)) { f.colSpan = parseInt(a.split('(<td.>.</td>')[0].substring(d, e).replace('"', '').replace("'", ""), 10) } d = a.split('(<td.>.</td>')[0].indexOf(">", e) + 1; e = a.toString().length - '</td>'.length; f.innerHTML = a.split('(<td.>.</td>')[0].substring(d, e) } } else { for (t = 0; t < a.split('<td').length; t++) { if (a.split('<td')[t].replace(/ /g, '').length > 0) { var n = selectedOffer.insertCell(-1); var h = -1; if (h == a.split('<td')[t].indexOf("class=\"", 0)) { h = 0 } else { h = a.split('<td')[t].indexOf("class=\"", 0) + 7 } var j = a.split('<td')[t].indexOf("\"", h); if (h > 0) { n.className = a.split('<td')[t].substring(h, j) } h = -1; if (h == a.split('<td')[t].indexOf("colspan=", 0)) { h = 0 } else { h = a.split('<td')[t].indexOf("colspan=", 0) + 9 } j = a.split('<td')[t].indexOf(">", 0); var k = a.split('<td')[t].indexOf(" ", h); if (k < j) { j = k } if ((h > 8) && (j > h)) { n.colSpan = parseInt(a.split('<td')[t].substring(h, j).replace('"', '').replace("'", ""), 10) } h = a.split('<td')[t].indexOf(">", j) + 1; j = a.split('<td')[t].indexOf("</td", h); n.innerHTML = a.split('<td')[t].substring(h, j) } } } } b = -1; break } else { b = a.indexOf("<", b + 1) } } } else { PopulateContent(a) } } function UpdateContent(a) { var b = ''; if (a.error) { if (FlightsOnly) { GetElementById('FlightBookingID').value = BookingID } else { GetElementById('BookingID').value = BookingID } GetElementById('frmIBEMainForm').submit(); if (selectedOffer) { PopulateInlineContent(tmpContent) } } else { GetElementById('offers_list').innerHTML = a.result.offersListHTML; GetElementById("CachedOfferXml").value = a.result.offerDataXML; GetElementById("CachedAvailXml").value = a.result.availDataXML; GetElementById("txtTimeout").value = a.result.checkTime; b = a.result.offerGUID; if (GetElementById("a" + BookingID)) { if ((a.result.inlineDataHTML.indexOf("Unfortunately") == -1) && (a.result.availDataHTML.indexOf("error") == -1)) { GetElementById("a" + BookingID).style.display = "block"; if (!a.result.multiFlight) { GetElementById("a" + BookingID).innerHTML = a.result.availDataHTML + "<!--[CachedOfferXml]" + a.result.offerDataXML + "[/CachedOfferXml][CachedAvailXml]" + a.result.availDataXML + "[/CachedAvailXml][TimeOut]" + a.result.checkTime + "[/TimeOut][CachedMultiFlightXml]" + a.result.ukFlightDataXML + "[CachedMultiFlightXml]-->"; GetElementById("a" + BookingID).style.display = "block"; CheckHistory = GetElementById('service').innerHTML } else { GetElementById("a" + BookingID).innerHTML = ""; CheckHistory = "<div id=\"a" + BookingID + "\">" + a.result.availDataHTML + "<!--[CachedOfferXml]" + a.result.offerDataXML + "[/CachedOfferXml][CachedAvailXml]" + a.result.availDataXML + "[/CachedAvailXml][TimeOut]" + a.result.checkTime + "[/TimeOut]--></div>"; GetElementById('service').innerHTML = CheckHistory.replace('\n', '') } } else { GetElementById('service').innerHTML = CheckHistory.replace('\n', ''); GetElementById("a" + BookingID).innerHTML = ""; GetElementById("a" + BookingID).style.display = "none"; GetElementById('service').removeChild(GetElementById("a" + BookingID)) } } else { if (((a.result.inlineDataHTML.length > 0) && (a.result.inlineDataHTML.indexOf("Unfortunately") == -1) && (a.result.availDataHTML.indexOf("error") == -1)) || (a.result.multiFlight)) { if (a.result.multiFlight) { CheckHistory = "" } CheckHistory += "<div id=\"a" + BookingID + "\">" + a.result.availDataHTML + "<!--[CachedOfferXml]" + a.result.offerDataXML + "[/CachedOfferXml][CachedAvailXml]" + a.result.availDataXML + "[/CachedAvailXml][TimeOut]" + a.result.checkTime + "[/TimeOut]--></div>"; GetElementById('service').innerHTML = CheckHistory.replace('\n', '') } else if ((a.result.inlineDataHTML.length > 0) && (a.result.isdatamixOffer) && (a.result.statusCode.match("450") !== null)) { CheckHistory += "<div id=\"a" + BookingID + "\">" + a.result.availDataHTML + "<!--[CachedOfferXml]" + a.result.offerDataXML + "[/CachedOfferXml][CachedAvailXml]" + a.result.availDataXML + "[/CachedAvailXml][TimeOut]" + a.result.checkTime + "[/TimeOut]--></div>"; GetElementById('service').innerHTML = CheckHistory.replace('\n', '') } else { GetElementById('service').innerHTML = CheckHistory.replace('\n', '') } } selectedOffer = GetElementById(selectedOfferName); if (a.result.inlineDataHTML.length > 0) { PopulateInlineContent(a.result.inlineDataHTML) } else if (selectedOffer) { if (selectedOffer.hasChildNodes()) { for (i = selectedOffer.childNodes.length - 1; i >= 0; i--) { selectedOffer.removeChild(selectedOffer.childNodes.item(i)) } } PopulateInlineContent(tmpContent) } var c = false; if (GetElementById('service').hasChildNodes() && (GetElementById('service').childNodes.length > 1)) { var d = 0; var f = GetElementById('service').childNodes; for (i = 0; i < f.length; i++) { if (f[i].nodeName != "#text") { d++ } } if (d <= 1) { c = false } else { c = true } } if (c) { GetElementById('service').style.visibility = "visible"; GetElementById('service').style.display = "block" } else { if (a.result.multiFlight) { try { $('#flightsLoader').remove(); if ($('#muliple-flights table').length > 0) { $('#muliple-flights table input').removeAttr('disabled') } } catch (e) { alert("Jquery Failed") } } GetElementById('service').style.visibility = "hidden"; GetElementById('service').style.display = "none" } if (window.OnAfterPriceCheck) { window.OnAfterPriceCheck(a) } } WaitForCallBack = false; if (FlightsOnly) { offerCheckCallbackFunction(a, b) } else { if ((gotoBooking) && (a.result) && (a.result.inlineDataHTML.indexOf("Unfortunately") == -1)) { var g = GetElementById('frmIBEMainForm'); Book(BookingID, BookingOpp, "", "", ""); g.submit() } } } function Check(a, b, c, d, f, g) { if (g) { gotoBooking = true } else { gotoBooking = false } originalOfferIndex = 0; if ((WaitForCallBack) || (GetElementById('service') === null)) { return } if ((jsonServer === null) || (jsonServer === undefined)) { try { jsonServer = new srvIBE() } catch (e) { } } WaitForCallBack = true; var h = GetElementById("SearchHistory"); params = h.value; selectedOfferName = a; selectedOffer = GetElementById(selectedOfferName); if ((CheckHistory.length === 0) && (GetElementById('service').innerHTML.indexOf("Unfortunately") == -1) && (GetElementById('service').innerHTML.indexOf("error") == -1)) { CheckHistory = GetElementById('service').innerHTML } else { GetElementById('service').innerHTML = CheckHistory } CheckFields(); if (GetElementById('SelectedOfferIndex') !== null) { GetElementById('SelectedOfferIndex').value = f } if (GetElementById("AvailXsl") !== null) { params += "|availXsl:" + GetElementById("AvailXsl").value + "|inlineXsl:" + GetElementById("InlineXsl").value + "|listXsl:" + GetElementById("ListXsl").value } if ((params.indexOf("BookingID:") === 0) || (params.indexOf("|BookingID:") > -1)) { pair = params.substring(params.indexOf("BookingID:"), params.indexOf('|', params.indexOf("BookingID:") + 3)); params = params.replace(pair, "BookingID:" + a) } else { params += "|BookingID:" + a } if (params.indexOf("BookingOperator:") > -1) { pair = params.substring(params.indexOf("BookingOperator:"), params.indexOf('|', params.indexOf("BookingOperator:") + 3)); params = params.replace(pair, "BookingOperator:" + b) } else { params += "|BookingOperator:" + b } if (params.indexOf("BookingAirport:") > -1) { pair = params.substring(params.indexOf("BookingAirport:"), params.indexOf('|', params.indexOf("BookingAirport:") + 3)); params = params.replace(pair, "BookingAirport:" + c) } else { params += "|BookingAirport:" + c } if (params.indexOf("SelectedBoard:") > -1) { pair = params.substring(params.indexOf("SelectedBoard:"), params.indexOf('|', params.indexOf("SelectedBoard:") + 3)); params = params.replace(pair, "SelectedBoard:" + d) } else { params += "|SelectedBoard:" + d } params += "|SelectedOffer:" + f; params += "|PageType:" + GetElementById("PageType").value; params += "|FlexiDays:" + GetElementById("FlexiDays").value; params += "|WithoutAlternatives:" + (GetElementById("WithoutAlternatives").checked ? "on" : ""); if (GetElementById("a" + a)) { var j = GetElementById("a" + a).innerHTML; j = j.substring(j.indexOf("&#91;OGUID&#93;") + "&#91;OGUID&#93;".length, j.indexOf("&#91;&#47;OGUID&#93;")); params += "|OfferGUID:" + j } params = params.replace(/,/g, "¬").replace(/\|/g, ","); BookingID = a; BookingOpp = b; if (selectedOffer !== null) { tmpContent = selectedOffer.innerHTML } else { tmpContent = "" } if (Wait === null) { WaitForCallBack = false; GetWaitDiv(); window.setTimeout('Check("' + a + '", "' + b + '", "' + c + '", "' + d + '", ' + f + ')', 1000); return } if (selectedOffer !== null) { for (i = selectedOffer.childNodes.length - 1; i >= 0; i--) { selectedOffer.removeChild(selectedOffer.childNodes.item(i)) } for (i = 0; i < Wait.childNodes.length; i++) { selectedOffer.appendChild(Wait.childNodes.item(i).cloneNode(true)) } } jsonServer.CheckAvailability(params, UpdateContent) } function LTrim(a) { var b = /\s*((\S+\s*)*)/; return a.replace(b, "$1") } function RTrim(a) { var b = /((\s*\S+)*)\s*/; return a.replace(b, "$1") } function trim(a) { return LTrim(RTrim(a)) } function CheckMultipleFlightOffer(a, b, c, d, f, g, h, i) { var j; var k; if (i) { gotoBooking = true } else { gotoBooking = false } try { k = b; if ((WaitForCallBack) || (GetElementById('service') === null)) { return } if ((jsonServer === null) || (jsonServer === undefined)) { try { jsonServer = new srvIBE() } catch (e) { } } WaitForCallBack = true; var l = GetElementById("SearchHistory"); params = l.value; selectedOfferName = a.toString().substr(0, a.toString().lastIndexOf("_")) + '_' + c; selectedOfferName = a; selectedOffer = GetElementById("selectedOfferName"); selectedOffer = GetElementById("select_" + c); if ((CheckHistory.length === 0) && (GetElementById('service').innerHTML.indexOf("Unfortunately") == -1) && (GetElementById('service').innerHTML.indexOf("error") == -1)) { CheckHistory = GetElementById('service').innerHTML } else { GetElementById('service').innerHTML = CheckHistory } CheckFields(); if ((originalOfferIndex === 0) && (GetElementById('SelectedOfferIndex') !== null)) { originalOfferIndex = GetElementById('SelectedOfferIndex').value } params += "|OriginalOfferIndex:" + originalOfferIndex; if (GetElementById('SelectedOfferIndex') !== null) { GetElementById('SelectedOfferIndex').value = c } if (GetElementById("AvailXsl") !== null) { params += "|availXsl:" + GetElementById("AvailXsl").value + "|inlineXsl:" + GetElementById("InlineXsl").value + "|listXsl:" + GetElementById("ListXsl").value } if ((params.indexOf("BookingID:") === 0) || (params.indexOf("|BookingID:") > -1)) { pair = params.substring(params.indexOf("BookingID:"), params.indexOf('|', params.indexOf("BookingID:") + 3)); params = params.replace(pair, "BookingID:" + selectedOfferName) } else { params += "|BookingID:" + selectedOfferName } if (params.indexOf("BookingOperator:") > -1) { pair = params.substring(params.indexOf("BookingOperator:"), params.indexOf('|', params.indexOf("BookingOperator:") + 3)); params = params.replace(pair, "BookingOperator:" + b) } else { params += "|BookingOperator:" + b } if (params.indexOf("BookingAirport:") > -1) { pair = params.substring(params.indexOf("BookingAirport:"), params.indexOf('|', params.indexOf("BookingAirport:") + 3)); params = params.replace(pair, "BookingAirport:" + f) } else { params += "|BookingAirport:" + f } if (params.indexOf("SelectedBoard:") > -1) { pair = params.substring(params.indexOf("SelectedBoard:"), params.indexOf('|', params.indexOf("SelectedBoard:") + 3)); params = params.replace(pair, "SelectedBoard:" + g) } else { params += "|SelectedBoard:" + g } params += "|SelectedOffer:" + c; params += "|PageType:" + GetElementById("PageType").value; params += "|FlexiDays:" + GetElementById("FlexiDays").value; params += "|WithoutAlternatives:" + (GetElementById("WithoutAlternatives").checked ? "on" : ""); params += "|CachedOfferXml:" + GetElementById("CachedOfferXml").value; params += "|CachedAvailXml:" + GetElementById("CachedAvailXml").value; params += "|OriginalBookingID" + a; if (a == selectedOfferName) { params += "|MultipleFlightOffer:" + "false" } else { params += "|MultipleFlightOffer:" + "true" } params += "|ServiceCode:" + h; params += "|MultiFlightOfferIndex:" + c; if ((params.indexOf("PackageID:") === 0) || (params.indexOf("|PackageID:") > -1)) { pair = params.substring(params.indexOf("PackageID:"), params.indexOf('|', params.indexOf("PackageID:") + 3)); params = params.replace(pair, "PackageID:" + d) } else { params += "|PackageID:" + d } if (GetElementById("a" + a)) { var m = GetElementById("a" + BookingID).innerHTML; m = m.substring(m.indexOf("&#91;OGUID&#93;") + "&#91;OGUID&#93;".length, m.indexOf("&#91;&#47;OGUID&#93;")); params += "|OfferGUID:" + m } params = params.replace(/,/g, "¬").replace(/\|/g, ","); BookingID = a; BookingOpp = b; if (selectedOffer !== null) { tmpContent = selectedOffer.innerHTML; tmpRow1 = GetElementById(selectedOffer.id).parentNode.parentNode; tmpRow2 = GetElementById(selectedOffer.id).parentNode.parentNode.nextSibling; tmpData = GetElementById(selectedOffer.id).parentNode.parentNode.innerHTML } else { tmpContent = ""; tmpRow1 = ""; tmpRow2 = "" } if (Wait === null) { WaitForCallBack = false; GetWaitDiv(); window.setTimeout('CheckMultipleFlightOffer("' + a + '", "' + b + '", "' + c + '", "' + originalOfferOperator + '" + "' + f + '", "' + g + '", ' + h + ')', 1000); return } if (selectedOffer !== null) { var n = $('#' + selectedOffer.id); var o = n.parent(); var p = o.outerHeight(); var q = o.parent().outerWidth(); var r = o.parent().offset(); var s = $('#flightsWait').html(); if (!s) { s = "Please wait while we check your flight" } if ($('#muliple-flights table').length > 0) { $('#muliple-flights table input').attr('disabled', 'disabled') } $('body').prepend('<div id="flightsLoader">' + s + '</div>'); $('#flightsLoader').css({ 'position': 'absolute', 'top': +r.top + 'px', 'left': r.left + 'px', 'width': q + 'px', 'height': p + 'px', 'z-index': '99999' }); if (s == "Please wait while we check your flight") { $('#flightsLoader').css({ 'background': '#ffffff', 'text-align': 'center', 'font-weight': 'bold', 'line-height': p + 'px' }) } } jsonServer.checkMFPAvailability(params, UpdateContent) } catch (ex) { alert("Parameters Passed: " + a, +" operator: " + b + " Offer Index: " + c + " Original TourOperator: " + originalOfferOperator); return } } function UpdateSearchFields(a) { if (!a.error) { GroupsList = a.result.groupsList; RegionsList = a.result.regionsList; OperatorsList = a.result.operatorsList; AllResortsList = a.result.allResortsList; ResortsList = a.result.resortsList; InitDates(); UpdateDate(); UpdateGroups(); UpdateRegions(); UpdateResorts(); UpdateOperators(); CheckFields(); CheckDuration(GetElementById("Duration")); SetSearchPage(); UpdateRegions(); if (window.OnPageLoad) { window.OnPageLoad() } } } function CheckFlightOffer(a, b, c, d, e) { FlightsOnly = true; targetPage = d; Check(a, b, GetElementById("DLC").value, "", c, e); return } function ChangeSearchType(a) { if (IBESeachType == parseInt(a, 10)) { return false } if ((jsonServer === null) || (jsonServer === undefined)) { try { jsonServer = new srvIBE() } catch (e) { } } if (GetElementById('SearchHistory').value.indexOf("ibeSearchType:" + IBESeachType) > -1) { GetElementById('SearchHistory').value = GetElementById('SearchHistory').value.replace("ibeSearchType:" + IBESeachType, "ibeSearchType:" + a) } IBESeachType = parseInt(a, 10); GetElementById('ibeSearchType').value = IBESeachType.toString(); GroupsList = ['0:Updating...']; RegionsList = ['0:1:Updating...']; AllResortsList = ['1:Updating...']; ResortsList = ['1:Updating...']; OperatorsList = [':Updating...']; UpdateGroups(); UpdateRegions(); UpdateResorts(); UpdateOperators(); jsonServer.ChangeSearchType(a, GetElementById('SessionGUID').value, UpdateSearchFields); return true }
//function addjQueryReference() { if (window.jQuery === null) { var e = document.createElement("script"); e.src = "http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"; e.type = "text/javascript"; if (document.getElementsByTagName("head").length > 0) { document.getElementsByTagName("head")[0].appendChild(e) } else if (document.getElementsByTagName("body").length > 0) { var bodyTag = document.getElementsByTagName("body")[0]; if (bodyTag.hasChildNodes()) { bodyTag.insertBefore(e, bodyTag.firstChild) } else { bodyTag.appendChild(e) } } } } addjQueryReference(); var iCallID; var soapVersion = 0; var cmNamespace = "uri:IBE"; var ApplicationName = ""; var transportURI = ""; var PageID = 0; var PageName = ""; var PageNum = 0; var CheckHistory = ""; var Wait = null; var jsonServer = null; var selectedOffer = ""; var selectedOfferName = ""; var tmpContent = ""; var BookingID = ""; var BookingOpp = ""; var OffersCounter = 0; var PageSize = 0; var params; var FlightsOnly = false; var gotoBooking = false; var IBESeachType = 0; var originalOfferIndex = 0; var tmpRow1 = ""; var tmpRow2 = ""; var tmpData = ""; var my_array; var targetPage; function GetWaitDiv() { if (GetElementById('divWait') !== null) { Wait = GetElementById('divWait'); Wait.style.left = ((screen.availWidth - Wait.offsetWidth) / 3) + "px"; Wait.style.top = ((screen.availHeight - Wait.offsetHeight) / 3) + "px" } } function init() { try { jsonServer = new srvIBE() } catch (e) { } GetWaitDiv(); if (startupErrors !== null) { if (startupErrors.length > 0) { for (var i = 0; i < startupErrors.length; i++) { processError(startupErrors[i].message, startupErrors[i].url, startupErrors[i].lineNumber, startupErrors[i].snippet) } startupErrors.length = 0 } } } function PopulateContent(tmpContent) { var node = document.createElement("div"); node.innerHTML = tmpContent; for (i = 0; i < node.childNodes.length; i++) { selectedOffer.appendChild(node.childNodes.item(i).cloneNode(true)) } } function offerCheckCallbackFunction(response, offerGUID) { if (response.result.resultCode != -1) { GetElementById('FlightBookingID').value = response.result.bookingID; GetElementById('OfferGUID').value = offerGUID; GetElementById('PageNum').value = "1"; for (var i = 0; i < GetElementById('Duration').options.length; i++) { if (GetElementById('Duration').options[i].value == 6) { GetElementById('Duration').selectedIndex = i } } GetElementById('DurationDays').value = response.result.duration; GetElementById('FromDate').value = response.result.fromDate; GetElementById('ToDate').value = response.result.toDate; GetElementById('FlightDataXML').value = response.result.offerDataXML; CheckFields(); GetElementById('Target').value = targetPage; if (gotoBooking) { var Form = GetElementById('frmIBEMainForm'); var secure = GetElementById("SecureSite"); Form.action = secure.value.replace(/;/g, ':'); Form.submit() } } } function checkifSingleCell(content) { var singlecell = true; if (content.split('<td').length > 0) { var closing = 0; var nodeCount = content.split('<td').length - 1; var cnt = 0; for (i = 0; i < content.split('<td').length; i++) { if (content.split('<td')[i].split('</td>').length > 0) { if (content.split('<td')[i].replace(/ /g, '').length > 0) { cnt = cnt + 1; var inrString = content.split('<td')[i]; if (inrString.search('</td>') > 0) { closing = closing + 1 } if ((closing == cnt) && i != nodeCount) { singlecell = false } } } } } return singlecell } function PopulateInlineContent(content) { if (!selectedOffer) { return } var pos = content.indexOf("<", 0); var nodeCount = content.split('<td').length - 1; if (selectedOffer.hasChildNodes()) { for (i = selectedOffer.childNodes.length - 1; i >= 0; i--) { selectedOffer.removeChild(selectedOffer.childNodes.item(i)) } } if (selectedOffer.nodeName.toUpperCase() == "TR") { while (pos > -1) { if (content.substring(pos, pos + 4) != "<!--") { if (content.split('<td').length > 0) { if (checkifSingleCell(content)) { var startPosition = -1; var endPosition; var node = selectedOffer.insertCell(-1); if (content.split('(<td.>.</td>')[0].replace(/ /g, '').length > 0) { if (startPosition == content.split('(<td.>.</td>')[0].indexOf("class=\"", 0)) { startPosition = 0 } else { startPosition = content.split('(<td.>.</td>')[0].indexOf("class=\"", 0) + 7 } endPosition = content.split('(<td.>.</td>')[0].indexOf("\"", startPosition); if (startPosition > 0) { node.className = content.split('(<td.>.</td>')[0].substring(startPosition, endPosition) } startPosition = -1; if (startPosition == content.split('(<td.>.</td>')[0].indexOf("colspan=", 0)) { startPosition = 0 } else { startPosition = content.split('(<td.>.</td>')[0].indexOf("colspan=", 0) + 9 } endPosition = content.split('(<td.>.</td>')[0].indexOf(">", 0); var tst = content.split('(<td.>.</td>')[0].indexOf(" ", startPosition); if (tst < endPosition) { endPosition = tst } if ((startPosition > 8) && (endPosition > startPosition)) { node.colSpan = parseInt(content.split('(<td.>.</td>')[0].substring(startPosition, endPosition).replace('"', '').replace("'", ""), 10) } startPosition = content.split('(<td.>.</td>')[0].indexOf(">", endPosition) + 1; endPosition = content.toString().length - '</td>'.length; node.innerHTML = content.split('(<td.>.</td>')[0].substring(startPosition, endPosition) } } else { for (t = 0; t < content.split('<td').length; t++) { if (content.split('<td')[t].replace(/ /g, '').length > 0) { var n = selectedOffer.insertCell(-1); var pos1 = -1; if (pos1 == content.split('<td')[t].indexOf("class=\"", 0)) { pos1 = 0 } else { pos1 = content.split('<td')[t].indexOf("class=\"", 0) + 7 } var pos2 = content.split('<td')[t].indexOf("\"", pos1); if (pos1 > 0) { n.className = content.split('<td')[t].substring(pos1, pos2) } pos1 = -1; if (pos1 == content.split('<td')[t].indexOf("colspan=", 0)) { pos1 = 0 } else { pos1 = content.split('<td')[t].indexOf("colspan=", 0) + 9 } pos2 = content.split('<td')[t].indexOf(">", 0); var test = content.split('<td')[t].indexOf(" ", pos1); if (test < pos2) { pos2 = test } if ((pos1 > 8) && (pos2 > pos1)) { n.colSpan = parseInt(content.split('<td')[t].substring(pos1, pos2).replace('"', '').replace("'", ""), 10) } pos1 = content.split('<td')[t].indexOf(">", pos2) + 1; pos2 = content.split('<td')[t].indexOf("</td", pos1); n.innerHTML = content.split('<td')[t].substring(pos1, pos2) } } } } pos = -1; break } else { pos = content.indexOf("<", pos + 1) } } } else { PopulateContent(content) } } function UpdateContent(response) { var offerGUID = ''; if (response.error) { if (FlightsOnly) { GetElementById('FlightBookingID').value = BookingID } else { GetElementById('BookingID').value = BookingID } GetElementById('frmIBEMainForm').submit(); if (selectedOffer) { PopulateInlineContent(tmpContent) } } else { GetElementById('offers_list').innerHTML = response.result.offersListHTML; GetElementById("CachedOfferXml").value = response.result.offerDataXML; GetElementById("CachedAvailXml").value = response.result.availDataXML; GetElementById("txtTimeout").value = response.result.checkTime; offerGUID = response.result.offerGUID; if (GetElementById("a" + BookingID)) { if ((response.result.inlineDataHTML.indexOf("Unfortunately") == -1) && (response.result.availDataHTML.indexOf("error") == -1)) { GetElementById("a" + BookingID).style.display = "block"; if (!response.result.multiFlight) { GetElementById("a" + BookingID).innerHTML = response.result.availDataHTML + "<!--[CachedOfferXml]" + response.result.offerDataXML + "[/CachedOfferXml][CachedAvailXml]" + response.result.availDataXML + "[/CachedAvailXml][TimeOut]" + response.result.checkTime + "[/TimeOut][CachedMultiFlightXml]" + response.result.ukFlightDataXML + "[CachedMultiFlightXml]-->"; GetElementById("a" + BookingID).style.display = "block"; CheckHistory = GetElementById('service').innerHTML } else { GetElementById("a" + BookingID).innerHTML = ""; CheckHistory = "<div id=\"a" + BookingID + "\">" + response.result.availDataHTML + "<!--[CachedOfferXml]" + response.result.offerDataXML + "[/CachedOfferXml][CachedAvailXml]" + response.result.availDataXML + "[/CachedAvailXml][TimeOut]" + response.result.checkTime + "[/TimeOut]--></div>"; GetElementById('service').innerHTML = CheckHistory.replace('\n', '') } } else { GetElementById('service').innerHTML = CheckHistory.replace('\n', ''); GetElementById("a" + BookingID).innerHTML = ""; GetElementById("a" + BookingID).style.display = "none"; GetElementById('service').removeChild(GetElementById("a" + BookingID)) } } else { if (((response.result.inlineDataHTML.length > 0) && (response.result.inlineDataHTML.indexOf("Unfortunately") == -1) && (response.result.availDataHTML.indexOf("error") == -1)) || (response.result.multiFlight)) { if (response.result.multiFlight) { CheckHistory = "" } CheckHistory += "<div id=\"a" + BookingID + "\">" + response.result.availDataHTML + "<!--[CachedOfferXml]" + response.result.offerDataXML + "[/CachedOfferXml][CachedAvailXml]" + response.result.availDataXML + "[/CachedAvailXml][TimeOut]" + response.result.checkTime + "[/TimeOut]--></div>"; GetElementById('service').innerHTML = CheckHistory.replace('\n', '') } else if ((response.result.inlineDataHTML.length > 0) && (response.result.isdatamixOffer) && (response.result.statusCode.match("450") !== null)) { CheckHistory += "<div id=\"a" + BookingID + "\">" + response.result.availDataHTML + "<!--[CachedOfferXml]" + response.result.offerDataXML + "[/CachedOfferXml][CachedAvailXml]" + response.result.availDataXML + "[/CachedAvailXml][TimeOut]" + response.result.checkTime + "[/TimeOut]--></div>"; GetElementById('service').innerHTML = CheckHistory.replace('\n', '') } else { GetElementById('service').innerHTML = CheckHistory.replace('\n', '') } } selectedOffer = GetElementById(selectedOfferName); if (response.result.inlineDataHTML.length > 0) { PopulateInlineContent(response.result.inlineDataHTML) } else if (selectedOffer) { if (selectedOffer.hasChildNodes()) { for (i = selectedOffer.childNodes.length - 1; i >= 0; i--) { selectedOffer.removeChild(selectedOffer.childNodes.item(i)) } } PopulateInlineContent(tmpContent) } var ShowAvialDiv = false; if (GetElementById('service').hasChildNodes() && (GetElementById('service').childNodes.length > 1)) { var counter = 0; var div = GetElementById('service').childNodes; for (i = 0; i < div.length; i++) { if (div[i].nodeName != "#text") { counter++ } } if (counter <= 1) { ShowAvialDiv = false } else { ShowAvialDiv = true } } if (ShowAvialDiv) { GetElementById('service').style.visibility = "visible"; GetElementById('service').style.display = "block" } else { if (response.result.multiFlight) { try { $('#flightsLoader').remove(); if ($('#muliple-flights table').length > 0) { $('#muliple-flights table input').removeAttr('disabled') } } catch (e) { alert("Jquery Failed") } } GetElementById('service').style.visibility = "hidden"; GetElementById('service').style.display = "none" } if (window.OnAfterPriceCheck) { window.OnAfterPriceCheck(response) } } WaitForCallBack = false; if (FlightsOnly) { offerCheckCallbackFunction(response, offerGUID) } else { if ((gotoBooking) && (response.result) && (response.result.inlineDataHTML.indexOf("Unfortunately") == -1)) { var Form = GetElementById('frmIBEMainForm'); Book(BookingID, BookingOpp, "", "", ""); Form.submit() } } } function Check(bookingid, operator, airport, selectedBoard, offer, processBooking) { if (processBooking) { gotoBooking = true } else { gotoBooking = false } originalOfferIndex = 0; if ((WaitForCallBack) || (GetElementById('service') === null)) { return } if ((jsonServer === null) || (jsonServer === undefined)) { try { jsonServer = new srvIBE() } catch (e) { } } WaitForCallBack = true; var History = GetElementById("SearchHistory"); params = History.value; selectedOfferName = bookingid; selectedOffer = GetElementById(selectedOfferName); if ((CheckHistory.length === 0) && (GetElementById('service').innerHTML.indexOf("Unfortunately") == -1) && (GetElementById('service').innerHTML.indexOf("error") == -1)) { CheckHistory = GetElementById('service').innerHTML } else { GetElementById('service').innerHTML = CheckHistory } CheckFields(); if (GetElementById('SelectedOfferIndex') !== null) { GetElementById('SelectedOfferIndex').value = offer } if (GetElementById("AvailXsl") !== null) { params += "|availXsl:" + GetElementById("AvailXsl").value + "|inlineXsl:" + GetElementById("InlineXsl").value + "|listXsl:" + GetElementById("ListXsl").value } if ((params.indexOf("BookingID:") === 0) || (params.indexOf("|BookingID:") > -1)) { pair = params.substring(params.indexOf("BookingID:"), params.indexOf('|', params.indexOf("BookingID:") + 3)); params = params.replace(pair, "BookingID:" + bookingid) } else { params += "|BookingID:" + bookingid } if (params.indexOf("BookingOperator:") > -1) { pair = params.substring(params.indexOf("BookingOperator:"), params.indexOf('|', params.indexOf("BookingOperator:") + 3)); params = params.replace(pair, "BookingOperator:" + operator) } else { params += "|BookingOperator:" + operator } if (params.indexOf("BookingAirport:") > -1) { pair = params.substring(params.indexOf("BookingAirport:"), params.indexOf('|', params.indexOf("BookingAirport:") + 3)); params = params.replace(pair, "BookingAirport:" + airport) } else { params += "|BookingAirport:" + airport } if (params.indexOf("SelectedBoard:") > -1) { pair = params.substring(params.indexOf("SelectedBoard:"), params.indexOf('|', params.indexOf("SelectedBoard:") + 3)); params = params.replace(pair, "SelectedBoard:" + selectedBoard) } else { params += "|SelectedBoard:" + selectedBoard } params += "|SelectedOffer:" + offer; params += "|PageType:" + GetElementById("PageType").value; params += "|FlexiDays:" + GetElementById("FlexiDays").value; params += "|WithoutAlternatives:" + (GetElementById("WithoutAlternatives").checked ? "on" : ""); if (GetElementById("a" + bookingid)) { var offerGUID = GetElementById("a" + bookingid).innerHTML; offerGUID = offerGUID.substring(offerGUID.indexOf("&#91;OGUID&#93;") + "&#91;OGUID&#93;".length, offerGUID.indexOf("&#91;&#47;OGUID&#93;")); params += "|OfferGUID:" + offerGUID } params = params.replace(/,/g, "¬").replace(/\|/g, ","); BookingID = bookingid; BookingOpp = operator; if (selectedOffer !== null) { tmpContent = selectedOffer.innerHTML } else { tmpContent = "" } if (Wait === null) { WaitForCallBack = false; GetWaitDiv(); window.setTimeout('Check("' + bookingid + '", "' + operator + '", "' + airport + '", "' + selectedBoard + '", ' + offer + ')', 1000); return } if (selectedOffer !== null) { for (i = selectedOffer.childNodes.length - 1; i >= 0; i--) { selectedOffer.removeChild(selectedOffer.childNodes.item(i)) } for (i = 0; i < Wait.childNodes.length; i++) { selectedOffer.appendChild(Wait.childNodes.item(i).cloneNode(true)) } } jsonServer.CheckAvailability(params, UpdateContent) } function LTrim(value) { var re = /\s*((\S+\s*)*)/; return value.replace(re, "$1") } function RTrim(value) { var re = /((\s*\S+)*)\s*/; return value.replace(re, "$1") } function trim(value) { return LTrim(RTrim(value)) } function CheckMultipleFlightOffer(bookingid, operator, offer, packageID, airport, selectedBoard, ServiceCodes, IbDepartureDate, processBooking) { var initialOperator; var mfpOperator; if (processBooking) { gotoBooking = true } else { gotoBooking = false } try { mfpOperator = operator; if ((WaitForCallBack) || (GetElementById('service') === null)) { return } if ((jsonServer === null) || (jsonServer === undefined)) { try { jsonServer = new srvIBE() } catch (e) { } } WaitForCallBack = true; var History = GetElementById("SearchHistory"); params = History.value; selectedOfferName = bookingid.toString().substr(0, bookingid.toString().lastIndexOf("_")) + '_' + offer; selectedOfferName = bookingid; selectedOffer = GetElementById("selectedOfferName"); selectedOffer = GetElementById("select_" + offer); if ((CheckHistory.length === 0) && (GetElementById('service').innerHTML.indexOf("Unfortunately") == -1) && (GetElementById('service').innerHTML.indexOf("error") == -1)) { CheckHistory = GetElementById('service').innerHTML } else { GetElementById('service').innerHTML = CheckHistory } CheckFields(); if ((originalOfferIndex === 0) && (GetElementById('SelectedOfferIndex') !== null)) { originalOfferIndex = GetElementById('SelectedOfferIndex').value } params += "|OriginalOfferIndex:" + originalOfferIndex; if (GetElementById('SelectedOfferIndex') !== null) { GetElementById('SelectedOfferIndex').value = offer } if (GetElementById("AvailXsl") !== null) { params += "|availXsl:" + GetElementById("AvailXsl").value + "|inlineXsl:" + GetElementById("InlineXsl").value + "|listXsl:" + GetElementById("ListXsl").value } if ((params.indexOf("BookingID:") === 0) || (params.indexOf("|BookingID:") > -1)) { pair = params.substring(params.indexOf("BookingID:"), params.indexOf('|', params.indexOf("BookingID:") + 3)); params = params.replace(pair, "BookingID:" + selectedOfferName) } else { params += "|BookingID:" + selectedOfferName } if (params.indexOf("BookingOperator:") > -1) { pair = params.substring(params.indexOf("BookingOperator:"), params.indexOf('|', params.indexOf("BookingOperator:") + 3)); params = params.replace(pair, "BookingOperator:" + operator) } else { params += "|BookingOperator:" + operator } if (params.indexOf("BookingAirport:") > -1) { pair = params.substring(params.indexOf("BookingAirport:"), params.indexOf('|', params.indexOf("BookingAirport:") + 3)); params = params.replace(pair, "BookingAirport:" + airport) } else { params += "|BookingAirport:" + airport } if (params.indexOf("SelectedBoard:") > -1) { pair = params.substring(params.indexOf("SelectedBoard:"), params.indexOf('|', params.indexOf("SelectedBoard:") + 3)); params = params.replace(pair, "SelectedBoard:" + selectedBoard) } else { params += "|SelectedBoard:" + selectedBoard } params += "|SelectedOffer:" + offer; params += "|PageType:" + GetElementById("PageType").value; params += "|FlexiDays:" + GetElementById("FlexiDays").value; params += "|WithoutAlternatives:" + (GetElementById("WithoutAlternatives").checked ? "on" : ""); params += "|CachedOfferXml:" + GetElementById("CachedOfferXml").value; params += "|CachedAvailXml:" + GetElementById("CachedAvailXml").value; params += "|OriginalBookingID" + bookingid; if (bookingid == selectedOfferName) { params += "|MultipleFlightOffer:" + "false" } else { params += "|MultipleFlightOffer:" + "true" } params += "|ServiceCode:" + ServiceCodes; params += "|MultiFlightOfferIndex:" + offer; if ((params.indexOf("PackageID:") === 0) || (params.indexOf("|PackageID:") > -1)) { pair = params.substring(params.indexOf("PackageID:"), params.indexOf('|', params.indexOf("PackageID:") + 3)); params = params.replace(pair, "PackageID:" + packageID) } else { params += "|PackageID:" + packageID } if ((params.indexOf("mfpIbDepatureDate:") === 0) || (params.indexOf("|mfpIbDepatureDate:") > -1)) { pair = params.substring(params.indexOf("mfpIbDepatureDate:"), params.indexOf('|', params.indexOf("mfpIbDepatureDate:") + 3)); params = params.replace(pair, "mfpIbDepatureDate:" + IbDepartureDate) } else { params += "|mfpIbDepatureDate:" + IbDepartureDate } if (GetElementById("a" + bookingid)) { var offerGUID = GetElementById("a" + BookingID).innerHTML; offerGUID = offerGUID.substring(offerGUID.indexOf("&#91;OGUID&#93;") + "&#91;OGUID&#93;".length, offerGUID.indexOf("&#91;&#47;OGUID&#93;")); params += "|OfferGUID:" + offerGUID } params = params.replace(/,/g, "¬").replace(/\|/g, ","); BookingID = bookingid; BookingOpp = operator; if (selectedOffer !== null) { tmpContent = selectedOffer.innerHTML; tmpRow1 = GetElementById(selectedOffer.id).parentNode.parentNode; tmpRow2 = GetElementById(selectedOffer.id).parentNode.parentNode.nextSibling; tmpData = GetElementById(selectedOffer.id).parentNode.parentNode.innerHTML } else { tmpContent = ""; tmpRow1 = ""; tmpRow2 = "" } if (Wait === null) { WaitForCallBack = false; GetWaitDiv(); window.setTimeout('CheckMultipleFlightOffer("' + bookingid + '", "' + operator + '", "' + offer + '", "' + originalOfferOperator + '" + "' + airport + '", "' + selectedBoard + '", ' + ServiceCodes + ')', 1000); return } if (selectedOffer !== null) { var selectElement = $('#' + selectedOffer.id); var selectParent = selectElement.parent(); var divHeight = selectParent.outerHeight(); var divWidth = selectParent.parent().outerWidth(); var divOffset = selectParent.parent().offset(); var divContent = $('#flightsWait').html(); if (!divContent) { divContent = "Please wait while we check your flight" } if ($('#muliple-flights table').length > 0) { $('#muliple-flights table input').attr('disabled', 'disabled') } $('body').prepend('<div id="flightsLoader">' + divContent + '</div>'); $('#flightsLoader').css({ 'position': 'absolute', 'top': +divOffset.top + 'px', 'left': divOffset.left + 'px', 'width': divWidth + 'px', 'height': divHeight + 'px', 'z-index': '99999' }); if (divContent == "Please wait while we check your flight") { $('#flightsLoader').css({ 'background': '#ffffff', 'text-align': 'center', 'font-weight': 'bold', 'line-height': divHeight + 'px' }) } } jsonServer.checkMFPAvailability(params, UpdateContent) } catch (ex) { alert("Parameters Passed: " + bookingid, +" operator: " + operator + " Offer Index: " + offer + " Original TourOperator: " + originalOfferOperator); return } } function UpdateSearchFields(response) { if (!response.error) { GroupsList = response.result.groupsList; RegionsList = response.result.regionsList; OperatorsList = response.result.operatorsList; AllResortsList = response.result.allResortsList; ResortsList = response.result.resortsList; InitDates(); UpdateDate(); UpdateGroups(); UpdateRegions(); UpdateResorts(); UpdateOperators(); CheckFields(); CheckDuration(GetElementById("Duration")); SetSearchPage(); UpdateRegions(); if (window.OnPageLoad) { window.OnPageLoad() } } } function CheckFlightOffer(bookingid, operator, offer, TargetPageName, processBooking) { FlightsOnly = true; targetPage = TargetPageName; Check(bookingid, operator, GetElementById("DLC").value, "", offer, processBooking); return } function ChangeSearchType(searchType) { if (IBESeachType == parseInt(searchType, 10)) { return false } if ((jsonServer === null) || (jsonServer === undefined)) { try { jsonServer = new srvIBE() } catch (e) { } } if (GetElementById('SearchHistory').value.indexOf("ibeSearchType:" + IBESeachType) > -1) { GetElementById('SearchHistory').value = GetElementById('SearchHistory').value.replace("ibeSearchType:" + IBESeachType, "ibeSearchType:" + searchType) } IBESeachType = parseInt(searchType, 10); GetElementById('ibeSearchType').value = IBESeachType.toString(); GroupsList = ['0:Updating...']; RegionsList = ['0:1:Updating...']; AllResortsList = ['1:Updating...']; ResortsList = ['1:Updating...']; OperatorsList = [':Updating...']; UpdateGroups(); UpdateRegions(); UpdateResorts(); UpdateOperators(); jsonServer.ChangeSearchType(searchType, GetElementById('SessionGUID').value, UpdateSearchFields); return true }
function addjQueryReference() { if (window.jQuery === null) { var e = document.createElement("script"); e.src = "http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"; e.type = "text/javascript"; if (document.getElementsByTagName("head").length > 0) { document.getElementsByTagName("head")[0].appendChild(e) } else if (document.getElementsByTagName("body").length > 0) { var bodyTag = document.getElementsByTagName("body")[0]; if (bodyTag.hasChildNodes()) { bodyTag.insertBefore(e, bodyTag.firstChild) } else { bodyTag.appendChild(e) } } } } addjQueryReference(); var iCallID; var soapVersion = 0; var cmNamespace = "uri:IBE"; var ApplicationName = ""; var transportURI = ""; var PageID = 0; var PageName = ""; var PageNum = 0; var CheckHistory = ""; var Wait = null; var jsonServer = null; var selectedOffer = ""; var selectedOfferName = ""; var tmpContent = ""; var BookingID = ""; var BookingOpp = ""; var OffersCounter = 0; var PageSize = 0; var params; var FlightsOnly = false; var gotoBooking = false; var IBESeachType = 0; var originalOfferIndex = 0; var tmpRow1 = ""; var tmpRow2 = ""; var tmpData = ""; var my_array; var targetPage; function GetWaitDiv() { if (GetElementById('divWait') !== null) { Wait = GetElementById('divWait'); Wait.style.left = ((screen.availWidth - Wait.offsetWidth) / 3) + "px"; Wait.style.top = ((screen.availHeight - Wait.offsetHeight) / 3) + "px" } } function init() { try { jsonServer = new srvIBE() } catch (e) { } GetWaitDiv(); if (startupErrors !== null) { if (startupErrors.length > 0) { for (var i = 0; i < startupErrors.length; i++) { processError(startupErrors[i].message, startupErrors[i].url, startupErrors[i].lineNumber, startupErrors[i].snippet) } startupErrors.length = 0 } } } function PopulateContent(tmpContent) { var node = document.createElement("div"); node.innerHTML = tmpContent; for (i = 0; i < node.childNodes.length; i++) { selectedOffer.appendChild(node.childNodes.item(i).cloneNode(true)) } } function offerCheckCallbackFunction(response, offerGUID) { if (response.result.resultCode != -1) { GetElementById('FlightBookingID').value = response.result.bookingID; GetElementById('OfferGUID').value = offerGUID; GetElementById('PageNum').value = "1"; for (var i = 0; i < GetElementById('Duration').options.length; i++) { if (GetElementById('Duration').options[i].value == 6) { GetElementById('Duration').selectedIndex = i } } GetElementById('DurationDays').value = response.result.duration; GetElementById('FromDate').value = response.result.fromDate; GetElementById('ToDate').value = response.result.toDate; GetElementById('FlightDataXML').value = response.result.offerDataXML; CheckFields(); GetElementById('Target').value = targetPage; if (gotoBooking) { var Form = GetElementById('frmIBEMainForm'); var secure = GetElementById("SecureSite"); Form.action = secure.value.replace(/;/g, ':'); Form.submit() } } } function checkifSingleCell(content) { var singlecell = true; if (content.split('<td').length > 0) { var closing = 0; var nodeCount = content.split('<td').length - 1; var cnt = 0; for (i = 0; i < content.split('<td').length; i++) { if (content.split('<td')[i].split('</td>').length > 0) { if (content.split('<td')[i].replace(/ /g, '').length > 0) { cnt = cnt + 1; var inrString = content.split('<td')[i]; if (inrString.search('</td>') > 0) { closing = closing + 1 } if ((closing == cnt) && i != nodeCount) { singlecell = false } } } } } return singlecell } function PopulateInlineContent(content) { if (!selectedOffer) { return } var pos = content.indexOf("<", 0); var nodeCount = content.split('<td').length - 1; if (selectedOffer.hasChildNodes()) { for (i = selectedOffer.childNodes.length - 1; i >= 0; i--) { selectedOffer.removeChild(selectedOffer.childNodes.item(i)) } } if (selectedOffer.nodeName.toUpperCase() == "TR") { while (pos > -1) { if (content.substring(pos, pos + 4) != "<!--") { if (content.split('<td').length > 0) { if (checkifSingleCell(content)) { var startPosition = -1; var endPosition; var node = selectedOffer.insertCell(-1); if (content.split('(<td.>.</td>')[0].replace(/ /g, '').length > 0) { if (startPosition == content.split('(<td.>.</td>')[0].indexOf("class=\"", 0)) { startPosition = 0 } else { startPosition = content.split('(<td.>.</td>')[0].indexOf("class=\"", 0) + 7 } endPosition = content.split('(<td.>.</td>')[0].indexOf("\"", startPosition); if (startPosition > 0) { node.className = content.split('(<td.>.</td>')[0].substring(startPosition, endPosition) } startPosition = -1; if (startPosition == content.split('(<td.>.</td>')[0].indexOf("colspan=", 0)) { startPosition = 0 } else { startPosition = content.split('(<td.>.</td>')[0].indexOf("colspan=", 0) + 9 } endPosition = content.split('(<td.>.</td>')[0].indexOf(">", 0); var tst = content.split('(<td.>.</td>')[0].indexOf(" ", startPosition); if (tst < endPosition) { endPosition = tst } if ((startPosition > 8) && (endPosition > startPosition)) { node.colSpan = parseInt(content.split('(<td.>.</td>')[0].substring(startPosition, endPosition).replace('"', '').replace("'", ""), 10) } startPosition = content.split('(<td.>.</td>')[0].indexOf(">", endPosition) + 1; endPosition = content.toString().length - '</td>'.length; node.innerHTML = content.split('(<td.>.</td>')[0].substring(startPosition, endPosition) } } else { for (t = 0; t < content.split('<td').length; t++) { if (content.split('<td')[t].replace(/ /g, '').length > 0) { var n = selectedOffer.insertCell(-1); var pos1 = -1; if (pos1 == content.split('<td')[t].indexOf("class=\"", 0)) { pos1 = 0 } else { pos1 = content.split('<td')[t].indexOf("class=\"", 0) + 7 } var pos2 = content.split('<td')[t].indexOf("\"", pos1); if (pos1 > 0) { n.className = content.split('<td')[t].substring(pos1, pos2) } pos1 = -1; if (pos1 == content.split('<td')[t].indexOf("colspan=", 0)) { pos1 = 0 } else { pos1 = content.split('<td')[t].indexOf("colspan=", 0) + 9 } pos2 = content.split('<td')[t].indexOf(">", 0); var test = content.split('<td')[t].indexOf(" ", pos1); if (test < pos2) { pos2 = test } if ((pos1 > 8) && (pos2 > pos1)) { n.colSpan = parseInt(content.split('<td')[t].substring(pos1, pos2).replace('"', '').replace("'", ""), 10) } pos1 = content.split('<td')[t].indexOf(">", pos2) + 1; pos2 = content.split('<td')[t].indexOf("</td", pos1); n.innerHTML = content.split('<td')[t].substring(pos1, pos2) } } } } pos = -1; break } else { pos = content.indexOf("<", pos + 1) } } } else { PopulateContent(content) } } function UpdateContent(response) { var offerGUID = ''; if (response.error) { if (FlightsOnly) { GetElementById('FlightBookingID').value = BookingID } else { GetElementById('BookingID').value = BookingID } GetElementById('frmIBEMainForm').submit(); if (selectedOffer) { PopulateInlineContent(tmpContent) } } else { GetElementById('offers_list').innerHTML = response.result.offersListHTML; GetElementById("CachedOfferXml").value = response.result.offerDataXML; GetElementById("CachedAvailXml").value = response.result.availDataXML; GetElementById("txtTimeout").value = response.result.checkTime; offerGUID = response.result.offerGUID; if (GetElementById("a" + BookingID)) { if ((response.result.inlineDataHTML.indexOf("Unfortunately") == -1) && (response.result.availDataHTML.indexOf("error") == -1)) { GetElementById("a" + BookingID).style.display = "block"; if (!response.result.multiFlight) { GetElementById("a" + BookingID).innerHTML = response.result.availDataHTML + "<!--[CachedOfferXml]" + response.result.offerDataXML + "[/CachedOfferXml][CachedAvailXml]" + response.result.availDataXML + "[/CachedAvailXml][TimeOut]" + response.result.checkTime + "[/TimeOut][CachedMultiFlightXml]" + response.result.ukFlightDataXML + "[CachedMultiFlightXml]-->"; GetElementById("a" + BookingID).style.display = "block"; CheckHistory = GetElementById('service').innerHTML } else { GetElementById("a" + BookingID).innerHTML = ""; CheckHistory = "<div id=\"a" + BookingID + "\">" + response.result.availDataHTML + "<!--[CachedOfferXml]" + response.result.offerDataXML + "[/CachedOfferXml][CachedAvailXml]" + response.result.availDataXML + "[/CachedAvailXml][TimeOut]" + response.result.checkTime + "[/TimeOut]--></div>"; GetElementById('service').innerHTML = CheckHistory.replace('\n', '') } } else { GetElementById('service').innerHTML = CheckHistory.replace('\n', ''); GetElementById("a" + BookingID).innerHTML = ""; GetElementById("a" + BookingID).style.display = "none"; GetElementById('service').removeChild(GetElementById("a" + BookingID)) } } else { if (((response.result.inlineDataHTML.length > 0) && (response.result.inlineDataHTML.indexOf("Unfortunately") == -1) && (response.result.availDataHTML.indexOf("error") == -1)) || (response.result.multiFlight)) { if (response.result.multiFlight) { CheckHistory = "" } CheckHistory += "<div id=\"a" + BookingID + "\">" + response.result.availDataHTML + "<!--[CachedOfferXml]" + response.result.offerDataXML + "[/CachedOfferXml][CachedAvailXml]" + response.result.availDataXML + "[/CachedAvailXml][TimeOut]" + response.result.checkTime + "[/TimeOut]--></div>"; GetElementById('service').innerHTML = CheckHistory.replace('\n', '') } else if ((response.result.inlineDataHTML.length > 0) && (response.result.isdatamixOffer) && (response.result.statusCode.match("450") !== null)) { CheckHistory += "<div id=\"a" + BookingID + "\">" + response.result.availDataHTML + "<!--[CachedOfferXml]" + response.result.offerDataXML + "[/CachedOfferXml][CachedAvailXml]" + response.result.availDataXML + "[/CachedAvailXml][TimeOut]" + response.result.checkTime + "[/TimeOut]--></div>"; GetElementById('service').innerHTML = CheckHistory.replace('\n', '') } else { GetElementById('service').innerHTML = CheckHistory.replace('\n', '') } } selectedOffer = GetElementById(selectedOfferName); if (response.result.inlineDataHTML.length > 0) { PopulateInlineContent(response.result.inlineDataHTML) } else if (selectedOffer) { if (selectedOffer.hasChildNodes()) { for (i = selectedOffer.childNodes.length - 1; i >= 0; i--) { selectedOffer.removeChild(selectedOffer.childNodes.item(i)) } } PopulateInlineContent(tmpContent) } var ShowAvialDiv = false; if (GetElementById('service').hasChildNodes() && (GetElementById('service').childNodes.length > 1)) { var counter = 0; var div = GetElementById('service').childNodes; for (i = 0; i < div.length; i++) { if (div[i].nodeName != "#text") { counter++ } } if (counter <= 1) { ShowAvialDiv = false } else { ShowAvialDiv = true } } if (ShowAvialDiv) { GetElementById('service').style.visibility = "visible"; GetElementById('service').style.display = "block" } else { if (response.result.multiFlight) { try { $('#flightsLoader').remove(); if ($('#muliple-flights table').length > 0) { $('#muliple-flights table input').removeAttr('disabled') } } catch (e) { alert("Jquery Failed") } } GetElementById('service').style.visibility = "hidden"; GetElementById('service').style.display = "none" } if (window.OnAfterPriceCheck) { window.OnAfterPriceCheck(response) } } WaitForCallBack = false; if (FlightsOnly) { offerCheckCallbackFunction(response, offerGUID) } else { if ((gotoBooking) && (response.result) && (response.result.inlineDataHTML.indexOf("Unfortunately") == -1)) { var Form = GetElementById('frmIBEMainForm'); Book(BookingID, BookingOpp, "", "", ""); Form.submit() } } } function Check(bookingid, operator, airport, selectedBoard, offer, processBooking) { if (processBooking) { gotoBooking = true } else { gotoBooking = false } originalOfferIndex = 0; if ((WaitForCallBack) || (GetElementById('service') === null)) { return } if ((jsonServer === null) || (jsonServer === undefined)) { try { jsonServer = new srvIBE() } catch (e) { } } WaitForCallBack = true; var History = GetElementById("SearchHistory"); params = History.value; selectedOfferName = bookingid; selectedOffer = GetElementById(selectedOfferName); if ((CheckHistory.length === 0) && (GetElementById('service').innerHTML.indexOf("Unfortunately") == -1) && (GetElementById('service').innerHTML.indexOf("error") == -1)) { CheckHistory = GetElementById('service').innerHTML } else { GetElementById('service').innerHTML = CheckHistory } CheckFields(); if (GetElementById('SelectedOfferIndex') !== null) { GetElementById('SelectedOfferIndex').value = offer } if (GetElementById("AvailXsl") !== null) { params += "|availXsl:" + GetElementById("AvailXsl").value + "|inlineXsl:" + GetElementById("InlineXsl").value + "|listXsl:" + GetElementById("ListXsl").value } if ((params.indexOf("BookingID:") === 0) || (params.indexOf("|BookingID:") > -1)) { pair = params.substring(params.indexOf("BookingID:"), params.indexOf('|', params.indexOf("BookingID:") + 3)); params = params.replace(pair, "BookingID:" + bookingid) } else { params += "|BookingID:" + bookingid } if (params.indexOf("BookingOperator:") > -1) { pair = params.substring(params.indexOf("BookingOperator:"), params.indexOf('|', params.indexOf("BookingOperator:") + 3)); params = params.replace(pair, "BookingOperator:" + operator) } else { params += "|BookingOperator:" + operator } if (params.indexOf("BookingAirport:") > -1) { pair = params.substring(params.indexOf("BookingAirport:"), params.indexOf('|', params.indexOf("BookingAirport:") + 3)); params = params.replace(pair, "BookingAirport:" + airport) } else { params += "|BookingAirport:" + airport } if (params.indexOf("SelectedBoard:") > -1) { pair = params.substring(params.indexOf("SelectedBoard:"), params.indexOf('|', params.indexOf("SelectedBoard:") + 3)); params = params.replace(pair, "SelectedBoard:" + selectedBoard) } else { params += "|SelectedBoard:" + selectedBoard } params += "|SelectedOffer:" + offer; params += "|PageType:" + GetElementById("PageType").value; params += "|FlexiDays:" + GetElementById("FlexiDays").value; params += "|WithoutAlternatives:" + (GetElementById("WithoutAlternatives").checked ? "on" : ""); if (GetElementById("a" + bookingid)) { var offerGUID = GetElementById("a" + bookingid).innerHTML; offerGUID = offerGUID.substring(offerGUID.indexOf("&#91;OGUID&#93;") + "&#91;OGUID&#93;".length, offerGUID.indexOf("&#91;&#47;OGUID&#93;")); params += "|OfferGUID:" + offerGUID } params = params.replace(/,/g, "¬").replace(/\|/g, ","); BookingID = bookingid; BookingOpp = operator; if (selectedOffer !== null) { tmpContent = selectedOffer.innerHTML } else { tmpContent = "" } if (Wait === null) { WaitForCallBack = false; GetWaitDiv(); window.setTimeout('Check("' + bookingid + '", "' + operator + '", "' + airport + '", "' + selectedBoard + '", ' + offer + ')', 1000); return } if (selectedOffer !== null) { for (i = selectedOffer.childNodes.length - 1; i >= 0; i--) { selectedOffer.removeChild(selectedOffer.childNodes.item(i)) } for (i = 0; i < Wait.childNodes.length; i++) { selectedOffer.appendChild(Wait.childNodes.item(i).cloneNode(true)) } } jsonServer.CheckAvailability(params, UpdateContent) } function LTrim(value) { var re = /\s*((\S+\s*)*)/; return value.replace(re, "$1") } function RTrim(value) { var re = /((\s*\S+)*)\s*/; return value.replace(re, "$1") } function trim(value) { return LTrim(RTrim(value)) } function CheckMultipleFlightOffer(bookingid, operator, offer, packageID, airport, selectedBoard, ServiceCodes, IbDepartureDate, processBooking) { var initialOperator; var mfpOperator; if (processBooking) { gotoBooking = true } else { gotoBooking = false } try { mfpOperator = operator; if ((WaitForCallBack) || (GetElementById('service') === null)) { return } if ((jsonServer === null) || (jsonServer === undefined)) { try { jsonServer = new srvIBE() } catch (e) { } } WaitForCallBack = true; var History = GetElementById("SearchHistory"); params = History.value; selectedOfferName = bookingid.toString().substr(0, bookingid.toString().lastIndexOf("_")) + '_' + offer; selectedOfferName = bookingid; selectedOffer = GetElementById("selectedOfferName"); selectedOffer = GetElementById("select_" + offer); if ((CheckHistory.length === 0) && (GetElementById('service').innerHTML.indexOf("Unfortunately") == -1) && (GetElementById('service').innerHTML.indexOf("error") == -1)) { CheckHistory = GetElementById('service').innerHTML } else { GetElementById('service').innerHTML = CheckHistory } CheckFields(); if ((originalOfferIndex === 0) && (GetElementById('SelectedOfferIndex') !== null)) { originalOfferIndex = GetElementById('SelectedOfferIndex').value } params += "|OriginalOfferIndex:" + originalOfferIndex; if (GetElementById('SelectedOfferIndex') !== null) { GetElementById('SelectedOfferIndex').value = offer } if (GetElementById("AvailXsl") !== null) { params += "|availXsl:" + GetElementById("AvailXsl").value + "|inlineXsl:" + GetElementById("InlineXsl").value + "|listXsl:" + GetElementById("ListXsl").value } if ((params.indexOf("BookingID:") === 0) || (params.indexOf("|BookingID:") > -1)) { pair = params.substring(params.indexOf("BookingID:"), params.indexOf('|', params.indexOf("BookingID:") + 3)); params = params.replace(pair, "BookingID:" + selectedOfferName) } else { params += "|BookingID:" + selectedOfferName } if (params.indexOf("BookingOperator:") > -1) { pair = params.substring(params.indexOf("BookingOperator:"), params.indexOf('|', params.indexOf("BookingOperator:") + 3)); params = params.replace(pair, "BookingOperator:" + operator) } else { params += "|BookingOperator:" + operator } if (params.indexOf("BookingAirport:") > -1) { pair = params.substring(params.indexOf("BookingAirport:"), params.indexOf('|', params.indexOf("BookingAirport:") + 3)); params = params.replace(pair, "BookingAirport:" + airport) } else { params += "|BookingAirport:" + airport } if (params.indexOf("SelectedBoard:") > -1) { pair = params.substring(params.indexOf("SelectedBoard:"), params.indexOf('|', params.indexOf("SelectedBoard:") + 3)); params = params.replace(pair, "SelectedBoard:" + selectedBoard) } else { params += "|SelectedBoard:" + selectedBoard } params += "|SelectedOffer:" + offer; params += "|PageType:" + GetElementById("PageType").value; params += "|FlexiDays:" + GetElementById("FlexiDays").value; params += "|WithoutAlternatives:" + (GetElementById("WithoutAlternatives").checked ? "on" : ""); params += "|CachedOfferXml:" + GetElementById("CachedOfferXml").value; params += "|CachedAvailXml:" + GetElementById("CachedAvailXml").value; params += "|OriginalBookingID" + bookingid; if (bookingid == selectedOfferName) { params += "|MultipleFlightOffer:" + "false" } else { params += "|MultipleFlightOffer:" + "true" } params += "|ServiceCode:" + ServiceCodes; params += "|MultiFlightOfferIndex:" + offer; if ((params.indexOf("PackageID:") === 0) || (params.indexOf("|PackageID:") > -1)) { pair = params.substring(params.indexOf("PackageID:"), params.indexOf('|', params.indexOf("PackageID:") + 3)); params = params.replace(pair, "PackageID:" + packageID) } else { params += "|PackageID:" + packageID } if ((params.indexOf("mfpIbDepartureDate:") === 0) || (params.indexOf("|mfpIbDepartureDate:") > -1)) { pair = params.substring(params.indexOf("mfpIbDepartureDate:"), params.indexOf('|', params.indexOf("mfpIbDepartureDate:") + 3)); params = params.replace(pair, "mfpIbDepartureDate:" + IbDepartureDate) } else { params += "|mfpIbDepartureDate:" + IbDepartureDate } if (GetElementById("a" + bookingid)) { var offerGUID = GetElementById("a" + BookingID).innerHTML; offerGUID = offerGUID.substring(offerGUID.indexOf("&#91;OGUID&#93;") + "&#91;OGUID&#93;".length, offerGUID.indexOf("&#91;&#47;OGUID&#93;")); params += "|OfferGUID:" + offerGUID } params = params.replace(/,/g, "¬").replace(/\|/g, ","); BookingID = bookingid; BookingOpp = operator; if (selectedOffer !== null) { tmpContent = selectedOffer.innerHTML; tmpRow1 = GetElementById(selectedOffer.id).parentNode.parentNode; tmpRow2 = GetElementById(selectedOffer.id).parentNode.parentNode.nextSibling; tmpData = GetElementById(selectedOffer.id).parentNode.parentNode.innerHTML } else { tmpContent = ""; tmpRow1 = ""; tmpRow2 = "" } if (Wait === null) { WaitForCallBack = false; GetWaitDiv(); window.setTimeout('CheckMultipleFlightOffer("' + bookingid + '", "' + operator + '", "' + offer + '", "' + originalOfferOperator + '" + "' + airport + '", "' + selectedBoard + '", ' + ServiceCodes + ')', 1000); return } if (selectedOffer !== null) { var selectElement = $('#' + selectedOffer.id); var selectParent = selectElement.parent(); var divHeight = selectParent.outerHeight(); var divWidth = selectParent.parent().outerWidth(); var divOffset = selectParent.parent().offset(); var divContent = $('#flightsWait').html(); if (!divContent) { divContent = "Please wait while we check your flight" } if ($('#muliple-flights table').length > 0) { $('#muliple-flights table input').attr('disabled', 'disabled') } $('body').prepend('<div id="flightsLoader">' + divContent + '</div>'); $('#flightsLoader').css({ 'position': 'absolute', 'top': +divOffset.top + 'px', 'left': divOffset.left + 'px', 'width': divWidth + 'px', 'height': divHeight + 'px', 'z-index': '99999' }); if (divContent == "Please wait while we check your flight") { $('#flightsLoader').css({ 'background': '#ffffff', 'text-align': 'center', 'font-weight': 'bold', 'line-height': divHeight + 'px' }) } } jsonServer.checkMFPAvailability(params, UpdateContent) } catch (ex) { alert("Parameters Passed: " + bookingid, +" operator: " + operator + " Offer Index: " + offer + " Original TourOperator: " + originalOfferOperator); return } } function UpdateSearchFields(response) { if (!response.error) { GroupsList = response.result.groupsList; RegionsList = response.result.regionsList; OperatorsList = response.result.operatorsList; AllResortsList = response.result.allResortsList; ResortsList = response.result.resortsList; InitDates(); UpdateDate(); UpdateGroups(); UpdateRegions(); UpdateResorts(); UpdateOperators(); CheckFields(); CheckDuration(GetElementById("Duration")); SetSearchPage(); UpdateRegions(); if (window.OnPageLoad) { window.OnPageLoad() } } } function CheckFlightOffer(bookingid, operator, offer, TargetPageName, processBooking) { FlightsOnly = true; targetPage = TargetPageName; Check(bookingid, operator, GetElementById("DLC").value, "", offer, processBooking); return } function ChangeSearchType(searchType) { if (IBESeachType == parseInt(searchType, 10)) { return false } if ((jsonServer === null) || (jsonServer === undefined)) { try { jsonServer = new srvIBE() } catch (e) { } } if (GetElementById('SearchHistory').value.indexOf("ibeSearchType:" + IBESeachType) > -1) { GetElementById('SearchHistory').value = GetElementById('SearchHistory').value.replace("ibeSearchType:" + IBESeachType, "ibeSearchType:" + searchType) } IBESeachType = parseInt(searchType, 10); GetElementById('ibeSearchType').value = IBESeachType.toString(); GroupsList = ['0:Updating...']; RegionsList = ['0:1:Updating...']; AllResortsList = ['1:Updating...']; ResortsList = ['1:Updating...']; OperatorsList = [':Updating...']; UpdateGroups(); UpdateRegions(); UpdateResorts(); UpdateOperators(); jsonServer.ChangeSearchType(searchType, GetElementById('SessionGUID').value, UpdateSearchFields); return true }