var chosenCategories=[];var chosenInvisibleCategories=[];var poisShownOnMap=[];var CHOSEN_POIS_PER_CAT=15;var toPrint=false;var poiRevGeoResult;function POIManager(F){var R=50;var L=this;var E=[];var J={};var B={};var T=1;var V={};var Q=[];var U=F;var C;function M(){E={};J={};B={};T=1;V={}}this.getPoiList=function(){return E
};function N(X){if(B[X.layerId]===undefined){B[X.layerId]={}}if(B[X.layerId][X.lat]===undefined){B[X.layerId][X.lat]={}}var W=B[X.layerId][X.lat][X.lng];if(W===undefined){return -1}return W}function A(W){var X=T++;if(B[W.layerId]===undefined){B[W.layerId]={}}if(B[W.layerId][W.lat]===undefined){B[W.layerId][W.lat]={}
}B[W.layerId][W.lat][W.lng]=X;W.id=X;if(J[W.layerId]===undefined){J[W.layerId]={}}J[W.layerId][X]=1;E[X]=W;C=new google.maps.LatLng(W.lat,W.lng);return X}function G(X){var W=E[X];removeFromMarkersOnMap(W.lat,W.lng);infowindow.close();if(E[X]!=undefined){delete E[X];delete B[W.layerId][W.lat][W.lng];delete J[W.layerId][X]
}}function I(c){var b=[];var d=E[c];var Z=poiLayerIdToCategoryId[d.layerId];var W=poiCategories[Z];var X="";var a="";if(version==200706){X=d.attr.POI_PHONE}else{if(version==200806){X=d.attr.POI_PHONE_GQ}}if(X>0.01){X=Math.round(X)}else{if((X!="0.0")&&(X!="")&&(X!=undefined)){X=X}}var Y=d.attr.NAME_GQ;
if(d.name!=""){Y=d.name}var a="";if(d.url!=""){a=d.url}else{if(poiCategoryLayerInfo[Z][d.layerId].url!=""){a=poiCategoryLayerInfo[Z][d.layerId].url}}if(a==null){a=""}if(trim(a)!=""){if(a.indexOf("http://")<0){a="http://"+a}if(d.layerId==1008){a='<a target="_new" style="float:right;" href="'+a+'">Κλείστε δωμάτιο online...</a>'
}else{a='<a target="_new" style="float:right;" href="'+a+'">'+"περισσότερα"+"</a>"}}b.push({"category":W,"layer":poiCategoryLayerInfo[Z][d.layerId].layerName,"phone":X,"url":a,"address":d.address,"name":Y});return b}function H(Y){var X=[];for(var W=0;W<Y.length;W++){if(V[Y[W]]!==undefined){X.push(Y[W])
}}return X}function D(a,j,f){for(var c in a.poiList){poi=a.poiList[c];var Y=N(poi);if(Y<0){Y=A(poi);if(V[poi.layerId]===undefined){continue}var d=poiLayerIdToCategoryId[poi.layerId];var Z=poi.logo;var k=poi.image_size;var h=getCatNameFromId(d);var X=getIconCategory(h);var e=getIconParams(k,Z,X);var b=new google.maps.Marker({map:U,position:C,icon:e,optimized:false,zIndex:100});
b.poiId=Y;var W=new Poi(Y,d,h,poi,b);poisShownOnMap.push(W);markersOnMap.push({"lat":C.lat(),"lng":C.lng(),"name":poi.attr.NAME_GQ,"marker":b});P(Y,b);poi.marker=b;if(!isCategoryVisible(d)){b.setVisible(false)}}}if(a.remaining==0){createChosenAccordionContent()}if(a.remaining>0){var g={"sessionid":a.sessionid,"layerids":j,"gbounds":f};
Q.push(g)}O()}function P(X,W){poiRevGeoResult="";google.maps.event.addListener(W,"click",function(){var Y=I(X);var a=W.getPosition().lat();var Z=W.getPosition().lng();RevGeoResults(W,a,Z,Y);hideAllLayerList(categoriesSize)});google.maps.event.addListener(W,"rightclick",function(){addContextMenu(2,W.getPosition())
});google.maps.event.addListener(U,"click",function(){infowindow.close()})}function S(Y){infowindow.close();delete V[Y];var X=J[Y];if(X!==undefined){for(var W in X){if(E[W].marker!==undefined){E[W].marker.setMap(null)}G(E[W].id)}}}function K(X,Z,Y){if(Z.length==0){return }var W={};W.sessionid=X;W.count=R;
if(X==0){W.layerids=Z.join(",");W.sw_lat=Y.southwest.lat;W.sw_lng=Y.southwest.lng;W.ne_lat=Y.northeast.lat;W.ne_lng=Y.northeast.lng}jQuery.ajax({type:"POST",url:"functs/getSessionPoiList.jsp",data:W,dataType:"json",success:function(a){D(a,Z,Y)}})}this.getPOIs=function(l,e){var b,a,Z,Y;var h=[];for(b=0;
b<l.length;b++){var o=false;for(a=0;a<h.length;a++){var c=false;for(Z=0;Z<h[a].length;Z++){if(h[a][Z]==l[b]){c=true;break}}if(c){o=true;break}else{var X=V[l[b]];var W=V[h[a][0]];if(X===undefined){if(W===undefined){h[a].push(l[b]);o=true;break}}else{if(W!==undefined){if(compareRectangles(X,W)){h[a].push(l[b]);
o=true;break}}}}}if(!o){h.push([l[b]])}}for(b=0;b<h.length;b++){var d=h[b][0];var n=[e];if(V[d]!==undefined){n=getRectangleDiff(V[d],e)}for(a=0;a<n.length;a++){var g={"sessionid":0,"layerids":h[b],"gbounds":n[a]};Q.push(g)}for(a=0;a<h[b].length;a++){V[h[b][a]]=e}}O()};function O(){if(Q.length>0){var W=Q.shift();
K(W.sessionid,H(W.layerids),W.gbounds)}}this.removePOIsByLayer=function(W){S(W)};this.getPOIById=function(W){return E[W]}}var displayedLayers={};function togglePOICategory(G,C){if(infowindow2!=undefined){infowindow2.close()}changeCatImage(C);var A=poiCategoryLayerInfo[C];if(jQuery("#poicheck_"+C).get(0).checked){$("#tabset").tabs("select",2);
var F=[];for(var D in A){jQuery("#poicheck_"+C+"_"+A[D].layerID).get(0).checked=true;displayedLayers[A[D].layerID]=1;F.push(A[D].layerID)}var B=map.getBounds();var E={"northeast":{"lat":B.getNorthEast().lat(),"lng":B.getNorthEast().lng()},"southwest":{"lat":B.getSouthWest().lat(),"lng":B.getSouthWest().lng()}};
G.getPOIs(F,E);createChosenAccordion(C)}else{for(var D in A){jQuery("#poicheck_"+C+"_"+A[D].layerID).get(0).checked=false;delete displayedLayers[A[D].layerID];G.removePOIsByLayer(A[D].layerID)}removeFromPoisShownOnMap(C);removeChosenAccordion(C);createChosenAccordionContent()}changeCatImage(C)}function removePOICategoryByChosen(A){jQuery("#poicheck_"+A).attr("checked",false);
togglePOICategory(poiManager,A)}function manageVisibility(){for(var A=0;A<21;A++){manageVisibility(A)}}function manageVisibility(C){var D="#hide-"+C;if($(D).attr("src")=="images/new/various/hide-category-dis.png"){showPoisMarkersFromMap(C);for(var B in chosenInvisibleCategories){var A=chosenInvisibleCategories[B];
if(A==C){chosenInvisibleCategories.splice(B,1)}}createChosenAccordionContentForCat(C)}else{infowindow.close();hidePoisMarkersFromMap(C);chosenInvisibleCategories.push(C)}}function isCategoryVisible(C){for(var B in chosenInvisibleCategories){var A=chosenInvisibleCategories[B];if(A==C){return false}}return true
}function hidePoisMarkersFromMap(B){var E="#hide-"+B;$(E).attr("src","images/new/various/hide-category-dis.png");$("#eyeimg_"+B).attr("src","images/new/various/hide-category-dis.png");$(E).attr("title","Εμφάνισε την κατηγορία");$("#eyeimg_"+B).attr("title","Εμφάνισε την κατηγορία");for(var F=0;F<poisShownOnMap.length;
F++){var C=poisShownOnMap[F];if(C!=undefined){var D=C.catId;if(D==B){var A=C.marker;A.setVisible(false)}}}var G="#chosen-cat-"+B;$(G).html("")}function showPoisMarkersFromMap(B){for(var F=0;F<poisShownOnMap.length;F++){var C=poisShownOnMap[F];if(C!=undefined){var D=C.catId;if(D==B){var A=C.marker;A.setVisible(true)
}}}createChosenAccordionContentForCat(B);var E="#hide-"+B;$(E).attr("src","images/new/various/hide-category.png");$(E).attr("title","Κρύψε προσωρινά την κατηγορία");$("#eyeimg_"+B).attr("src","images/new/various/hide-category.png");$("#eyeimg_"+B).attr("title","Κρύψε προσωρινά την κατηγορία")}function createChosenAccordion(A){createChosenCategories(A);
updateChosenAccordion()}function createChosenCategories(B){for(var C=0;C<chosenCategories.length;C++){var A=chosenCategories[C];if(B==A){break}else{if(C==(chosenCategories.length-1)){chosenCategories.push(B)}}}if(chosenCategories.length==0){chosenCategories.push(B)}}function removeChosenCategories(B){for(var C in chosenCategories){var A=chosenCategories[C];
if(A==B){chosenCategories.splice(C,1)}}}function removeChosenAccordion(A){removeChosenCategories(A);updateChosenAccordion()}function updateChosenAccordion(){var C="";C+='<div class="chosen-acc-wrapper" id="chosen-acc">';for(var E in chosenCategories){var A=chosenCategories[E];var B=getCatNameFromId(A);
C+='<h2 id="header-'+A+'">';C+='<a href="#chosen-cat-'+A+'">';C+='<img src="images/new/cat/'+getChosenIconCategory(B)+'" style="margin-bottom:-3px; margin-right:5px;"/>';if(B=="Καταστήματα Ηλεκτρονικών"){B="Καταστήματα Ηλ/κών"}C+=B;C+="</a>";C+='<span class="ui-icon ui-icon-triangle-1-e"></span>';C+="<div>";
if(isCategoryVisible(A)){C+='<img id="hide-'+A+'" onclick="manageVisibility('+A+')" src="images/new/various/hide-category.png" title="Κρύψε προσωρινά την κατηγορία">'}else{C+='<img id="hide-'+A+'" onclick="manageVisibility('+A+')" src="images/new/various/hide-category-dis.png" title="Εμφάνισε την κατηγορία">'
}C+='<img onclick="javascript:removePOICategoryByChosen('+A+')" src="images/new/various/close-category.png" title="Διάγραψε την κατηγορία">';C+="</div>";C+="</h2>";C+='<div id="chosen-cat-'+A+'">';C+="</div>"}C+="</div>";var D=$("#chosen-acc").children("h2").length;$("#chosen-elem").html(C);$("#chosen-acc").accordion("destroy");
$("#chosen-acc").accordion({collapsible:true,animated:"slide",navigation:true,event:"click",collapsible:true,autoHeight:false,clearStyle:false,fillSpace:false,active:D});$("#chosen-acc").bind("accordionchange",function(G,H){if(H.newHeader!=H.oldHeader){var J=$("#chosen-acc").accordion("option","active");
if($("#chosen-acc").children("div")[J]!=undefined){var I=$("#chosen-acc").children("div")[J].getAttribute("id");var F=I.substring(11,I.length);createChosenAccordionContentForCat(F)}}});if(chosenCategories.length==0){$("#chosen-acc").remove()}}function createChosenAccordionContent(){for(var B in chosenCategories){var A=chosenCategories[B];
createChosenAccordionContentForCat(A)}}function createChosenAccordionContentForCat(E){var C=0;var D="";var G="#chosen-cat-"+E;var B=getCatNameFromId(E);D+='<div class="scroll-pane-chosen">';for(var H=0;H<poisShownOnMap.length;H++){var F=poisShownOnMap[H];if(F!=undefined){if(isCategoryVisible(E)){var A=F.marker;
A.setVisible(true);if(E==F.catId&&C<=CHOSEN_POIS_PER_CAT){if(isInInMapBounds(F)){D+='<div id="p-'+F.getPoiId()+'" class="chosen-point">';D+=F.getHtmlContent();D+="</div>";C++}}else{if(E==F.catId&&C>CHOSEN_POIS_PER_CAT){if(isInInMapBounds(F)){D+='<div class="chosen-point">Εμφανίζονται τα '+CHOSEN_POIS_PER_CAT+" πρώτα σημεία αυτής της κατηγορίας...</div>";
break}}}}}}D+="</div>";$(G).html(D);if(!toPrint){$(".scroll-pane-chosen").jScrollPane({showArrows:true,horizontalGutter:10})}}function isInInMapBounds(B){var A=map.getBounds();if(A.contains(B.latlng)){return true}return false}function removeFromPoisShownOnMap(A){for(var C=0;C<poisShownOnMap.length;C++){var B=poisShownOnMap[C];
if(B!=undefined){if(B.catId==A){poisShownOnMap.splice(C,1);C--}}}}function removeFromPoisShownOnMapByLayerId(C){for(var B=0;B<poisShownOnMap.length;B++){var A=poisShownOnMap[B];if(A!=undefined){if(A.getLayerId()==C){poisShownOnMap.splice(B,1);B--}}}}function togglePOIItem(G,B,H){infowindow2.close();changeCatImage(B);
if(jQuery("#poicheck_"+B+"_"+H).get(0).checked){$("#tabset").tabs("select",2);displayedLayers[H]=1;var A=map.getBounds();var F={"northeast":{"lat":A.getNorthEast().lat(),"lng":A.getNorthEast().lng()},"southwest":{"lat":A.getSouthWest().lat(),"lng":A.getSouthWest().lng()}};G.getPOIs([H],F);createChosenAccordion(B)
}else{var D=false;var E=poiCategoryLayerInfo[B];for(var C in E){D=D||jQuery("#poicheck_"+B+"_"+E[C].layerID).get(0).checked}if(!D){jQuery("#poicheck_"+B).get(0).checked=false}delete displayedLayers[H];G.removePOIsByLayer(H);removeFromPoisShownOnMapByLayerId(H);if(!D){removeChosenAccordion(B)}createChosenAccordionContent()
}}function changeCatImage(B){var A=getCatNameFromId(B);var H=poiCategoryLayerInfo[B];var D=false;for(var C in H){if(jQuery("#poicheck_"+B+"_"+H[C].layerID).get(0).checked){D=true;for(var G in iconPerCategory){var E=iconPerCategory[G];if(E.category==A){jQuery("#cat_"+B).attr("src","images/new/cat/"+E.catSelectedIcon);
var F='<a class="eye" style="width:23px; border:none; background:none; display:inline; " href="javascript:void(0)"><img id="eyeimg_'+B+'" style="margin-bottom:-7px; margin-left:8px" src="images/new/various/hide-category.png" onclick="manageVisibility('+B+')"/></a>';jQuery("#eye_"+B).html(F)}}}}if(!D){for(var G in iconPerCategory){var E=iconPerCategory[G];
if(E.category==A){jQuery("#cat_"+B).attr("src","images/new/cat/"+E.catIcon);jQuery("#eye_"+B).html("")}}}}function getDisplayedLayersArray(){var B=[];for(var A in displayedLayers){B.push(A)}return B}function containsPoint(A,C){var B={"lat":Number(C.lat),"lng":Number(C.lng)};return((Number(A.southwest.lat)<=B.lat)&&(Number(A.southwest.lng)<=B.lng)&&(Number(A.northeast.lat)>B.lat)&&(Number(A.northeast.lng)>B.lng))
}function getRectangleDiff(C,B){var A={"lat":B.southwest.lat,"lng":B.northeast.lng};var D={"lat":B.northeast.lat,"lng":B.southwest.lng};if(containsPoint(C,B.southwest)){if(containsPoint(C,B.northeast)){return[]}else{if(containsPoint(C,A)){return[{"southwest":{"lat":C.northeast.lat,"lng":B.southwest.lng},"northeast":B.northeast}]
}else{if(containsPoint(C,D)){return[{"southwest":{"lat":B.southwest.lat,"lng":C.northeast.lng},"northeast":B.northeast}]}else{return[{"southwest":{"lat":B.southwest.lat,"lng":C.northeast.lng},"northeast":B.northeast},{"southwest":{"lat":C.northeast.lat,"lng":B.southwest.lng},"northeast":{"lat":B.northeast.lat,"lng":C.northeast.lng}}]
}}}}else{if(containsPoint(C,B.northeast)){if(containsPoint(C,D)){return[{"southwest":B.southwest,"northeast":{"lat":C.southwest.lat,"lng":B.northeast.lng}}]}else{if(containsPoint(C,A)){return[{"southwest":B.southwest,"northeast":{"lat":B.northeast.lat,"lng":C.southwest.lng}}]}else{return[{"southwest":B.southwest,"northeast":{"lat":B.northeast.lat,"lng":C.southwest.lng}},{"southwest":{"lat":B.southwest.lat,"lng":C.southwest.lng},"northeast":{"lat":C.southwest.lat,"lng":B.northeast.lng}}]
}}}else{if(containsPoint(C,A)){return[{"southwest":B.southwest,"northeast":{"lat":B.northeast.lat,"lng":C.southwest.lng}},{"southwest":{"lat":C.northeast.lat,"lng":C.southwest.lng},"northeast":B.northeast}]}else{if(containsPoint(C,D)){return[{"southwest":B.southwest,"northeast":{"lat":C.southwest.lat,"lng":C.northeast.lng}},{"southwest":{"lat":B.southwest.lat,"lng":C.northeast.lng},"northeast":B.northeast}]
}else{if(containsPoint(B,C.southwest)){return[{"southwest":B.southwest,"northeast":{"lat":C.southwest.lat,"lng":B.northeast.lng}},{"southwest":{"lat":C.northeast.lat,"lng":B.southwest.lng},"northeast":B.northeast},{"southwest":{"lat":C.southwest.lat,"lng":C.northeast.lng},"northeast":{"lat":C.northeast.lat,"lng":B.northeast.lng}},{"southwest":{"lat":C.southwest.lat,"lng":B.southwest.lng},"northeast":{"lat":C.northeast.lat,"lng":C.southwest.lng}}]
}else{return[B]}}}}}}function compareRectangles(B,A){return((Number(B.southwest.lat)==Number(A.southwest.lat))&&(Number(B.southwest.lng)==Number(A.southwest.lng))&&(Number(B.northeast.lat)==Number(A.northeast.lat))&&(Number(B.northeast.lng)==Number(A.northeast.lng)))}function RevGeoResults(B,H,F,D){var A="";
if(str!=undefined){var G=poiManager.getPOIById(B.poiId);var E='<div class="myInfoBox">';E+='<div class="infoBox-inner">';E+='<span style="color:#000000">'+D[0].category+" &gt; </span>"+'<span style="color:#a6c244; font-weight:bold;">'+D[0].layer+"</span><br/>";E+="<b>"+D[0].name+"</b><br/>";var C=D[0].layer+" &gt; "+D[0].name;
$.ajax({type:"POST",url:"functs/revGeoResults.jsp",data:{"pointX":F,"pointY":H},dataType:"json",success:function(I){if(I.revGeoResults[0]){if(!G.address!=""){E+=I.revGeoResults[0].roadName+" ";if(I.revGeoResults[0].roadNumber1!=0){E+=I.revGeoResults[0].roadNumber1+" "}if(I.revGeoResults[0].roadNumber2!=0){E+=I.revGeoResults[0].roadNumber2
}E+=", "}E+=I.revGeoResults[0].roadMunicipality;if(I.revGeoResults[0].roadZip!=""&&I.revGeoResults[0].roadZip!=undefined&&I.revGeoResults[0].roadZip!="0"){E+=", "+I.revGeoResults[0].roadZip}E+="<br>"}if(D[0].phone!=""&&D[0].phone!=undefined&&D[0].phone!="0"&&D[0].phone!="0.0"){E+=D[0].phone}if(D[0].url!=""&&D[0].url!=undefined){E+=D[0].url
}E+='<div class="info-route">';E+="<a href=\"javascript:setRouteDirection('"+G.lat+"','"+G.lng+"','from','"+C+"')\">";E+='<img src="images/new/various/start-route.png" style="border:0px; margin-right:3px;" title="Διαδρομή από" alt="Διαδρομή από" />Διαδρομή από</a>';E+="<a href=\"javascript:setRouteDirection('"+G.lat+"','"+G.lng+"','to','"+C+"')\">";
E+='<img src="images/new/various/stop-route.png" style="border:0px; margin-right:3px;" title="Διαδρομή προς" alt="Διαδρομή προς" />Διαδρομή προς</a>';E+="</div>";E+="</div>";E+='<div class="infoBox-bottom"></div>';A=E;A+='<div style="margin-top:12px;"/>';if(infowindow2!=undefined){infowindow2.close()
}if(infowindow==undefined){initInfoWindow()}infowindow.setContent(A);infowindow.open(map,B);G.reverseGeoText=1}})}}function openExtraInfo(E,H){var F=poiManager.getPOIById(H);var B=F.image_url;var C=F.free_text;var D=$("#info").html();var G=$("#addr").html();var A="details.html?info="+escape(D)+"&addr="+escape(G)+"&image_url_param="+escape(B)+"&free_text_param="+escape(C)+"&flag=booking";
OpenWindow=window.open(A,"newwin","toolbar=no,scrollbars=yes,menubar=no")}function getCatNameFromId(B){var C=poiCategoryLayerInfo[B];for(var D in C){var A=C[D].poiClass;return A}}function getPoiGuidance(D){var C=getCatNameFromId(D);var E="<span>";for(var B in iconPerCategory){var A=iconPerCategory[B];
if(A.category==C){E+='<img src="http://'+contextURL+"/images/new/markers/"+A.markerIcon+'" width="22"/> '+C}}E+="</span>";return E};
