$.airportBox=function(a){this.init(a)};$.airportBox.prototype={init:function(b){this.form=$("#quickReservationForm");this.el=b.el;this.titleEl=this.el.find("div.cmbAddrExplanation");this.titleEl.html("Enter flight details:");this.list=this.el.find("ul");var a="<li><label for='pickup.airline'>Airline&nbsp;code*&nbsp;:</label><div class='floatRight'><div class='cmbWrapper cmbAirlineCode'><a class='cmbArrow' href='#' style='z-index:1000 !important;'></a><input type='text' class='cmbInputBox input' tabindex=2 name='pickup.airline'/><div class='cmbSuggestionBox'><div class='boxUpperShadow'></div><div class = 'cmbSuggestionListHolder'><div class='ml'></div><div class='mm'><ul class='cmbSuggestions'></ul></div><div class='mr'></div></div><div class='boxBottomShadow'><div class='bl'></div><div class='bb'></div><div class='br'></div></div><!--[if lte IE 6.5]><iframe></iframe><![endif]--></div></div></div><div style='clear:both'></div></li><li><label for='pickup.flight'>Flight #* :</label><input type='text' class='input' tabindex=3 name='pickup.flight' /></li><li><label for='pickup.arrivingFrom'>Arriving from :</label><input type='text' class='input' tabindex=4 name='pickup.arrivingFrom' /></li><li><label for='pickup.terminal'>Terminal :</label><input type='text' class='input' tabindex=5 name='pickup.terminal' /></li><li><label for=''>Meeting area:</label><select tabindex=6 name='pickup.inOut'><option value='true'>Inside</option><option value='false'>Outside</option></select><p style='padding:0px;font-size:11px;color:#777;float:right;text-align:right;width:100%;'>Inside: Driver Meets at Baggage claim</p><p style='padding:0px;font-size:11px;color:#777;float:right;text-align:right;width:100%'>Outside: Driver Curbside, no fee</p></li><li><p style='clear:both'>NOTE:LimoRes tracks your flight to help prevent unnecessary Waiting Time. We will then dispatch your car based on Gate Arrival Time.</p></li><li><a href='#' tabindex=7 class ='cmbWidgetButton'>OK</a></li>";this.list.html(a);this.button=this.list.find("a.cmbWidgetButton");this.infoLabel=$("#cmbAirportPickupInfo");this.txtFlightId=this.list.find("input[name='pickup.flight']");this.txtAirline=this.list.find("input[name='pickup.airline']");this.txtArrivingFrom=this.list.find("input[name='pickup.arrivingFrom']");this.optMeetingArea=this.list.find("select[name='pickup.inOut']");this.txtTerminal=this.list.find("input[name='pickup.terminal']");this.cmbAirline=new $.cmbBoxSimple({el:"input[name=pickup.airline]",emptyText:"Enter airline",store:{mode:"remote",urlSuggest:ajaxUrls.airline.urlSuggest},displayHiddenValue:true});this.initEvents()},render:function(){this.expand();this.initValidation();this.el.find("input:first").focus()},getEl:function(){return this.el},initEvents:function(){var a=this;this.button.click(function(){a.onClickOK();return false});this.el.keydown(function(b){switch(b.keyCode){case 13:a.onClickOK();return false;break}})},onClickOK:function(){if(this.isValid()){this.collapse();this.sendAirportInfo();var a=parseInt(this.button.attr("tabindex"));$("form#quickReservationForm select:visible, form#quickReservationForm input:visible ").filter(function(){return(parseInt($(this).attr("tabindex"))==a+1)}).focus()}},sendAirportInfo:function(){var a=this;$.ajax({type:"GET",url:ajaxUrls.pickup.urlFlight.url,dataType:"json",cache:false,success:function(b){},error:function(){},data:{"pickup.model.airline":a.form.find("input[name=pickup.airline]").val(),"pickup.model.flight":a.form.find("input[name=pickup.flight]").val(),"pickup.model.arrivingFrom":a.form.find("input[name=pickup.arrivingFrom]").val(),"pickup.model.meetingInside":a.form.find("select[name=pickup.inOut]").val(),"pickup.model.terminal":a.form.find("input[name=pickup.terminal]").val()}})},isValid:function(){var b=this.form.validate().element(this.txtFlightId);var a=this.form.validate().element(this.txtAirline);return b&&a},initValidation:function(){this.txtFlightId.rules("add",{required:true,number:true});this.txtAirline.rules("add",{required:true,maxlength:3})},clearValidation:function(){this.txtFlightId.rules("remove");this.txtAirline.rules("remove")},renderInfoLabel:function(){var c=this;var a={txtAirline:c.txtAirline.val(),txtFlightId:c.txtFlightId.val(),txtArrivingFrom:c.txtArrivingFrom.val(),txtTerminal:c.txtTerminal.val(),optMeetingArea:c.optMeetingArea.find("option[selected]").text()};var b="<a href='#' id='cmbPickupFlightDetailsLabel'>Flight details:</a> Airline code "+a.txtAirline+", Flight # "+a.txtFlightId+", "+(a.txtArrivingFrom?" Arriving from "+a.txtArrivingFrom+", ":"")+(a.txtTerminal?" Terminal "+a.txtTerminal+", ":"")+"Meeting area "+a.optMeetingArea;this.infoLabel.html(b).show();var c=this;$("a#cmbPickupFlightDetailsLabel").click(function(){c.render();c.clearInfoLabel();return false})},clearInfoLabel:function(){$("a#cmbPickupFlightDetailsLabel").unbind();this.infoLabel.hide()},clearFields:function(){this.el.find("input").val("");this.el.find("option:selected").removeAttr("selected");this.optMeetingArea.find("option[value=false]").attr("selected","true")},isExpanded:function(){return(this.el.css("display")!="none")},expand:function(a){if(this.isExpanded()){return}this.el.show()},collapse:function(){if(!this.isExpanded()){return}this.clearValidation();this.renderInfoLabel();this.el.hide()}};$.areaBox=function(){this.init()};$.areaBox.prototype={init:function(){this.form=$("#quickReservationForm");this.txtHour=$("input#txtByTheHour");this.el=$("#cmbDestinationWidget");this.titleEl=this.el.find("div.cmbAddrExplanation");this.list=this.el.find("ul")},renderList:function(c){if(c&&c.results){var a="";var b=this.el;$.each(c.results,function(e,d){a+="<li value='"+d.type+"' minimumHours="+d.minimumHours+'><input type="radio" name="'+b.attr("id")+'Radiogroup" id="'+b.attr("id")+"Radio-"+d.type+'"/><label for="'+b.attr("id")+"Radio-"+d.type+'">'+d.name+"</label></li>"});this.list.html(a);this.titleEl.html("Select one area from a list:");this.initListEvents()}},onViewClick:function(){var a=this.list.find("li.hover:first");var c=a.attr("minimumHours");var b=a.attr("value");this.txtHour.rules("remove");this.txtHour.rules("add",{required:true,min:c});this.txtHour.data("type",b);this.collapse();this.txtHour.focus()},initListEvents:function(){this.listItems=this.list.find("li");var a=this;this.listItems.hover(function(){$(this).addClass("hover");$(this).find("label").addClass("hover")},function(){$(this).removeClass("hover");$(this).find("label").removeClass("hover")}).click(function(){a.onViewClick()})},isExpanded:function(){return(this.el.css("display")!="none")},expand:function(){if(this.isExpanded()){return}this.el.show()},collapse:function(){if(!this.isExpanded()){return}this.el.hide()}};var inputBoxes={init:function(){var a=this;this.airportBox=new $.airportBox({el:$("#cmbPickupWidget")});this.cmbBoxPickup=new $.cmbBox({el:"input#txtPickup",airportBox:a.airportBox,emptyText:"Enter Address, Airport, or Landmark",store:{mode:"remote",urlAddresses:ajaxUrls.pickup.urlAddresses,urlValidate:ajaxUrls.pickup.urlValidate,urlSelect:ajaxUrls.pickup.urlSelect}});this.cmbBoxDestination=new $.cmbBox({el:"input#txtDestination",emptyText:"Enter Address, Airport, or Landmark",store:{mode:"remote",urlAddresses:ajaxUrls.destination.urlAddresses,urlValidate:ajaxUrls.destination.urlValidate,urlSelect:ajaxUrls.destination.urlSelect}});this.areaBox=new $.areaBox();this.txtByTheHour=$("input#txtByTheHour");this.form=$("#quickReservationForm");this.hourLink=$("span#spHour");this.destinationLink=$("span#spDestination");this.defaultHourValue="Enter number of hours";this.defaultDestValue="Enter Address, Airport, or Landmark";this.txtDestinationArrow=$("#txtDestinationWrapper").find(".cmbArrow");this.spAddrExample=$("#txtDestinationWrapper").find(".cmbAddrExample");this.txtByTheHour.val(a.defaultHourValue).addClass("defaultText");this.initValidation();this.initEvents()},getStatus:function(){return this.isByTheHourActive},setStatus:function(a){this.isByTheHourActive=a},getForm:function(){return this.form},getCmbBoxPickup:function(){return this.cmbBoxPickup},getCmbBoxDestination:function(){return this.cmbBoxDestination},getAirportBox:function(){return this.airportBox},initHourComponent:function(a){this.onHourClick(this);this.txtByTheHour.val(a.value).data("type",a.type).focus();this.txtByTheHour.data("type",null)},getBthEmptyText:function(){return this.defaultHourValue},initValidation:function(){var a=this;$.validator.addMethod("isNotEmptyText",function(c,b,d){return c!=d[0]},"This field is required.");this.destinationRules={required:true,isNotEmptyText:[a.cmbBoxDestination.getEmptyText()]};this.pickupRules={required:true,isNotEmptyText:[a.cmbBoxPickup.getEmptyText()]};this.byTheHourRules={required:true,isNotEmptyText:[a.getBthEmptyText()],number:true};this.form.validate({errorClass:"reservationError",focusInvalid:true,rules:{txtDestination:a.destinationRules,txtPickup:a.pickupRules}});a.cmbBoxPickup.getEl().rules("add",a.pickupRules);if(!a.getStatus()){a.cmbBoxDestination.getEl().rules("add",a.destinationRules)}},initEvents:function(){var a=this;this.hourLink.parent().click(function(){a.onHourClick(a)});this.txtByTheHour.focus(function(){a.onHourFocus.call(this,a)}).blur(function(){a.onHourBlur.call(this,a)});this.form.submit(function(){if(a.txtByTheHour.val()==a.getBthEmptyText()){a.txtByTheHour.val("")}})},markValid:function(){this.txtByTheHour.addClass("valid")},clearValid:function(){this.txtByTheHour.removeClass("valid")},onHourBlur:function(b){if(b.form.validate().element($(this))){b.markValid();b.initValidation();var a={type:"GET",url:ajaxUrls.byTheHour.urlValidate,dataType:"json",cache:false,success:function(c){},error:function(){},data:{duration:b.txtByTheHour.val(),type:b.txtByTheHour.data("type")}};$.ajax(a)}else{if($(this).val()==""){$(this).attr("maxlength",50);$(this).val(b.defaultHourValue).addClass("defaultText")}}$(this).data("type",null)},onHourFocus:function(b){$(this).removeClass("defaultText");b.clearValid();if($(this).val()==b.defaultHourValue){$(this).attr("maxlength",2);$(this).val("")}if(isNaN(parseInt($(this).data("type")))){if(b.ajaxCall){b.ajaxCall.abort()}var a={type:"GET",url:ajaxUrls.byTheHour.urlInit,dataType:"json",cache:false,success:function(c){if(c.results&&c.results.length&&c.results.length>1){b.areaBox.renderList(c);b.areaBox.expand()}else{if(c.results&&c.results.length){b.txtByTheHour.rules("add",{required:true,min:c.results[0].minimumHours,number:true});b.txtByTheHour.data("type",c.results[0].type)}}},error:function(){},data:{}};b.ajaxCall=$.ajax(a)}},onHourClick:function(a){a.txtByTheHour.rules("remove");a.cmbBoxDestination.getEl().rules("remove");a.setStatus(true);a.txtByTheHour.rules("add",a.byTheHourRules);a.destinationLink.wrap("<a href='#'></a>").parent().click(function(){a.onDestinationClick(a)});a.hourLink.parent().after(a.hourLink).remove();a.txtDestinationArrow.hide();a.spAddrExample.hide();a.cmbBoxDestination.getEl().hide();a.cmbBoxDestination.applyEmptyText();$("label.reservationError[for='txtDestination']").hide(function(){$(this).remove()});a.txtByTheHour.show();$(this).val(a.defaultDestValue).addClass("defaultText").removeClass("addrFound").removeClass("addrNotFound");return false},onDestinationClick:function(a){a.cmbBoxDestination.getEl().rules("add",a.destinationRules);a.txtByTheHour.rules("remove");a.setStatus(false);a.cmbBoxDestination.clearUndoLabel();if(a.ajaxCall){a.ajaxCall.abort()}a.hourLink.wrap("<a href='#'></a>").parent().click(function(){a.onHourClick(a)});a.destinationLink.parent().after(a.destinationLink).remove();a.txtByTheHour.removeClass("reservationError").hide().attr("maxlength",50).val(a.defaultHourValue).addClass("defaultText");$("label.reservationError[for='txtByTheHour']").hide(function(){$(this).remove()});a.cmbBoxDestination.getEl().show();a.spAddrExample.show();a.txtDestinationArrow.show();return false},onArrowClick:function(d){if((d.cmbBoxPickup.getRawValue()!=""||d.cmbBoxDestination.getRawValue()!="")){d.cmbBoxPickup.airportBox.clearInfoLabel();d.cmbBoxPickup.clearUndoLabel();d.cmbBoxDestination.clearUndoLabel();var c={addrNotFound:d.cmbBoxPickup.getEl().hasClass("addrNotFound"),addrFound:d.cmbBoxPickup.getEl().hasClass("addrFound")};var b={text:d.cmbBoxPickup.getRawValue(),value:d.cmbBoxPickup.getValue()};var a={type:"GET",url:ajaxUrls.reverseAddress.url,dataType:"json",cache:false,success:function(e){d.cmbBoxPickup.setValue({text:d.cmbBoxDestination.getRawValue(),value:d.cmbBoxDestination.getValue()});d.cmbBoxDestination.setValue(b);d.cmbBoxPickup.getEl().removeClass("addrFound").removeClass("addrNotFound");d.cmbBoxDestination.getEl().removeClass("addrNotFound").removeClass("addrFound")},error:function(){},data:{}};d.ajaxCall=$.ajax(a);if(d.cmbBoxDestination.getRawValue()==""){d.cmbBoxDestination.applyEmptyText()}if(d.cmbBoxPickup.getRawValue()==""){d.cmbBoxPickup.applyEmptyText()}}}};$(function(){var a=function(){inputBoxes.init();$.datePicker.setDateFormat("mm/dd/yyyy");$("input.date").datePicker();$("input.date").attr("autocomplete","on");$(".playButton").bind("click",function(){$(this).toggleClass("stopButton")});var d=$("#quickReservationForm");var c="Insert stops here (you will get a second confirmation e-mail)";var b=$("input#specialInstructions");if(!b.val().length||b.val()==c){b.addClass("defaultText").val(c)}b.focus(function(){$(this).removeClass("defaultText");if($(this).val()==c){$(this).val("")}}).blur(function(){$(this).addClass("defaultText");if($(this).val()==""){$(this).val(c)}});d.submit(function(){var e=function(){return !inputBoxes.getCmbBoxDestination().ajaxValidationCall&&!inputBoxes.getCmbBoxPickup().ajaxValidationCall};if(d.validate().form()){if(e()){if(b.val()==c){b.val("")}if(inputBoxes.airportBox.isExpanded()==true){inputBoxes.airportBox.sendAirportInfo()}$("#progressWin").show();$("#progressWin").modal({onClose:progressBar.close,overlay:1});setTimeout('document.images["loading"].src = document.images["loading"].src',1)}else{if(inputBoxes.getCmbBoxPickup().ajaxValidationCall){inputBoxes.getCmbBoxPickup().getStillValidatingMsg().fadeIn();inputBoxes.getCmbBoxPickup().largeWrapper.highlight()}if(inputBoxes.getCmbBoxDestination().ajaxValidationCall){inputBoxes.getCmbBoxDestination().largeWrapper.highlight();inputBoxes.getCmbBoxDestination().getStillValidatingMsg().fadeIn()}return false}}})}()});
