﻿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&&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,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(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}