var coords="";var routeMarker=null;var routeSegmentPolyline=null;var routePolyline=null;var routingEntryList={};var routingEntryListCounter=0;var routeSegments={};var toPrintDirections="";var avoidFlagsPrint="";function showRoutingPointNGI(C,A){var B=routingEntryList[C].directions.getRoute(0).getStep(A).getLatLng();
if(!map.getBounds().contains(B)){map.panTo(B)}if(routeMarker==null){routeMarker=new google.maps.Marker({map:map,position:B});routeMarker.setMap(map)}else{routeMarker.setPoint(B)}routeMarker.hide();flashRouteOverlay(routeMarker,300,30)}function showRoutingSegmentNGI(G,A){var C=routingEntryList[G].directions;
if((A!=0)&&A!=C.length-1){if(A==C.length-1){return }var B=[];getStepsArray(B,C[A].RouteSegment.segments,0,9);if(routeSegmentPolyline!=null){routeSegmentPolyline.setMap(null)}routeSegmentPolyline=new google.maps.Polyline({map:map,path:B,strokeColor:"#00ff00",strokeWeight:12});routeSegmentPolyline.setMap(map);
var E=new google.maps.LatLngBounds();var F=routeSegmentPolyline.getPath();for(var D=0;D<F.getLength();D++){E.extend(F.getAt(D))}if(!map.getBounds().contains(E.getCenter())){map.panTo(E.getCenter())}flashRouteOverlay(routeSegmentPolyline,300,30)}}function RoutingEntryNGI(C,D,A,E,B){this.pointfrom=C;this.pointto=D;
this.directions=E;this.pline=A;this.frommarker=null;this.tomarker=null;this.opts=B;this.id=routingEntryListCounter++;routingEntryList[this.id]=this;this.hide=function(){};this.getResultsPager_Routing=function(J,F){var H=F+SEARCH_RESULTS_PER_PAGE;if(H>J){H=J}var G="<br/>";if((F-1>0)||(H<J)){G+='<table align="center" width="100%">';
G+='<tr><td align="center">';if(F-1>0){var I=F-SEARCH_RESULTS_PER_PAGE;if(I<0){I=0}G+='<a href="javascript:show_RoutingNGI('+this.id+","+I+')">';G+='<img src="images/new/various/velaki_aristera.png" style="border:0px;" title="Προηγούμενη σελίδα" alt="Προηγούμενη σελίδα" />';G+="</a>"}else{G+='<img src="images/new/various/velaki_aristera_gray.png" style="border:0px;" />'
}G+='</td><td align="center" width="70%">';G+="<b>Βήματα:</b> "+F+"-"+(H-1)+"/"+(J-1);G+='</td><td align="center">';if(H<J){G+='<a href="javascript:show_RoutingNGI('+this.id+","+H+')">';G+='<img src="images/new/various/velaki_deksia.png" style="border:0px;" title="Επόμενη σελίδα" alt="Επόμενη σελίδα" />';
G+="</a>"}else{G+='<img src="images/new/various/velaki_deksia_gray.png" style="border:0px;" />'}G+="</td></tr>";G+="</table>"}else{G+='<table align="center" width="100%">';G+='<tr><td align="center">';G+="<b>Βήματα:</b> "+(J-1);G+="</td></tr>";G+="</table>"}return G};this.show=function(M,N){if(M===undefined){M=0
}if(N===undefined){N=true}if(N){var J=this.pline.getPath();var I=new google.maps.LatLngBounds();for(var H=0;H<J.getLength();H++){I.extend(J.getAt(H))}map.fitBounds(I);map.panTo(I.getCenter())}var F=jQuery("#find_route_results");F.empty();var L=this.directions;toPrintDirections="";var O='<div id="route_directions" class="scroll-pane-r3">';
toPrintDirections+='<div style="font-weight:bold;">Συνολική Απόσταση:&nbsp; '+L[L.length-1].RouteSegment.totalDistance+" km.</div>";O+='<div style="font-weight:bold; background-color:#e0e0e0; text-align:center; border: 1px solid #939393">Συνολική Απόσταση:&nbsp;'+L[L.length-1].RouteSegment.totalDistance+" km.</div>";
for(var H=M;H<L.length;H++){var G=L[H].RouteSegment;if(G.name!="Ending point"||G.drivingDirection!=""){O+='<div style="line-height:15px; margin-top:3px; margin-bottom:3px;">';toPrintDirections+="<div> ";toPrintDirections+=H+" ";O+=""+H+". ";O+='<a style="text-decoration:none;" class="route-directions" href="javascript:showRoutingSegmentNGI('+this.id+","+H+')">';
O+=G.drivingDirection;toPrintDirections+=G.drivingDirection;O+="</a>";var K=G.distance*1000;if(K>0){O+=" ("+K+"m)"}toPrintDirections+=" ("+K+"m)";toPrintDirections+="</div>";O+="</div>"}}O+="</div>";F.append(O);if(!toPrint){$(".scroll-pane-r3").jScrollPane({showArrows:true,horizontalGutter:10});$(".scroll-pane-r3").css("border","1px solid #939393")
}};this.remove=function(){jQuery("#find_route_results").empty();this.frommarker.setMap(null);this.tomarker.setMap(null);this.pline.setMap(null)};this.getHtml=function(){var F="Από: ";F+=this.pointfrom.name;F+=" Προς: ";F+=this.pointto.name;return F};this.getText=function(){var F="<b>Από:</b> ";F+=this.pointfrom.name;
F+=" <b>Προς:</b> ";F+=this.pointto.name;return F};this.getType=function(){return ELTYPE_ROUTING};this.getIdent=function(){return this.intersident};this.equals=function(F){if(F.getType()==this.getType()){if((this.pointfrom==F.pointfrom)&&(this.pointto==F.pointto)){return true}}return false};this.init=function(){var G=new google.maps.LatLng(this.pointfrom.lat,this.pointfrom.lng);
var F=new google.maps.LatLng(this.pointto.lat,this.pointto.lng);if(fromMarker==null){fromMarker=new google.maps.Marker({map:map,position:G,icon:"images/new/various/start-pin.png",optimized:false,draggable:true,zIndex:999});google.maps.event.addListener(fromMarker,"dragend",function(){getAddressFromLatLng(fromMarker.getPosition().lat(),fromMarker.getPosition().lng(),"from");
if($("#clear_route").is(":visible")){addRoutingEntry(0)}})}this.frommarker=fromMarker;if(endMarker==null){endMarker=new google.maps.Marker({map:map,position:F,icon:"images/new/various/destination-pin.png",optimized:false,draggable:true,zIndex:999});google.maps.event.addListener(endMarker,"dragend",function(){getAddressFromLatLng(endMarker.getPosition().lat(),endMarker.getPosition().lng(),"to");
if($("#clear_route").is(":visible")){addRoutingEntry(0)}})}this.tomarker=endMarker;this.pline.setMap(map);this.frommarker.setMap(map);this.tomarker.setMap(map);this.show(1,true)};this.getAttributes=function(){return[]};this.toJSONString=function(){var F={};F.type="routingNGI";F.point_from={"lat":this.pointfrom.lat,"lng":this.pointfrom.lng,"name":this.pointfrom.name};
F.point_to={"lat":this.pointto.lat,"lng":this.pointto.lng,"name":this.pointto.name};F.routeoptions=this.opts;return toJSONString(F)}}RoutingEntryNGI.prototype.fromJSONString=function(C,A,D){var B=C.routeoptions;jQuery.ajax({type:"POST",url:"functs/getRoute.jsp",data:{"avoidFlags":C.routeoptions.avoid_flags,"pedestrialMode":C.routeoptions.ped_mode,"routeSortest":C.routeoptions.route_short,"pointfrom_lng":C.point_from.lng,"pointfrom_lat":C.point_from.lat,"pointto_lng":C.point_to.lng,"pointto_lat":C.point_to.lat},dataType:"json",success:function(N){routeSegments=routeSegments=N.RouteResponse.RouteSegments;
var H=[];for(J=1;J<routeSegments.length-1;J++){var E=0;var I=9;getStepsArray(H,routeSegments[J].RouteSegment.segments,E,I)}var G=new google.maps.Polyline({map:map,path:H,strokeColor:"#8581BC",strokeOpacity:0.8,strokeWeight:6});var K=new RoutingEntryNGI(C.point_from,C.point_to,G,routeSegments,B);K.init();
addSelectionEntry(K,-1);if(A){var M=K.directions;var O="<table>";O+='<tr><td colspan="2">&nbsp;</td></tr>';O+='<tr><td colspan="2" align="left"><b>Οδηγίες Διαδρομής</td></tr>';O+="<tr><td>Συνολική Απόσταση:&nbsp; </td><td>"+M[M.length-1].RouteSegment.totalDistance+' km.</td></tr><tr><td colspan="2">&nbsp;</td></tr></table>';
O+="<table>";for(var J=1;J<M.length;J++){var F=M[J].RouteSegment;O+="<tr>";O+='<td valign="top">'+J+".</td>";O+="<td>";O+='<a href="javascript:showRoutingSegmentNGI('+this.id+","+J+')">';O+=F.drivingDirection;O+="</a>";var L=F.distance*1000;if(L>0){O+=" ("+L+"m)"}O+="</td>";O+="</tr>"}O+="</table>";$("#route_data_"+D).html(O)
}return K}})};RoutingEntryNGI.prototype.fromJSONString_old=function(D){if(D.pfdata){var B={"lat":D.pflatlng.lat,"lng":D.pflatlng.lng,"name":D.pfdata.comments}}else{var B={"lat":D.pflatlng.lat,"lng":D.pflatlng.lng,"name":D.pfresponse.foundAs}}if(D.ptdata){var A={"lat":D.ptlatlng.lat,"lng":D.ptlatlng.lng,"name":D.ptdata.comments}
}else{var A={"lat":D.ptlatlng.lat,"lng":D.ptlatlng.lng,"name":D.ptresponse.foundAs}}var C=D.routeoptions;jQuery.ajax({type:"POST",url:"functs/getRoute.jsp",data:{"avoidFlags":D.routeoptions.avoid_flags,"pedestrialMode":D.routeoptions.ped_mode,"routeSortest":D.routeoptions.route_short,"pointfrom_lng":D.pflatlng.lng,"pointfrom_lat":D.pflatlng.lat,"pointto_lng":D.ptlatlng.lng,"pointto_lat":D.ptlatlng.lat},dataType:"json",success:function(G){routeSegments=routeSegments=G.RouteResponse.RouteSegments;
var H=[];for(i=1;i<routeSegments.length-1;i++){var J=0;var E=9;getStepsArray(H,routeSegments[i].RouteSegment.segments,J,E)}var F=new GPolyline(H);var I=new RoutingEntryNGI(B,A,F,routeSegments,C);I.init();return I}})};function getNGIRoute(B,C){var G=0;var A=0;var F=0;if($("#ped_route").attr("src")=="images/new/various/pedestrian_button_sel.png"){G=1
}if($("#avoid_attiki").length>0){if($("#avoid_attiki").get(0).checked){F+=1}}if($("#avoid_aktoploikes").length>0){if($("#avoid_aktoploikes").get(0).checked){F+=2}}if($("#avoid_tolls").length>0){if($("#avoid_tolls").get(0).checked){F+=4}}if($("#avoid_daktilios").length>0){if($("#avoid_daktilios").get(0).checked){F+=8
}}if($("#avoid_periferiaki").length>0){if($("#avoid_periferiaki").get(0).checked){F+=16}}if($("#avoid_homatodromoi").length>0){if($("#avoid_homatodromoi").get(0).checked){F+=128}}if(toPrint){F=avoidFlagsPrint}var E={"ped_mode":G,"route_short":A,"avoid_flags":F};var D=jQuery("#find_route_results");D.empty();
D.append("<br />");D.append('<div align="center"><img src="images/new/various/loading.gif" style="border:0px; vertical-align:middle;" /> </div>');jQuery.ajax({type:"POST",url:"functs/getRoute.jsp",data:{"avoidFlags":F,"pedestrialMode":G,"routeSortest":A,"pointfrom_lng":B.lng,"pointfrom_lat":B.lat,"pointto_lng":C.lng,"pointto_lat":C.lat},dataType:"json",error:function(){noNGIResult()
},success:function(L){$("#clear_route").show();$("#clear_route").css("display","inline");if(L!=null){if(routePolyline!=null){routePolyline.setMap(null)}routeSegments=L.RouteResponse.RouteSegments;var M=[];for(i=1;i<routeSegments.length-1;i++){var O=0;var I=9;getStepsArray(M,routeSegments[i].RouteSegment.segments,O,I)
}routePolyline=new google.maps.Polyline({map:map,path:M,strokeColor:"#8581BC",strokeOpacity:0.8,strokeWeight:6});var J=new RoutingEntryNGI(B,C,routePolyline,routeSegments,E);J.init();var N=J.directions;var H=N[N.length-1].RouteSegment.totalDistance;if(H<30){getRoutePois(routeSegments)}else{$("#route_pois_div").hide()
}}else{var K='<br/><br/><div align="center" id="noresults"><b>Δυστυχώς, δε βρέθηκαν αποτελέσματα</b></div>';$("#find_route_results").html(K)}}})}function getStepsArray(D,C,G,B){while(B<C.length){var A=C.substring(G,B);G=B+1;B=G+9;var F=C.substring(G,B);G=B+1;B=G+9;var E=new google.maps.LatLng(F,A);D.push(E)
}}function noNGIResult(){var B=jQuery("#find_route_results");B.empty();B.append("<br />");var A="<hr>";A+='<div align="center"><font color="red">Δεν βρέθηκαν αποτελέσματα</font>';A+="<br> Δοκιμάστε με άλλες Επιλογές...<br></div>";B.append(A);B.append("<br />");return }function getRoutePois(L){if(!toPrint){routePoisChecked=true
}$("#route_pois").attr("checked","checked");var J=[];for(var G=0;G<L.length;G++){var C=L[G].RouteSegment;var H=C.segments;if((H.search(";")!=-1)){var N=H.split(";");for(var I=0;I<N.length;I++){J.push(N[I])}}}var O=0;var E;if(J.length-2>0){var M=getSouthWestCoords(J[0],J[1],J[2],J[3]);var D=getNortEastCoords(J[0],J[1],J[2],J[3]);
E=new google.maps.LatLngBounds(M,D)}coords="";while(O<J.length-2){coords+=J[O+1]+";"+J[O]+";"+J[O+3]+";"+J[O+2]+";";if(cutCoordsTo3digits(J[O])==cutCoordsTo3digits(J[O+2])&&cutCoordsTo3digits(J[O+1])==cutCoordsTo3digits(J[O+3])){if(O<J.length-2){E.extend(new google.maps.LatLng(J[O+3],J[O+2]));var B=[];
B.push(E.getSouthWest());B.push(E.getNorthEast());O=O+2;if(O>=J.length-2){smartRouteSearch(E.getNorthEast().lng(),E.getNorthEast().lat(),E.getSouthWest().lng(),E.getSouthWest().lat(),coords);coords="";var F=getSouthWestCoords(J[O],J[O+1],J[O+2],J[O+3]);var K=getNortEastCoords(J[O],J[O+1],J[O+2],J[O+3])
}}}else{smartRouteSearch(E.getNorthEast().lng(),E.getNorthEast().lat(),E.getSouthWest().lng(),E.getSouthWest().lat(),coords);coords="";var F=getSouthWestCoords(J[O],J[O+1],J[O+2],J[O+3]);var K=getNortEastCoords(J[O],J[O+1],J[O+2],J[O+3]);var A=[];E=new google.maps.LatLngBounds(F,K);O=O+2}}}function getNortEastCoords(C,D,A,B){if(C>=A||D>=B){return new google.maps.LatLng(D,C)
}return new google.maps.LatLng(B,A)}function getSouthWestCoords(C,D,A,B){if(C<=A||D<=B){return new google.maps.LatLng(D,C)}return new google.maps.LatLng(B,A)}function cutCoordsTo3digits(B){var A=B.toString();A=A.substring(0,5);return A};
