/**
* (c) 2008 mOblu, inc.
* All rights are reserved. Copying or other reproduction of this program is prohibited.
*/
function TripWaypoint(_1,_2,_3,_4,_5,_6){this.eType=_1;this.sLoc=_2;this.sDesc=_3;this.iID=app.rVal(parseInt(_4),0);this.sStep=_5;switch(_5){case "clone_trip_input_leaving":this.iStep=0;break;case "clone_trip_input_driving":this.iStep=1;break;case "clone_trip_input_flying":this.iStep=2;break;case "clone_trip_input_connection":this.iStep=3;break;}this.uData=_6;return this;};TripWaypoint.prototype.toString=function(){return "Type:"+(this.eType==EnumTripWaypointTypes.LAND?"Land":"Air")+", Location:"+this.sLoc+", Description:"+this.sDesc+", ID:"+this.iID;};function TripRouteRequest(){if(arguments.length>0){alert("illegal construction of abstract base class");}return this;};TripRouteRequest.prototype.run=function(cb){alert("illegal pure virtual function call.");};TripRouteRequest.prototype.construct=function(i,a,b){this.m_iStepIdx=i;this.m_oWaypointA=a;this.m_oWaypointB=b;};TripRouteRequest.prototype.getWaypointA=function(){return this.m_oWaypointA;};TripRouteRequest.prototype.getWaypointB=function(){return this.m_oWaypointB;};TripRouteRequest.prototype.isComplete=function(){return this.m_bComplete;};TripRouteRequest.prototype.getResult=function(){return this.m_oResult;};function mObluTripRouteRequest(i,a,b){TripRouteRequest.prototype.construct.call(this,i,a,b);return this;};mObluTripRouteRequest.prototype=new TripRouteRequest();mObluTripRouteRequest.prototype.run=function(_e,_f){if(!this.m_oPacket){this.m_bComplete=false;this.m_oPacket=gTripCalculator.server(new Functor(this,this._serverResult,[_f]),true).CalculateRoute(_e,this.m_iStepIdx,this.m_oWaypointA,this.m_oWaypointB);return true;}return false;};mObluTripRouteRequest.prototype.abort=function(){if(this.m_oPacket){this.m_oPacket.Abort();this.m_oPacket=null;}};mObluTripRouteRequest.prototype._serverResult=function(_10,_11){if(_11!=null){if(!app.xmlrpc.fault(_11)){var aA=this.m_oWaypointA.sLoc.split(",");var aB=this.m_oWaypointB.sLoc.split(",");var _14=new GLatLng(aA[0].trim(),aA[1].trim());var _15=new GLatLng(aB[0].trim(),aB[1].trim());var _16=gTripCalculator.chopPoints(_14,_15,50000);_11.oPolyline=new GPolyline(_16,"#FF0000");}this.m_oPacket=null;this.m_bComplete=true;this.m_oResult=_11;if(typeof (_10)=="object"&&app.isFunction(_10.fire)){_10.fire([_11]);}}};function GoogleTripRouteRequest(i,a,b){TripRouteRequest.prototype.construct.call(this,i,a,b);return this;};GoogleTripRouteRequest.prototype=new TripRouteRequest();GoogleTripRouteRequest.prototype.run=function(_1a,_1b){if(!this.m_oDir&&!this.m_oPacket){this.m_bComplete=false;this.m_oCallback=_1b;this.m_sKey=_1a;var _1c=this;this.m_oDir=new GDirections();GEvent.addListener(this.m_oDir,"load",function(){_1c._directionsLoaded();});GEvent.addListener(this.m_oDir,"error",function(){_1c._directionsError();});var v=gTripSteps.getTripVehicle();var _1e=G_TRAVEL_MODE_DRIVING;this.m_oDir.loadFromWaypoints([this.m_oWaypointA.sLoc,this.m_oWaypointB.sLoc],{travelMode:_1e,locale:"en_US",getPolyline:true,getSteps:true});return true;}return false;};GoogleTripRouteRequest.prototype.abort=function(){if(this.m_oDir){this.m_oDir.clear();this.m_oDir=null;}else{if(this.m_oPacket){this.m_oPacket.Abort();this.m_oPacket=null;}}};GoogleTripRouteRequest.prototype._directionsLoaded=function(){var _1f={};_1f.iDistCity=0;_1f.iDistHighway=0;_1f.oPolyline=this.m_oDir.getPolyline();_1f.oRoute=this.m_oDir.getRoute(0);var _20,_21,_22,_23,_24,_25,_26;_20=this.m_oDir.getRoute(0);_21=_20.getNumSteps();for(var _27=0;_27<_21;_27++){_22=_20.getStep(_27);_24=_22.getDistance().meters;_25=_22.getDescriptionHtml();_26=GoogleTripRouteRequest.isHighwayStep(_25);if(_26){_1f.iDistHighway+=_24;}else{_1f.iDistCity+=_24;}}this.m_oDir=null;this.m_oPacket=gTripCalculator.server(new Functor(this,this._calculationResult,[_1f]),true).CalculateVehicleConsumption(this.m_sKey,this.m_iStepIdx,_1f.iDistHighway,_1f.iDistCity,this.m_oWaypointA,this.m_oWaypointB);};GoogleTripRouteRequest.prototype._calculationResult=function(_28,_29){if(_29!=null){if(app.xmlrpc.fault(_29)){this.m_oResult=_29;}else{for(var i in _29){_28[i]=_29[i];}this.m_oResult=_28;}this.m_oPacket=null;this.m_bComplete=true;var _2b=this.m_oCallback;this.m_oCallback=null;if(typeof (_2b)=="object"&&app.isFunction(_2b.fire)){_2b.fire([this.m_oResult]);}}};GoogleTripRouteRequest.prototype._directionsError=function(){var _2c=this.m_oDir.getStatus().code;var _2d="";switch(_2c){case G_GEO_UNKNOWN_ADDRESS:_2d="No corresponding geographic location could be found for one of the specified addresses. This may be due to the fact that the address is relatively new, or it may be incorrect.";break;case G_GEO_SERVER_ERROR:_2d="A geocoding or directions request could not be successfully processed, yet the exact reason for the failure is not known.";break;case G_GEO_MISSING_ADDRESS:case G_GEO_MISSING_QUERY:_2d="The HTTP q parameter was either missing or had no value. For geocoder requests, this means that an empty address was specified as input. For directions requests, this means that no query was specified in the input.";break;case G_GEO_BAD_KEY:_2d="The given key is either invalid or does not match the domain for which it was given.";break;case G_GEO_BAD_REQUEST:_2d="A directions request could not be successfully parsed";break;case G_GEO_UNAVAILABLE_ADDRESS:_2d="The geocode for the given address or the route for the given directions query cannot be returned due to legal or contractual reasons.";break;case G_GEO_UNKNOWN_DIRECTIONS:_2d="The GDirections object could not compute directions between the points mentioned in the query. This is usually because there is no route available between the two points, or because we do not have data for routing in that region.";break;default:_2d="An unknown error occurred";break;}this.m_bComplete=true;this.m_oResult=new XMLRPCFault(_2c,_2d);this.m_oDir=null;var _2e=this.m_oCallback;this.m_oCallback=null;if(typeof (_2e)=="object"&&app.isFunction(_2e.fire)){_2e.fire([this.m_oResult]);}};GoogleTripRouteRequest.isHighwayStep=function(_2f){if(!this.m_highway_regexps){this.m_highway_regexps=[new RegExp(/\bhwy(\s|-)?\d+\b/gi),new RegExp(/\b[a-z]\d+\b/gi),new RegExp(/\b(aut|autoroute|auto route)(\s|-)\d+\b/gi),new RegExp(/\b[a-z]{1,2}-\d+\b/gi),new RegExp(/\b(fwy|freeway|hwy|highway)\b/gi)];}for(var i=0;i<this.m_highway_regexps.length;i++){if(null!=_2f.match(this.m_highway_regexps[i])){return true;}}return false;};function TripSteps(){this.m_calculation_key=null;this.m_calculated=false;this.m_dirty=false;this.m_search_panel=false;return this;};TripSteps.REQUEST_ON_LOAD=false;TripSteps.prototype.searchResults=function(_31){var p=this.m_search_panel;if(p==false){p=this.m_search_panel=app.createElement("div",$("maincontainer"),false);p.className="airport-search-panel";p.hide();p.setPosition("absolute");}if(_31){var _33=dojo.coords(_31);var _34=dojo.coords($("maincontainer"));p.show();p.moveTo(_33.x-_34.x-1,_33.y-_34.y+17);}return p;};TripSteps.prototype.init=function(_35,sTo,_37){this.searchResults().hide();if(!app.isObject(_37)){_37={};}_35=app.rString(_35);sTo=app.rString(sTo);this.m_eDiv=app.el("trip_steps_panel");this.m_eDiv.innerHTML="";this.m_aSteps=[];this._addStep("clone_trip_input_vehicle");var _38=false;var _39=this.getTripVehicleSels();if(app.isuuid(_37.iModel)){_39[0].value=_37["iModel"];}else{if(_37.iModel>0){_39[0].style.display=_39[1].style.display="none";_39[2].style.display="";_39[0].value=_37["iYear"];mOblu().setSelOpts(_39[1],_37["aMakes"],_37["iMake"]);mOblu().setSelOpts(_39[2],_37["aModels"],_37["iModel"]);_38="clone_trip_input_leaving";}else{if(_37.iMode>0){_39[0].value=_37["iMode"];if(_37["iMode"]==EnumTripModes.Airplane){_38="clone_trip_input_flying";}else{_38="clone_trip_input_leaving";}}}}if(_35.length||sTo.length){_38="clone_trip_input_leaving";}if(_38!==false){this._addStep(_38);if(_38=="clone_trip_input_leaving"){if(!(_39[0].value>0)&&!app.isuuid(_39[0].value)){_39[0].value=EnumTripModes.Automobile;}this.getStep(1).eStep.getElementsByTagName("input")[0].value=unescape(_35).replace(/\+/g," ");this.getStep(2).eStep.getElementsByTagName("input")[0].value=unescape(sTo).replace(/\+/g," ");if(_35.length&&sTo.length){setTimeout(function(){gTripSteps.LnkCalculate();},1);}}else{if(_38=="clone_trip_input_flying"){var _3a=this.getStep(1).eStep.getElementsByTagName("input")[0],_3b=this.getStep(2).eStep.getElementsByTagName("input")[0],_3c=this.getStep(1).eStep.getElementsByTagName("img")[0],_3d=this.getStep(2).eStep.getElementsByTagName("img")[0];var _3e,_3f;if((_3e=app.getParam("iAir1"))>0){_3a.value=unescape(app.getParam("sTripAir1").replace(/\+/g," "));_3a.setAttribute("idAirport",_3e);_3a.setAttribute("gps",unescape(app.getParam("iGps1").replace(/\+/g," ")));_3c.style.display="";}if((_3f=app.getParam("iAir2"))>0){_3b.value=unescape(app.getParam("sTripAir2").replace(/\+/g," "));_3b.setAttribute("idAirport",_3f);_3b.setAttribute("gps",unescape(app.getParam("iGps2").replace(/\+/g," ")));_3d.style.display="";}}}}this.msRedirectOnSaveUrl=_37.sRedirectOnSaveUrl;this.inited=true;};TripSteps.prototype.addFromTo=function(_40,sTo){var _42,_43=this.m_eDiv.firstChild;while(_43){if(_43.getAttribute&&_43.getElementsByTagName){_42=_43.getAttribute("sStepID");if(_42=="clone_trip_input_leaving"){return;}}_43=_43.nextSibling;}this.getStep(1).eStep.getElementsByTagName("input")[0].value=unescape(_40).replace(/\+/g," ");this.getStep(2).eStep.getElementsByTagName("input")[0].value=unescape(sTo).replace(/\+/g," ");if(_40.length&&sTo.length){setTimeout(function(){gTripSteps.LnkCalculate();},1);}var _44=this.getTripVehicleSels();var _45=aSels[0].value;if(EnumTripModes.exists(aSels[0].value)){return aSels[0].value;}};TripSteps.prototype.reset=function(){this.m_dirty=false;this.abortRequest();this.init();gTripLayout.hideColumn();};TripSteps.prototype.getStep=function(i){i=app.rInt(parseInt(i),-1);if(i<0||i>=this.m_aSteps.length){return null;}return this.m_aSteps[i];};TripSteps.prototype.getStepCount=function(){return this.m_aSteps.length;};TripSteps.prototype.isCalculating=function(){return (this.m_calculation_key!==null);};TripSteps.prototype.dirty=function(){this.m_dirty=true;};TripSteps.prototype.isDirty=function(){return this.m_dirty==true;};TripSteps.prototype.isCalculated=function(){return this.m_calculated==true;};TripSteps.prototype.isFlight=function(){var _47=this.getTripVehicleSels();return (_47[0].value==EnumTripModes.Airplane);};TripSteps.prototype._addStepIf=function(_48,_49,_4a){var _4b,_4c=this.m_eDiv.firstChild;while(_4c){if(_4c.getAttribute&&_4c.getElementsByTagName){_4b=_4c.getAttribute("sStepID");if(_4b==_48){return;}}_4c=_4c.nextSibling;}this._addStep(_48,_49,_4a);};TripSteps.prototype._addStep=function(_4d,_4e,_4f){var _50=this;var _51=app.el(_4d).cloneNode(true);_51.id="";_51.setAttribute("sStepID",_4d);this.m_eDiv.appendChild(_51);this.m_aSteps.push({eStep:_51,sStep:_4d});var _52=_51.getElementsByTagName("INPUT");for(var i=0;i<_52.length;i++){app.addEvent(_52[i],"change",function(){gTripSteps.dirty();});}if(_4f){return _51;}var _54=_51.getElementsByTagName("A");switch(_4d){case "clone_trip_question_start":_54[0].onclick=function(){_50.LnkStartDrivingLand();return false;};_54[1].onclick=function(){_50.LnkStartDrivingAir();return false;};_54[2].onclick=function(){_50.LnkStartFlying();return false;};break;case "clone_trip_question_driving":_54[0].onclick=function(){_50.LnkDrivingToAirport();return false;};_54[1].onclick=function(){_50.LnkOtherDestination();return false;};break;case "clone_trip_question_flying":_54[0].onclick=function(){_50.LnkDone();return false;};_54[1].onclick=function(){_50.LnkAirConnection();return false;};_54[2].onclick=function(){_50.LnkLandConnection();return false;};break;case "clone_trip_question_arriving":_54[0].onclick=function(){_50.LnkDone();return false;};_54[1].onclick=function(){_50.LnkStartFlying();return false;};_54[2].onclick=function(){_50.LnkOtherDestination();return false;};break;case "clone_trip_question_vehicle":_54[0].onclick=function(){_50.LnkCarSelect();return false;};_54[1].onclick=function(){_50.LnkCarSkip();return false;};break;case "clone_trip_question_done":_54[0].onclick=function(){_50.LnkCalculate();return false;};_54[1].onclick=function(){_50.LnkAddDest();return false;};break;case "clone_trip_input_leaving":this._addStep("clone_trip_input_driving");break;case "clone_trip_input_flying":this._setupFlightSearch(_51.getElementsByTagName("INPUT")[0],_51.getElementsByTagName("IMG")[0]);this._addStep("clone_trip_input_connection");break;case "clone_trip_input_driving":this._addStep("clone_trip_question_done");break;case "clone_trip_input_connection":this._setupFlightSearch(_51.getElementsByTagName("INPUT")[0],_51.getElementsByTagName("IMG")[0]);this._addStep("clone_trip_question_done");break;case "clone_trip_input_vehicle":var _55=_51.getElementsByTagName("SELECT");var _56=_55[0].options;var _57="";this._setupCarSelectors(_55,_57);break;}return _51;};TripSteps.prototype._setupFlightSearch=function(_58,_59){var _5a=250;app.addEvent(_58,"keydown",dojo.hitch(this,function(){_58.setAttribute("idAirport",0);_59.style.display="none";this.searchResults().hide();clearTimeout(this.__searchTimeout);var _5b=_58.getAttribute("sLastValue");if(_5b==null){_5b="";}if(_5b!=_58.value){_58.setAttribute("sLastValue",_58.value);this.__searchTimeout=setTimeout(dojo.hitch(this,function(){this.doFlightSearch(_58,_59,1);}),_5a);}}));};TripSteps.prototype.doFlightSearch=function(_5c,_5d,_5e){if(this.__searchPacket){this.__searchPacket.Abort();}_5c.setAttribute("idAirport",0);_5d.style.display="none";var _5f=this.searchResults(_5c);this.searchResults().innerHTML="Searching...";_5f.onclick=function(){};var _60=function(E){app.removeEvent(window,"click",_60);_5f.hide();};this.__searchPacket=gTripCalculator.server(dojo.hitch(this,function(_62){this.__searchPacket=null;if(_62!=undefined){if(app.xmlrpc.fault(_62,false)){_5f.innerHTML="";var _63=document.createElement("div");_63.innerText=_62.faultString;_63.className="error-block";var _64=document.createElement("a");_64.href="javascript:void(0)";_64.onclick=function(){_5f.hide();};_64.className="airport-search-link";_64.innerHTML="Close";_5f.appendChild(_63);_5f.appendChild(_64);}else{if(_62.aAirports.length==0){_5f.innerHTML="No matches found";}else{_5f.innerHTML="";var _65=_62.aAirports;for(var i=0;i<_65.length;i++){var _67=document.createElement("div");var _68=document.createElement("a");_67.className="airport-search-entry";_68.innerHTML=_65[i].sHtml;_68.setAttribute("sAirport",_65[i].sAirport);_68.setAttribute("idAirport",_65[i].idAirport);_68.setAttribute("gps",_65[i].fLat+","+_65[i].fLng);_68.href="javascript:void(0)";_68.onclick=function(){_5f.hide();_5c.value=this.getAttribute("sAirport");_5c.setAttribute("idAirport",this.getAttribute("idAirport"));_5c.setAttribute("gps",this.getAttribute("gps"));_5d.style.display="";};_67.appendChild(_68);_5f.appendChild(_67);}if(_62.bMoreResults){var _64=document.createElement("a");_64.href="javascript:void(0)";_64.onclick=function(){gTripSteps.doFlightSearch(_5c,_5d,_5e+1);};_64.className="airport-search-link";_64.innerHTML="More Results";_5f.appendChild(_64);}}}}}),true).SearchAirports(_5c.value,_5e);};TripSteps.prototype._replaceStep=function(_69,_6a){this._deleteStep();this._addStep(_69,_6a);};TripSteps.prototype._deleteStep=function(){var _6b=this.m_eDiv.lastChild;this.m_eDiv.removeChild(_6b);this.m_aSteps.pop();};TripSteps.prototype._setupCarSelectors=function(_6c,_6d){var _6e={year:_6c[0],make:_6c[1],model:_6c[2],load:_6c[3]};var _6f=this;_6c[0].value=_6d;_6c[0].setAttribute("_value",_6c[0].value);_6c[0].onchange=function(){_6f.onCarYearChanged(_6e);};_6c[1].onchange=function(){_6f.onCarMakeChanged(_6e);};_6c[2].onchange=function(){_6f.onCarModelChanged(_6e);};};TripSteps.prototype._setupFlightSelectors=function(_70){var _71={country:_70[0],state:_70[1],airport:_70[2],load:_70[3]};var _72=this;_70[0].onchange=function(){_72.onPlaneCountryChanged(_71);};_70[1].onchange=function(){_72.onPlaneStateChanged(_71);};_70[2].onchange=function(){_72.onPlaneAirportChanged(_71);};};TripSteps.prototype.LnkStartDrivingAir=function(){this.dirty();this._replaceStep("clone_trip_input_leaving");this._deleteStep();this._addStep("clone_trip_input_flying");};TripSteps.prototype.LnkStartDrivingLand=function(){this.dirty();this._replaceStep("clone_trip_input_leaving");this._deleteStep();this._addStep("clone_trip_input_driving");};TripSteps.prototype.LnkStartFlying=function(){this.dirty();this._replaceStep("clone_trip_input_flying");};TripSteps.prototype.LnkDrivingToAirport=function(){this.dirty();this._replaceStep("clone_trip_input_flying");};TripSteps.prototype.LnkOtherDestination=function(){this.dirty();this._replaceStep("clone_trip_input_driving");};TripSteps.prototype.LnkAddDest=function(){this.dirty();this._deleteStep();if(this.isFlight()){this._addStep("clone_trip_input_connection");}else{this._addStep("clone_trip_input_driving");}};TripSteps.prototype.LnkCarSelect=function(){this.dirty();this._replaceStep("clone_trip_input_vehicle","");};TripSteps.prototype.LnkCarSkip=function(){this.dirty();this._replaceStep("clone_trip_input_vehicle","0");};TripSteps.prototype.LnkCarReset=function(_73){this.dirty();_73[0].value=_73[1].value=_73[2].value="";_73[0].style.display="";_73[1].style.display=_73[2].style.display="none";};TripSteps.prototype.LnkDone=function(){this.dirty();if(this.hasLandWaypoints()){this._replaceStep("clone_trip_input_vehicle","0");}else{this._replaceStep("clone_trip_question_done");}};TripSteps.prototype.LnkAirConnection=function(){this.dirty();this._replaceStep("clone_trip_input_connection");};TripSteps.prototype.LnkLandConnection=function(){this.dirty();this._replaceStep("clone_trip_question_arriving");};TripSteps.prototype.LnkCalculate=function(){this.beginRequest();if(this.m_iVehicle==EnumTripModes.Automobile){var _74=this.getTripVehicleSels();if(_74){_74[0].value=EnumTripModes.Automobile;_74[0].style.display="";_74[1].value=_74[2].value="";_74[1].style.display=_74[2].style.display="none";}}};TripSteps.prototype.hasLandWaypoints=function(){var _75=this.getTripWaypoints();var _76=false;var _77,_78;for(var i=0;i<_75.length;i++){if(i+1<_75.length){_77=_75[i];_78=_75[i+1];if((_77.sStep=="clone_trip_input_connection"&&_78.sStep=="clone_trip_input_flying")||_77.eType==EnumTripWaypointTypes.LAND||_78.eType==EnumTripWaypointTypes.LAND){return true;}}}return false;};TripSteps.prototype.beginRequest=function(){this.abortRequest();this.m_calculated=false;this.m_dirty=false;gTripLayout.showColumn();gTripPanel.startProgress();this.m_aWaypoints=this.getTripWaypoints();this.m_iVehicle=this.getTripVehicle();this.m_aRouteRequests=[];var _7a,_7b,_7c,_7d=0,_7e=0;for(var i=0;i<this.m_aWaypoints.length;i++){if(i+1<this.m_aWaypoints.length){_7a=this.m_aWaypoints[i];_7b=this.m_aWaypoints[i+1];if(_7a.sStep=="clone_trip_input_connection"&&_7b.sStep=="clone_trip_input_flying"){_7c=new GoogleTripRouteRequest(i,_7a,_7b,this.m_iVehicle);_7d++;}else{if(_7a.eType==EnumTripWaypointTypes.AIR&&_7b.eType==EnumTripWaypointTypes.AIR){_7c=new mObluTripRouteRequest(i,_7a,_7b);_7e++;}else{_7c=new GoogleTripRouteRequest(i,_7a,_7b);_7d++;}}this.m_aRouteRequests.push(_7c);}}this.m_pktBegin=gTripCalculator.server(new Functor(this,this._beginRequestResult),true).BeginTripCalculation(this.m_iVehicle,_7e,_7d,gTripCalculator.getUUID());};TripSteps.prototype._beginRequestResult=function(_80){this.m_pktBegin=null;if(app.xmlrpc.fault(_80)){this.m_calculation_key=null;gTripPanel.endProgress();gTripPanel.beginErrors();gTripPanel.addStartError(_80);gTripPanel.endErrors();}else{this.m_calculation_key=_80;for(var i=0;i<this.m_aRouteRequests.length;i++){this.m_aRouteRequests[i].run(this.m_calculation_key,new Functor(this,this.onRequestComplete,[i]));}}};TripSteps.prototype.abortRequest=function(){if(this.m_pktBegin){this.m_pktBegin.Abort();this.m_pktBegin=null;}if(this.m_aRouteRequests){var _82=this.m_aRouteRequests.length;for(var i=0;i<_82;i++){this.m_aRouteRequests[i].abort();}this.m_aRouteRequests=null;}this.m_calculation_key=null;};TripSteps.prototype.onRequestComplete=function(_84,_85){var _86=this.m_aRouteRequests.length;var _87=0;for(var i=0;i<_86;i++){if(this.m_aRouteRequests[i].isComplete()){_87++;}}gTripPanel.setProgress(_87/_86*100);if(_87==_86){var _89,_85,_8a=[];for(var i=0;i<this.m_aRouteRequests.length;i++){_89=this.m_aRouteRequests[i];_85=this.m_aRouteRequests[i].getResult();if(app.xmlrpc.fault(_85)){_8a.push({oResult:_85,iRequestIndex:i});}}if(_8a.length==0){setTimeout(function(){gTripSteps.m_calculation_key=null;gTripSteps.m_calculated=true;gTripPanel.endProgress();gTripCalculator.updateInterface();},500);}else{setTimeout(function(){gTripSteps.m_calculation_key=null;gTripPanel.endProgress();gTripPanel.beginErrors();for(var i=0;i<_8a.length;i++){gTripPanel.addError(_8a,i);}gTripPanel.endErrors();},500);}}};TripSteps.prototype.emailRoute=function(){webbler().renderDialog("{21faac59-0f62-102b-b3de-cbcda2c4ef62}",{"tripid":gTripCalculator.getUUID()});};TripSteps.prototype.getRouteRequests=function(){return this.m_aRouteRequests;};TripSteps.prototype.saveRoute=function(){if(!app.loggedin()){webbler().renderDialog("{7ba81ea8-ff1e-102a-aeff-b9c19dcb2557}",{"title":stm().table("Com_mOblu_Trips").string("msg_login_to_save_title"),"message":stm().table("Com_mOblu_Trips").string("msg_login_to_save"),"flags":DLG_YES_NO_CANCEL|DLG_DEFAULT3,"labels":[stm().table("Com_mOblu_Trips").string("btn_register"),stm().table("Com_mOblu_Trips").string("btn_login"),null]},new Functor(this,this.visitorSaveResult));}else{if(!app.isuuid(gTripCalculator.getUUID())){var _8c=gTripDetails.createPayload();if(_8c._name.length>0){this.newSaveResult(_8c,_8c._name);}else{webbler().renderDialog("{61cf1d29-0b8c-102b-b131-c1216490a58e}",{"title":stm().table("Com_mOblu_Trips").string("msg_save_new_trip_prompt_title"),"message":stm().table("Com_mOblu_Trips").string("msg_save_new_trip_prompt"),"default":stm().table("Com_mOblu_Trips").string("str_default_trip_name")},new Functor(this,this.newSaveResult,[_8c]));}}else{}}};TripSteps.prototype.visitorSaveResult=function(_8d){if(_8d!=DLG_CANCEL){gTripCalculator.server(function(){if(_8d==DLG_YES){var loc="/settings?returnlink="+app.base64.encode(window.location.href);loc+="&register";window.location=loc;}else{openSignInForm();}}).SaveTripOnLoginOrRegister();}};TripSteps.prototype.redirectOnSave=function(){if(this.msRedirectOnSaveUrl){window.location=this.msRedirectOnSaveUrl;return true;}return false;};TripSteps.prototype.newSaveResult=function(_8f,_90){if(_90!==null){if(_90.length==0){mOblu().showMessage("Error",stm().table("Com_mOblu_Trips").string("msg_err_trip_name_length"),new Functor(this,this.saveRoute));}else{_8f._name=_90;gTripCalculator.server(function(_91){if(!mOblu().showFault(_91,true)){if(!gTripSteps.redirectOnSave()){var _92=gTripCalculator.server(function(_93){gTripCalculator.setTripSelsOpts(_93,_91);gTripCalculator.loadTrip(_91,true,function(){gTripSteps.m_dirty=false;app.el("trip_calc_savetrip").style.display="none";});}).GetTripList();}}}).SaveRoute(_8f);}}};TripSteps.prototype.loadFromRoute=function(_94,_95){this.reset();var _96,_97,_98,_99,_9a,_9b,_9c;var _9d=_94.oVehicle?_94.oVehicle.iYear:(_94.vehicle?_94.vehicle:"");var _9a=this.getTripVehicleSels();this._setupCarSelectors(_9a,_9d);if(_94.oVehicle&&!app.isuuid(_9d)){_9a[0].style.display="none";mOblu().setSelOpts(_9a[1],_94.oVehicle.aMakeOpts,_94.oVehicle.iMake);_9a[1].style.display="none";mOblu().setSelOpts(_9a[2],_94.oVehicle.aModelOpts,_94.oVehicle.iModel);_9a[2].style.display="";}else{_9a[0].style.display="";_9a[1].style.display=_9a[2].style.display="none";}for(var i=0;i<_94.waypoints.length;i++){_96=_94.waypoints[i];switch(_96.iStep){case 0:_97="clone_trip_input_leaving";break;case 1:_97="clone_trip_input_driving";break;case 2:_97=(i>0)?"clone_trip_input_connection":"clone_trip_input_flying";break;case 3:_97="clone_trip_input_connection";break;}_98=this._addStep(_97,null,true);if(_96.eType==EnumTripWaypointTypes.LAND){_99=_98.getElementsByTagName("INPUT");_99[0].value=_96.uData;}else{_9b=_98.getElementsByTagName("INPUT")[0];_9c=_98.getElementsByTagName("IMG")[0];this._setupFlightSearch(_9b,_9c);_9b.value=_96.sAirport;_9b.setAttribute("idAirport",_96.uData);_9b.setAttribute("gps",_96.gps);_9c.style.display="";}}this._addStep("clone_trip_question_done");if(TripSteps.REQUEST_ON_LOAD||_95){this.beginRequest();}};TripSteps.prototype.getTripWaypoints=function(){var _9f=[];var _a0,_a1,_a2,_a3,_a4;var _a5=this.m_eDiv.firstChild;while(_a5){if(_a5.getAttribute&&_a5.getElementsByTagName){_a1=_a5.getElementsByTagName("INPUT");_a2=_a5.getElementsByTagName("SELECT");_a4=_a5.getAttribute("sStepID");switch(_a4){case "clone_trip_input_leaving":case "clone_trip_input_driving":_9f.push(new TripWaypoint(EnumTripWaypointTypes.LAND,_a1[0].value.trim(),_a1[0].value.trim(),0,_a4,_a1[0].value.trim()));break;case "clone_trip_input_flying":case "clone_trip_input_connection":_9f.push(this._createFlightWaypoint(_a1[0],_a4));break;}}_a5=_a5.nextSibling;}return _9f;};TripSteps.prototype.getTripVehicle=function(){var _a6=this.getTripVehicleSels();if(_a6){if(app.isuuid(_a6[0].value)){return _a6[0].value;}if(EnumTripModes.exists(_a6[0].value)){return _a6[0].value;}if(_a6[2].selectedIndex>-1){return _a6[2].value;}}return EnumTripModes.Automobile;};TripSteps.prototype.getTripVehicleSels=function(){var _a7;var _a8=this.m_eDiv.firstChild;while(_a8){if(_a8.getAttribute&&_a8.getElementsByTagName){if(_a8.getAttribute("sStepID")=="clone_trip_input_vehicle"){var _a9=_a8.getElementsByTagName("SELECT");return _a9&&_a9.length>0?_a9:false;}}_a8=_a8.nextSibling;}return false;};TripSteps.prototype._createFlightWaypoint=function(_aa,_ab){var _ac="";sDesc="",iAirport=0;iAirport=parseInt(_aa.getAttribute("idAirport"));if(iAirport>0){_ac=_aa.getAttribute("gps");sDesc=_aa.value;}return new TripWaypoint(EnumTripWaypointTypes.AIR,_ac,sDesc,iAirport,_ab,sDesc);};TripSteps.prototype.onCarYearChanged=function(_ad){this.dirty();var _ae=_ad.year.value;var _af=_ad.year.getAttribute("_value");if(!app.isuuid(_ad.year.value)){switch(_ae){case "":case "-1":case "-2":_ad.year.value=_af;break;default:_ad.year.setAttribute("_value",_ae);if(_af==EnumTripModes.Airplane||_ae==EnumTripModes.Airplane){while(this.getStepCount()>1){this._deleteStep();}}if(!EnumTripModes.exists(_ae)){_ad.year.style.display="none";_ad.load.style.display="";var _b0=gTripCalculator.server(new Functor(this,this.onCarYearChangedResult,[_ad]),true).GetCarMakeList(_ad.year.value);}else{if(this.isFlight()){this._addStepIf("clone_trip_input_flying");}else{this._addStepIf("clone_trip_input_leaving");}}}}else{if(_af==EnumTripModes.Airplane||_ae==EnumTripModes.Airplane){while(this.getStepCount()>1){this._deleteStep();}}this._addStepIf("clone_trip_input_leaving");}};TripSteps.prototype.onCarYearChangedResult=function(_b1,_b2){_b1.load.style.display="none";if(!app.xmlrpc.fault(_b2,true)){_b1.make.style.display="";mOblu().setSelOpts(_b1.make,_b2,"");}else{_b1.year.style.display="";}};TripSteps.prototype.onCarMakeChanged=function(_b3){this.dirty();_b3.make.style.display="none";if(_b3.make.value==""){_b3.year.style.display="";}else{_b3.load.style.display="";var _b4=gTripCalculator.server(new Functor(this,this.onCarMakeChangedResult,[_b3]),true).GetCarModelList(_b3.make.value);}};TripSteps.prototype.onCarMakeChangedResult=function(_b5,_b6){_b5.load.style.display="none";if(!app.xmlrpc.fault(_b6,true)){_b5.model.style.display="";mOblu().setSelOpts(_b5.model,_b6,"");}else{_b5.make.style.display="";}};TripSteps.prototype.onCarModelChanged=function(_b7){this.dirty();if(_b7.model.value==""){_b7.model.style.display="none";_b7.make.style.display="";}else{this._addStepIf("clone_trip_input_leaving");}};TripSteps.prototype.onPlaneCountryChanged=function(_b8,_b9){this.dirty();if(_b8.country.value!=""){_b8.country.style.display="none";_b8.load.style.display="";var _ba=gTripCalculator.server(new Functor(this,this.onPlaneCountryChangedResult,[_b8]),true).GetStateList(_b8.country.value);}};TripSteps.prototype.onPlaneCountryChangedResult=function(_bb,_bc){if(!app.xmlrpc.fault(_bc,true)){if(_bc.length==0){var _bd=gTripCalculator.server(new Functor(this,this.onPlaneCountryChangedResult2,[_bb]),true).GetAirportList(_bb.country.value);}else{_bb.load.style.display="none";_bb.state.style.display="";_bb.airport.setAttribute("back_to_country","false");mOblu().setSelOpts(_bb.state,_bc,"");mOblu().setSelOpts(_bb.airport,[],"");}}else{_bb.load.style.display="none";_bb.country.style.display="";}};TripSteps.prototype.onPlaneCountryChangedResult2=function(_be,_bf){if(!app.xmlrpc.fault(_bf,true)){_be.load.style.display="none";_be.airport.style.display="";_be.airport.setAttribute("back_to_country","true");mOblu().setSelOpts(_be.state,[],"");mOblu().setSelOpts(_be.airport,_bf,"",["gps"]);}else{_be.load.style.display="none";_be.country.style.display="";}};TripSteps.prototype.onPlaneStateChanged=function(_c0){this.dirty();_c0.state.style.display="none";if(_c0.state.value==""){_c0.country.style.display="";}else{_c0.load.style.display="";var _c1=gTripCalculator.server(new Functor(this,this.onPlaneStateChangedResult,[_c0]),true).GetAirportList(_c0.country.value,_c0.state.value);}};TripSteps.prototype.onPlaneStateChangedResult=function(_c2,_c3){if(!app.xmlrpc.fault(_c3,true)){_c2.load.style.display="none";_c2.airport.style.display="";mOblu().setSelOpts(_c2.airport,_c3,"",["gps"]);}else{_c2.load.style.display="none";_c2.state.style.display="";}};TripSteps.prototype.onPlaneAirportChanged=function(_c4){this.dirty();if(_c4.airport.value==""){_c4.airport.style.display="none";var _c5=(_c4.airport.getAttribute("back_to_country")=="true")?_c4.country:_c4.state;_c5.style.display="";}};TripSteps.prototype.onToggleClick=function(){TripConversions.setIsMetric(!TripConversions.getIsMetric());var _c6=app.el("trip_steps_toggle").getElementsByTagName("span");_c6[1].style.fontWeight=TripConversions.getIsMetric()?"bold":"normal";_c6[3].style.fontWeight=TripConversions.getIsMetric()?"normal":"bold";if(!this.isCalculating()){gTripCalculator.updateInterface(true);}return false;};function TripDetails(){this.m_dirty=false;this.inited=false;return this;};TripDetails.CAL_DATE_FMT="%m/%d/%Y %l:%M%p";TripDetails.prototype.init=function(_c7){var e;e=app.el("ctl_trip_details_name");if(e){this.ctl_name=app.el("ctl_trip_details_name");this.ctl_cat=app.el("ctl_trip_details_cat");this.ctl_roundtrip=app.el("ctl_trip_details_roundtrip");this.ctl_start=app.el("ctl_trip_details_start");this.ctl_repeat=app.el("ctl_trip_details_repeat");this.btn_repeat=app.el("ctl_trip_details_repeat_custom");this.ctl_groups=app.el("ctl_trip_details_groups");this.btn_groups=app.el("ctl_trip_details_groups_button");this.ctl_name.onchange=this.ctl_cat.onchange=this.ctl_roundtrip.onclick=function(){gTripDetails.dirty();};this.ctl_email=app.el("ctl_trip_details_email");this.ctl_revert=app.el("ctl_trip_details_revert");this.ctl_delete=app.el("ctl_trip_details_delete");this.ctl_copy=app.el("ctl_trip_details_copy");this.ctl_update=app.el("ctl_trip_details_update");this.ctl_email.onclick=function(){gTripSteps.emailRoute();return false;};this.ctl_revert.onclick=function(){gTripDetails.onRevertClick();return false;};this.ctl_delete.onclick=function(){gTripDetails.onDeleteClick();return false;};this.ctl_copy.onclick=function(){gTripDetails.onCopyClick();return false;};this.ctl_update.onclick=function(){gTripDetails.onUpdateClick();return false;};this.ctl_repeat.onchange=function(){gTripDetails.onRepeatSelChanged();};this.btn_repeat.onclick=function(){gTripDetails.onRepeatCustomClick();};this.btn_groups.onclick=function(){gTripDetails.onGroupsClick();};this.cal_start=Calendar.setup({onUpdate:function(){gTripDetails.dirty();},inputField:this.ctl_start,ifFormat:TripDetails.CAL_DATE_FMT,singleClick:true,showsTime:true,timeFormat:"12"});this.reset();if(app.isObject(_c7)){this.loadDetails(_c7);}}this.inited=true;};TripDetails.prototype.dirty=function(){this.m_dirty=true;};TripDetails.prototype.isDirty=function(){return this.m_dirty==true;};TripDetails.prototype.onRepeatSelChanged=function(){var _c9=this.ctl_repeat.value=="CUSTOM";this.btn_repeat.style.visibility=_c9?"visible":"hidden";if(_c9){this.doCustomRRule();}else{this.ctl_repeat.setAttribute("rrule",this.ctl_repeat.value);this.dirty();}};TripDetails.prototype.onRepeatCustomClick=function(){this.doCustomRRule();};TripDetails.prototype.onGroupsClick=function(){this.doGroupsSel();};TripDetails.prototype.doCustomRRule=function(){var cb=new Functor(this,this.doCustomRRuleResult);var _cb="Trip Repeat Schedule";var _cc=this.ctl_repeat.getAttribute("rrule");webbler().renderDialog("{e7e7b70f-eb47-102a-82eb-0bda25296065}",{"dialog_title":_cb,"rrule":_cc},cb,true);};TripDetails.prototype.doCustomRRuleResult=function(_cd){if(_cd===null){_cd=this.ctl_repeat.getAttribute("rrule");}else{this.dirty();}this.updateRRule(_cd);};TripDetails.prototype.doGroupsSel=function(){var cb=new Functor(this,this.doGroupsSelResult);var _cf=String(this.ctl_groups.getAttribute("groups")).split(",");webbler().renderDialog("{24ca2ad5-3024-102d-a0b8-0cb1538dc947}",{"groups":_cf},cb,true);};TripDetails.prototype.doGroupsSelResult=function(_d0){if(_d0!==null){this.dirty();this.updateGroups(_d0);}};TripDetails.prototype.updateGroups=function(_d1){if(app.isObject(_d1)){this.ctl_groups.setAttribute("groups",_d1.groups.join(","));var str="",len=0,_d4,_d5;for(var i=0;i<_d1.names.length;i++){_d4=_d1.names[i].replace(/\&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");_d5=_d1.codes[i].replace(/\&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");if(i>0){str+=", ";}str+="<a href=\"/groups/"+_d5+"/trips/\">"+_d4+"</a>";len+=_d1.names[i].length;if(len>30){if(i<(_d1.names.length-1)){str+=", ...";}break;}}if(str.length==0){str="Add to a Group -->";}this.ctl_groups.innerHTML=str;}};TripDetails.prototype.updateRRule=function(_d7){this.ctl_repeat.setAttribute("rrule",_d7);var val=null;var _d9=this.ctl_repeat.options;for(var i=0;i<_d9.length;i++){if(_d7===_d9[i].value){this.ctl_repeat.value=String(_d7);this.btn_repeat.style.visibility="hidden";return;}}this.ctl_repeat.value="CUSTOM";this.btn_repeat.style.visibility="visible";};TripDetails.prototype.loadDetails=function(_db){if(app.isObject(_db)){if(_db.sName!==undefined){this.ctl_name.value=_db.sName;}if(_db.sCategory!==undefined){this.ctl_cat.value=_db.sCategory;}if(_db.bRoundTrip!==undefined){this.ctl_roundtrip.checked=_db.bRoundTrip;}if(_db.iStartDate!==undefined){this.ctl_start.value=new Date(_db.iStartDate*1000).print(TripDetails.CAL_DATE_FMT);}this.updateGroups(_db.oGroups);this.updateRRule(_db.sSchedule===undefined?"":_db.sSchedule);}};TripDetails.prototype.loadFromTrip=function(_dc){this.ctl_name.value=_dc["_name"];this.ctl_cat.value=_dc["_category"];this.ctl_roundtrip.checked=_dc["_roundtrip"];var _dd=_dc["_event"];if(_dd["start_date"]==0){this.setDefaultDates();}else{this.ctl_start.value=new Date(_dd["start_date"]*1000).print(TripDetails.CAL_DATE_FMT);}this.updateRRule(_dd["rrule"]==undefined?"":_dd["rrule"]);this.updateGroups(_dc["_groups"]);$("trip_buttons").style.display="";this.ctl_email.style.display="";this.ctl_revert.style.display="";this.ctl_delete.style.display=_dc["_access"]>=RIGHT_DELETE?"":"none";this.ctl_copy.style.display="";this.ctl_update.style.display=_dc["_access"]>=RIGHT_UPDATE?"":"none";};TripDetails.prototype.reset=function(){this.m_dirty=false;this.ctl_name.value="";this.ctl_cat.value=this.ctl_cat.options[0].value;this.ctl_roundtrip.checked=false;this.setDefaultDates();this.updateRRule("");$("trip_buttons").style.display="none";this.ctl_email.style.display="none";this.ctl_revert.style.display="none";this.ctl_delete.style.display="none";this.ctl_copy.style.display="none";this.ctl_update.style.display="none";};TripDetails.prototype.setDefaultDates=function(){var dS=new Date();dS.setHours(10,0,0,0);this.ctl_start.value=dS.print(TripDetails.CAL_DATE_FMT);};TripDetails.prototype.onRevertClick=function(){if(!gTripSteps.isCalculating()){if(gTripSteps.isDirty()||this.isDirty()){webbler().renderDialog("{7ba81ea8-ff1e-102a-aeff-b9c19dcb2557}",{"title":stm().table("Com_mOblu_Trips").string("msg_revert_confirm_title"),"message":stm().table("Com_mOblu_Trips").string("msg_revert_confirm"),"flags":DLG_OK_CANCEL|DLG_DEFAULT2,"labels":[stm().table("Com_mOblu_Trips").string("btn_revert"),null]},new Functor(this,this.onRevertClickResult));}else{this.onRevertClickResult(DLG_OK);}}};TripDetails.prototype.onRevertClickResult=function(_df){if(_df===DLG_OK){gTripCalculator.loadTrip(gTripCalculator.getUUID());}};TripDetails.prototype.onDeleteClick=function(){if(!gTripSteps.isCalculating()){webbler().renderDialog("{7ba81ea8-ff1e-102a-aeff-b9c19dcb2557}",{"title":stm().table("Com_mOblu_Trips").string("msg_delete_confirm_title"),"message":stm().table("Com_mOblu_Trips").string("msg_delete_confirm"),"flags":DLG_OK_CANCEL|DLG_DEFAULT2,"labels":[stm().table("Com_mOblu_Trips").string("btn_delete"),null]},new Functor(this,this.onDeleteClickResult));}};TripDetails.prototype.onDeleteClickResult=function(_e0){if(_e0===DLG_OK){gTripCalculator.server(function(out){if(!mOblu().showFault(out)){gTripDetails.reset();gTripSteps.reset();gTripCalculator.setUUID(EMPTY_UUID);gTripCalculator.setTripSelsOpts(out,-2);gTripDetails.closeDetails();}}).DeleteTrip(gTripCalculator.getUUID());}};TripDetails.prototype.onCopyClick=function(){if(!gTripSteps.isCalculating()){webbler().renderDialog("{61cf1d29-0b8c-102b-b131-c1216490a58e}",{"title":stm().table("Com_mOblu_Trips").string("msg_copy_trip_prompt_title"),"message":stm().table("Com_mOblu_Trips").string("msg_copy_trip_prompt"),"default":this.ctl_name.value.trim()},new Functor(this,this.onCopyResult));}};TripDetails.prototype.onCopyResult=function(_e2){if(_e2!==null){if(_e2.length==0){mOblu().showMessage("Error",stm().table("Com_mOblu_Trips").string("msg_err_trip_name_length"),new Functor(this,this.onCopyClick));}else{gTripCalculator.server(function(_e3){if(!mOblu().showFault(_e3,true)){var _e4=gTripCalculator.server(function(_e5){gTripCalculator.setTripSelsOpts(_e5,_e3);gTripCalculator.loadTrip(_e3,true);}).GetTripList();}}).CopyTrip(gTripCalculator.getUUID(),_e2);}}};TripDetails.prototype.onUpdateClick=function(){if(!gTripSteps.isCalculating()){var _e6=gTripSteps.isCalculated();var _e7=gTripSteps.isDirty();if(_e6){if(_e7){webbler().renderDialog("{7ba81ea8-ff1e-102a-aeff-b9c19dcb2557}",{"title":stm().table("Com_mOblu_Trips").string("msg_save_route_title"),"html":stm().table("Com_mOblu_Trips").string("msg_save_route_valid_and_dirty"),"flags":DLG_YES_NO_CANCEL|DLG_DEFAULT3,"labels":[stm().table("Com_mOblu_Trips").string("btn_savelast"),stm().table("Com_mOblu_Trips").string("btn_savedetails"),null]},new Functor(this,this.onUpdateClickResult));}else{this.onUpdateClickResult(DLG_YES);}}else{if(_e7){webbler().renderDialog("{7ba81ea8-ff1e-102a-aeff-b9c19dcb2557}",{"title":stm().table("Com_mOblu_Trips").string("msg_save_route_title"),"html":stm().table("Com_mOblu_Trips").string("msg_save_route_invalid_and_dirty"),"flags":DLG_OK_CANCEL|DLG_DEFAULT2,"labels":[stm().table("Com_mOblu_Trips").string("btn_savedetails"),null]},new Functor(this,this.onUpdateClickResult));}else{this.onUpdateClickResult(DLG_NO);}}}};TripDetails.prototype.onUpdateClickResult=function(_e8){if(_e8!==DLG_CANCEL){var _e9=_e8===DLG_YES;var _ea=this.createPayload();if(_ea._name.length==0){mOblu().showMessage("Error",stm().table("Com_mOblu_Trips").string("msg_err_trip_name_length"));}else{gTripCalculator.server(new Functor(this,function(_eb){if(!mOblu().showFault(_eb)){var _ec=_eb._category==0?_eb._name:(_eb._name+" ("+stm().table("Com_mOblu_Trips").string(EnumTripCategories[_eb._category])+") ");gTripCalculator.setTripSelsText(gTripCalculator.getUUID(),_ec);this.loadFromTrip(_eb);if(_e9){var _ed=_eb["_route"];if(_ed){gTripSteps.loadFromRoute(_ed);}else{gTripSteps.reset();}}}})).UpdateTrip(gTripCalculator.getUUID(),_ea,_e9);}}};TripDetails.prototype.createPayload=function(){var o={};o._name=this.ctl_name.value.trim();o._category=this.ctl_cat.value;o._roundtrip=this.ctl_roundtrip.checked;var e={};e.location="";e.start_date=Date.parseDate(this.ctl_start.value,TripDetails.CAL_DATE_FMT).getUTCTimeInSeconds();e.end_date=e.start_date+1;e.all_day=false;e.rrule=this.ctl_repeat.getAttribute("rrule");o._event=e;o._groups=this.ctl_groups.getAttribute("groups").split(",");return o;};function TripCalculator(){return this;};TripCalculator.prototype.init=function(_f0){this.m_oMap=new GMap2(app.el("trip_calc_gmap"));this.m_oPMap=new GMap2(app.el("trip_calc_gmap_print"));this.m_oMap.enableContinuousZoom();this.m_oMap.enableScrollWheelZoom();this.m_oMap.addControl(new GLargeMapControl());this.m_oMap.addControl(new GMapTypeControl());this.resetMap();this.bIsFromACommutingGroup=_f0.bIsFromACommutingGroup;this.inited=true;};TripCalculator.prototype.resetMap=function(){var _f1=new GLatLng(TRIP_CLIENT_LAT?TRIP_CLIENT_LAT:50,TRIP_CLIENT_LNG?TRIP_CLIENT_LNG:-100);var _f2=TRIP_CLIENT_LAT?4:3;this.m_oMap.setCenter(_f1,_f2);this.m_oPMap.setCenter(_f1,_f2);this.m_oMap.clearOverlays();this.m_oPMap.clearOverlays();};TripCalculator.prototype.isInited=function(){return (gTripCalculator.inited==true&&gTripSteps.inited==true&&gTripPanel.inited==true&&gTripLayout.inited==true&&gTripDetails.inited==true);};TripCalculator.prototype.getMap=function(){return this.m_oMap;};TripCalculator.prototype.getPMap=function(){return this.m_oPMap;};TripCalculator.prototype.getUUID=function(){return this.m_uuid;};TripCalculator.prototype.setUUID=function(_f3){return this.m_uuid=_f3;};TripCalculator.prototype.onTripSel=function(sel){if(sel.value!=EnumTripConsts.SEL_CREATE_TRIP&&!app.isuuid(sel.value)){sel.value=this.getUUID();}else{var _f5=app.isuuid(sel.value);var _f6=sel.value==EnumTripConsts.SEL_CREATE_TRIP;if(_f5){this.loadTrip(sel.value);}else{if(_f6){this.loadTrip();}}}};TripCalculator.prototype.setTripSelsEnabled=function(b){var a=this.getTripSels();for(var i=0;i<a.length;i++){a[i].disabled=!b;}};TripCalculator.prototype.setTripSelsValue=function(v){var a=this.getTripSels();for(var i=0;i<a.length;i++){a[i].value=v;}this.setUUID(v);};TripCalculator.prototype.setTripSelsText=function(v,t){var a=this.getTripSels();for(var i=0;i<a.length;i++){var o=a[i].options;for(j=0;j<o.length;j++){if(o[j].value==v){o[j].text=t;break;}}}};TripCalculator.prototype.setTripSelsOpts=function(opts,v){var a=this.getTripSels();for(var i=0;i<a.length;i++){mOblu().setSelOpts(a[i],opts,v);}};TripCalculator.prototype.getTripSels=function(){var e,a=[];e=app.el("myTripsSelCalc");if(e){a.push(e);}return a;};TripCalculator.prototype.loadTrip=function(_108,_109,oCB){_108=app.uuidval(_108);if(!this.mTripPkt){if(!app.isuuid(_108)){setTimeout(function(){gTripSteps.m_calculated=false;gTripCalculator.setUUID(_108);gTripDetails.reset();if(!_109){gTripSteps.reset();}Functor.fire(oCB);},1);}else{this.mTripPkt=gTripCalculator.server(new Functor(this,function(_10b){this.mTripPkt=null;if(!mOblu().showFault(_10b)){gTripSteps.m_calculated=false;this.setUUID(_108);if(_10b){gTripDetails.loadFromTrip(_10b);var _10c=_10b["_route"];if(!_109){if(_10c){gTripSteps.loadFromRoute(_10c);}else{gTripSteps.reset();}}}else{gTripDetails.reset();if(!_109){gTripSteps.reset();}}}Functor.fire(oCB);})).LoadTrip(_108);}}};TripCalculator.prototype.updateInterface=function(_10d){var _10e,_10f,_110,_111,_112,_113;var _114=gTripSteps.getRouteRequests();var oMap=this.getMap();var _116=this.getPMap();var _117=gTripPanel;if(_114){if(!_10d){oMap.clearOverlays();_116.clearOverlays();}_117.beginTrip();if(!_10d){var _118=new GLatLngBounds();}_117.addTripSummary(_114,function(){for(var i=0;i<_114.length;i++){_10e=_114[i];_10f=_10e.getResult();_111=_10f.oPolyline;_117.beginRoute();_117.addRouteSummary(_10e);if(_110=_10f.oRoute){_112=_110.getNumSteps();for(var _11a=0;_11a<_112;_11a++){_117.addStepSummary(_10e,_11a);}}_117.endRoute();if(!_10d){oMap.addOverlay(_111);_116.addOverlay(_111.copy());var _11b=new GIcon(G_DEFAULT_ICON);if(i==0){_11b.image=_11b.printImage="http://www.google.com/intl/en_ca/mapfiles/dd-start.png";}else{if(!_110){_11b.image=_11b.printImage="/wmdata/media/trip/dd-takeoff.png";}}oMap.addOverlay(new GMarker(_111.getVertex(0),_11b));_116.addOverlay(new GMarker(_111.getVertex(0),new GIcon(_11b)));if(i==_114.length-1){_11b=new GIcon(G_DEFAULT_ICON);_11b.image=_11b.printImage="http://www.google.com/intl/en_ca/mapfiles/dd-end.png";oMap.addOverlay(new GMarker(_111.getVertex(_111.getVertexCount()-1),_11b));_116.addOverlay(new GMarker(_111.getVertex(_111.getVertexCount()-1),new GIcon(_11b)));}if(_110){for(var j=0;j<_111.getVertexCount();j++){_118.extend(_111.getVertex(j));}}else{_118.extend(_111.getVertex(0));_118.extend(_111.getVertex(_111.getVertexCount()-1));}}}_117.endTrip();gTripLayout.layout();if(!_10d){oMap.setCenter(_118.getCenter());_116.setCenter(_118.getCenter());var _11d=oMap.getBoundsZoomLevel(_118);oMap.setZoom(_11d);_11d=_116.getBoundsZoomLevel(_118);_116.setZoom(_11d);}});if(!_10d&&gTripSteps.getTripVehicle()!=EnumTripModes.Airplane&&!app.loggedin()){}else{if(this.bIsFromACommutingGroup){this.showPostCalculationCommutingGroupDialog();}}}};TripCalculator.prototype.showPostCalculationCommutingGroupDialog=function(){webbler().renderDialog("{8154a3a7-881a-102d-81c8-898501764b15}",{},function(code){switch(code){case "save":gTripSteps.saveRoute();break;}},true);};TripCalculator.prototype.showPostCalculationDialog=function(_11f){var _120,_121=_11f.length,_122=0,_123=0,_124=0,_125=0,_126=0;for(var i=0;i<_121;i++){_120=_11f[i].getResult();_122+=_120.KgCO2;_123+=_120.iLitres||0;_125+=_120.iDistCity||0;_126+=_120.iDistHighway||0;_124+=_120.iMetres;}webbler().renderDialog("{b8c5f857-7207-102d-bda5-957382316d92}",{vMode:gTripSteps.getTripVehicle(),fKgCO2:_122,iLitres:_123,iCityMetres:_125,iHwyMetres:_126,iMetres:_124,isMetric:TripConversions.getIsMetric()},function(code){switch(code){case "email":gTripSteps.emailRoute();break;case "save":gTripSteps.saveRoute();break;case "track":window.location="/settings?register&model_id="+gTripSteps.getTripVehicle();break;case "sign-up":window.location="/settings?register";break;}},true);};TripCalculator.prototype.showMapBlowup=function(fLat,fLng){this.getMap().showMapBlowup(new GLatLng(fLat,fLng));};TripCalculator.prototype.toggleRoute=function(img){var e=img.parentNode;while(e){if(e.className=="pnlRouteSummary"){var p=e.nextSibling;while(p){if(p.className=="pnlStepContainer"){var h=(p.style.display=="none");p.style.display=h?"":"none";img.src=("/wmdata/media/shared/"+(h?"minus":"plus")+".gif");}p=p.nextSibling;}}e=e.parentNode;}};TripCalculator.prototype.server=function(f,_130){if(!this.m_server){this.m_server=app.xmlrpc.makeProxy("Com_mOblu_Trip_Services",BF_KEY,gTripIFace,"json","xmlrpc");}if(Functor.isFunctor(f)||app.isFunction(f)){if(!_130){webbler().startMask($("page-left")||$("full-page"));}this.m_server.setAsync(true,function(ret){if(!_130){webbler().endMask($("page-left")||$("full-page"));}Functor.fire(f,[ret]);});}return this.m_server;};TripCalculator.prototype.chopPoints=function(ptA,ptB,_134){ptA.___next___=ptB;ptB.___next___=null;var pt=ptA;this._recurseChop(pt,_134);var _136=[pt];while(pt=pt.___next___){_136.push(pt);}for(var i=0;i<_136.length;i++){_136[i].___next___=null;}return _136;};TripCalculator.prototype._recurseChop=function(list,_139){if(list.___next___){var ptA=list;var ptB=list.___next___;if(ptA.distanceFrom(ptB)>_139){var ptC=this.GPSMidpoint(ptA,ptB);ptC.___next___=ptA.___next___;ptA.___next___=ptC;this._recurseChop(ptA,_139);this._recurseChop(ptC,_139);}}};TripCalculator.prototype.GPSMidpoint=function(ptA,ptB){return new GLatLng((parseFloat(ptA.lat())+parseFloat(ptB.lat()))/2,(parseFloat(ptA.lng())+parseFloat(ptB.lng()))/2);};function TripPanel(){return this;};TripPanel.prototype.init=function(fPPL){this.m_ePanel=app.el("trip_calc_gpanel");this.m_eLoad=app.el("trip_calc_gloading");this.m_ePrint=app.el("trip_calc_summary_print");this.m_sHtml="";this.m_fPassedPPL=fPPL;this.inited=true;};TripPanel.prototype.startProgress=function(){this.setProgress(0);this.m_eLoad.style.display="";this.m_ePanel.style.display="none";};TripPanel.prototype.setProgress=function(_140){app.el("trip_calc_gloading_bar").style.width=app.clamp(Math.round(_140),0,100)+"%";};TripPanel.prototype.endProgress=function(){this.m_eLoad.style.display="none";};TripPanel.prototype.beginTrip=function(){this.m_sHtml="";};TripPanel.prototype.beginRoute=function(){this.m_sHtml+="<div class=\"pnlRoute\">";};TripPanel.prototype.endRoute=function(){this.m_sHtml+="</div></div>";};TripPanel.prototype.addRouteSummary=function(_141){var _142,sImg,fLat,fLng,_146;_142=_141.getResult();if(_142.oRoute){var v=gTripSteps.getTripVehicle();if(EnumTripModes.exists(v)){sImg="mode-"+v;}else{sImg="car";}_146=_142.oRoute.getStep(0).getLatLng();}else{sImg="plane";var aA=_141.getWaypointA().sLoc.split(",");_146=new GLatLng(aA[0].trim(),aA[1].trim());}fLat=_146.lat();fLng=_146.lng();this.m_sHtml+="<div class=\"pnlRouteSummary\" onclick=\"gTripCalculator.showMapBlowup("+fLat+","+fLng+")\">"+"<table width=\"100%\" cellpadding=\"0\" cellspacing=\"2\">"+"<tr>"+"<td width=\"47\" valign=\"top\">"+"<img width=\"47\" height=\"34\" src=\"/wmdata/media/shared/icons/"+sImg+".jpg\" border=\"0\" />"+"</td>"+"<td valign=\"top\">"+"<b>"+_141.getWaypointA().sDesc+"</b> to <b>"+_141.getWaypointB().sDesc+"</b> (<b>"+TripConversions.getDistance(_142.iMetres/1000).toFixed(0)+" "+TripConversions.getDistanceAbbr()+"</b>)"+"<br />Carbon Impact: <b>"+TripConversions.getWeight(_142.KgCO2).toFixed(1)+" "+TripConversions.getWeightAbbr()+" of CO2</b>"+"</td>";if(_142.oRoute){this.m_sHtml+="<td width=\"10\" valign=\"top\" align=\"right\">"+"<img title=\"Show/Hide Route Details\" class=\"toggle\" width=\"12\" height=\"12\" src=\"/wmdata/media/shared/plus.gif\" border=\"0\" onclick=\"gTripCalculator.toggleRoute(this);\" />"+"</td>";}this.m_sHtml+="</tr>"+"</table>"+"</div>"+"<div class=\"pnlStepContainer\" style=\"display:none;\">";};TripPanel.prototype.addStepSummary=function(_149,_14a){var _14b,sImg,fLat,fLng,_14f;_14b=_149.getResult();if(oRoute=_14b.oRoute){var _150=oRoute.getNumSteps();var _151=oRoute.getStep(_14a);var _152=_151.getLatLng();this.m_sHtml+="<div class=\"pnlStepSummary\" onclick=\"gTripCalculator.showMapBlowup("+_152.lat()+","+_152.lng()+")\"><div style=\"float:right;padding:0px 5px;\">("+TripConversions.getDistance(_151.getDistance().meters/1000).toFixed(1)+" "+TripConversions.getDistanceAbbr()+")</div>"+(_14a+1)+". "+_151.getDescriptionHtml();if(_14a<(_150-1)){this.m_sHtml+="<hr />";}this.m_sHtml+="</div>";}};TripPanel.prototype.addTripSummary=function(_153,cb){var _155=_153.length;var _156,_157=0,_158=0,_159=0,_15a=0;var _15b=TripConversions.getIsMetric();for(var i=0;i<_155;i++){_156=_153[i].getResult();_157+=_156.iMetres;_158+=_156.KgCO2;if(_156.oRoute){_159+=_156.KgCO2;_15a+=_156.iLitres||0;}}this.__fKgLandCO2=_159;var _15d={};var v=gTripSteps.getTripVehicle();_15d.show_fuel=app.isuuid(v)||v==EnumTripModes.Automobile||v==EnumTripModes.Motorcycle||v==EnumTripModes.Scooter;_15d.start_desc=_153[0].getWaypointA().sDesc;_15d.end_desc=_153[_155-1].getWaypointB().sDesc;_15d.distance=TripConversions.getDistance(_157/1000).toFixed(0);_15d.distance_abbr=TripConversions.getDistanceAbbr();_15d.fkgc02=TripConversions.getWeight(_158).toFixed(1);_15d.weight_abbr=TripConversions.getWeightAbbr();_15d.is_metric=_15b?1:0;if(_15a>0&&_15d.show_fuel){var _15f=gaGasPrices;_15d.ffueluse=(_15b?_15a:_15a/3.7854118).toFixed(2);_15d.litres=_15a;_15d.volume_abbr=TripConversions.getVolumeAbbr();_15d.fcost=this.m_fPassedPPL!==undefined?(this.m_fPassedPPL*_15a).toFixed(2):(_15f["prices"][_15f["currency"]].PPL*_15a).toFixed(2);_15d.currency=_15f["currency"];_15d.currency_sym=_15d.currency=="EUR"?"&euro;":"$";_15d.ccost=(_15f["taxes"][_15f["currency"]].PPKG*_159).toFixed(2);if(this.m_fPassedPPL!==undefined){_15d.custom=this.m_fPassedPPL;}}_15d.show_links=app.isuuid(gTripCalculator.getUUID())?0:1;webbler().render("{65d9a909-3138-102b-99a9-6045394dd854}",_15d,null,false,true,function(out){var arr=out.html.split("~~~boundary~~~");gTripPanel.m_sHtml+=arr[0];gTripPanel.m_ePrint.innerHTML=arr[1];Functor.fire(cb);});};TripPanel.prototype.endTrip=function(){this.m_ePanel.innerHTML=this.m_sHtml;this.m_eLoad.style.display="none";this.m_ePanel.style.display="";if(!app.isuuid(gTripCalculator.getUUID())){triStateNativeButtonInit($("trip_calc_email"));}triStateNativeButtonInit($("trip_calc_print"));};TripPanel.prototype.beginErrors=function(){this.m_sHtml="<div class=\"pnlRoute\">"+"<div class=\"pnlRouteSummary\">"+"<table width=\"100%\" cellpadding=\"0\" cellspacing=\"2\">"+"<tr>"+"<td valign=\"top\">"+"One or more <strong>errors</strong> were detected while looking up your route. See <strong>below</strong> for more details."+"</td>"+"</tr>"+"</table>"+"</div>"+"<div class=\"pnlStepContainer\">";};TripPanel.prototype.addStartError=function(_162){this.m_sHtml+="<div class=\"pnlStepSummary\">"+"<table width=\"100%\" cellpadding=\"0\" cellspacing=\"2\">"+"<tr>"+"<td valign=\"top\" align=\"left\" width=\"60\">"+"<nobr>Error "+_162.faultCode+"</nobr>"+"</td>"+"<td valign=\"top\" align=\"left\">"+_162.faultString+"</td>"+"</tr>"+"</table>";this.m_sHtml+="</div>";};TripPanel.prototype.addError=function(_163,_164){var _165=_163[_164].oResult;var _166=_163[_164].iRequestIndex;this.m_sHtml+="<div class=\"pnlStepSummary\">"+"<table width=\"100%\" cellpadding=\"0\" cellspacing=\"2\">"+"<tr>"+"<td valign=\"top\" align=\"left\" width=\"60\">"+"<nobr>Route "+(_166+1)+"</nobr>"+"</td>"+"<td valign=\"top\" align=\"left\">"+_165.faultString+"</td>"+"</tr>"+"</table>";if(_164<(_163.length-1)){this.m_sHtml+="<hr />";}this.m_sHtml+="</div>";};TripPanel.prototype.endErrors=function(){this.m_sHtml+="</div></div>";this.m_ePanel.innerHTML=this.m_sHtml;this.m_eLoad.style.display="none";this.m_ePanel.style.display="";this.m_ePrint.innerHTML="Your trip calculation had errors. Please try again.";};TripPanel.prototype.doComparison=function(_167,_168){newWin("/help/co2?kgco2="+_167+"&metric="+_168+"#comparison");};TripPanel.prototype.doTaxHelp=function(){newWin("/help/trips#carbontax");};TripPanel.prototype.calcFuel=function(oSel,_16a){var _16b=oSel.value.substr(0,2);var _16c=oSel.value.substr(2);gTripCalculator.server(new Functor(this,function(_16d){gaGasPrices=_16d;var _16e=(_16d["prices"][_16d["currency"]].PPL*_16a).toFixed(2);var _16f=(_16d["currency"]=="EUR"?"&euro;":"$");app.el("mtcts_fcp").innerHTML=app.el("mtcts_fc").innerHTML=_16f+_16e+" "+_16d["currency"];var _170=(_16d["taxes"][_16d["currency"]].PPKG*this.__fKgLandCO2).toFixed(2);app.el("mtcts_ccp").innerHTML=app.el("mtcts_cc").innerHTML=_16f+_170+" "+_16d["currency"];$("trips-custom-fuel-amount").value=parseFloat(_16d["prices"][_16d["currency"]].PPL).toFixed(2);$("trips-custom-fuel-currency").value=_16d["currency"];})).SetRegion(_16b,_16c);};TripPanel.prototype.customFuel=function(_171){var _172=$("trips-custom-fuel-amount");var _173=$("trips-custom-fuel-currency");var _174=(app.rFloat(parseFloat(_172.value.trim()),0)*_171).toFixed(2);var _175=(_173.value=="EUR"?"&euro;":"$");app.el("mtcts_fcp").innerHTML=app.el("mtcts_fc").innerHTML=_175+_174+" "+_173.value;var _176=(0.01*this.__fKgLandCO2).toFixed(2);app.el("mtcts_ccp").innerHTML=app.el("mtcts_cc").innerHTML=_175+_176+" "+_173.value;};function TripLayout(){return this;};TripLayout.prototype.init=function(){this.m_eContainer=app.el("trip_container");this.m_eMap=app.el("trip_calc_gmap");this.m_eColumn=app.el("trip_left_column");this.m_iColW=parseInt(app.cssValue(this.m_eColumn,"width"));this.m_ePrint=app.el("trip_calc_summary_print");var This=this;var fn=function(){This.layout();};fn();app.addEvent(window,"scroll",fn);app.addEvent(window,"resize",fn);this.inited=true;};TripLayout.prototype.layout=function(){if(app.cssValue(this.m_eColumn,"display")=="none"){this.m_eMap.style.marginLeft="0px";}else{this.m_eMap.style.marginLeft=(this.m_iColW+10)+"px";var a=this.getTrueOffset(this.m_eContainer);var d=app.scrollTop()-a[1]+160;var t=0;if(d<=0){t=0;}else{t=Math.min(Math.max(this.m_eColumn.offsetHeight,this.m_eContainer.offsetHeight)-this.m_eMap.offsetHeight,d);}clearTimeout(this.m_timeout);this.m_timeout=setTimeout(function(){gTripLayout.animate(t);},50);}};TripLayout.prototype.hideColumn=function(){this.m_eColumn.style.display="none";this.layout();};TripLayout.prototype.showColumn=function(){this.m_eColumn.style.display="block";this.layout();};TripLayout.prototype.getTrueOffset=function(e){var x=0;var y=0;while(e){x+=app.rInt(e.offsetLeft);y+=app.rInt(e.offsetTop);e=e.parentNode;}return [x,y];};TripLayout.prototype.print=function(){window.print();};TripLayout.prototype.animate=function(end){clearTimeout(this.m_timeout);var _180=15;var _181=1;this.curt=app.rInt(parseInt(this.m_eMap.style.top));var dist=end-this.curt;var _183=dist/((Math.pow(_180,2)+2*_180+1)/(4*_180));this._animate(dist,_183,end,_180,1,_181);};TripLayout.prototype._animate=function(dist,_185,end,_187,_188,_189){var sv=_188/_187;if(_188<=_187){this.curt+=_185*Math.pow(((_187-_188)+1)/_187,3);if(Math.round(this.curt)==end){_188=_187;}this.m_eMap.style.top=Math.round(this.curt)+"px";_188++;var fnT=function(){gTripLayout._animate(dist,_185,end,_187,_188,_189);};this.m_timeout=setTimeout(fnT,_189);}else{this.m_eMap.style.top=Math.round(end)+"px";}};var gTripCalculator=new TripCalculator();var gTripLayout=new TripLayout();var gTripPanel=new TripPanel();var gTripSteps=new TripSteps();var gTripDetails=new TripDetails();function initTripCalculator(_18c){gTripCalculator.init(_18c);gTripSteps.init(app.getParam("sTripStep1"),app.getParam("sTripStep2"),_18c);gTripPanel.init(_18c["fPPL"]);gTripLayout.init();gTripDetails.init(_18c.oDetails);if(app.isuuid(gTripUUID)){gTripCalculator.loadTrip(gTripUUID,false,function(){gTripCalculator.setTripSelsEnabled(true);});}else{if(gTripRoute!=-1){if(gTripRoute==false){mOblu().showMessage("Error",stm().table("Com_mOblu_Trips").string("err_email_invalid_route"));}else{gTripSteps.loadFromRoute(gTripRoute,true,_18c);}}gTripCalculator.setTripSelsEnabled(true);}};