aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/src/cgeo/geocaching/Constants.java29
-rw-r--r--main/src/cgeo/geocaching/GCConstants.java76
-rw-r--r--main/src/cgeo/geocaching/ICache.java54
-rw-r--r--main/src/cgeo/geocaching/cgBase.java302
-rw-r--r--main/src/cgeo/geocaching/cgCache.java45
-rw-r--r--main/src/cgeo/geocaching/utils/BaseUtils.java55
-rw-r--r--tests/src/cgeo/geocaching/cgeoApplicationTest.java37
-rw-r--r--tests/src/cgeo/geocaching/test/RegExPerformanceTest.java70
-rw-r--r--tests/src/cgeo/geocaching/test/mock/GC1ZXX2.html30
-rw-r--r--tests/src/cgeo/geocaching/test/mock/GC1ZXX2.java88
-rw-r--r--tests/src/cgeo/geocaching/test/mock/GC2CJPF.java93
-rw-r--r--tests/src/cgeo/geocaching/test/mock/GC2JVEH.html1851
-rw-r--r--tests/src/cgeo/geocaching/test/mock/GC2JVEH.java147
-rw-r--r--tests/src/cgeo/geocaching/test/mock/MockedCache.java78
14 files changed, 2546 insertions, 409 deletions
diff --git a/main/src/cgeo/geocaching/Constants.java b/main/src/cgeo/geocaching/Constants.java
deleted file mode 100644
index b3f9995..0000000
--- a/main/src/cgeo/geocaching/Constants.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package cgeo.geocaching;
-
-import java.util.regex.Pattern;
-
-public final class Constants {
-
- /**
- * For further information about patterns have a look at
- * http://download.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html
- */
-
- public final static Pattern PATTERN_HINT = Pattern.compile("<div id=\"div_hint\"[^>]*>(.*?)</div>");
- public final static Pattern PATTERN_DESC = Pattern.compile("<span id=\"ctl00_ContentBody_LongDescription\">(.*?)</span>[^<]*</div>[^<]*<p>[^<]*</p>[^<]*<p>[^<]*<strong>\\W*Additional Hints</strong>");
- public final static Pattern PATTERN_SHORTDESC = Pattern.compile("<span id=\"ctl00_ContentBody_ShortDescription\">(.*?)</span>[^\\w^<]*</div>");
- public final static Pattern PATTERN_GEOCODE = Pattern.compile("<meta name=\"og:url\" content=\"[^\"]+/(GC[0-9A-Z]+)\"");
- public final static Pattern PATTERN_CACHEID = Pattern.compile("/seek/log\\.aspx\\?ID=(\\d+)");
- public final static Pattern PATTERN_GUID = Pattern.compile(Pattern.quote("&wid=") + "([0-9a-z\\-]+)" + Pattern.quote("&"));
- public final static Pattern PATTERN_SIZE = Pattern.compile("<div class=\"CacheSize[^\"]*\">[^<]*<p[^>]*>[^S]*Size[^:]*:[^<]*<span[^>]*>[^<]*<img src=\"[^\"]*/icons/container/[a-z_]+\\.gif\" alt=\"Size: ([^\"]+)\"[^>]*>[^<]*<small>[^<]*</small>[^<]*</span>[^<]*</p>");
- public final static Pattern PATTERN_LATLON = Pattern.compile("<span id=\"ctl00_ContentBody_LatLon\"[^>]*>(.*?)</span>");
- public final static Pattern PATTERN_LOCATION = Pattern.compile("<span id=\"ctl00_ContentBody_Location\">In (.*?)<");
- public final static Pattern PATTERN_PERSONALNOTE = Pattern.compile("<p id=\"cache_note\"[^>]*>(.*?)</p>");
- public final static Pattern PATTERN_NAME = Pattern.compile("<span id=\"ctl00_ContentBody_CacheName\">(.*?)</span>");
- public final static Pattern PATTERN_DIFFICULTY = Pattern.compile("<span id=\"ctl00_ContentBody_uxLegendScale\"[^>]*>[^<]*<img src=\"[^\"]*/images/stars/stars([0-9_]+)\\.gif\" alt=\"");
- public final static Pattern PATTERN_TERRAIN = Pattern.compile("<span id=\"ctl00_ContentBody_Localize12\"[^>]*>[^<]*<img src=\"[^\"]*/images/stars/stars([0-9_]+)\\.gif\" alt=\"");
- public final static Pattern PATTERN_OWNERREAL = Pattern.compile("<a id=\"ctl00_ContentBody_uxFindLinksHiddenByThisUser\" href=\"[^\"]*/seek/nearest\\.aspx\\?u=(.*?)\"");
- public final static Pattern PATTERN_FOUND = Pattern.compile("<a id=\"ctl00_ContentBody_hlFoundItLog\"[^<]*<img src=\".*/images/stockholm/16x16/check\\.gif\"[^>]*>[^<]*</a>[^<]*</p>");
- public final static Pattern PATTERN_FOUND_ALTERNATIVE = Pattern.compile("<div class=\"StatusInformationWidget FavoriteWidget\"");
-
-}
diff --git a/main/src/cgeo/geocaching/GCConstants.java b/main/src/cgeo/geocaching/GCConstants.java
new file mode 100644
index 0000000..46ce6cd
--- /dev/null
+++ b/main/src/cgeo/geocaching/GCConstants.java
@@ -0,0 +1,76 @@
+package cgeo.geocaching;
+
+import java.util.regex.Pattern;
+
+/**
+ * These patterns have been optimized for speed. Improve them only if you can prove
+ * that *YOUR* pattern is faster. Use RegExRealPerformanceTest to show.
+ *
+ * @author blafoo
+ */
+public final class GCConstants {
+
+ /**
+ * For further information about patterns have a look at
+ * http://download.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html
+ */
+
+ public final static Pattern PATTERN_HINT = Pattern.compile("<div id=\"div_hint\"[^>]*>(.*?)</div>");
+ public final static Pattern PATTERN_DESC = Pattern.compile("<span id=\"ctl00_ContentBody_LongDescription\">(.*?)</span>[^<]*</div>[^<]*<p>[^<]*</p>[^<]*<p>[^<]*<strong>\\W*Additional Hints</strong>");
+ public final static Pattern PATTERN_SHORTDESC = Pattern.compile("<span id=\"ctl00_ContentBody_ShortDescription\">(.*?)</span>[^\\w^<]*</div>");
+ public final static Pattern PATTERN_GEOCODE = Pattern.compile("<meta name=\"og:url\" content=\"[^\"]+/(GC[0-9A-Z]+)\"");
+ public final static Pattern PATTERN_CACHEID = Pattern.compile("/seek/log\\.aspx\\?ID=(\\d+)");
+ public final static Pattern PATTERN_GUID = Pattern.compile(Pattern.quote("&wid=") + "([0-9a-z\\-]+)" + Pattern.quote("&"));
+ public final static Pattern PATTERN_SIZE = Pattern.compile("<div class=\"CacheSize[^\"]*\">[^<]*<p[^>]*>[^S]*Size[^:]*:[^<]*<span[^>]*>[^<]*<img src=\"[^\"]*/icons/container/[a-z_]+\\.gif\" alt=\"Size: ([^\"]+)\"[^>]*>[^<]*<small>[^<]*</small>[^<]*</span>[^<]*</p>");
+ public final static Pattern PATTERN_LATLON = Pattern.compile("<span id=\"ctl00_ContentBody_LatLon\"[^>]*>(.*?)</span>");
+ public final static Pattern PATTERN_LOCATION = Pattern.compile("<span id=\"ctl00_ContentBody_Location\">In (.*?)<");
+ public final static Pattern PATTERN_PERSONALNOTE = Pattern.compile("<p id=\"cache_note\"[^>]*>(.*?)</p>");
+ public final static Pattern PATTERN_NAME = Pattern.compile("<span id=\"ctl00_ContentBody_CacheName\">(.*?)</span>");
+ public final static Pattern PATTERN_DIFFICULTY = Pattern.compile("<span id=\"ctl00_ContentBody_uxLegendScale\"[^>]*>[^<]*<img src=\"[^\"]*/images/stars/stars([0-9_]+)\\.gif\" alt=\"");
+ public final static Pattern PATTERN_TERRAIN = Pattern.compile("<span id=\"ctl00_ContentBody_Localize12\"[^>]*>[^<]*<img src=\"[^\"]*/images/stars/stars([0-9_]+)\\.gif\" alt=\"");
+ public final static Pattern PATTERN_OWNERREAL = Pattern.compile("<a id=\"ctl00_ContentBody_uxFindLinksHiddenByThisUser\" href=\"[^\"]*/seek/nearest\\.aspx\\?u=(.*?)\"");
+ public final static Pattern PATTERN_FOUND = Pattern.compile("<a id=\"ctl00_ContentBody_hlFoundItLog\"[^<]*<img src=\".*/images/stockholm/16x16/check\\.gif\"[^>]*>[^<]*</a>[^<]*</p>");
+ public final static Pattern PATTERN_FOUND_ALTERNATIVE = Pattern.compile("<div class=\"StatusInformationWidget FavoriteWidget\"");
+ public final static Pattern PATTERN_OWNER = Pattern.compile("<span class=\"minorCacheDetails\">[^<]+<a href=\"[^\"]+\">([^<]+)</a></span>");
+ public final static Pattern PATTERN_TYPE = Pattern.compile("<img src=\"[^\"]*/WptTypes/\\d+\\.gif\" alt=\"([^\"]+?)\" title=\"[^\"]+\" width=\"32\" height=\"32\"");
+ public final static Pattern PATTERN_HIDDEN = Pattern.compile("<span class=\"minorCacheDetails\">\\W*Hidden[\\s:]*([^<]+?)</span>");
+ public final static Pattern PATTERN_HIDDENEVENT = Pattern.compile("<span[^>]*>\\W*Event\\W*Date[^:]*:([^<]*?)</span>");
+ public final static Pattern PATTERN_FAVORITE = Pattern.compile("<img src=\"/images/icons/icon_favDelete.png\" alt=\"Remove from your Favorites\" title=\"Remove from your Favorites\" />");
+ public final static Pattern PATTERN_FAVORITECOUNT = Pattern.compile("<a id=\"uxFavContainerLink\"[^>]+>[^<]*<div[^<]*<span class=\"favorite-value\">\\D*([0-9]+?)</span>");
+ public final static Pattern PATTERN_COUNTLOGS = Pattern.compile("<span id=\"ctl00_ContentBody_lblFindCounts\"><p(.+?)</p></span>");
+ /** Two groups ! */
+ public final static Pattern PATTERN_COUNTLOG = Pattern.compile("<img src=\"/images/icons/([a-z_]+)\\.gif\"[^>]+> (\\d*[,.]?\\d+)");
+ public static final Pattern PATTERN_MEMBERS = Pattern.compile("<p class=\"Warning NoBottomSpacing\">This is a Premium Member Only cache.</p>");
+ public final static Pattern PATTERN_ATTRIBUTES = Pattern.compile("<h3 class=\"WidgetHeader\">[^<]*<img[^>]+>\\W*Attributes[^<]*</h3>[^<]*<div class=\"WidgetBody\">((?:[^<]*<img src=\"[^\"]+\" alt=\"[^\"]+\"[^>]*>)+?)[^<]*<p");
+ /** Two groups ! */
+ public final static Pattern PATTERN_ATTRIBUTESINSIDE = Pattern.compile("[^<]*<img src=\"([^\"]+)\" alt=\"([^\"]+?)\"");
+ public final static Pattern PATTERN_SPOILERS = Pattern.compile("<p class=\"NoPrint\">\\s+((?:<a href=\"http://img\\.geocaching\\.com/cache/[^.]+\\.jpg\"[^>]+><img class=\"StatusIcon\"[^>]+><span>[^<]+</span></a><br />(?:[^<]+<br /><br />)?)+)\\s+</p>");
+ public final static Pattern PATTERN_SPOILERSINSIDE = Pattern.compile("<a href=\"(http://img\\.geocaching\\.com/cache/[^.]+\\.jpg)\"[^>]+><img class=\"StatusIcon\"[^>]+><span>([^<]+)</span></a><br />(?:([^<]+)<br /><br />)?");
+ public final static Pattern PATTERN_INVENTORY = Pattern.compile("<span id=\"ctl00_ContentBody_uxTravelBugList_uxInventoryLabel\">\\W*Inventory[^<]*</span>[^<]*</h3>[^<]*<div class=\"WidgetBody\">([^<]*<ul>(([^<]*<li>[^<]*<a href=\"[^\"]+\"[^>]*>[^<]*<img src=\"[^\"]+\"[^>]*>[^<]*<span>[^<]+<\\/span>[^<]*<\\/a>[^<]*<\\/li>)+)[^<]*<\\/ul>)?");
+ public final static Pattern PATTERN_INVENTORYINSIDE = Pattern.compile("[^<]*<li>[^<]*<a href=\"[a-z0-9\\-\\_\\.\\?\\/\\:\\@]*\\/track\\/details\\.aspx\\?guid=([0-9a-z\\-]+)[^\"]*\"[^>]*>[^<]*<img src=\"[^\"]+\"[^>]*>[^<]*<span>([^<]+)<\\/span>[^<]*<\\/a>[^<]*<\\/li>");
+ public final static Pattern PATTERN_WATCHLIST = Pattern.compile("<img src=\"\\/images/stockholm/16x16/icon_stop_watchlist.gif\"");
+
+ public static final Pattern PATTERN_USERLOGGEDIN = Pattern.compile("<strong>Hello, <a href=\"/my/default.aspx\" title=\"View Profile for[^\"]*\" class=\"SignedInProfileLink\">(.*?)</a></strong>");
+ public static final Pattern PATTERN_AVATAR_IMAGE = Pattern.compile("<img src=\"(http://img.geocaching.com/user/avatar/[0-9a-f-]+\\.jpg)\"[^>]*\\salt=\"Avatar\"");
+
+ public final static Pattern PATTERN_TRACKABLE_ID = Pattern.compile("<a id=\"ctl00_ContentBody_LogLink\" title=\"[^\"]*\" href=\".*log\\.aspx\\?wid=([a-z0-9\\-]+)\"[^>]*>[^<]*</a>");
+ public final static Pattern PATTERN_TRACKABLE_GEOCODE = Pattern.compile("<span id=\"ctl00_ContentBody_BugDetails_BugTBNum\" String=\"[^\"]*\">Use[^<]*<strong>(TB[0-9A-Z]+)[^<]*</strong> to reference this item.[^<]*</span>");
+ public final static Pattern PATTERN_TRACKABLE_NAME = Pattern.compile("<h2>(?:[^<]*<img[^>]*>)?[^<]*<span id=\"ctl00_ContentBody_lbHeading\">([^<]+)</span>[^<]*</h2>");
+ /** Two groups ! */
+ public final static Pattern PATTERN_TRACKABLE_OWNER = Pattern.compile("<dt>\\W*Owner:[^<]*</dt>[^<]*<dd>[^<]*<a id=\"ctl00_ContentBody_BugDetails_BugOwner\" title=\"[^\"]*\" href=\"[^\"]*/profile/\\?guid=([a-z0-9\\-]+)\">([^<]+)<\\/a>[^<]*</dd>");
+ public final static Pattern PATTERN_TRACKABLE_RELEASES = Pattern.compile("<dt>\\W*Released:[^<]*</dt>[^<]*<dd>[^<]*<span id=\"ctl00_ContentBody_BugDetails_BugReleaseDate\">([^<]+)<\\/span>[^<]*</dd>");
+ public final static Pattern PATTERN_TRACKABLE_ORIGIN = Pattern.compile("<dt>\\W*Origin:[^<]*</dt>[^<]*<dd>[^<]*<span id=\"ctl00_ContentBody_BugDetails_BugOrigin\">([^<]+)<\\/span>[^<]*</dd>");
+ /** Two groups ! */
+ public final static Pattern PATTERN_TRACKABLE_SPOTTEDCACHE = Pattern.compile("<dt>\\W*Recently Spotted:[^<]*</dt>[^<]*<dd>[^<]*<a id=\"ctl00_ContentBody_BugDetails_BugLocation\" title=\"[^\"]*\" href=\"[^\"]*/seek/cache_details.aspx\\?guid=([a-z0-9\\-]+)\">In ([^<]+)</a>[^<]*</dd>");
+ /** Two groups ! */
+ public final static Pattern PATTERN_TRACKABLE_SPOTTEDUSER = Pattern.compile("<dt>\\W*Recently Spotted:[^<]*</dt>[^<]*<dd>[^<]*<a id=\"ctl00_ContentBody_BugDetails_BugLocation\" href=\"[^\"]*/profile/\\?guid=([a-z0-9\\-]+)\">In the hands of ([^<]+).</a>[^<]*</dd>");
+ public final static Pattern PATTERN_TRACKABLE_SPOTTEDUNKNOWN = Pattern.compile("<dt>\\W*Recently Spotted:[^<]*</dt>[^<]*<dd>[^<]*<a id=\"ctl00_ContentBody_BugDetails_BugLocation\">Unknown Location[^<]*</a>[^<]*</dd>");
+ public final static Pattern PATTERN_TRACKABLE_SPOTTEDOWNER = Pattern.compile("<dt>\\W*Recently Spotted:[^<]*</dt>[^<]*<dd>[^<]*<a id=\"ctl00_ContentBody_BugDetails_BugLocation\">In the hands of the owner[^<]*</a>[^<]*</dd>");
+ public final static Pattern PATTERN_TRACKABLE_GOAL = Pattern.compile("<h3>\\W*Current GOAL[^<]*</h3>[^<]*<div id=\"TrackableGoal\">[^<]*<p>(.*?)</p>[^<]*</div>[^<]*<h3>");
+ /** Four groups */
+ public final static Pattern PATTERN_TRACKABLE_DETAILSIMAGE = Pattern.compile("<h3>\\W*About This Item[^<]*</h3>[^<]*<div id=\"TrackableDetails\">([^<]*<p>([^<]*<img id=\"ctl00_ContentBody_BugDetails_BugImage\" class=\"[^\"]+\" src=\"([^\"]+)\"[^>]*>)?[^<]*</p>)?[^<]*<p[^>]*>(.*)</p>[^<]*</div> <div id=\"ctl00_ContentBody_BugDetails_uxAbuseReport\">");
+ public final static Pattern PATTERN_TRACKABLE_ICON = Pattern.compile("<img id=\"ctl00_ContentBody_BugTypeImage\" class=\"TravelBugHeaderIcon\" src=\"([^\"]+)\"[^>]*>");
+ public final static Pattern PATTERN_TRACKABLE_TYPE = Pattern.compile("<img id=\"ctl00_ContentBody_BugTypeImage\" class=\"TravelBugHeaderIcon\" src=\"[^\"]+\" alt=\"([^\"]+)\"[^>]*>");
+ public final static Pattern PATTERN_TRACKABLE_DISTANCE = Pattern.compile("<h4[^>]*\\W*Tracking History \\(([0-9.,]+(km|mi))[^\\)]*\\)");
+ public final static Pattern PATTERN_TRACKABLE_LOG = Pattern.compile("<tr class=\"Data.+?src=\"/images/icons/([^.]+)\\.gif[^>]+>&nbsp;([^<]+)</td>.+?guid.+?>([^<]+)</a>.+?(?:guid=([^\"]+)\">(<span class=\"Strike\">)?([^<]+)</.+?)?<td colspan=\"4\">(.+?)(?:<ul.+?ul>)?\\s*</td>\\s*</tr>", Pattern.CASE_INSENSITIVE);
+}
diff --git a/main/src/cgeo/geocaching/ICache.java b/main/src/cgeo/geocaching/ICache.java
index 89108a2..94f58d2 100644
--- a/main/src/cgeo/geocaching/ICache.java
+++ b/main/src/cgeo/geocaching/ICache.java
@@ -5,6 +5,10 @@ package cgeo.geocaching;
import cgeo.geocaching.enumerations.CacheSize;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
/**
* Basic interface for caches
*
@@ -118,4 +122,54 @@ public interface ICache {
*/
public String getPersonalNote();
+ /**
+ * @return true if the user already found the cache
+ *
+ */
+ public boolean isFound();
+
+ /**
+ * @return true if the user gave a favorite point to the cache
+ *
+ */
+ public boolean isFavorite();
+
+ /**
+ * @return number of favorite points
+ *
+ */
+ public Integer getFavoritePoints();
+
+ /**
+ * @return true if the cache is on the watchlist of the user
+ *
+ */
+ public boolean isWatchlist();
+
+ /**
+ * @return The date the cache has been hidden
+ *
+ */
+ public Date getHiddenDate();
+
+ /**
+ * @return the list of attributes for this cache
+ */
+ public List<String> getAttributes();
+
+ /**
+ * @return the list of trackables in this cache
+ */
+ public List<cgTrackable> getInventory();
+
+ /**
+ * @return the list of spoiler images
+ */
+ public List<cgImage> getSpoilers();
+
+ /**
+ * @return a statistic how often the caches has been found, disabled, archived etc.
+ */
+ public Map<Integer, Integer> getLogCounts();
+
}
diff --git a/main/src/cgeo/geocaching/cgBase.java b/main/src/cgeo/geocaching/cgBase.java
index d30b652..92acd73 100644
--- a/main/src/cgeo/geocaching/cgBase.java
+++ b/main/src/cgeo/geocaching/cgBase.java
@@ -62,7 +62,6 @@ import java.io.UnsupportedEncodingException;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
-import java.net.URLDecoder;
import java.net.URLEncoder;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@@ -88,40 +87,6 @@ import javax.net.ssl.SSLSession;
*/
public class cgBase {
- private final static Pattern patternType = Pattern.compile("<img src=\"[^\"]*/WptTypes/\\d+\\.gif\" alt=\"([^\"]+)\" (title=\"[^\"]*\" )?width=\"32\" height=\"32\"[^>]*>", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
- private final static Pattern patternOwner = Pattern.compile("<span class=\"minorCacheDetails\">\\W*An?(\\W*Event)?\\W*cache\\W*by[^<]*<a href=\"[^\"]+\">([^<]+)</a>[^<]*</span>", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
- private final static Pattern patternHidden = Pattern.compile("<span[^>]*>\\W*Hidden[\\s:]*([^<]+)</span>", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
- private final static Pattern patternHiddenEvent = Pattern.compile("<span[^>]*>\\W*Event\\W*Date[^:]*:([^<]*)</span>", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
- private final static Pattern patternFavourite = Pattern.compile("<a id=\"uxFavContainerLink\"[^>]*>[^<]*<div[^<]*<span class=\"favorite-value\">[^\\d]*([0-9]+)[^\\d^<]*</span>", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
- private final static Pattern patternCountLogs = Pattern.compile("<span id=\"ctl00_ContentBody_lblFindCounts\"><p(.+?)<\\/p><\\/span>", Pattern.CASE_INSENSITIVE);
- private final static Pattern patternCountLog = Pattern.compile("src=\"\\/images\\/icons\\/(.+?).gif\"[^>]+> (\\d*[,.]?\\d+)", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
- private final static Pattern patternAttributes = Pattern.compile("<h3 class=\"WidgetHeader\">[^<]*<img[^>]+>\\W*Attributes[^<]*</h3>[^<]*<div class=\"WidgetBody\">(([^<]*<img src=\"[^\"]+\" alt=\"[^\"]+\"[^>]*>)+)[^<]*<p", Pattern.CASE_INSENSITIVE);
- private final static Pattern patternAttributesInside = Pattern.compile("[^<]*<img src=\"([^\"]+)\" alt=\"([^\"]+)\"[^>]*>", Pattern.CASE_INSENSITIVE);
- private final static Pattern patternSpoilers = Pattern.compile("<p class=\"NoPrint\">\\s+((?:<a href=\"http://img\\.geocaching\\.com/cache/[^.]+\\.jpg\"[^>]+><img class=\"StatusIcon\"[^>]+><span>[^<]+</span></a><br />(?:[^<]+<br /><br />)?)+)\\s+</p>", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
- private final static Pattern patternSpoilersInside = Pattern.compile("<a href=\"(http://img\\.geocaching\\.com/cache/[^.]+\\.jpg)\"[^>]+><img class=\"StatusIcon\"[^>]+><span>([^<]+)</span></a><br />(?:([^<]+)<br /><br />)?", Pattern.CASE_INSENSITIVE);
- private final static Pattern patternInventory = Pattern.compile("<span id=\"ctl00_ContentBody_uxTravelBugList_uxInventoryLabel\">\\W*Inventory[^<]*</span>[^<]*</h3>[^<]*<div class=\"WidgetBody\">([^<]*<ul>(([^<]*<li>[^<]*<a href=\"[^\"]+\"[^>]*>[^<]*<img src=\"[^\"]+\"[^>]*>[^<]*<span>[^<]+<\\/span>[^<]*<\\/a>[^<]*<\\/li>)+)[^<]*<\\/ul>)?", Pattern.CASE_INSENSITIVE);
- private final static Pattern patternInventoryInside = Pattern.compile("[^<]*<li>[^<]*<a href=\"[a-z0-9\\-\\_\\.\\?\\/\\:\\@]*\\/track\\/details\\.aspx\\?guid=([0-9a-z\\-]+)[^\"]*\"[^>]*>[^<]*<img src=\"[^\"]+\"[^>]*>[^<]*<span>([^<]+)<\\/span>[^<]*<\\/a>[^<]*<\\/li>", Pattern.CASE_INSENSITIVE);
- private final static Pattern patternOnWatchlist = Pattern.compile("<img\\s*src=\"\\/images\\/stockholm\\/16x16\\/icon_stop_watchlist.gif\"", Pattern.CASE_INSENSITIVE);
-
- private static final Pattern patternAvatarImg = Pattern.compile("<img src=\"(http://img.geocaching.com/user/avatar/[0-9a-f-]+\\.jpg)\"[^>]*\\salt=\"Avatar\"");
-
- private final static Pattern PATTERN_TRACKABLE_TrackableId = Pattern.compile("<a id=\"ctl00_ContentBody_LogLink\" title=\"[^\"]*\" href=\".*log\\.aspx\\?wid=([a-z0-9\\-]+)\"[^>]*>[^<]*</a>", Pattern.CASE_INSENSITIVE);
- private final static Pattern PATTERN_TRACKABLE_Geocode = Pattern.compile("<span id=\"ctl00_ContentBody_BugDetails_BugTBNum\" String=\"[^\"]*\">Use[^<]*<strong>(TB[0-9a-z]+)[^<]*</strong> to reference this item.[^<]*</span>", Pattern.CASE_INSENSITIVE);
- private final static Pattern PATTERN_TRACKABLE_Name = Pattern.compile("<h2>([^<]*<img[^>]*>)?[^<]*<span id=\"ctl00_ContentBody_lbHeading\">([^<]+)</span>[^<]*</h2>", Pattern.CASE_INSENSITIVE);
- private final static Pattern PATTERN_TRACKABLE_Owner = Pattern.compile("<dt>\\W*Owner:[^<]*</dt>[^<]*<dd>[^<]*<a id=\"ctl00_ContentBody_BugDetails_BugOwner\" title=\"[^\"]*\" href=\"[^\"]*/profile/\\?guid=([a-z0-9\\-]+)\">([^<]+)<\\/a>[^<]*</dd>", Pattern.CASE_INSENSITIVE);
- private final static Pattern PATTERN_TRACKABLE_Released = Pattern.compile("<dt>\\W*Released:[^<]*</dt>[^<]*<dd>[^<]*<span id=\"ctl00_ContentBody_BugDetails_BugReleaseDate\">([^<]+)<\\/span>[^<]*</dd>", Pattern.CASE_INSENSITIVE);
- private final static Pattern PATTERN_TRACKABLE_Origin = Pattern.compile("<dt>\\W*Origin:[^<]*</dt>[^<]*<dd>[^<]*<span id=\"ctl00_ContentBody_BugDetails_BugOrigin\">([^<]+)<\\/span>[^<]*</dd>", Pattern.CASE_INSENSITIVE);
- private final static Pattern PATTERN_TRACKABLE_SpottedCache = Pattern.compile("<dt>\\W*Recently Spotted:[^<]*</dt>[^<]*<dd>[^<]*<a id=\"ctl00_ContentBody_BugDetails_BugLocation\" title=\"[^\"]*\" href=\"[^\"]*/seek/cache_details.aspx\\?guid=([a-z0-9\\-]+)\">In ([^<]+)</a>[^<]*</dd>", Pattern.CASE_INSENSITIVE);
- private final static Pattern PATTERN_TRACKABLE_SpottedUser = Pattern.compile("<dt>\\W*Recently Spotted:[^<]*</dt>[^<]*<dd>[^<]*<a id=\"ctl00_ContentBody_BugDetails_BugLocation\" href=\"[^\"]*/profile/\\?guid=([a-z0-9\\-]+)\">In the hands of ([^<]+).</a>[^<]*</dd>", Pattern.CASE_INSENSITIVE);
- private final static Pattern PATTERN_TRACKABLE_SpottedUnknown = Pattern.compile("<dt>\\W*Recently Spotted:[^<]*</dt>[^<]*<dd>[^<]*<a id=\"ctl00_ContentBody_BugDetails_BugLocation\">Unknown Location[^<]*</a>[^<]*</dd>", Pattern.CASE_INSENSITIVE);
- private final static Pattern PATTERN_TRACKABLE_SpottedOwner = Pattern.compile("<dt>\\W*Recently Spotted:[^<]*</dt>[^<]*<dd>[^<]*<a id=\"ctl00_ContentBody_BugDetails_BugLocation\">In the hands of the owner[^<]*</a>[^<]*</dd>", Pattern.CASE_INSENSITIVE);
- private final static Pattern PATTERN_TRACKABLE_GOAL = Pattern.compile("<h3>\\W*Current GOAL[^<]*</h3>[^<]*<div id=\"TrackableGoal\">[^<]*<p>(.*?)</p>[^<]*</div>[^<]*<h3>");
- private final static Pattern PATTERN_TRACKABLE_DETAILSIMAGE = Pattern.compile("<h3>\\W*About This Item[^<]*</h3>[^<]*<div id=\"TrackableDetails\">([^<]*<p>([^<]*<img id=\"ctl00_ContentBody_BugDetails_BugImage\" class=\"[^\"]+\" src=\"([^\"]+)\"[^>]*>)?[^<]*</p>)?[^<]*<p[^>]*>(.*)</p>[^<]*</div> <div id=\"ctl00_ContentBody_BugDetails_uxAbuseReport\">");
- private final static Pattern PATTERN_TRACKABLE_Icon = Pattern.compile("<img id=\"ctl00_ContentBody_BugTypeImage\" class=\"TravelBugHeaderIcon\" src=\"([^\"]+)\"[^>]*>", Pattern.CASE_INSENSITIVE);
- private final static Pattern PATTERN_TRACKABLE_Type = Pattern.compile("<img id=\"ctl00_ContentBody_BugTypeImage\" class=\"TravelBugHeaderIcon\" src=\"[^\"]+\" alt=\"([^\"]+)\"[^>]*>", Pattern.CASE_INSENSITIVE);
- private final static Pattern PATTERN_TRACKABLE_Distance = Pattern.compile("<h4[^>]*\\W*Tracking History \\(([0-9.,]+(km|mi))[^\\)]*\\)", Pattern.CASE_INSENSITIVE);
- private final static Pattern PATTERN_TRACKABLE_Log = Pattern.compile("<tr class=\"Data.+?src=\"/images/icons/([^.]+)\\.gif[^>]+>&nbsp;([^<]+)</td>.+?guid.+?>([^<]+)</a>.+?(?:guid=([^\"]+)\">(<span class=\"Strike\">)?([^<]+)</.+?)?<td colspan=\"4\">(.+?)(?:<ul.+?ul>)?\\s*</td>\\s*</tr>", Pattern.CASE_INSENSITIVE);
-
private static final String passMatch = "(?<=[\\?&])[Pp]ass(w(or)?d)?=[^&#$]+";
public final static Map<String, String> cacheTypes = new HashMap<String, String>();
@@ -171,7 +136,6 @@ public class cgBase {
private static final Pattern patternLogged2In = Pattern.compile("<strong>\\W*Hello,[^<]*<a[^>]+>([^<]+)</a>[^<]*</strong>", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
private static final Pattern patternViewstateFieldCount = Pattern.compile("id=\"__VIEWSTATEFIELDCOUNT\"[^(value)]+value=\"(\\d+)\"[^>]+>", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
private static final Pattern patternViewstates = Pattern.compile("id=\"__VIEWSTATE(\\d*)\"[^(value)]+value=\"([^\"]+)\"[^>]+>", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
- private static final Pattern patternIsPremium = Pattern.compile("<span id=\"ctl00_litPMLevel\"", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
private static final Pattern patternUserToken = Pattern.compile("userToken\\s*=\\s*'([^']+)'");
public static final float miles2km = 1.609344f;
public static final float feet2km = 0.0003048f;
@@ -558,15 +522,6 @@ public class cgBase {
}
}
- public static boolean isPremium(String page)
- {
- if (checkLogin(page)) {
- final Matcher matcherIsPremium = patternIsPremium.matcher(page);
- return matcherIsPremium.find();
- }
- return false;
- }
-
public static boolean checkLogin(String page) {
if (StringUtils.isBlank(page)) {
Log.e(Settings.tag, "cgeoBase.checkLogin: No page given");
@@ -1079,25 +1034,27 @@ public class cgBase {
cache.archived = page.contains("<li>This cache has been archived,");
- cache.members = page.contains("<p class=\"Warning\">This is a Premium Member Only cache.</p>");
+ cache.members = BaseUtils.matches(page, GCConstants.PATTERN_MEMBERS);
+
+ cache.favourite = BaseUtils.matches(page, GCConstants.PATTERN_FAVORITE);
cache.reason = reason;
// cache geocode
- cache.geocode = BaseUtils.getMatch(page, Constants.PATTERN_GEOCODE, 1, cache.geocode);
+ cache.geocode = BaseUtils.getMatch(page, GCConstants.PATTERN_GEOCODE, true, cache.geocode);
// cache id
- cache.cacheId = BaseUtils.getMatch(page, Constants.PATTERN_CACHEID, 1, cache.cacheId);
+ cache.cacheId = BaseUtils.getMatch(page, GCConstants.PATTERN_CACHEID, true, cache.cacheId);
// cache guid
- cache.guid = BaseUtils.getMatch(page, Constants.PATTERN_GUID, 1, cache.guid);
+ cache.guid = BaseUtils.getMatch(page, GCConstants.PATTERN_GUID, true, cache.guid);
// name
- cache.name = Html.fromHtml(BaseUtils.getMatch(page, Constants.PATTERN_NAME, 1, cache.name)).toString();
+ cache.name = Html.fromHtml(BaseUtils.getMatch(page, GCConstants.PATTERN_NAME, true, cache.name)).toString();
// owner real name
- // URLDecoder.decode() neccessary here ?
- cache.ownerReal = URLDecoder.decode(BaseUtils.getMatch(page, Constants.PATTERN_OWNERREAL, 1, cache.ownerReal));
+ // was cache.ownerReal = URLDecoder.decode(BaseUtils.getMatch(page, Constants.PATTERN_OWNERREAL, 1, cache.ownerReal));
+ cache.ownerReal = BaseUtils.getMatch(page, GCConstants.PATTERN_OWNERREAL, true, cache.ownerReal);
final String username = Settings.getUsername();
if (cache.ownerReal != null && username != null && cache.ownerReal.equalsIgnoreCase(username)) {
@@ -1125,92 +1082,51 @@ public class cgBase {
if (StringUtils.isNotBlank(tableInside)) {
// cache terrain
- String result = BaseUtils.getMatch(tableInside, Constants.PATTERN_TERRAIN, 1, null);
+ String result = BaseUtils.getMatch(tableInside, GCConstants.PATTERN_TERRAIN, true, null);
if (result != null) {
cache.terrain = new Float(StringUtils.replaceChars(result, '_', '.'));
}
// cache difficulty
- result = BaseUtils.getMatch(tableInside, Constants.PATTERN_DIFFICULTY, 1, null);
+ result = BaseUtils.getMatch(tableInside, GCConstants.PATTERN_DIFFICULTY, true, null);
if (result != null) {
cache.difficulty = new Float(StringUtils.replaceChars(result, '_', '.'));
}
// owner
- try {
- final Matcher matcherOwner = patternOwner.matcher(tableInside);
- if (matcherOwner.find() && matcherOwner.groupCount() > 0) {
- cache.owner = Html.fromHtml(matcherOwner.group(2)).toString();
- }
- } catch (Exception e) {
- // failed to parse owner
- Log.w(Settings.tag, "cgeoBase.parseCache: Failed to parse cache owner");
- }
+ cache.owner = Html.fromHtml(BaseUtils.getMatch(tableInside, GCConstants.PATTERN_OWNER, false, cache.owner)).toString();
// hidden
try {
- final Matcher matcherHidden = patternHidden.matcher(tableInside);
- if (matcherHidden.find() && matcherHidden.groupCount() > 0) {
- cache.hidden = parseGcCustomDate(matcherHidden.group(1));
+ cache.hidden = parseGcCustomDate(BaseUtils.getMatch(tableInside, GCConstants.PATTERN_HIDDEN, true, null));
+
+ if (cache.hidden == null) {
+ // event date
+ cache.hidden = parseGcCustomDate(BaseUtils.getMatch(tableInside, GCConstants.PATTERN_HIDDENEVENT, true, null));
}
} catch (ParseException e) {
// failed to parse cache hidden date
- Log.w(Settings.tag, "cgeoBase.parseCache: Failed to parse cache hidden date");
- }
-
- if (cache.hidden == null) {
- // event date
- try {
- final Matcher matcherHiddenEvent = patternHiddenEvent.matcher(tableInside);
- if (matcherHiddenEvent.find() && matcherHiddenEvent.groupCount() > 0) {
- cache.hidden = parseGcCustomDate(matcherHiddenEvent.group(1));
- }
- } catch (ParseException e) {
- // failed to parse cache event date
- Log.w(Settings.tag, "cgeoBase.parseCache: Failed to parse cache event date");
- }
+ Log.w(Settings.tag, "cgeoBase.parseCache: Failed to parse cache hidden (event) date");
}
// favourite
- try {
- final Matcher matcherFavourite = patternFavourite.matcher(tableInside);
- if (matcherFavourite.find() && matcherFavourite.groupCount() > 0) {
- cache.favouriteCnt = Integer.parseInt(matcherFavourite.group(1));
- }
- } catch (Exception e) {
- // failed to parse favourite count
- Log.w(Settings.tag, "cgeoBase.parseCache: Failed to parse favourite count");
- }
+ cache.favouriteCnt = Integer.parseInt(BaseUtils.getMatch(tableInside, GCConstants.PATTERN_FAVORITECOUNT, true, "0"));
// cache size
- cache.size = CacheSize.FIND_BY_ID.get(BaseUtils.getMatch(tableInside, Constants.PATTERN_SIZE, 1, CacheSize.NOT_CHOSEN.id).toLowerCase());
+ cache.size = CacheSize.FIND_BY_ID.get(BaseUtils.getMatch(tableInside, GCConstants.PATTERN_SIZE, true, CacheSize.NOT_CHOSEN.id).toLowerCase());
}
// cache found
- cache.found = Constants.PATTERN_FOUND.matcher(page).find() || Constants.PATTERN_FOUND_ALTERNATIVE.matcher(page).find();
+ cache.found = BaseUtils.matches(page, GCConstants.PATTERN_FOUND) || BaseUtils.matches(page, GCConstants.PATTERN_FOUND_ALTERNATIVE);
// cache type
- try {
- final Matcher matcherType = patternType.matcher(page);
- if (matcherType.find() && matcherType.groupCount() > 0) {
- cache.type = cacheTypes.get(matcherType.group(1).toLowerCase());
- }
- } catch (Exception e) {
- // failed to parse type
- Log.w(Settings.tag, "cgeoBase.parseCache: Failed to parse cache type");
- }
+ cache.type = cacheTypes.get(BaseUtils.getMatch(page, GCConstants.PATTERN_TYPE, true, cache.type).toLowerCase());
// on watchlist
- try {
- final Matcher matcher = patternOnWatchlist.matcher(page);
- cache.onWatchlist = matcher.find();
- } catch (Exception e) {
- // failed to parse watchlist state
- Log.w(Settings.tag, "cgeoBase.parseCache: Failed to parse watchlist state");
- }
+ cache.onWatchlist = BaseUtils.matches(page, GCConstants.PATTERN_WATCHLIST);
// latitude and longitude
- cache.latlon = BaseUtils.getMatch(page, Constants.PATTERN_LATLON, 1, cache.latlon);
+ cache.latlon = BaseUtils.getMatch(page, GCConstants.PATTERN_LATLON, true, cache.latlon);
if (StringUtils.isNotEmpty(cache.latlon)) {
try {
cache.coords = new Geopoint(cache.latlon);
@@ -1221,11 +1137,11 @@ public class cgBase {
}
// cache location
- cache.location = BaseUtils.getMatch(page, Constants.PATTERN_LOCATION, 1, cache.location);
+ cache.location = BaseUtils.getMatch(page, GCConstants.PATTERN_LOCATION, true, cache.location);
// cache hint
try {
- final Matcher matcherHint = Constants.PATTERN_HINT.matcher(page);
+ final Matcher matcherHint = GCConstants.PATTERN_HINT.matcher(page);
if (matcherHint.find() && matcherHint.group(1) != null) {
// replace linebreak and paragraph tags
String hint = Pattern.compile("<(br|p)[^>]*>").matcher(matcherHint.group(1)).replaceAll("\n");
@@ -1241,20 +1157,19 @@ public class cgBase {
checkFields(cache);
// cache personal note
- cache.personalNote = BaseUtils.getMatch(page, Constants.PATTERN_PERSONALNOTE, 1, cache.personalNote);
+ cache.personalNote = BaseUtils.getMatch(page, GCConstants.PATTERN_PERSONALNOTE, true, cache.personalNote);
// cache short description
- cache.shortdesc = BaseUtils.getMatch(page, Constants.PATTERN_SHORTDESC, 1, cache.shortdesc);
+ cache.shortdesc = BaseUtils.getMatch(page, GCConstants.PATTERN_SHORTDESC, true, cache.shortdesc);
// cache description
- cache.setDescription(BaseUtils.getMatch(page, Constants.PATTERN_DESC, 1, ""));
+ cache.setDescription(BaseUtils.getMatch(page, GCConstants.PATTERN_DESC, true, ""));
// cache attributes
try {
- final Matcher matcherAttributes = patternAttributes.matcher(page);
- if (matcherAttributes.find() && matcherAttributes.groupCount() > 0) {
- final String attributesPre = matcherAttributes.group(1);
- final Matcher matcherAttributesInside = patternAttributesInside.matcher(attributesPre);
+ final String attributesPre = BaseUtils.getMatch(page, GCConstants.PATTERN_ATTRIBUTES, true, null);
+ if (null != attributesPre) {
+ final Matcher matcherAttributesInside = GCConstants.PATTERN_ATTRIBUTESINSIDE.matcher(attributesPre);
while (matcherAttributesInside.find()) {
if (matcherAttributesInside.groupCount() > 1 && !matcherAttributesInside.group(2).equalsIgnoreCase("blank")) {
@@ -1284,11 +1199,11 @@ public class cgBase {
// cache spoilers
try {
- final Matcher matcherSpoilers = patternSpoilers.matcher(page);
- if (matcherSpoilers.find()) {
+ final String spoilers = BaseUtils.getMatch(page, GCConstants.PATTERN_SPOILERS, false, null);
+ if (null != spoilers) {
sendLoadProgressDetail(handler, R.string.cache_dialog_loading_details_status_spoilers);
- final Matcher matcherSpoilersInside = patternSpoilersInside.matcher(matcherSpoilers.group(1));
+ final Matcher matcherSpoilersInside = GCConstants.PATTERN_SPOILERSINSIDE.matcher(spoilers);
while (matcherSpoilersInside.find()) {
final cgImage spoiler = new cgImage();
@@ -1316,7 +1231,7 @@ public class cgBase {
try {
cache.inventoryItems = 0;
- final Matcher matcherInventory = patternInventory.matcher(page);
+ final Matcher matcherInventory = GCConstants.PATTERN_INVENTORY.matcher(page);
if (matcherInventory.find()) {
if (cache.inventory == null) {
cache.inventory = new ArrayList<cgTrackable>();
@@ -1326,7 +1241,7 @@ public class cgBase {
final String inventoryPre = matcherInventory.group(2);
if (StringUtils.isNotBlank(inventoryPre)) {
- final Matcher matcherInventoryInside = patternInventoryInside.matcher(inventoryPre);
+ final Matcher matcherInventoryInside = GCConstants.PATTERN_INVENTORYINSIDE.matcher(inventoryPre);
while (matcherInventoryInside.find()) {
if (matcherInventoryInside.groupCount() > 0) {
@@ -1349,11 +1264,9 @@ public class cgBase {
// cache logs counts
try
{
- final Matcher matcherLogCounts = patternCountLogs.matcher(page);
-
- if (matcherLogCounts.find())
- {
- final Matcher matcherLog = patternCountLog.matcher(matcherLogCounts.group(1));
+ final String countlogs = BaseUtils.getMatch(page, GCConstants.PATTERN_COUNTLOGS, true, null);
+ if (null != countlogs) {
+ final Matcher matcherLog = GCConstants.PATTERN_COUNTLOG.matcher(countlogs);
while (matcherLog.find())
{
@@ -1714,9 +1627,8 @@ public class cgBase {
public static BitmapDrawable downloadAvatar(final Context context) {
try {
final String profile = BaseUtils.replaceWhitespace(getResponseData(request("http://www.geocaching.com/my/", null, false)));
- final Matcher matcher = patternAvatarImg.matcher(profile);
- if (matcher.find()) {
- final String avatarURL = matcher.group(1);
+ final String avatarURL = BaseUtils.getMatch(profile, GCConstants.PATTERN_AVATAR_IMAGE, false, null);
+ if (null != avatarURL) {
final cgHtmlImg imgGetter = new cgHtmlImg(context, "", false, 0, false, false);
return imgGetter.getDrawable(avatarURL);
}
@@ -1746,65 +1658,25 @@ public class cgBase {
final cgTrackable trackable = new cgTrackable();
// trackable geocode
- try {
- final Matcher matcherGeocode = PATTERN_TRACKABLE_Geocode.matcher(page);
- if (matcherGeocode.find() && matcherGeocode.groupCount() > 0) {
- trackable.setGeocode(matcherGeocode.group(1).trim().toUpperCase());
- }
- } catch (Exception e) {
- // failed to parse trackable geocode
- Log.w(Settings.tag, "cgeoBase.parseTrackable: Failed to parse trackable geocode");
- }
+ trackable.setGeocode(BaseUtils.getMatch(page, GCConstants.PATTERN_TRACKABLE_GEOCODE, true, trackable.getGeocode()).toUpperCase());
// trackable id
- try {
- final Matcher matcherTrackableId = PATTERN_TRACKABLE_TrackableId.matcher(page);
- if (matcherTrackableId.find() && matcherTrackableId.groupCount() > 0) {
- trackable.setGuid(matcherTrackableId.group(1).trim());
- }
- } catch (Exception e) {
- // failed to parse trackable id
- Log.w(Settings.tag, "cgeoBase.parseTrackable: Failed to parse trackable id");
- }
+ trackable.setGuid(BaseUtils.getMatch(page, GCConstants.PATTERN_TRACKABLE_ID, true, trackable.getGuid()));
// trackable icon
- try {
- final Matcher matcherTrackableIcon = PATTERN_TRACKABLE_Icon.matcher(page);
- if (matcherTrackableIcon.find() && matcherTrackableIcon.groupCount() > 0) {
- trackable.setIconUrl(matcherTrackableIcon.group(1).trim());
- }
- } catch (Exception e) {
- // failed to parse trackable icon
- Log.w(Settings.tag, "cgeoBase.parseTrackable: Failed to parse trackable icon");
- }
+ trackable.setIconUrl(BaseUtils.getMatch(page, GCConstants.PATTERN_TRACKABLE_ICON, true, trackable.getIconUrl()));
// trackable name
- try {
- final Matcher matcherName = PATTERN_TRACKABLE_Name.matcher(page);
- if (matcherName.find() && matcherName.groupCount() > 1) {
- trackable.setName(matcherName.group(2).trim());
- }
- } catch (Exception e) {
- // failed to parse trackable name
- Log.w(Settings.tag, "cgeoBase.parseTrackable: Failed to parse trackable name");
- }
+ trackable.setName(BaseUtils.getMatch(page, GCConstants.PATTERN_TRACKABLE_NAME, true, trackable.getName()));
// trackable type
if (StringUtils.isNotBlank(trackable.getName())) {
- try {
- final Matcher matcherType = PATTERN_TRACKABLE_Type.matcher(page);
- if (matcherType.find() && matcherType.groupCount() > 0) {
- trackable.setType(matcherType.group(1).trim());
- }
- } catch (Exception e) {
- // failed to parse trackable type
- Log.w(Settings.tag, "cgeoBase.parseTrackable: Failed to parse trackable type");
- }
+ trackable.setType(BaseUtils.getMatch(page, GCConstants.PATTERN_TRACKABLE_TYPE, true, trackable.getType()));
}
// trackable owner name
try {
- final Matcher matcherOwner = PATTERN_TRACKABLE_Owner.matcher(page);
+ final Matcher matcherOwner = GCConstants.PATTERN_TRACKABLE_OWNER.matcher(page);
if (matcherOwner.find() && matcherOwner.groupCount() > 0) {
trackable.setOwnerGuid(matcherOwner.group(1));
trackable.setOwner(matcherOwner.group(2).trim());
@@ -1815,39 +1687,29 @@ public class cgBase {
}
// trackable origin
- try {
- final Matcher matcherOrigin = PATTERN_TRACKABLE_Origin.matcher(page);
- if (matcherOrigin.find() && matcherOrigin.groupCount() > 0) {
- trackable.setOrigin(matcherOrigin.group(1).trim());
- }
- } catch (Exception e) {
- // failed to parse trackable origin
- Log.w(Settings.tag, "cgeoBase.parseTrackable: Failed to parse trackable origin");
- }
+ trackable.setOrigin(BaseUtils.getMatch(page, GCConstants.PATTERN_TRACKABLE_ORIGIN, true, trackable.getOrigin()));
// trackable spotted
try {
- final Matcher matcherSpottedCache = PATTERN_TRACKABLE_SpottedCache.matcher(page);
+ final Matcher matcherSpottedCache = GCConstants.PATTERN_TRACKABLE_SPOTTEDCACHE.matcher(page);
if (matcherSpottedCache.find() && matcherSpottedCache.groupCount() > 0) {
trackable.setSpottedGuid(matcherSpottedCache.group(1));
trackable.setSpottedName(matcherSpottedCache.group(2).trim());
trackable.setSpottedType(cgTrackable.SPOTTED_CACHE);
}
- final Matcher matcherSpottedUser = PATTERN_TRACKABLE_SpottedUser.matcher(page);
+ final Matcher matcherSpottedUser = GCConstants.PATTERN_TRACKABLE_SPOTTEDUSER.matcher(page);
if (matcherSpottedUser.find() && matcherSpottedUser.groupCount() > 0) {
trackable.setSpottedGuid(matcherSpottedUser.group(1));
trackable.setSpottedName(matcherSpottedUser.group(2).trim());
trackable.setSpottedType(cgTrackable.SPOTTED_USER);
}
- final Matcher matcherSpottedUnknown = PATTERN_TRACKABLE_SpottedUnknown.matcher(page);
- if (matcherSpottedUnknown.find()) {
+ if (BaseUtils.matches(page, GCConstants.PATTERN_TRACKABLE_SPOTTEDUNKNOWN)) {
trackable.setSpottedType(cgTrackable.SPOTTED_UNKNOWN);
}
- final Matcher matcherSpottedOwner = PATTERN_TRACKABLE_SpottedOwner.matcher(page);
- if (matcherSpottedOwner.find()) {
+ if (BaseUtils.matches(page, GCConstants.PATTERN_TRACKABLE_SPOTTEDOWNER)) {
trackable.setSpottedType(cgTrackable.SPOTTED_OWNER);
}
} catch (Exception e) {
@@ -1857,59 +1719,29 @@ public class cgBase {
// released
try {
- final Matcher matcherReleased = PATTERN_TRACKABLE_Released.matcher(page);
- if (matcherReleased.find() && matcherReleased.groupCount() > 0 && matcherReleased.group(1) != null) {
- try {
- if (trackable.getReleased() == null) {
- trackable.setReleased(dateTbIn1.parse(matcherReleased.group(1)));
- }
- } catch (Exception e) {
- //
- }
-
- try {
- if (trackable.getReleased() == null) {
- trackable.setReleased(dateTbIn2.parse(matcherReleased.group(1)));
- }
- } catch (Exception e) {
- //
- }
+ trackable.setReleased(dateTbIn1.parse(BaseUtils.getMatch(page, GCConstants.PATTERN_TRACKABLE_RELEASES, false, null)));
+ if (trackable.getReleased() == null) {
+ trackable.setReleased(dateTbIn2.parse(BaseUtils.getMatch(page, GCConstants.PATTERN_TRACKABLE_RELEASES, false, null)));
}
- } catch (Exception e) {
- // failed to parse trackable released date
- Log.w(Settings.tag, "cgeoBase.parseTrackable: Failed to parse trackable released date");
+ } catch (ParseException e1) {
+ trackable.setReleased(null);
}
+
// trackable distance
try {
- final Matcher matcherDistance = PATTERN_TRACKABLE_Distance.matcher(page);
- if (matcherDistance.find() && matcherDistance.groupCount() > 0) {
- try {
- trackable.setDistance(DistanceParser.parseDistance(matcherDistance.group(1), Settings.isUseMetricUnits()));
- } catch (NumberFormatException e) {
- trackable.setDistance(null);
- throw e;
- }
- }
- } catch (Exception e) {
- // failed to parse trackable distance
- Log.w(Settings.tag, "cgeoBase.parseTrackable: Failed to parse trackable distance");
+ trackable.setDistance(DistanceParser.parseDistance(BaseUtils.getMatch(page, GCConstants.PATTERN_TRACKABLE_DISTANCE, false, null), Settings.isUseMetricUnits()));
+ } catch (NumberFormatException e) {
+ trackable.setDistance(null);
+ throw e;
}
// trackable goal
- try {
- final Matcher matcherGoal = PATTERN_TRACKABLE_GOAL.matcher(page);
- if (matcherGoal.find() && matcherGoal.groupCount() > 0) {
- trackable.setGoal(matcherGoal.group(1).trim());
- }
- } catch (Exception e) {
- // failed to parse trackable goal
- Log.w(Settings.tag, "cgeoBase.parseTrackable: Failed to parse trackable goal");
- }
+ trackable.setGoal(BaseUtils.getMatch(page, GCConstants.PATTERN_TRACKABLE_GOAL, true, trackable.getGoal()));
// trackable details & image
try {
- final Matcher matcherDetailsImage = PATTERN_TRACKABLE_DETAILSIMAGE.matcher(page);
+ final Matcher matcherDetailsImage = GCConstants.PATTERN_TRACKABLE_DETAILSIMAGE.matcher(page);
if (matcherDetailsImage.find() && matcherDetailsImage.groupCount() > 0) {
final String image = StringUtils.trim(matcherDetailsImage.group(3));
final String details = StringUtils.trim(matcherDetailsImage.group(4));
@@ -1929,7 +1761,7 @@ public class cgBase {
// trackable logs
try
{
- final Matcher matcherLogs = PATTERN_TRACKABLE_Log.matcher(page);
+ final Matcher matcherLogs = GCConstants.PATTERN_TRACKABLE_LOG.matcher(page);
/*
* 1. Type (img)
* 2. Date
@@ -3581,7 +3413,7 @@ public class cgBase {
/**
* Generate a numeric date and time string according to system-wide settings (locale,
* date format) such as "7 sept. à 12:35".
- *
+ *
* @param context
* a Context
* @param date
diff --git a/main/src/cgeo/geocaching/cgCache.java b/main/src/cgeo/geocaching/cgCache.java
index e800600..3f18628 100644
--- a/main/src/cgeo/geocaching/cgCache.java
+++ b/main/src/cgeo/geocaching/cgCache.java
@@ -515,4 +515,49 @@ public class cgCache implements ICache {
this.description = description;
}
+ @Override
+ public boolean isFound() {
+ return found;
+ }
+
+ @Override
+ public boolean isFavorite() {
+ return favourite;
+ }
+
+ @Override
+ public boolean isWatchlist() {
+ return onWatchlist;
+ }
+
+ @Override
+ public Date getHiddenDate() {
+ return hidden;
+ }
+
+ @Override
+ public List<String> getAttributes() {
+ return attributes;
+ }
+
+ @Override
+ public List<cgTrackable> getInventory() {
+ return inventory;
+ }
+
+ @Override
+ public List<cgImage> getSpoilers() {
+ return spoilers;
+ }
+
+ @Override
+ public Map<Integer, Integer> getLogCounts() {
+ return logCounts;
+ }
+
+ @Override
+ public Integer getFavoritePoints() {
+ return favouriteCnt;
+ }
+
}
diff --git a/main/src/cgeo/geocaching/utils/BaseUtils.java b/main/src/cgeo/geocaching/utils/BaseUtils.java
index 63a3375..7826448 100644
--- a/main/src/cgeo/geocaching/utils/BaseUtils.java
+++ b/main/src/cgeo/geocaching/utils/BaseUtils.java
@@ -12,19 +12,21 @@ import java.util.regex.Pattern;
public final class BaseUtils {
/**
- * Searches for the pattern p in the data for the n-th group. If the pattern
- * is not found defaultValue is returned
+ * Searches for the pattern p in the data. If the pattern is not found defaultValue is returned
*
* @param data
+ * Data to search in
* @param p
+ * Pattern to search for
* @param group
+ * Number of the group to return if found
* @param defaultValue
- * @return
+ * Value to return if the pattern is not found
+ * @return defaultValue or the n-th group if the pattern matches (trimed)
*/
public static String getMatch(final String data, final Pattern p, final int group, final String defaultValue) {
final Matcher matcher = p.matcher(data);
if (matcher.find() && matcher.groupCount() >= group) {
- // creating a new String via String constructor is necessary here!!
return new String(matcher.group(group).trim());
// Java copies the whole page String, when matching with regular expressions
// later this would block the garbage collector, as we only need tiny parts of the page
@@ -36,14 +38,53 @@ public final class BaseUtils {
}
/**
+ * Searches for the pattern p in the data. If the pattern is not found defaultValue is returned
+ *
+ * @param data
+ * Data to search in
+ * @param p
+ * Pattern to search for
+ * @param trim
+ * Set to true if the group found should be trim'ed
+ * @param defaultValue
+ * Value to return if the pattern is not found
+ * @return defaultValue or the first group if the pattern matches (trimed if wanted)
+ */
+ public static String getMatch(final String data, final Pattern p, final boolean trim, final String defaultValue) {
+ final Matcher matcher = p.matcher(data);
+ if (matcher.find() && matcher.groupCount() >= 1) {
+ if (trim) {
+ return new String(matcher.group(1).trim());
+ }
+ return new String(matcher.group(1));
+ // Java copies the whole page String, when matching with regular expressions
+ // later this would block the garbage collector, as we only need tiny parts of the page
+ // see http://developer.android.com/reference/java/lang/String.html#backing_array
+ // Thus the creating of a new String via String constructor is necessary here!!
+
+ // And BTW: You cannot even see that effect in the debugger, but must use a separate memory profiler!
+ }
+ return defaultValue;
+ }
+
+ /**
+ * @param data
+ * @param regex
+ * @return
+ */
+ public static boolean matches(final String data, final Pattern p) {
+ return p.matcher(data).find();
+ }
+
+ /**
* Replaces every \n, \r and \t with a single space. Afterwards multiples spaces
* are merged into a single space. Finally leading spaces are deleted.
- *
+ *
* This method must be fast, but may not lead to the shortest replacement String.
- *
+ *
* You are only allowed to change this code if you can prove it became faster on a device.
* see cgeo.geocaching.test.WhiteSpaceTest#replaceWhitespaceManually in the test project
- *
+ *
* @param data
* complete HTML page
* @return the HTML page as a very long single "line"
diff --git a/tests/src/cgeo/geocaching/cgeoApplicationTest.java b/tests/src/cgeo/geocaching/cgeoApplicationTest.java
index b838a8d..4da302d 100644
--- a/tests/src/cgeo/geocaching/cgeoApplicationTest.java
+++ b/tests/src/cgeo/geocaching/cgeoApplicationTest.java
@@ -1,17 +1,14 @@
package cgeo.geocaching;
-import cgeo.geocaching.test.mock.GC1ZXX2;
-import cgeo.geocaching.test.mock.GC2CJPF;
+import cgeo.geocaching.test.RegExPerformanceTest;
import cgeo.geocaching.test.mock.MockedCache;
import android.test.ApplicationTestCase;
import android.test.suitebuilder.annotation.MediumTest;
import android.test.suitebuilder.annotation.SmallTest;
-import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
-import java.util.List;
import java.util.UUID;
import junit.framework.Assert;
@@ -61,17 +58,13 @@ public class cgeoApplicationTest extends ApplicationTestCase<cgeoapplication> {
Assert.assertNotNull(id);
}
-/**
-* Test {@link cgBase#parseCache(String, int) with "mocked" data
-* @param base
-*/
+ /**
+ * Test {@link cgBase#parseCache(String, int) with "mocked" data
+ * @param base
+ */
@MediumTest
public void testParseCache() {
- final List<MockedCache> cachesToTest = new ArrayList<MockedCache>();
- cachesToTest.add(new GC2CJPF());
- cachesToTest.add(new GC1ZXX2());
-
- for (MockedCache cache : cachesToTest) {
+ for (MockedCache cache : RegExPerformanceTest.MOCKED_CACHES) {
cgCacheWrap caches = base.parseCache(cache.getData(), 0, null);
cgCache cacheParsed = caches.cacheList.get(0);
Assert.assertEquals(cache.getGeocode(), cacheParsed.getGeocode());
@@ -95,6 +88,24 @@ public class cgeoApplicationTest extends ApplicationTestCase<cgeoapplication> {
Assert.assertEquals(cache.getGuid(), cacheParsed.getGuid());
Assert.assertEquals(cache.getLocation(), cacheParsed.getLocation());
Assert.assertEquals(cache.getPersonalNote(), cacheParsed.getPersonalNote());
+ Assert.assertEquals(cache.isFound(), cacheParsed.isFound());
+ Assert.assertEquals(cache.isFavorite(), cacheParsed.isFavorite());
+ Assert.assertEquals(cache.getFavoritePoints(), cacheParsed.getFavoritePoints());
+ Assert.assertEquals(cache.isWatchlist(), cacheParsed.isWatchlist());
+ Assert.assertEquals(cache.getHiddenDate().toString(), cacheParsed.getHiddenDate().toString());
+ for (String attribute : cache.getAttributes()) {
+ Assert.assertTrue(cacheParsed.getAttributes().contains(attribute));
+ }
+ for (Integer key : cache.getLogCounts().keySet()) {
+ Assert.assertEquals(cache.getLogCounts().get(key), cacheParsed.getLogCounts().get(key));
+ }
+ if (null != cache.getInventory() || null != cacheParsed.getInventory()) {
+ Assert.assertEquals(cache.getInventory().size(), cacheParsed.getInventory().size());
+ }
+ if (null != cache.getSpoilers() || null != cacheParsed.getSpoilers()) {
+ Assert.assertEquals(cache.getSpoilers().size(), cacheParsed.getSpoilers().size());
+ }
+
}
}
diff --git a/tests/src/cgeo/geocaching/test/RegExPerformanceTest.java b/tests/src/cgeo/geocaching/test/RegExPerformanceTest.java
index 08e60d8..7b51f23 100644
--- a/tests/src/cgeo/geocaching/test/RegExPerformanceTest.java
+++ b/tests/src/cgeo/geocaching/test/RegExPerformanceTest.java
@@ -2,6 +2,7 @@ package cgeo.geocaching.test;
import cgeo.geocaching.test.mock.GC1ZXX2;
import cgeo.geocaching.test.mock.GC2CJPF;
+import cgeo.geocaching.test.mock.GC2JVEH;
import cgeo.geocaching.test.mock.MockedCache;
import cgeo.geocaching.utils.BaseUtils;
@@ -66,45 +67,13 @@ public class RegExPerformanceTest extends TestCase {
public final static Pattern PATTERN_DESCRIPTION_OLD = Pattern.compile("<span id=\"ctl00_ContentBody_LongDescription\"[^>]*>" + "(.*)</span>[^<]*</div>[^<]*<p>[^<]*</p>[^<]*<p>[^<]*<strong>\\W*Additional Hints</strong>", Pattern.CASE_INSENSITIVE);
public final static Pattern PATTERN_DESCRIPTION = Pattern.compile("<span id=\"ctl00_ContentBody_LongDescription\">(.*?)</span>[^<]*</div>[^<]*<p>[^<]*</p>[^<]*<p>[^<]*<strong>\\W*Additional Hints</strong>");
- public final static Pattern PATTERN_HINT_OLD = Pattern.compile("<div id=\"div_hint\"[^>]*>(.*?)</div>", Pattern.CASE_INSENSITIVE);
- public final static Pattern PATTERN_HINT = Pattern.compile("<div id=\"div_hint\"[^>]*>(.*?)</div>");
-
- public final static Pattern PATTERN_SHORTDESC_OLD = Pattern.compile("<div class=\"UserSuppliedContent\">[^<]*<span id=\"ctl00_ContentBody_ShortDescription\"[^>]*>((?:(?!</span>[^\\w^<]*</div>).)*)</span>[^\\w^<]*</div>", Pattern.CASE_INSENSITIVE);
- public final static Pattern PATTERN_SHORTDESC = Pattern.compile("<span id=\"ctl00_ContentBody_ShortDescription\">(.*?)</span>[^\\w^<]*</div>");
-
- private final static Pattern PATTERN_GEOCODE_OLD = Pattern.compile("<meta name=\"og:url\" content=\"[^\"]+/(GC[0-9A-Z]+)\"[^>]*>", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
- private final static Pattern PATTERN_GEOCODE = Pattern.compile("<meta name=\"og:url\" content=\"[^\"]+/(GC[0-9A-Z]+)\"");
-
- private final static Pattern PATTERN_CACHEID_OLD = Pattern.compile("/seek/log\\.aspx\\?ID=(\\d+)", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
- private final static Pattern PATTERN_CACHEID = Pattern.compile("/seek/log\\.aspx\\?ID=(\\d+)");
-
- private final static Pattern PATTERN_GUID_OLD = Pattern.compile(Pattern.quote("&wid=") + "([0-9a-z\\-]+)" + Pattern.quote("&"), Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
- private final static Pattern PATTERN_GUID = Pattern.compile(Pattern.quote("&wid=") + "([0-9a-z\\-]+)" + Pattern.quote("&"));
-
- private final static Pattern PATTERN_SIZE_OLD = Pattern.compile("<div class=\"CacheSize[^\"]*\">[^<]*<p[^>]*>[^S]*Size[^:]*:[^<]*<span[^>]*>[^<]*<img src=\"[^\"]*/icons/container/[a-z_]+\\.gif\" alt=\"Size: ([^\"]+)\"[^>]*>[^<]*<small>[^<]*</small>[^<]*</span>[^<]*</p>", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
- private final static Pattern PATTERN_SIZE = Pattern.compile("<div class=\"CacheSize[^\"]*\">[^<]*<p[^>]*>[^S]*Size[^:]*:[^<]*<span[^>]*>[^<]*<img src=\"[^\"]*/icons/container/[a-z_]+\\.gif\" alt=\"Size: ([^\"]+)\"[^>]*>[^<]*<small>[^<]*</small>[^<]*</span>[^<]*</p>");
-
- private final static Pattern PATTERN_LATLON_OLD = Pattern.compile("<span id=\"ctl00_ContentBody_LatLon\"[^>]*>([^<]*)<\\/span>", Pattern.CASE_INSENSITIVE);
- private final static Pattern PATTERN_LATLON = Pattern.compile("<span id=\"ctl00_ContentBody_LatLon\"[^>]*>(.*?)</span>");
-
- private final static Pattern PATTERN_LOCATION_OLD = Pattern.compile("<span id=\"ctl00_ContentBody_Location\"[^>]*>In ([^<]*)", Pattern.CASE_INSENSITIVE);
- private final static Pattern PATTERN_LOCATION = Pattern.compile("<span id=\"ctl00_ContentBody_Location\">In (.*?)</span>");
-
- private final static Pattern PATTERN_PERSONALNOTE_OLD = Pattern.compile("<p id=\"cache_note\"[^>]*>([^<]*)</p>", Pattern.CASE_INSENSITIVE);
- private final static Pattern PATTERN_PERSONALNOTE = Pattern.compile("<p id=\"cache_note\"[^>]*>(.*?)</p>");
-
- private final static Pattern PATTERN_NAME_OLD = Pattern.compile("<h2[^>]*>[^<]*<span id=\"ctl00_ContentBody_CacheName\">([^<]+)<\\/span>[^<]*<\\/h2>", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
- private final static Pattern PATTERN_NAME = Pattern.compile("<span id=\"ctl00_ContentBody_CacheName\">(.*?)</span>");
-
- private final static Pattern PATTERN_DIFFICULTY_OLD = Pattern.compile("<span id=\"ctl00_ContentBody_uxLegendScale\"[^>]*>[^<]*<img src=\"[^\"]*/images/stars/stars([0-9_]+)\\.gif\" alt=\"[^\"]+\"[^>]*>[^<]*</span>", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
- private final static Pattern PATTERN_DIFFICULTY = Pattern.compile("<span id=\"ctl00_ContentBody_uxLegendScale\"[^>]*>[^<]*<img src=\"[^\"]*/images/stars/stars([0-9_]+)\\.gif\" alt=\"");
-
- private final static Pattern PATTERN_TERRAIN_OLD = Pattern.compile("<span id=\"ctl00_ContentBody_Localize6\"[^>]*>[^<]*<img src=\"[^\"]*/images/stars/stars([0-9_]+)\\.gif\" alt=\"[^\"]+\"[^>]*>[^<]*</span>", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE);
- private final static Pattern PATTERN_TERRAIN = Pattern.compile("<span id=\"ctl00_ContentBody_Localize6\"[^>]*>[^<]*<img src=\"[^\"]*/images/stars/stars([0-9_]+)\\.gif\" alt=\"");
-
- private final static Pattern PATTERN_OWNERREAL_OLD = Pattern.compile("<a id=\"ctl00_ContentBody_uxFindLinksHiddenByThisUser\" href=\"[^\"]*/seek/nearest\\.aspx\\?u=*([^\"]+)\">[^<]+</a>", Pattern.CASE_INSENSITIVE);
- private final static Pattern PATTERN_OWNERREAL = Pattern.compile("<a id=\"ctl00_ContentBody_uxFindLinksHiddenByThisUser\" href=\"[^\"]*/seek/nearest\\.aspx\\?u=(.*?)\"");
+ public final static List<MockedCache> MOCKED_CACHES = new ArrayList<MockedCache>();
+ static {
+ MOCKED_CACHES.add(new GC2CJPF());
+ MOCKED_CACHES.add(new GC1ZXX2());
+ MOCKED_CACHES.add(new GC2JVEH());
+ }
public static void testRegEx() {
List<String> output = doTheTests(10);
@@ -118,20 +87,7 @@ public class RegExPerformanceTest extends TestCase {
List<String> output = new ArrayList<String>();
- output.addAll(measure(iterations, "hint", PATTERN_HINT_OLD, PATTERN_HINT));
output.addAll(measure(iterations, "description", PATTERN_DESCRIPTION_OLD, PATTERN_DESCRIPTION));
- output.addAll(measure(iterations, "short description", PATTERN_SHORTDESC_OLD, PATTERN_SHORTDESC));
- output.addAll(measure(iterations, "geocode", PATTERN_GEOCODE_OLD, PATTERN_GEOCODE));
- output.addAll(measure(iterations, "cache id", PATTERN_CACHEID_OLD, PATTERN_CACHEID));
- output.addAll(measure(iterations, "cache guid", PATTERN_GUID_OLD, PATTERN_GUID));
- output.addAll(measure(iterations, "size", PATTERN_SIZE_OLD, PATTERN_SIZE));
- output.addAll(measure(iterations, "latlon", PATTERN_LATLON_OLD, PATTERN_LATLON));
- output.addAll(measure(iterations, "location", PATTERN_LOCATION_OLD, PATTERN_LOCATION));
- output.addAll(measure(iterations, "personal note", PATTERN_PERSONALNOTE_OLD, PATTERN_PERSONALNOTE));
- output.addAll(measure(iterations, "name", PATTERN_NAME_OLD, PATTERN_NAME));
- output.addAll(measure(iterations, "difficulty", PATTERN_DIFFICULTY_OLD, PATTERN_DIFFICULTY));
- output.addAll(measure(iterations, "terrain", PATTERN_TERRAIN_OLD, PATTERN_TERRAIN));
- output.addAll(measure(iterations, "owner real", PATTERN_OWNERREAL_OLD, PATTERN_OWNERREAL));
return output;
}
@@ -141,14 +97,10 @@ public class RegExPerformanceTest extends TestCase {
List<String> output = new ArrayList<String>();
output.add(fieldName + ":");
- List<MockedCache> cachesForParsing = new ArrayList<MockedCache>();
- cachesForParsing.add(new GC2CJPF());
- cachesForParsing.add(new GC1ZXX2());
-
- for (MockedCache cache : cachesForParsing) {
+ for (MockedCache cache : MOCKED_CACHES) {
String page = cache.getData();
- String result1 = BaseUtils.getMatch(page, p1, 1, "");
- String result2 = BaseUtils.getMatch(page, p2, 1, "");
+ String result1 = BaseUtils.getMatch(page, p1, true, "");
+ String result2 = BaseUtils.getMatch(page, p2, true, "");
assertEquals(result1, result2);
long diff1, diff2;
@@ -174,7 +126,7 @@ public class RegExPerformanceTest extends TestCase {
private static long parse(String page, Pattern pattern, int iterations) {
long start = System.currentTimeMillis();
for (int j = 0; j < iterations; j++) {
- BaseUtils.getMatch(page, pattern, 1, "");
+ BaseUtils.getMatch(page, pattern, true, "");
}
return (System.currentTimeMillis() - start);
diff --git a/tests/src/cgeo/geocaching/test/mock/GC1ZXX2.html b/tests/src/cgeo/geocaching/test/mock/GC1ZXX2.html
index ee0fa91..d20df53 100644
--- a/tests/src/cgeo/geocaching/test/mock/GC1ZXX2.html
+++ b/tests/src/cgeo/geocaching/test/mock/GC1ZXX2.html
@@ -229,8 +229,8 @@ End Pagination
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATEFIELDCOUNT" id="__VIEWSTATEFIELDCOUNT" value="2" />
-<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTkwOTY3OTc3OQ8WAh4EQy5JRCgpWVN5c3RlbS5JbnQ2NCwgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BzE0MzM5MDkWAmYPZBYGZg9kFgYCCg8WAh4EVGV4dAViPG1ldGEgbmFtZT0iQ29weXJpZ2h0IiBjb250ZW50PSJDb3B5cmlnaHQgKGMpIDIwMDAtMjAxMSBHcm91bmRzcGVhaywgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLiIgLz5kAgsPFgIfAQVHPCEtLSBDb3B5cmlnaHQgKGMpIDIwMDAtMjAxMSBHcm91bmRzcGVhaywgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAtLT5kAicPFgIeB1Zpc2libGVoZAIBD2QWEgIFDxYCHwFkZAIIDxYCHwJnFgoCAQ8PFgIeCEltYWdlVXJsBU5odHRwOi8vaW1nLmdlb2NhY2hpbmcuY29tL3VzZXIvYXZhdGFyLzUwZjgzMTIzLTI3ZDgtNGRjZi05ZmRlLTJhZjAwNmVmYWYyYi5qcGdkZAIDDxYCHwEFaEhlbGxvLCA8YSBocmVmPSIvbXkvZGVmYXVsdC5hc3B4IiB0aXRsZT0iVmlldyBQcm9maWxlIGZvciBibGFmb28iIGNsYXNzPSJTaWduZWRJblByb2ZpbGVMaW5rIj5ibGFmb288L2E+ZAIFDw8WAh4LTmF2aWdhdGVVcmwFrQFodHRwczovL3d3dy5nZW9jYWNoaW5nLmNvbS9sb2dpbi9kZWZhdWx0LmFzcHg/UkVTRVQ9WSZyZWRpcj1odHRwJTNhJTJmJTJmd3d3Lmdlb2NhY2hpbmcuY29tJTJmc2VlayUyZmNhY2hlX2RldGFpbHMuYXNweCUzZmxvZyUzZHklMjZ3cCUzZEdDMVpYWDIlMjZudW1sb2dzJTNkMzUlMjZkZWNyeXB0JTNkeWRkAgcPFgIfAQWtATxpbWcgc3JjPSIvaW1hZ2VzL2ljb25zL2ljb25fc21pbGUucG5nIiB0aXRsZT0iQ2FjaGVzIEZvdW5kIiAvPiA0MzYmbmJzcDsmbWlkZG90OyZuYnNwOzxpbWcgc3JjPSIvaW1hZ2VzL2NoYWxsZW5nZXMvdHlwZXMvc20vY2hhbGxlbmdlLnBuZyIgdGl0bGU9IkNoYWxsZW5nZXMgQ29tcGxldGVkIiAvPiAyZAILDxYCHwJnFgJmDw8WAh8CaGRkAg8PFgIfAmcWAgINDw8WAh8EBUB+L3RyYWNrL3NlYXJjaC5hc3B4P289MSZ1aWQ9MDU2NGE5NDAtODMxMS00MGVlLThlNzYtN2U5MWIyY2Y2Mjg0ZGQCIQ8WAh8CZ2QCIw8WAh4FY2xhc3MFDHNwYW4tMjQgbGFzdBYCAgEPZBZOAgEPFgIfAQW9ATxhIGhyZWY9Ii9hYm91dC9jYWNoZV90eXBlcy5hc3B4IiB0YXJnZXQ9Il9ibGFuayIgdGl0bGU9IkFib3V0IENhY2hlIFR5cGVzIj48aW1nIHNyYz0iL2ltYWdlcy9XcHRUeXBlcy8yLmdpZiIgYWx0PSJUcmFkaXRpb25hbCBDYWNoZSIgdGl0bGU9IlRyYWRpdGlvbmFsIENhY2hlIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIC8+PC9hPmQCBA8WAh8BBQFBZAIGDxYCHwJnZAIJDxYCHwJoZAIQD2QWBAIBDxYCHwEFAjQ5ZAIDDw8WAh8EBUQvc2Vlay9jYWNoZV9mYXZvcml0ZWQuYXNweD9ndWlkPTM2ZDQ1ODcxLWI5OWQtNDZkNi05NWZjLWZmODZhYjU2NGM5OGRkAhEPDxYCHwJoZGQCEw8WBB8BBb4BPHAgY2xhc3M9Ik9sZFdhcm5pbmcgTm9Cb3R0b21TcGFjaW5nIj48c3Ryb25nPkNhY2hlIElzc3Vlczo8L3N0cm9uZz48L3A+PHVsIGNsYXNzPSJPbGRXYXJuaW5nIj48bGk+VGhpcyBjYWNoZSBoYXMgYmVlbiBhcmNoaXZlZCwgYnV0IGlzIGF2YWlsYWJsZSBmb3Igdmlld2luZyBmb3IgYXJjaGl2YWwgcHVycG9zZXMuPC9saT48L3VsPh8CZ2QCFA8WAh8CaGQCFQ8WAh8CaGQCGA8WAh4Fc3R5bGUFD2Rpc3BsYXk6aW5saW5lOxYCAgEPFgIfAQUbVVRNOiAzMlUgRSA1NDgzODkgTiA1ODAyNzg3ZAIbDw8WAh8EBTNjZHBmLmFzcHg/Z3VpZD0zNmQ0NTg3MS1iOTlkLTQ2ZDYtOTVmYy1mZjg2YWI1NjRjOThkZAIcDw8WAh8EBThjZHBmLmFzcHg/Z3VpZD0zNmQ0NTg3MS1iOTlkLTQ2ZDYtOTVmYy1mZjg2YWI1NjRjOTgmbGM9NWRkAh0PDxYCHwQFOWNkcGYuYXNweD9ndWlkPTM2ZDQ1ODcxLWI5OWQtNDZkNi05NWZjLWZmODZhYjU2NGM5OCZsYz0xMGRkAh4PDxYEHwQFggFodHRwOi8vbWFwcy5nb29nbGUuY29tL21hcHM/Zj1kJmhsPWVuJnNhZGRyPTUyLjQxNjIsOS41OTQxMTcgKEhvbWUgTG9jYXRpb24pJmRhZGRyPTUyLjM3MzIxNyw5LjcxMDgoSGFubm9wb2x5JTNhK0Vpc2xpc2Vuc3RyYXNzZSspHgZUYXJnZXQFBl9ibGFua2RkAiIPZBYIAgEPDxYEHglGb3JlQ29sb3IMHgRfIVNCAgRkZAIDDw8WBB8IDB8JAgRkZAIFDw8WAh8CZxYCHgdvbmNsaWNrBTtzMmdwcygnMzZkNDU4NzEtYjk5ZC00NmQ2LTk1ZmMtZmY4NmFiNTY0Yzk4Jyk7cmV0dXJuIGZhbHNlO2QCBw8PFgIfAmcWAh8KBSBzMnBob25lKCdHQzFaWFgyJyk7cmV0dXJuIGZhbHNlO2QCJA8WAh8CZ2QCJw9kFghmDxYCHwJoZAIBDw8WAh8CaGRkAgIPDxYCHwJoZGQCAw8WAh8CaGQCKQ8PFgIfAQUTTm8gaGludHMgYXZhaWxhYmxlLhYCHwoFDXJldHVybiBmYWxzZTtkAioPFgIfAmhkAiwPZBYCZg9kFgICAQ8PFgIfAQUHR0MxWlhYMmRkAi4PFgIfAmhkAjAPFgIfAmdkAjEPFgIfAmhkAjUPZBYCAgEPZBYEAgEPDxYCHwEF/wM8aWZyYW1lIHR5cGU9ImlmcmFtZSIgc3JjPSJodHRwOi8vYWRzLmdyb3VuZHNwZWFrLmNvbS9hLmFzcHg/Wm9uZUlEPTkmVGFzaz1HZXQmU2l0ZUlEPTEmWD0nYjIyZmI1YWNhM2QzNDM5MGE1NGI0MTFmY2Q1ZmI5NGUnIiB3aWR0aD0iMTIwIiBoZWlnaHQ9IjI0MCIgTWFyZ2lud2lkdGg9IjAiIE1hcmdpbmhlaWdodD0iMCIgSHNwYWNlPSIwIiBWc3BhY2U9IjAiIEZyYW1lYm9yZGVyPSIwIiBTY3JvbGxpbmc9Im5vIiBzdHlsZT0id2lkdGg6MTIwcHg7SGVpZ2h0OjI0MHB4OyI+PGEgaHJlZj0iaHR0cDovL2Fkcy5ncm91bmRzcGVhay5jb20vYS5hc3B4P1pvbmVJRD05JlRhc2s9Q2xpY2smO01vZGU9SFRNTCZTaXRlSUQ9MSIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwOi8vYWRzLmdyb3VuZHNwZWFrLmNvbS9hLmFzcHg/Wm9uZUlEPTkmVGFzaz1HZXQmTW9kZT1IVE1MJlNpdGVJRD0xIiB3aWR0aD0iMTIwIiBoZWlnaHQ9IjI0MCIgYm9yZGVyPSIwIiBhbHQ9IiIgLz48L2E+PC9pZnJhbWU+ZGQCAw8WAh4JaW5uZXJodG1sBRNBZHZlcnRpc2luZyB3aXRoIFVzZAI5D2QWBAIDDw8WAh8CZ2RkAgUPDxYCHwQFPH4vdHJhY2svc2VhcmNoLmFzcHg/d2lkPTM2ZDQ1ODcxLWI5OWQtNDZkNi05NWZjLWZmODZhYjU2NGM5OGRkAjoPDxYCHwJnZBYCZg8WAh4LXyFJdGVtQ291bnQCAxYGAgEPZBYEZg8VAwBXaHR0cDovL3d3dy5nZW9jYWNoaW5nLmNvbS9ib29rbWFya3Mvdmlldy5hc3B4P2d1aWQ9NDFjZDU2YjYtMDBmMS00NzAyLWI4NjYtMWEyNjhjNjQ5ZDEzFUFsbGUgSGFubm9wb2x5IENhY2hlc2QCAg8VAkxodHRwOi8vd3d3Lmdlb2NhY2hpbmcuY29tL3Byb2ZpbGUvP2d1aWQ9ZGYyMTg0YWItYTllYS00ZDMwLTk4ZWQtZWM0ZTg1MWMzNzA2Ckd1bW1pc2VlbGVkAgIPZBYEZg8VAw5BbHRlcm5hdGluZ1Jvd1dodHRwOi8vd3d3Lmdlb2NhY2hpbmcuY29tL2Jvb2ttYXJrcy92aWV3LmFzcHg/Z3VpZD0wZGNmM2Y4Ni05MzcyLTQ5OWMtOGI1Ny1lZDQxOWJkNDhlMjEQTWVpbmUgRW1wZmVobHVuZ2QCAg8VAkxodHRwOi8vd3d3Lmdlb2NhY2hpbmcuY29tL3Byb2ZpbGUvP2d1aWQ9YzQ2NTQxZmMtNmFlOS00NDUyLTg4MzMtNDcwZGRmYmU5Y2VlBnNrcmVsbGQCAw9kFgRmDxUDAFdodHRwOi8vd3d3Lmdlb2NhY2hpbmcuY29tL2Jvb2ttYXJrcy92aWV3LmFzcHg/Z3VpZD05YTI0OGRiOS0zMDYzLTQ0NTctOTIwNS04NTFmYmUwNmEwM2UJSGFubm9wb2x5ZAICDxUCTGh0dHA6Ly93d3cuZ2VvY2FjaGluZy5jb20vcHJvZmlsZS8/Z3VpZD01YzRiMDkxNS01Y2VjLTRmYTEtOGFmZC00YjNjYTY3ZTAwNGUHa2FpMjcwN2QCPA8PFgIfAmhkZAI9D2QWAgIBDw8WAh8EBUUvaGlkZS93cHRsaXN0LmFzcHg/UmVmV3B0SUQ9MzZk" />
-<input type="hidden" name="__VIEWSTATE1" id="__VIEWSTATE1" value="NDU4NzEtYjk5ZC00NmQ2LTk1ZmMtZmY4NmFiNTY0Yzk4JkRTPTFkZAI/Dw8WBh4GUkRTLklECyl2R3JvdW5kc3BlYWsuV2ViLkdQWC5XcHREYXRhU291cmNlcywgVHVjc29uLkNvbW1vbi5MZWdhY3ksIFZlcnNpb249My4wLjQyOTYuMTY2NTYsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAEeB1JXUFQuSUQoKwQHMTQzMzkwOR8CaGRkAkAPDxYCHwJnZBYCAgEPDxYEHwQFLy9tYXAvYmV0YS9kZWZhdWx0LmFzcHg/bGF0PTUyLjM3MzIxNyZsbmc9OS43MTA4HwJnZGQCRA8PFgIfBAUeL3NlZWsvbmVhcmVzdC5hc3B4P3U9ZGFuaWVsMzU0ZGQCRg8PFgIfBAUfL3NlZWsvbmVhcmVzdC5hc3B4P3VsPWRhbmllbDM1NGRkAkgPZBYKAgMPDxYCHwQFVS9zZWVrL25lYXJlc3QuYXNweD90eD0zMmJjOTMzMy01ZTUyLTQ5NTctYjBmNi01YTJjOGZjN2IyNTcmbGF0PTUyLjM3MzIxNyZsbmc9OS43MTA4MDBkZAIFDw8WAh8EBVkvc2Vlay9uZWFyZXN0LmFzcHg/dHg9MzJiYzkzMzMtNWU1Mi00OTU3LWIwZjYtNWEyYzhmYzdiMjU3JmxhdD01Mi4zNzMyMTcmbG5nPTkuNzEwODAwJmY9MWRkAgkPDxYCHwQFLS9zZWVrL25lYXJlc3QuYXNweD9sYXQ9NTIuMzczMjE3JmxuZz05LjcxMDgwMGRkAgsPDxYCHwQFMS9zZWVrL25lYXJlc3QuYXNweD9sYXQ9NTIuMzczMjE3JmxuZz05LjcxMDgwMCZmPTFkZAIPDw8WAh8EBUdodHRwOi8vd3d3LndheW1hcmtpbmcuY29tL2RpcmVjdG9yeS5hc3B4P2Y9MSZsYXQ9NTIuMzczMjE3Jmxvbj05LjcxMDgwMGRkAkkPFgIfAmhkAksPDxYCHwQFJS9yZXZpZXdzL2hvdGVscy1jb29yZHMtNTIuMzczMiw5LjcxMDhkZAJND2QWAgIBDw8WBB8BBZUHPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuZ2VvY2FjaGluZy5jb20vbWFwL2JldGEvZGVmYXVsdC5hc3B4P2xhdD01Mi4zNzMyMTcmbG5nPTkuNzEwOCIgdGFyZ2V0PSJfYmxhbmsiPkdlb2NhY2hpbmcuY29tIEdvb2dsZSBNYXA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL21hcHMuZ29vZ2xlLmNvbS9tYXBzP3E9Tis1MiVjMiViMCsyMi4zOTMrRSswMDklYzIlYjArNDIuNjQ4KyhHQzFaWFgyKSsiIHRhcmdldD0iX2JsYW5rIj5Hb29nbGUgTWFwczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm1hcHF1ZXN0LmNvbS9tYXBzL21hcC5hZHA/c2VhcmNodHlwZT1hZGRyZXNzJmZvcm10eXBlPWxhdGxvbmcmbGF0bG9uZ3R5cGU9ZGVjaW1hbCZsYXRpdHVkZT01Mi4zNzMyMTcmbG9uZ2l0dWRlPTkuNzEwOCZ6b29tPTEwIiB0YXJnZXQ9Il9ibGFuayI+TWFwUXVlc3Q8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL21hcHMueWFob28uY29tL21hcHNfcmVzdWx0P2xhdD01Mi4zNzMyMTcmbG9uPTkuNzEwOCIgdGFyZ2V0PSJfYmxhbmsiPllhaG9vIE1hcHM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5iaW5nLmNvbS9tYXBzL2RlZmF1bHQuYXNweD92PTImc3A9cG9pbnQuNTIuMzczMjE3XzkuNzEwOF9HQzFaWFgyIiB0YXJnZXQ9Il9ibGFuayI+QmluZyBNYXBzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cub3BlbmN5Y2xlbWFwLm9yZy8/em9vbT0xMiZsYXQ9NTIuMzczMjE3Jmxvbj05LjcxMDgiIHRhcmdldD0iX2JsYW5rIj5PcGVuIEN5Y2xlIE1hcHM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5vcGVuc3RyZWV0bWFwLm9yZy8/bWxhdD01Mi4zNzMyMTcmbWxvbj05LjcxMDgmem9vbT0xMiIgdGFyZ2V0PSJfYmxhbmsiPk9wZW4gU3RyZWV0IE1hcHM8L2E+PC9saT4fAmdkZAJPD2QWBgIBDxYCHwEFETQwMCBMb2dnZWQgVmlzaXRzZAIHDw8WAh8EBUN+L3NlZWsvY2FjaGVfbG9nYm9vay5hc3B4P2d1aWQ9MzZkNDU4NzEtYjk5ZC00NmQ2LTk1ZmMtZmY4NmFiNTY0Yzk4ZGQCCQ8PFgQfBAU9fi9zZWVrL2dhbGxlcnkuYXNweD9ndWlkPTM2ZDQ1ODcxLWI5OWQtNDZkNi05NWZjLWZmODZhYjU2NGM5OB8BBRZWaWV3IHRoZSBJbWFnZSBHYWxsZXJ5ZGQCUA8WAh8BBQR0cnVlZAJRDxYCHwEFSWxhdD01Mi4zNzMyMTc7IGxuZz05LjcxMDg7IGd1aWQ9JzM2ZDQ1ODcxLWI5OWQtNDZkNi05NWZjLWZmODZhYjU2NGM5OCc7DQpkAiQPFgIfAmhkAiUPZBYEAgEPFgIfAQUHRW5nbGlzaGQCAw8WAh8MAg4WHGYPZBYCAgEPDxYIHg9Db21tYW5kQXJndW1lbnQFBWVuLVVTHgtDb21tYW5kTmFtZQUNU2V0VGVtcExvY2FsZR8BBQdFbmdsaXNoHhBDYXVzZXNWYWxpZGF0aW9uaGRkAgEPZBYCAgEPDxYIHw8FBWRlLURFHxAFDVNldFRlbXBMb2NhbGUfAQUHRGV1dHNjaB8RaGRkAgIPZBYCAgEPDxYIHw8FBWZyLUZSHxAFDVNldFRlbXBMb2NhbGUfAQUJRnJhbsOnYWlzHxFoZGQCAw9kFgICAQ8PFggfDwUFcHQtUFQfEAUNU2V0VGVtcExvY2FsZR8BBQpQb3J0dWd1w6pzHxFoZGQCBA9kFgICAQ8PFggfDwUFY3MtQ1ofEAUNU2V0VGVtcExvY2FsZR8BBQnEjGXFoXRpbmEfEWhkZAIFD2QWAgIBDw8WCB8PBQVzdi1TRR8QBQ1TZXRUZW1wTG9jYWxlHwEFB1N2ZW5za2EfEWhkZAIGD2QWAgIBDw8WCB8PBQVubC1OTB8QBQ1TZXRUZW1wTG9jYWxlHwEFCk5lZGVybGFuZHMfEWhkZAIHD2QWAgIBDw8WCB8PBQVjYS1FUx8QBQ1TZXRUZW1wTG9jYWxlHwEFB0NhdGFsw6AfEWhkZAIID2QWAgIBDw8WCB8PBQVwbC1QTB8QBQ1TZXRUZW1wTG9jYWxlHwEFBlBvbHNraR8RaGRkAgkPZBYCAgEPDxYIHw8FBWV0LUVFHxAFDVNldFRlbXBMb2NhbGUfAQUFRWVzdGkfEWhkZAIKD2QWAgIBDw8WCB8PBQVuYi1OTx8QBQ1TZXRUZW1wTG9jYWxlHwEFDk5vcnNrLCBCb2ttw6VsHxFoZGQCCw9kFgICAQ8PFggfDwUFa28tS1IfEAUNU2V0VGVtcExvY2FsZR8BBQntlZzqta3slrQfEWhkZAIMD2QWAgIBDw8WCB8PBQVlcy1FUx8QBQ1TZXRUZW1wTG9jYWxlHwEFCEVzcGHDsW9sHxFoZGQCDQ9kFgICAQ8PFggfDwUFaHUtSFUfEAUNU2V0VGVtcExvY2FsZR8BBQZNYWd5YXIfEWhkZAIyDxYCHwJnZAJGDxYCHwJnZAIDDxYCHwEFJ1NlcnZlcjogV0VCMDQ7IEJ1aWxkOiBIb3RGaXhfMjAxMTEwMDYuMWRkqTUuMXPfLFO6IuxI0/T/Sf2VyWc=" />
+<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTkwOTY3OTc3OQ8WAh4EQy5JRCgpWVN5c3RlbS5JbnQ2NCwgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BzE0MzM5MDkWAmYPZBYGZg9kFgYCCg8WAh4EVGV4dAViPG1ldGEgbmFtZT0iQ29weXJpZ2h0IiBjb250ZW50PSJDb3B5cmlnaHQgKGMpIDIwMDAtMjAxMSBHcm91bmRzcGVhaywgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLiIgLz5kAgsPFgIfAQVHPCEtLSBDb3B5cmlnaHQgKGMpIDIwMDAtMjAxMSBHcm91bmRzcGVhaywgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAtLT5kAicPFgIeB1Zpc2libGVoZAIBD2QWEgIFDxYCHwFkZAIIDxYCHwJnFgoCAQ8PFgIeCEltYWdlVXJsBU5odHRwOi8vaW1nLmdlb2NhY2hpbmcuY29tL3VzZXIvYXZhdGFyLzUwZjgzMTIzLTI3ZDgtNGRjZi05ZmRlLTJhZjAwNmVmYWYyYi5qcGdkZAIDDxYCHwEFaEhlbGxvLCA8YSBocmVmPSIvbXkvZGVmYXVsdC5hc3B4IiB0aXRsZT0iVmlldyBQcm9maWxlIGZvciBibGFmb28iIGNsYXNzPSJTaWduZWRJblByb2ZpbGVMaW5rIj5ibGFmb288L2E+ZAIFDw8WAh4LTmF2aWdhdGVVcmwFrQFodHRwczovL3d3dy5nZW9jYWNoaW5nLmNvbS9sb2dpbi9kZWZhdWx0LmFzcHg/UkVTRVQ9WSZyZWRpcj1odHRwJTNhJTJmJTJmd3d3Lmdlb2NhY2hpbmcuY29tJTJmc2VlayUyZmNhY2hlX2RldGFpbHMuYXNweCUzZmxvZyUzZHklMjZ3cCUzZEdDMVpYWDIlMjZudW1sb2dzJTNkMzUlMjZkZWNyeXB0JTNkeWRkAgcPFgIfAQWtATxpbWcgc3JjPSIvaW1hZ2VzL2ljb25zL2ljb25fc21pbGUucG5nIiB0aXRsZT0iQ2FjaGVzIEZvdW5kIiAvPiA0MzYmbmJzcDsmbWlkZG90OyZuYnNwOzxpbWcgc3JjPSIvaW1hZ2VzL2NoYWxsZW5nZXMvdHlwZXMvc20vY2hhbGxlbmdlLnBuZyIgdGl0bGU9IkNoYWxsZW5nZXMgQ29tcGxldGVkIiAvPiAyZAILDxYCHwJnFgJmDw8WAh8CaGRkAg8PFgIfAmcWAgINDw8WAh8EBUB+L3RyYWNrL3NlYXJjaC5hc3B4P289MSZ1aWQ9MDU2NGE5NDAtODMxMS00MGVlLThlNzYtN2U5MWIyY2Y2Mjg0ZGQCIQ8WAh8CZ2QCIw8WAh4FY2xhc3MFDHNwYW4tMjQgbGFzdBYCAgEPZBZOAgEPFgIfAQW9ATxhIGhyZWY9Ii9hYm91dC9jYWNoZV90eXBlcy5hc3B4IiB0YXJnZXQ9Il9ibGFuayIgdGl0bGU9IkFib3V0IENhY2hlIFR5cGVzIj48aW1nIHNyYz0iL2ltYWdlcy9XcHRUeXBlcy8yLmdpZiIgYWx0PSJUcmFkaXRpb25hbCBDYWNoZSIgdGl0bGU9IlRyYWRpdGlvbmFsIENhY2hlIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIC8+PC9hPmQCBA8WAh8BBQFBZAIGDxYCHwJnZAIJDxYCHwJoZAIQD2QWBAIBDxYCHwEFAjQ5ZAIDDw8WAh8EBUQvc2Vlay9jYWNoZV9mYXZvcml0ZWQuYXNweD9ndWlkPTM2ZDQ1ODcxLWI5OWQtNDZkNi05NWZjLWZmODZhYjU2NGM5OGRkAhEPDxYCHwJoZGQCEw8WBB8BBb4BPHAgY2xhc3M9Ik9sZFdhcm5pbmcgTm9Cb3R0b21TcGFjaW5nIj48c3Ryb25nPkNhY2hlIElzc3Vlczo8L3N0cm9uZz48L3A+PHVsIGNsYXNzPSJPbGRXYXJuaW5nIj48bGk+VGhpcyBjYWNoZSBoYXMgYmVlbiBhcmNoaXZlZCwgYnV0IGlzIGF2YWlsYWJsZSBmb3Igdmlld2luZyBmb3IgYXJjaGl2YWwgcHVycG9zZXMuPC9saT48L3VsPh8CZ2QCFA8WAh8CaGQCFQ8WAh8CaGQCGA8WAh4Fc3R5bGUFD2Rpc3BsYXk6aW5saW5lOxYCAgEPFgIfAQUbVVRNOiAzMlUgRSA1NDgzODkgTiA1ODAyNzg3ZAIbDw8WAh8EBTNjZHBmLmFzcHg/Z3VpZD0zNmQ0NTg3MS1iOTlkLTQ2ZDYtOTVmYy1mZjg2YWI1NjRjOThkZAIcDw8WAh8EBThjZHBmLmFzcHg/Z3VpZD0zNmQ0NTg3MS1iOTlkLTQ2ZDYtOTVmYy1mZjg2YWI1NjRjOTgmbGM9NWRkAh0PDxYCHwQFOWNkcGYuYXNweD9ndWlkPTM2ZDQ1ODcxLWI5OWQtNDZkNi05NWZjLWZmODZhYjU2NGM5OCZsYz0xMGRkAh4PDxYEHwQFggFodHRwOi8vbWFwcy5nb29nbGUuY29tL21hcHM/Zj1kJmhsPWVuJnNhZGRyPTUyLjQxNjIsOS41OTQxMTcgKEhvbWUgTG9jYXRpb24pJmRhZGRyPTUyLjM3MzIxNyw5LjcxMDgoSGFubm9wb2x5JTNhK0Vpc2xpc2Vuc3RyYXNzZSspHgZUYXJnZXQFBl9ibGFua2RkAiIPZBYIAgEPDxYEHglGb3JlQ29sb3IMHgRfIVNCAgRkZAIDDw8WBB8IDB8JAgRkZAIFDw8WAh8CZxYCHgdvbmNsaWNrBTtzMmdwcygnMzZkNDU4NzEtYjk5ZC00NmQ2LTk1ZmMtZmY4NmFiNTY0Yzk4Jyk7cmV0dXJuIGZhbHNlO2QCBw8PFgIfAmcWAh8KBSBzMnBob25lKCdHQzFaWFgyJyk7cmV0dXJuIGZhbHNlO2QCJA8WAh8CZxYCAgMPFgIfAQUPVGVzdCBmw7xyIGM6Z2VvZAInD2QWCGYPFgIfAmhkAgEPDxYCHwJoZGQCAg8PFgIfAmhkZAIDDxYCHwJoZAIpDw8WAh8BBRNObyBoaW50cyBhdmFpbGFibGUuFgIfCgUNcmV0dXJuIGZhbHNlO2QCKg8WAh8CaGQCLA9kFgJmD2QWAgIBDw8WAh8BBQdHQzFaWFgyZGQCLg8WAh8CaGQCMA8WAh8CZ2QCMQ8WAh8CaGQCNQ9kFgICAQ9kFgQCAQ8PFgIfAQX/AzxpZnJhbWUgdHlwZT0iaWZyYW1lIiBzcmM9Imh0dHA6Ly9hZHMuZ3JvdW5kc3BlYWsuY29tL2EuYXNweD9ab25lSUQ9OSZUYXNrPUdldCZTaXRlSUQ9MSZYPSdmYmEwMGRjMmVhYzQ0N2JiODVhZmJkZjI1YWE1MjMyNCciIHdpZHRoPSIxMjAiIGhlaWdodD0iMjQwIiBNYXJnaW53aWR0aD0iMCIgTWFyZ2luaGVpZ2h0PSIwIiBIc3BhY2U9IjAiIFZzcGFjZT0iMCIgRnJhbWVib3JkZXI9IjAiIFNjcm9sbGluZz0ibm8iIHN0eWxlPSJ3aWR0aDoxMjBweDtIZWlnaHQ6MjQwcHg7Ij48YSBocmVmPSJodHRwOi8vYWRzLmdyb3VuZHNwZWFrLmNvbS9hLmFzcHg/Wm9uZUlEPTkmVGFzaz1DbGljayY7TW9kZT1IVE1MJlNpdGVJRD0xIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9Imh0dHA6Ly9hZHMuZ3JvdW5kc3BlYWsuY29tL2EuYXNweD9ab25lSUQ9OSZUYXNrPUdldCZNb2RlPUhUTUwmU2l0ZUlEPTEiIHdpZHRoPSIxMjAiIGhlaWdodD0iMjQwIiBib3JkZXI9IjAiIGFsdD0iIiAvPjwvYT48L2lmcmFtZT5kZAIDDxYCHglpbm5lcmh0bWwFE0FkdmVydGlzaW5nIHdpdGggVXNkAjkPZBYEAgMPDxYCHwJnZGQCBQ8PFgIfBAU8fi90cmFjay9zZWFyY2guYXNweD93aWQ9MzZkNDU4NzEtYjk5ZC00NmQ2LTk1ZmMtZmY4NmFiNTY0Yzk4ZGQCOg8PFgIfAmdkFgJmDxYCHgtfIUl0ZW1Db3VudAIDFgYCAQ9kFgRmDxUDAFdodHRwOi8vd3d3Lmdlb2NhY2hpbmcuY29tL2Jvb2ttYXJrcy92aWV3LmFzcHg/Z3VpZD00MWNkNTZiNi0wMGYxLTQ3MDItYjg2Ni0xYTI2OGM2NDlkMTMVQWxsZSBIYW5ub3BvbHkgQ2FjaGVzZAICDxUCTGh0dHA6Ly93d3cuZ2VvY2FjaGluZy5jb20vcHJvZmlsZS8/Z3VpZD1kZjIxODRhYi1hOWVhLTRkMzAtOThlZC1lYzRlODUxYzM3MDYKR3VtbWlzZWVsZWQCAg9kFgRmDxUDDkFsdGVybmF0aW5nUm93V2h0dHA6Ly93d3cuZ2VvY2FjaGluZy5jb20vYm9va21hcmtzL3ZpZXcuYXNweD9ndWlkPTBkY2YzZjg2LTkzNzItNDk5Yy04YjU3LWVkNDE5YmQ0OGUyMRBNZWluZSBFbXBmZWhsdW5nZAICDxUCTGh0dHA6Ly93d3cuZ2VvY2FjaGluZy5jb20vcHJvZmlsZS8/Z3VpZD1jNDY1NDFmYy02YWU5LTQ0NTItODgzMy00NzBkZGZiZTljZWUGc2tyZWxsZAIDD2QWBGYPFQMAV2h0dHA6Ly93d3cuZ2VvY2FjaGluZy5jb20vYm9va21hcmtzL3ZpZXcuYXNweD9ndWlkPTlhMjQ4ZGI5LTMwNjMtNDQ1Ny05MjA1LTg1MWZiZTA2YTAzZQlIYW5ub3BvbHlkAgIPFQJMaHR0cDovL3d3dy5nZW9jYWNoaW5nLmNvbS9wcm9maWxlLz9ndWlkPTVjNGIwOTE1LTVjZWMtNGZhMS04YWZkLTRiM2NhNjdlMDA0ZQdrYWkyNzA3ZAI8Dw8WAh8CaGRkAj0PZBYCAgEPDxYCHwQFRS9oaWRl" />
+<input type="hidden" name="__VIEWSTATE1" id="__VIEWSTATE1" value="L3dwdGxpc3QuYXNweD9SZWZXcHRJRD0zNmQ0NTg3MS1iOTlkLTQ2ZDYtOTVmYy1mZjg2YWI1NjRjOTgmRFM9MWRkAj8PDxYGHgZSRFMuSUQLKXZHcm91bmRzcGVhay5XZWIuR1BYLldwdERhdGFTb3VyY2VzLCBUdWNzb24uQ29tbW9uLkxlZ2FjeSwgVmVyc2lvbj0zLjAuNDI5Ni4xNjY1NiwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsAR4HUldQVC5JRCgrBAcxNDMzOTA5HwJoZGQCQA8PFgIfAmdkFgICAQ8PFgQfBAUvL21hcC9iZXRhL2RlZmF1bHQuYXNweD9sYXQ9NTIuMzczMjE3JmxuZz05LjcxMDgfAmdkZAJEDw8WAh8EBR4vc2Vlay9uZWFyZXN0LmFzcHg/dT1kYW5pZWwzNTRkZAJGDw8WAh8EBR8vc2Vlay9uZWFyZXN0LmFzcHg/dWw9ZGFuaWVsMzU0ZGQCSA9kFgoCAw8PFgIfBAVVL3NlZWsvbmVhcmVzdC5hc3B4P3R4PTMyYmM5MzMzLTVlNTItNDk1Ny1iMGY2LTVhMmM4ZmM3YjI1NyZsYXQ9NTIuMzczMjE3JmxuZz05LjcxMDgwMGRkAgUPDxYCHwQFWS9zZWVrL25lYXJlc3QuYXNweD90eD0zMmJjOTMzMy01ZTUyLTQ5NTctYjBmNi01YTJjOGZjN2IyNTcmbGF0PTUyLjM3MzIxNyZsbmc9OS43MTA4MDAmZj0xZGQCCQ8PFgIfBAUtL3NlZWsvbmVhcmVzdC5hc3B4P2xhdD01Mi4zNzMyMTcmbG5nPTkuNzEwODAwZGQCCw8PFgIfBAUxL3NlZWsvbmVhcmVzdC5hc3B4P2xhdD01Mi4zNzMyMTcmbG5nPTkuNzEwODAwJmY9MWRkAg8PDxYCHwQFR2h0dHA6Ly93d3cud2F5bWFya2luZy5jb20vZGlyZWN0b3J5LmFzcHg/Zj0xJmxhdD01Mi4zNzMyMTcmbG9uPTkuNzEwODAwZGQCSQ8WAh8CaGQCSw8PFgIfBAUlL3Jldmlld3MvaG90ZWxzLWNvb3Jkcy01Mi4zNzMyLDkuNzEwOGRkAk0PZBYCAgEPDxYEHwEFlQc8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5nZW9jYWNoaW5nLmNvbS9tYXAvYmV0YS9kZWZhdWx0LmFzcHg/bGF0PTUyLjM3MzIxNyZsbmc9OS43MTA4IiB0YXJnZXQ9Il9ibGFuayI+R2VvY2FjaGluZy5jb20gR29vZ2xlIE1hcDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbWFwcy5nb29nbGUuY29tL21hcHM/cT1OKzUyJWMyJWIwKzIyLjM5MytFKzAwOSVjMiViMCs0Mi42NDgrKEdDMVpYWDIpKyIgdGFyZ2V0PSJfYmxhbmsiPkdvb2dsZSBNYXBzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cubWFwcXVlc3QuY29tL21hcHMvbWFwLmFkcD9zZWFyY2h0eXBlPWFkZHJlc3MmZm9ybXR5cGU9bGF0bG9uZyZsYXRsb25ndHlwZT1kZWNpbWFsJmxhdGl0dWRlPTUyLjM3MzIxNyZsb25naXR1ZGU9OS43MTA4Jnpvb209MTAiIHRhcmdldD0iX2JsYW5rIj5NYXBRdWVzdDwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vbWFwcy55YWhvby5jb20vbWFwc19yZXN1bHQ/bGF0PTUyLjM3MzIxNyZsb249OS43MTA4IiB0YXJnZXQ9Il9ibGFuayI+WWFob28gTWFwczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmJpbmcuY29tL21hcHMvZGVmYXVsdC5hc3B4P3Y9MiZzcD1wb2ludC41Mi4zNzMyMTdfOS43MTA4X0dDMVpYWDIiIHRhcmdldD0iX2JsYW5rIj5CaW5nIE1hcHM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5vcGVuY3ljbGVtYXAub3JnLz96b29tPTEyJmxhdD01Mi4zNzMyMTcmbG9uPTkuNzEwOCIgdGFyZ2V0PSJfYmxhbmsiPk9wZW4gQ3ljbGUgTWFwczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnLz9tbGF0PTUyLjM3MzIxNyZtbG9uPTkuNzEwOCZ6b29tPTEyIiB0YXJnZXQ9Il9ibGFuayI+T3BlbiBTdHJlZXQgTWFwczwvYT48L2xpPh8CZ2RkAk8PZBYGAgEPFgIfAQURNDAwIExvZ2dlZCBWaXNpdHNkAgcPDxYCHwQFQ34vc2Vlay9jYWNoZV9sb2dib29rLmFzcHg/Z3VpZD0zNmQ0NTg3MS1iOTlkLTQ2ZDYtOTVmYy1mZjg2YWI1NjRjOThkZAIJDw8WBB8EBT1+L3NlZWsvZ2FsbGVyeS5hc3B4P2d1aWQ9MzZkNDU4NzEtYjk5ZC00NmQ2LTk1ZmMtZmY4NmFiNTY0Yzk4HwEFFlZpZXcgdGhlIEltYWdlIEdhbGxlcnlkZAJQDxYCHwEFBHRydWVkAlEPFgIfAQVJbGF0PTUyLjM3MzIxNzsgbG5nPTkuNzEwODsgZ3VpZD0nMzZkNDU4NzEtYjk5ZC00NmQ2LTk1ZmMtZmY4NmFiNTY0Yzk4JzsNCmQCJA8WAh8CaGQCJQ9kFgQCAQ8WAh8BBQdFbmdsaXNoZAIDDxYCHwwCDhYcZg9kFgICAQ8PFggeD0NvbW1hbmRBcmd1bWVudAUFZW4tVVMeC0NvbW1hbmROYW1lBQ1TZXRUZW1wTG9jYWxlHwEFB0VuZ2xpc2geEENhdXNlc1ZhbGlkYXRpb25oZGQCAQ9kFgICAQ8PFggfDwUFZGUtREUfEAUNU2V0VGVtcExvY2FsZR8BBQdEZXV0c2NoHxFoZGQCAg9kFgICAQ8PFggfDwUFZnItRlIfEAUNU2V0VGVtcExvY2FsZR8BBQlGcmFuw6dhaXMfEWhkZAIDD2QWAgIBDw8WCB8PBQVwdC1QVB8QBQ1TZXRUZW1wTG9jYWxlHwEFClBvcnR1Z3XDqnMfEWhkZAIED2QWAgIBDw8WCB8PBQVjcy1DWh8QBQ1TZXRUZW1wTG9jYWxlHwEFCcSMZcWhdGluYR8RaGRkAgUPZBYCAgEPDxYIHw8FBXN2LVNFHxAFDVNldFRlbXBMb2NhbGUfAQUHU3ZlbnNrYR8RaGRkAgYPZBYCAgEPDxYIHw8FBW5sLU5MHxAFDVNldFRlbXBMb2NhbGUfAQUKTmVkZXJsYW5kcx8RaGRkAgcPZBYCAgEPDxYIHw8FBWNhLUVTHxAFDVNldFRlbXBMb2NhbGUfAQUHQ2F0YWzDoB8RaGRkAggPZBYCAgEPDxYIHw8FBXBsLVBMHxAFDVNldFRlbXBMb2NhbGUfAQUGUG9sc2tpHxFoZGQCCQ9kFgICAQ8PFggfDwUFZXQtRUUfEAUNU2V0VGVtcExvY2FsZR8BBQVFZXN0aR8RaGRkAgoPZBYCAgEPDxYIHw8FBW5iLU5PHxAFDVNldFRlbXBMb2NhbGUfAQUOTm9yc2ssIEJva23DpWwfEWhkZAILD2QWAgIBDw8WCB8PBQVrby1LUh8QBQ1TZXRUZW1wTG9jYWxlHwEFCe2VnOq1reyWtB8RaGRkAgwPZBYCAgEPDxYIHw8FBWVzLUVTHxAFDVNldFRlbXBMb2NhbGUfAQUIRXNwYcOxb2wfEWhkZAIND2QWAgIBDw8WCB8PBQVodS1IVR8QBQ1TZXRUZW1wTG9jYWxlHwEFBk1hZ3lhch8RaGRkAjIPFgIfAmdkAkYPFgIfAmdkAgMPFgIfAQUnU2VydmVyOiBXRUIwMTsgQnVpbGQ6IEhvdEZpeF8yMDExMTAwNi4xZGS8vGf67BYjISKMNpEyZvACcYkCcw==" />
</div>
<script type="text/javascript">
@@ -250,13 +250,13 @@ function __doPostBack(eventTarget, eventArgument) {
</script>
-<script src="/WebResource.axd?d=Dh2VENdI9XyWNN0f7DnYfR8WWRCRIzdVqal2y0yjiQ5nC_eHhLchYgnQDHIk0d3RCcSUMVZ36ciRD0qmhXKmeu3S_RE1&amp;t=634449413070371108" type="text/javascript"></script>
+<script src="/WebResource.axd?d=Dh2VENdI9XyWNN0f7DnYfR8WWRCRIzdVqal2y0yjiQ5nC_eHhLchYgnQDHIk0d3RCcSUMVZ36ciRD0qmhXKmeu3S_RE1&amp;t=634494454566271406" type="text/javascript"></script>
-<script src="/ScriptResource.axd?d=I9_m2Hb1Tv_B0qTMDG8bMbnkNSHUkv5oUaG9-V5NZ8qQ2VFlu60I8y8gfr3vPmZjbiPnu43MOQdFVDeYF-nDAEKBLmyxD3DCTGmes9NNbbvaDEHyEuuRWgccIkK3ik5TI48YGDxjHjqdn-gTK4Fkgd17LGw1&amp;t=2610f696" type="text/javascript"></script>
-<script src="/ScriptResource.axd?d=8vNbe34dAujgZMPnfnacfjeoweX1vHgyns8KlAV4vpGpsZC9Cf3pro__lv8ekBa0NiCgXGMMolzOUNH__lrnEI_qjlNBIAuuLeemtAXV_i6E0QIMZa8nGSYmWGF5nQOJK3rmZzvTxsr2Mh4Ebdba_1ywGLUSH_U_XIe-jzecfRQwwvjZ0&amp;t=2610f696" type="text/javascript"></script>
-<script src="/ScriptResource.axd?d=JlQ2X--Cda5u33JvTvtwpF0LZFgujE2J1GthllYj-6vyRzmjbK_eP8Ut5wGtlSjXaeogdShDD_3lE98KmzoxA-PEc9PZsICD10NcTXvSgngQ87Xs7RK0co2aNdGa80lw0nsi-ZR70hJnnPDgaFc3gGCFDQ4P_4fzAFCAiYULvANNcPhDkpH30HqvemBdFcZ35UblkbJvw07oXZSyjmuRqaOrWQE1" type="text/javascript"></script>
-<script src="/ScriptResource.axd?d=5pBGeyOMm-H-Q_tQn5kAB9_wbzw9nmWlWcdJWrDjIzq5uX-N-iif48-lKB5fSHL3HEQEFSCAyGgrALHKPIvwnWpnwo3LOwQDplF1r5B3BZQTFWvOxngikUXTklc__ypHBwqa6HpC2rF5DvTNnt5RBxybiSKTESLLCTA1lqMToYgk806G9H9ojzlEfF7atFbkbI86wA-U_yTxObV_odm07mAJdQqzvIk3yxBVvVZhAplY2FFtFTwa7dSsfiHkd50_1NSxjzyVzVlqexFnmv99oJDZzoSkx_2zZ4TRH67f6jk1RBAbMBRzbsG4JuU8He1auzbkv1FEZ69uO_EsrCLxOW_I1dzcKZoLrb6j4sqc2Z1P6BUUI1haZzRd6sGoqeVQ2wBdjtlieg_pr8Wb-0MXBxYECjvgt1h7axROM2x-YTIFQcNWJodAN35uvFK0d1VGLTlI63vUED4hBiDuYRUGrPvSh8t33s_O3FuGK090ytVU7jQt_U-XQxxNyfDcwb1mESY4JeKm8uKrj1FKabxpOSBfB7-bWPUv0EsM5zHis6RaVUu-ASv39OKWca2JdX1n_RXjaYRDycl5o3lOL7G39yRoXuVXwV6Mias1KWoeHvWYaf-2Ighb1T2QtkrXjiT8XCWjGo6KxMdoro0rfuEHfHsoKY-qa8ljBvgAML-pQ52RXaVQiCEper7PR07plx2rv2XT8j0a_vPn-fO76jv9rUxCb_oDh7Mu2V2-rDaVILPoxHYh0" type="text/javascript"></script>
+<script src="/ScriptResource.axd?d=I9_m2Hb1Tv_B0qTMDG8bMbnkNSHUkv5oUaG9-V5NZ8qQ2VFlu60I8y8gfr3vPmZjbiPnu43MOQdFVDeYF-nDAEKBLmyxD3DCTGmes9NNbbvaDEHyEuuRWgccIkK3ik5TI48YGDxjHjqdn-gTK4Fkgd17LGw1&amp;t=4edbeeee" type="text/javascript"></script>
+<script src="/ScriptResource.axd?d=8vNbe34dAujgZMPnfnacfjeoweX1vHgyns8KlAV4vpGpsZC9Cf3pro__lv8ekBa0NiCgXGMMolzOUNH__lrnEI_qjlNBIAuuLeemtAXV_i6E0QIMZa8nGSYmWGF5nQOJK3rmZzvTxsr2Mh4Ebdba_1ywGLUSH_U_XIe-jzecfRQwwvjZ0&amp;t=4edbeeee" type="text/javascript"></script>
+<script src="/ScriptResource.axd?d=l19tlcz_CEv6wXSQFwCgQu7eo10zC5Ar2BxuPY9b69Q5AozcU5MpmMBaAJRKf1FPBsGoxG_ePHf11O-70iwXkxbbMsCPdeYxN_FXkjEMWSlxd2sOxtAon2zd1zlz8U_a8_ICoQ9In5_ZbnIEFGRjz-rv1FnlCaSUn5fn25Z4ZnaL22ILnhCK0Q1o6d5kdsQcxCI9GWkbvxmXh84JetN4cidbyjU1" type="text/javascript"></script>
+<script src="/ScriptResource.axd?d=oSEt07o61ij2nmCxYFz8mJ6oDRMcM894y3JZS02SlRn5OYC76WCCSgDsC7I7PSPomGvLxsAXNRoavFWK5V6nSdJglesZ3B6-OhXIxiEY8HknVB15hlmh8jaXhzpJy4AbJGOhdAe3GKcRkDihlID00lHTHr-KPfllmFEkZsxbul5cxAai9kaxPLIzV8ZeNqOVNlHUTA0UddvSH69ha1_I1atG5h-cUwVW8tN2TzcfJ6qv7-ioKlLLVBYLrdDJKGaKBUu43RNbLojTPsxuBHE3MewZFOO4rllM1oVb2RylfjnZa6wVphQu5Pc_HGvZigzJ__4wyP_4w0IIL1nAeqKUkOX2DqbKnlOYcYfdUvuFvnXiaYi2KRKtQRfX9RduEIpQjred7zaJjjbGar4sfalMAngP5rUEPP8De1kf3LX72Kq8AW6EwMaWn1P-yJOje3DXcJtB-63gMnyi-jQXF8Kmj9umrlQuRVXown6lwdam2-USCoK0eJsTrwVQGDg00SkeJmobzp93nNB3YySbXOSwPmbslqLyMMX6x6OWts28n9lAdIf2pbhWCFXw_8yMSeV1GHNK26MXsGAX6UMPYhVKSTsxGx38Kx1fXoZrQs6UT4I6iD191zCMgZZFcDGP3t-Za99UtVMVRKjNpgiQv0UV6USxNnN3pF2MTPczW7wFuRhgVEoOUMfm-6MEXW7YXuu9Vd_Wx5opoxWNK5vDan_HkPYHKVcm-rGyERloeUZgmYJ4j3fb0" type="text/javascript"></script>
<script src="js/cachedetails.js" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
@@ -545,7 +545,7 @@ Sys.WebForms.PageRequestManager._initialize('ctl00$uxMainScriptManager', 'aspnet
</legend>
<img src="/images/silk/help.png" id="pcn_help" class="CacheNoteHelpImg" />
<p id="cache_note" class="NoBottomSpacing">
- </p>
+ Test für c:geo</p>
</fieldset>
<div class="UserSuppliedContent">
@@ -778,7 +778,7 @@ border="0" /></a><br /></td>
<div id="ctl00_ContentBody_divContentSide">
<p class="NoBottomSpacing">
- <span id="ctl00_ContentBody_ADModules_09"><iframe type="iframe" src="http://ads.groundspeak.com/a.aspx?ZoneID=9&Task=Get&SiteID=1&X='b22fb5aca3d34390a54b411fcd5fb94e'" width="120" height="240" Marginwidth="0" Marginheight="0" Hspace="0" Vspace="0" Frameborder="0" Scrolling="no" style="width:120px;Height:240px;"><a href="http://ads.groundspeak.com/a.aspx?ZoneID=9&Task=Click&;Mode=HTML&SiteID=1" target="_blank"><img src="http://ads.groundspeak.com/a.aspx?ZoneID=9&Task=Get&Mode=HTML&SiteID=1" width="120" height="240" border="0" alt="" /></a></iframe></span>
+ <span id="ctl00_ContentBody_ADModules_09"><iframe type="iframe" src="http://ads.groundspeak.com/a.aspx?ZoneID=9&Task=Get&SiteID=1&X='fba00dc2eac447bb85afbdf25aa52324'" width="120" height="240" Marginwidth="0" Marginheight="0" Hspace="0" Vspace="0" Frameborder="0" Scrolling="no" style="width:120px;Height:240px;"><a href="http://ads.groundspeak.com/a.aspx?ZoneID=9&Task=Click&;Mode=HTML&SiteID=1" target="_blank"><img src="http://ads.groundspeak.com/a.aspx?ZoneID=9&Task=Get&Mode=HTML&SiteID=1" width="120" height="240" border="0" alt="" /></a></iframe></span>
</p>
<p class="AlignCenter">
<small><a href="../about/advertising.aspx" id="ctl00_ContentBody_advertisingWithUs" title="Advertising with Us">Advertising with Us</a></small></p>
@@ -865,7 +865,7 @@ border="0" /></a><br /></td>
</ul>
<p class="NoBottomSpacing">
- <a href="/bookmarks/default.aspx?guid=36d45871-b99d-46d6-95fc-ff86ab564c98&WptTypeID=2" title="View all 9 bookmark lists...">View all 9 bookmark lists...</a>
+ <a href="/bookmarks/default.aspx?guid=36d45871-b99d-46d6-95fc-ff86ab564c98&WptTypeID=2" title="View all 8 bookmark lists...">View all 8 bookmark lists...</a>
</p>
</div>
@@ -999,7 +999,7 @@ border="0" /></a><br /></td>
</div>
<p>
<small>
- Current Time: <time datetime="2011-10-06T14:06:49Z">10/06/2011 14:06:49 Pacific Daylight Time (21:06 GMT)</time><br/>Last Updated: <time class="timeago" datetime="2011-10-06T16:05:34Z">2011-10-06T16:05:34Z</time> on 10/06/2011 09:05:34 Pacific Daylight Time (16:05 GMT) <br/>Rendered From:Unknown<br />Coordinates are in the WGS84 datum
+ Current Time: <time datetime="2011-10-09T00:55:42Z">10/09/2011 00:55:42 Pacific Daylight Time (07:55 GMT)</time><br/>Last Updated: <time class="timeago" datetime="2011-10-06T16:05:34Z">2011-10-06T16:05:34Z</time> on 10/06/2011 09:05:34 Pacific Daylight Time (16:05 GMT) <br/>Rendered From:Unknown<br />Coordinates are in the WGS84 datum
</small>
</p>
@@ -1673,11 +1673,11 @@ border="0" /></a><br /></td>
<script type="text/javascript">
//<![CDATA[
-var uvtoken = 'DbFDfIrSTaXyfNf74lbdopy%2bTw%2fC84Gn87pU%2b3r69toc4lYTKyii0cXY42BXT7amAeAEUCcV1MyzYH%2f69bWOOCcvZK5zl0rIrlT7znXqPe8xvRnjC7XBn6uMzjM84jjmYVDQHNSbV9YA5%2by1zfUeL%2fU1wjSCvcJR%2bMYM1jMejYg31oB8S9JV0y7rbnyPmX0Mjqsg7XxcO2%2bgA6EtLwyFSKBcTU0YXxWRCm3H31Y3iRnBkhnklMy2%2fas9NmynE4teZrxIhHjZJDS9D0kbE8NYe3gE%2b61ZDa9pjHCxiWzOAaD5RN99yB4RMmAP%2bITp6wHIxUzULNyQqJYc62gsUa8VHzOEE4qhw56%2bgtigwpa7z0Y4uxe8sD%2fwWrKRg7pYaRl45MOr72GQF%2faKLOF9r4kMkd%2fIERZEcNPWpW6hwS4gGZk%3d';mapLatLng = { lat:52.373217, lng:9.710800, type:2 };
+var uvtoken = 'DbFDfIrSTaXyfNf74lbdopy%2bTw%2fC84Gn87pU%2b3r69toc4lYTKyii0cXY42BXT7amAeAEUCcV1MyzYH%2f69bWOOL8vOIEfa9lzaqme9DJts83SIZKJbaoMYT8znQ8TrMb2eaKdl3ZvtaYSBC95BhOUG4HsnQcM2pNlLLWtCBtKxggr2abaXLZnU%2fxlnbDPYBq6m%2fHfn1jAFke20kae2qPkB%2f8UFnIcHapc%2feCjcnpFjw4Q38946QMuL1f9eiCJ5RHuUT7daSXEuJIoZEIiEC5GyksmBfrX7SbImNPy9fTpzaMNiKVWdbG31eRD4axMnAmckKcGk5ZqomMUHhdn0tTN648XRZQuz6Ynge1WXrBDv4eWY3n1qlCf3t4s5%2f7VzCirsYvruLYH5LvUUrgmOT2k85FQwPo3bq0Y0Aw8zENIBHI%3d';mapLatLng = { lat:52.373217, lng:9.710800, type:2 };
userInfo = {ID: 1912314};
-userToken = 'FOUTFKOKLELXOJAYT35WSZBNGADBNKFSYIMKJ2YI6247JORDCSRPR3LYUNKEOR2P6WBWUAIQTX4YPFG634JUXCINR7B5HS73NZI2CKPSFSJMPHPVXLIWRIPK2FZ7AYVHKFIPIKAG74JWT74WHJAGI3JIZA';
+userToken = 'FOUTFKOKLELXOJAYT35WSZBNGADBNKFSYIMKJ2YI6247JORDCSRPR3LYUNKEOR2P6WBWUAIQTX4YPFG634JUXCINR7B5HS73NZI2CKPSFSJMPHPVXLIZXXTFI5MXEGUASB4HHWY57TSE22MFMVVI2FDEF4';
includeAvatars = true;
-initalLogs = {"status":"success", "data": [{"LogID":190275925,"CacheID":1433909,"LogGuid":"ac874fbc-1787-4dc7-963f-c72cd2d11180","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Heute auf einem etwas anderen Wege zum Ziel gekommen, aber auch der sollte laut Aussagen von anderen sehr sch&#xF6;n gewesen sein...<br/>DFDC<br/>#721","Created":"02/10/2011","Visited":"03/10/2011","UserName":"Pimf","MembershipLevel":3,"AccountID":3188002,"AccountGuid":"f86d97b1-c6ea-4fc1-839c-35ca83f55f45","Email":"","AvatarImage":"27983572-0e97-4b12-9e89-07772f42f024.jpg","GeocacheFindCount":722,"GeocacheHideCount":0,"ChallengesCompleted":2,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":189731769,"CacheID":1433909,"LogGuid":"e674d2ed-7cac-4b49-96b1-3020e5c7f479","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Archive","LogTypeImage":"traffic_cone.gif","LogText":"Auch hier fehlt mir leider eine passende neue Idee. Wie alle archivierten Hannopolys wird auch diese Besitzrechtskarte ab sofort auf www.hannopoly.de zu finden sein. Danke f&#xFC;r die sehr sch&#xF6;nen Logs!","Created":"01/10/2011","Visited":"01/10/2011","UserName":"daniel354","MembershipLevel":3,"AccountID":1477880,"AccountGuid":"8186d342-6f46-4d9e-8ba3-2e7b51426798","Email":"","AvatarImage":"b82a4dec-bd35-4cc8-b6dc-fe8bced5cbca.jpg","GeocacheFindCount":4239,"GeocacheHideCount":40,"ChallengesCompleted":2,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":189390319,"CacheID":1433909,"LogGuid":"4510051e-2c87-4d09-b77d-d90f645bafe9","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"wahrscheinlich nicht mehr so sch&#xF6;n wie geplant, dennoch alles da, was der logger so braucht ... sogar&#xB4;n herry ;-)<br/><br/>dfdc","Created":"29/09/2011","Visited":"29/09/2011","UserName":"Sir5al","MembershipLevel":3,"AccountID":3229535,"AccountGuid":"66de7735-1888-479b-8dbd-ada710747374","Email":"","AvatarImage":"9da1d6ed-3a3f-47cb-aba3-f5550abe7d11.jpg","GeocacheFindCount":439,"GeocacheHideCount":1,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":186118551,"CacheID":1433909,"LogGuid":"acce0114-1712-4f32-b120-4b8bd4ef7200","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Leider habe ich erst gesehen das der Cache auf Eis liegt nach dem ich ihn gefunden habe.<br/><br/>Ich konnte ihn denn noch gut finden und mich im gro&#xDF;em Logbuch eintragen!<br/><br/><br/>DFDC","Created":"11/09/2011","Visited":"27/08/2011","UserName":"Smootje1","MembershipLevel":3,"AccountID":4186572,"AccountGuid":"41b96bb9-ed81-473a-9032-1096d5c94423","Email":"","AvatarImage":"6052e05a-f2ce-45f1-86c4-c56fe8da6d2b.jpg","GeocacheFindCount":1117,"GeocacheHideCount":20,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":171398380,"CacheID":1433909,"LogGuid":"845e6ead-bf44-4dd8-900e-81a78afc0887","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Write note","LogTypeImage":"icon_note.gif","LogText":"Daniel, du sprichst uns aus der Seele.. gestern Nacht dagewesen, um ihn ENDLICH zu heben, aber ohne Erfolg.. SCHNIEF","Created":"08/07/2011","Visited":"08/07/2011","UserName":"Steinbreit","MembershipLevel":3,"AccountID":4430835,"AccountGuid":"86281f53-49a2-4051-bc15-394d43724d65","Email":"","AvatarImage":"90f468a9-7059-43a7-a3c5-256879458a63.jpg","GeocacheFindCount":227,"GeocacheHideCount":1,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":171063566,"CacheID":1433909,"LogGuid":"fc463b7b-ce41-4d16-a7a4-2107b8454a91","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Temporarily Disable Listing","LogTypeImage":"icon_disabled.gif","LogText":"Mist...","Created":"06/07/2011","Visited":"06/07/2011","UserName":"daniel354","MembershipLevel":3,"AccountID":1477880,"AccountGuid":"8186d342-6f46-4d9e-8ba3-2e7b51426798","Email":"","AvatarImage":"b82a4dec-bd35-4cc8-b6dc-fe8bced5cbca.jpg","GeocacheFindCount":4239,"GeocacheHideCount":40,"ChallengesCompleted":2,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":170116614,"CacheID":1433909,"LogGuid":"09c89c9c-ec9f-4387-a6ae-05fe6d11d9bf","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Ging schneller als gedacht. :-)<br/><br/>TFTC","Created":"02/07/2011","Visited":"01/07/2011","UserName":"urbannature","MembershipLevel":1,"AccountID":2510965,"AccountGuid":"1f223c0d-d9ee-44c4-b411-35eee724b868","Email":"","AvatarImage":"476ea58f-a917-46c4-8e5a-b99484b514f6.jpg","GeocacheFindCount":1381,"GeocacheHideCount":8,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Member","GroupImageUrl":"/images/icons/reg_user.gif"},"Images":[]},{"LogID":168683009,"CacheID":1433909,"LogGuid":"53e3436d-3bbc-4b46-aa34-ca28bbd0723a","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Erster Hanopoly-Cach! Nach langem suchen und richtig lesen gefunden! ;)","Created":"24/06/2011","Visited":"24/06/2011","UserName":"anady","MembershipLevel":3,"AccountID":3551788,"AccountGuid":"c6d0f76b-df41-44d0-9d1f-e60b0ffa4f0a","Email":"","AvatarImage":"","GeocacheFindCount":79,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":168640932,"CacheID":1433909,"LogGuid":"fc364b9d-8ddb-4d0e-aa42-09b4dce93c94","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Zusammen mit anady hier gewesen und die bald Karte gefunden. Doch irgendwie war kein Logbuch auffindbar. W&#xE4;hrend wir noch etwas hin und her hantierten wurde es uns &#xFC;berraschend &#xFC;bergeben. Ob das so sein soll?<br/><br/>Die Idee aber ist prima.<br/><br/>TFTC! :-)","Created":"24/06/2011","Visited":"24/06/2011","UserName":"CriDi","MembershipLevel":3,"AccountID":3383487,"AccountGuid":"78aeaa8b-044d-40ac-8a80-656a1c7f85c1","Email":"","AvatarImage":"","GeocacheFindCount":557,"GeocacheHideCount":10,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":167383966,"CacheID":1433909,"LogGuid":"6a4c21a6-c795-4d8e-8f0c-a4d7a357f837","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Interessantes Geschehen am Sonnabendvormittag; die M&#xFC;llabfuhr kommt, die Post bringt Neuigkeiten ins Haus, Nachbarn treffen sich auf der Stra&#xDF;e und kl&#xF6;nen eine Runde, ein Auto aus SFA blockiert die Kreuzung, ein Radfahrer entsorgt den M&#xFC;ll aus dem Fahrradkorb direkt am Baum und unser Team vergisst fast die Suche ...<br/><br/>DfdC!","Created":"18/06/2011","Visited":"18/06/2011","UserName":"2bupa","MembershipLevel":3,"AccountID":2675170,"AccountGuid":"e6a84779-ad63-4ba1-93fa-558a7190c8b4","Email":"","AvatarImage":"e30c21ec-8bce-4b90-9c6f-ee7e618da9fe.jpg","GeocacheFindCount":2543,"GeocacheHideCount":8,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":167163052,"CacheID":1433909,"LogGuid":"2d51d81f-1581-4ae6-9254-0a5ffa163585","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"War schon &#xF6;fters hier, aber die Muggels sa&#xDF;en da nur so rum. Heute fr&#xFC;h aufgestanden....<br/><br/>DFDC gr&#xFC;&#xDF;e Putze","Created":"16/06/2011","Visited":"15/06/2011","UserName":"Weltallputze","MembershipLevel":3,"AccountID":4512106,"AccountGuid":"07449e94-85c8-4d2f-b387-cb0910b2d854","Email":"","AvatarImage":"0b9746f6-1fd4-47b9-8f07-5b2bb3b21cc0.jpg","GeocacheFindCount":215,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":166633564,"CacheID":1433909,"LogGuid":"f6c8b6f6-527b-4ea0-ba85-8637cf47bd73","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Voll geil. Juhu und danke","Created":"13/06/2011","Visited":"13/06/2011","UserName":"Lumisch","MembershipLevel":1,"AccountID":4464524,"AccountGuid":"fcc7da31-928a-418f-ae3e-9f015b41ead6","Email":"","AvatarImage":"","GeocacheFindCount":45,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Member","GroupImageUrl":"/images/icons/reg_user.gif"},"Images":[]},{"LogID":165707570,"CacheID":1433909,"LogGuid":"1adb0f76-9bfa-47a4-a7f2-4b3aab0ffcfb","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"lecker eis :)","Created":"09/06/2011","Visited":"09/06/2011","UserName":"Nico Rohrssen","MembershipLevel":1,"AccountID":4523346,"AccountGuid":"3c66a437-1bbc-4cb1-bda0-8f609ac6efef","Email":"","AvatarImage":"","GeocacheFindCount":26,"GeocacheHideCount":2,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Member","GroupImageUrl":"/images/icons/reg_user.gif"},"Images":[]},{"LogID":164530395,"CacheID":1433909,"LogGuid":"477f0186-9c2a-40f9-8696-98afb9868205","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Nach langer sorgf&#xE4;ltiger Vorplanung (an welchem Tag lohnt sich das fr&#xFC;he Aufstehen?) bei Sonnenaufgang angeschlichen und... gefunden! Gotcha! DfdC!","Created":"03/06/2011","Visited":"03/06/2011","UserName":"Deistermonster","MembershipLevel":3,"AccountID":4165483,"AccountGuid":"116149cb-3e0f-4c50-b51e-95b756d64da4","Email":"","AvatarImage":"54fe057c-f79a-4d82-b587-53c5b2b9386f.jpg","GeocacheFindCount":661,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":164413372,"CacheID":1433909,"LogGuid":"e2c9bdad-9282-49f2-aba4-7e2ac058afa5","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Morgens um 6 Uhr muggelfrei geloggt.<img src=\"/images/icons/icon_smile_big.gif\" border=\"0\" align=\"middle\" ></img>Endlich! Der war schon ewig geplant, aber um unserer Idee nachzugehen, fehlte zur \"normalen\" Tageszeit der Mut. Ist schon ein lustiges Versteck... TFTC sagt Soukousa","Created":"03/06/2011","Visited":"03/06/2011","UserName":"Soukousa","MembershipLevel":3,"AccountID":4154048,"AccountGuid":"399bef0c-1cdd-4024-a00e-3199484131af","Email":"","AvatarImage":"8480d5e4-f43e-48e5-a449-c01ce424ff05.jpg","GeocacheFindCount":661,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":163515249,"CacheID":1433909,"LogGuid":"cda47e99-cd5f-4fc1-aa40-cb3bccff4f46","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Bei einem leckerem Eis das Logbuch siegniert.<br/><br/>TFTC<br/>Don Canallie","Created":"29/05/2011","Visited":"29/05/2011","UserName":"Don Canallie","MembershipLevel":3,"AccountID":3891097,"AccountGuid":"80970931-2e97-4291-abfd-564635f5d86f","Email":"","AvatarImage":"36c0f8e8-d7b6-469e-af8d-495a39baf8b3.jpg","GeocacheFindCount":580,"GeocacheHideCount":2,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":163307833,"CacheID":1433909,"LogGuid":"caad1abc-eb5c-4b99-ae92-232057825f41","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"W&#xE4;hrend einer sch&#xF6;nen Li-Li-Ahlem Fahrrad Cachingtour gesucht und geborgen, danach wieder korrekt versteckt, damit es nicht zu einfach wird. dfdc <img src=\"/images/icons/icon_smile.gif\" border=\"0\" align=\"middle\" ></img>","Created":"29/05/2011","Visited":"28/05/2011","UserName":"rimini08","MembershipLevel":3,"AccountID":4088331,"AccountGuid":"2fe34526-d72d-478e-9b7f-9dc5c3e1d6c1","Email":"","AvatarImage":"","GeocacheFindCount":257,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":163325464,"CacheID":1433909,"LogGuid":"c3475f2f-1e55-43aa-89a8-3a1ce8ddc525","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"<i>gut gefunden, danke f&#xFC;rs verstecken!</i> <br/><br/><b> <font color='red'>TFTC<br/><br/><b> <font color='green'>...sprechenden Cachern kann geholfen werden <img src=\"/images/icons/icon_smile.gif\" border=\"0\" align=\"middle\" ></img><br/><br/><img src=\"/images/icons/icon_smile.gif\" border=\"0\" align=\"middle\" ></img> <b> <font size='3'> <font color='green'>J<font color='black'>o<font color='green'>h<font color='black'>a<font color='green'>n<font color='black'>s<font color='green'>i<font color='black'>b<font color='green'>&#xE4;<font color='black'>r <font color='orange'>2011</font> <img src=\"/images/icons/icon_smile.gif\" border=\"0\" align=\"middle\" ></img></b>","Created":"29/05/2011","Visited":"22/05/2011","UserName":"Johansibär","MembershipLevel":1,"AccountID":1858674,"AccountGuid":"05f9d911-9cdc-4224-84b3-8e4923228958","Email":"","AvatarImage":"4d235c2f-81b6-42c4-a28c-5df2182a289d.jpg","GeocacheFindCount":951,"GeocacheHideCount":16,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Member","GroupImageUrl":"/images/icons/reg_user.gif"},"Images":[]},{"LogID":162246062,"CacheID":1433909,"LogGuid":"e9eec580-6831-40ba-8530-c9722017a142","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Schon vor ein paar Tagen die Karte entdeckt aber das loggen war uns nicht so klar...nun haben wir uns heute auch im Logbuch verewigt. Nette Idee, DfdC.","Created":"22/05/2011","Visited":"22/05/2011","UserName":"Flunin","MembershipLevel":3,"AccountID":3435189,"AccountGuid":"4c851b2a-967c-427d-91eb-268b5ffb0f0a","Email":"","AvatarImage":"","GeocacheFindCount":248,"GeocacheHideCount":1,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":161705502,"CacheID":1433909,"LogGuid":"0b303d23-fb26-4b29-b5d2-2bb8828682ae","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Nach nem kleinen Tipp dann doch noch loggen k&#xF6;nnen :-)<br/>DFDC","Created":"20/05/2011","Visited":"20/05/2011","UserName":"Leafhoppers","MembershipLevel":3,"AccountID":3766111,"AccountGuid":"37bd64d5-a74f-4a12-b040-460f83652198","Email":"","AvatarImage":"","GeocacheFindCount":434,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":161990811,"CacheID":1433909,"LogGuid":"1ac63b3e-075a-48b7-9a1f-222b19c71868","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Zusammen mit i-teg um 15:25 Uhr geloggt. <br/>TFTC!<br/>#488","Created":"21/05/2011","Visited":"19/05/2011","UserName":"justify-jay","MembershipLevel":3,"AccountID":3936481,"AccountGuid":"af49ff9e-5331-4565-97e8-5f5bf45e33b2","Email":"","AvatarImage":"198d173a-7efa-416c-b495-b15ed30f94a1.jpg","GeocacheFindCount":1072,"GeocacheHideCount":2,"ChallengesCompleted":2,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":161988577,"CacheID":1433909,"LogGuid":"19a1ae8a-e3d7-492c-a866-002064968183","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Auf Spontantour zusammen mit justify-jay um 15:25 Uhr zum Logbuch durchgedrungen :-) ! <br/>TFTC!<br/>#488","Created":"21/05/2011","Visited":"19/05/2011","UserName":"i-teg","MembershipLevel":3,"AccountID":3936536,"AccountGuid":"a30caa8b-0ba4-4a20-875f-ac825eacbf41","Email":"","AvatarImage":"533a43c0-8416-452f-8011-f575dee42268.jpg","GeocacheFindCount":1072,"GeocacheHideCount":2,"ChallengesCompleted":2,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":161489085,"CacheID":1433909,"LogGuid":"0686f7dd-e12b-4b99-b7c7-24df895f48fb","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Schnell gefunden da unsere Vorlogger scheinbar den Cache nicht wieder ganz genau plaziert hatten. Weils so schnell ging ne leckeres Eis in der Sonne genossen.<br/>Ein super Cache, vielen Dank daf&#xFC;r.<br/>Kartoffelhunter","Created":"18/05/2011","Visited":"18/05/2011","UserName":"Kartoffelhunter","MembershipLevel":3,"AccountID":3579558,"AccountGuid":"344121a1-10f3-443a-9ff6-f90fc43ba8be","Email":"","AvatarImage":"61105259-e319-4793-9bc3-51aae0eb9e10.jpg","GeocacheFindCount":822,"GeocacheHideCount":1,"ChallengesCompleted":3,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":160254911,"CacheID":1433909,"LogGuid":"f315eb63-43e2-48ad-a3b9-fc775dfc9e27","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Unsere erste gefundene Hannopoly-Karte, bei bestem Wetter. Und zur Belohnung ein Lecker Eis f&#xFC;r Leona, Tomke und mich.","Created":"11/05/2011","Visited":"11/05/2011","UserName":"janko74","MembershipLevel":1,"AccountID":4460156,"AccountGuid":"bc9f2cab-dad8-465f-8b73-0d7d420e043c","Email":"","AvatarImage":"","GeocacheFindCount":4,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Member","GroupImageUrl":"/images/icons/reg_user.gif"},"Images":[]},{"LogID":160049084,"CacheID":1433909,"LogGuid":"1a45b830-b892-441a-a23c-ab117330dba2","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Den hatten wir vorm Tanzkurz noch kurz geloggt. Er ist nicht mehr wie er sein soll, aber man hat versucht uns zu erkl&#xE4;ren wie er mal gewesen ist. So richtig verstanden haben wir es aber nicht....! :-) Auch eine nette Idee so an sich - das Umfeld dagegen garnicht!","Created":"09/05/2011","Visited":"09/05/2011","UserName":"Niane","MembershipLevel":1,"AccountID":3388825,"AccountGuid":"bb8bc75b-c2b1-45fb-aca5-268bb3df3fa4","Email":"","AvatarImage":"b805ee26-4562-4f1c-ae10-3a8219b6cab9.jpg","GeocacheFindCount":615,"GeocacheHideCount":15,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Member","GroupImageUrl":"/images/icons/reg_user.gif"},"Images":[]}], "pageInfo": { "idx":1, "size": 25, "totalRows": 400, "rows": 400 } };
+initalLogs = {"status":"success", "data": [{"LogID":190275925,"CacheID":1433909,"LogGuid":"ac874fbc-1787-4dc7-963f-c72cd2d11180","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Heute auf einem etwas anderen Wege zum Ziel gekommen, aber auch der sollte laut Aussagen von anderen sehr sch&#xF6;n gewesen sein...<br/>DFDC<br/>#721","Created":"02/10/2011","Visited":"03/10/2011","UserName":"Pimf","MembershipLevel":3,"AccountID":3188002,"AccountGuid":"f86d97b1-c6ea-4fc1-839c-35ca83f55f45","Email":"","AvatarImage":"27983572-0e97-4b12-9e89-07772f42f024.jpg","GeocacheFindCount":723,"GeocacheHideCount":0,"ChallengesCompleted":2,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":189731769,"CacheID":1433909,"LogGuid":"e674d2ed-7cac-4b49-96b1-3020e5c7f479","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Archive","LogTypeImage":"traffic_cone.gif","LogText":"Auch hier fehlt mir leider eine passende neue Idee. Wie alle archivierten Hannopolys wird auch diese Besitzrechtskarte ab sofort auf www.hannopoly.de zu finden sein. Danke f&#xFC;r die sehr sch&#xF6;nen Logs!","Created":"01/10/2011","Visited":"01/10/2011","UserName":"daniel354","MembershipLevel":3,"AccountID":1477880,"AccountGuid":"8186d342-6f46-4d9e-8ba3-2e7b51426798","Email":"","AvatarImage":"b82a4dec-bd35-4cc8-b6dc-fe8bced5cbca.jpg","GeocacheFindCount":4248,"GeocacheHideCount":40,"ChallengesCompleted":2,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":189390319,"CacheID":1433909,"LogGuid":"4510051e-2c87-4d09-b77d-d90f645bafe9","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"wahrscheinlich nicht mehr so sch&#xF6;n wie geplant, dennoch alles da, was der logger so braucht ... sogar&#xB4;n herry ;-)<br/><br/>dfdc","Created":"29/09/2011","Visited":"29/09/2011","UserName":"Sir5al","MembershipLevel":3,"AccountID":3229535,"AccountGuid":"66de7735-1888-479b-8dbd-ada710747374","Email":"","AvatarImage":"9da1d6ed-3a3f-47cb-aba3-f5550abe7d11.jpg","GeocacheFindCount":443,"GeocacheHideCount":1,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":186118551,"CacheID":1433909,"LogGuid":"acce0114-1712-4f32-b120-4b8bd4ef7200","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Leider habe ich erst gesehen das der Cache auf Eis liegt nach dem ich ihn gefunden habe.<br/><br/>Ich konnte ihn denn noch gut finden und mich im gro&#xDF;em Logbuch eintragen!<br/><br/><br/>DFDC","Created":"11/09/2011","Visited":"27/08/2011","UserName":"Smootje1","MembershipLevel":3,"AccountID":4186572,"AccountGuid":"41b96bb9-ed81-473a-9032-1096d5c94423","Email":"","AvatarImage":"6052e05a-f2ce-45f1-86c4-c56fe8da6d2b.jpg","GeocacheFindCount":1117,"GeocacheHideCount":20,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":171398380,"CacheID":1433909,"LogGuid":"845e6ead-bf44-4dd8-900e-81a78afc0887","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Write note","LogTypeImage":"icon_note.gif","LogText":"Daniel, du sprichst uns aus der Seele.. gestern Nacht dagewesen, um ihn ENDLICH zu heben, aber ohne Erfolg.. SCHNIEF","Created":"08/07/2011","Visited":"08/07/2011","UserName":"Steinbreit","MembershipLevel":3,"AccountID":4430835,"AccountGuid":"86281f53-49a2-4051-bc15-394d43724d65","Email":"","AvatarImage":"90f468a9-7059-43a7-a3c5-256879458a63.jpg","GeocacheFindCount":227,"GeocacheHideCount":1,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":171063566,"CacheID":1433909,"LogGuid":"fc463b7b-ce41-4d16-a7a4-2107b8454a91","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Temporarily Disable Listing","LogTypeImage":"icon_disabled.gif","LogText":"Mist...","Created":"06/07/2011","Visited":"06/07/2011","UserName":"daniel354","MembershipLevel":3,"AccountID":1477880,"AccountGuid":"8186d342-6f46-4d9e-8ba3-2e7b51426798","Email":"","AvatarImage":"b82a4dec-bd35-4cc8-b6dc-fe8bced5cbca.jpg","GeocacheFindCount":4248,"GeocacheHideCount":40,"ChallengesCompleted":2,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":170116614,"CacheID":1433909,"LogGuid":"09c89c9c-ec9f-4387-a6ae-05fe6d11d9bf","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Ging schneller als gedacht. :-)<br/><br/>TFTC","Created":"02/07/2011","Visited":"01/07/2011","UserName":"urbannature","MembershipLevel":1,"AccountID":2510965,"AccountGuid":"1f223c0d-d9ee-44c4-b411-35eee724b868","Email":"","AvatarImage":"476ea58f-a917-46c4-8e5a-b99484b514f6.jpg","GeocacheFindCount":1381,"GeocacheHideCount":8,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Member","GroupImageUrl":"/images/icons/reg_user.gif"},"Images":[]},{"LogID":168683009,"CacheID":1433909,"LogGuid":"53e3436d-3bbc-4b46-aa34-ca28bbd0723a","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Erster Hanopoly-Cach! Nach langem suchen und richtig lesen gefunden! ;)","Created":"24/06/2011","Visited":"24/06/2011","UserName":"anady","MembershipLevel":3,"AccountID":3551788,"AccountGuid":"c6d0f76b-df41-44d0-9d1f-e60b0ffa4f0a","Email":"","AvatarImage":"","GeocacheFindCount":79,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":168640932,"CacheID":1433909,"LogGuid":"fc364b9d-8ddb-4d0e-aa42-09b4dce93c94","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Zusammen mit anady hier gewesen und die bald Karte gefunden. Doch irgendwie war kein Logbuch auffindbar. W&#xE4;hrend wir noch etwas hin und her hantierten wurde es uns &#xFC;berraschend &#xFC;bergeben. Ob das so sein soll?<br/><br/>Die Idee aber ist prima.<br/><br/>TFTC! :-)","Created":"24/06/2011","Visited":"24/06/2011","UserName":"CriDi","MembershipLevel":3,"AccountID":3383487,"AccountGuid":"78aeaa8b-044d-40ac-8a80-656a1c7f85c1","Email":"","AvatarImage":"","GeocacheFindCount":557,"GeocacheHideCount":10,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":167383966,"CacheID":1433909,"LogGuid":"6a4c21a6-c795-4d8e-8f0c-a4d7a357f837","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Interessantes Geschehen am Sonnabendvormittag; die M&#xFC;llabfuhr kommt, die Post bringt Neuigkeiten ins Haus, Nachbarn treffen sich auf der Stra&#xDF;e und kl&#xF6;nen eine Runde, ein Auto aus SFA blockiert die Kreuzung, ein Radfahrer entsorgt den M&#xFC;ll aus dem Fahrradkorb direkt am Baum und unser Team vergisst fast die Suche ...<br/><br/>DfdC!","Created":"18/06/2011","Visited":"18/06/2011","UserName":"2bupa","MembershipLevel":3,"AccountID":2675170,"AccountGuid":"e6a84779-ad63-4ba1-93fa-558a7190c8b4","Email":"","AvatarImage":"e30c21ec-8bce-4b90-9c6f-ee7e618da9fe.jpg","GeocacheFindCount":2553,"GeocacheHideCount":8,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":167163052,"CacheID":1433909,"LogGuid":"2d51d81f-1581-4ae6-9254-0a5ffa163585","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"War schon &#xF6;fters hier, aber die Muggels sa&#xDF;en da nur so rum. Heute fr&#xFC;h aufgestanden....<br/><br/>DFDC gr&#xFC;&#xDF;e Putze","Created":"16/06/2011","Visited":"15/06/2011","UserName":"Weltallputze","MembershipLevel":3,"AccountID":4512106,"AccountGuid":"07449e94-85c8-4d2f-b387-cb0910b2d854","Email":"","AvatarImage":"0b9746f6-1fd4-47b9-8f07-5b2bb3b21cc0.jpg","GeocacheFindCount":215,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":166633564,"CacheID":1433909,"LogGuid":"f6c8b6f6-527b-4ea0-ba85-8637cf47bd73","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Voll geil. Juhu und danke","Created":"13/06/2011","Visited":"13/06/2011","UserName":"Lumisch","MembershipLevel":1,"AccountID":4464524,"AccountGuid":"fcc7da31-928a-418f-ae3e-9f015b41ead6","Email":"","AvatarImage":"","GeocacheFindCount":45,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Member","GroupImageUrl":"/images/icons/reg_user.gif"},"Images":[]},{"LogID":165707570,"CacheID":1433909,"LogGuid":"1adb0f76-9bfa-47a4-a7f2-4b3aab0ffcfb","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"lecker eis :)","Created":"09/06/2011","Visited":"09/06/2011","UserName":"Nico Rohrssen","MembershipLevel":1,"AccountID":4523346,"AccountGuid":"3c66a437-1bbc-4cb1-bda0-8f609ac6efef","Email":"","AvatarImage":"","GeocacheFindCount":26,"GeocacheHideCount":2,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Member","GroupImageUrl":"/images/icons/reg_user.gif"},"Images":[]},{"LogID":164530395,"CacheID":1433909,"LogGuid":"477f0186-9c2a-40f9-8696-98afb9868205","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Nach langer sorgf&#xE4;ltiger Vorplanung (an welchem Tag lohnt sich das fr&#xFC;he Aufstehen?) bei Sonnenaufgang angeschlichen und... gefunden! Gotcha! DfdC!","Created":"03/06/2011","Visited":"03/06/2011","UserName":"Deistermonster","MembershipLevel":3,"AccountID":4165483,"AccountGuid":"116149cb-3e0f-4c50-b51e-95b756d64da4","Email":"","AvatarImage":"54fe057c-f79a-4d82-b587-53c5b2b9386f.jpg","GeocacheFindCount":668,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":164413372,"CacheID":1433909,"LogGuid":"e2c9bdad-9282-49f2-aba4-7e2ac058afa5","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Morgens um 6 Uhr muggelfrei geloggt.<img src=\"/images/icons/icon_smile_big.gif\" border=\"0\" align=\"middle\" ></img>Endlich! Der war schon ewig geplant, aber um unserer Idee nachzugehen, fehlte zur \"normalen\" Tageszeit der Mut. Ist schon ein lustiges Versteck... TFTC sagt Soukousa","Created":"03/06/2011","Visited":"03/06/2011","UserName":"Soukousa","MembershipLevel":3,"AccountID":4154048,"AccountGuid":"399bef0c-1cdd-4024-a00e-3199484131af","Email":"","AvatarImage":"8480d5e4-f43e-48e5-a449-c01ce424ff05.jpg","GeocacheFindCount":668,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":163515249,"CacheID":1433909,"LogGuid":"cda47e99-cd5f-4fc1-aa40-cb3bccff4f46","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Bei einem leckerem Eis das Logbuch siegniert.<br/><br/>TFTC<br/>Don Canallie","Created":"29/05/2011","Visited":"29/05/2011","UserName":"Don Canallie","MembershipLevel":3,"AccountID":3891097,"AccountGuid":"80970931-2e97-4291-abfd-564635f5d86f","Email":"","AvatarImage":"36c0f8e8-d7b6-469e-af8d-495a39baf8b3.jpg","GeocacheFindCount":580,"GeocacheHideCount":2,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":163307833,"CacheID":1433909,"LogGuid":"caad1abc-eb5c-4b99-ae92-232057825f41","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"W&#xE4;hrend einer sch&#xF6;nen Li-Li-Ahlem Fahrrad Cachingtour gesucht und geborgen, danach wieder korrekt versteckt, damit es nicht zu einfach wird. dfdc <img src=\"/images/icons/icon_smile.gif\" border=\"0\" align=\"middle\" ></img>","Created":"29/05/2011","Visited":"28/05/2011","UserName":"rimini08","MembershipLevel":3,"AccountID":4088331,"AccountGuid":"2fe34526-d72d-478e-9b7f-9dc5c3e1d6c1","Email":"","AvatarImage":"","GeocacheFindCount":264,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":163325464,"CacheID":1433909,"LogGuid":"c3475f2f-1e55-43aa-89a8-3a1ce8ddc525","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"<i>gut gefunden, danke f&#xFC;rs verstecken!</i> <br/><br/><b> <font color='red'>TFTC<br/><br/><b> <font color='green'>...sprechenden Cachern kann geholfen werden <img src=\"/images/icons/icon_smile.gif\" border=\"0\" align=\"middle\" ></img><br/><br/><img src=\"/images/icons/icon_smile.gif\" border=\"0\" align=\"middle\" ></img> <b> <font size='3'> <font color='green'>J<font color='black'>o<font color='green'>h<font color='black'>a<font color='green'>n<font color='black'>s<font color='green'>i<font color='black'>b<font color='green'>&#xE4;<font color='black'>r <font color='orange'>2011</font> <img src=\"/images/icons/icon_smile.gif\" border=\"0\" align=\"middle\" ></img></b>","Created":"29/05/2011","Visited":"22/05/2011","UserName":"Johansibär","MembershipLevel":1,"AccountID":1858674,"AccountGuid":"05f9d911-9cdc-4224-84b3-8e4923228958","Email":"","AvatarImage":"4d235c2f-81b6-42c4-a28c-5df2182a289d.jpg","GeocacheFindCount":953,"GeocacheHideCount":16,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Member","GroupImageUrl":"/images/icons/reg_user.gif"},"Images":[]},{"LogID":162246062,"CacheID":1433909,"LogGuid":"e9eec580-6831-40ba-8530-c9722017a142","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Schon vor ein paar Tagen die Karte entdeckt aber das loggen war uns nicht so klar...nun haben wir uns heute auch im Logbuch verewigt. Nette Idee, DfdC.","Created":"22/05/2011","Visited":"22/05/2011","UserName":"Flunin","MembershipLevel":3,"AccountID":3435189,"AccountGuid":"4c851b2a-967c-427d-91eb-268b5ffb0f0a","Email":"","AvatarImage":"","GeocacheFindCount":248,"GeocacheHideCount":1,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":161705502,"CacheID":1433909,"LogGuid":"0b303d23-fb26-4b29-b5d2-2bb8828682ae","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Nach nem kleinen Tipp dann doch noch loggen k&#xF6;nnen :-)<br/>DFDC","Created":"20/05/2011","Visited":"20/05/2011","UserName":"Leafhoppers","MembershipLevel":3,"AccountID":3766111,"AccountGuid":"37bd64d5-a74f-4a12-b040-460f83652198","Email":"","AvatarImage":"","GeocacheFindCount":434,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":161990811,"CacheID":1433909,"LogGuid":"1ac63b3e-075a-48b7-9a1f-222b19c71868","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Zusammen mit i-teg um 15:25 Uhr geloggt. <br/>TFTC!<br/>#488","Created":"21/05/2011","Visited":"19/05/2011","UserName":"justify-jay","MembershipLevel":3,"AccountID":3936481,"AccountGuid":"af49ff9e-5331-4565-97e8-5f5bf45e33b2","Email":"","AvatarImage":"198d173a-7efa-416c-b495-b15ed30f94a1.jpg","GeocacheFindCount":1072,"GeocacheHideCount":2,"ChallengesCompleted":2,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":161988577,"CacheID":1433909,"LogGuid":"19a1ae8a-e3d7-492c-a866-002064968183","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Auf Spontantour zusammen mit justify-jay um 15:25 Uhr zum Logbuch durchgedrungen :-) ! <br/>TFTC!<br/>#488","Created":"21/05/2011","Visited":"19/05/2011","UserName":"i-teg","MembershipLevel":3,"AccountID":3936536,"AccountGuid":"a30caa8b-0ba4-4a20-875f-ac825eacbf41","Email":"","AvatarImage":"533a43c0-8416-452f-8011-f575dee42268.jpg","GeocacheFindCount":1072,"GeocacheHideCount":2,"ChallengesCompleted":2,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":161489085,"CacheID":1433909,"LogGuid":"0686f7dd-e12b-4b99-b7c7-24df895f48fb","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Schnell gefunden da unsere Vorlogger scheinbar den Cache nicht wieder ganz genau plaziert hatten. Weils so schnell ging ne leckeres Eis in der Sonne genossen.<br/>Ein super Cache, vielen Dank daf&#xFC;r.<br/>Kartoffelhunter","Created":"18/05/2011","Visited":"18/05/2011","UserName":"Kartoffelhunter","MembershipLevel":3,"AccountID":3579558,"AccountGuid":"344121a1-10f3-443a-9ff6-f90fc43ba8be","Email":"","AvatarImage":"61105259-e319-4793-9bc3-51aae0eb9e10.jpg","GeocacheFindCount":832,"GeocacheHideCount":1,"ChallengesCompleted":3,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":160254911,"CacheID":1433909,"LogGuid":"f315eb63-43e2-48ad-a3b9-fc775dfc9e27","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Unsere erste gefundene Hannopoly-Karte, bei bestem Wetter. Und zur Belohnung ein Lecker Eis f&#xFC;r Leona, Tomke und mich.","Created":"11/05/2011","Visited":"11/05/2011","UserName":"janko74","MembershipLevel":1,"AccountID":4460156,"AccountGuid":"bc9f2cab-dad8-465f-8b73-0d7d420e043c","Email":"","AvatarImage":"","GeocacheFindCount":4,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Member","GroupImageUrl":"/images/icons/reg_user.gif"},"Images":[]},{"LogID":160049084,"CacheID":1433909,"LogGuid":"1a45b830-b892-441a-a23c-ab117330dba2","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Den hatten wir vorm Tanzkurz noch kurz geloggt. Er ist nicht mehr wie er sein soll, aber man hat versucht uns zu erkl&#xE4;ren wie er mal gewesen ist. So richtig verstanden haben wir es aber nicht....! :-) Auch eine nette Idee so an sich - das Umfeld dagegen garnicht!","Created":"09/05/2011","Visited":"09/05/2011","UserName":"Niane","MembershipLevel":1,"AccountID":3388825,"AccountGuid":"bb8bc75b-c2b1-45fb-aca5-268bb3df3fa4","Email":"","AvatarImage":"b805ee26-4562-4f1c-ae10-3a8219b6cab9.jpg","GeocacheFindCount":615,"GeocacheHideCount":15,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Member","GroupImageUrl":"/images/icons/reg_user.gif"},"Images":[]}], "pageInfo": { "idx":1, "size": 25, "totalRows": 400, "rows": 400 } };
//]]>
</script>
</form>
@@ -1879,6 +1879,6 @@ initalLogs = {"status":"success", "data": [{"LogID":190275925,"CacheID":1433909,
<img src="http://pixel.quantserve.com/pixel/p-f6VPrfmR4cujU.gif" style="display: none;" height="1" width="1" alt="Quantcast" />
</noscript>
- <!-- Server: WEB04; Build: HotFix_20111006.1 -->
+ <!-- Server: WEB01; Build: HotFix_20111006.1 -->
</body>
</html>
diff --git a/tests/src/cgeo/geocaching/test/mock/GC1ZXX2.java b/tests/src/cgeo/geocaching/test/mock/GC1ZXX2.java
index 96e677a..0fcc001 100644
--- a/tests/src/cgeo/geocaching/test/mock/GC1ZXX2.java
+++ b/tests/src/cgeo/geocaching/test/mock/GC1ZXX2.java
@@ -1,8 +1,16 @@
package cgeo.geocaching.test.mock;
+import cgeo.geocaching.cgBase;
import cgeo.geocaching.enumerations.CacheSize;
import cgeo.geocaching.geopoint.Geopoint;
+import java.text.ParseException;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
public class GC1ZXX2 extends MockedCache {
@@ -11,6 +19,11 @@ public class GC1ZXX2 extends MockedCache {
}
@Override
+ public String getName() {
+ return "Hannopoly: Eislisenstrasse";
+ }
+
+ @Override
public Float getDifficulty() {
return 3.0f;
}
@@ -46,63 +59,88 @@ public class GC1ZXX2 extends MockedCache {
}
@Override
- public boolean isDisabled() {
- return false;
+ public String getOwnerReal() {
+ return "daniel354";
}
@Override
- public boolean isMembersOnly() {
- return false;
+ public String getDescription() {
+ return "<center><img width=\"500\"";
}
@Override
- public boolean isOwn() {
- return false;
+ public String getCacheId() {
+ return "1433909";
}
@Override
- public String getOwnerReal() {
- return "daniel354";
+ public String getGuid() {
+ return "36d45871-b99d-46d6-95fc-ff86ab564c98";
}
@Override
- public String getHint() {
- return "";
+ public String getLocation() {
+ return "Niedersachsen, Germany";
}
@Override
- public String getDescription() {
- return "<center><img width=\"500\"";
+ public boolean isWatchlist() {
+ if ("blafoo".equals(this.getUserLoggedIn())) {
+ return true;
+ }
+ return false;
}
@Override
- public String getShortDescription() {
- return "";
+ public Date getHiddenDate() {
+ try {
+ return cgBase.parseGcCustomDate("16/10/2009");
+ } catch (ParseException e) {
+ }
+ return null;
}
@Override
- public String getName() {
- return "Hannopoly: Eislisenstrasse";
+ public List<String> getAttributes() {
+ String[] attributes = new String[] {
+ "bicycles_yes",
+ "available_yes",
+ "stroller_yes",
+ "parking_yes",
+ "onehour_yes",
+ "kids_yes",
+ "dogs_yes"
+ };
+ return Arrays.asList(attributes);
}
- @Override
- public String getCacheId() {
- return "1433909";
- }
@Override
- public String getGuid() {
- return "36d45871-b99d-46d6-95fc-ff86ab564c98";
+ public Map<Integer, Integer> getLogCounts() {
+ Map<Integer, Integer> logCounts = new HashMap<Integer, Integer>();
+ logCounts.put(cgBase.LOG_PUBLISH_LISTING, 1);
+ logCounts.put(cgBase.LOG_FOUND_IT, 370);
+ logCounts.put(cgBase.LOG_POST_REVIEWER_NOTE, 1);
+ logCounts.put(cgBase.LOG_DIDNT_FIND_IT, 7);
+ logCounts.put(cgBase.LOG_NOTE, 8);
+ logCounts.put(cgBase.LOG_ARCHIVE, 1);
+ logCounts.put(cgBase.LOG_ENABLE_LISTING, 2);
+ logCounts.put(cgBase.LOG_TEMP_DISABLE_LISTING, 3);
+ logCounts.put(cgBase.LOG_OWNER_MAINTENANCE, 7);
+ return logCounts;
}
@Override
- public String getLocation() {
- return "Niedersachsen, Germany";
+ public Integer getFavoritePoints() {
+ return new Integer(49);
}
@Override
public String getPersonalNote() {
- return "";
+ if ("blafoo".equals(this.getUserLoggedIn())) {
+ return "Test für c:geo";
+ }
+ return null;
}
}
diff --git a/tests/src/cgeo/geocaching/test/mock/GC2CJPF.java b/tests/src/cgeo/geocaching/test/mock/GC2CJPF.java
index eb8d315..61e189b 100644
--- a/tests/src/cgeo/geocaching/test/mock/GC2CJPF.java
+++ b/tests/src/cgeo/geocaching/test/mock/GC2CJPF.java
@@ -1,8 +1,16 @@
package cgeo.geocaching.test.mock;
+import cgeo.geocaching.cgBase;
import cgeo.geocaching.enumerations.CacheSize;
import cgeo.geocaching.geopoint.Geopoint;
+import java.text.ParseException;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
public class GC2CJPF extends MockedCache {
@@ -11,6 +19,11 @@ public class GC2CJPF extends MockedCache {
}
@Override
+ public String getName() {
+ return "Kinderwald KiC";
+ }
+
+ @Override
public Float getDifficulty() {
return 2.5f;
}
@@ -45,64 +58,94 @@ public class GC2CJPF extends MockedCache {
}
@Override
- public boolean isArchived() {
- return false;
+ public String getHint() {
+ return "Das Final (unter Steinen) ist mit GC gekennzeichnet.";
}
@Override
- public boolean isDisabled() {
- return false;
+ public String getDescription() {
+ return "Kleiner Multi über 7 Stationen";
}
@Override
- public boolean isMembersOnly() {
- return false;
+ public String getShortDescription() {
+ return "Von Nachwuchs-Cachern für Nachwuchs-Cacher.";
}
@Override
- public boolean isOwn() {
- return false;
+ public String getCacheId() {
+ return "1811409";
}
-
@Override
- public String getHint() {
- return "Das Final (unter Steinen) ist mit GC gekennzeichnet.";
+ public String getGuid() {
+ return "73246a5a-ebb9-4d4f-8db9-a951036f5376";
}
@Override
- public String getDescription() {
- return "Kleiner Multi über 7 Stationen";
+ public String getLocation() {
+ return "Niedersachsen, Germany";
}
@Override
- public String getShortDescription() {
- return "Von Nachwuchs-Cachern für Nachwuchs-Cacher.";
+ public boolean isFound() {
+ if ("blafoo".equals(this.getUserLoggedIn())) {
+ return true;
+ }
+ return false;
}
@Override
- public String getName() {
- return "Kinderwald KiC";
+ public boolean isFavorite() {
+ if ("blafoo".equals(this.getUserLoggedIn())) {
+ return true;
+ }
+ return false;
}
@Override
- public String getCacheId() {
- return "1811409";
+ public Date getHiddenDate() {
+ try {
+ return cgBase.parseGcCustomDate("31/07/2010");
+ } catch (ParseException e) {
+ }
+ return null;
}
@Override
- public String getGuid() {
- return "73246a5a-ebb9-4d4f-8db9-a951036f5376";
+ public List<String> getAttributes() {
+ String[] attributes = new String[] {
+ "motorcycles_no",
+ "wheelchair_no",
+ "winter_yes",
+ "available_yes",
+ "wading_yes",
+ "scenic_yes",
+ "onehour_yes",
+ "kids_yes",
+ "bicycles_yes",
+ "dogs_yes"
+ };
+ return Arrays.asList(attributes);
}
@Override
- public String getLocation() {
- return "Niedersachsen, Germany";
+ public Map<Integer, Integer> getLogCounts() {
+ Map<Integer, Integer> logCounts = new HashMap<Integer, Integer>();
+ logCounts.put(cgBase.LOG_PUBLISH_LISTING, 1);
+ logCounts.put(cgBase.LOG_FOUND_IT, 55);
+ logCounts.put(cgBase.LOG_DIDNT_FIND_IT, 1);
+ logCounts.put(cgBase.LOG_NOTE, 5);
+ logCounts.put(cgBase.LOG_ENABLE_LISTING, 2);
+ logCounts.put(cgBase.LOG_TEMP_DISABLE_LISTING, 2);
+ logCounts.put(cgBase.LOG_OWNER_MAINTENANCE, 2);
+ logCounts.put(cgBase.LOG_NEEDS_MAINTENANCE, 2);
+ return logCounts;
}
@Override
- public String getPersonalNote() {
- return "";
+ public Integer getFavoritePoints() {
+ return new Integer(6);
}
}
diff --git a/tests/src/cgeo/geocaching/test/mock/GC2JVEH.html b/tests/src/cgeo/geocaching/test/mock/GC2JVEH.html
new file mode 100644
index 0000000..4c103a5
--- /dev/null
+++ b/tests/src/cgeo/geocaching/test/mock/GC2JVEH.html
@@ -0,0 +1,1851 @@
+
+<!DOCTYPE html>
+<html lang="en" class="no-js">
+ <head id="ctl00_Head1"><meta charset="utf-8" />
+ <!--[if IE]><![endif]-->
+ <title>
+ GC2JVEH Auf den Spuren des Indianer Jones Teil 1 (Unknown Cache) in Niedersachsen, Germany created by indianerjones, der merlyn,reflektordetektor
+</title><meta name="DC.title" content="Geocaching - The Official Global GPS Cache Hunt Site" /><meta property="og:title" content="Geocaching - The Official Global GPS Cache Hunt Site" /><meta property="og:site_name" content="Geocaching - The Official Global GPS Cache Hunt Site" /><meta property="og:type" content="website" /><meta property="og:url" content="http://www.geocaching.com/" /><meta name="author" content="Groundspeak, Inc." /><meta name="DC.creator" content="Groundspeak, Inc." /><meta name="Copyright" content="Copyright (c) 2000-2011 Groundspeak, Inc. All Rights Reserved." /><!-- Copyright (c) 2000-2011 Groundspeak, Inc. All Rights Reserved. --><meta name="description" content="Geocaching is a treasure hunting game where you use a GPS to hide and seek containers with other participants in the activity. Geocaching.com is the listing service for geocaches around the world." /><meta name="DC.subject" content="Geocaching is a treasure hunting game where you use a GPS to hide and seek containers with other participants in the activity. Geocaching.com is the listing service for geocaches around the world." /><meta property="og:description" content="Geocaching is a treasure hunting game where you use a GPS to hide and seek containers with other participants in the activity. Geocaching.com is the listing service for geocaches around the world." /><meta http-equiv="imagetoolbar" content="no" /><meta name="distribution" content="global" /><meta name="MSSmartTagsPreventParsing" content="true" /><meta name="rating" content="general" /><meta name="revisit-after" content="1 days" /><meta name="robots" content="all" /><meta http-equiv="X-UA-Compatible" content="IE=8" /><link rel="icon" href="/favicon.ico" /><link rel="shortcut icon" href="/favicon.ico" /><link rel="apple-touch-icon" href="/apple-touch-icon.png" /><link rel="image_src" href="/preview.png" /><meta property="og:image" content="/preview.png" /><link rel="stylesheet" type="text/css" media="all" href="../css/blueprint/src/reset.css" /><link rel="stylesheet" type="text/css" media="all" href="../css/blueprint/src/typography.css" /><link rel="stylesheet" type="text/css" media="screen,projection" href="../css/blueprint/src/grid.css" />
+ <!--[if lt IE 8]>
+ <link rel="stylesheet" type="text/css" media="all" href="../css/blueprint/ie.css" />
+ <![endif]-->
+ <link rel="stylesheet" type="text/css" media="screen,projection" href="../css/tlnMasterScreen.css" /><link rel="stylesheet" type="text/css" media="all" href="../css/tlnMain.css" /><link rel="Stylesheet" type="text/css" media="all" href="../css/jqueryui1810/jquery-ui-1.8.10.custom.css" /><link rel="stylesheet" type="text/css" media="all" href="/js/jquery_plugins/jquery.jgrowl.css" /><link rel="stylesheet" type="text/css" media="print" href="../css/tlnMasterPrint.css" />
+ <script type="text/javascript" src="/js/modernizr-1.7.min.js"></script>
+ <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.min.js"></script>
+ <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>
+ <script type="text/javascript" src="/js/jquery.truncate.min.js"></script>
+
+
+
+ <link href="/css/fancybox/jquery.fancybox.css" rel="stylesheet" type="text/css" />
+ <link href="/js/jquery_plugins/icalendar/jquery.icalendar.css" rel="stylesheet" type="text/css" />
+ <link href="/js/jquery_plugins/tipTip/tipTip.css" rel="stylesheet" type="text/css" />
+ <link href="/js/jquery_plugins/qtip/jquery.qtip.css" rel="stylesheet" type="text/css" />
+ <!--[if lte IE 8]>
+ <style type="text/css" media="all">
+ legend{
+ position: absolute;
+ top: -.6em;
+ left: 1em;
+ line-height: 1.3;
+ }
+ fieldset p{
+ margin-top:1em;
+ }
+ img.CacheNoteHelpImg{
+ top:-.2em;
+ }
+ </style>
+ <![endif]-->
+ <style type="text/css" media="screen,projection">
+ #otherSearchOptions li
+ {
+ list-style-image: none;
+ list-style-position: outside;
+ list-style-type: none;
+ }
+ .ff
+ {
+ font-family: "Andale Mono" , "Courier New" ,Courier,monospace;
+ }
+ .fr
+ {
+ margin-top: 1.5em;
+ float: right;
+ }
+ .fl
+ {
+ float: left;
+ }
+ .clsCell
+ {
+ border: 1px solid #c0cee3;
+ font-size: 80%;
+ background-color: #fff;
+ }
+ .clsResultTitle, .clsResultTitleNoBold
+ {
+ color: #0000de;
+ }
+ .clsResultDescription
+ {
+ color: #333;
+ }
+ .clsURL
+ {
+ color: #999;
+ }
+ a.title:link, a.title:visited, a.title:hover, a.title:active
+ {
+ color: #000;
+ text-decoration: underline;
+ }
+ a.title
+ {
+ text-align: right;
+ font-size: 10px;
+ font-family: arial,sans-serif;
+ padding: 0 1px 0 0;
+ }
+ #mapSizePager a:hover
+ {
+ font-weight: bold;
+ }
+ #mapSizePager ul
+ {
+ width: 100%;
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ }
+ #mapSizePager li
+ {
+ float: left;
+ list-style: none;
+ }
+ #mapSizePager li a
+ {
+ font-family: verdana,sans-serif;
+ font-size: x-small;
+ display: block;
+ margin: 0 2px 0 0;
+ padding: 4px;
+ text-decoration: none;
+ border: solid 1px #c0c0c0;
+ height: 10px;
+ min-width: 10px;
+ cursor: pointer;
+ }
+ #mapPrintingNotes
+ {
+ width: 280px;
+ text-align: left;
+ overflow: auto;
+ }
+ .inplace_field {
+ width:100%;
+ resize: none;
+ }
+ legend.note{
+ background:url('../images/silk/note.png') no-repeat 0 0;
+ padding-left:18px;
+ }
+ legend.warning{
+ background:url('../images/silk/exclamation.png') no-repeat 0 0;
+ padding-left:18px;
+ }
+ fieldset.CacheNote{
+ border-color: #e9a24c !important;
+ background-color:#ffffde;
+ position:relative;
+ }
+ .CacheNoteHelpImg{
+ position:relative;
+ cursor:pointer;
+ top:-1em;
+ right:-.75em;
+ float:right;
+ }
+ .InformationWidget h3{
+ margin-bottom:.5em;
+ }
+ .InformationWidget .AlignRight{
+ font-size:.8em;
+ }
+ #tiptip_content{
+ *background-color:#000;
+ }
+ .maxed {
+ color:#992a2a;
+ }
+ .Hidden
+ {
+ display: none;
+ }
+
+ /* -----------------------------------------------------------------------
+Begin Pagination
+----------------------------------------------------------------------- */
+
+ .PaginationWidget
+ {
+ margin: 1.5em 0;
+ font-size: 10px;
+ }
+ .pagination a
+ {
+ text-decoration: none;
+ border: solid 1px #00447c;
+ color: #00447c;
+ }
+ .pagination a, .pagination span
+ {
+ display: block;
+ float: left;
+ padding: 3px 5px;
+ margin-right: 5px;
+ min-width: 1em;
+ text-align: center;
+ }
+ .pagination .current
+ {
+ background: #13b5ea;
+ color: #fff;
+ border: solid 1px #13b5ea;
+ }
+ .pagination .current.prev, .pagination .current.next
+ {
+ color: #b0b0b0;
+ border-color: #b0b0b0;
+ background: #fff;
+ }
+
+ /* -----------------------------------------------------------------------
+End Pagination
+----------------------------------------------------------------------- */
+ </style>
+ <script type="text/javascript">
+ var userToken = null,
+ urlParams = {},
+ mapLatLng = null,
+ cmapAdditionalWaypoints = [],
+ initalLogs = null, totalLogs = 0, includeAvatars=false;
+
+ (function () {
+ var e,
+ d = function (s) { return decodeURIComponent(s.replace(/\+/g, " ")); },
+ q = window.location.search.substring(1),
+ r = /([^&=]+)=?([^&]*)/g;
+
+ while (e = r.exec(q)) {
+ urlParams[d(e[1])] = d(e[2]);
+ }
+ })();
+ </script>
+<meta name="og:site_name" content="Geocaching.com" property="og:site_name" /><meta name="og:type" content="article" property="og:type" /><meta name="fb:app_id" content="100167303362705" property="fb:app_id" /><meta name="og:url" content="http://coord.info/GC2JVEH" property="og:url" /><meta name="og:description" content="Aufgabe zum Start: Finde die Schattenlinie. !!!Die Skizze mit den
+Zahlen solltest du mitnehmen!!! Du solltest den cache so beginnen,
+das du station 2 in der Zeit von mo- fr von 11-19 Uhr und sa
+von11-16 Uhr erledigt hast." property="og:description" /><meta name="og:image" content="http://www.geocaching.com/images/facebook/wpttypes/8.png" property="og:image" /><meta name="og:title" content="Auf den Spuren des Indianer Jones Teil 1" property="og:title" /><meta name="description" content="Auf den Spuren des Indianer Jones Teil 1 (GC2JVEH) was created by indianerjones on 11/28/2010. It&#39;s a Small size geocache, with difficulty of 5, terrain of 3. It&#39;s located in Niedersachsen, Germany. Aufgabe zum Start: Finde die Schattenlinie. !!!Die Skizze mit denZahlen solltest du mitnehmen!!! Du solltest den cache so beginnen,das du station 2 in der Zeit von mo- fr von 11-19 Uhr und savon11-16 Uhr erledigt hast." /><link rel="alternate" href="../datastore/rss_galleryimages.ashx?guid=07270e8c-72ec-4821-8cb7-b01483f94cb5" type="application/rss+xml" title="[Gallery Images]" id="GalleryImages" /></head>
+ <body >
+ <form name="aspnetForm" method="post" action="cache_details.aspx?log=y&amp;wp=GC2JVEH&amp;numlogs=35&amp;decrypt=y" id="aspnetForm">
+<div>
+<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
+<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
+<input type="hidden" name="__VIEWSTATEFIELDCOUNT" id="__VIEWSTATEFIELDCOUNT" value="2" />
+<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTkwOTY3OTc3OQ8WAh4EQy5JRCgpWVN5c3RlbS5JbnQ2NCwgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BzE5OTc1OTcWAmYPZBYGZg9kFgYCCg8WAh4EVGV4dAViPG1ldGEgbmFtZT0iQ29weXJpZ2h0IiBjb250ZW50PSJDb3B5cmlnaHQgKGMpIDIwMDAtMjAxMSBHcm91bmRzcGVhaywgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLiIgLz5kAgsPFgIfAQVHPCEtLSBDb3B5cmlnaHQgKGMpIDIwMDAtMjAxMSBHcm91bmRzcGVhaywgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAtLT5kAicPFgIeB1Zpc2libGVoZAIBD2QWEgIFDxYCHwFkZAIIDxYCHwJnFgoCAQ8PFgIeCEltYWdlVXJsBU5odHRwOi8vaW1nLmdlb2NhY2hpbmcuY29tL3VzZXIvYXZhdGFyLzUwZjgzMTIzLTI3ZDgtNGRjZi05ZmRlLTJhZjAwNmVmYWYyYi5qcGdkZAIDDxYCHwEFaEhlbGxvLCA8YSBocmVmPSIvbXkvZGVmYXVsdC5hc3B4IiB0aXRsZT0iVmlldyBQcm9maWxlIGZvciBibGFmb28iIGNsYXNzPSJTaWduZWRJblByb2ZpbGVMaW5rIj5ibGFmb288L2E+ZAIFDw8WAh4LTmF2aWdhdGVVcmwFrQFodHRwczovL3d3dy5nZW9jYWNoaW5nLmNvbS9sb2dpbi9kZWZhdWx0LmFzcHg/UkVTRVQ9WSZyZWRpcj1odHRwJTNhJTJmJTJmd3d3Lmdlb2NhY2hpbmcuY29tJTJmc2VlayUyZmNhY2hlX2RldGFpbHMuYXNweCUzZmxvZyUzZHklMjZ3cCUzZEdDMkpWRUglMjZudW1sb2dzJTNkMzUlMjZkZWNyeXB0JTNkeWRkAgcPFgIfAQWtATxpbWcgc3JjPSIvaW1hZ2VzL2ljb25zL2ljb25fc21pbGUucG5nIiB0aXRsZT0iQ2FjaGVzIEZvdW5kIiAvPiA0MzYmbmJzcDsmbWlkZG90OyZuYnNwOzxpbWcgc3JjPSIvaW1hZ2VzL2NoYWxsZW5nZXMvdHlwZXMvc20vY2hhbGxlbmdlLnBuZyIgdGl0bGU9IkNoYWxsZW5nZXMgQ29tcGxldGVkIiAvPiAyZAILDxYCHwJnFgJmDw8WAh8CaGRkAg8PFgIfAmcWAgINDw8WAh8EBUB+L3RyYWNrL3NlYXJjaC5hc3B4P289MSZ1aWQ9MDU2NGE5NDAtODMxMS00MGVlLThlNzYtN2U5MWIyY2Y2Mjg0ZGQCIQ8WAh8CZ2QCIw8WAh4FY2xhc3MFDHNwYW4tMjQgbGFzdBYCAgEPZBZQAgEPFgIfAQW1ATxhIGhyZWY9Ii9hYm91dC9jYWNoZV90eXBlcy5hc3B4IiB0YXJnZXQ9Il9ibGFuayIgdGl0bGU9IkFib3V0IENhY2hlIFR5cGVzIj48aW1nIHNyYz0iL2ltYWdlcy9XcHRUeXBlcy84LmdpZiIgYWx0PSJVbmtub3duIENhY2hlIiB0aXRsZT0iVW5rbm93biBDYWNoZSIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIiAvPjwvYT5kAgQPFgIfAQUBQWQCBg8WAh8CZ2QCCQ8WAh8CaGQCEA9kFgQCAQ8WAh8BBQIyMGQCAw8PFgIfBAVEL3NlZWsvY2FjaGVfZmF2b3JpdGVkLmFzcHg/Z3VpZD0wNzI3MGU4Yy03MmVjLTQ4MjEtOGNiNy1iMDE0ODNmOTRjYjVkZAIRDw8WAh8CaGRkAhIPFgQfAQVLPHAgY2xhc3M9Ildhcm5pbmcgTm9Cb3R0b21TcGFjaW5nIj5UaGlzIGlzIGEgUHJlbWl1bSBNZW1iZXIgT25seSBjYWNoZS48L3A+HwJnZAIUDxYCHwJoZAIVDxYCHwJoZAIYDxYCHgVzdHlsZQUPZGlzcGxheTppbmxpbmU7FgICAQ8WAh8BBRtVVE06IDMyVSBFIDU1MDA2MyBOIDU4MDI2OTZkAhsPDxYCHwQFM2NkcGYuYXNweD9ndWlkPTA3MjcwZThjLTcyZWMtNDgyMS04Y2I3LWIwMTQ4M2Y5NGNiNWRkAhwPDxYCHwQFOGNkcGYuYXNweD9ndWlkPTA3MjcwZThjLTcyZWMtNDgyMS04Y2I3LWIwMTQ4M2Y5NGNiNSZsYz01ZGQCHQ8PFgIfBAU5Y2RwZi5hc3B4P2d1aWQ9MDcyNzBlOGMtNzJlYy00ODIxLThjYjctYjAxNDgzZjk0Y2I1JmxjPTEwZGQCHg8PFgQfBAWOAWh0dHA6Ly9tYXBzLmdvb2dsZS5jb20vbWFwcz9mPWQmaGw9ZW4mc2FkZHI9NTIuNDE2Miw5LjU5NDExNyAoSG9tZSBMb2NhdGlvbikmZGFkZHI9NTIuMzcyMjUsOS43MzUzNjcoQXVmK2RlbitTcHVyZW4rZGVzK0luZGlhbmVyK0pvbmVzK1RlaWwrMSkeBlRhcmdldAUGX2JsYW5rZGQCIg9kFggCAQ8PFgQeCUZvcmVDb2xvcgweBF8hU0ICBGRkAgMPDxYEHwgMHwkCBGRkAgUPDxYCHwJnFgIeB29uY2xpY2sFO3MyZ3BzKCcwNzI3MGU4Yy03MmVjLTQ4MjEtOGNiNy1iMDE0ODNmOTRjYjUnKTtyZXR1cm4gZmFsc2U7ZAIHDw8WAh8CZxYCHwoFIHMycGhvbmUoJ0dDMkpWRUgnKTtyZXR1cm4gZmFsc2U7ZAIkDxYCHwJnZAInD2QWCGYPFgIfAmhkAgEPDxYCHwJoZGQCAg8PFgIfAmhkZAIDDxYCHwJoZAIpDw8WAh8BBRNObyBoaW50cyBhdmFpbGFibGUuFgIfCgUNcmV0dXJuIGZhbHNlO2QCKg8WAh8CaGQCLA9kFgJmD2QWAgIBDw8WAh8BBQdHQzJKVkVIZGQCLg8WAh8CaGQCMA8WAh8CZ2QCMQ8WAh8CaGQCNQ9kFgICAQ9kFgQCAQ8PFgIfAQX/AzxpZnJhbWUgdHlwZT0iaWZyYW1lIiBzcmM9Imh0dHA6Ly9hZHMuZ3JvdW5kc3BlYWsuY29tL2EuYXNweD9ab25lSUQ9OSZUYXNrPUdldCZTaXRlSUQ9MSZYPSdjYTgyYmYwOGY3MTg0ZGFmOGI2NjlkNWNjNjJhNTk3ZiciIHdpZHRoPSIxMjAiIGhlaWdodD0iMjQwIiBNYXJnaW53aWR0aD0iMCIgTWFyZ2luaGVpZ2h0PSIwIiBIc3BhY2U9IjAiIFZzcGFjZT0iMCIgRnJhbWVib3JkZXI9IjAiIFNjcm9sbGluZz0ibm8iIHN0eWxlPSJ3aWR0aDoxMjBweDtIZWlnaHQ6MjQwcHg7Ij48YSBocmVmPSJodHRwOi8vYWRzLmdyb3VuZHNwZWFrLmNvbS9hLmFzcHg/Wm9uZUlEPTkmVGFzaz1DbGljayY7TW9kZT1IVE1MJlNpdGVJRD0xIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9Imh0dHA6Ly9hZHMuZ3JvdW5kc3BlYWsuY29tL2EuYXNweD9ab25lSUQ9OSZUYXNrPUdldCZNb2RlPUhUTUwmU2l0ZUlEPTEiIHdpZHRoPSIxMjAiIGhlaWdodD0iMjQwIiBib3JkZXI9IjAiIGFsdD0iIiAvPjwvYT48L2lmcmFtZT5kZAIDDxYCHglpbm5lcmh0bWwFE0FkdmVydGlzaW5nIHdpdGggVXNkAjkPZBYGAgIPFgIeC18hSXRlbUNvdW50AgEWAgIBD2QWAmYPFQNWaHR0cDovL3d3dy5nZW9jYWNoaW5nLmNvbS90cmFjay9kZXRhaWxzLmFzcHg/Z3VpZD1lMzI5MTlkMy1lYjk1LTRkMDMtYTZjNC1kMGFkZmZmOTc4NjUzaHR0cDovL3d3dy5nZW9jYWNoaW5nLmNvbS9pbWFnZXMvd3B0dHlwZXMvc20vMjEuZ2lmFUljaHRoeW9zYXVydXMgSHVtZXJ1c2QCBA8PFgIfAmdkFgICAQ8PFgQfAQUTVmlldyBhbGwgVHJhY2thYmxlcx8EBUl+L3RyYWNrL3NlYXJjaC5hc3B4P3dpZD0wNzI3MGU4Yy03MmVjLTQ4MjEtOGNiNy1iMDE0ODNmOTRjYjUmY2NpZD0xOTk3NTk3ZGQCBQ8PFgIfBAU8fi90cmFjay9zZWFyY2guYXNweD93aWQ9MDcyNzBlOGMtNzJlYy00ODIxLThjYjctYjAxNDgzZjk0Y2I1ZGQCOg8PFgIfAmdkFgJmDxYCHwwCAxYGAgEPZBYEZg8VAwBXaHR0cDovL3d3dy5nZW9jYWNoaW5nLmNvbS9ib29rbWFya3Mvdmlldy5hc3B4P2d1aWQ9NzYwZWIzMTQtODM4ZC00YWZjLWFhNWItNDViMjIxMmVlNDljDVQ1IGFic29sdmllcnRkAgIPFQJMaHR0cDovL3d3dy5nZW9jYWNoaW5nLmNvbS9wcm9maWxlLz9ndWlkPTVjNGIwOTE1LTVjZWMtNGZhMS04YWZkLTRiM2NhNjdlMDA0ZQdrYWkyNzA3ZAICD2QWBGYPFQMOQWx0ZXJuYXRpbmdSb3dXaHR0cDovL3d3dy5nZW9jYWNoaW5nLmNvbS9ib29rbWFya3Mvdmlldy5hc3B4P2d1aWQ9ZjIxNjA3M2ItZWJlOC00MWQ1LTlmNWUtOTc4NzQ1NTk3ZjhjFVRvRG8mIzM5O3MgKE15c3RlcnlzKWQCAg8VAkxodHRwOi8vd3d3Lmdlb2NhY2hpbmcuY29tL3Byb2ZpbGUvP2d1aWQ9MDU2NGE5NDAtODMxMS00MGVlLThlNzYtN2U5MWIyY2Y2Mjg0BmJsYWZvb2QCAw9kFgRmDxUDAFdodHRwOi8vd3d3Lmdlb2NhY2hpbmcuY29tL2Jvb2ttYXJrcy92aWV3LmFzcHg/Z3VpZD0wYTJlNGIzMi0xMWNkLTRlNDYtYjUy" />
+<input type="hidden" name="__VIEWSTATE1" id="__VIEWSTATE1" value="Yi1hZmE2YmZjODRkZDIEVG9Eb2QCAg8VAkxodHRwOi8vd3d3Lmdlb2NhY2hpbmcuY29tL3Byb2ZpbGUvP2d1aWQ9ODIyYzBmZWItNGRkMC00MzE4LTliZGYtZWExOTc2NDE5M2E4BkguV2FpaWQCOw8PFgIfAmdkFgJmDxYCHwwCAhYEAgEPZBYEZg8VAwBXaHR0cDovL3d3dy5nZW9jYWNoaW5nLmNvbS9ib29rbWFya3Mvdmlldy5hc3B4P2d1aWQ9OGEzZjIxNDgtMzVlYy00M2I2LThlNjUtMDc3NjBlOWE2ZWQyClRvRG8mIzM5O3NkAgIPFQJMaHR0cDovL3d3dy5nZW9jYWNoaW5nLmNvbS9wcm9maWxlLz9ndWlkPTA1NjRhOTQwLTgzMTEtNDBlZS04ZTc2LTdlOTFiMmNmNjI4NAZibGFmb29kAgIPZBYEZg8VAw5BbHRlcm5hdGluZ1Jvd1dodHRwOi8vd3d3Lmdlb2NhY2hpbmcuY29tL2Jvb2ttYXJrcy92aWV3LmFzcHg/Z3VpZD1mMjE2MDczYi1lYmU4LTQxZDUtOWY1ZS05Nzg3NDU1OTdmOGMVVG9EbyYjMzk7cyAoTXlzdGVyeXMpZAICDxUCTGh0dHA6Ly93d3cuZ2VvY2FjaGluZy5jb20vcHJvZmlsZS8/Z3VpZD0wNTY0YTk0MC04MzExLTQwZWUtOGU3Ni03ZTkxYjJjZjYyODQGYmxhZm9vZAI8Dw8WAh8CaGRkAj0PZBYCAgEPDxYCHwQFRS9oaWRlL3dwdGxpc3QuYXNweD9SZWZXcHRJRD0wNzI3MGU4Yy03MmVjLTQ4MjEtOGNiNy1iMDE0ODNmOTRjYjUmRFM9MWRkAj8PDxYGHgZSRFMuSUQLKXZHcm91bmRzcGVhay5XZWIuR1BYLldwdERhdGFTb3VyY2VzLCBUdWNzb24uQ29tbW9uLkxlZ2FjeSwgVmVyc2lvbj0zLjAuNDI5Ni4xNjY1NiwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsAR4HUldQVC5JRCgrBAcxOTk3NTk3HwJoZGQCQA8PFgIfAmdkFgICAQ8PFgQfBAUwL21hcC9iZXRhL2RlZmF1bHQuYXNweD9sYXQ9NTIuMzcyMjUmbG5nPTkuNzM1MzY3HwJnZGQCRA8PFgIfBAUiL3NlZWsvbmVhcmVzdC5hc3B4P3U9aW5kaWFuZXJqb25lc2RkAkYPDxYCHwQFIy9zZWVrL25lYXJlc3QuYXNweD91bD1pbmRpYW5lcmpvbmVzZGQCSA9kFgoCAw8PFgIfBAVVL3NlZWsvbmVhcmVzdC5hc3B4P3R4PTQwODYxODIxLTE4MzUtNGUxMS1iNjY2LThkNDEwNjRkMDNmZSZsYXQ9NTIuMzcyMjUwJmxuZz05LjczNTM2N2RkAgUPDxYCHwQFWS9zZWVrL25lYXJlc3QuYXNweD90eD00MDg2MTgyMS0xODM1LTRlMTEtYjY2Ni04ZDQxMDY0ZDAzZmUmbGF0PTUyLjM3MjI1MCZsbmc9OS43MzUzNjcmZj0xZGQCCQ8PFgIfBAUtL3NlZWsvbmVhcmVzdC5hc3B4P2xhdD01Mi4zNzIyNTAmbG5nPTkuNzM1MzY3ZGQCCw8PFgIfBAUxL3NlZWsvbmVhcmVzdC5hc3B4P2xhdD01Mi4zNzIyNTAmbG5nPTkuNzM1MzY3JmY9MWRkAg8PDxYCHwQFR2h0dHA6Ly93d3cud2F5bWFya2luZy5jb20vZGlyZWN0b3J5LmFzcHg/Zj0xJmxhdD01Mi4zNzIyNTAmbG9uPTkuNzM1MzY3ZGQCSQ8WAh8CaGQCSw8PFgIfBAUlL3Jldmlld3MvaG90ZWxzLWNvb3Jkcy01Mi4zNzIzLDkuNzM1NGRkAk0PZBYCAgEPDxYEHwEFmwc8bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5nZW9jYWNoaW5nLmNvbS9tYXAvYmV0YS9kZWZhdWx0LmFzcHg/bGF0PTUyLjM3MjI1JmxuZz05LjczNTM2NyIgdGFyZ2V0PSJfYmxhbmsiPkdlb2NhY2hpbmcuY29tIEdvb2dsZSBNYXA8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL21hcHMuZ29vZ2xlLmNvbS9tYXBzP3E9Tis1MiVjMiViMCsyMi4zMzUrRSswMDklYzIlYjArNDQuMTIyKyhHQzJKVkVIKSsiIHRhcmdldD0iX2JsYW5rIj5Hb29nbGUgTWFwczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm1hcHF1ZXN0LmNvbS9tYXBzL21hcC5hZHA/c2VhcmNodHlwZT1hZGRyZXNzJmZvcm10eXBlPWxhdGxvbmcmbGF0bG9uZ3R5cGU9ZGVjaW1hbCZsYXRpdHVkZT01Mi4zNzIyNSZsb25naXR1ZGU9OS43MzUzNjcmem9vbT0xMCIgdGFyZ2V0PSJfYmxhbmsiPk1hcFF1ZXN0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYXBzLnlhaG9vLmNvbS9tYXBzX3Jlc3VsdD9sYXQ9NTIuMzcyMjUmbG9uPTkuNzM1MzY3IiB0YXJnZXQ9Il9ibGFuayI+WWFob28gTWFwczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3LmJpbmcuY29tL21hcHMvZGVmYXVsdC5hc3B4P3Y9MiZzcD1wb2ludC41Mi4zNzIyNV85LjczNTM2N19HQzJKVkVIIiB0YXJnZXQ9Il9ibGFuayI+QmluZyBNYXBzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cub3BlbmN5Y2xlbWFwLm9yZy8/em9vbT0xMiZsYXQ9NTIuMzcyMjUmbG9uPTkuNzM1MzY3IiB0YXJnZXQ9Il9ibGFuayI+T3BlbiBDeWNsZSBNYXBzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cub3BlbnN0cmVldG1hcC5vcmcvP21sYXQ9NTIuMzcyMjUmbWxvbj05LjczNTM2NyZ6b29tPTEyIiB0YXJnZXQ9Il9ibGFuayI+T3BlbiBTdHJlZXQgTWFwczwvYT48L2xpPh8CZ2RkAk8PZBYGAgEPFgIfAQUQNjcgTG9nZ2VkIFZpc2l0c2QCBw8PFgIfBAVDfi9zZWVrL2NhY2hlX2xvZ2Jvb2suYXNweD9ndWlkPTA3MjcwZThjLTcyZWMtNDgyMS04Y2I3LWIwMTQ4M2Y5NGNiNWRkAgkPDxYEHwQFPX4vc2Vlay9nYWxsZXJ5LmFzcHg/Z3VpZD0wNzI3MGU4Yy03MmVjLTQ4MjEtOGNiNy1iMDE0ODNmOTRjYjUfAQUiVmlldyB0aGUgSW1hZ2UgR2FsbGVyeSBvZiAzIGltYWdlc2RkAlAPFgIfAQUEdHJ1ZWQCUQ8WAh8BBUpsYXQ9NTIuMzcyMjU7IGxuZz05LjczNTM2NzsgZ3VpZD0nMDcyNzBlOGMtNzJlYy00ODIxLThjYjctYjAxNDgzZjk0Y2I1JzsNCmQCJA8WAh8CaGQCJQ9kFgQCAQ8WAh8BBQdFbmdsaXNoZAIDDxYCHwwCDhYcZg9kFgICAQ8PFggeD0NvbW1hbmRBcmd1bWVudAUFZW4tVVMeC0NvbW1hbmROYW1lBQ1TZXRUZW1wTG9jYWxlHwEFB0VuZ2xpc2geEENhdXNlc1ZhbGlkYXRpb25oZGQCAQ9kFgICAQ8PFggfDwUFZGUtREUfEAUNU2V0VGVtcExvY2FsZR8BBQdEZXV0c2NoHxFoZGQCAg9kFgICAQ8PFggfDwUFZnItRlIfEAUNU2V0VGVtcExvY2FsZR8BBQlGcmFuw6dhaXMfEWhkZAIDD2QWAgIBDw8WCB8PBQVwdC1QVB8QBQ1TZXRUZW1wTG9jYWxlHwEFClBvcnR1Z3XDqnMfEWhkZAIED2QWAgIBDw8WCB8PBQVjcy1DWh8QBQ1TZXRUZW1wTG9jYWxlHwEFCcSMZcWhdGluYR8RaGRkAgUPZBYCAgEPDxYIHw8FBXN2LVNFHxAFDVNldFRlbXBMb2NhbGUfAQUHU3ZlbnNrYR8RaGRkAgYPZBYCAgEPDxYIHw8FBW5sLU5MHxAFDVNldFRlbXBMb2NhbGUfAQUKTmVkZXJsYW5kcx8RaGRkAgcPZBYCAgEPDxYIHw8FBWNhLUVTHxAFDVNldFRlbXBMb2NhbGUfAQUHQ2F0YWzDoB8RaGRkAggPZBYCAgEPDxYIHw8FBXBsLVBMHxAFDVNldFRlbXBMb2NhbGUfAQUGUG9sc2tpHxFoZGQCCQ9kFgICAQ8PFggfDwUFZXQtRUUfEAUNU2V0VGVtcExvY2FsZR8BBQVFZXN0aR8RaGRkAgoPZBYCAgEPDxYIHw8FBW5iLU5PHxAFDVNldFRlbXBMb2NhbGUfAQUOTm9yc2ssIEJva23DpWwfEWhkZAILD2QWAgIBDw8WCB8PBQVrby1LUh8QBQ1TZXRUZW1wTG9jYWxlHwEFCe2VnOq1reyWtB8RaGRkAgwPZBYCAgEPDxYIHw8FBWVzLUVTHxAFDVNldFRlbXBMb2NhbGUfAQUIRXNwYcOxb2wfEWhkZAIND2QWAgIBDw8WCB8PBQVodS1IVR8QBQ1TZXRUZW1wTG9jYWxlHwEFBk1hZ3lhch8RaGRkAjIPFgIfAmdkAkYPFgIfAmdkAgMPFgIfAQUnU2VydmVyOiBXRUIwOTsgQnVpbGQ6IEhvdEZpeF8yMDExMTAwNi4xZGRO4oRLbuj3DKcAO9kYE8VXnnsKXA==" />
+</div>
+
+<script type="text/javascript">
+//<![CDATA[
+var theForm = document.forms['aspnetForm'];
+if (!theForm) {
+ theForm = document.aspnetForm;
+}
+function __doPostBack(eventTarget, eventArgument) {
+ if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
+ theForm.__EVENTTARGET.value = eventTarget;
+ theForm.__EVENTARGUMENT.value = eventArgument;
+ theForm.submit();
+ }
+}
+//]]>
+</script>
+
+
+<script src="/WebResource.axd?d=Dh2VENdI9XyWNN0f7DnYfR8WWRCRIzdVqal2y0yjiQ5nC_eHhLchYgnQDHIk0d3RCcSUMVZ36ciRD0qmhXKmeu3S_RE1&amp;t=634320874095713794" type="text/javascript"></script>
+
+
+<script src="/ScriptResource.axd?d=I9_m2Hb1Tv_B0qTMDG8bMbnkNSHUkv5oUaG9-V5NZ8qQ2VFlu60I8y8gfr3vPmZjbiPnu43MOQdFVDeYF-nDAEKBLmyxD3DCTGmes9NNbbvaDEHyEuuRWgccIkK3ik5TI48YGDxjHjqdn-gTK4Fkgd17LGw1&amp;t=2610f696" type="text/javascript"></script>
+<script src="/ScriptResource.axd?d=8vNbe34dAujgZMPnfnacfjeoweX1vHgyns8KlAV4vpGpsZC9Cf3pro__lv8ekBa0NiCgXGMMolzOUNH__lrnEI_qjlNBIAuuLeemtAXV_i6E0QIMZa8nGSYmWGF5nQOJK3rmZzvTxsr2Mh4Ebdba_1ywGLUSH_U_XIe-jzecfRQwwvjZ0&amp;t=2610f696" type="text/javascript"></script>
+<script src="/ScriptResource.axd?d=Gnz-pB0Z2IsfH2YScdKSgkO1hOrgmFNBbgRo79LmCe5u8yvz2hqloC41HKklcqNF3_85INpNkPiN7mQ-dHXMw5oY47L66JgYKTuGg9sfSqwN9GYwzX73AxdH0PiHLAWx6y2O85heGY4fDsIp69okRSNtUDwsN6hiHkZ_iw2IKe3kTzt70csQKfmb6wXco9Lf1MUY90N8a9cnKNkrik9DgZwHkq41" type="text/javascript"></script>
+<script src="/ScriptResource.axd?d=t90C2GCWy_NihjD3Nztrxc0XtgnbXQaaJeF4BYZFPTfH3MP_NXWehAKW5UI6ARXRXXqk79QbzJTlKo9s-cxRAhDvWefQIKMNFxdSVtJjm1pHHmWiRkxB77B_SDVStRUMP70RSpBywDL9RvowgWPpLqfazonT9zccGk-Q7R3r7b1FXAIwSbOytWb5DK-fLV3EvUnLXd-VosNJN2_YndK80i3O_iCF597qGsoZLF7kuPSKdysbS90kJ56uMNCb8kYrwuH79uHT2QFRgZ-q0nPVzFEXr0kRxl2IsNnXU31pA9nMmMtNUagNi6SIcgnrgcpTeP8hp-T3iSVEpFoDJZVcPWtEVKNviw7Y8LvgjGV5k1orsvnizPHVsTlKMEQACbiqTYB_13CnAW_jFhOswORf8t4683oL0QSnwfBHGQ6iTIPOWisai98YBs1y_ViD4AaDA5iqzsrG3reRqSacD1-6xO3DZhhicqulcdIOfj6vRZN7mLCtDMgqXCqeUMpWm3ElOlqs7xW7-8t8rv0a8Gf6lRR7uT1YFy50HvM9S7xsA--7JW7efwKLkFpcxVGhpO6XXAPhuYkHolYA9AyxBrjo2JnNZ1ehhGc5_r-v-BqQvnrJD7OzPgrcwa_ULn0-CMeV2Yqka9XSYrqJYLGYvufuqJSJQlOqAtO0c8KMTan78oO9UN54EMT7k-Cg94j6CGREAVq1N-yEB-ju9_cO8LYSceagORL_Zxca1RF1eb2wLHTz4Ylb0" type="text/javascript"></script>
+<script src="js/cachedetails.js" type="text/javascript"></script>
+ <script type="text/javascript">
+//<![CDATA[
+Sys.WebForms.PageRequestManager._initialize('ctl00$uxMainScriptManager', 'aspnetForm', [], [], [], 90, 'ctl00');
+//]]>
+</script>
+
+ <div id="Top" class="SkipLinks">
+
+ <a id="ctl00_hlSkipLinksNavigation" accesskey="n" title="Skip to Navigation" href="#Navigation">Skip to Navigation</a> <a id="ctl00_hlSkipLinksContent" accesskey="c" title="Skip to Content" href="#Content">Skip to Content</a>
+
+ </div>
+ <!--[if lte IE 6]>
+ <div class="WarningMessage PhaseOut">
+
+ <p>Groundspeak is phasing out support for older browsers. Visit the <a href="http://support.groundspeak.com/index.php?pg=kb.page&id=215" title="Browser Support Information">Knowledge Books</a> for more information.</p>
+
+ </div>
+ <![endif]-->
+
+
+ <div class="PrintOnly">
+
+ <p><img src="/images/logo_print_bw.png" alt="Geocaching.com" /></p>
+ <hr />
+
+ </div>
+ <header>
+
+ <div class="container">
+
+ <h1 class="Logo span-16"><a href="../default.aspx" id="ctl00_HDHomeLink" title="Geocaching" accesskey="h">Geocaching</a></h1>
+ <div class="ProfileWidget span-8 last">
+
+
+ <div id="ctl00_divSignedIn">
+
+ <p class="Avatar NoBottomSpacing"><a id="ctl00_hlHeaderAvatar" accesskey="p" title="Your Profile" href="../my/default.aspx"><img title="Your Profile" src="http://img.geocaching.com/user/avatar/50f83123-27d8-4dcf-9fde-2af006efaf2b.jpg" alt="" style="border-width:0px;" /></a></p>
+ <p class="SignedInText">
+ <strong>Hello, <a href="/my/default.aspx" title="View Profile for blafoo" class="SignedInProfileLink">blafoo</a></strong> (<a id="ctl00_hlSignOut" accesskey="s" title="Sign Out" href="https://www.geocaching.com/login/default.aspx?RESET=Y&amp;redir=http%3a%2f%2fwww.geocaching.com%2fseek%2fcache_details.aspx%3flog%3dy%26wp%3dGC2JVEH%26numlogs%3d35%26decrypt%3dy">Sign Out</a>)<br />
+ <strong><img src="/images/icons/icon_smile.png" title="Caches Found" /> 436&nbsp;&middot;&nbsp;<img src="/images/challenges/types/sm/challenge.png" title="Challenges Completed" /> 2</strong>
+
+ <span id="ctl00_litPMLevel" style="display: block;">Premium Member</span>
+ </p>
+
+ </div>
+
+ </div>
+ <nav id="Navigation" class="span-24 last">
+
+ <ul class="Menu">
+ <li>
+ <a id="ctl00_hlNavPlay" accesskey="1" title="Play" href="../play/default.aspx">Play &#9660;</a>
+ <ul class="SubMenu">
+ <li><a id="ctl00_hlSubNavGuide" accesskey="i" title="Guide" href="../guide/default.aspx">Guide</a></li>
+ <li><a id="ctl00_hlSubNavHide" accesskey="d" title="Hide &amp; Seek a Cache" href="default.aspx">Hide & Seek a Cache</a></li>
+ <li><a id="ctl00_hlSubNavChallenges" title="Find Challenges" href="../challenges/default.aspx">Find Challenges</a></li>
+ <li><a id="ctl00_hlSubNavTrackables" accesskey="e" title="Find Trackables" href="../track/default.aspx">Find Trackables</a></li>
+ </ul>
+ </li>
+
+ <li id="ctl00_liNavProfile">
+ <a id="ctl00_hlNavProfile" accesskey="2" title="Your Profile" title="[Your Profile ▼]" href="../my/default.aspx">Your Profile &#9660;</a>
+ <ul class="SubMenu">
+ <li><a id="ctl00_hlSubNavQuickView" accesskey="p" title="Quick View" href="../my/default.aspx">Quick View</a></li>
+ <li><a id="ctl00_hlSubNavLists" accesskey="q" title="Lists" href="../my/lists.aspx">Lists</a></li>
+ <li class="ExtraText"><a id="ctl00_hlSubNavGeocaches" accesskey="m" title="Geocaches" class="NoRightPadding" href="../my/geocaches.aspx">Geocaches</a> (<a id="ctl00_hlSubNavGeocachesYours" accesskey="y" title="Yours" class="NoSidePadding" href="../my/owned.aspx">Yours</a>)</li>
+ <li class="ExtraText"><a id="ctl00_hlSubNavProfileTrackables" accesskey="7" title="Trackables" class="NoRightPadding" href="../my/travelbugs.aspx">Trackables</a> (<a id="ctl00_hlSubNavTrackablesYours" accesskey="8" title="Yours" class="NoSidePadding" href="../track/search.aspx?o=1&amp;uid=0564a940-8311-40ee-8e76-7e91b2cf6284">Yours</a>)</li>
+ <li><a id="ctl00_hlSubNavPocketQueries" accesskey="9" title="Pocket Queries" href="../pocket/default.aspx">Pocket Queries</a></li>
+ <li><a id="ctl00_hlSubNavFieldNotes" accesskey="0" title="Field Notes" href="../my/fieldnotes.aspx">Field Notes</a></li>
+ <li><a id="ctl00_hlSubNavProfileChallenges" title="Challenges" href="../my/challenges.aspx">Challenges</a></li>
+ <li><a id="ctl00_hlSubNavAccount" accesskey="a" title="Account Details" href="../account/default.aspx">Account Details</a></li>
+ </ul>
+ </li>
+ <li>
+ <a id="ctl00_hlNavCommunity" accesskey="3" title="Community" href="../community/default.aspx">Community &#9660;</a>
+ <ul class="SubMenu">
+ <li><a id="ctl00_hlSubNavForums" accesskey="f" title="Forums" href="../forums/default.aspx">Forums</a></li>
+ <li><a id="ctl00_hlSubNavBlog" accesskey="b" title="Blog" rel="external" href="http://blog.geocaching.com/">Blog</a></li>
+ <li><a id="ctl00_hlSubNavEvents" accesskey="v" title="Events" href="../calendar/default.aspx">Events</a></li>
+ <li><a id="ctl00_hlSubNavLocal" accesskey="z" title="Local Organizations" href="../organizations/default.aspx">Local Organizations</a></li>
+ </ul>
+ </li>
+ <li><a id="ctl00_hlNavVideos" accesskey="4" title="Videos" href="../videos/default.aspx">Videos</a></li>
+ <li>
+ <a id="ctl00_hlNavResources" accesskey="5" title="Resources" href="../resources/default.aspx">Resources &#9660;</a>
+ <ul class="SubMenu">
+ <li><a id="ctl00_hlSubNavGPSReviews" accesskey="w" title="GPS Reviews" href="/reviews/gps">GPS Reviews</a></li>
+ <li><a id="ctl00_hlSubNavTools" accesskey="o" title="Tools and Downloads" href="../tools/default.aspx">Tools and Downloads</a></li>
+ <li><a id="ctl00_hlSubNavTellaFriend" accesskey="-" title="Tell a Friend" href="../account/SendReferral.aspx">Tell a Friend</a></li>
+ </ul>
+ </li>
+ <li>
+ <a id="ctl00_hlNavShop" accesskey="6" title="Shop" href="../shop/default.aspx">Shop &#9660;</a>
+ <ul class="SubMenu">
+ <li><a id="ctl00_hlSubNavShop" accesskey="j" title="Shop Geocaching" rel="external" href="http://shop.geocaching.com/">Shop Geocaching</a></li>
+ <li><a id="ctl00_hlSubNavGPSGuide" accesskey="k" title="Guide to Buying a GPS Device" href="../about/buying.aspx">Guide to Buying a GPS Device</a></li>
+ </ul>
+ </li>
+ </ul>
+ <p class="SocialMediaIcons NoBottomSpacing right">
+ <a id="ctl00_hlFacebook" title="Follow Us on Facebook" href="http://www.facebook.com/pages/Geocachingcom/45625464679?ref=ts"><img id="ctl00_imgFacebook" title="Follow Us on Facebook" src="../images/home/icon_facebook.png" alt="Follow Us on Facebook" style="border-width:0px;" /></a>&nbsp;&nbsp;&nbsp;<a id="ctl00_hlTwitter" title="Follow Us on Twitter" href="http://twitter.com/GoGeocaching"><img id="ctl00_imgTwitter" title="Follow Us on Twitter" src="../images/home/icon_twitter.png" alt="Follow Us on Twitter" style="border-width:0px;" /></a>&nbsp;&nbsp;&nbsp;<a id="ctl00_hlFlickr" title="Follow Us on Flickr" href="http://www.flickr.com/photos/geocaching_com/"><img id="ctl00_imgFlickr" title="Follow Us on Flickr" src="../images/home/icon_flickr.png" alt="Follow Us on Flickr" style="border-width:0px;" /></a>&nbsp;&nbsp;&nbsp;<a id="ctl00_hlYouTube" title="Follow Us on YouTube" href="http://www.youtube.com/user/GoGeocaching"><img id="ctl00_imgYouTube" title="Follow Us on YouTube" src="../images/home/icon_youtube.png" alt="Follow Us on YouTube" style="border-width:0px;" /></a></p>
+
+ </nav>
+
+ </div>
+
+</header>
+ <section id="Content">
+
+
+ <div id="feedback-tab">
+ <a href="http://feedback.geocaching.com" onclick="UserVoice.Popin.show(uservoiceOptions); return false;">
+ <span id="text">Feedback</span><img id="uv-icon" src="/images/masters/uv-icon-green.png" height="29" width="25" alt="feedback" />
+ </a>
+ </div>
+
+ <div class="container">
+
+ <div id="ctl00_divBreadcrumbs" class="BreadcrumbWidget span-24 last">
+
+ <p><span id="ctl00_Breadcrumbs"><span><a title="Geocaching - The Official Global GPS Cache Hunt Site" href="/">Geocaching</a></span><span> &gt; </span><span><a title="Hide and Seek A Geocache" href="/seek/default.aspx">Hide and Seek A Geocache</a></span><span> &gt; </span><span>Geocache Details</span></span></p>
+
+ </div>
+ <div id="ctl00_divContentMain" class="span-24 last">
+
+
+
+
+ <div class="span-17">
+
+ <div class="span-17 last BottomSpacing" id="cacheDetails">
+ <p class="cacheImage">
+ <a href="/about/cache_types.aspx" target="_blank" title="About Cache Types"><img src="/images/WptTypes/8.gif" alt="Unknown Cache" title="Unknown Cache" width="32" height="32" /></a>
+ </p>
+
+ <h2 class="NoBottomSpacing">
+ <span id="ctl00_ContentBody_CacheName">Auf den Spuren des Indianer Jones Teil 1</span></h2>
+ <span class="minorCacheDetails">
+ A
+ cache
+ by <a href="http://www.geocaching.com/profile/?guid=af08f081-faf4-4992-8268-1e16ab4677a9&wid=07270e8c-72ec-4821-8cb7-b01483f94cb5&ds=2">indianerjones, der merlyn,reflektordetektor</a></span> <span class="minorCacheDetails">
+ Hidden
+ :
+ 28/11/2010</span>
+
+ </div>
+ <div class="CacheStarLabels span-3 BottomSpacing">
+
+ Difficulty:
+ <br />
+ Terrain:
+
+ </div>
+
+ <div class="CacheStarImgs span-2">
+
+ <span id="ctl00_ContentBody_uxLegendScale" title="(1 is easiest, 5 is hardest)"><img src="http://www.geocaching.com/images/stars/stars5.gif" alt="5 out of 5" /></span>
+ <span id="ctl00_ContentBody_Localize12" title="(1 is easiest, 5 is hardest)"><img src="http://www.geocaching.com/images/stars/stars3.gif" alt="3 out of 5" /></span>
+
+ </div>
+
+ <div class="CacheSize span-9">
+
+ <p style="text-align: center;">
+ Size:&nbsp;<span class="minorCacheDetails"><img src="/images/icons/container/small.gif" alt="Size: Small" title="Size: Small" />&nbsp<small>(Small)</small></span></p>
+
+ </div>
+
+ <div class="span-3 right last">
+
+
+ <div class="favorite" class="right">
+ <a id="uxFavContainerLink" href="javascript:void(0);">
+ <div class="favorite-container">
+ <span class="favorite-value">
+ 20</span><br />
+ Favorites
+ <img id="imgFavoriteArrow" src="/images/arrow-down.png" alt="Expand" title="Expand" />
+ </div>
+ </a>
+ <div class="favorite-dropdown">
+ <dl class="top">
+ <dt>
+ <img id="imgFavoriteScore" src="/images/loading3.gif" width="20" height="20" alt="Loading" title="Loading" /></dt>
+ <dd>
+ <span id="uxFavoriteScore">&nbsp;</span></dd>
+ </dl>
+ <dl class="bottom">
+ <dt>
+ <img src="/images/silk/group_go.png" alt="View Who Favorited this Cache" title="View Who Favorited this Cache" /></dt>
+ <dd>
+ <a id="hlViewWhoFavorited" title="View Who Favorited this Cache" href="/seek/cache_favorited.aspx?guid=07270e8c-72ec-4821-8cb7-b01483f94cb5">View Who Favorited this Cache</a></dd>
+ <dt>
+ <img src="/images/silk/help.png" alt="About Favorites" title="About Favorites" /></dt>
+ <dd>
+ <a id="hlAboutFavorites" title="About Favorites" href="http://support.groundspeak.com/index.php?pg=kb.page&amp;id=287" target="_blank">About Favorites</a>
+ </dd>
+ </dl>
+ </div>
+ </div>
+
+
+ </div>
+
+ <p class="Clear">
+ </p>
+ <p class="Warning NoBottomSpacing">This is a Premium Member Only cache.</p>
+
+
+
+ <div class="CacheInformationTable">
+ <div class="LocationData">
+ <p class="NoBottomSpacing">
+ <span id="ctl00_ContentBody_LatLon" style="font-weight:bold;">N 52° 22.335 E 009° 44.122</span>&nbsp;
+ <small>
+ <a id="ctl00_ContentBody_lnkConversions" title="Other Conversions" href="/wpt/?lat=52.37225&amp;lon=9.735367&amp;detail=1" target="_blank">Other Conversions</a>
+ </small>
+ <br />
+ <span id="ctl00_ContentBody_LocationSubPanel" style="display:inline;"><small>
+ UTM: 32U E 550063 N 5802696
+ </small>
+ <br />
+ <span id="ctl00_ContentBody_lblDistFromHome"><img src="/images/icons/compass/SE.gif" alt="SE" />&nbsp;SE 10.8km from your home location</span>
+ <br />
+ </span>
+ <span id="ctl00_ContentBody_Location">In Niedersachsen, Germany</span>
+ </p>
+ </div>
+ <div id="Print">
+ <p class="NoBottomSpacing">
+ <span id="ctl00_ContentBody_uxPrintHeader" style="font-weight:bold;">Print</span>:
+ <br />
+ <small>
+ <a id="ctl00_ContentBody_lnkPrintFriendly" class="lnk" href="cdpf.aspx?guid=07270e8c-72ec-4821-8cb7-b01483f94cb5" target="_blank">
+ <img src="/images/silk/printer.png" alt="Print" title="Print" width="16" height="16" />&nbsp; <span>
+ No Logs
+ </span>
+ </a>&nbsp;
+ <a id="ctl00_ContentBody_lnkPrintFriendly5Logs" href="cdpf.aspx?guid=07270e8c-72ec-4821-8cb7-b01483f94cb5&amp;lc=5" target="_blank">5 Logs</a>&nbsp;
+ <a id="ctl00_ContentBody_lnkPrintFriendly10Logs" href="cdpf.aspx?guid=07270e8c-72ec-4821-8cb7-b01483f94cb5&amp;lc=10" target="_blank">10 Logs</a>&nbsp;&middot;&nbsp;
+ <a id="ctl00_ContentBody_lnkPrintDirectionsSimple" class="lnk" href="http://maps.google.com/maps?f=d&amp;hl=en&amp;saddr=52.4162,9.594117 (Home Location)&amp;daddr=52.37225,9.735367(Auf+den+Spuren+des+Indianer+Jones+Teil+1)" target="_blank">
+ <img src="/images/silk/car.png" alt="Driving Directions" title="Driving Directions" width="16" height="16" />&nbsp; <span>
+ Driving Directions
+ </span>
+ </a></small></p>
+ <div id="ctl00_ContentBody_uxPrintPDFSection" style="display: none;">
+ <p>
+ <img src="/images/pdf_icon.gif" width="16" height="16" alt="PDF" title="PDF" />&nbsp;<small>[PDF:]&nbsp;<a id="ctl00_ContentBody_lnkPDFPrintNoLogs" href="javascript:pl(0);">No Logs</a>&nbsp;<a id="ctl00_ContentBody_lnkPDFPrint5Logs" href="javascript:pl(5);">5 Logs</a>&nbsp;<a id="ctl00_ContentBody_lnkPDFPrint10Logs" href="javascript:pl(10);">10 Logs</a></small></p>
+ </div>
+ </div>
+ <div id="Download">
+ <p class="NoBottomSpacing">
+ <span id="ctl00_ContentBody_uxDownloadLabel" style="font-weight:bold;">Download</span>:
+ <small>
+ <a id="ctl00_ContentBody_lnkDownloads" title="Read about waypoint downloads" href="/software/default.aspx">Read about waypoint downloads</a>
+ </small>
+ </p>
+
+ <p class="NoBottomSpacing TopSpacing">
+ <input type="submit" name="ctl00$ContentBody$btnLocDL" value="LOC waypoint file" id="ctl00_ContentBody_btnLocDL" />
+ |
+ <input type="submit" name="ctl00$ContentBody$btnGPXDL" value="GPX file" id="ctl00_ContentBody_btnGPXDL" />
+ |
+ <input type="submit" name="ctl00$ContentBody$btnSendToGPS" value="Send to My GPS" onclick="s2gps(&#39;07270e8c-72ec-4821-8cb7-b01483f94cb5&#39;);return false;" id="ctl00_ContentBody_btnSendToGPS" />
+ |
+ <input type="submit" name="ctl00$ContentBody$btnSendToPhone" value="Send to My Phone" onclick="s2phone(&#39;GC2JVEH&#39;);return false;" id="ctl00_ContentBody_btnSendToPhone" />
+ </p>
+
+ </div>
+ </div>
+
+ <fieldset class="DisclaimerWidget">
+ <legend class="warning">
+ Please note
+ </legend>
+ <p class="NoBottomSpacing">
+ Use of geocaching.com services is subject to the terms and conditions <a href="/about/disclaimer.aspx" title="Read Our Disclaimer">in our disclaimer</a>.
+ </p>
+ </fieldset>
+
+
+ <fieldset class="NotesWidget">
+ <legend class="note">
+ Personal Cache Note
+ </legend>
+ <img src="/images/silk/help.png" id="pcn_help" class="CacheNoteHelpImg" />
+ <p id="cache_note" class="NoBottomSpacing">
+ </p>
+ </fieldset>
+
+ <div class="UserSuppliedContent">
+
+ <span id="ctl00_ContentBody_ShortDescription">Aufgabe zum Start: Finde die Schattenlinie. !!!Die Skizze mit den
+Zahlen solltest du mitnehmen!!! Du solltest den cache so beginnen,
+das du station 2 in der Zeit von mo- fr von 11-19 Uhr und sa
+von11-16 Uhr erledigt hast.
+</span>
+
+ </div>
+
+ <br />
+ <div class="UserSuppliedContent">
+
+ <span id="ctl00_ContentBody_LongDescription"><img src=
+"http://img.geocaching.com/cache/1711f8a1-796a-405b-82ba-8685f2e9f024.jpg" /></span>
+
+ </div>
+
+ <p>
+
+
+ </p>
+ <p>
+ <strong>
+ Additional Hints</strong>
+ (<a id="ctl00_ContentBody_lnkDH" title="Decrypt" onclick="return false;" href="#">No hints available.</a>)</p>
+ <div id="div_hint" class="span-8 WrapFix">
+ </div>
+ <div id='dk' style="display: block;" class="span-9 last">
+ <span id="ctl00_ContentBody_EncryptionKey" class="right"></span>
+ </div>
+ <div class="Clear">
+ </div>
+
+ </div>
+
+
+ <div class="span-6 prepend-1 last">
+
+
+ <div id="ctl00_ContentBody_CoordInfoLinkControl1_uxCoordInfoLinkPanel" class="CoordInfoLinkWidget">
+
+ <p>
+ <a href="#" class="CoordInfoLink">
+ <span id="ctl00_ContentBody_CoordInfoLinkControl1_uxCoordInfoCode" class="CoordInfoCode">GC2JVEH</span>
+ <span class="arrow">&#9660;</span> </a>
+ </p>
+
+</div>
+<div id="dlgClipboard">
+ <input type="text" class="TextFormat" />
+ <a href="#" onclick="$('#dlgClipboard').hide();return false;">
+ <img src="/images/stockholm/mini/close.gif" alt="Close" title="Close" /></a>
+</div>
+
+<script type="text/javascript">
+ $("a.CoordInfoLink").click(function (e) {
+ e.preventDefault();
+
+ $("#dlgClipboard")
+ .show()
+ .position({
+ of: $("a.CoordInfoLink"),
+ my: "right top",
+ at: "right bottom",
+ offset: "0 5"
+ })
+ .find("input")
+ .val('http://coord.info/' + $('.CoordInfoCode').text())
+ .focus()
+ .select();
+
+ });
+
+ $(document).mouseup(function (e) {
+ if ($(e.target).parent("div#dlgClipboard").length == 0) {
+ $("div#dlgClipboard").hide();
+ }
+ });
+</script>
+
+
+<div class="CacheDetailNavigationWidget NoPrint">
+
+ <h3 class="WidgetHeader">
+ <img id="ctl00_ContentBody_GeoNav2_uxHeaderImage" src="../images/stockholm/16x16/home.gif" alt="Navigation" style="border-width:0px;" />
+ Navigation
+ </h3>
+ <div class="WidgetBody">
+
+ <ul>
+ <li><a href="/seek/log.aspx?ID=1997597" class="lnk"><img src="/images/stockholm/16x16/comment_add.gif" />&nbsp;<span>Log your visit</span></a></li>
+<li><a href="/seek/gallery.aspx?guid=07270e8c-72ec-4821-8cb7-b01483f94cb5" class="lnk"><img src="/images/stockholm/16x16/photos.gif" />&nbsp;<span>View Gallery</span></a></li>
+<li><a href="/my/watchlist.aspx?w=1997597" class="lnk"><img src="/images/stockholm/16x16/icon_watchlist.gif" />&nbsp;<span>Watch Listing</span></a></li>
+<li><a href="/bookmarks/ignore.aspx?guid=07270e8c-72ec-4821-8cb7-b01483f94cb5&WptTypeID=8" class="lnk"><img src="/images/stockholm/16x16/cross.gif" />&nbsp;<span>Ignore Listing</span></a></li>
+<li><a href="/bookmarks/mark.aspx?guid=07270e8c-72ec-4821-8cb7-b01483f94cb5&WptTypeID=8" class="lnk"><img src="/images/stockholm/16x16/book_open_mark.gif" />&nbsp;<span>Bookmark Listing</span></a></li>
+
+ </ul>
+
+ </div>
+
+
+</div>
+
+
+ <div id="ctl00_ContentBody_uxStatusInformation" class="StatusInformationWidget">
+
+
+
+ <div id="ctl00_ContentBody_pnlWatchedCount">
+
+ <p>
+ <img src="/images/icons/icon_watchlist.gif" alt="Watching" /> 16 user(s) watching this cache.</p>
+
+ </div>
+
+
+</div>
+
+ <p class="TopSpacing">
+ <a href="#" id="lnkSmallMap">
+ <img id="mapPreview" src='http://maps.google.com/maps/api/staticmap?zoom=10&size=228x150&markers=icon:http://www.geocaching.com/images/wpttypes/pins/8.png|52.37225,9.735367&sensor=false'
+ style="border: solid 1px #4D6180;" alt="Map Image" title="Map Image" width="228" height="150" />
+ </a>
+ </p>
+
+
+ <div class="CacheDetailNavigationWidget BottomSpacing">
+
+ <h3 class="WidgetHeader">
+
+ <img src="/images/icon_Boardattention.gif" height="16" width="16" alt="Info" title="Info" />
+ Attributes</h3>
+ <div class="WidgetBody">
+ <img src="/images/attributes/winter-yes.gif" alt="available in winter" title="available in winter" width="30" height="30" /> <img src="/images/attributes/flashlight-yes.gif" alt="flashlight required" title="flashlight required" width="30" height="30" /> <img src="/images/attributes/stealth-yes.gif" alt="stealth required" title="stealth required" width="30" height="30" /> <img src="/images/attributes/parking-yes.gif" alt="parking available" title="parking available" width="30" height="30" /> <img src="/images/attributes/AbandonedBuilding-yes.gif" alt="in abandoned structure" title="in abandoned structure" width="30" height="30" /> <img src="/images/attributes/hike_med-yes.gif" alt="hike between 1km-10km" title="hike between 1km-10km" width="30" height="30" /> <img src="/images/attributes/rappelling-yes.gif" alt="climbing gear" title="climbing gear" width="30" height="30" /> <img src="/images/attributes/attribute-blank.gif" alt="blank" title="blank" width="30" height="30" /> <img src="/images/attributes/attribute-blank.gif" alt="blank" title="blank" width="30" height="30" /> <img src="/images/attributes/attribute-blank.gif" alt="blank" title="blank" width="30" height="30" /> <img src="/images/attributes/attribute-blank.gif" alt="blank" title="blank" width="30" height="30" /> <img src="/images/attributes/attribute-blank.gif" alt="blank" title="blank" width="30" height="30" /> <p class="NoBottomSpacing"><small><a href="/about/icons.aspx" title="What are Attributes?">What are Attributes?</a></small></p>
+ </div>
+
+ </div>
+
+
+ <div id="ctl00_ContentBody_uxBanManWidget" class="CacheDetailPageAds clear">
+
+ <div id="ctl00_ContentBody_divContentSide">
+
+ <p class="NoBottomSpacing">
+ <span id="ctl00_ContentBody_ADModules_09"><iframe type="iframe" src="http://ads.groundspeak.com/a.aspx?ZoneID=9&Task=Get&SiteID=1&X='ca82bf08f7184daf8b669d5cc62a597f'" width="120" height="240" Marginwidth="0" Marginheight="0" Hspace="0" Vspace="0" Frameborder="0" Scrolling="no" style="width:120px;Height:240px;"><a href="http://ads.groundspeak.com/a.aspx?ZoneID=9&Task=Click&;Mode=HTML&SiteID=1" target="_blank"><img src="http://ads.groundspeak.com/a.aspx?ZoneID=9&Task=Get&Mode=HTML&SiteID=1" width="120" height="240" border="0" alt="" /></a></iframe></span>
+ </p>
+ <p class="AlignCenter">
+ <small><a href="../about/advertising.aspx" id="ctl00_ContentBody_advertisingWithUs" title="Advertising with Us">Advertising with Us</a></small></p>
+
+ </div>
+
+</div>
+
+
+
+ <div class="GoogleAds AlignCenter BottomSpacing">
+ </div>
+ <div class="clear">
+ </div>
+
+ <span id="ctl00_ContentBody_lnkTravelBugs"></span>
+
+
+<div class="CacheDetailNavigationWidget">
+
+ <h3 class="WidgetHeader">
+ <img id="ctl00_ContentBody_uxTravelBugList_uxInventoryIcon" src="../images/WptTypes/sm/tb_coin.gif" alt="Inventory" style="height:16px;width:16px;border-width:0px;" />
+ <span id="ctl00_ContentBody_uxTravelBugList_uxInventoryLabel">Inventory</span>
+ </h3>
+ <div class="WidgetBody">
+
+
+ <ul>
+
+ <li>
+ <a href="http://www.geocaching.com/track/details.aspx?guid=e32919d3-eb95-4d03-a6c4-d0adfff97865" class="lnk">
+ <img src="http://www.geocaching.com/images/wpttypes/sm/21.gif" width="16" /><span>Ichthyosaurus Humerus</span></a>
+ </li>
+
+ </ul>
+
+ <p class="NoBottomSpacing">
+
+
+ <div id="ctl00_ContentBody_uxTravelBugList_uxTrackableItemsLinks">
+
+ <a id="ctl00_ContentBody_uxTravelBugList_uxViewAllTrackableItems" href="../track/search.aspx?wid=07270e8c-72ec-4821-8cb7-b01483f94cb5&amp;ccid=1997597">View all Trackables</a>
+
+</div>
+ <a id="ctl00_ContentBody_uxTravelBugList_uxTrackableItemsHistory" href="../track/search.aspx?wid=07270e8c-72ec-4821-8cb7-b01483f94cb5">View past Trackables</a>
+ </p>
+ <p class="NoBottomSpacing">
+ <a id="ctl00_ContentBody_uxTravelBugList_uxWhatIsATravelBug" title="What is a Travel Bug?" href="../track/faq.aspx">What is a Travel Bug?</a>
+ </p>
+
+ </div>
+
+
+</div>
+
+
+<div class="CacheDetailNavigationWidget">
+
+ <h3 class="WidgetHeader">
+ <img src="/images/stockholm/16x16/pages.gif" width="16" height="16" alt="" />&nbsp;Bookmark Lists</h3>
+ <div class="WidgetBody">
+
+
+ <ul>
+
+ <li style='padding: .5em;' class=''>
+ <a href="http://www.geocaching.com/bookmarks/view.aspx?guid=760eb314-838d-4afc-aa5b-45b2212ee49c">
+ T5 absolviert</a><br />
+ <small><em>
+ by
+ <a href="http://www.geocaching.com/profile/?guid=5c4b0915-5cec-4fa1-8afd-4b3ca67e004e">
+ kai2707</a> </em></small>
+ </li>
+
+ <li style='padding: .5em;' class='AlternatingRow'>
+ <a href="http://www.geocaching.com/bookmarks/view.aspx?guid=f216073b-ebe8-41d5-9f5e-978745597f8c">
+ ToDo&#39;s (Mysterys)</a><br />
+ <small><em>
+ by
+ <a href="http://www.geocaching.com/profile/?guid=0564a940-8311-40ee-8e76-7e91b2cf6284">
+ blafoo</a> </em></small>
+ </li>
+
+ <li style='padding: .5em;' class=''>
+ <a href="http://www.geocaching.com/bookmarks/view.aspx?guid=0a2e4b32-11cd-4e46-b52b-afa6bfc84dd2">
+ ToDo</a><br />
+ <small><em>
+ by
+ <a href="http://www.geocaching.com/profile/?guid=822c0feb-4dd0-4318-9bdf-ea19764193a8">
+ H.Waii</a> </em></small>
+ </li>
+
+ </ul>
+
+ <p class="NoBottomSpacing">
+ <a href="/bookmarks/default.aspx?guid=07270e8c-72ec-4821-8cb7-b01483f94cb5&WptTypeID=8" title="View all bookmark lists...">View all bookmark lists...</a>
+ </p>
+
+ </div>
+
+
+</div>
+
+
+
+
+<div class="CacheDetailNavigationWidget">
+
+ <h3 class="WidgetHeader">
+ <img src="/images/stockholm/16x16/pages.gif" width="16" height="16" alt="" />&nbsp;My Bookmark Lists</h3>
+ <div class="WidgetBody">
+
+
+ <ul>
+
+ <li style='padding: .5em;' class=''>
+ <a href="http://www.geocaching.com/bookmarks/view.aspx?guid=8a3f2148-35ec-43b6-8e65-07760e9a6ed2">
+ ToDo&#39;s</a><br />
+ <small><em>
+ by
+ <a href="http://www.geocaching.com/profile/?guid=0564a940-8311-40ee-8e76-7e91b2cf6284">
+ blafoo</a> </em></small>
+ </li>
+
+ <li style='padding: .5em;' class='AlternatingRow'>
+ <a href="http://www.geocaching.com/bookmarks/view.aspx?guid=f216073b-ebe8-41d5-9f5e-978745597f8c">
+ ToDo&#39;s (Mysterys)</a><br />
+ <small><em>
+ by
+ <a href="http://www.geocaching.com/profile/?guid=0564a940-8311-40ee-8e76-7e91b2cf6284">
+ blafoo</a> </em></small>
+ </li>
+
+ </ul>
+
+ <p class="NoBottomSpacing">
+
+ </p>
+
+ </div>
+
+
+</div>
+
+
+
+
+ </div>
+
+
+ <div class="span-24 last">
+
+ <p>
+ &nbsp;
+ <br />
+
+
+ </p>
+
+ <div id="uxlrgMap" class="fr">
+
+ <div class="CDMapWidget">
+ <p class="WidgetHeader NoBottomSpacing">
+ <a id="ctl00_ContentBody_uxViewLargerMap" title="View Larger Map" class="lnk" href="/map/beta/default.aspx?lat=52.37225&amp;lng=9.735367" target="_blank"><img src="/images/silk/map_go.png" /> <span>View Larger Map</span></a>
+ | <a href="#" id="lnk_slippyMap">View Dynamic Map</a>
+ </p>
+ <div style="border: 1px solid #B0B0B0; width: 325px; height: 325px;">
+ <img id="staticMap" src="/images/blank.gif" style="width: 325px; height: 325px;" />
+ </div>
+ <div id="map_canvas" style="width: 325px; height: 325px; display: none;">
+ </div>
+ <p class="WidgetFooter">
+ <a id="ctl00_ContentBody_uxNotesAboutPrinting" href="#mapPrintingNotes">Notes about Printing Maps</a></p>
+ </div>
+ <div style="display: none;">
+ <div id="mapPrintingNotes">
+ To print the map in Firefox and Opera, enable background images in the print dialog.
+ <a href="#dlgMapPrintWarning" class="dialog" onclick="$.fancybox.close()">
+ Close
+ </a>
+ </div>
+ </div>
+
+</div>
+
+ <p class="NoPrint">
+ <span id="ctl00_ContentBody_uxFindLinksHeader" style="font-weight:bold;">Find...</span>
+ <br />
+ <span id="ctl00_ContentBody_FindText"></span>
+ </p>
+ <ul class="NoPrint">
+ <li>
+ ...other caches&nbsp;
+ <a id="ctl00_ContentBody_uxFindLinksHiddenByThisUser" href="/seek/nearest.aspx?u=indianerjones">hidden</a>&nbsp;
+ or&nbsp;
+ <a id="ctl00_ContentBody_uxFindLinksFoundByThisUser" href="/seek/nearest.aspx?ul=indianerjones">found</a>&nbsp;
+ by this user
+ </li>
+
+ <li>
+ ...nearby&nbsp;<a id="ctl00_ContentBody_uxFindLinksNearbyCachesOfType" href="/seek/nearest.aspx?tx=40861821-1835-4e11-b666-8d41064d03fe&amp;lat=52.372250&amp;lng=9.735367">caches of this type</a>,
+ <a id="ctl00_ContentBody_uxFindLinksNearbyNotFound" href="/seek/nearest.aspx?tx=40861821-1835-4e11-b666-8d41064d03fe&amp;lat=52.372250&amp;lng=9.735367&amp;f=1">that I haven't found</a>
+ </li>
+ <li>
+ ...all nearby&nbsp;<a id="ctl00_ContentBody_uxFindLinksAllNearbyCaches" href="/seek/nearest.aspx?lat=52.372250&amp;lng=9.735367">caches</a>,
+ <a id="ctl00_ContentBody_uxFindLinksAllNearbyNotFound" href="/seek/nearest.aspx?lat=52.372250&amp;lng=9.735367&amp;f=1">that I haven't found</a>
+ </li>
+ <li>
+ ...all nearby&nbsp;<a id="ctl00_ContentBody_uxFindLinksWaymarking" href="http://www.waymarking.com/directory.aspx?f=1&amp;lat=52.372250&amp;lon=9.735367">waymarks on Waymarking.com</a>
+ </li>
+
+
+ <li>
+ ...nearby&nbsp;<a id="ctl00_ContentBody_uxFindLinksHotels" href="/reviews/hotels-coords-52.3723,9.7354">Hotels</a>
+ </li>
+ </ul>
+ <p class="NoPrint">
+ <span id="ctl00_ContentBody_uxMapLinkHeader" style="font-weight:bold;">For online maps...</span>
+ </p>
+ <span class="NoPrint">
+
+<ul>
+ <span id="ctl00_ContentBody_MapLinks_MapLinks"><li><a href="http://www.geocaching.com/map/beta/default.aspx?lat=52.37225&lng=9.735367" target="_blank">Geocaching.com Google Map</a></li><li><a href="http://maps.google.com/maps?q=N+52%c2%b0+22.335+E+009%c2%b0+44.122+(GC2JVEH)+" target="_blank">Google Maps</a></li><li><a href="http://www.mapquest.com/maps/map.adp?searchtype=address&formtype=latlong&latlongtype=decimal&latitude=52.37225&longitude=9.735367&zoom=10" target="_blank">MapQuest</a></li><li><a href="http://maps.yahoo.com/maps_result?lat=52.37225&lon=9.735367" target="_blank">Yahoo Maps</a></li><li><a href="http://www.bing.com/maps/default.aspx?v=2&sp=point.52.37225_9.735367_GC2JVEH" target="_blank">Bing Maps</a></li><li><a href="http://www.opencyclemap.org/?zoom=12&lat=52.37225&lon=9.735367" target="_blank">Open Cycle Maps</a></li><li><a href="http://www.openstreetmap.org/?mlat=52.37225&mlon=9.735367&zoom=12" target="_blank">Open Street Maps</a></li></span>
+</ul>
+
+ </span>
+ <p class="NoPrint">
+ <a href="http://img.geocaching.com/cache/1711f8a1-796a-405b-82ba-8685f2e9f024.jpg" rel="lightbox" class="lnk"><img class="StatusIcon" src="/images/stockholm/16x16/images.gif" alt="Photos" title="Photos" /><span>indy mit text netz Kopie</span></a><br /><a href="http://img.geocaching.com/cache/62f39911-86ab-422c-8322-259d0f118848.jpg" rel="lightbox" class="lnk"><img class="StatusIcon" src="/images/stockholm/16x16/images.gif" alt="Photos" title="Photos" /><span>Spoiler st.1</span></a><br /><a href="http://img.geocaching.com/cache/4ea4a2fd-8fb5-4e0b-a6c0-08ac6e90ecff.jpg" rel="lightbox" class="lnk"><img class="StatusIcon" src="/images/stockholm/16x16/images.gif" alt="Photos" title="Photos" /><span>Zahlenpause</span></a><br />ausdrucken und mitnehmen f&#252;r den start<br /><br />
+ </p>
+
+ <div class="InformationWidget Clear">
+ <h3>
+ 67 Logged Visits</h3>
+ <div class="EncryptDecrypt">
+ <a href="#" class="decrypt-link">
+ [Decrypt]
+ </a>
+ </div>
+ <span id="ctl00_ContentBody_lblFindCounts"><p class="LogTotals"><img src="/images/icons/icon_smile.gif" alt="Found it" title="Found it" /> 57&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="/images/icons/icon_note.gif" alt="Write note" title="Write note" /> 7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="/images/icons/icon_disabled.gif" alt="Temporarily Disable Listing" title="Temporarily Disable Listing" /> 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="/images/icons/icon_enabled.gif" alt="Enable Listing" title="Enable Listing" /> 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="/images/icons/icon_greenlight.gif" alt="Publish Listing" title="Publish Listing" /> 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p></span>
+ <p class="HalfLeft">
+ <a id="ctl00_ContentBody_uxLogbookLink" href="cache_logbook.aspx?guid=07270e8c-72ec-4821-8cb7-b01483f94cb5">View Logbook</a> | <a id="ctl00_ContentBody_uxGalleryImagesLink" DisplayFormatPlural="View the Image Gallery of {0:#,###} images" DisplayFormatSingular="View the Image Gallery" href="gallery.aspx?guid=07270e8c-72ec-4821-8cb7-b01483f94cb5">View the Image Gallery of 3 images</a>
+ </p>
+ <p class="NoBottomSpacing AlignRight">
+ <span class="Warning">**Warning!</span> <a href="/about/glossary.aspx#spoiler" title="Spoilers">Spoilers</a> may be included in the descriptions or links.
+ </p>
+ </div>
+
+ <div id="cache_logs_container">
+ <table id="cache_logs_table" class="LogsTable NoBottomSpacing">
+ <tbody>
+ </tbody>
+ <tfoot>
+ <tr>
+ <td class="AlignCenter">
+ <div id="pnlLazyLoad" style="display: none;">
+ <img src="/images/loading2.gif" class="StatusIcon" alt="Loading" />
+ Loading Cache Logs...
+ </div>
+ <div id="pnlButtonLoad" style="display: none;">
+ <a class="MobileButton">
+ Load More Logs...</a>
+ </div>
+ </td>
+ </tr>
+ </tfoot>
+ </table>
+ </div>
+ <p>
+ <small>
+ Current Time: <time datetime="2011-10-08T01:36:00Z">10/8/2011 1:36:00 AM Pacific Daylight Time (8:36 AM GMT)</time><br/>Last Updated: <time class="timeago" datetime="2011-09-27T19:36:24Z">2011-09-27T19:36:24Z</time> on 9/27/2011 12:36:24 PM Pacific Daylight Time (7:36 PM GMT) <br/>Rendered From:Unknown<br />Coordinates are in the WGS84 datum
+ </small>
+ </p>
+
+
+ </div>
+ <script id="tmpl_CacheLogRow" type="text/x-jquery-tmpl">
+ <tr class="log-row" data-encoded="${IsEncoded}" >
+ <td>
+ <div class="FloatLeft LogDisplayLeft" >
+ <p class="logOwnerProfileName">
+ <strong><a id="143568283" href="/profile/?guid=${AccountGuid}">${UserName}</a></strong></p>
+ <p class="logOwnerBadge">
+ <img title="${creator.GroupTitle}" src="${creator.GroupImageUrl}" align="absmiddle" style="vertical-align:middle">${creator.GroupTitle}
+ </p>
+ <p class="logOwnerAvatar">
+ <a href="/profile/?guid=${AccountGuid}">
+ {{if includeAvatars && AvatarImage}}
+ <img width="48" height="48" src="http://img.geocaching.com/user/avatar/${AvatarImage}">
+ {{else includeAvatars }}
+ <img width="48" height="48" src="/images/default_avatar.jpg">
+ {{/if}}
+ </a></p>
+ <p class="logOwnerStats">
+
+ {{if GeocacheFindCount > 0 }}
+ <img title="Caches Found" src="/images/icons/icon_smile.png"> ${GeocacheFindCount}
+ {{/if}}
+ {{if GeocacheFindCount > 0 && ChallengesCompleted > 0 }}
+ &nbsp;·&nbsp;
+ {{/if}}
+ {{if ChallengesCompleted > 0 }}
+ <img title="Challenges Completed" src="/images/challenges/types/sm/challenge.png"> ${ChallengesCompleted}
+ {{/if}}
+ </p>
+ </div>
+ <div class="FloatLeft LogDisplayRight">
+ <div class="HalfLeft LogType">
+ <strong>
+ <img title="${LogType}" alt="${LogType}" src="/images/icons/${LogTypeImage}">&nbsp;${LogType}</strong></div>
+ <div class="HalfRight AlignRight">
+ <span class="minorDetails LogDate">${Visited}</span></div>
+ <div class="Clear LogContent">
+ {{if LatLonString.length > 0}}
+ <strong>${LatLonString}</strong>
+ {{/if}}
+ <p class="LogText">{{html LogText}}</p>
+ {{if Images.length > 0}}
+ <table cellspacing="0" cellpadding="3" class="LogImagesTable">
+ {{tmpl(Images) "tmplCacheLogImages"}}
+ </table>
+ {{/if}}
+ <div class="AlignRight">
+ <small><a title="View Log" href="log.aspx?LUID=${LogGuid}" target="_blank">
+ {{if (userInfo.ID==AccountID)}}
+ View / Edit Log / Images
+ {{else}}
+ View Log
+ {{/if}}
+ </a></small>&nbsp;
+ {{if (userInfo.ID==AccountID)}}
+ <small><a title="Upload Image" href="upload.aspx?LID=${LogID}" target="_blank">Upload Image</a></small>
+ {{/if}}
+ </div>
+ </div>
+ </div>
+ </td>
+ </tr>
+ </script>
+ <script id="tmpl_CacheLogImages" type="text/x-jquery-tmpl">
+ <tr>
+ <td>
+ <a class="tb_images lnk" rel="tb_images[grp${LogID}]" href="http://img.geocaching.com/cache/log/${FileName}" data-title="{{tmpl "tmplCacheLogImagesTitle"}}">
+ <img title="Photo" alt="Photo" src="/images/silk/photo.png">
+ <span>${Name}</span>
+ </a>
+ </td>
+ </tr>
+ </script>
+
+ <script id="tmpl_CacheLogImagesTitle" type="text/x-jquery-tmpl">
+ &lt;span class=&quot;LogImgTitle&quot;&gt; ${Name} &nbsp;&lt;/span&gt;&lt;span class=&quot;LogImgLink&quot;&gt;
+
+ &lt;a target=&quot;_blank&quot; href=&quot;log.aspx?LUID=${$item.parent.parent.data.LogGuid}&IID=${ImageGuid}&quot;>View Log&lt;/a&gt;&nbsp;
+
+ &lt;a href=&quot;http://img.geocaching.com/cache/log/${FileName}&quot;>Print Picture&lt;/a&gt;&lt;/span&gt;
+
+ {{if (Descr && Descr.length > 0) }}
+ &lt;br /&gt;&lt;p class=&quot;LogImgDescription&quot;&gt;${Descr}&lt;/p&gt;
+ {{/if}}
+ </script>
+
+
+ <script type="text/javascript">
+ <!--
+ var dh, lat, lng, guid;
+
+ dh = 'true';
+
+ lat=52.37225; lng=9.735367; guid='07270e8c-72ec-4821-8cb7-b01483f94cb5';
+
+
+ function s2gps(guid) {
+ var w = window.open('sendtogps.aspx?guid=' + guid, 's2gps', config='width=450,height=450,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,directories=no,status=no');
+ w.focus();
+ }
+
+ function s2phone(wpid) {
+ window.location.href='sendtophone.aspx?gc=' + wpid;
+ }
+
+ function pl(lc) {
+ document.location.href='cache_details_print.aspx?guid=' + guid + '&numlogs=' + lc +'&pt=full&lt=letter&decrypt='+ ((dh)?'y':'n');
+ }
+ function setNotification(id) {
+ //new Effect.Highlight(id, {startcolor:'#ffffff', endcolor:'#ffff99', restorecolor:'#ffff99', duration:3.0, queue:'front'});
+ //new Effect.Highlight(id, {startcolor:'#ffff99', endcolor:'#ffffff', restorecolor:'#ffffff', duration:5.0, queue:'end'});
+ }
+ function cmo(id) {
+ //new Effect.Fade(id);
+ Cookie.set('sn', true);
+ }
+ function pp(img) {
+ var w = window.open(img);
+ w.focus();
+ }
+
+ //-->
+ </script>
+ <script language="javascript" type="text/javascript">
+ var map, bounds;
+ var canUpdateFavoriteStatus = true;
+ var decryptLogs = (urlParams["decrypt"] && urlParams["decrypt"] == "y") ? true : false;
+ var logInitialLoaded = false;
+ var $tfoot = $("#cache_logs_table").find("tfoot");
+ var currentPageIdx = 1, totalPages = 1, pageSize = 10;
+ var isBusy = false;
+
+ var locString = {
+ decrypt: 'Decrypt',
+ encrypt: 'Encrypt'
+ };
+
+ $("#tmpl_CacheLogImagesTitle").template("tmplCacheLogImagesTitle");
+ $("#tmpl_CacheLogImages").template("tmplCacheLogImages");
+ $("#tmpl_CacheLogRow").template("tmplCacheLogRow");
+
+ $(".EncryptDecrypt")
+ .button({ icons: { secondary: 'ui-icon-arrowreturnthick-1-w'} })
+ .click(function (e) {
+ e.preventDefault();
+ $("tr.log-row").each(function (i, obj) {
+ var $obj = $(obj);
+ if ($obj.data("encoded") == true) {
+ var lt = $obj.find("p.LogText");
+ lt.html(convertROTStringWithBrackets(lt.html()));
+ }
+ });
+
+ decryptLogs = !decryptLogs;
+
+ $("a.decrypt-link").html(decryptLogs ? locString.encrypt : locString.decrypt);
+
+ return false;
+ });
+
+ $(function () {
+
+ $("a.decrypt-link").html(decryptLogs ? locString.encrypt : locString.decrypt);
+
+ if ($("#cache_logs_container").length > 0) {
+
+ appendNewLogs(initalLogs);
+
+ if (DetectMobileQuick()) {
+ $("#pnlButtonLoad")
+ .show()
+ .find("a.MobileButton")
+ .click(function (e) {
+ e.preventDefault();
+ callLogLoad(false);
+ return false;
+ })
+ .button();
+ if(!DetectTierTablet()){
+ $("a.MobileButton").addClass("Phone");
+ }
+ } else {
+ $("#pnlLazyLoad").show();
+
+ $(window).endlessScroll({
+ fireOnce: true,
+ fireDelay: 500,
+ bottomPixels: ($(document).height() - $("#cache_logs_container").offset().top) + 50,
+ ceaseFire: function(){
+ // stop the scrolling if the last page is reached.
+ return (totalPages < currentPageIdx);
+ },
+ callback: function() {
+ if (!isBusy) {
+
+ isBusy = true;
+ $tfoot.show();
+ callLogLoad(true);
+ }
+ }
+ });
+ }
+ }
+ });
+
+ function appendNewLogs(obj) {
+
+ totalPages = obj.pageInfo.totalPages;
+
+ var $newBody = $(document.createElement("TBODY"));
+
+ $("#tmpl_CacheLogRow").tmpl(obj.data,{includeAvatars: includeAvatars}).appendTo($newBody);
+
+ $newBody.find("a.tb_images").each(function()
+ {
+ var $this = $(this);
+ $this.fancybox({
+ 'type': 'image',
+ 'titlePosition': 'inside',
+ 'padding': 10,
+ titleFormat: function() { return $this.data('title'); }
+ });
+ });
+
+ $("#cache_logs_table")
+ .append($newBody.children());
+
+ currentPageIdx = obj.pageInfo.idx + 1;
+ pageSize = obj.pageInfo.size;
+ }
+
+ function callLogLoad(hideFooter) {
+ $.getJSON("/seek/geocache.logbook", { tkn: userToken, idx: currentPageIdx, num: pageSize, decrypt: decryptLogs },
+ function (response) {
+ if (response.status == "success") {
+ appendNewLogs(response);
+ if( hideFooter || (totalPages < currentPageIdx) ) {
+ $tfoot.hide();
+ }
+ } else if (response.status == "error" && response.value == "1") {
+ // reload the page since the data had expired.
+ window.location.reload();
+ }
+ isBusy = false;
+ });
+ }
+
+ $("#add_to_favorites").click(function () {
+
+ if (canUpdateFavoriteStatus) {
+ canUpdateFavoriteStatus = false;
+
+ var fv = parseInt($(".favorite-value").text());
+ fv++;
+ $(".favorite-value").text(fv);
+
+ var fr = parseInt($(".favorite-rank").text());
+ fr--;
+ $(".favorite-rank").text(fr);
+
+ $("#pnlNonfavoriteCache").fadeOut("fast", function () {
+ $("#pnlFavoriteCache").fadeIn("fast");
+ });
+
+ $.ajax({
+ type: "GET",
+ cache: false,
+ url: '/datastore/favorites.svc/update/' + userToken + '/true',
+ success: function () {
+ canUpdateFavoriteStatus = true;
+ gotScore = false;
+ showFavoriteScore();
+ }
+ });
+
+ return false;
+ }
+ });
+
+ $("#remove_from_favorites").click(function () {
+
+ if (canUpdateFavoriteStatus) {
+ canUpdateFavoriteStatus = false;
+
+ var fv = parseInt($(".favorite-value").text());
+ fv--;
+ $(".favorite-value").text(fv);
+
+ var fr = parseInt($(".favorite-rank").text());
+ fr++;
+ $(".favorite-rank").text(fr);
+
+ $("#pnlFavoriteCache").fadeOut("fast", function () {
+ $("#pnlNonfavoriteCache").fadeIn("fast");
+ });
+
+ $.ajax({
+ type: "GET",
+ cache: false,
+ url: '/datastore/favorites.svc/update/' + userToken + '/false',
+ success: function () {
+ canUpdateFavoriteStatus = true;
+ gotScore = false;
+ showFavoriteScore();
+ }
+ });
+
+ return false;
+ }
+ });
+
+ $("#lnkSmallMap").click(function(e) {
+ e.preventDefault();
+
+ document.getElementById("uxlrgMap").scrollIntoView(true);
+
+ return false;
+ });
+
+ $(function () {
+
+ var cacheNoteText = {
+ DefaultText: 'Click to enter a note',
+ ErrorInSaving: 'There was an error saving page. Please refresh the page and try again.',
+ SavingText: 'Please wait, saving your note...'
+ };
+
+ $("#staticMap").lazyload();
+
+ $("time.timeago").timeago();
+
+
+
+ var sn = Cookie.get('sn');
+
+ if ($('#trNotPM')) {
+ $('#trNotPM').toggle(!sn);
+ }
+
+ $("#cache_note").editInPlace({
+ callback: function (unused, enteredText) {
+ var me = $(this);
+
+ var et = $.trim(enteredText);
+ if (et.length > 500)
+ et = et.substr(0, 500);
+
+ $.pageMethod("SetUserCacheNote", JSON.stringify({ dto: { et: et, ut: userToken} }), function (r) {
+ var r = JSON.parse(r.d);
+ if (r.success == true) {
+ if ($.trim(r.note) == "") {
+ $("#cache_note").text(cacheNoteText.DefaultText);
+ } else {
+ $("#cache_note").text(r.note);
+ }
+
+ me.effect('highlight', { color: '#ffb84c' }, 'slow');
+ } else {
+ alert(cacheNoteText.ErrorInSaving);
+ $("#cache_note").text(cacheNoteText.DefaultText);
+ }
+
+ });
+
+ return cacheNoteText.SavingText;
+ }
+ , default_text: cacheNoteText.DefaultText
+ , field_type: "textarea"
+ , textarea_rows: "7"
+ , textarea_cols: "65"
+ , show_buttons: true
+ , bg_over: "#FDEBBB"
+ //, callback_skip_dom_reset: true
+
+ });
+
+ $("#lnk_slippyMap").click(function(e) {
+ e.preventDefault();
+ loadDynamicMap();
+ return false;
+ });
+
+ $(".inplace_field").live("focus", function () {
+ if ($(this).data("created") == null) {
+ $(this).data("created", true)
+ $(this).countable({
+ maxLength: 500
+ });
+ }
+ });
+
+ $("#pcn_help").tipTip({ activation: 'hover', content: 'Enter your own notes here. No other user will be able to access them.' });
+
+ if (mapLatLng != null) {
+
+ $("#ctl00_ContentBody_uxNotesAboutPrinting").fancybox({
+ overlayShow: false
+ });
+
+ var staticUrl = [];
+ var markers=[];
+
+ staticUrl.push("http://maps.google.com/maps/api/staticmap?size=325x325&sensor=false");
+ staticUrl.push("&markers=icon:http://www.geocaching.com/images/wpttypes/pins/" + mapLatLng.type + ".png|" + mapLatLng.lat + "," + mapLatLng.lng);
+ markers.push({lat:mapLatLng.lat, lng:mapLatLng.lng, marker:"http://www.geocaching.com/images/wpttypes/pins/" + mapLatLng.type + ".png", primary:true});
+ if (cmapAdditionalWaypoints != null && cmapAdditionalWaypoints.length > 0) {
+ for (var x = 0, len = cmapAdditionalWaypoints.length; x < len; x++) {
+ var item = cmapAdditionalWaypoints[x]
+ staticUrl.push("&markers=icon:http://www.geocaching.com/images/wpttypes/pins/" + item.type + ".png|" + item.lat + "," + item.lng);
+ markers.push({lat:item.lat, lng:item.lng, marker: "http://www.geocaching.com/images/wpttypes/pins/" + item.type + ".png",primary:false});
+ }
+ } else {
+ staticUrl.push("&zoom=14");
+ }
+ $("#staticMap")
+ .data("markers", markers )
+ .attr("original", staticUrl.join(""));
+ }
+ });
+
+ function loadDynamicMap() {
+ if (typeof google !== 'undefined' && typeof google.maps !== 'undefined') {
+ displayDynamicMap();
+ } else {
+ var script = document.createElement("script");
+ script.type = "text/javascript";
+ script.src = "http://maps.google.com/maps/api/js?v=3&sensor=false&indexing=false&callback=displayDynamicMap";
+ document.documentElement.firstChild.appendChild(script);
+ }
+ }
+
+ function displayDynamicMap() {
+ $sm = $("#staticMap");
+ $map = $('<div />').addClass('map').css({ height: 325, width: 325 });
+ $("#lnk_slippyMap").replaceWith($("<span>Showing Dynamic Map</span>"));
+
+ var items = $sm.data("markers");
+
+ // walk the array to find the full bounds
+ var bounds = new google.maps.LatLngBounds();
+ var markers = [];
+
+ for (var x = 0, len=items.length; x < len; x++) {
+ var item = items[x];
+ var ll = new google.maps.LatLng(item.lat, item.lng);
+ bounds.extend(ll);
+ markers.push(new google.maps.Marker( {
+ clickable:false,
+ icon: item.marker,
+ position: ll, zIndex: google.maps.Marker.MAX_ZINDEX + (item.primary ? 1 : 0)
+ }));
+ }
+
+ $sm.replaceWith($map);
+
+ var map = new google.maps.Map($map.get(0), {
+ zoom: 14,
+ center: bounds.getCenter(),
+ mapTypeId: google.maps.MapTypeId.ROADMAP,
+ mapTypeControl: true,
+ navigationControlOptions: {
+ style: google.maps.NavigationControlStyle.SMALL
+ }
+ });
+
+ for(var x=0, len=markers.length; x<len;x++) {
+ markers[x].setMap(map);
+ }
+
+ if (bounds.length>1)
+ map.fitBounds(bounds);
+ }
+
+ function dht() {
+ try {
+ $('#div_hint').html(convertROTStringWithBrackets($('#div_hint').html()));
+ var linkText = (($('#ctl00_ContentBody_lnkDH').attr('title') == 'Decrypt') ? 'Encrypt' : 'Decrypt');
+ $('#ctl00_ContentBody_lnkDH').text(linkText);
+ $('#ctl00_ContentBody_lnkDH').attr('title', linkText);
+ } catch (e) {
+ alert(e);
+ return false;
+ }
+ return false;
+ }
+
+ </script>
+
+
+
+ </div>
+
+
+ </div>
+
+ </section>
+ <footer>
+
+ <div class="container">
+
+ <div class="span-24 last FooterTop">
+
+
+
+<div class="LocaleText">
+
+ <strong>Choose Your Language:</strong>
+
+</div>
+<div class="LocaleList">
+
+ <div id="selected_language">
+
+ <a href="#">English&#9660;</a>
+
+ </div>
+ <ul id="locale_list">
+
+ <li><a id="ctl00_uxLocaleList_uxLocaleList_ctl00_uxLocaleItem" href="javascript:__doPostBack(&#39;ctl00$uxLocaleList$uxLocaleList$ctl00$uxLocaleItem&#39;,&#39;&#39;)">English</a></li>
+
+ <li><a id="ctl00_uxLocaleList_uxLocaleList_ctl01_uxLocaleItem" href="javascript:__doPostBack(&#39;ctl00$uxLocaleList$uxLocaleList$ctl01$uxLocaleItem&#39;,&#39;&#39;)">Deutsch</a></li>
+
+ <li><a id="ctl00_uxLocaleList_uxLocaleList_ctl02_uxLocaleItem" href="javascript:__doPostBack(&#39;ctl00$uxLocaleList$uxLocaleList$ctl02$uxLocaleItem&#39;,&#39;&#39;)">Français</a></li>
+
+ <li><a id="ctl00_uxLocaleList_uxLocaleList_ctl03_uxLocaleItem" href="javascript:__doPostBack(&#39;ctl00$uxLocaleList$uxLocaleList$ctl03$uxLocaleItem&#39;,&#39;&#39;)">Português</a></li>
+
+ <li><a id="ctl00_uxLocaleList_uxLocaleList_ctl04_uxLocaleItem" href="javascript:__doPostBack(&#39;ctl00$uxLocaleList$uxLocaleList$ctl04$uxLocaleItem&#39;,&#39;&#39;)">Čeština</a></li>
+
+ <li><a id="ctl00_uxLocaleList_uxLocaleList_ctl05_uxLocaleItem" href="javascript:__doPostBack(&#39;ctl00$uxLocaleList$uxLocaleList$ctl05$uxLocaleItem&#39;,&#39;&#39;)">Svenska</a></li>
+
+ <li><a id="ctl00_uxLocaleList_uxLocaleList_ctl06_uxLocaleItem" href="javascript:__doPostBack(&#39;ctl00$uxLocaleList$uxLocaleList$ctl06$uxLocaleItem&#39;,&#39;&#39;)">Nederlands</a></li>
+
+ <li><a id="ctl00_uxLocaleList_uxLocaleList_ctl07_uxLocaleItem" href="javascript:__doPostBack(&#39;ctl00$uxLocaleList$uxLocaleList$ctl07$uxLocaleItem&#39;,&#39;&#39;)">Català</a></li>
+
+ <li><a id="ctl00_uxLocaleList_uxLocaleList_ctl08_uxLocaleItem" href="javascript:__doPostBack(&#39;ctl00$uxLocaleList$uxLocaleList$ctl08$uxLocaleItem&#39;,&#39;&#39;)">Polski</a></li>
+
+ <li><a id="ctl00_uxLocaleList_uxLocaleList_ctl09_uxLocaleItem" href="javascript:__doPostBack(&#39;ctl00$uxLocaleList$uxLocaleList$ctl09$uxLocaleItem&#39;,&#39;&#39;)">Eesti</a></li>
+
+ <li><a id="ctl00_uxLocaleList_uxLocaleList_ctl10_uxLocaleItem" href="javascript:__doPostBack(&#39;ctl00$uxLocaleList$uxLocaleList$ctl10$uxLocaleItem&#39;,&#39;&#39;)">Norsk, Bokmål</a></li>
+
+ <li><a id="ctl00_uxLocaleList_uxLocaleList_ctl11_uxLocaleItem" href="javascript:__doPostBack(&#39;ctl00$uxLocaleList$uxLocaleList$ctl11$uxLocaleItem&#39;,&#39;&#39;)">한국어</a></li>
+
+ <li><a id="ctl00_uxLocaleList_uxLocaleList_ctl12_uxLocaleItem" href="javascript:__doPostBack(&#39;ctl00$uxLocaleList$uxLocaleList$ctl12$uxLocaleItem&#39;,&#39;&#39;)">Español</a></li>
+
+ <li><a id="ctl00_uxLocaleList_uxLocaleList_ctl13_uxLocaleItem" href="javascript:__doPostBack(&#39;ctl00$uxLocaleList$uxLocaleList$ctl13$uxLocaleItem&#39;,&#39;&#39;)">Magyar</a></li>
+
+ </ul>
+
+</div>
+<script type="text/javascript">
+
+ jQuery(document).ready(function() {
+ jQuery("#selected_language a").click(function (e) {
+ e.preventDefault();
+ jQuery("#locale_list").show().position({
+ of: $("#selected_language"),
+ my: "left top",
+ at: "left bottom",
+ offset: "0 3",
+ collision: "fit fit"
+ });
+ jQuery(document).click(function () {
+ jQuery("#locale_list").fadeOut("fast");
+ });
+ return false;
+ });
+ });
+</script>
+
+ </div>
+ <div class="span-6">
+
+ <p class="FooterHeader"><strong>Resources</strong></p>
+ <ul class="FooterLinks">
+ <li><a id="ctl00_hlFooterGuide" accesskey="i" title="Guide" href="../guide/default.aspx">Guide</a></li>
+ <li><a id="ctl00_hlFooterHistory" title="History" href="../about/history.aspx">History</a></li>
+ <li><a id="ctl00_hlFooterBrochures" title="Brochures" href="../tools/default.aspx#Guide">Brochures</a></li>
+ <li><a id="ctl00_hlFooterGlossary" title="Glossary of Terms" href="../about/glossary.aspx">Glossary of Terms</a></li>
+ <li><a id="ctl00_hlFooterTools" accesskey="o" title="Tools and Downloads" href="../tools/default.aspx">Tools and Downloads</a></li>
+
+ <li><a id="ctl00_hlFooterReferral" title="Tell A Friend About Geocaching" href="../account/SendReferral.aspx">Tell A Friend About Geocaching</a></li>
+
+ </ul>
+
+ </div>
+ <div class="span-6">
+
+ <p class="FooterHeader"><strong>Questions & Suggestions</strong></p>
+ <ul class="FooterLinks">
+ <li><a id="ctl00_hlFooterKnowledge" title="Knowledge Books Support" rel="external" href="http://support.groundspeak.com/index.php">Knowledge Books Support</a></li>
+ <li><a id="ctl00_hlFooterEmail" title="Email Support" rel="external" href="http://support.groundspeak.com/index.php?pg=request">Email Support</a></li>
+ <li><a id="ctl00_hlFooterForums" accesskey="f" title="Forums" href="../forums/default.aspx">Forums</a></li>
+
+ <li id="ctl00_liUserVoice"><a id="ctl00_hlFooterFeedback2" title="Feedback Site" rel="external" href="http://feedback.geocaching.com/">Feedback Site</a></li>
+ <li><a id="ctl00_hlFooterContact" title="Contact" href="../contact/default.aspx">Contact</a></li>
+ </ul>
+
+ </div>
+ <div class="span-6">
+
+ <p class="FooterHeader"><strong>Press</strong></p>
+ <ul class="FooterLinks">
+ <li><a id="ctl00_hlFooterNews" title="News Articles" href="../press/default.aspx">News Articles</a></li>
+ <li><a id="ctl00_hlFooterGCFactSheet" title="Geocaching Fact Sheet" rel="document" href="../articles/Brochures/footer/FactSheet_Geocaching.pdf">Geocaching Fact Sheet</a></li>
+ <li><a id="ctl00_hlFooterGCCOMFactSheet" title="Geocaching.com Fact Sheet" rel="document" href="../articles/Brochures/footer/FactSheet_GeocachingCom.pdf">Geocaching.com Fact Sheet</a></li>
+ <li><a id="ctl00_hlFooterMediaFAQs" title="Media FAQs" rel="document" href="../articles/Brochures/footer/FAQ_Media.pdf">Media FAQs</a></li>
+ <li><a id="ctl00_hlFooterMediaInquiries" title="Media Inquiries" rel="external" href="http://support.groundspeak.com/index.php?pg=request&amp;xCategory=11">Media Inquiries</a></li>
+ </ul>
+
+ </div>
+ <div class="span-6 last">
+
+ <p class="FooterHeader"><strong>More</strong></p>
+ <ul class="FooterLinks">
+ <li><a id="ctl00_hlFooterAbout" title="About Groundspeak" href="../about/groundspeak.aspx">About Groundspeak</a></li>
+ <li><a id="ctl00_hlFooterAdvertise" title="Advertising with Us" href="../about/advertising.aspx">Advertising with Us</a></li>
+ <li><a id="ctl00_hlFooterHotels" title="Hotels" href="/reviews/hotels">Hotels</a></li>
+ <li><a id="ctl00_hlFooterGPS" accesskey="w" title="GPS Reviews" href="/reviews/gps">GPS Reviews</a></li>
+ <li><a id="ctl00_hlFooterBenchmarks" title="Find a Benchmark" href="../mark/default.aspx">Find a Benchmark</a></li>
+ </ul>
+
+ </div>
+ <p class="span-24 last FooterBottom">Copyright &copy; 2000-2011 <a href="http://www.groundspeak.com/" title="Groundspeak, Inc." accesskey="g">Groundspeak, Inc.</a> All Rights Reserved.<br />
+ <a id="ctl00_hlFooterTerms" accesskey="u" title="Groundspeak Terms of Use" href="../about/termsofuse.aspx">Groundspeak Terms of Use</a> | <a id="ctl00_hlFooterPrivacy" accesskey="x" title="Privacy Policy" href="../about/privacypolicy.aspx">Privacy Policy</a> | <a id="ctl00_hlFooterLogo" accesskey="l" title="Geocaching Logo Usage Guidelines" href="../about/logousage.aspx">Geocaching Logo Usage Guidelines</a></p>
+
+ </div>
+
+ </footer>
+ <div class="SkipLinks">
+
+ <a id="ctl00_hlSkipLinksTop" accesskey="t" title="Return to the Top of the Page" href="#Top">Return to the Top of the Page</a>
+
+ </div>
+
+ <script type="text/javascript">
+ //jquery method
+ var uservoiceOptions = {};
+ jQuery(function ($) {
+ $.extend(uservoiceOptions, {
+ key: 'geocaching',
+ host: 'feedback.geocaching.com',
+ forum: '75775',
+ //alignment: 'left',
+ //background_color: '#c1caa8',
+ //text_color: 'white',
+ //hover_color: '#acb88d',
+ lang: 'en',
+ showTab: false
+ });
+ if (typeof (uvtoken) != "undefined") {
+ $.extend(uservoiceOptions, { params: { sso: uvtoken} });
+ }
+ var uv = document.createElement('script');
+ uv.setAttribute('type', 'text/javascript');
+ uv.setAttribute('src', ("https:" == document.location.protocol ? "https://" : "http://") + "cdn.uservoice.com/javascripts/widgets/tab.js");
+ uv.setAttribute('async', 'true');
+ document.documentElement.firstChild.appendChild(uv);
+ });
+
+ $('#feedback-tab a').hover(function () {
+ $('#feedback-tab a span#text').toggle();
+ });
+ </script>
+
+
+
+<script type="text/javascript">
+//<![CDATA[
+var uvtoken = 'DbFDfIrSTaXyfNf74lbdopy%2bTw%2fC84Gn87pU%2b3r69toc4lYTKyii0cXY42BXT7amAeAEUCcV1MyzYH%2f69bWOOC3fai4gDwauhyER0%2f1R%2bdi%2f7Tnmg3ntM%2b1eFbfo1%2fPND7UL5JtX3mCuD6PgzfZMAklZiPkTBBrK7jkJ5lckgUfj0fkGsQR6iGPkttUTKXLDJEUfKk8xfcRHhbUar3xo6CWZRinfa0Oo1UZpQH6Y5732d7RVnZPU7SzScgtMwmidBD3XChV0bbX7Bj2o3aUEi%2fD0VOiJKDIR%2bge3NfLEAOfu%2fNuxKeG8b%2bfb8MBTXtXurwUlCyVKeyuUq3bT18og56HzNWOaR%2fAEFQrqg4JDNEht%2baZcV8Um0ld10WQchD1CqRcpvlo7BlQ4hP9gPZF7Y5zMzBMTlxuKdf6vtt6al%2b4%3d';mapLatLng = { lat:52.372250, lng:9.735367, type:8 };
+userInfo = {ID: 1912314};
+userToken = 'FOUTFKOKLELXOJAYT35WSZBNGADBNKFSYIMKJ2YI6247JORDCSRPR3LYUNKEOR2P6WBWUAIQTX4YPYP25YFRSCDJY7EUG3FT5ZPWGJXRGVH34VVWLNYYA5BPXXMOMWICL3HBAB3NBGBPKHLE5FJQI2S5TQ';
+includeAvatars = true;
+initalLogs = {"status":"success", "data": [{"LogID":189151654,"CacheID":1997597,"LogGuid":"d246ea39-a6bc-465a-9cae-e6299350a59b","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"...so nun war das final wieder da!Nachdem Axel-Foley,Nilleboy und ich die anderen stationen schon vor l&#xE4;ngerer zeit angegangen waren,konnten wir uns heute ins logbuch eintragen!<br/>Danke f&#xFC;r das klasse r&#xE4;tsel!<br/>geolex007","Created":"27/09/2011","Visited":"25/09/2011","UserName":"geolex007","MembershipLevel":3,"AccountID":2919382,"AccountGuid":"a24093b2-bc83-42fd-94b6-5083bb77f3b9","Email":"","AvatarImage":"026fc5e8-85be-466b-aa6a-61e66193a0f3.jpg","GeocacheFindCount":758,"GeocacheHideCount":0,"ChallengesCompleted":5,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":188939285,"CacheID":1997597,"LogGuid":"3f8a1351-5608-4734-af30-b25c92ea4a03","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"nachdem wir nach dem L&#xF6;sen schon einmal vergeblich an den Finalkoordinaten standen und nach l&#xE4;ngerer Suche auch nichts gefunden haben, konnten wir uns heute mit Geolex007 und Axel-Foley erfolgreich ins B&#xFC;chlein eintragen. Vielen Dank!","Created":"26/09/2011","Visited":"25/09/2011","UserName":"Nilleboy","MembershipLevel":3,"AccountID":1221755,"AccountGuid":"d038670b-5689-420e-950a-4d40967c9e64","Email":"","AvatarImage":"d43df990-287e-4dac-9581-2668f2c00cf8.jpg","GeocacheFindCount":2244,"GeocacheHideCount":8,"ChallengesCompleted":14,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":188866275,"CacheID":1997597,"LogGuid":"99c50547-8ea7-4402-8d16-7a59346cba53","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Heute war es endlich mal soweit, dass dieser Cache abgehakt werden konnte. Nachdem ich im Mai bereits angefangen hatte mit r&#xE4;tseln, war zwischenzeitlich das Final abhanden gekommen. Nun ist es seit einiger Zeit wieder da, so dass ich mich im Team mit Geolex007 und Nilleboy im Logbuch verewigen konnte. TFTC","Created":"26/09/2011","Visited":"25/09/2011","UserName":"Axel-Foley","MembershipLevel":3,"AccountID":1836934,"AccountGuid":"342fa7de-405c-4d1c-b104-79c8d59ffb46","Email":"","AvatarImage":"83f5a949-9f61-4ac8-bc4f-f93630c0135c.jpg","GeocacheFindCount":3236,"GeocacheHideCount":31,"ChallengesCompleted":5,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":188115293,"CacheID":1997597,"LogGuid":"55c2e952-c238-43ce-a7ac-b10d6a7412f5","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Hammer!<br/>Cool und sooo stimmig ...<br/><br/>(Ordentlicher log folgt von zuhause, jetzt muss ich erst mal die Reisegruppe abwarten, damit ich zur&#xFC;cklegen kann ...)<br/>Danke, Danke Danke,<br/><br/>Begeisterter Gruss vom teichkind","Created":"23/09/2011","Visited":"23/09/2011","UserName":"teichkind","MembershipLevel":3,"AccountID":2385722,"AccountGuid":"900baa9c-a1e2-4702-9231-affae27ddc15","Email":"","AvatarImage":"62643afc-0eea-4fec-bd30-82a8c0446e6d.jpg","GeocacheFindCount":1111,"GeocacheHideCount":16,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":186463221,"CacheID":1997597,"LogGuid":"99fcf233-5ce5-4f7a-a3c5-45711a25c63c","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Heute morgen konnte ich die Spurensuche des Indiana Jones Teil 1 erfolgreich beenden und mich im Logbuch eintragen.<br/>Auf den Spuren des Indiana Jones zu wandeln hat sehr viel Spass gemacht und zugleich sehr neugierig auf die folgenden Aufgaben.<br/><br/>Danke f&#xFC;r das erste Abenteuer","Created":"13/09/2011","Visited":"14/09/2011","UserName":"mehlonaut","MembershipLevel":1,"AccountID":523152,"AccountGuid":"6784f5e9-6063-47e9-8251-d7ca4e9afb13","Email":"","AvatarImage":"8e4a3948-54f7-465a-8ac0-aaab62dfb640.jpg","GeocacheFindCount":4070,"GeocacheHideCount":8,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Member","GroupImageUrl":"/images/icons/reg_user.gif"},"Images":[]},{"LogID":185421151,"CacheID":1997597,"LogGuid":"68b3fbba-81ee-4065-86ef-4544b6a4c6d7","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Gemeinsam mit Herr Magnus konnte ich nach schon lange zur&#xFC;ckliegender Vorarbeit heute auch dieses Projekt abschlie&#xDF;en.<br/>Ein weiterer H&#xF6;hepunkt aus der \"indianischen\" Mysterieschmiede.<br/>Danke f&#xFC;rs Verstecken sagt<br/>Oma Wetterwachs","Created":"09/09/2011","Visited":"08/09/2011","UserName":"oma wetterwachs","MembershipLevel":3,"AccountID":1531380,"AccountGuid":"af5e364f-de18-4fd1-97f2-81d74ca2ebc2","Email":"","AvatarImage":"4337989a-4948-4cea-9c83-228eafb0ff04.jpg","GeocacheFindCount":3890,"GeocacheHideCount":28,"ChallengesCompleted":2,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":185285872,"CacheID":1997597,"LogGuid":"023e8cd8-5da9-444f-af4d-16cf27f70c74","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"F&#xFC;r den Start brauchte ich eine helfende Hand, denn ein Bauarbeiter-Muggel vertrieb mich bei meinem ersten Besuch aus dem Schatten der Linie. Zum Gl&#xFC;ck hatte Oma Wetterwachs hier schon einmal vor gearbeitet. Dem vorgelegten Pfad folgend machten wir uns auf, um die ben&#xF6;tigten Informationen ein zu holen (hier h&#xE4;tte ich mich nach dem erfolgreichen Entschl&#xFC;sseln am liebsten abgeseilt (zum Gl&#xFC;ck war mein Rucksack mit dem Kletterkram im Auto)). Nach einem entspannenden Spaziergang am stillen Ort und nachdem die Arbeits-Muggel endlich mit der Vorbereitung auf die Mittagspause fertig und verschwunden waren, konnten wir endlich den Schatz in den H&#xE4;nden halten. Wieder ein ganz toller, fantasievoller Cache.<br/>Herr Magnus sagt: \"Danke!\"","Created":"08/09/2011","Visited":"08/09/2011","UserName":"Herr Magnus","MembershipLevel":3,"AccountID":2815602,"AccountGuid":"cbf72769-568f-4a7e-8d4a-1dd0353adaac","Email":"","AvatarImage":"f7d27eea-81e9-4081-8283-cefa355dccc6.jpg","GeocacheFindCount":1716,"GeocacheHideCount":9,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":179992962,"CacheID":1997597,"LogGuid":"897b3194-5205-4ab7-8a5b-f3105a9bafb0","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Mit Fedora und Peitsch ging es heute los, Indianer Jones auf den<br/>Spuren der Schattenlinie zu folgen und die Reliquien zu bergen.<br/><br/>Zur rechten Stunde am rechten Ort zu sein, um Einlass zu bekommen,<br/>die R&#xE4;tsel zu entschl&#xFC;sseln, das war hier gefragt.<br/>Nachdem ich die Tage all diese Aufgaben gemeistert hatte, musste<br/>heute noch die letzte H&#xFC;rde genommen werden:<br/>Die erste Reliquie bergen und in Sicherheit bringen!<br/><br/>Als ich sie dann endlich in H&#xE4;nden hielt, hatte ich ein ganz mieses<br/>Gef&#xFC;hl. Und richtig, kaum war sie ge&#xF6;ffnet, erhielt ich sofort einen<br/>neuen Auftrag: Den BONUS<br/><br/>TFTC<br/>#307","Created":"15/08/2011","Visited":"13/08/2011","UserName":"LittleMuck","MembershipLevel":1,"AccountID":3358673,"AccountGuid":"a23462b7-2a40-41ac-b739-68ffe727376f","Email":"","AvatarImage":"","GeocacheFindCount":361,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Member","GroupImageUrl":"/images/icons/reg_user.gif"},"Images":[]},{"LogID":173959159,"CacheID":1997597,"LogGuid":"a4cb49e9-1a3e-45b6-9735-3b797c3e75e2","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Enable Listing","LogTypeImage":"icon_enabled.gif","LogText":"So, alles wieder da .<br/>Kann also weiter gehen.<br/>Viel Spa&#xDF;","Created":"20/07/2011","Visited":"20/07/2011","UserName":"indianerjones","MembershipLevel":3,"AccountID":678630,"AccountGuid":"af08f081-faf4-4992-8268-1e16ab4677a9","Email":"","AvatarImage":"3e670f19-793f-49d6-8832-564c4c886396.jpg","GeocacheFindCount":690,"GeocacheHideCount":20,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":171986055,"CacheID":1997597,"LogGuid":"a9d2b3dd-9f8a-45ec-8519-7e5d85dc0360","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Temporarily Disable Listing","LogTypeImage":"icon_disabled.gif","LogText":"final gemuggelt.<br/>erstmal pause","Created":"10/07/2011","Visited":"10/07/2011","UserName":"indianerjones","MembershipLevel":3,"AccountID":678630,"AccountGuid":"af08f081-faf4-4992-8268-1e16ab4677a9","Email":"","AvatarImage":"3e670f19-793f-49d6-8832-564c4c886396.jpg","GeocacheFindCount":690,"GeocacheHideCount":20,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":171862959,"CacheID":1997597,"LogGuid":"07e30078-6cac-4b9b-86f3-875dd65936c1","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Write note","LogTypeImage":"icon_note.gif","LogText":"War Freitag nach der Arbeit mal vor Ort. Auf die Schnelle habe ich am Final nix gefunden, Dose scheint weg zu sein.","Created":"10/07/2011","Visited":"08/07/2011","UserName":"GSmarty","MembershipLevel":1,"AccountID":1119731,"AccountGuid":"bf4a4652-c21f-4555-ad0c-6caa09021b72","Email":"","AvatarImage":"6afd58a8-6970-4c7a-badb-69dd46b2f0ad.jpg","GeocacheFindCount":725,"GeocacheHideCount":4,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Member","GroupImageUrl":"/images/icons/reg_user.gif"},"Images":[]},{"LogID":170880079,"CacheID":1997597,"LogGuid":"09bda22f-e9e2-4b0c-ad46-cb27f58db138","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Write note","LogTypeImage":"icon_note.gif","LogText":"Bitte mal am Final naschauen, ob der Cache noch da ist - ich jedenfalls konnte nichts finden!!!","Created":"05/07/2011","Visited":"20/06/2011","UserName":"Axel-Foley","MembershipLevel":3,"AccountID":1836934,"AccountGuid":"342fa7de-405c-4d1c-b104-79c8d59ffb46","Email":"","AvatarImage":"83f5a949-9f61-4ac8-bc4f-f93630c0135c.jpg","GeocacheFindCount":3236,"GeocacheHideCount":31,"ChallengesCompleted":5,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":165211222,"CacheID":1997597,"LogGuid":"5c8bb06f-2ded-409c-a0d1-bd87609525e7","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Write note","LogTypeImage":"icon_note.gif","LogText":"momentan ist der start schwerer zu erreichen da dort gebaut wird....<br/>aber mit ein paar netten worten und ausreden geht das schon...einen auf tourist machen.......oder nachts kommen....","Created":"06/06/2011","Visited":"06/04/2011","UserName":"indianerjones","MembershipLevel":3,"AccountID":678630,"AccountGuid":"af08f081-faf4-4992-8268-1e16ab4677a9","Email":"","AvatarImage":"3e670f19-793f-49d6-8832-564c4c886396.jpg","GeocacheFindCount":690,"GeocacheHideCount":20,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":151698277,"CacheID":1997597,"LogGuid":"2caab9d9-369e-4b9e-a6db-86123d13d5a2","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"So schwierig war es jetzt auch wieder nicht. Der schwierigste Teil war wohl noch, die Bauarbeiter zu &#xFC;berreden, uns reinzulassen. Trotzdem eine tolle und abwechslungsreiche Tour auf den Spuren des Iniana! DfdC!","Created":"29/03/2011","Visited":"24/03/2011","UserName":"Datmusshiersein!","MembershipLevel":3,"AccountID":2451952,"AccountGuid":"728433cb-8865-4ec6-822f-fdb8aba68650","Email":"","AvatarImage":"","GeocacheFindCount":274,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":150954446,"CacheID":1997597,"LogGuid":"d9c5d36b-f1ee-49bc-afd7-ebd81a52f4d2","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Als alter Indiana Jones Fan, war dieser Cache ein absolutes Highlight unseres Hannover-Besuches.<br/>Die Runde zeigt einem sch&#xF6;ne stimmungsvolle Locations und die R&#xE4;tsel machen auch echt Spa&#xDF;.<br/>Vielen Dank!","Created":"26/03/2011","Visited":"24/03/2011","UserName":"SimStar25","MembershipLevel":1,"AccountID":3820195,"AccountGuid":"de12647f-659c-4ad0-8694-c783f5b8ed5c","Email":"","AvatarImage":"","GeocacheFindCount":171,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Member","GroupImageUrl":"/images/icons/reg_user.gif"},"Images":[]},{"LogID":150853129,"CacheID":1997597,"LogGuid":"20daad43-5d3b-452c-8de6-1422f6a6d008","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Ein wirklich toller Cache der einem echt das Gef&#xFC;hl gab auf dem Spuren von Indiana Jones zu wandeln. Jede Location hatte seinen eigenen Reiz und war einem Indy Abenteuer absolut w&#xFC;rdig. Leider k&#xFC;rzer als wir erst gedacht hatten. Es gibt ja aber noch 3 weitere Teile. Danke f&#xFC;r dieses Erlebnis. <br/><br/>IN: TB","Created":"25/03/2011","Visited":"24/03/2011","UserName":"Maddog1234","MembershipLevel":3,"AccountID":2161157,"AccountGuid":"daeed995-1a86-4316-a3a9-7079949de290","Email":"","AvatarImage":"0094745e-3080-439f-9f9d-c027e7a2b08e.jpg","GeocacheFindCount":860,"GeocacheHideCount":2,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":150720470,"CacheID":1997597,"LogGuid":"6803a735-f1ee-4e17-847e-139a895dbd1a","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Alter Schwede, bis ich die Schattenlinie hatte und die erste Station hatte ich ja schon ein paar km<br/>auf dem Tacho.......aber bis dahin muss man erst mal kommen :-) <br/>Heute konnte ich dann dem Final mal einen Besuch abstatten....:-) <br/>In der N&#xE4;he waren irgendwie heute Anti-Indy-Bier-Muggel!!!<br/>Hat mir aber trotzem gut gefallen. Bonus Zettel mitgenommen.<br/><br/>DFDC Kreote","Created":"24/03/2011","Visited":"24/03/2011","UserName":"Kreote","MembershipLevel":3,"AccountID":2016112,"AccountGuid":"a03a9ebc-6798-47d7-a766-75987cf59e18","Email":"","AvatarImage":"a7284a74-ee4b-4d79-b516-991fcda6e810.jpg","GeocacheFindCount":1407,"GeocacheHideCount":31,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":150074687,"CacheID":1997597,"LogGuid":"52e19d0c-4702-4ec9-adf8-5f6d1df8b166","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"mit lady.manuela gefunden, ... sie hat halt ein kluges k&#xF6;pfchen, ... aus dem grund tr&#xE4;gt sie auch auf den tag genau seit 29jahren meinen namen, ... dfdc doc.schneider","Created":"20/03/2011","Visited":"19/03/2011","UserName":"doc.schneider","MembershipLevel":1,"AccountID":1411537,"AccountGuid":"d1078bb0-8be0-41b4-95d2-ac61441f0fd8","Email":"","AvatarImage":"0c5a39fb-f437-4104-a0a5-6e69204889fe.jpg","GeocacheFindCount":980,"GeocacheHideCount":1,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Member","GroupImageUrl":"/images/icons/reg_user.gif"},"Images":[]},{"LogID":149747335,"CacheID":1997597,"LogGuid":"a5d4ba0a-e297-44e2-8a0e-e68f39fd92cd","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Jiha xx d5xx zu hause konnte ich mich daran erinner x dass ich h&#xF6;chstwahrscheinlich am Start selbst schon mal meine Schatten geworfen habe xx also erste Ideen in obernkirchen entwickelt xx n&#xE4;chste Weiterbildung von doc schneider genutzt und mit ihm und geojonny am Start den Gedanken in den praxis umgesetzt xx n&#xE4;chste Station dank Spoiler Ruck zuck gefunden und den Zettel mit genommen xx zu hause das fast alles transformiert xx w&#xE4;hrend der &#xD6;ffnungszeiten festgestellt x dass ich es einfacher h&#xE4;tte haben k&#xF6;nnen xx ein paar Meter bei strahlendem Sonnenschein gelaufen und schon das Final in der Hand gehalten xx allerdings weiss ich jetzt nicht weiter xx ist mir auch erst mal egal xx ich bin so happy xx danke auch an BlackRocks f&#xFC;r seine moralische Unterst&#xFC;tzung xx dfdc xx Lady manuela ","Created":"19/03/2011","Visited":"19/03/2011","UserName":"lady.manuela","MembershipLevel":3,"AccountID":1250920,"AccountGuid":"bcef3d3f-e953-4cb3-82a4-ac2bfdebbc21","Email":"","AvatarImage":"3fbbe9ee-170c-428c-8ee3-75bf6a52ec23.jpg","GeocacheFindCount":2211,"GeocacheHideCount":21,"ChallengesCompleted":1,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":148353345,"CacheID":1997597,"LogGuid":"4156bb41-21e4-40f6-96a7-e84df200811f","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"An meinem Urlaubstag hatte ich genug Zeit mich ausgiebig mit diesen Cache zu besch&#xE4;fftigen. Echt super gemacht. Danke!!","Created":"10/03/2011","Visited":"10/03/2011","UserName":"pille-palle84","MembershipLevel":3,"AccountID":1918474,"AccountGuid":"e5655c6f-dd64-47d5-abc3-85d4ec2d00b6","Email":"","AvatarImage":"c4226573-600e-4e17-8935-460fd7fbe6a7.jpg","GeocacheFindCount":2688,"GeocacheHideCount":3,"ChallengesCompleted":22,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":149926814,"CacheID":1997597,"LogGuid":"a356c261-3582-46a5-9318-876b4b01adcd","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Auf der Suche nach Indianer Jones mit unserer caotischen <br/>Gruppe: Lafrobb,Gsmarty, und Kaffeeb&#xF6;hnchen.<br/>Alle Stationen wurden echt super sch&#xF6;n gemacht...<br/>dachte nur zwischendurch ich erfriere!<br/>Gott sei dank kam dann ne echt gute Station wo wir uns<br/>aufw&#xE4;rmen konnten!<br/>Das Final haben wir erst heute gelogged.<br/><br/>DFDC","Created":"20/03/2011","Visited":"05/03/2011","UserName":"Twinky79","MembershipLevel":1,"AccountID":2866102,"AccountGuid":"9c840c36-b2b3-45b0-9d79-24712ba3a007","Email":"","AvatarImage":"b1330d15-0f2d-4f3b-a4e5-28e6d6d39bef.jpg","GeocacheFindCount":147,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Member","GroupImageUrl":"/images/icons/reg_user.gif"},"Images":[]},{"LogID":147796122,"CacheID":1997597,"LogGuid":"a3d78d5f-0e2e-4f0b-aa1a-b9ae3c6bdff0","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"auf der suche nach dem indy <br/>na das kann ja nur gut werden...<br/><br/>denn anfang von diesem cache hatten wir schon gut drei<br/>wochen vor dem termin erledigt da wir zu dem zeitpunkt<br/>das final aber an einer ganz anderen stelle vermutet <br/>hatten und es definitiv zu kalt war <br/>haben wir uns jetzt noch mal an die suche gemacht <br/>und sind auch schnell f&#xFC;ndig geworden <br/>sch&#xF6;ne stationen sehr abwechlungsreich <br/>danke f&#xFC;r diesen sch&#xF6;n gestalteten cache","Created":"06/03/2011","Visited":"05/03/2011","UserName":"van der Frosch","MembershipLevel":3,"AccountID":2552269,"AccountGuid":"1d178d76-6811-4acb-88c6-60927732806b","Email":"","AvatarImage":"8c09f541-e466-4f19-a7f6-5281c4a68b5a.jpg","GeocacheFindCount":326,"GeocacheHideCount":1,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":147737994,"CacheID":1997597,"LogGuid":"416281de-a534-4d9b-aa30-35bb47af318b","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Mit GSmarty, Lafrobb und Twinky79 diese sch&#xF6;ne Reihe begonnen und in gemeinsamer Arbeit das Final gefunden. Die Stationen sind sehr einfallsreich und absolut Indianer Jones. Sehr sch&#xF6;n! Danke daf&#xFC;r! <img src=\"/images/icons/icon_smile.gif\" border=\"0\" align=\"middle\" ></img>","Created":"06/03/2011","Visited":"05/03/2011","UserName":"Kaffeeböhnchen","MembershipLevel":3,"AccountID":3742964,"AccountGuid":"943f1bc6-bc84-4409-81e7-0ad3b397bb5d","Email":"","AvatarImage":"2045d3b9-e508-4131-ba90-b80c8a25556a.jpg","GeocacheFindCount":361,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":146207152,"CacheID":1997597,"LogGuid":"86ef8f3a-8201-499b-92af-7185f1a7b9be","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Den Indi haben wir nat&#xFC;rlich nicht gefunden, aber seinen fairen Spuren konnten wir erfolgreich folgen.<br/>TFTC","Created":"23/02/2011","Visited":"22/02/2011","UserName":"Bob der Baumeister","MembershipLevel":3,"AccountID":385189,"AccountGuid":"64ab8dbc-70bc-4488-923a-a50a9da21043","Email":"","AvatarImage":"5a82ee83-9720-4a50-a6cf-d0bcd880062f.jpg","GeocacheFindCount":2864,"GeocacheHideCount":38,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":146162144,"CacheID":1997597,"LogGuid":"4ed21527-a692-4688-8cdc-9d34cf726c27","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Sehr sch&#xF6;ne Startidee. Bei einer ZS und dem Final hab ich mich dann gefragt: mds ?!?<br/>Vielen Dank.","Created":"22/02/2011","Visited":"22/02/2011","UserName":"The Haunters","MembershipLevel":3,"AccountID":2105281,"AccountGuid":"927be598-a2c1-4d75-a7e3-24b842c7f11b","Email":"","AvatarImage":"","GeocacheFindCount":873,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]}], "pageInfo": { "idx":1, "size": 25, "totalRows": 67, "rows": 67 } };
+//]]>
+</script>
+</form>
+ <script type="text/javascript">
+ var browserType = {
+ IE: !!(window.attachEvent && !window.opera),
+ Opera: !!window.opera,
+ WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
+ Gecko: navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1,
+ MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
+ };
+
+ $(function () {
+ // Make the menu system play nice with all browsers:
+ $('ul.Menu li').hover(function () {
+ $(this).addClass('hover');
+ $('ul:first', this).css('visibility', 'visible');
+ }, function () {
+ $(this).removeClass('hover');
+ $('ul:first', this).css('visibility', 'hidden');
+ });
+ if (!isiOS()) {
+ // Constructing a Twitter-esque Login:
+ $(".SignInLink").click(function (e) {
+ e.preventDefault();
+ $("#SignInWidget").toggle();
+ $(".ProfileWidget").toggleClass("WidgetOpen");
+ $(this).blur();
+ $("#ctl00_tbUsername").focus();
+ });
+ $(".SignInCloseLink").click(function () {
+ $("#SignInWidget").toggle();
+ $(".ProfileWidget").toggleClass("WidgetOpen");
+ });
+ }
+ $('.SignedInProfileLink').truncate({
+ width: 120,
+ after: '&amp;hellip;',
+ center: false,
+ addclass: false,
+ addtitle: false
+ });
+ // Hide the warning message if the user closed it already
+ if ($.cookie('hide_warning') != null) {
+ $(".WarningMessage").hide();
+ }
+
+ function isiOS(){
+ return (
+ (navigator.userAgent.match(/iPhone/i)) ||
+ (navigator.userAgent.match(/iPod/i)) ||
+ (navigator.userAgent.match(/iPad/i))
+ );
+ }
+ });
+ </script>
+
+ <script id="loc_favPointsWhatsThisDesc" type="text/html">
+ Geocaching Favorites is a simple way to track and share the caches that you enjoyed the most. For every 10 distinct caches that you have found, you will be able to Favorite 1 exceptional cache in your find history. The Favorites accumulated by a cache are displayed in search results and on the cache page so everyone can see which caches stand above the rest.
+ </script>
+ <script id="loc_favPointsWhatsThisTitle" type="text/html">
+ About Favorite Points
+ </script>
+ <script id="loc_favPointsScoreDesc" type="text/html">
+ Favorites/Premium Logs
+ </script>
+ <script type="text/javascript" language="javascript">
+ <!--
+
+ $('#uxFavPointsWhatsThis').qtip({
+ content: {
+ text: $("#loc_favPointsWhatsThisDesc").html(),
+ title: {
+ text: $("#loc_favPointsWhatsThisTitle").html(),
+ button: true
+ }
+ },
+ position: {
+ my: 'top center',
+ at: 'bottom center'
+ },
+ show: {
+ event: 'click'
+ },
+ hide: 'click unfocus',
+ style: {
+ classes: 'ui-tooltip'
+ }
+ })
+
+ var gotScore = false;
+ var favDropDown = $('.favorite-dropdown');
+ var favContainer = $('.favorite-container');
+
+ function showFavoriteScore() {
+ $('#imgFavoriteScore').attr('src', '/images/loading3.gif');
+
+ $('#uxFavoriteScore').parent().fadeTo(200, .001, function () {
+ $.ajax({
+ type: "GET",
+ cache: false,
+ url: '/datastore/favorites.svc/score/' + userToken,
+ success: function (scoreResult) {
+ gotScore = true;
+
+ var score = 0;
+
+ if(scoreResult)
+ score = scoreResult;
+
+ if(score > 100)
+ score = 100;
+
+ $('#imgFavoriteScore').attr('src', '/images/favorites/piecharts/' + score + '.png');
+ var pieDesc = (score < 1 ? "<1" : score) + '% ' + $("#loc_favPointsScoreDesc").text().trim();
+ $('#imgFavoriteScore').attr('alt', pieDesc);
+ $('#imgFavoriteScore').attr('title', pieDesc);
+
+ $('#uxFavoriteScore').parent().fadeTo(1000, 1);
+ $('#uxFavoriteScore').html('<strong>' + (score < 1 ? "<1" : score) + '%</strong> ' + $("#loc_favPointsScoreDesc").html());
+ }
+ });
+ });
+ }
+
+
+
+ $(document).bind('mouseup', function (e) {
+ var $clicked = $(e.target);
+
+
+ if (!$clicked.parents().hasClass("favorite-dropdown") && !$clicked.parents().hasClass("FavoriteWidget")) {
+ favDropDown.hide(1, function () {
+ favContainer.addClass('favorite-container');
+ favContainer.removeClass('favorite-container-open');
+ $('#imgFavoriteArrow').attr('src', '/images/arrow-down.png');
+ });
+ }
+ });
+
+ $('#uxFavContainerLink').click(function () {
+ if ($(favDropDown).is(':visible')) {
+ favDropDown.hide(1, function(){
+ favContainer.addClass('favorite-container');
+ favContainer.removeClass('favorite-container-open');
+ $('#imgFavoriteArrow').attr('src', '/images/arrow-down.png');
+ });
+ }
+ else {
+ if (!gotScore) {
+ showFavoriteScore();
+ }
+
+ favContainer.addClass('favorite-container-open');
+ favContainer.removeClass('favorite-container');
+ $('#imgFavoriteArrow').attr('src', '/images/arrow-up.png');
+ favDropDown.show(1);
+ }
+ });
+ // End -->
+ </script>
+
+
+ <script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-2020240-1']);
+ _gaq.push(['_trackPageview']);
+ (function () {
+ var ga = document.createElement('script');
+ ga.src = ('https:' == document.location.protocol ?
+ 'https://ssl' : 'http://www') +
+ '.google-analytics.com/ga.js';
+ ga.setAttribute('async', 'true');
+ document.documentElement.firstChild.appendChild(ga);
+ })();
+ $(function () {
+ $("a.language").click(function (e) {
+ e.preventDefault();
+ window.location.replace(window.location.href + (window.location.search.indexOf("?") == -1 ? "?" : "&") + "lang=" + $(this).attr("lang"));
+ });
+ });
+ </script>
+
+
+ <script type="text/javascript">
+ _qoptions = {
+ qacct: "p-f6VPrfmR4cujU"
+ };
+ (function () {
+ var quant = document.createElement('script');
+ quant.src = ('https:' == document.location.protocol ?
+ 'https://' : 'http://') +
+ 'edge.quantserve.com/quant.js';
+ quant.setAttribute('async', 'true');
+ document.documentElement.firstChild.appendChild(quant);
+ })();
+ </script>
+ <noscript>
+ <img src="http://pixel.quantserve.com/pixel/p-f6VPrfmR4cujU.gif" style="display: none;" height="1" width="1" alt="Quantcast" />
+ </noscript>
+
+ <!-- Server: WEB09; Build: HotFix_20111006.1 -->
+ </body>
+</html>
diff --git a/tests/src/cgeo/geocaching/test/mock/GC2JVEH.java b/tests/src/cgeo/geocaching/test/mock/GC2JVEH.java
new file mode 100644
index 0000000..09c5047
--- /dev/null
+++ b/tests/src/cgeo/geocaching/test/mock/GC2JVEH.java
@@ -0,0 +1,147 @@
+package cgeo.geocaching.test.mock;
+
+import cgeo.geocaching.cgBase;
+import cgeo.geocaching.cgImage;
+import cgeo.geocaching.cgTrackable;
+import cgeo.geocaching.enumerations.CacheSize;
+import cgeo.geocaching.geopoint.Geopoint;
+
+import java.text.ParseException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class GC2JVEH extends MockedCache {
+
+ @Override
+ public String getName() {
+ return "Auf den Spuren des Indianer Jones Teil 1";
+ }
+
+ public GC2JVEH() {
+ super(new Geopoint(52.37225, 9.73537));
+ }
+
+ @Override
+ public Float getDifficulty() {
+ return 5.0f;
+ }
+
+ @Override
+ public Float getTerrain() {
+ return 3.0f;
+ }
+
+ @Override
+ public String getGeocode() {
+ return "GC2JVEH";
+ }
+
+ @Override
+ public String getCacheId() {
+ return "1997597";
+ }
+
+ @Override
+ public String getGuid() {
+ return "07270e8c-72ec-4821-8cb7-b01483f94cb5";
+ }
+
+ @Override
+ public String getOwner() {
+ return "indianerjones, der merlyn,reflektordetektor";
+ }
+
+ @Override
+ public String getOwnerReal() {
+ return "indianerjones";
+ }
+
+ @Override
+ public CacheSize getSize() {
+ return CacheSize.SMALL;
+ }
+
+ @Override
+ public String getType() {
+ return "mystery";
+ }
+
+ @Override
+ public String getShortDescription() {
+ return "Aufgabe zum Start: Finde die Schattenlinie. !!!Die Skizze mit den Zahlen solltest du mitnehmen!!! Du solltest den cache so beginnen, das du station 2 in der Zeit von mo- fr von 11-19 Uhr und sa von11-16 Uhr erledigt hast.";
+ }
+
+ @Override
+ public String getDescription() {
+ return "<img src= \"http://img.geocaching.com/cache/1711f8a1-796a-405b-82ba-8685f2e9f024.jpg\" />";
+ }
+
+ @Override
+ public String getLocation() {
+ return "Niedersachsen, Germany";
+ }
+
+ @Override
+ public Date getHiddenDate() {
+ try {
+ return cgBase.parseGcCustomDate("28/11/2010");
+ } catch (ParseException e) {
+ }
+ return null;
+ }
+
+ @Override
+ public List<String> getAttributes() {
+ String[] attributes = new String[] {
+ "winter_yes",
+ "flashlight_yes",
+ "stealth_yes",
+ "parking_yes",
+ "abandonedbuilding_yes",
+ "hike_med_yes",
+ "rappelling_yes"
+ };
+ return Arrays.asList(attributes);
+ }
+
+ @Override
+ public Map<Integer, Integer> getLogCounts() {
+ Map<Integer, Integer> logCounts = new HashMap<Integer, Integer>();
+ logCounts.put(cgBase.LOG_FOUND_IT, 57);
+ logCounts.put(cgBase.LOG_NOTE, 7);
+ logCounts.put(cgBase.LOG_TEMP_DISABLE_LISTING, 1);
+ logCounts.put(cgBase.LOG_ENABLE_LISTING, 1);
+ logCounts.put(cgBase.LOG_PUBLISH_LISTING, 1);
+ return logCounts;
+ }
+
+ @Override
+ public Integer getFavoritePoints() {
+ return new Integer(20);
+ }
+
+ @Override
+ public boolean isMembersOnly() {
+ return true;
+ }
+
+ @Override
+ public List<cgTrackable> getInventory() {
+ ArrayList<cgTrackable> inventory = new ArrayList<cgTrackable>();
+ inventory.add(new cgTrackable());
+ return inventory;
+ }
+
+ @Override
+ public List<cgImage> getSpoilers() {
+ ArrayList<cgImage> spoilers = new ArrayList<cgImage>();
+ spoilers.add(new cgImage());
+ spoilers.add(new cgImage());
+ spoilers.add(new cgImage());
+ return spoilers;
+ }
+}
diff --git a/tests/src/cgeo/geocaching/test/mock/MockedCache.java b/tests/src/cgeo/geocaching/test/mock/MockedCache.java
index 45ada32..702fac7 100644
--- a/tests/src/cgeo/geocaching/test/mock/MockedCache.java
+++ b/tests/src/cgeo/geocaching/test/mock/MockedCache.java
@@ -1,7 +1,10 @@
package cgeo.geocaching.test.mock;
+import cgeo.geocaching.GCConstants;
import cgeo.geocaching.ICache;
import cgeo.geocaching.cgBase;
+import cgeo.geocaching.cgImage;
+import cgeo.geocaching.cgTrackable;
import cgeo.geocaching.geopoint.Geopoint;
import cgeo.geocaching.utils.BaseUtils;
@@ -9,22 +12,30 @@ import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.List;
public abstract class MockedCache implements ICache {
final protected Geopoint coords;
+ String data;
protected MockedCache(final Geopoint coords) {
this.coords = coords;
}
+ protected String getUserLoggedIn() {
+ return BaseUtils.getMatch(data, GCConstants.PATTERN_USERLOGGEDIN, true, "");
+ }
+
/*
* The data for the caches can be generated by entering the url
* http://www.geocaching.com/seek/cache_details.aspx?log=y&wp=GCxxxx&numlogs=35&decrypt=y
* into a browser and saving the file
*/
public String getData() {
- return readCachePage(getGeocode());
+ data = MockedCache.readCachePage(getGeocode());
+ return data;
}
public static String readCachePage(final String geocode) {
@@ -57,4 +68,69 @@ public abstract class MockedCache implements ICache {
return cgBase.formatLongitude(coords.getLongitude(), true);
}
+ @Override
+ public boolean isArchived() {
+ return false;
+ }
+
+ @Override
+ public boolean isDisabled() {
+ return false;
+ }
+
+ @Override
+ public boolean isMembersOnly() {
+ return false;
+ }
+
+ @Override
+ public boolean isOwn() {
+ return false;
+ }
+
+ @Override
+ public String getHint() {
+ return "";
+ }
+
+ @Override
+ public String getShortDescription() {
+ return "";
+ }
+
+ @Override
+ public String getPersonalNote() {
+ return "";
+ }
+
+ @Override
+ public boolean isFound() {
+ return false;
+ }
+
+ @Override
+ public boolean isFavorite() {
+ return false;
+ }
+
+ @Override
+ public Integer getFavoritePoints() {
+ return new Integer(0);
+ }
+
+ @Override
+ public boolean isWatchlist() {
+ return false;
+ }
+
+ @Override
+ public List<cgTrackable> getInventory() {
+ return new ArrayList<cgTrackable>();
+ }
+
+ @Override
+ public List<cgImage> getSpoilers() {
+ return null;
+ }
+
}