function StoppingPointPanel(A){this.stoppingPointPanelId=A;this.showAllStoppingPoints=false;this.showing=false}StoppingPointPanel.prototype.ShowPanel=function(B,A,C){if(this.stoppingPointPanel==undefined){this.stoppingPointPanel=document.getElementById(this.stoppingPointPanelId);this.stoppingPointPanel.stoppingPointPanelObject=this;this.waitPanel=YAHOO.util.Dom.getElementsByClassName("GettingStoppingPointData",undefined,this.stoppingPointPanel)[0];this.stoppingPointContent=YAHOO.util.Dom.getElementsByClassName("ScrollableContent",undefined,this.stoppingPointPanel)[0];this.stoppingPoints=YAHOO.util.Dom.getElementsByClassName("StoppingPoints",undefined,this.stoppingPointPanel)[0];this.warning=YAHOO.util.Dom.getElementsByClassName("Warning",undefined,this.stoppingPointPanel)[0];this.operators=YAHOO.util.Dom.getElementsByClassName("Operators",undefined,this.stoppingPointPanel)[0];this.icons=YAHOO.util.Dom.getElementsByClassName("Icons",undefined,this.stoppingPointPanel)[0];this.carbonLink=YAHOO.util.Dom.getElementsByClassName("liarrowpr",undefined,this.stoppingPointPanel)[0];this.carbonLinkOriginalhref=this.carbonLink.href;YAHOO.util.Event.addListener(this.stoppingPointPanel,"click",this.IgnoreMouseClick,this,true)}YAHOO.util.Event.addListener(document,"click",this.MouseClick,this,true);this.service=B;ShowElement(this.stoppingPointPanel,true);if(B.stoppingPoints==undefined){ShowElement(this.waitPanel,true);SetVisibility(this.stoppingPointContent,false)}else{this.ShowStoppingPoints()}YAHOO.util.Dom.setXY(this.stoppingPointPanel,[A-this.stoppingPointPanel.clientWidth,C-this.stoppingPointPanel.clientHeight]);this.showing=true};StoppingPointPanel.prototype.IgnoreMouseClick=function(A){A.cancelBubble=true};StoppingPointPanel.prototype.MouseClick=function(B,A){if(!StillInsideElementOnMouseClick(this,B)){this.HidePanel()}};StoppingPointPanel.prototype.StoppingPointsReceived=function(){if(!this.showing){return }if(this.service.stoppingPoints==undefined){this.HidePanel()}else{this.ShowStoppingPoints()}};StoppingPointPanel.prototype.OnClose=function(B){var A=GetParentWithStyle(B,"PopupPanel");A.stoppingPointPanelObject.HidePanel()};StoppingPointPanel.prototype.OnShowAllStoppingPoints=function(B){var A=GetParentWithStyle(B,"PopupPanel");A.stoppingPointPanelObject.ShowAllStoppingPoints(B.checked)};StoppingPointPanel.prototype.ShowAllStoppingPoints=function(B){this.showAllStoppingPoints=B;var A=GetFirstDiv(this.stoppingPoints);while(A!=undefined){if(A.className=="Stopping"){ShowElement(A,this.showAllStoppingPoints)}A=GetNextDiv(A)}};StoppingPointPanel.prototype.HidePanel=function(){if(this.showing){YAHOO.util.Event.removeListener(document,"click",this.MouseClick);ShowElement(this.stoppingPointPanel,false);this.service=undefined;this.showing=false}};StoppingPointPanel.prototype.ShowStoppingPoints=function(){RemoveAllChildren(this.stoppingPoints);RemoveAllChildren(this.operators);RemoveAllChildren(this.icons);this.tocKey=new Object();this.iconKey=new Object();ShowElement(this.waitPanel,false);ShowElement(this.warning,this.service.stoppingPoints.warning);for(var A in this.service.stoppingPoints.serviceLegs){this.AddServiceLeg(this.service.stoppingPoints.serviceLegs[A])}this.AddKeys();this.UpdateCarbonLink(this.service.mileageInHundredthsOfMile,mixingDeck.journeyPlanningData.data.passengerCount);SetVisibility(this.stoppingPointContent,true)};StoppingPointPanel.prototype.AddServiceLeg=function(C){var B=0;var A=new Array(20);for(var E in C.serviceLocations){A[B]=C.serviceLocations[E];B++}A.length=B;A.sort(this.SortStoppingPoints);if(B==0){CreateElement(this.stoppingPoints,"div","Mode",C.mode+" from "+C.sName+" to "+C.eName)}else{this.AddHeadings(C);for(var D=0;D<B;D++){if(D==0){this.AddStartLocation(C,A[D])}else{if(D==B-1){this.AddEndLocation(A[D])}else{this.AddPassingLocation(A[D])}}}this.AddTrainDestinationLine(C)}};StoppingPointPanel.prototype.SortStoppingPoints=function(B,A){if(B.aTime>A.aTime){return 1}else{return -1}};StoppingPointPanel.prototype.AddHeadings=function(A){var D=CreateElement(this.stoppingPoints,"div","Title");if(mixingDeck.disablesleeperservices==1){switch(A.bClass){case"S":case"B":case"F":CreateElement(D,"div","Header",mixingDeck.resourceStrings.sleeperHeaderText.replace(/%tocname%/gi,A.tocDesc));if(A.tocURL!=""){var B=CreateElement(D,"div","SleeperURL");var C="<a class=\"liarrowpr\" target=\"_blank\" href=\""+A.tocURL+"\"><span id=\"btnCarbonClub\" class=\"left\">"+A.tocDesc+"</span><span class=\"right\"></span></a>";CreateElement(B,"span","Button",C)}break}}CreateElement(D,"div","Col1","Station");CreateElement(D,"div","Col2","Arr");CreateElement(D,"div","Col3","Dep");CreateElement(D,"div","Col4","Facilities")};StoppingPointPanel.prototype.AddStartLocation=function(A,D){var C=CreateElement(this.stoppingPoints,"div","Change Start");CreateElement(C,"div","Col1",D.station);CreateElement(C,"div","Col2","&nbsp;");CreateElement(C,"div","Col3",FormatTime(D.dTime));var B=CreateElement(C,"div","Col4",A.tocCode);if(A.tocCode){B.title=A.tocDesc;this.tocKey[A.tocCode]=A.tocDesc}this.AddFacilitiesIcons(A,C)};StoppingPointPanel.prototype.AddEndLocation=function(B){var A=CreateElement(this.stoppingPoints,"div","Change");CreateElement(A,"div","Col1",B.station);CreateElement(A,"div","Col2",FormatTime(B.aTime))};StoppingPointPanel.prototype.AddPassingLocation=function(B){var A=CreateElement(this.stoppingPoints,"div","Stopping");CreateElement(A,"div","Col1",B.station);CreateElement(A,"div","Col2",FormatTime(B.aTime));CreateElement(A,"div","Col3",FormatTime(B.dTime));ShowElement(A,this.showAllStoppingPoints)};StoppingPointPanel.prototype.AddTrainDestinationLine=function(A){if(A.dName==undefined){return }if(A.dName==A.eName){CreateElement(this.stoppingPoints,"div","Info",A.mode+" terminates at "+A.dName)}else{CreateElement(this.stoppingPoints,"div","Info",A.mode+" continues to "+A.dName)}};StoppingPointPanel.prototype.AddFacilitiesIcons=function(A,B){var C=CreateElement(B,"div","FacilityIcons");if(A.modeType=="B"){this.AddIcon(C,"BUS")}else{if(A.modeType=="F"){this.AddIcon(C,"FERRY")}}switch(A.rsv){case"A":case"R":case"S":case"B":this.AddIcon(C,"R"+A.rsv);break}switch(A.sClass){case"B":case"F":this.AddIcon(C,"S"+A.sClass);break}switch(A.bClass){case"S":case"B":case"F":this.AddIcon(C,"B"+A.bClass);break}for(cateringCodeId in A.cater){this.AddIcon(C,"C"+A.cater[cateringCodeId])}};StoppingPointPanel.prototype.AddIcon=function(C,B){var A=CreateElement(C,"img");A.src=ImagePath+"TrainIcons/"+B+".gif";A.alt=trainIconDescriptions[B];A.title=trainIconDescriptions[B];this.iconKey[B]=trainIconDescriptions[B]};StoppingPointPanel.prototype.AddKeys=function(){for(var C in this.tocKey){var B=CreateElement(this.operators,"div");CreateElement(B,"div","OperatorKey",C);CreateElement(B,"div","Operator",this.tocKey[C])}for(C in this.iconKey){var D=CreateElement(this.icons,"div");var A=CreateElement(D,"div","Icon");this.AddIcon(A,C);CreateElement(D,"div","IconDescription",this.iconKey[C])}};StoppingPointPanel.prototype.UpdateCarbonLink=function(B,A){this.carbonLink.href=this.carbonLinkOriginalhref.replace("{0}",Math.floor(B/100)).replace("{1}",A)}