function showLegendTT(o,text) { var tt = $('legendTT'); tt.innerHTML = text; tt.style.top = getAbsoluteTop(o) + 'px'; tt.style.left = (getAbsoluteLeft(o) + 30) + 'px'; displayBlock(tt); } function hideLegendTT() { displayNone($('legendTT')); } function toggleLegend() { var o = $('mapLegend'); if (o.style.display == '' || o.style.display == 'none') { displayBlock(o); } else { displayNone(o); } } function topMenuControl() {} topMenuControl.prototype = new GControl(); topMenuControl.prototype.initialize = function(map) { var topMenu = document.createElement("div"); topMenu.id = "topMenuControlID"; topMenu.style.width = "375px"; topMenu.style.zIndex = 121; topMenu.innerHTML = '
 
Add to Map:

Resources:
  • Official Lorebook
  • Filters:
    Links:
  • Home
  • Help Wanted
  • Suggestions
  • Problems
  • Map Contributors
  • Schreckofant
  • Skaldorin
  • Sarlac
  • D.H1cks
  • Visions of the Ring

  • Application created by jshanman.
    '; map.getContainer().appendChild(topMenu); return topMenu; } topMenuControl.prototype.getDefaultPosition = function() { return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(3, 3)); } function showAddMenu() { document.getElementById("addTopMenu").style.display = "block"; document.getElementById("displayTopMenu").style.display = "none"; document.getElementById("mapTopMenu").style.display = "none"; document.getElementById("aboutTopMenu").style.display = "none"; displayNone($('extraMaps')); menuVisible = true; } function showDisplayMenu() { document.getElementById("displayTopMenu").style.display = "block"; document.getElementById("mapTopMenu").style.display = "none"; document.getElementById("addTopMenu").style.display = "none"; document.getElementById("aboutTopMenu").style.display = "none"; displayNone($('extraMaps')); menuVisible = true; } function showMapMenu() { document.getElementById("mapTopMenu").style.display = "block"; document.getElementById("displayTopMenu").style.display = "none"; document.getElementById("addTopMenu").style.display = "none"; document.getElementById("aboutTopMenu").style.display = "none"; displayNone($('extraMaps')); menuVisible = true; } function showAboutMenu() { document.getElementById("aboutTopMenu").style.display = "block"; document.getElementById("mapTopMenu").style.display = "none"; document.getElementById("displayTopMenu").style.display = "none"; document.getElementById("addTopMenu").style.display = "none"; displayNone($('extraMaps')); menuVisible = true; } function hideAllMenus() { document.getElementById("mapTopMenu").style.display = "none"; document.getElementById("displayTopMenu").style.display = "none"; document.getElementById("addTopMenu").style.display = "none"; document.getElementById("aboutTopMenu").style.display = "none"; displayNone($('extraMaps')); menuVisible = false; } function hideSearch() { displayNone($('mapSearch')); } function saveMapView(id) { var o = $('m'+id); if (typeof o.src == "undefined") { o = o.firstChild; } if(o.src.indexOf("on.png") == -1) {//if its off o.src = "on.png"; if (o.id == "m0") { map.setMapType(radarMap); app.showMarkers = true; } else if (o.id == "m1") { map.clearOverlays(); map.setMapType(gameMap); app.showMarkers = false; } else if (o.id == "m2") { map.clearOverlays(); map.setMapType(illMap); app.showMarkers = false; } if (typeof app.lastMapView != "undefined") { app.lastMapView.src = "off.png"; } else { $("m0").src = "off.png"; } displayNone(app.mapStatus); } app.lastMapView = o; } function toggleExtraMapMenu() { var o = $('extraMaps'); if (o.style.display == 'block') { displayNone(o); } else { displayBlock(o); } } function toggleOverlay(id) { var o = $('o'+id); if (typeof o.src == "undefined") { o = o.firstChild; } if(o.src.indexOf("on.png") == -1) {//if its off o.src = "on.png"; if (o.id == "o0") { map.addOverlay(app.oldForestInsert) } } else { o.src = "off.png"; if (o.id == "o0") { map.removeOverlay(app.oldForestInsert) } } } function showMap() { document.getElementById("mapMenuControlID").style.display = "block"; } function showDisplay() { document.getElementById("displayMenuControlID").style.display = "block"; } function showAdd() { document.getElementById("addMenuControlID").style.display = "block"; } function maximize(o) { map.fullScreen = true; document.body.style.overflow = 'hidden'; size = getClientSize(); mapDiv.style.position = "absolute"; mapDiv.style.width = (size.clientWidth-9) + "px"; mapDiv.style.height = (size.clientHeight-3) + "px"; mapDiv.style.left = "0px"; mapDiv.style.top = "0px"; o = document.getElementById("maxImg"); o.src = "restore.gif"; o.title = "Restore map to smaller size"; o.onclick = restore; map.checkResize(); } function restore() { map.fullScreen = false; document.body.style.overflow = 'auto'; size = getClientSize(); mapDiv.style.position = "relative"; mapDiv.style.width = (Math.floor(size.clientWidth*.56)) + 'px'; mapDiv.style.height = (Math.floor(size.clientHeight*.56)) + 'px'; o = document.getElementById("maxImg"); o.src = "max.gif"; o.title = "Maximize map to full screen"; o.onclick = maximize; map.checkResize(); } function toggleFilter(id) { var o = $('f'+id); if (o.firstChild.src.indexOf('off.png') != -1) { o.firstChild.src = 'on.png'; if (o.id == 'f0') { app.options.locationName = true; } else if (o.id == 'f1') { app.options.poi = true; } else if (o.id == 'f2') { app.options.npc = true; } else if (o.id == 'f3') { app.options.enemy = true; } else if (o.id == 'f4') { app.options.quest = true; app.options.enemy = true; $('f3').firstChild.src = 'on.png' app.options.npc = true; $('f2').firstChild.src = 'on.png' app.options.object = true; $('f5').firstChild.src = 'on.png' } else if (o.id == 'f5') { app.options.object = true; } else if (o.id == 'f6') { app.options.resource = true; } else if (o.id == 'f7') { app.options.screenshot = true; } else if (o.id == 'f8') { app.options.path = true; } else if (o.id == 'f9') { app.options.user = true; } else if (o.id == 'f10') { app.options.kinship = true; } } else if (o.firstChild.src.indexOf('on.png') != -1) { o.firstChild.src = 'off.png'; if (o.id == 'f0') { app.options.locationName = false; } else if (o.id == 'f1') { app.options.poi = false; } else if (o.id == 'f2') { app.options.npc = false; } else if (o.id == 'f3') { app.options.enemy = false; } else if (o.id == 'f4') { app.options.quest = false; } else if (o.id == 'f5') { app.options.object = false; } else if (o.id == 'f6') { app.options.resource = false; } else if (o.id == 'f7') { app.options.screenshot = false; } else if (o.id == 'f8') { app.options.path = false; } else if (o.id == 'f9') { app.options.user = false; } else if (o.id == 'f10') { app.options.kinship = false; } } displayMarkers(); } function showSearch() { displayBlock($('mapSearch')); hideAllMenus(); } function statusControl() {} statusControl.prototype = new GControl(); statusControl.prototype.initialize = function(map) { var container = document.createElement('div'); container.id = 'mapStatus'; this.setButtonStyle(container); map.getContainer().appendChild(container); return container; } statusControl.prototype.getDefaultPosition = function() { return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(100, 3)); } statusControl.prototype.setButtonStyle = function(button) { button.style.color = '#000000'; button.style.backgroundColor = '#ffcc66'; button.style.font = 'small Arial'; button.style.border = '1px solid black'; button.style.padding = '2px'; button.style.marginBottom = '3px'; button.style.textAlign = 'center'; button.style.display = 'none'; button.style.zIndex = 10000; } function searchControl() {} searchControl.prototype = new GControl(); searchControl.prototype.initialize = function(map) { var container = document.createElement('div'); container.id = 'mapSearch'; container.innerHTML = '
     
    Results:
    '; this.setButtonStyle(container); map.getContainer().appendChild(container); return container; } searchControl.prototype.getDefaultPosition = function() { return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(3, 30)); } searchControl.prototype.setButtonStyle = function(button) { button.style.color = '#000000'; button.style.backgroundColor = '#fff'; button.style.font = 'small Arial'; button.style.border = '1px solid black'; button.style.padding = '2px'; button.style.margin = '3px'; button.style.width = '225px'; //button.style.height = '285px'; //button.style.display = 'none'; button.style.zIndex = 101; } function coordsControl() {} coordsControl.prototype = new GControl(); coordsControl.prototype.initialize = function(map) { var container = document.createElement('div'); container.id = 'mapCoordsControl'; container.innerHTML = '
    ,
    '; this.setButtonStyle(container); map.getContainer().appendChild(container); return container; } coordsControl.prototype.getDefaultPosition = function() { return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(3, 215)); } coordsControl.prototype.setButtonStyle = function(button) { button.style.color = '#000000'; button.style.backgroundColor = '#ffcc66'; button.style.font = 'small Arial'; button.style.border = '1px solid black'; button.style.padding = '2px'; button.style.marginBottom = '3px'; button.style.textAlign = 'center'; } function helpControl() {} helpControl.prototype = new GControl(); helpControl.prototype.initialize = function(map) { var container = document.createElement('div'); container.id = 'mapHelp'; container.innerHTML = '
    [close]
    Map Key
    Point of Interest
    Non Player Character
    Enemy or Beast
    Quest Point
    Game Object
    Wood/Ore/Scholar Resource
    User Submitted Screenshot
    Start of a Path

    How To...

    Map Controls
    [close]
    Movement:
  • Click and drag the mouse to move the map in any direction.
  • Double click to center the map.
  • Click the arrow buttons in the upper left to pan the map 1/2 of the screen width
  • Click the center button in the upper left to re-center on the last selected position
  • Zoom:
  • Scroll the scroll wheel on your mouse to zoom in/out
  • Drag the slider along the left to set the zoom level
  • Search
    [close]
    Open Search Box:
  • Click the "Show" menu on the top right.
  • Click the "Search Box" option to open the search box
  • Searching:
  • Click in the text box that says "Search..."
  • Begin typing the title/name of what you are looking for
  • After 3 characters have been typed, a search suggest box will appear with some results.
  • You may use the Up/Down keys and the Enter key, or the mouse to select a suggested term
  • You may also continue typing to narrow the suggestions
  • Once you have typed what you want to search for, click "Go" if you haven"t already selected a suggestion.
  • The Results will be sorted by their type (NPC,Resource, etc). Click the type name to see the results for each type
  • Click a result to pan the map to the location of that entry
  • Editing Entries
    [close]
    To Edit:
  • Find an entry that you want to edit and click on the marker
  • Click the "[Edit]" link at the top right of the entry information bubble
  • Make your changes and click "Update" to save your changes
  • Reporting Entries
    [close]
  • Report an entry if it is incorrect or has inappropriate content
  • To Report:
  • Find an entry that you want to report and click on the marker
  • Click the "[Report]" link at the top right of the entry information bubble
  • Click the report type that best describes why your reporting the entry
  • Add Entries
    [close]
    Note:
  • Location Labels are created when a location is added with its parent Location set to a region type (The Shire) or a Land type (Eriador)
  • If a location is added with its parent location set to an area (City of Bree), then the location is considered a Point of Interest
  • Add Any Entry:
  • Click "Add", then select the type of entry you want to add.
  • Click the map where you want to marker displayed
  • Begin typing in the "Area/POI" text box to select the parent Area/POI that this new entry should be added under (Ex: Old Forest)
  • Click or use the Up/Down/Enter keys to select the desired parent area/poi
  • Complete all other requested information. HTML is not allowed.
  • Click "Submit" to add the entry to the database.
  • Add Quests
    [close]
    To add a Quest:
  • Enter all the background and level information.
  • Related quests, deeds, and rewards
  • Enter the Step information, including Dialog, helpful comments, and objectives
  • Objectives must be related to game objects, npcs, or enemies.
  • If the object/npc/enemy does not exists in the dataabse yet, just related the Objective to the name and when it is added, the quest will pick up the relationship
  • If there are any paths created between quest step/objective objects, then the path will be drawn when the quest is viewed on the map
  • Be sure to be exact with Names so the relationships are added properly
  • '; this.setButtonStyle(container); map.getContainer().appendChild(container); return container; } helpControl.prototype.getDefaultPosition = function() { var s = getClientSize(); var x = Math.floor(s.clientWidth*.15); var y = Math.floor(s.clientHeight*.15); return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(x,y)); } helpControl.prototype.setButtonStyle = function(button) { button.style.color = '#000000'; button.style.backgroundColor = '#fff'; button.style.font = 'small Arial'; button.style.border = '1px solid black'; button.style.padding = '2px'; button.style.margin = '3px'; var s = getClientSize(); var w = Math.floor(s.clientWidth*.7); var h = Math.floor(s.clientHeight*.7); button.style.width = w+'px'; button.style.height = h+'px'; button.style.overflow = 'auto'; button.style.display = 'none'; button.style.zIndex = 120; } function showMainHelp() { map.disableScrollWheelZoom(); displayBlock($('mapHelp')); hideAllMenus(); } function hideMainHelp() { map.enableScrollWheelZoom(); displayNone($('mapHelp')); } function advancedControl() {} advancedControl.prototype = new GControl(); advancedControl.prototype.initialize = function(map) { var container = document.createElement('div'); container.id = 'mapAdvanced'; container.innerHTML = '
    Advanced Filter | Advanced Search
    NPCs | Enemies | Beasts | Quests | Objects | Resources | Paths
    Area/POI | NPC | Enemy | Beast | Quest | Object | Resource | Path | Item | Skill | Trait | Deed | Title |
    Advanced Search & Database Browser
    Area/POI (parent area, x <> input, y <> input, title, has screenshot(s), flagged (moderator))
    NPC (parent area, type, race, gender, quest starter, quest npc, title, has screenshot(s), flagged (moderator))
    Enemy (parent area, type, race, gender, level, title, drops, has screenshot(s), flagged (moderator))
    Beast (parent area, type, species, title, level, drops, has screenshot(s), flagged (moderator))
    Quest (starts in, task performed in area, heading, title, level, rewards item type, reward amount <> input, related to enemy/beast by name, has screenshot(s), flagged (moderator))
    Object (parent area, type, title, has screenshot(s), flagged (moderator))
    Resource (type, required profession/level, title, has screenshot(s), flagged (moderator))
    Path (path type, flagged(moderator))
    Item (type, category, frequency, durability, title, binding, quest reward, minimum level, required class, worth <> input, adds input to select attr, has screenshot(s), flagged (moderator))
    Skill (active type, type, race, class, title, has screenshot(s), flagged (moderator))
    Trait (type, for selected type, title, effects, has screenshot(s), flagged (moderator))
    Deed (region, type, title, has screenshot(s), flagged (moderator))
    Title (region, title, emote, flagged (moderator))
    Advanced Map Filter
    NPC Filter
    Enemy Filter
    Beast Filter
    Quest Filter
    Object Filter
    Resource Filter
    Path Filter
    '; this.setButtonStyle(container); map.getContainer().appendChild(container); return container; } advancedControl.prototype.getDefaultPosition = function() { var s = getClientSize(); var x = Math.floor(s.clientWidth*.05); var y = Math.floor(s.clientHeight*.05); return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(x,y)); } advancedControl.prototype.setButtonStyle = function(button) { button.style.color = '#000000'; button.style.backgroundColor = '#fff'; button.style.font = 'small Arial'; button.style.border = '1px solid black'; button.style.padding = '2px'; button.style.margin = '3px'; var s = getClientSize(); var w = Math.floor(s.clientWidth*.9); var h = Math.floor(s.clientHeight*.9); button.style.width = w+'px'; button.style.height = h+'px'; button.style.overflow = 'auto'; button.style.display = 'none'; button.style.zIndex = 120; } function showAdvanced() { map.disableScrollWheelZoom(); displayBlock($('mapAdvanced')); map.closeInfoWindow(); hideAllMenus(); } function hideAdvanced() { map.enableScrollWheelZoom(); displayNone($('mapAdvanced')); } function statsControl() {} statsControl.prototype = new GControl(); statsControl.prototype.initialize = function(map) { var container = document.createElement('div'); container.id = 'mapStats'; container.innerHTML = '
    Top Overall Contributor:Location/POI:NPC:Enemy:Beast:Quest:Object:Resource:Screenshot Point:Entry Screenshot:Path:Total number of Contributors:Database counts:Locations/POI:NPCs:Enemies:Beasts:Quests:Objects:Resources:Screenshot Points:Entry Screenshots:Paths:Items:Skills:Traits:Deeds:Titles:
    '; this.setButtonStyle(container); map.getContainer().appendChild(container); return container; } statsControl.prototype.getDefaultPosition = function() { var s = getClientSize(); var x = Math.floor(s.clientWidth*.15); var y = Math.floor(s.clientHeight*.15); return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(x,y)); } statsControl.prototype.setButtonStyle = function(button) { button.style.color = '#000000'; button.style.backgroundColor = '#fff'; button.style.font = 'small Arial'; button.style.border = '1px solid black'; button.style.padding = '2px'; button.style.margin = '3px'; var s = getClientSize(); var w = Math.floor(s.clientWidth*.7); var h = Math.floor(s.clientHeight*.7); button.style.width = w+'px'; button.style.height = h+'px'; button.style.overflow = 'auto'; button.style.display = 'none'; button.style.zIndex = 120; } function showStats() { map.disableScrollWheelZoom(); displayBlock($('mapStats')); hideAllMenus(); } function hideStats() { map.enableScrollWheelZoom(); displayNone($('mapStats')); } function legendControl() {} legendControl.prototype = new GControl(); legendControl.prototype.initialize = function(map) { var container = document.createElement('div'); container.id = 'mapLegend'; container.innerHTML = '







    '; this.setButtonStyle(container); map.getContainer().appendChild(container); return container; } legendControl.prototype.getDefaultPosition = function() { return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(68, 3)); } legendControl.prototype.setButtonStyle = function(button) { button.style.color = '#000000'; button.style.backgroundColor = '#ffffff'; button.style.font = 'small Arial'; button.style.border = '1px solid black'; button.style.padding = '2px'; button.style.marginBottom = '3px'; button.style.textAlign = 'center'; button.style.display = 'none'; button.style.zIndex = 10000; }