var PHARMACY_YELLOW_THRESHOLD=30;var PHARMACY_CHANGES_MINUTES_THRESHOLD=10;var PHARMACY_OPENS_HOURS_THRESHOLD=60;var PHARMACY_HOURS_ROUNDING_THRESHOLD=15;var PHARMACY_UPDATE_INTERVAL=5*60;var pharmaciesOnCall={};var pharmacyRequestBounds;var pharmacyRequestDuration;var pharmacyServerDate;var pharmacyRequestDate;
var pharmacyUpdateTimer;var pharmaciesVisible=false;function parsePharmacyDate(F){var E=F.indexOf("-",0);var D=F.indexOf("-",E+1);var C=F.indexOf(" ",D+1);var A=F.indexOf(":",C+1);var B=new Date();B.setMilliseconds(0);B.setSeconds(0);B.setMinutes(F.substring(A+1));B.setHours(F.substring(C+1,A));B.setDate(F.substring(0,E));
B.setMonth(F.substring(E+1,D)-1);B.setFullYear(F.substring(D+1,C));return B}function getPharmacyInfo(B){var A='<div align="left">';A+="<b>"+B.name+"</b><br />";A+=B.area+"<br />";A+=B.address+"<br />";A+="<b>Ανοίγει:</b> "+B.opensAt+"<br />";A+="<b>Κλείνει:</b> "+B.closesAt+"<br />";A+="<b>Τηλ:</b> "+B.phone+"<br />";
A+="<b>Εφημερία:</b> "+B.efimeria+"<br />";A+="</div>";A+="<a href=\"javascript:setRoutePointFrom('"+B.lat+"','"+B.lng+"')\">";A+='<img src="images/start_hex.png" style="border:0px; margin-right:3px;" title="Διαδρομή από" alt="Διαδρομή από" />';A+="</a>";A+="<a href=\"javascript:setRoutePointTo('"+B.lat+"','"+B.lng+"')\">";
A+='<img src="images/stop_hex.png" style="border:0px; margin-right:3px;" title="Διαδρομή έως" alt="Διαδρομή έως" />';return A}function trueRound(A){A=String(A);var B=A.indexOf(".");if(B>=0){A=A.substring(0,B)}if(A.length==0){A="0"}return A}function getPharmacyTip(E){var D,A;var C=new Date();var J=pharmacyServerDate.getTime()+(C.getTime()-pharmacyRequestDate.getTime());
var I=parsePharmacyDate(E.opensAt).getTime();var F=parsePharmacyDate(E.closesAt).getTime();if((I<=J)&&(J<F)){if((F-J<PHARMACY_YELLOW_THRESHOLD*60*1000)){D="Κλείνει σε ";var B=Math.round((F-J)/(60*1000));if(B<=PHARMACY_CHANGES_MINUTES_THRESHOLD){D+=trueRound(B)+" λεπτά"}else{B=Math.round(B/5)*5;D+=trueRound(B)+" λεπτά"
}A="yellow50.png"}else{D="Ανοιχτό";A="green50.png"}}else{A="red50.png";var D="Ανοίγει σε ";var B=Math.round((I-J)/(60*1000));if(B>=PHARMACY_OPENS_HOURS_THRESHOLD){var H=B-Math.floor(B/60)*60;var G=(B-H)/60;if(H>=60-PHARMACY_HOURS_ROUNDING_THRESHOLD){G++;H-=60}D+=trueRound(G);if(H>=PHARMACY_HOURS_ROUNDING_THRESHOLD){D+="+"
}if((G==1)&&(H<PHARMACY_HOURS_ROUNDING_THRESHOLD)){D+=" ώρα"}else{D+=" ώρες"}}else{if(B<=PHARMACY_CHANGES_MINUTES_THRESHOLD){D+=trueRound(B)+" λεπτά"}else{B=Math.round(B/5)*5;D+=trueRound(B)+" λεπτά"}}}return{"style":A,"text":D}}function addPharmacy(G){pharmaciesOnCall[G.id]=G;var E=iconPerCategoryId[HEALTH_ICON];
var C=new GMarker(new GLatLng(G.lat,G.lng),{"icon":E});C.pharmacydata=G;var D="Φαρμακείο: "+G.name;markersOnMap.push({"lat":G.lat,"lng":G.lng,"name":D});GEvent.addListener(C,"click",function(){this.openInfoWindow(getPharmacyInfo(this.pharmacydata))});var F=getPharmacyTip(G);var B='background-image: url("images/'+F.style+'"); color:black; padding:1px; white-space: nowrap;';
var A=new MarkerText(C,13,-45,B,F.text);map.addOverlay(C);map.addOverlay(A);pharmaciesOnCall[G.id].marker=C;pharmaciesOnCall[G.id].markertext=A;pharmaciesOnCall[G.id].touched=true}function getNewPharmacies(B,A){jQuery.ajax({type:"POST",url:"functs/fsa.jsp",data:{"sw_lat":B.southwest.lat,"sw_lng":B.southwest.lng,"ne_lat":B.northeast.lat,"ne_lng":B.northeast.lng,"dur":A},dataType:"json",success:function(D){pharmacyServerDate=parsePharmacyDate(D[0]);
pharmacyRequestDate=new Date();pharmacies=D[1];for(var C in pharmacies){var E=pharmacies[C];if(pharmaciesOnCall[E.id]===undefined){addPharmacy(E)}}}})}function clearPharmacies(){for(var A in pharmaciesOnCall){var B=pharmaciesOnCall[A];removeFromMarkersOnMap(B.lat,B.lng);map.removeOverlay(B.marker);map.removeOverlay(B.markertext)
}pharmaciesOnCall={};pharmacyRequestBounds=null}function togglePharmaciesOnCall(B){if(B){if(panelHospitals.currentPanelIdx!=0){panelHospitals.showPanel("panel_pharmacy_list")}var A=map.getBounds();var C={"southwest":{"lat":A.getSouthWest().lat(),"lng":A.getSouthWest().lng()},"northeast":{"lat":A.getNorthEast().lat(),"lng":A.getNorthEast().lng()}};
pharmacyRequestDuration=1;if(jQuery("#pharmacies_hours").get(0)){pharmacyRequestDuration=jQuery("#pharmacies_hours").get(0).value}getNewPharmacies(C,pharmacyRequestDuration);pharmacyRequestBounds=C;startPharmacyUpdateTimer();pharmaciesVisible=true}else{clearPharmacies();pharmaciesVisible=false}}function updatePharmacies(B,G){if((B)||(jQuery("#pharmacies").get(0).checked)){var E;
if(jQuery("#pharmacies_hours").get(0)){E=jQuery("#pharmacies_hours").get(0).value}else{E=G}if(E!=pharmacyRequestDuration){clearPharmacies()}var A=map.getBounds();var F={"southwest":{"lat":A.getSouthWest().lat(),"lng":A.getSouthWest().lng()},"northeast":{"lat":A.getNorthEast().lat(),"lng":A.getNorthEast().lng()}};
var D;if(pharmacyRequestBounds!=null){D=getRectangleDiff(pharmacyRequestBounds,F)}else{D=[F]}for(var C in D){getNewPharmacies(D[C],E)}pharmacyRequestBounds=F;pharmacyRequestDuration=E;startPharmacyUpdateTimer()}}function startPharmacyUpdateTimer(){if(pharmacyUpdateTimer!=null){clearTimeout(pharmacyUpdateTimer)
}pharmacyUpdateTimer=setTimeout("updatePharmacies1();",PHARMACY_UPDATE_INTERVAL*1000)}function updatePharmacies1(){if(pharmaciesVisible){jQuery.ajax({type:"POST",url:"functs/fsa.jsp",data:{"sw_lat":pharmacyRequestBounds.southwest.lat,"sw_lng":pharmacyRequestBounds.southwest.lng,"ne_lat":pharmacyRequestBounds.northeast.lat,"ne_lng":pharmacyRequestBounds.northeast.lng,"dur":pharmacyRequestDuration},dataType:"json",success:function(B){pharmacyServerDate=parsePharmacyDate(B[0]);
pharmacyRequestDate=new Date();pharmacies=B[1];for(var C in pharmaciesOnCall){pharmaciesOnCall[C].touched=false}for(var C in pharmacies){var E=pharmacies[C];if(pharmaciesOnCall[E.id]===undefined){addPharmacy(E)}else{var I=pharmaciesOnCall[E.id];E.marker=I.marker;E.marker.pharmacyinfo=getPharmacyInfo(E);
var G=getPharmacyTip(E);var A='background-image: url("images/'+G.style+'"); color:black; padding:1px; white-space: nowrap;';var D=new MarkerText(E.marker,13,-45,A,G.text);map.addOverlay(D);map.removeOverlay(I.markertext);E.markertext=D;pharmaciesOnCall[E.id]=E;pharmaciesOnCall[E.id].touched=true}}var H=[];
for(var C in pharmaciesOnCall){var E=pharmaciesOnCall[C];if(!E.touched){H.push(C)}}for(var C in H){var F=H[C];map.removeOverlay(pharmaciesOnCall[F].marker);map.removeOverlay(pharmaciesOnCall[F].markertext);delete (pharmaciesOnCall[F])}startPharmacyUpdateTimer()}})}};