var minibooker=function(){var u=!!(navigator.userAgent.toLowerCase().match(/(iPhone|iPod|iPad|blackberry|android|htc|kindle|lg|midp|mmp|mobile|nokia|opera mini|palm|pocket|psp|sgh|smartphone|symbian|treo mini|Playstation Portable|SonyEricsson|Samsung|MobileExplorer|PalmSource|Benq|Windows Phone|Windows Mobile|IEMobile|Windows CE|Nintendo Wii)/i));var v=!!(navigator.userAgent.toLowerCase().match(/(iPhone|iPod)/i));function r(D){for(var E in D){if(D.hasOwnProperty(E)){return false}}return true}var m=[];var o=$("html");var A=$("#mb form");var C=A.find('select[name="service.departureSchedule.hours"]');var q=A.find('select[name="service.departureSchedule.minutes"]');var s=A.find("input[type=submit]");var z=A.find('input[name="service.departureSchedule.date"]');var B=$('input[name="service.route.pickup"]');var w=$('input[name="service.route.destination"]');var x=$('<img src="/images/v2/booking/calculating-loading-indicator.gif" id="mb-loading-indicator" />').appendTo("body").css("display","none");var k="Enter Address, Airport or Landmark";var b=activeMarker=null;$.template("multipleMatchesBox",'<div class="mm-box ui-widget-content ui-corner-all"><div class="arrow"></div><p class="ui-widget-header ui-corner-top">Found multiple matches. Select one from list:<a class="close ui-icon ui-icon-circle-close ui-corner-all">Close</a></p><ul class="validatebox">{{each values}}<li latitude="${position.latitude}" longitude="${position.longitude}">${query}</li>{{/each}}<li value=1>None of above</li></ul><div class="wr-map"></div></div>');var h=function(){var J;if(z.val()==""){J=false}else{J=true}if(!J){var E=new Date;var F=(E.getMonth()+1)+"/"+E.getDate()+"/"+E.getFullYear();z.val(F)}z.datepicker({buttonImage:"/images/v2/date-picker.gif",buttonImageOnly:true,buttonText:"Choose Date",defaultDate:0,showAnim:"",showOn:"both",hideIfNoPrevNext:true,minDate:E,numberOfMonths:2});if(!J){var I=new Date;I.setMinutes(I.getMinutes()+60);var G=I.getHours();var D=I.getMinutes();var H=["00","15","30","45"];for(mn in H){if(D<=parseInt(H[mn])){D=parseInt(H[mn]);break}}if(D>45||D==0){D="00";I.setHours(I.getHours()+1);G=I.getHours()}G<10?G="0"+G:false;C.val(G);q.val(D)}};var c=function(D){D.el.val(D.value)};var y=function(){m=$("div.mm-box");if(m.length){var E=m.eq(0);E.show();var D=E.find(".wr-map");D.css("height",E.find("ul").outerHeight());b=p(D[0]);E.find("ul li:first").trigger("mouseenter")}else{s.click()}};var e=function(){m.eq(0).remove();b=null};var g=function(){s.addClass("loading").attr("disabled","true")};var i=function(){s.removeAttr("disabled").removeClass("loading")};var j=function(D){if(r(D.actionErrors)&&r(D.fieldErrors)){if(r(D.locations)){window.location="/booking/ride-details.html"}else{i();var F=false;var G="";if(!r(D.locations.pickup)){if(D.locations.pickup.length>1){n(B,D.locations.pickup);F=true}else{c({el:B,value:D.locations.pickup[0].query,position:D.locations.pickup[0].position})}}else{G="We cannot find pickup address.<br/>";B.addClass("error")}if(!r(D.locations.destination)){if(D.locations.destination.length>1){n(w,D.locations.destination);F=true}else{c({el:w,value:D.locations.destination[0].query,position:D.locations.destination[0].position})}}else{G+="We cannot find destination address.<br/>";w.addClass("error")}if(G.length){G+="Please try to refine your search.";f(G);A.find("input.error:first").focus()}if(F){m=$("div.mm-box");y()}}}else{i();$.each(D.fieldErrors,function(I,H){var J=A.find('input[name="'+I+'"]');J.addClass("error");$('<span class="error-message">'+H+"</span>").insertAfter(J)});if(D.actionErrors.length){var E="";$.each(D.actionErrors,function(I,H){E+=H;E+="<br/>"});f(E)}}};var f=function(D){s.before('<div class="err"><p>'+D+"</p></div>")};var d=function(E){var D=E.val();if(o.hasClass("placeholder")){return D}else{return((D==E.attr("placeholder")||D==k)?"":D)}};var l=function(){s.removeAttr("disabled");var E=$("#mb label[for=email-address], #mb input#email-address").hide();$("input#email-alert").change(function(){if($(this).is(":checked")){E.show().filter("input").focus()}else{E.hide()}});var D=B.add(w);if(o.hasClass("placeholder")){D.attr("placeholder",k)}else{$.each(D,function(){var F=$(this);if(F.val()==""){F.addClass("placeholder").val(k)}});D.focus(function(){var F=$(this);if(F.val()==k){F.removeClass("placeholder").val("")}}).blur(function(){var F=$(this);if(F.val()==""){F.addClass("placeholder").val(k)}})}x.css({position:"absolute",display:"none","z-index":"10",cursor:"progress",top:s.offset().top+5,left:s.offset().left+5});s.click(function(){A.find("input, select").removeClass("error").removeClass("alert");A.find("span.error-message, div.err, div.wrapper-alert").remove();if(m.length){m.remove()}if(d(B)!==""&&d(w)!==""){g();var F={type:"GET",url:"/booking/ride-details-execute.html",data:A.serialize(),dataType:"json",cache:false,success:function(G){j(G)},error:function(H,G,J,I){i();f("An error occured during your request, please try again.")}};$.ajax(F);return false}else{d(B)==""?B.addClass("error"):false;d(w)==""?w.addClass("error"):false;A.find("input.error:first").focus();f("Please fill pickup and destination fields.");return false}});if(d(B)==""){B.focus()}else{if(d(w)==""){w.focus()}}return};var a=function(E){var D=$("#"+E.attr("rel"));E.find("li").click(function(){var F=$(this);if(F.attr("value")!=1){c({el:D,value:F.text(),position:{latitude:F.attr("latitude"),longitude:F.attr("longitude")}})}else{}e();y()}).mouseenter(function(){E.find("ul li").removeClass("hover");var F=$(this);F.addClass("hover");if(b&&F.attr("value")!=1){pointToMoveTo=new google.maps.LatLng(F.attr("latitude"),F.attr("longitude"));b.setZoom(11);b.panTo(pointToMoveTo);if(activeMarker){activeMarker.setMap()}activeMarker=new google.maps.Marker({position:pointToMoveTo,map:b});google.maps.event.addListener(activeMarker,"click",function(){b.setZoom(14)})}else{if(F.attr("value")==1){activeMarker.setMap();b.setZoom(1);b.setCenter(new google.maps.LatLng(0,0))}}});E.find(".close").click(function(){e();y();return false})};var n=function(E,D){var F=$($.tmpl("multipleMatchesBox",{values:D})).attr("rel",E.attr("id")).css({top:(u?E.offset().top+E.outerHeight():E.offset().top-(E.outerHeight()/1.1))+"px",left:(u?E.offset().left:(E.offset().left+E.width()+20))+"px"}).appendTo("body");a(F)};var p=function(D){return new google.maps.Map(D,{zoom:11,center:new google.maps.LatLng(40.749884,-73.987977),mapTypeId:google.maps.MapTypeId.ROADMAP,scrollwheel:false,streetViewControl:false,mapTypeControl:false,navigationControl:true,navigationControlOptions:{style:google.maps.NavigationControlStyle.SMALL},scaleControl:false})};var t=function(){var I=$.parseJSON($("#initParams").html().trim());if(I.hasOwnProperty("locations")){j(I)}else{if(!r(I.ride)&&!r(I.ride.route)&&!r(I.ride.route.pickup)){c({el:B,value:I.ride.route.pickup.location.query,position:{latitude:I.ride.route.pickup.location.position.latitude,longitude:I.ride.route.pickup.location.position.longitude}});c({el:w,value:I.ride.route.destination.location.query,position:{latitude:I.ride.route.destination.location.position.latitude,longitude:I.ride.route.destination.location.position.longitude}});try{var H=new Date(Date.parse(I.ride.departureTime))}catch(F){var H=new Date}var E=H.getHours();if(E<10){E="0"+E}var D=H.getMinutes();if(C.length){C.val(E);q.val(D)}var G=(H.getMonth()+1)+"/"+H.getDate()+"/"+H.getFullYear();if(z.length){z.val(G)}}}};$(function(){minibooker.init();if(true){var D=document.createElement("script");D.type="text/javascript";D.src="http://maps.google.com/maps/api/js?sensor=true&callback=minibooker.initMapEvents";document.body.appendChild(D)}});return{init:function(){h();l();if(v){setTimeout(window.scrollTo(0,1),0)}},initMapEvents:function(){return}}}();
