"mololo.map".namespace();
mololo.map.MapUtils={_getMap:function(A){if(A==undefined){return mololo.globals.MAP
}return A
},adjustBounds:function(B,E,D){var G=(D.getNorthEast().lat()-D.getSouthWest().lat())*B;
var C=(D.getNorthEast().lng()-D.getSouthWest().lng())*E;
var A=new GLatLng(D.getSouthWest().lat()-G,D.getSouthWest().lng()-C);
var F=new GLatLng(D.getNorthEast().lat()+G,D.getNorthEast().lng()+C);
return new google.maps.LatLngBounds(A,F)
},getMapLevel:function(A){if(A==null){return mololo.map.ZoomLevelEnum.LEVEL_STATE
}return mololo.map.ZoomLevelEnum.getZoomLevel(A.getZoom())
},getMainMapLevel:function(){return this.getMapLevel(mololo.globals.MAP)
},zoomToLevel:function(A){mololo.globals.MAP.setZoom(A.getMinGoogleZoom())
},zoomToMarker:function(A,C,B){this.centerMap(A.getGMarker().getLatLng(),C,B)
},centerMap:function(D,C,B){B=this._getMap(B);
var A=new google.maps.LatLng(D.lat(),D.lng()+C.getCenterCorrection());
B.setCenter(A,C.getMinGoogleZoom())
},centerMapWithMaxZoom:function(C,B){B=this._getMap(B);
var A=new google.maps.LatLng(C.lat(),C.lng()+mololo.map.ZoomLevelEnum.LEVEL_EVENT.getCenterCorrectionMax());
B.setCenter(A,mololo.map.ZoomLevelEnum.LEVEL_EVENT.getMaxGoogleZoom())
},showAllCountry:function(A){if(mololo.globals.INFO_WINDOW!=null){mololo.globals.INFO_WINDOW.close()
}this.centerMap(new google.maps.LatLng(mololo.map.Config.INIT_LATITUDE,mololo.map.Config.INIT_LONGITUDE),mololo.map.ZoomLevelEnum.LEVEL_STATE,A)
},getMapBounds:function(F){F=this._getMap(F);
var B=F.getBounds();
var H=B.getSouthWest().lat();
var D=B.getSouthWest().lng();
var G=B.getNorthEast().lat();
var C=B.getNorthEast().lng();
var A=new google.maps.LatLng(H,D);
var E=new google.maps.LatLng(G,C-(C-D)*mololo.map.Config.MAP_MAX_LONGITUDE_PERCENTAGE_FACTOR);
return new google.maps.LatLngBounds(A,E)
},isWithinBounds:function(E,A,D){var G=D.getSouthWest().lat();
var C=D.getSouthWest().lng();
var F=D.getNorthEast().lat();
var B=D.getNorthEast().lng();
return(E>=G&&E<=F&&A>=C&&A<=B)
},isMarkerWithinBounds:function(A){return mololo.map.MapUtils.isWithinBounds(A.getGMarker().getLatLng().lat(),A.getGMarker().getLatLng().lng(),mololo.map.MapUtils.getMapBounds())
},retrieveCoordinatesWithinBounds:function(C,B){var A=[];
C.forEach(function(D){if(mololo.map.MapUtils.isWithinBounds(D.lat(),D.lng(),B)){A.push(D)
}});
return A
},latlng2String:function(A){return A.lat()+"-"+A.lng()
},parseLatLng:function(B){var A=B.split("-");
return new google.maps.LatLng(parseFloat(A[0]),parseFloat(A[1]))
}};
mololo.map.AddNewEventMaxInfoWindowHelper=Class.create({maxContent:null,initialize:function(A){this.maxContent=$(A)
}});
mololo.map.MarkerUtils={getMaxInfoWindowId:function(A){return"max:info:"+A.getId()
},getMaxContentWindowInfoId:function(A){return"max:content:"+A.getId()
},getMaxSendEventId:function(A){return"max:sendevent:"+A.getId()
}};
mololo.map.SearchCriteriaUtils={firstNoResultTabSelection:null,updateSearchCriteria:function(){var A=mololo.globals.CRITERIA;
A.setWords($("searchWords").value);
A.setCity($("searchCity").value);
A.setDates($("searchDates").value);
A.setCategories($("searchCategories").value)
},isNoResults:function(C){var A=C.marker==undefined||C.marker.length==0;
if(!A){var D=mololo.ArrayUtils.convertToArrayIfSingleElement(C.marker);
for(var B=0;
B<D.length;
B++){if(mololo.map.MapUtils.isWithinBounds(D[B].lt,D[B].ln,mololo.map.MapUtils.getMapBounds())){A=false;
break
}else{A=true
}}}if(A&&mololo.map.SearchCriteriaUtils.firstNoResultTabSelection==null){mololo.map.SearchCriteriaUtils.firstNoResultTabSelection=mololo.globals.RIGHT_SIDE_EVENT_PANEL.getAppViewEventType()
}else{if(!A){mololo.map.SearchCriteriaUtils.firstNoResultTabSelection=null
}}return A
},isSingleMarker:function(A){return A.marker==undefined
},isEventGroupedMarker:function(A,B){return B=mololo.map.ZoomLevelEnum.LEVEL_EVENT&&A.eId&&A.marker
},hasPremiumMarkers:function(A){return A.premium!=null&&A.premium.marker!=undefined&&A.premium.marker.length>0
},hasFavoriteMarkers:function(A){return A.favorite!=null&&A.favorite.marker!=undefined&&A.favorite.marker.length>0
},hasTopMarkers:function(A){return A.top!=null&&A.top.marker!=undefined&&A.top.marker.length>0
},_getNextTab:function(){if(mololo.globals.RIGHT_SIDE_EVENT_PANEL.getAppViewEventType()==mololo.AppViewEventTypeEnum.RECOMMENDED){return mololo.AppViewEventTypeEnum.PLACES
}else{if(mololo.globals.RIGHT_SIDE_EVENT_PANEL.getAppViewEventType()==mololo.AppViewEventTypeEnum.PLACES){return mololo.AppViewEventTypeEnum.TODAY
}else{if(mololo.globals.RIGHT_SIDE_EVENT_PANEL.getAppViewEventType()==mololo.AppViewEventTypeEnum.TODAY){return mololo.AppViewEventTypeEnum.FUTURE
}else{if(mololo.globals.RIGHT_SIDE_EVENT_PANEL.getAppViewEventType()==mololo.AppViewEventTypeEnum.FUTURE){return mololo.AppViewEventTypeEnum.RECOMMENDED
}}}}},handleNoSearchResult:function(A){if(mololo.map.SearchCriteriaUtils._getNextTab()!=mololo.map.SearchCriteriaUtils.firstNoResultTabSelection){mololo.globals.DISPATCHER.sendEvent(mololo.Action.TAB_VIEW_CHANGED_ACTION,new mololo.TabViewEvent(mololo.map.SearchCriteriaUtils._getNextTab()));
return false
}else{mololo.globals.DISPATCHER.sendEvent(mololo.Action.TAB_VIEW_CHANGED_ACTION,new mololo.TabViewEvent(mololo.map.SearchCriteriaUtils._getNextTab()));
if(A==mololo.map.ZoomLevelEnum.LEVEL_STATE){mololo.globals.DISPATCHER.sendEvent(mololo.Action.SEARCHEND_ACTION);
mololo.WindowUtils.alert(A.getNoResultsMsg(),function(B){return true
})
}else{mololo.WindowUtils.confirm(A.getNoResultsMsg(),300,mololo.msg.yesButton,mololo.msg.noButton,"confirmZoomOutDialog",function(B){mololo.WindowUtils.closeWindow()
},function(B){mololo.WindowUtils.closeWindow();
setTimeout(function(){var C=mololo.map.ZoomLevelEnum.getLowerZoom(A);
if(C!=mololo.map.ZoomLevelEnum.LEVEL_STATE){mololo.map.MapUtils.zoomToLevel(C)
}else{mololo.map.MapUtils.showAllCountry()
}},1000);
return true
})
}}return true
}};
mololo.map.MapFactory={create:function(B){var A=mololo.map.Config;
if(google.maps.BrowserIsCompatible()){var C=new google.maps.Map2($(B));
var D=mololo.globals.CONTEXT.getInitialEvent();
if(D!=null){mololo.map.MapUtils.centerMap(D.latlng,mololo.map.ZoomLevelEnum.LEVEL_EVENT,C)
}else{mololo.map.MapUtils.showAllCountry(C)
}return C
}else{alert(mololo.msg.gMapsNotSupported)
}}};
mololo.map.CriteriaFactory={create:function(A){var B=new mololo.map.SearchCriteria();
B.updateMapCriteria(A);
B.setShowAlsoPlaces(true);
return B
}};
mololo.map.MarkerFactory={create:function(G,F,D,E){var C=G.getMarkerClass();
var B=new C(F,D);
B.setFavoriteMarker(E);
B.setIcon(this.createIcon(B));
var A=new google.maps.LatLng(F.lt,F.ln);
B.setGMarker(this.createGMarker(G,B.isSuperMarker(),A,B.getMarkerOptions(),E));
this._addListeners(B,D);
return B
},createNewEvent:function(F,E){var C=F.getMarkerClass();
var B=E.isPermanent()?"Y":"N";
var A=new C({kk:E.getMainCategoryCode(),pt:B},mololo.globals.MAP);
A.setAsNewEventMarker();
A.setIcon(this.createIcon(A));
var D=A.getMarkerOptions();
D.draggable=true;
A.setGMarker(this.createGMarker(F,A.isSuperMarker(),E.getLatLng(),D,false));
return A
},createGrouped:function(F,D){var B=new mololo.map.EventGroupedMarker(F,D);
var A=new google.maps.LatLng(F.lt,F.ln);
var C=[];
var E=mololo.ArrayUtils.convertToArrayIfSingleElement(F.marker);
E.forEach(function(G){var H=new mololo.map.EventSubMarker(G,D,B);
C.push(H)
});
B.setSubMarkers(C);
B.setIcon(this.createIcon(B));
B.setGMarker(this.createGMarker(B.getZoomLevel(),B.isSuperMarker(),A,B.getMarkerOptions(),false));
this._addListeners(B,D);
return B
},createGMarker:function(E,D,C,A,B){if(B==undefined){B=false
}A.zIndexProcess=function(){var F=this.mololoMarker;
var G=300+F.getPremium();
if(F.isSuperMarker()){G+=300
}else{if(F.isGrouped()){G+=100+F.getPremium()*10
}else{if(F.isPremium()){G+=50+F.getPremium()*10
}}}return G
};
return(E==mololo.map.ZoomLevelEnum.LEVEL_EVENT||D||B)?(new google.maps.Marker(C,A)):(new LabeledMarker(C,A))
},createIcon:function(A){var C;
if(A.isAlternativeIconAvailable()){C=new google.maps.Icon(mololo.globals.ICONS.iconAllLevelAlternativeIconPrototype);
C.image=mololo.globals.ICONS.iconAllLevelAlternativeIconPrototype.image+"/"+A.getAlternativeIconName()
}else{if(A.isSuperMarker()){C=mololo.globals.ICONS["iconAllLevelPremium"+A.getPremium()]
}else{if(A.isFavoriteMarker()){C=(A.isPermanent())?mololo.globals.ICONS.iconAllLevelPlaceFavPrototype:mololo.globals.ICONS.iconAllLevelEventFavPrototype
}else{if(A.getZoomLevel()==mololo.map.ZoomLevelEnum.LEVEL_EVENT&&A.getMainCategoryCode()!=mololo.globals.CONTEXT.getNoSelectionValue()){var B=(A.isGrouped()&&A.getPremium()==mololo.map.EventPremium.SUPER_PREMIUM)?mololo.globals.ICONS.iconEventLevelSuperPremiumGroupedPrototype:(A.isGrouped())?mololo.globals.ICONS.iconEventLevelGroupedPrototype:(A.getPremium()==mololo.map.EventPremium.SUPER_PREMIUM)?mololo.globals.ICONS.iconEventLevelSuperPremiumEventPrototype:(A.isPermanent())?mololo.globals.ICONS.iconEventLevelPlacePrototype:mololo.globals.ICONS.iconEventLevelEventPrototype;
C=mololo.globals.ICONS.cacheIcon(B,B.image+"/"+A.getMainCategoryCode().toLowerCase()+".png")
}else{if(A.getZoomLevel()==mololo.map.ZoomLevelEnum.LEVEL_CITY){C=new google.maps.Icon(mololo.globals.ICONS["iconCityLevelGroupedPrototype"+this._calculateRange(A.getMarkerCount())])
}else{if(A.getZoomLevel()==mololo.map.ZoomLevelEnum.LEVEL_STATE){C=new google.maps.Icon(mololo.globals.ICONS["iconStateLevelGroupedPrototype"+this._calculateRange(A.getMarkerCount())])
}else{C=this.createDefaultIcon()
}}}}}}return C
},createDefaultIcon:function(){return new google.maps.Icon(G_DEFAULT_ICON)
},createMarkerMinHtmlContent:function(A){content='<div class="miniItem" onclick="javascript:mololo.globals.DISPATCHER.sendEvent(mololo.Action.MAP_INFO_WINDOW_LINK_CLICK_ACTION,new mololo.map.InfoWindowEvent(\''+A.getId()+"'))\">"+mololo.PlaceholderUtils.convert(mololo.globals.MIN_INFO_WINDOW_HTML,A.getMarkerJson())+"</div>";
return content
},createGroupedMarkerMinHtmlContent:function(A){var B="";
A.getSubMarkers().forEach(function(C){B+='<div class="miniItem" onclick="javascript:mololo.globals.DISPATCHER.sendEvent(mololo.Action.MAP_INFO_WINDOW_LINK_CLICK_ACTION,new mololo.map.InfoWindowEvent(\''+C.getId()+"'))\">"+mololo.PlaceholderUtils.convert(mololo.globals.MIN_INFO_WINDOW_HTML,C.getMarkerJson())+"</div>"
});
return B
},_calculateRange:function(A){if(A>=1000){return 1000
}else{if(A>=100){return 100
}else{if(A>=10){return 10
}else{return 1
}}}},_addListeners:function(A,C){var B=A.getGMarker();
GEvent.addListener(B,"click",function(E,G,D){var F=new mololo.map.MarkerEvent(E,G,D,null,null,A,C);
mololo.globals.DISPATCHER.sendEvent(mololo.Action.MARKER_CLICK_ACTION,F);
if(A.isSuperMarker()){mololo.globals.DISPATCHER.sendEvent(mololo.Action.SUPERMARKER_CLICK_ACTION,F)
}else{if(A.isFavoriteMarker()){mololo.globals.DISPATCHER.sendEvent(mololo.Action.FAVORITEMARKER_CLICK_ACTION,F)
}else{mololo.map.MapUtils.getMapLevel(C).dispatchMarkerClickAction(F)
}}});
GEvent.addListener(B,"dblclick",function(D,E){mololo.globals.DISPATCHER.sendEvent(mololo.Action.MARKER_DBLCLICK_ACTION,new mololo.map.MarkerEvent(D,E,null,null,null,A,C))
})
}};