var route_from=null;var route_to=null;var routeMarker=null;var routeSegmentPolyline=null;var rtf=null;var rtt=null;var LatLngList=[];var routingEntryList={};var routingEntryListCounter=0;var routeSegments={};var routeMarkers=[];var routeSegmentPoly;var routeSegmentMarkerStart;var routeSegmentMarkerStop;
function setRoutePointFrom(D,A){var B=findMarkerOnMap(D,A);if((!route_from)||(route_from!=markersOnMap[B])){if(route_from){for(j in selectedPoints){if(selectedPoints[j].data.getType()==ELTYPE_ROUTINGPOINT){if(selectedPoints[j].data.routefrom){removeSelectionEntry(selectedPoints[j].ident);break}}}}route_from=markersOnMap[B];
jQuery("#route_from").html('<font color="green">'+route_from.name+"</font>");if($("#route_from").html()!=" - "&&$("#route_to").html()!=" - "){$("#find_route").removeAttr("disabled")}var C={};C.roadName=route_from.name;C.name=C.roadName;var E=new google.maps.LatLng(D,A);rtf=new RoutePoint(E,C,1,true);
instantiateEntry(rtf);showSelectedPoints()}}function setRoutePointTo(D,A){var B=findMarkerOnMap(D,A);if((!route_to)||(route_to!=markersOnMap[B])){if(route_to){for(j in selectedPoints){if(selectedPoints[j].data.getType()==ELTYPE_ROUTINGPOINT){if(!selectedPoints[j].data.routefrom){removeSelectionEntry(selectedPoints[j].ident);
break}}}}route_to=markersOnMap[B];jQuery("#route_to").html('<font color="red">'+route_to.name+"</font>");if($("#route_from").html()!="-"&&$("#route_to").html()!="-"){$("#find_route").removeAttr("disabled")}var C={};C.roadName=route_to.name;C.name=C.roadName;var E=new google.maps.LatLng(D,A);rtt=new RoutePoint(E,C,10,false);
instantiateEntry(rtt);showSelectedPoints()}}function removeRoutePoint(A){if(A){jQuery("#route_from").html(" - ");$("#find_route").attr("disabled","true");route_from=null;rtf=null}else{jQuery("#route_to").html(" - ");$("#find_route").attr("disabled","true");route_to=null;rtt=null}}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(C,L,H){var K=routingEntryList[C].directions;if((L!=0)&&L!=K.length-1){if(L==K.length-1){return 
}var B=[];var F=[];getStepsArray(B,K[L].RouteSegment.segments,0,9);getTurningPointsArray(F,K[L].RouteSegment.segments,0,9);if(K[(L+1)].RouteSegment.segments!=""){getTurningPointsArray(F,K[(L+1)].RouteSegment.segments,0,9)}else{var D=0;var G=9;var N=K[L].RouteSegment.segments;var M=[];while(G<N.length){var J=N.substring(D,G);
D=G+1;G=D+9;var I=N.substring(D,G);D=G+1;G=D+9;var E=new google.maps.LatLng(I,J);M.push(E)}F[1]=M[M.length-1]}if((routeSegmentPoly!=undefined)&&(routeSegmentPoly.getMap()!=null)){routeSegmentPoly.setMap(null);routeSegmentMarkerStart.setMap(null);routeSegmentMarkerStop.setMap(null)}routeSegmentMarkerStart=new google.maps.Marker({position:F[0],map:map,icon:"images/markers/nokia_marker_selected.png"});
if(F[1]){routeSegmentMarkerStop=new google.maps.Marker({position:F[1],map:map,icon:"images/markers/nokia_marker_selected.png"});routeSegmentMarkerStop.setMap(map)}routeSegmentPoly=new google.maps.Polyline({path:B,strokeColor:"#00ff00"});routeSegmentMarkerStart.setMap(map);routeSegmentPoly.setMap(map);
var A=new google.maps.LatLngBounds();A.extend(F[0]);A.extend(F[1]);if(!H){show_Routing_Step(C,L);map.fitBounds(A)}else{map.setCenter(A.getCenter())}show_td(0)}}function RoutingEntryNGI(C,E,A,F,B,D){this.pointfrom=C;this.pointto=E;this.directions=F;this.pline=A;this.frommarker=null;this.tomarker=null;
this.opts=B;this.routeMarkers=D;this.id=routingEntryListCounter++;routingEntryList[this.id]=this;this.hide=function(){};this.getResultsPager_Routing=function(K,G){var I=G+SEARCH_RESULTS_PER_PAGE_ROUTING;if(I>K){I=K}var H='<div style="width:100%" align="center"><b><i>Οδηγίες Διαδρομής</i></b></div>';if((G-1>0)||(I<K)){H+='<table align="center" width="100%">';
H+='<tr><td align="center">';if(G-1>0){var J=G-SEARCH_RESULTS_PER_PAGE_ROUTING;if(J<0){J=0}H+='<a href="javascript:show_Routing('+this.id+","+J+')">';H+='<img src="images/velaki_aristera.png" style="border:0px;" title="Προηγούμενη σελίδα" alt="Προηγούμενη σελίδα" />';H+="</a>"}else{H+='<img src="images/velaki_aristera_gray.png" style="border:0px;" />'
}H+='</td><td align="center" width="70%">';H+="<b>Βήματα:</b> "+G+"-"+(I-1)+"/"+(K-1);H+='</td><td align="center">';if(I<K){H+='<a href="javascript:show_Routing('+this.id+","+I+')">';H+='<img src="images/velaki_deksia.png" style="border:0px;" title="Επόμενη σελίδα" alt="Επόμενη σελίδα" />';H+="</a>"}else{H+='<img src="images/velaki_deksia_gray.png" style="border:0px;" />'
}H+="</td></tr>";H+="</table>"}else{H+='<table align="center" width="100%">';H+='<tr><td align="center">';H+="<b>Βήματα:</b> "+(K-1);H+="</td></tr>";H+="</table>"}return H};this.getResultsPager_Routing_Step=function(K,G){var I=G+SEARCH_RESULTS_PER_PAGE_ROUTING_STEP;if(I>K){I=K}var H="";if((G-1>0)||(I<K)){H+='<table align="center" width="100%">';
H+='<tr><td align="center">';if(G-1>0){var J=G-SEARCH_RESULTS_PER_PAGE_ROUTING_STEP;if(J<1){J=1}H+='<a href="javascript:show_Routing_Step('+this.id+","+J+')">';H+='<img src="images/velaki_aristera.png" style="border:0px;" title="Προηγούμενη σελίδα" alt="Προηγούμενη σελίδα" />';H+="</a>"}else{H+='<img src="images/velaki_aristera_gray.png" style="border:0px;" />'
}H+='</td><td align="center" width="70%">';H+="<b>Βήματα:</b> "+G+"/"+(K-1);H+='</td><td align="center">';if(I<K){H+='<a href="javascript:show_Routing_Step('+this.id+","+I+')">';H+='<img src="images/velaki_deksia.png" style="border:0px;" title="Επόμενη σελίδα" alt="Επόμενη σελίδα" />';H+="</a>"}else{H+='<img src="images/velaki_deksia_gray.png" style="border:0px;" />'
}H+="</td></tr>";H+="</table>"}else{H+='<table align="center" width="100%">';H+='<tr><td align="center">';H+="<b>Βήματα:</b> "+(K-1);H+="</td></tr>";H+="</table>"}return H};this.showStep=function(P){if(P===undefined){P=1}var G=jQuery("#route_step");G.empty();var M=false;var O=this.directions;var J=O.length-1;
if(J<=0){M=true}if(M){Q='<div align="center">Δεν βρέθηκαν αποτελέσματα</div>';G.append(Q);return }var K=P+SEARCH_RESULTS_PER_PAGE_ROUTING_STEP;if(K>J){K=J}var I=this.getResultsPager_Routing_Step(J,P);G.append(I);var Q="<table>";Q+="<table>";for(var L=P;L<K;L++){var H=O[L].RouteSegment;Q+="<tr>";Q+='<td valign="top">'+L+".</td>";
Q+="<td>";Q+='<a href="javascript:showRoutingSegmentNGI('+this.id+","+L+')">';Q+=H.drivingDirection;Q+="</a>";var N=H.distance*1000;if(N>0){Q+=" ("+N+"m)"}Q+="</td>";Q+="</tr>"}Q+="</table>";G.append(Q);G.css("display","");showRoutingSegmentNGI(this.id,P,true)};this.show=function(P,R){if(P===undefined){P=1
}var G=jQuery("#about_td");G.empty();var M=false;var O=this.directions;var J=O.length-1;if(J<=0){M=true}if(M){G.append("<br />");Q='<div align="center">Δεν βρέθηκαν αποτελέσματα</div>';G.append(Q);G.append("<br />");return }var K=P+SEARCH_RESULTS_PER_PAGE_ROUTING;if(K>J){K=J}G.append("<br />");var I=this.getResultsPager_Routing(J,P);
G.append(I);var Q="<table>";Q+="<tr><td>Συνολική Απόσταση:&nbsp; </td><td>"+O[O.length-1].RouteSegment.totalDistance+' km.</td></tr><tr><td colspan="2">&nbsp;</td></tr></table>';Q+="<table>";for(var L=P;L<K;L++){var H=O[L].RouteSegment;Q+="<tr>";Q+='<td valign="top">'+L+".</td>";Q+="<td>";Q+='<a href="javascript:showRoutingSegmentNGI('+this.id+","+L+')">';
Q+=H.drivingDirection;Q+="</a>";var N=H.distance*1000;if(N>0){Q+=" ("+N+"m)"}Q+="</td>";Q+="</tr>"}Q+="</table>";G.append("<br />");G.append(Q);G.append("<br />")};this.remove=function(){this.pline.setMap(null);for(i in this.routeMarkers){this.routeMarkers[i].setMap(null)}this.routeMarkers=[];$("#route_step").css("display","none");
routeSegmentPoly.setMap(null);routeSegmentMarkerStart.setMap(null);routeSegmentMarkerStop.setMap(null)};this.getHtml=function(){var G="Από: ";G+=this.pointfrom.name;G+=" Προς: ";G+=this.pointto.name;return G};this.getText=function(){var G="<b><i> Διαδρομή </i> Από:</b> ";G+=this.pointfrom.name;G+=" <b>Προς:</b> ";
G+=this.pointto.name;return G};this.getType=function(){return ELTYPE_ROUTING};this.getIdent=function(){return this.intersident};this.equals=function(G){if(G.getType()==this.getType()){if(this.getText()==G.getText()){return true}}return false};this.init=function(){this.pline.setMap(map);google.maps.event.addListener(this.pline,"click",function(){showRoute()
});for(i in this.routeMarkers){this.routeMarkers[i].setMap(map)}var G=new google.maps.LatLngBounds();G.extend(new google.maps.LatLng(this.pointfrom.lat,this.pointfrom.lng));G.extend(new google.maps.LatLng(this.pointto.lat,this.pointto.lng));map.fitBounds(G);show_td(0)};this.getAttributes=function(){return[]
}}function showRoute(){var A;for(i in selectedPoints){if(selectedPoints[i].data.getType()==ELTYPE_ROUTING){A=selectedPoints[i]}}A.data.show();show_td(3)}function showRoutingAssist(){var A;for(i in selectedPoints){if(selectedPoints[i].data.getType()==ELTYPE_ROUTING){A=selectedPoints[i]}}A.data.showStep()
}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=[];var M=[];if(routeMarkers.length>0){for(j in routeMarkers){routeMarkers[j].setMap(null)}routeMarkers=[]}for(i=1;i<routeSegments.length-1;i++){var N=0;var H=9;getStepsArray(L,routeSegments[i].RouteSegment.segments,N,H);getTurningPointsArray(M,routeSegments[i].RouteSegment.segments,N,H)
}for(i=1;i<M.length-1;i++){routeMarkers[i]=new google.maps.Marker({position:M[i],map:map,icon:"images/markers/nokia_marker.png"})}var J=new google.maps.Polyline({path:L});var I=new RoutingEntryNGI(B,C,J,routeSegments,E,routeMarkers);for(i in selectedPoints){if(selectedPoints[i].data.getType()==ELTYPE_ROUTING){removeSelectionEntry(selectedPoints[i].ident)
}}if(routeSegmentPoly&&routeSegmentMarkerStart&&routeSegmentMarkerStop){routeSegmentPoly.setMap(null);routeSegmentMarkerStart.setMap(null);routeSegmentMarkerStop.setMap(null)}instantiateEntry(I);$("#route_step").html('<a href="javascript:showRoutingAssist()">Εμφάνιση Βοήθειας Διαδρομής</a>');$("#route_step").css("display","")
}})}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 getTurningPointsArray(D,C,G,B){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 show_Routing(C,A){var B=routingEntryList[C];
B.show(A,false)}function show_Routing_Step(C,A){var B=routingEntryList[C];B.showStep(A,false)};
