// Portal Highlighter //////////////////////////////////////////////////////////
// these functions handle portal highlighters
// an object mapping highlighter names to the object containing callback functions
window._highlighters = null;
// the name of the current highlighter
window._current_highlighter = localStorage.portal_highlighter;
window._no_highlighter = 'No Highlights';
window.addPortalHighlighter = function(name, data) {
if(_highlighters === null) {
_highlighters = {};
}
// old-format highlighters just passed a callback function. this is the same as just a highlight method
if (!data.highlight) {
data = {highlight: data}
}
_highlighters[name] = data;
if (typeof android !== 'undefined' && android && android.addPortalHighlighter)
android.addPortalHighlighter(name);
if(window._current_highlighter === undefined) {
_current_highlighter = name;
}
if (_current_highlighter == name) {
if (typeof android !== 'undefined' && android && android.setActiveHighlighter)
android.setActiveHighlighter(name);
// call the setSelected callback
if (_highlighters[_current_highlighter].setSelected) {
_highlighters[_current_highlighter].setSelected(true);
}
}
updatePortalHighlighterControl();
}
// (re)creates the highlighter dropdown list
window.updatePortalHighlighterControl = function() {
if (typeof android !== 'undefined' && android && android.addPortalHighlighter) {
$('#portal_highlight_select').remove();
return;
}
if(_highlighters !== null) {
if($('#portal_highlight_select').length === 0) {
$("body").append("");
$("#portal_highlight_select").change(function(){ changePortalHighlights($(this).val());});
$(".leaflet-top.leaflet-left").css('padding-top', '20px');
$(".leaflet-control-scale-line").css('margin-top','25px');
}
$("#portal_highlight_select").html('');
$("#portal_highlight_select").append($("