var rezSmart;if (!rezSmart || !rezSmart.DOMFunctions) throw new Error('rezSmart library not loaded. Add scripts/rzs-library.js to correct this error.');if (!rezSmart.GUI) rezSmart.GUI = {version:'1.0',author:'Ben Tupper',initializeGUI: function(_parentId){var rzsDOM = rezSmart.DOMFunctions; rzsDOM.runOnDOMLoaded(function(){rezSmart.GUI.bldr.buildGUI(_parentId);rezSmart.GUI.loadGUIState();});},loadGUIState: function(){var inputs = rezSmart.DOMFunctions.getByTag('input');var selects = rezSmart.DOMFunctions.getByTag('select'); var id;var oStateHook = rezSmart.DOMFunctions.getById('extGuiHook') || rezSmart.DOMFunctions.getById('extGuiHook2');if (!oStateHook){var guiState = rezSmart.Util.readObjectCookie('guiState'); if (typeof(guiState) == 'undefined'){rezSmart.Util.slrbv(rezSmart.GUI.Settings.tripTypesDefault,rezSmart.DOMFunctions.getById('pTripType'));rezSmart.GUI.lcol.smcl(2);} else {rezSmart.Util.slrbv(guiState['tripTypeValue'],rezSmart.DOMFunctions.getById('pTripType'));rezSmart.GUI.lcol.smcl(guiState['legsShown']);for (i=0; i<inputs.length; i++){if (inputs[i].type != 'hidden'){id = inputs[i].id;if (guiState[id]){if (guiState[id] != 'undefined') inputs[i].value = guiState[id]; };};};for (i=0; i<selects.length; i++){id = selects[i].id;if (guiState[id]){if (guiState[id] != 'undefined') selects[i].selectedIndex = guiState[id];};};};} else {var arrInpIds = new Array('tbDepart0','tbDest0','tbDepartDate0','tbReturnDate0','tbDepart1','tbDest1','tbDepartDate1','tbDepart2','tbDest2','tbDepartDate2','tbDepart3','tbDest3','tbDepartDate3','tbAirline');var arrSelIds = new Array('slDepartDateTime0','slReturnDateTime0','slDepartDateTime1','slDepartDateTime2','slDepartDateTime3','slAdult','slChild','slInfant','slCabinPreference','slFareType');var arr = oStateHook.value.split('|');var tt = arr[0];if (tt == 'roundTrip'){tt = '0';} else if (tt == 'oneWay') {tt = '1';} else if (tt == 'openJaw' && arr[2] != '1'){tt = '2';} else {tt = '3';};rezSmart.Util.slrbv(tt,rezSmart.DOMFunctions.getById('pTripType'));if (arr[1] != -1){rezSmart.GUI.lcol.smcl(parseInt(arr[1]) + 3);} else {rezSmart.GUI.lcol.smcl(2);}; var iSelPos;for (iSelPos = 0; iSelPos<arr.length; iSelPos++){if (arr[iSelPos] == 'SEL')break;};var o;for (var i=3; i<iSelPos; i++){o = rezSmart.DOMFunctions.getById(arrInpIds[i-3]);if (o && arr[i] != ''){o.value = arr[i];}; };var k=0;iSelPos++;for (var i=iSelPos; i<arr.length; i++){o = rezSmart.DOMFunctions.getById(arrSelIds[k]);if (o && arr[i] != ''){rezSmart.Util.soby(arr[i],o);};k++; }; rezSmart.GUI.lcol.uptd();};if (rezSmart.GUI.Settings.DefaultOrigin && rezSmart.GUI.Settings.DefaultOrigin.length > 0){rezSmart.GUI.lcol.items[0].origin().value = rezSmart.GUI.Settings.DefaultOrigin;}; if (rezSmart.GUI.Settings.DefaultDestination && rezSmart.GUI.Settings.DefaultDestination.length > 0){rezSmart.GUI.lcol.items[0].destination().value = rezSmart.GUI.Settings.DefaultDestination;};if (typeof(Request) != 'undefined'){if (typeof(Request.QueryString.Item('origin')) != 'undefined'){rezSmart.GUI.lcol.items[0].origin().value = Request.QueryString.Item('origin');};if (typeof(Request.QueryString.Item('destination')) != 'undefined'){rezSmart.GUI.lcol.items[0].destination().value = Request.QueryString.Item('destination');}; }; rezSmart.GUI.Events.onTripTypeChange();rezSmart.GUI.lcol.syncLegDatesOnDemand(); },saveGUIState: function(){var o = new Object();var inputs = rezSmart.DOMFunctions.getByTag('input');var selects = rezSmart.DOMFunctions.getByTag('select');var id,value;var i=0;var expireTime = rezSmart.GUI.Settings.guiStateTimeout ? rezSmart.GUI.Settings.guiStateTimeout:10;o['tripTypeValue'] = rezSmart.Util.gselr(rezSmart.DOMFunctions.getById('pTripType')).value;o['legsShown'] = rezSmart.GUI.lcol.gmcl();for (i=0; i<inputs.length; i++){if (inputs[i].type != 'hidden'){id = inputs[i].id;value = inputs[i].value;o[id] = value;};}; for (i=0; i<selects.length; i++){id = selects[i].id;value = selects[i].selectedIndex;o[id] = value;}; rezSmart.Util.writeObjectCookie('guiState',o,expireTime); }, changeMode: function(_mode){var rzsDOM = rezSmart.DOMFunctions;var mode = parseInt(_mode);var legs = rezSmart.GUI.lcol; switch(mode){case 0:legs.items[0].setReturnDisplay('');legs.showLegs(1,true);break;case 1:legs.items[0].setReturnDisplay('none');legs.showLegs(1,true);break; case 2:legs.items[0].setReturnDisplay('none');legs.showLegs(2,true);break;case 3:legs.items[0].setReturnDisplay('none');legs.showLegs(legs.gmcl(),false);break;}; rezSmart.GUI.saveGUIState();},showSearchAnimation: function(_cntxt){var flashText = '<!--[if !IE]> -->' +'<object type="application/x-shockwave-flash" data="' + rezSmart.GUI.Settings.searchingAnimation + '" width="' + rezSmart.GUI.Settings.animationWidth + '" height="' + rezSmart.GUI.Settings.animationHeight + '">' +'<!-- <![endif]-->' +'<!--[if IE]>' +'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" ' +'width="' + rezSmart.GUI.Settings.animationWidth + '" height="' + rezSmart.GUI.Settings.animationHeight + '">' +'<param name="movie" value="' + rezSmart.GUI.Settings.searchingAnimation + '"/>' +'<!-->' +'<!---->' +'<param name="loop" value="true" />' +'<param name="menu" value="false" />' +'<p>Searching For Low Airfares!!!</p>' +'</object>' +'<!-- <![endif]-->'; var nd = rezSmart.DOMFunctions.createElement('div');nd.className = 'divSearching';rezSmart.DOMFunctions.apel(nd,flashText);nd.style.display = 'block';rezSmart.DOMFunctions.apel(_cntxt,nd); },showMessage: function(_message,_replacement){var msg = typeof(_replacement) != 'undefined' && _replacement.length > 0 ? rezSmart.Util.fstr(_message,_replacement) : _message;if (msg) alert(msg);}};if (!rezSmart.GUI.Events) rezSmart.GUI.Events = {onTripTypeChange: function(){var radio;radio = rezSmart.Util.gselr(rezSmart.DOMFunctions.getById('pTripType'));if (radio){rezSmart.GUI.changeMode(radio.value);};},onSearchClick: function(){var rzsDOM = rezSmart.DOMFunctions;var frm = rzsDOM.getById('rzsGui');var tt = rezSmart.Util.gselr().value;function _gmv(_controlName,_isDate,_isSelect,_defaultValue){if (!_controlName) return '';var nd = rzsDOM.getById(_controlName);if (typeof _defaultValue == 'undefined')_defaultValue = '';if (!nd) return _defaultValue;if (_isSelect){return nd.options[nd.selectedIndex].value; } else {return nd.value;};};if (tt == '0'){tt = 'roundTrip';} else if (tt == '1') {tt = 'oneWay';} else {tt = 'openJaw';};var toRemove = rzsDOM.getByTag('input',frm);for (var i=toRemove.length-1; i>=0; i--){if (toRemove[i].type == 'hidden') rzsDOM.removeElement(toRemove[i]);};if (rezSmart.DOMFunctions.getById('sid')){rzsDOM.apel(frm,'<input type="hidden" name="sid" value="' + rezSmart.DOMFunctions.getById('sid').value + '"/>');}; rzsDOM.apel(frm,'<input type="hidden" name="aid" value="' + rezSmart.GUI.Settings.siteId + '"/>');rzsDOM.apel(frm,'<input type="hidden" name="radTripType" value="' + tt + '"/>');rzsDOM.apel(frm,'<input type="hidden" name="ext" value="true"/>');rzsDOM.apel(frm,'<input type="hidden" name="txtDepart1" value="' + _gmv('tbDepart0') + '"/>');rzsDOM.apel(frm,'<input type="hidden" name="txtDest1" value="' + _gmv('tbDest0') + '"/>');rzsDOM.apel(frm,'<input type="hidden" name="txtDepartOn1" value="' + _gmv('tbDepartDate0',true) + '"/>');rzsDOM.apel(frm,'<input type="hidden" name="ddlDepartOnTime1" value="' + _gmv('slDepartDateTime0',false,true) + '"/>');rzsDOM.apel(frm,'<input type="hidden" name="txtReturnOn" value="' + _gmv('tbReturnDate0',true) + '"/>');rzsDOM.apel(frm,'<input type="hidden" name="ddlReturnOnTime" value="' + _gmv('slReturnDateTime0',false,true) + '"/>');rzsDOM.apel(frm,'<input type="hidden" name="txtDepart2" value="' + _gmv('tbDepart1') + '"/>');rzsDOM.apel(frm,'<input type="hidden" name="txtDest2" value="' + _gmv('tbDest1') + '"/>');rzsDOM.apel(frm,'<input type="hidden" name="txtDepartOn2" value="' + _gmv('tbDepartDate1',true) + '"/>');rzsDOM.apel(frm,'<input type="hidden" name="ddlDepartOnTime2" value="' + _gmv('slDepartDateTime1',false,true) + '"/>');rzsDOM.apel(frm,'<input type="hidden" name="txtDepart3" value="' + _gmv('tbDepart2') + '"/>');rzsDOM.apel(frm,'<input type="hidden" name="txtDest3" value="' + _gmv('tbDest2') + '"/>');rzsDOM.apel(frm,'<input type="hidden" name="txtDepartOn3" value="' + _gmv('tbDepartDate2',true) + '"/>');rzsDOM.apel(frm,'<input type="hidden" name="ddlDepartOnTime3" value="' + _gmv('slDepartDateTime2',false,true) + '"/>');rzsDOM.apel(frm,'<input type="hidden" name="txtDepart4" value="' + _gmv('tbDepart3') + '"/>');rzsDOM.apel(frm,'<input type="hidden" name="txtDest4" value="' + _gmv('tbDest3') + '"/>');rzsDOM.apel(frm,'<input type="hidden" name="txtDepartOn4" value="' + _gmv('tbDepartDate3',true) + '"/>');rzsDOM.apel(frm,'<input type="hidden" name="ddlDepartOnTime4" value="' + _gmv('slDepartDateTime3',false,true) + '"/>');rzsDOM.apel(frm,'<input type="hidden" name="selNumberOfAdults" value="' + _gmv('slAdult',false,true) + '"/>');rzsDOM.apel(frm,'<input type="hidden" name="selNumberOfChildren" value="' + _gmv('slChild',false,true) + '"/>');rzsDOM.apel(frm,'<input type="hidden" name="selNumberOfInfants" value="' + _gmv('slInfant',false,true) + '"/>'); rzsDOM.apel(frm,'<input type="hidden" name="selCabinPref" value="' + _gmv('slCabinPreference',false,true,2) + '"/>');rzsDOM.apel(frm,'<input type="hidden" name="ddlFareType" value="' + _gmv('slFareType',false,true,11) + '"/>');rzsDOM.apel(frm,'<input type="hidden" name="txtAirline" value="' + _gmv('tbAirline') + '"/>');if (rezSmart.GUI.Settings.engineMode == 'B2B'){rzsDOM.apel(frm,'<input type="hidden" name="cac" value="true"/>');};var value = rezSmart.GUI.lcol.gmcl();if (value == 3){rzsDOM.apel(frm,'<input type="hidden" name="numOfAddCities" value="0"/>');} else if (value > 3){value = value - 3;rzsDOM.apel(frm,'<input type="hidden" name="numOfAddCities" value="' + value + '"/>');} else {rzsDOM.apel(frm,'<input type="hidden" name="numOfAddCities" value="-1"/>');};if (rezSmart.Util.gselr(rezSmart.DOMFunctions.getById('pTripType')).value == 3){rzsDOM.apel(frm,'<input type="hidden" name="isMC" value="1"/>');} else {rzsDOM.apel(frm,'<input type="hidden" name="isMC" value="0"/>');};if (rezSmart.GUI.Validation.submitValidate()){frm.style.display = 'none';rezSmart.GUI.showSearchAnimation(frm.parentNode);rezSmart.GUI.saveGUIState();frm.submit();};}};if (!rezSmart.GUI.Settings) rezSmart.GUI.Settings = {version:'1.0',author:'Ben Tupper'};if (!rezSmart.GUI.bldr) rezSmart.GUI.bldr = {buildGUI: function(_parentId){ var rzsDOM = rezSmart.DOMFunctions; var rzsBldr = rezSmart.GUI.bldr;var ndRoot = rzsDOM.crel('form',{action:rezSmart.GUI.Settings.postAction,method:'post',id:'rzsGui','class':rezSmart.GUI.Settings.layout}); var ndBox,ndFs,nd,ndTT;var mode = rezSmart.GUI.Settings.tripTypesDefault;if (ndRoot && ndRoot.nodeType == 1){ndBox = rzsBldr.makeBox(); if (ndBox){ndFs = rzsDOM.getLastElement(ndBox);if (ndFs && ndFs.nodeType == 1){ndTT = rzsBldr.makeTripTypes();rzsDOM.apel(ndFs,ndTT); for (var i=0; i<rezSmart.GUI.Settings.maxLegs; i++){if (i == 0){rezSmart.GUI.lcol.createLeg(true,false); } else if (i == 1){rezSmart.GUI.lcol.createLeg(false,true); } else {rezSmart.GUI.lcol.createLeg(false,false); };};rezSmart.GUI.lcol.attachAddRemove(1);rezSmart.GUI.lcol.renderLegs(ndFs); nd = rzsBldr.makePaxTypes();rzsDOM.apel(ndFs,nd);nd = rzsBldr.makeSearchSettings();rzsDOM.apel(ndFs,nd);nd = rzsBldr.makeSearchButton();rzsDOM.apel(ndFs,nd);};}; ndRoot.appendChild(ndBox);if (_parentId){rzsDOM.apel(rzsDOM.getById(_parentId),ndRoot);} else {document.body.appendChild(ndRoot);};rezSmart.GUI.calendar = new rezSmart.Widgets.calendar(); }; },makeBox: function(){ var rzsDOM = rezSmart.DOMFunctions; var ndBox = rzsDOM.crel('div',{'class':'rzsGuiBottomLeft'});rzsDOM.apel(ndBox,'<div class="rzsGuiBottomRight">');rzsDOM.apel(rzsDOM.getLastChild(ndBox),'<div class="rzsGuiTopLeft">');rzsDOM.apel(rzsDOM.getLastElement(ndBox),'<fieldset id="fsSearchRequest" class="rzsGuiTopRight">');return ndBox},makeTripTypes: function(){var rzsDOM = rezSmart.DOMFunctions;var ndTripType = rzsDOM.crel('p',{id:'pTripType'});var arrBuf;var lbl,s;var ndInput;if (!rezSmart.GUI.Settings.tripTypes){throw new Error('tripTypes are not defined');return; };arrBuf = rezSmart.GUI.Settings.tripTypes; for (var i=0; i<arrBuf.length; i++){lbl = rzsDOM.crelText('label',{id:'lblTT' + i});s = '<input id="rdTT' + i + '" type="radio" name="rdTripType" value="' + arrBuf[i][1] + '"/>'; rzsDOM.apel(lbl,s);ndInput = lbl.firstChild;rezSmart.Util.addEvent(ndInput,'click',rezSmart.GUI.Events.onTripTypeChange);rzsDOM.appendText(lbl,arrBuf[i][0]); ndTripType.appendChild(lbl); };return ndTripType;}, travelLegCollection: function(){var rzsDOM = rezSmart.DOMFunctions;var rzsSettings = rezSmart.GUI.Settings;var _legs = new Array();var _mcLegs = 0;var _ndAddRemove,_ndAdd,_ndRemove,_ndARSep;var _addRemoveDisplay;var _seedDate = new Date();function _createAddRemove(){ var nd = rzsDOM.crel('p',{id:'pAddRemoveLeg'});_ndAdd = rzsDOM.crelText('span',{id:'spAddLeg'},rezSmart.GUI.Settings.addLegText);rezSmart.Util.addEvent(_ndAdd,'click',_onShowNextLeg);rzsDOM.apel(nd,_ndAdd);_ndARSep = rzsDOM.crelText('span',{id:'spARSep'},' | ');rzsDOM.apel(nd,_ndARSep);_ndRemove = rzsDOM.crelText('span',{id:'spRemoveLeg'},rezSmart.GUI.Settings.removeLegText);rezSmart.Util.addEvent(_ndRemove,'click',_onHideCurrentLeg);rzsDOM.apel(nd,_ndRemove);return nd;};function _moveAddRemove(_moveToLeg,_hide){var max = rezSmart.GUI.Settings.maxLegs;if (_hide && _hide == true){_ndAddRemove.style.display = 'none';return;} else {_ndAddRemove.style.display = '';};if (!_moveToLeg) return;if (_mcLegs == max){_ndAdd.style.display = 'none';_ndARSep.style.display = 'none';_ndRemove.style.display = '';} else if (_mcLegs == 2){_ndAdd.style.display = '';_ndRemove.style.display = 'none';_ndARSep.style.display = 'none';} else {_ndAdd.style.display = '';_ndRemove.style.display = '';_ndARSep.style.display = '';};rzsDOM.removeElement(_ndAddRemove);rzsDOM.apel(_moveToLeg.myNode(),_ndAddRemove);};function _onShowNextLeg(){_mcLegs++;_showLeg(_mcLegs-1);};function _showLeg(_index,_hideAddRemove){_legs[_index].show();_moveAddRemove(_legs[_index],_hideAddRemove);};function _onHideCurrentLeg(){_mcLegs--;_hideLeg(_mcLegs);};function _hideLeg(_index,_hideAddRemove,_ignoreAddRemove){_legs[_index].hide();if (!_ignoreAddRemove || _ignoreAddRemove == false)_moveAddRemove(_legs[_index-1],_hideAddRemove);};this.legCount = function(){return _legs.length};this.gmcl = function(){return _mcLegs};this.smcl = function(_value){_mcLegs = _value;return _mcLegs};this.items = _legs;this.createLeg = function(_hasReturn,_includeAddRemove){if (_legs.length > 0) _seedDate = rezSmart.Util.caltd(_legs[0].departureDate().value,rezSmart.GUI.Settings.travelDateFormat);var leg = new rezSmart.GUI.bldr.travelLeg(this,_legs.length,_hasReturn,_includeAddRemove,_seedDate);var prevLeg;if (_legs.length > 0){prevLeg = _legs[_legs.length - 1];prevLeg.gsNextLeg(leg);leg.gsPreviousLeg(prevLeg);}; _legs[_legs.length] = leg;return leg;};this.removeByLeg = function(_leg){for (var i=0; i<_legs.length; i++){if (_legs[i] === _leg){_legs.splice(i,1);break;};};};this.removeByIndex = function(_index){_legs.splice(_index,1);}; this.renderLegs = function(_cntxtent){for (var i=0; i<_legs.length; i++) _legs[i].render(_cntxtent);}; this.attachAddRemove = function(_attachToIndex){_ndAddRemove = _createAddRemove();if (_ndAddRemove){if (_legs[_attachToIndex]){_ndARSep.style.display = 'none';_ndRemove.style.display = 'none';rzsDOM.apel(_legs[_attachToIndex].myNode(),_ndAddRemove);};};};this.hideLegs = function(_startIndex){for (var i=_legs.length-1; i>=0; i--){if (i >= _startIndex){_legs[i].hide();} else {_legs[i].show();};};};this.showLegs = function(_count,_hideAddRemove){ for (var i=0; i<_legs.length; i++){if (i < _count){_showLeg(i,_hideAddRemove);} else {_hideLeg(i,_hideAddRemove,true);};};}; this.syncLegDatesOnDemand = function(){for (var i=0; i<_legs.length; i++){_legs[i].syncDateControls();}; };this.verifyAirports = function(){for (var i=0; i<_legs.length; i++){_legs[i].checkAirports();};};this.uptd = function(){var curDate;var nextDate;var nd = _legs[0]; var tdf = rezSmart.GUI.Settings.travelDateFormat;if (nd.hasReturn){nextDate = rzsUtil.caltd(nd.returnDate().value,tdf);curDate = rzsUtil.caltd(nd.departureDate().value,tdf); if(rzsUtil.compareDates(curDate,nextDate) == 1){nextDate = rzsUtil.addDays(curDate,rezSmart.GUI.Settings.nextDateOffset);nextDate = rzsUtil.fdts(nextDate,tdf);nd.returnDate().value = nextDate;nd.syncDateControls(true);};}; while (nd.gsNextLeg()){nextDate = rzsUtil.caltd(nd.gsNextLeg().departureDate().value,tdf);curDate = rzsUtil.caltd(nd.departureDate().value,tdf);if(rzsUtil.compareDates(curDate,nextDate) == 1){nextDate = rzsUtil.addDays(curDate,rezSmart.GUI.Settings.nextDateOffset);nextDate = rzsUtil.fdts(nextDate,tdf);nd.gsNextLeg().departureDate().value = nextDate;nd.gsNextLeg().syncDateControls(); }; nd = nd.gsNextLeg();};}; }, travelLeg: function(_collectionRef,_legNumber,_hasReturn,_includeAddRemove,_seedDate){rzsDOM = rezSmart.DOMFunctions;rzsUtil = rezSmart.Util;var _imgPath = rezSmart.GUI.Settings.defaultImagePath;var _ori = new Object(),_dest = new Object();var _depD = new Object(),_retD = new Object();var _fDepD = new Date(),_fRetD = new Date(); var _dDow,_rDow;var _departYear,_returnYear; var _legRef;var _nxl,_pvl;var _returnGroup;function _makeDepartDestGroup(){var rzsGB = rezSmart.GUI.bldr;var ndGroup = rzsDOM.crel('div',{'class':'divDepartDest'});var ndBound,ndDate,nd,ndAR;if (ndGroup){_ori = _makeDepartDest(ndGroup,'Depart','* From:');_dest = _makeDepartDest(ndGroup,'Dest','* To:');if (_legNumber == 0){if (rezSmart.GUI.Settings.DefaultOrigin && rezSmart.GUI.Settings.DefaultOrigin.length > 0){_ori.value = rezSmart.GUI.Settings.DefaultOrigin;};if (rezSmart.GUI.Settings.DefaultDestination && rezSmart.GUI.Settings.DefaultDestination.length > 0){_dest.value = rezSmart.GUI.Settings.DefaultDestination;};};_depD = _makeTravelDate(ndGroup,'DepartDate','Depart:',false);if (_hasReturn && _hasReturn == true){_retD = _makeTravelDate(ndGroup,'ReturnDate','Return:',true);};return ndGroup;};};function _makeDepartDest(_cntxtent,_name,_labelText,_bindInputTo){var nd = rzsDOM.crel('p',{'class':('p' + _name)});var id = _name + _legNumber;var ndInput = rzsDOM.crel('input',{'type':'text',id:'tb' + id});rzsUtil.addEvent(ndInput,'change',_onAirportCityChange);nd.appendChild(rzsDOM.crelText('label',{id:'lb' + id,'for':'tb' + id},_labelText));nd.appendChild(ndInput);nd.appendChild(rzsDOM.crel('img',{src:_imgPath + 'sm-search.gif',width:'14',height:'14',alt:'Lookup Airport'}));rzsDOM.apel(_cntxtent,nd);return ndInput;};function _makeTravelDate(_cntxtent,_name,_labelText,_isReturn,_bindInputTo){var nd = rzsDOM.crel('p',{'class':('p' + _name + 'Group')});var id = _name + _legNumber;var timeId = _name + 'Time' + _legNumber;var ndLbl = rzsDOM.crelText('label',{'for':'tb' + id},_labelText);var ndSpan = rzsDOM.crel('span',{id:'sp' + id});var ndImg = rzsDOM.crel('img',{id:'im' + id,src:_imgPath + 'calendar.gif',alt:_labelText});var ndInput = rzsDOM.crel('input',{id:'tb' + id,type:'text'});var ndDow,ndYear;var dt = _seedDate;if (_isReturn && rezSmart.Util.browserInformation.isMicrosoft){if (rezSmart.Util.browserInformation.version == 7){rzsDOM.apel(nd,'<div id="msPosFix"></div>'); } else {rzsDOM.apel(nd,'<div id="ms6PosFix"></div>'); };};dt.setDate(dt.getDate() + rezSmart.GUI.Settings.startDateOffset);if (rezSmart.GUI.Settings.APPLY_WEEKEND_RULES == 1){var curDow = dt.getDay();var arrWkEnd = rezSmart.GUI.Settings.WEEKEND_DAYS;var targetDow = arrWkEnd[arrWkEnd.length - 1 ] + 1;curDow = curDow == 0 ? 7:curDow;for (var i=0; i<arrWkEnd.length; i++){if (curDow == arrWkEnd[i]){dt.setDate(dt.getDate() + (arrWkEnd.length - i));};};};if (_isReturn){dt.setDate(dt.getDate() + rezSmart.GUI.Settings.nextDateOffset); rzsDOM.gsAttribute('isReturn',ndInput,'true');} else if (_legNumber > 0){dt.setDate(dt.getDate() + (rezSmart.GUI.Settings.nextDateOffset * _legNumber));};ndInput.value = rezSmart.Util.fdts(dt,rezSmart.GUI.Settings.travelDateFormat);ndInput.maxLength = 5;ndDow = rzsDOM.createElementText('span',rzsUtil.fdts(dt,'ddd').toUpperCase());ndYear = rzsDOM.createElementText('span',rzsUtil.fdts(dt,'yyyy'));if (_isReturn && _isReturn == true){_rDow = ndDow;_returnYear = ndYear;rzsUtil.addEvent(ndImg,'click',function(){rezSmart.GUI.calendar.show('tb' + id,ndInput,_onReturnDateChange)});rzsUtil.addEvent(ndInput,'change',_onReturnDateChange); } else {_dDow = ndDow;_departYear = ndYear;rzsUtil.addEvent(ndImg,'click',function(){rezSmart.GUI.calendar.show('tb' + id,ndInput,_onDepartureDateChange)});rzsUtil.addEvent(ndInput,'change',_onDepartureDateChange);};ndSpan.className = 'spDateYear';ndLbl.appendChild(ndDow);rzsDOM.apel(ndSpan,[ndInput,ndYear]); nd.appendChild(ndLbl);nd.appendChild(ndSpan);nd.appendChild(ndImg);if (rezSmart.GUI.Settings.showTime == 1){var ndSel = rzsDOM.crel('select',{id:'sl' + timeId});var arrBuf,opt;arrBuf = rezSmart.GUI.Settings.timeValues;for (var i=0; i<arrBuf.length; i++){opt = new Option(arrBuf[i][0],arrBuf[i][1]);if (rezSmart.GUI.Settings.timeDefault == i)opt.selected = true;ndSel.options[ndSel.options.length] = opt;};nd.appendChild(ndSel);};if (_isReturn) _returnGroup = nd; rzsDOM.apel(_cntxtent,nd);return ndInput;}; function _onAirportCityChange(){_validateAirportCity(this);};function _onDepartureDateChange(){_depDChange();_collectionRef.uptd(); };function _onReturnDateChange(){_retDChange();_collectionRef.uptd(); };function _depDChange(){_fDepD = _validateDateControl(_depD);};function _retDChange(){_fRetD = _validateDateControl(_retD);};function _validateAirportCity(_airportCityControl){var isShown = (_legRef.style.display == 'none'?false:true);if (_airportCityControl.value.length < 3){_airportCityControl.className = 'rzsRequired';if (isShown){rezSmart.GUI.errManager.addError(_airportCityControl.id,_airportCityControl,rezSmart.GUI.Settings.EMPTY_AIRPORT_MESSAGE);alert(rezSmart.GUI.Settings.EMPTY_AIRPORT_MESSAGE);};return false;} else {if (_ori.value == _dest.value){this.className = 'rzsRequired';if (isShown){rezSmart.GUI.errManager.addError(_airportCityControl.id,_airportCityControl,rezSmart.GUI.Settings.AIRPORTS_ARE_SAME_MESSAGE);alert(rezSmart.GUI.Settings.AIRPORTS_ARE_SAME_MESSAGE);};return false;};};_airportCityControl.className = '';rezSmart.GUI.errManager.removeError(_airportCityControl.id);return true;};function _validateDateControl(_dateControl){var isShown = (_legRef.style.display == 'none'?false:true);var today = new Date();var msg;var dow;var arr = rezSmart.GUI.Settings.WEEKEND_DAYS;var days;var dt; if (_dateControl == _retD && _returnGroup.style.display == 'none') isShown = false; if (_dateControl.value.length >= 3){ _dateControl.value = _dateControl.value.length < 5 ? rzsUtil.padDayMonth(_dateControl.value):_dateControl.value; dt = rzsUtil.caltd(_dateControl.value,rezSmart.GUI.Settings.travelDateFormat);if (dt == 'Invalid Date' || dt == 'NaN'){_dateControl.className = 'rzsRequired'; if (isShown){ rezSmart.GUI.errManager.addError(_dateControl.id,_dateControl,rezSmart.GUI.Settings.EMPTY_INVALID_DATE_MESSAGE);alert(rezSmart.GUI.Settings.EMPTY_INVALID_DATE_MESSAGE);};return 'Invalid Date';}; } else {_dateControl.className = 'rzsRequired';if (isShown){rezSmart.GUI.errManager.addError(_dateControl.id,_dateControl,rezSmart.GUI.Settings.EMPTY_INVALID_DATE_MESSAGE);alert(rezSmart.GUI.Settings.EMPTY_INVALID_DATE_MESSAGE);};return 'Invalid Date';}; _dateControl.value = rzsUtil.fdts(dt,rezSmart.GUI.Settings.travelDateFormat); if (_dateControl === _depD){rzsDOM.gsText(_dDow,rzsUtil.fdts(dt,'ddd').toUpperCase());rzsDOM.gsText(_departYear,dt.getFullYear()); } else {rzsDOM.gsText(_rDow,rzsUtil.fdts(dt,'ddd').toUpperCase());rzsDOM.gsText(_returnYear,dt.getFullYear()); };days = rzsUtil.daysBetween(dt,today);if (days > rezSmart.GUI.Settings.MAX_DAYS){_dateControl.className = 'rzsRequired'; if (isShown){msg = rzsUtil.fdts(rzsUtil.addDays(today,rezSmart.GUI.Settings.MAX_DAYS),'MM/dd/yyyy');msg = rzsUtil.fstr(rezSmart.GUI.Settings.MAX_DAYS_MESSAGE,msg);rezSmart.GUI.errManager.addError(_dateControl.id,_dateControl,msg); rezSmart.GUI.showMessage(msg);};return 'Invalid Date';} else if (days < rezSmart.GUI.Settings.MIN_DAYS){_dateControl.className = 'rzsRequired';if (isShown){msg = rzsUtil.fdts(rzsUtil.addDays(today,rezSmart.GUI.Settings.MIN_DAYS),'MM/dd/yyyy');msg = rzsUtil.fstr(rezSmart.GUI.Settings.MIN_DAYS_MESSAGE,msg);rezSmart.GUI.errManager.addError(_dateControl.id,_dateControl,msg); rezSmart.GUI.showMessage(msg);};return 'Invalid Date';} else if (rezSmart.GUI.Settings.APPLY_WEEKEND_RULES == 1 && typeof(_pvl) == 'undefined' && _dateControl === _depD){dow = today.getDay();dow = (dow == 0 ? 7:dow);var dowBuf = 0;for (var k=0; k<arr.length; k++){dowBuf = arr[0] > arr[k] ? arr[k] + 7 : arr[k];if (dow == arr[k] && days <= 8-dowBuf){_dateControl.className = 'rzsRequired'; if (isShown){var daysToAdd = Math.abs(7 - (dow - (arr[arr.length - 1] + 1)));if (daysToAdd > 7) daysToAdd = daysToAdd - 7;msg = rzsUtil.fdts(rzsUtil.addDays(today,daysToAdd),'MM/dd/yyyy');msg = rzsUtil.fstr(rezSmart.GUI.Settings.NO_WEEKEND_MESSAGE,msg);rezSmart.GUI.errManager.addError(_dateControl.id,_dateControl,msg); rezSmart.GUI.showMessage(msg); };rezSmart.GUI.errManager.addError(_dateControl.id,_dateControl,rezSmart.GUI.Settings.NO_WEEKEND_MESSAGE);return 'Invalid Date';};};};rezSmart.GUI.errManager.removeError(_dateControl.id);_dateControl.className = '';return dt;}; this.origin = function(){return _ori};this.destination = function(){return _dest};this.departureDate = function(){return _depD};this.returnDate = function(){return _retD}; this.hasReturn = function(){return _hasReturn};this.returnGroup = function(){return _returnGroup};this.myNode = function(){return _legRef};this.gsNextLeg = function(_leg){if (_leg) _nxl = _leg;return _nxl};this.gsPreviousLeg = function(_leg){if (_leg) _pvl = _leg;return _pvl};this.setReturnDisplay = function(_display){if (_returnGroup && _returnGroup.nodeType == 1) _returnGroup.style.display = _display; };this.hide = function(){if (_legRef) _legRef.style.display = 'none';};this.show = function(){if (_legRef) _legRef.style.display = '';};this.syncDateControls = function(_returnOnly){if (!_returnOnly || _returnOnly == false)_depDChange();if (_hasReturn){_retDChange();};};this.checkAirports = function(){_validateAirportCity(_ori);_validateAirportCity(_dest);};this.render = function(_cntxtent){if (!_cntxtent || _cntxtent.nodeType != 1) return;rzsDOM.apel(_cntxtent,_legRef);};_legRef = _makeDepartDestGroup(); },makePaxTypes: function(){var rzsDOM = rezSmart.DOMFunctions;var rzsGB = rezSmart.GUI.bldr;var nd = rzsDOM.crel('div',{id:'divPaxTypes'});if (!rezSmart.GUI.Settings.paxOne){throw new Error('paxOne object is null');return;};rzsGB.makePaxType(nd,rezSmart.GUI.Settings.paxOne);if (typeof(rezSmart.GUI.Settings.showPaxTwo) == 'undefined' || rezSmart.GUI.Settings.showPaxTwo == 1){if (!rezSmart.GUI.Settings.paxTwo) throw new Error('paxTwo object is null');rzsGB.makePaxType(nd,rezSmart.GUI.Settings.paxTwo);};if (typeof(rezSmart.GUI.Settings.showPaxThree) == 'undefined' || rezSmart.GUI.Settings.showPaxThree == 1){if (!rezSmart.GUI.Settings.paxThree) throw new Error('paxThree object is null');rzsGB.makePaxType(nd,rezSmart.GUI.Settings.paxThree);};return nd; },makePaxType: function(_parent,_pax){var rzsDOM = rezSmart.DOMFunctions;var nd = rzsDOM.crel('p',{'class':'pPaxTypes'});var ndSel = rzsDOM.crel('select',{id:_pax[3]});for (var i=0;i<_pax[4].length;i++){ndSel.options[ndSel.options.length] = new Option(_pax[4][i],_pax[4][i]);};rezSmart.Util.addEvent(ndSel,'change',rezSmart.GUI.Validation.validatePassengerTypes);nd.appendChild(rzsDOM.crelText('label',{id:'lb' + _pax[0],'for':_pax[3]},_pax[1]));nd.appendChild(ndSel);nd.appendChild(rzsDOM.crelText('span',{id:'sp' + _pax[0]},_pax[2])); rzsDOM.apel(_parent,nd);},makeSearchSettings: function(){var rzsDOM = rezSmart.DOMFunctions;var rzsGB = rezSmart.GUI.bldr;var nd = rzsDOM.crel('div',{id:'divSearchOptions'});if (typeof(rezSmart.GUI.Settings.showAirline) == 'undefined' || rezSmart.GUI.Settings.showAirline == 1)rzsGB.makeAirlineOption(nd);if (typeof(rezSmart.GUI.Settings.showCabinPreference) == 'undefined' || rezSmart.GUI.Settings.showCabinPreference == 1)rzsGB.makeCabinOption(nd);if (typeof(rezSmart.GUI.Settings.showFareType) == 'undefined' || rezSmart.GUI.Settings.showFareType == 1)rzsGB.makeFareTypeOption(nd);return nd},makeAirlineOption: function(_parent){var rzsDOM = rezSmart.DOMFunctions;var nd = rzsDOM.crel('p',{id:'pAirlineOptions','class':'pSearchOptions'});rzsDOM.apel(nd,[rzsDOM.crelText('label',{id:'lbAirline','for':'tbAirline'},rezSmart.GUI.Settings.airlineText),rzsDOM.crel('input',{type:'text',id:'tbAirline'})]);_parent.appendChild(nd);},makeCabinOption: function(_parent){var rzsDOM = rezSmart.DOMFunctions;var nd = rzsDOM.crel('p',{id:'pCabinOption','class':'pSearchOptions'});var ndLbl = rzsDOM.crelText('label',{id:'lbCabinPreference','for':'slCabinPreference'},rezSmart.GUI.Settings.cabinText);var ndSel = rzsDOM.crel('select',{id:'slCabinPreference'});var arrBuf = rezSmart.GUI.Settings.cabinList;var opt;for (var i=0; i<arrBuf.length; i++){opt = new Option(arrBuf[i][0],arrBuf[i][1]);if (rezSmart.GUI.Settings.cabinListDefault == i)opt.selected = true;ndSel.options[ndSel.options.length] = opt;};nd.appendChild(ndLbl);nd.appendChild(ndSel);_parent.appendChild(nd);},makeFareTypeOption: function(_parent){var rzsDOM = rezSmart.DOMFunctions;var nd = rzsDOM.crel('p',{id:'pFareTypeOption','class':'pSearchOptions'});var ndLbl = rzsDOM.crelText('label',{id:'lbFareType','for':'slFareType'},rezSmart.GUI.Settings.fareTypeText);var ndSel = rzsDOM.crel('select',{id:'slFareType'});var arrBuf = rezSmart.GUI.Settings.fareTypeList;var opt;for (var i=0; i<arrBuf.length; i++){opt = new Option(arrBuf[i][0],arrBuf[i][1]);if (rezSmart.GUI.Settings.fareTypeDefault == i)opt.selected = true;ndSel.options[ndSel.options.length] = opt;};nd.appendChild(ndLbl);nd.appendChild(ndSel);_parent.appendChild(nd); },makeSearchButton: function(){var rzsDOM = rezSmart.DOMFunctions;var nd = rzsDOM.crel('img',{id:'imgSearch',src:rezSmart.GUI.Settings.defaultImagePath + 'search.gif',alt:'Search Fares'});rezSmart.Util.addEvent(nd,'click',rezSmart.GUI.Events.onSearchClick);return nd;}};if (!rezSmart.GUI.Validation) rezSmart.GUI.Validation = {validatePassengerTypes: function(){var paxCnt = 0,pax1Cnt = 0,pax2Cnt = 0,pax3Cnt = 0;var ndPax1,ndPax2,ndPax3;ndPax1 = rezSmart.DOMFunctions.getById(rezSmart.GUI.Settings.paxOne[3]);if (ndPax1){pax1Cnt = parseInt(ndPax1.options[ndPax1.selectedIndex].value);};ndPax2 = rezSmart.DOMFunctions.getById(rezSmart.GUI.Settings.paxTwo[3]);if (ndPax2){pax2Cnt = parseInt(ndPax2.options[ndPax2.selectedIndex].value);};ndPax3 = rezSmart.DOMFunctions.getById(rezSmart.GUI.Settings.paxThree[3]);if (ndPax3){pax3Cnt = parseInt(ndPax3.options[ndPax3.selectedIndex].value);};paxCnt = pax1Cnt + pax2Cnt + pax3Cnt;if (paxCnt < rezSmart.GUI.Settings.MIN_PASSENGERS || paxCnt > rezSmart.GUI.Settings.MAX_PASSENGERS){if (pax1Cnt < rezSmart.GUI.Settings.MIN_PASSENGERS || pax1Cnt > 1){ndPax1.className = 'rzsRequired';} else {ndPax1.className = '';};if (pax2Cnt > 0){ndPax2.className = 'rzsRequired';} else {ndPax2.className = '';};if (pax3Cnt > 0){ndPax3.className = 'rzsRequired';} else {ndPax3.className = '';};rezSmart.GUI.errManager.addError('paxCount',null,'');alert(rezSmart.Util.fstr('The minimum number of required passengers is {0}, the maximum number of passengers allowed is {1}.Please check your selection.',[rezSmart.GUI.Settings.MIN_PASSENGERS,rezSmart.GUI.Settings.MAX_PASSENGERS])); return false; }; ndPax1.className = '';if (ndPax2)ndPax2.className = '';if (ndPax3)ndPax3.className = '';return true;},submitValidate: function(){ rezSmart.GUI.errManager.removeAll(); rezSmart.GUI.Validation.validatePassengerTypes();rezSmart.GUI.lcol.syncLegDatesOnDemand();rezSmart.GUI.lcol.verifyAirports();if (rezSmart.GUI.errManager.hasErrors()){alert(rezSmart.Util.fstr('{0} error(s) were found in your request.Please correct any highlighted items for missing or invalid data.',rezSmart.GUI.errManager.errorCount().toString()));return false;};return true;}};(function(){var gRef = rezSmart.GUI;var errMgr = new rezSmart.Util.errorManager();var tlc = new rezSmart.GUI.bldr.travelLegCollection(); gRef.lcol = tlc; gRef.errManager = errMgr; })();