var route_from=null;var route_to=null;var routeMarker=null;var routeSegmentPolyline=null;var routingEntryList={};var routingEntryListCounter=0;var routeSegments={};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 GMarker(B,iconRouteMark);map.addOverlay(routeMarker)}else{routeMarker.setPoint(B)}routeMarker.hide();flashRouteOverlay(routeMarker,300,30)}function showRoutingSegmentNGI(E,A){var C=routingEntryList[E].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){map.removeOverlay(routeSegmentPolyline)}routeSegmentPolyline=new GPolyline(B,"#00ff00",12);map.addOverlay(routeSegmentPolyline);var D=routeSegmentPolyline.getBounds();if(!map.getBounds().containsBounds(D)){map.panTo(D.getCenter())
}routeSegmentPolyline.hide();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="<hr>";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_Routing('+this.id+","+I+')">';
G+='<img src="images/velaki_aristera.png" style="border:0px;" title="Προηγούμενη σελίδα" alt="Προηγούμενη σελίδα" />';G+="</a>"}else{G+='<img src="images/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_Routing('+this.id+","+H+')">';G+='<img src="images/velaki_deksia.png" style="border:0px;" title="Επόμενη σελίδα" alt="Επόμενη σελίδα" />';G+="</a>"}else{G+='<img src="images/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(O,R){if(O===undefined){O=0}if(R===undefined){R=true}if(R){var P=map.getBoundsZoomLevel(this.pline.getBounds());if(P!=map.getZoom()){map.setZoom(P)}map.panTo(this.pline.getBounds().getCenter())
}var F=jQuery("#find_route_results");F.empty();var L=false;var N=this.directions;var I=N.length-1;if(I<=0){L=true}if(L){F.append("<br />");Q='<div align="center">Δεν βρέθηκαν αποτελέσματα</div>';F.append(Q);F.append("<br />");return }var J=O+SEARCH_RESULTS_PER_PAGE;if(J>I){J=I}F.append("<br />");var H=this.getResultsPager_Routing(I,O);
F.append(H);var Q="<table>";Q+="<tr><td>Συνολική Απόσταση:&nbsp; </td><td>"+N[N.length-1].RouteSegment.totalDistance+' km.</td></tr><tr><td colspan="2">&nbsp;</td></tr></table>';Q+="<table>";for(var K=O;K<J;K++){var G=N[K].RouteSegment;Q+="<tr>";Q+='<td valign="top">'+K+".</td>";Q+="<td>";Q+='<a href="javascript:showRoutingSegmentNGI('+this.id+","+K+')">';
Q+=G.drivingDirection;Q+="</a>";var M=G.distance*1000;if(M>0){Q+=" ("+M+"m)"}Q+="</td>";Q+="</tr>"}Q+="</table>";F.append("<br />");F.append(Q);F.append("<br />")};this.remove=function(){jQuery("#find_route_results").empty();map.removeOverlay(this.frommarker);map.removeOverlay(this.tomarker);map.removeOverlay(this.pline)
};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.getText()==F.getText()){return true}}return false};this.init=function(){var G=new GLatLng(this.pointfrom.lat,this.pointfrom.lng);var F=new GLatLng(this.pointto.lat,this.pointto.lng);this.frommarker=new GMarker(G,iconRouteFrom);this.tomarker=new GMarker(F,iconRouteTo);
map.addOverlay(this.pline);map.addOverlay(this.frommarker);map.addOverlay(this.tomarker);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 GPolyline(H);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();addSelectionEntry(I,-1);return I}})};function getNGIRoute(B,C){var G=0;var A=0;var F=0;if($("#pedestrialMode").get(0).checked){G=1
}if($("#avoid_attiki").get(0).checked){F+=1}if($("#avoid_aktoploikes").get(0).checked){F+=2}if($("#avoid_tolls").get(0).checked){F+=4}if($("#avoid_daktilios").get(0).checked){F+=8}if($("#avoid_periferiaki").get(0).checked){F+=16}if($("#avoid_homatodromoi").get(0).checked){F+=128}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/loader.gif" style="border:0px;" /> </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(K){routeSegments=K.RouteResponse.RouteSegments;var L=[];for(i=1;i<routeSegments.length-1;i++){var M=0;var H=9;getStepsArray(L,routeSegments[i].RouteSegment.segments,M,H)}var J=new GPolyline(L);var I=new RoutingEntryNGI(B,C,J,routeSegments,E);instantiateEntry(I)}})}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 GLatLng(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 };