aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/src/cgeo/geocaching/CacheDetailActivity.java6
-rw-r--r--main/src/cgeo/geocaching/ParseResult.java56
-rw-r--r--main/src/cgeo/geocaching/SearchResult.java169
-rw-r--r--main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java4
-rw-r--r--main/src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java4
-rw-r--r--main/src/cgeo/geocaching/apps/cache/navi/InternalMap.java4
-rw-r--r--main/src/cgeo/geocaching/apps/cache/navi/LocusApp.java4
-rw-r--r--main/src/cgeo/geocaching/apps/cache/navi/NavigationApp.java4
-rw-r--r--main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java4
-rw-r--r--main/src/cgeo/geocaching/apps/cache/navi/OruxMapsApp.java4
-rw-r--r--main/src/cgeo/geocaching/apps/cache/navi/RMapsApp.java4
-rw-r--r--main/src/cgeo/geocaching/apps/cache/navi/RadarApp.java4
-rw-r--r--main/src/cgeo/geocaching/apps/cache/navi/StaticMapApp.java4
-rw-r--r--main/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java4
-rw-r--r--main/src/cgeo/geocaching/apps/cachelist/CacheListApp.java4
-rw-r--r--main/src/cgeo/geocaching/apps/cachelist/CacheListAppFactory.java4
-rw-r--r--main/src/cgeo/geocaching/apps/cachelist/InternalCacheListMap.java4
-rw-r--r--main/src/cgeo/geocaching/apps/cachelist/LocusCacheListApp.java4
-rw-r--r--main/src/cgeo/geocaching/cgBase.java188
-rw-r--r--main/src/cgeo/geocaching/cgCacheWrap.java17
-rw-r--r--main/src/cgeo/geocaching/cgSearch.java87
-rw-r--r--main/src/cgeo/geocaching/cgeoapplication.java109
-rw-r--r--main/src/cgeo/geocaching/cgeocaches.java37
-rw-r--r--main/src/cgeo/geocaching/connector/AbstractConnector.java6
-rw-r--r--main/src/cgeo/geocaching/connector/GCConnector.java42
-rw-r--r--main/src/cgeo/geocaching/connector/IConnector.java8
-rw-r--r--main/src/cgeo/geocaching/connector/opencaching/ApiOpenCachingConnector.java16
-rw-r--r--main/src/cgeo/geocaching/files/GPXImporter.java10
-rw-r--r--main/src/cgeo/geocaching/files/LocParser.java7
-rw-r--r--main/src/cgeo/geocaching/maps/CGeoMap.java14
-rw-r--r--tests/res/raw/gc1zxez.html1734
-rw-r--r--tests/src/cgeo/geocaching/ParserTest.java14
-rw-r--r--tests/src/cgeo/geocaching/cgBaseTest.java4
-rw-r--r--tests/src/cgeo/geocaching/cgeoApplicationTest.java13
-rw-r--r--tests/src/cgeo/geocaching/files/GPXImporterTest.java14
35 files changed, 435 insertions, 2176 deletions
diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java
index 6faa603..7ca8137 100644
--- a/main/src/cgeo/geocaching/CacheDetailActivity.java
+++ b/main/src/cgeo/geocaching/CacheDetailActivity.java
@@ -106,7 +106,7 @@ public class CacheDetailActivity extends AbstractActivity {
private cgGeo geolocation;
private cgCache cache;
private final Progress progress = new Progress();
- private cgSearch search;
+ private SearchResult search;
private final LocationUpdater locationUpdater = new LocationUpdater();
private String contextMenuUser = null;
private int contextMenuWPIndex = -1;
@@ -563,8 +563,8 @@ public class CacheDetailActivity extends AbstractActivity {
return;
}
- if (cgeoapplication.getError(search) != null) {
- showToast(res.getString(R.string.err_dwld_details_failed_reason) + " " + cgeoapplication.getError(search) + ".");
+ if (SearchResult.getError(search) != null) {
+ showToast(res.getString(R.string.err_dwld_details_failed_reason) + " " + SearchResult.getError(search) + ".");
finish();
return;
diff --git a/main/src/cgeo/geocaching/ParseResult.java b/main/src/cgeo/geocaching/ParseResult.java
new file mode 100644
index 0000000..af99320
--- /dev/null
+++ b/main/src/cgeo/geocaching/ParseResult.java
@@ -0,0 +1,56 @@
+package cgeo.geocaching;
+
+import cgeo.geocaching.enumerations.CacheType;
+import cgeo.geocaching.enumerations.LoadFlags;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Search result including list of caches
+ */
+public class ParseResult extends SearchResult {
+
+ public List<cgCache> cacheList = new ArrayList<cgCache>();
+
+ public ParseResult() {
+ super();
+ }
+
+ public ParseResult(SearchResult searchResult) {
+ super(searchResult);
+ }
+
+ public ParseResult(ParseResult parseResult) {
+ super(parseResult);
+ cacheList.addAll(parseResult.cacheList);
+ }
+
+ public ParseResult(final List<String> geocodes) {
+ super(geocodes);
+ cgeoapplication app = cgeoapplication.getInstance();
+ for (String geocode : geocodes) {
+ cacheList.add(app.getCacheByGeocode(geocode, LoadFlags.LOADALL));
+ }
+ }
+
+ public static ParseResult filterParseResults(final ParseResult parseResult, final boolean excludeDisabled, final boolean excludeMine, final CacheType cacheType) {
+
+ ParseResult result = new ParseResult(parseResult);
+
+ if (parseResult != null) {
+ for (final cgCache cache : parseResult.cacheList) {
+ // Is there any reason to exclude the cache from the list?
+ final boolean excludeCache = (excludeDisabled && cache.isDisabled()) ||
+ (excludeMine && (cache.isOwn() || cache.isFound())) ||
+ (cacheType != CacheType.ALL && cacheType != cache.getType());
+ if (!excludeCache) {
+ result.addGeocode(cache.getGeocode());
+ result.cacheList.add(cache);
+ }
+ }
+ }
+
+ return result;
+ }
+} \ No newline at end of file
diff --git a/main/src/cgeo/geocaching/SearchResult.java b/main/src/cgeo/geocaching/SearchResult.java
new file mode 100644
index 0000000..790ebd8
--- /dev/null
+++ b/main/src/cgeo/geocaching/SearchResult.java
@@ -0,0 +1,169 @@
+package cgeo.geocaching;
+
+import cgeo.geocaching.enumerations.StatusCode;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+public class SearchResult implements Parcelable {
+
+ final private List<String> geocodes;
+ public StatusCode error = null; // 13
+ public String url = ""; // 7
+ public String[] viewstates = null; // 9
+ public int totalCnt = 0; // 9
+
+ final public static Parcelable.Creator<SearchResult> CREATOR = new Parcelable.Creator<SearchResult>() {
+ public SearchResult createFromParcel(Parcel in) {
+ return new SearchResult(in);
+ }
+
+ public SearchResult[] newArray(int size) {
+ return new SearchResult[size];
+ }
+ };
+
+ public SearchResult() {
+ this((List<String>) null);
+ }
+
+ public SearchResult(SearchResult searchResult) {
+ if (searchResult != null) {
+ this.geocodes = new ArrayList<String>(searchResult.geocodes);
+ this.error = searchResult.error;
+ this.url = searchResult.url;
+ this.viewstates = searchResult.viewstates;
+ this.totalCnt = searchResult.totalCnt;
+ } else {
+ this.geocodes = new ArrayList<String>();
+ }
+ }
+
+ public SearchResult(final List<String> geocodes) {
+ if (geocodes == null) {
+ this.geocodes = new ArrayList<String>();
+ } else {
+ this.geocodes = new ArrayList<String>(geocodes.size());
+ this.geocodes.addAll(geocodes);
+ }
+ }
+
+ public SearchResult(final Parcel in) {
+ geocodes = new ArrayList<String>();
+ in.readStringList(geocodes);
+ error = (StatusCode) in.readSerializable();
+ url = in.readString();
+ final int length = in.readInt();
+ if (length >= 0) {
+ viewstates = new String[length];
+ in.readStringArray(viewstates);
+ }
+ totalCnt = in.readInt();
+ }
+
+ @Override
+ public void writeToParcel(final Parcel out, final int flags) {
+ out.writeStringList(geocodes);
+ out.writeSerializable(error);
+ out.writeString(url);
+ if (viewstates == null) {
+ out.writeInt(-1);
+ } else {
+ out.writeInt(viewstates.length);
+ out.writeStringArray(viewstates);
+ }
+ out.writeInt(totalCnt);
+ }
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ public List<String> getGeocodes() {
+ return Collections.unmodifiableList(geocodes);
+ }
+
+ public int getCount() {
+ return geocodes.size();
+ }
+
+ public void addGeocode(final String geocode) {
+ geocodes.add(geocode);
+ }
+
+ public static StatusCode getError(final SearchResult search) {
+ if (search == null) {
+ return null;
+ }
+
+ return search.error;
+ }
+
+ public static boolean setError(final SearchResult search, final StatusCode error) {
+ if (search == null) {
+ return false;
+ }
+
+ search.error = error;
+
+ return true;
+ }
+
+ public static String getUrl(final SearchResult search) {
+ if (search == null) {
+ return null;
+ }
+
+ return search.url;
+ }
+
+ public static boolean setUrl(final SearchResult search, String url) {
+ if (search == null) {
+ return false;
+ }
+
+ search.url = url;
+
+ return true;
+ }
+
+ public static String[] getViewstates(final SearchResult search) {
+ if (search == null) {
+ return null;
+ }
+
+ return search.viewstates;
+ }
+
+ public static boolean setViewstates(final SearchResult search, String[] viewstates) {
+ if (cgBase.isEmpty(viewstates) || search == null) {
+ return false;
+ }
+
+ search.viewstates = viewstates;
+
+ return true;
+ }
+
+ public static int getTotal(final SearchResult search) {
+ if (search == null) {
+ return 0;
+ }
+
+ return search.totalCnt;
+ }
+
+ public static int getCount(final SearchResult search) {
+ if (search == null) {
+ return 0;
+ }
+
+ return search.getCount();
+ }
+
+}
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java b/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java
index 84dce21..1a80b07 100644
--- a/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java
+++ b/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsApp.java
@@ -4,7 +4,7 @@ import cgeo.geocaching.R;
import cgeo.geocaching.Settings;
import cgeo.geocaching.cgCache;
import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.cgSearch;
+import cgeo.geocaching.SearchResult;
import cgeo.geocaching.cgWaypoint;
import cgeo.geocaching.activity.ActivityMixin;
import cgeo.geocaching.geopoint.Geopoint;
@@ -29,7 +29,7 @@ class GoogleMapsApp extends AbstractNavigationApp {
public boolean invoke(cgGeo geo, Activity activity, Resources res,
cgCache cache,
- final cgSearch search, cgWaypoint waypoint, final Geopoint coords) {
+ final SearchResult search, cgWaypoint waypoint, final Geopoint coords) {
if (cache == null && waypoint == null && coords == null) {
return false;
}
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java b/main/src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java
index e6578b0..d30318d 100644
--- a/main/src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java
+++ b/main/src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java
@@ -4,7 +4,7 @@ import cgeo.geocaching.R;
import cgeo.geocaching.Settings;
import cgeo.geocaching.cgCache;
import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.cgSearch;
+import cgeo.geocaching.SearchResult;
import cgeo.geocaching.cgWaypoint;
import cgeo.geocaching.activity.ActivityMixin;
import cgeo.geocaching.geopoint.Geopoint;
@@ -30,7 +30,7 @@ class GoogleNavigationApp extends AbstractNavigationApp {
@Override
public boolean invoke(final cgGeo geo, final Activity activity, final Resources res,
final cgCache cache,
- final cgSearch search, final cgWaypoint waypoint, final Geopoint coords) {
+ final SearchResult search, final cgWaypoint waypoint, final Geopoint coords) {
if (activity == null) {
return false;
}
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/InternalMap.java b/main/src/cgeo/geocaching/apps/cache/navi/InternalMap.java
index fdab474..75cad9c 100644
--- a/main/src/cgeo/geocaching/apps/cache/navi/InternalMap.java
+++ b/main/src/cgeo/geocaching/apps/cache/navi/InternalMap.java
@@ -3,7 +3,7 @@ package cgeo.geocaching.apps.cache.navi;
import cgeo.geocaching.R;
import cgeo.geocaching.cgCache;
import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.cgSearch;
+import cgeo.geocaching.SearchResult;
import cgeo.geocaching.cgWaypoint;
import cgeo.geocaching.enumerations.WaypointType;
import cgeo.geocaching.geopoint.Geopoint;
@@ -21,7 +21,7 @@ class InternalMap extends AbstractInternalMap {
@Override
public boolean invoke(cgGeo geo, Activity activity, Resources res,
cgCache cache,
- final cgSearch search, cgWaypoint waypoint, final Geopoint coords) {
+ final SearchResult search, cgWaypoint waypoint, final Geopoint coords) {
if (search != null) {
CGeoMap.startActivitySearch(activity, search, cache != null ? cache.getGeocode() : null, true);
}
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/LocusApp.java b/main/src/cgeo/geocaching/apps/cache/navi/LocusApp.java
index 544ad33..cec1597 100644
--- a/main/src/cgeo/geocaching/apps/cache/navi/LocusApp.java
+++ b/main/src/cgeo/geocaching/apps/cache/navi/LocusApp.java
@@ -2,7 +2,7 @@ package cgeo.geocaching.apps.cache.navi;
import cgeo.geocaching.cgCache;
import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.cgSearch;
+import cgeo.geocaching.SearchResult;
import cgeo.geocaching.cgWaypoint;
import cgeo.geocaching.apps.AbstractLocusApp;
import cgeo.geocaching.geopoint.Geopoint;
@@ -27,7 +27,7 @@ class LocusApp extends AbstractLocusApp implements NavigationApp {
*/
@Override
public boolean invoke(cgGeo geo, Activity activity, Resources res, cgCache cache,
- final cgSearch search, cgWaypoint waypoint, final Geopoint coords) {
+ final SearchResult search, cgWaypoint waypoint, final Geopoint coords) {
if (cache == null && waypoint == null && coords == null) {
return false;
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/NavigationApp.java b/main/src/cgeo/geocaching/apps/cache/navi/NavigationApp.java
index f52cc42..757141e 100644
--- a/main/src/cgeo/geocaching/apps/cache/navi/NavigationApp.java
+++ b/main/src/cgeo/geocaching/apps/cache/navi/NavigationApp.java
@@ -2,7 +2,7 @@ package cgeo.geocaching.apps.cache.navi;
import cgeo.geocaching.cgCache;
import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.cgSearch;
+import cgeo.geocaching.SearchResult;
import cgeo.geocaching.cgWaypoint;
import cgeo.geocaching.apps.App;
import cgeo.geocaching.geopoint.Geopoint;
@@ -14,6 +14,6 @@ interface NavigationApp extends App {
public boolean invoke(final cgGeo geo, final Activity activity,
final Resources res,
final cgCache cache,
- final cgSearch search, final cgWaypoint waypoint,
+ final SearchResult search, final cgWaypoint waypoint,
final Geopoint coords);
}
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java b/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java
index 56bcb5d..b29d42c 100644
--- a/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java
+++ b/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java
@@ -3,7 +3,7 @@ package cgeo.geocaching.apps.cache.navi;
import cgeo.geocaching.Settings;
import cgeo.geocaching.cgCache;
import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.cgSearch;
+import cgeo.geocaching.SearchResult;
import cgeo.geocaching.cgWaypoint;
import cgeo.geocaching.apps.AbstractAppFactory;
import cgeo.geocaching.geopoint.Geopoint;
@@ -55,7 +55,7 @@ public final class NavigationAppFactory extends AbstractAppFactory {
public static boolean onMenuItemSelected(final MenuItem item,
final cgGeo geo, Activity activity, Resources res,
cgCache cache,
- final cgSearch search, cgWaypoint waypoint, final Geopoint destination) {
+ final SearchResult search, cgWaypoint waypoint, final Geopoint destination) {
NavigationApp app = (NavigationApp) getAppFromMenuItem(item, apps);
if (app != null) {
try {
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/OruxMapsApp.java b/main/src/cgeo/geocaching/apps/cache/navi/OruxMapsApp.java
index 0d99644..51e17c6 100644
--- a/main/src/cgeo/geocaching/apps/cache/navi/OruxMapsApp.java
+++ b/main/src/cgeo/geocaching/apps/cache/navi/OruxMapsApp.java
@@ -3,7 +3,7 @@ package cgeo.geocaching.apps.cache.navi;
import cgeo.geocaching.R;
import cgeo.geocaching.cgCache;
import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.cgSearch;
+import cgeo.geocaching.SearchResult;
import cgeo.geocaching.cgWaypoint;
import cgeo.geocaching.geopoint.Geopoint;
@@ -22,7 +22,7 @@ class OruxMapsApp extends AbstractNavigationApp {
@Override
public boolean invoke(cgGeo geo, Activity activity, Resources res,
cgCache cache,
- final cgSearch search, cgWaypoint waypoint, final Geopoint coords) {
+ final SearchResult search, cgWaypoint waypoint, final Geopoint coords) {
if (cache == null && waypoint == null && coords == null) {
return false;
}
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/RMapsApp.java b/main/src/cgeo/geocaching/apps/cache/navi/RMapsApp.java
index bc88853..ca47d3e 100644
--- a/main/src/cgeo/geocaching/apps/cache/navi/RMapsApp.java
+++ b/main/src/cgeo/geocaching/apps/cache/navi/RMapsApp.java
@@ -3,7 +3,7 @@ package cgeo.geocaching.apps.cache.navi;
import cgeo.geocaching.R;
import cgeo.geocaching.cgCache;
import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.cgSearch;
+import cgeo.geocaching.SearchResult;
import cgeo.geocaching.cgWaypoint;
import cgeo.geocaching.geopoint.Geopoint;
import cgeo.geocaching.geopoint.GeopointFormatter.Format;
@@ -25,7 +25,7 @@ class RMapsApp extends AbstractNavigationApp {
@Override
public boolean invoke(cgGeo geo, Activity activity, Resources res,
cgCache cache,
- final cgSearch search, cgWaypoint waypoint, final Geopoint coords) {
+ final SearchResult search, cgWaypoint waypoint, final Geopoint coords) {
if (cache == null && waypoint == null && coords == null) {
return false;
}
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/RadarApp.java b/main/src/cgeo/geocaching/apps/cache/navi/RadarApp.java
index 130668b..f66c199 100644
--- a/main/src/cgeo/geocaching/apps/cache/navi/RadarApp.java
+++ b/main/src/cgeo/geocaching/apps/cache/navi/RadarApp.java
@@ -3,7 +3,7 @@ package cgeo.geocaching.apps.cache.navi;
import cgeo.geocaching.R;
import cgeo.geocaching.cgCache;
import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.cgSearch;
+import cgeo.geocaching.SearchResult;
import cgeo.geocaching.cgWaypoint;
import cgeo.geocaching.geopoint.Geopoint;
@@ -34,7 +34,7 @@ class RadarApp extends AbstractNavigationApp {
@Override
public boolean invoke(cgGeo geo, Activity activity, Resources res,
cgCache cache,
- final cgSearch search, cgWaypoint waypoint, final Geopoint coords) {
+ final SearchResult search, cgWaypoint waypoint, final Geopoint coords) {
if (cache != null) {
return navigateTo(activity, cache.getCoords());
}
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/StaticMapApp.java b/main/src/cgeo/geocaching/apps/cache/navi/StaticMapApp.java
index 0b3f7b9..a0284e3 100644
--- a/main/src/cgeo/geocaching/apps/cache/navi/StaticMapApp.java
+++ b/main/src/cgeo/geocaching/apps/cache/navi/StaticMapApp.java
@@ -3,7 +3,7 @@ package cgeo.geocaching.apps.cache.navi;
import cgeo.geocaching.R;
import cgeo.geocaching.cgCache;
import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.cgSearch;
+import cgeo.geocaching.SearchResult;
import cgeo.geocaching.cgWaypoint;
import cgeo.geocaching.cgeosmaps;
import cgeo.geocaching.activity.ActivityMixin;
@@ -28,7 +28,7 @@ class StaticMapApp extends AbstractNavigationApp {
@Override
public boolean invoke(cgGeo geo, Activity activity, Resources res,
cgCache cache,
- final cgSearch search, cgWaypoint waypoint, final Geopoint coords) {
+ final SearchResult search, cgWaypoint waypoint, final Geopoint coords) {
if (cache == null || cache.getListId() == 0) {
ActivityMixin.showToast(activity, res.getString(R.string.err_detail_no_map_static));
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java b/main/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java
index 9130d64..c88e54d 100644
--- a/main/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java
+++ b/main/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java
@@ -3,7 +3,7 @@ package cgeo.geocaching.apps.cache.navi;
import cgeo.geocaching.R;
import cgeo.geocaching.cgCache;
import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.cgSearch;
+import cgeo.geocaching.SearchResult;
import cgeo.geocaching.cgWaypoint;
import cgeo.geocaching.activity.ActivityMixin;
import cgeo.geocaching.geopoint.Geopoint;
@@ -28,7 +28,7 @@ class StreetviewApp extends AbstractNavigationApp {
public boolean invoke(cgGeo geo, Activity activity, Resources res,
cgCache cache,
- final cgSearch search, cgWaypoint waypoint, final Geopoint coords) {
+ final SearchResult search, cgWaypoint waypoint, final Geopoint coords) {
if (cache == null && waypoint == null && coords == null) {
return false;
}
diff --git a/main/src/cgeo/geocaching/apps/cachelist/CacheListApp.java b/main/src/cgeo/geocaching/apps/cachelist/CacheListApp.java
index 2788d2b..08f8cf8 100644
--- a/main/src/cgeo/geocaching/apps/cachelist/CacheListApp.java
+++ b/main/src/cgeo/geocaching/apps/cachelist/CacheListApp.java
@@ -2,7 +2,7 @@ package cgeo.geocaching.apps.cachelist;
import cgeo.geocaching.cgCache;
import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.cgSearch;
+import cgeo.geocaching.SearchResult;
import cgeo.geocaching.apps.App;
import android.app.Activity;
@@ -14,6 +14,6 @@ interface CacheListApp extends App {
boolean invoke(final cgGeo geo, final List<cgCache> caches,
final Activity activity, final Resources res,
- final cgSearch search);
+ final SearchResult search);
}
diff --git a/main/src/cgeo/geocaching/apps/cachelist/CacheListAppFactory.java b/main/src/cgeo/geocaching/apps/cachelist/CacheListAppFactory.java
index 46ceb8b..47503d8 100644
--- a/main/src/cgeo/geocaching/apps/cachelist/CacheListAppFactory.java
+++ b/main/src/cgeo/geocaching/apps/cachelist/CacheListAppFactory.java
@@ -4,7 +4,7 @@ import cgeo.geocaching.R;
import cgeo.geocaching.Settings;
import cgeo.geocaching.cgCache;
import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.cgSearch;
+import cgeo.geocaching.SearchResult;
import cgeo.geocaching.apps.AbstractAppFactory;
import org.apache.commons.lang3.ArrayUtils;
@@ -64,7 +64,7 @@ public final class CacheListAppFactory extends AbstractAppFactory {
public static boolean onMenuItemSelected(final MenuItem item,
final cgGeo geo, final List<cgCache> caches, final Activity activity, final Resources res,
- final cgSearch search) {
+ final SearchResult search) {
CacheListApp app = (CacheListApp) getAppFromMenuItem(item, apps);
if (app != null) {
try {
diff --git a/main/src/cgeo/geocaching/apps/cachelist/InternalCacheListMap.java b/main/src/cgeo/geocaching/apps/cachelist/InternalCacheListMap.java
index 3038872..f5b1f51 100644
--- a/main/src/cgeo/geocaching/apps/cachelist/InternalCacheListMap.java
+++ b/main/src/cgeo/geocaching/apps/cachelist/InternalCacheListMap.java
@@ -3,7 +3,7 @@ package cgeo.geocaching.apps.cachelist;
import cgeo.geocaching.R;
import cgeo.geocaching.cgCache;
import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.cgSearch;
+import cgeo.geocaching.SearchResult;
import cgeo.geocaching.apps.AbstractApp;
import cgeo.geocaching.maps.CGeoMap;
@@ -25,7 +25,7 @@ class InternalCacheListMap extends AbstractApp implements CacheListApp {
}
@Override
- public boolean invoke(cgGeo geo, List<cgCache> caches, Activity activity, Resources res, final cgSearch search) {
+ public boolean invoke(cgGeo geo, List<cgCache> caches, Activity activity, Resources res, final SearchResult search) {
CGeoMap.startActivitySearch(activity, search, null, false);
return true;
}
diff --git a/main/src/cgeo/geocaching/apps/cachelist/LocusCacheListApp.java b/main/src/cgeo/geocaching/apps/cachelist/LocusCacheListApp.java
index eddd6ac..705014c 100644
--- a/main/src/cgeo/geocaching/apps/cachelist/LocusCacheListApp.java
+++ b/main/src/cgeo/geocaching/apps/cachelist/LocusCacheListApp.java
@@ -2,7 +2,7 @@ package cgeo.geocaching.apps.cachelist;
import cgeo.geocaching.cgCache;
import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.cgSearch;
+import cgeo.geocaching.SearchResult;
import cgeo.geocaching.apps.AbstractLocusApp;
import org.apache.commons.collections.CollectionUtils;
@@ -26,7 +26,7 @@ class LocusCacheListApp extends AbstractLocusApp implements CacheListApp {
*/
@Override
public boolean invoke(cgGeo geo, List<cgCache> cacheList, Activity activity, Resources res,
- final cgSearch search) {
+ final SearchResult search) {
if (CollectionUtils.isEmpty(cacheList)) {
return false;
}
diff --git a/main/src/cgeo/geocaching/cgBase.java b/main/src/cgeo/geocaching/cgBase.java
index 286dbe5..a41a7b9 100644
--- a/main/src/cgeo/geocaching/cgBase.java
+++ b/main/src/cgeo/geocaching/cgBase.java
@@ -411,22 +411,21 @@ public class cgBase {
}
}
- private static cgCacheWrap parseSearch(final cgSearchThread thread, final String url, final String pageContent, final boolean showCaptcha) {
+ private static ParseResult parseSearch(final cgSearchThread thread, final String url, final String pageContent, final boolean showCaptcha) {
if (StringUtils.isBlank(pageContent)) {
Log.e(Settings.tag, "cgeoBase.parseSearch: No page given");
return null;
}
- final cgCacheWrap caches = new cgCacheWrap();
final List<String> cids = new ArrayList<String>();
final List<String> guids = new ArrayList<String>();
String recaptchaChallenge = null;
String recaptchaText = null;
String page = pageContent;
- caches.url = url;
-
- caches.viewstates = getViewstates(page);
+ final ParseResult parseResult = new ParseResult();
+ parseResult.url = url;
+ parseResult.viewstates = getViewstates(page);
// recaptcha
if (showCaptcha) {
@@ -448,7 +447,7 @@ public class cgBase {
if (!page.contains("SearchResultsTable")) {
// there are no results. aborting here avoids a wrong error log in the next parsing step
- return caches;
+ return parseResult;
}
int startPos = page.indexOf("<div id=\"ctl00_ContentBody_ResultsPanel\"");
@@ -583,14 +582,14 @@ public class cgBase {
}
}
- caches.cacheList.add(cache);
+ parseResult.cacheList.add(cache);
}
// total caches found
try {
String result = BaseUtils.getMatch(page, GCConstants.PATTERN_SEARCH_TOTALCOUNT, false, 1, null, true);
if (null != result) {
- caches.totalCnt = Integer.parseInt(result);
+ parseResult.totalCnt = Integer.parseInt(result);
}
} catch (NumberFormatException e) {
Log.w(Settings.tag, "cgeoBase.parseSearch: Failed to parse cache count");
@@ -612,13 +611,13 @@ public class cgBase {
final Parameters params = new Parameters(
"__EVENTTARGET", "",
"__EVENTARGUMENT", "");
- if (ArrayUtils.isNotEmpty(caches.viewstates)) {
- params.put("__VIEWSTATE", caches.viewstates[0]);
- if (caches.viewstates.length > 1) {
- for (int i = 1; i < caches.viewstates.length; i++) {
- params.put("__VIEWSTATE" + i, caches.viewstates[i]);
+ if (ArrayUtils.isNotEmpty(parseResult.viewstates)) {
+ params.put("__VIEWSTATE", parseResult.viewstates[0]);
+ if (parseResult.viewstates.length > 1) {
+ for (int i = 1; i < parseResult.viewstates.length; i++) {
+ params.put("__VIEWSTATE" + i, parseResult.viewstates[i]);
}
- params.put("__VIEWSTATEFIELDCOUNT", "" + caches.viewstates.length);
+ params.put("__VIEWSTATEFIELDCOUNT", "" + parseResult.viewstates.length);
}
}
for (String cid : cids) {
@@ -637,13 +636,13 @@ public class cgBase {
if (coordinates.contains("You have not agreed to the license agreement. The license agreement is required before you can start downloading GPX or LOC files from Geocaching.com")) {
Log.i(Settings.tag, "User has not agreed to the license agreement. Can\'t download .loc file.");
- caches.error = StatusCode.UNAPPROVED_LICENSE;
+ parseResult.error = StatusCode.UNAPPROVED_LICENSE;
- return caches;
+ return parseResult;
}
}
- LocParser.parseLoc(caches, coordinates);
+ LocParser.parseLoc(parseResult, coordinates);
} catch (Exception e) {
Log.e(Settings.tag, "cgBase.parseSearch.CIDs: " + e.toString());
}
@@ -652,7 +651,7 @@ public class cgBase {
// get direction images
if (Settings.getLoadDirImg())
{
- for (cgCache oneCache : caches.cacheList) {
+ for (cgCache oneCache : parseResult.cacheList) {
if (oneCache.getCoords() == null && StringUtils.isNotEmpty(oneCache.getDirectionImg())) {
cgDirectionImg.getDrawable(oneCache.getGeocode(), oneCache.getDirectionImg());
}
@@ -669,7 +668,7 @@ public class cgBase {
if (MapUtils.isNotEmpty(ratings)) {
// save found cache coordinates
- for (cgCache cache : caches.cacheList) {
+ for (cgCache cache : parseResult.cacheList) {
if (ratings.containsKey(cache.getGuid())) {
GCVoteRating rating = ratings.get(cache.getGuid());
@@ -685,17 +684,17 @@ public class cgBase {
}
}
- return caches;
+ return parseResult;
}
- public static cgCacheWrap parseMapJSON(final String uri, final String data) {
+ public static ParseResult parseMapJSON(final String uri, final String data) {
if (StringUtils.isEmpty(data)) {
Log.e(Settings.tag, "cgeoBase.parseMapJSON: No page given");
return null;
}
- final cgCacheWrap caches = new cgCacheWrap();
- caches.url = uri;
+ final ParseResult parseResult = new ParseResult();
+ parseResult.url = uri;
try {
final JSONObject yoDawg = new JSONObject(data);
@@ -758,25 +757,25 @@ public class cgBase {
cacheToAdd.setType(CacheType.UNKNOWN);
}
- caches.cacheList.add(cacheToAdd);
+ parseResult.cacheList.add(cacheToAdd);
}
}
} else {
Log.w(Settings.tag, "There are no caches in viewport");
}
- caches.totalCnt = caches.cacheList.size();
+ parseResult.totalCnt = parseResult.cacheList.size();
}
} catch (Exception e) {
Log.e(Settings.tag, "cgBase.parseMapJSON", e);
}
- return caches;
+ return parseResult;
}
- public static cgCacheWrap parseCache(final String page, final int listId, final CancellableHandler handler) {
- final cgCacheWrap caches = parseCacheFromText(page, listId, handler);
- if (caches != null && !caches.cacheList.isEmpty()) {
- final cgCache cache = caches.cacheList.get(0);
+ public static ParseResult parseCache(final String page, final int listId, final CancellableHandler handler) {
+ final ParseResult parseResult = parseCacheFromText(page, listId, handler);
+ if (parseResult != null && !parseResult.cacheList.isEmpty()) {
+ final cgCache cache = parseResult.cacheList.get(0);
getExtraOnlineInfo(cache, page, handler);
cache.setUpdated(System.currentTimeMillis());
cache.setDetailedUpdate(cache.getUpdated());
@@ -785,10 +784,10 @@ public class cgBase {
if (CancellableHandler.isCancelled(handler)) {
return null;
}
- return caches;
+ return parseResult;
}
- static cgCacheWrap parseCacheFromText(final String page, final int listId, final CancellableHandler handler) {
+ static ParseResult parseCacheFromText(final String page, final int listId, final CancellableHandler handler) {
sendLoadProgressDetail(handler, R.string.cache_dialog_loading_details_status_details);
if (StringUtils.isBlank(page)) {
@@ -796,21 +795,21 @@ public class cgBase {
return null;
}
- final cgCacheWrap caches = new cgCacheWrap();
+ final ParseResult parseResult = new ParseResult();
if (page.contains("Cache is Unpublished")) {
- caches.error = StatusCode.UNPUBLISHED_CACHE;
- return caches;
+ parseResult.error = StatusCode.UNPUBLISHED_CACHE;
+ return parseResult;
}
if (page.contains("Sorry, the owner of this listing has made it viewable to Premium Members only.")) {
- caches.error = StatusCode.PREMIUM_ONLY;
- return caches;
+ parseResult.error = StatusCode.PREMIUM_ONLY;
+ return parseResult;
}
if (page.contains("has chosen to make this cache listing visible to Premium Members only.")) {
- caches.error = StatusCode.PREMIUM_ONLY;
- return caches;
+ parseResult.error = StatusCode.PREMIUM_ONLY;
+ return parseResult;
}
final cgCache cache = new cgCache();
@@ -1171,9 +1170,9 @@ public class cgBase {
}
}
- caches.cacheList.add(cache);
+ parseResult.cacheList.add(cache);
- return caches;
+ return parseResult;
}
private static void getExtraOnlineInfo(final cgCache cache, final String page, final CancellableHandler handler) {
@@ -1728,10 +1727,10 @@ public class cgBase {
params.put("tx", cacheType.guid);
}
- public static cgSearch searchByNextPage(cgSearchThread thread, final cgSearch search, int listId, boolean showCaptcha) {
- final String[] viewstates = cgeoapplication.getViewstates(search);
+ public static ParseResult searchByNextPage(cgSearchThread thread, final ParseResult search, int listId, boolean showCaptcha) {
+ final String[] viewstates = SearchResult.getViewstates(search);
- final String url = cgeoapplication.getUrl(search);
+ final String url = SearchResult.getUrl(search);
if (StringUtils.isBlank(url)) {
Log.e(Settings.tag, "cgeoBase.searchByNextPage: No url found");
@@ -1759,7 +1758,7 @@ public class cgBase {
} else if (loginState == StatusCode.NO_LOGIN_INFO_STORED) {
Log.i(Settings.tag, "Working as guest.");
} else {
- cgeoapplication.setError(search, loginState);
+ SearchResult.setError(search, loginState);
Log.e(Settings.tag, "cgeoBase.searchByNextPage: Can not log in geocaching");
return search;
}
@@ -1770,28 +1769,29 @@ public class cgBase {
return search;
}
- final cgCacheWrap caches = parseSearch(thread, url, page, showCaptcha);
- if (caches == null || CollectionUtils.isEmpty(caches.cacheList)) {
+ final ParseResult parseResult = parseSearch(thread, url, page, showCaptcha);
+ if (parseResult == null || CollectionUtils.isEmpty(parseResult.cacheList)) {
Log.e(Settings.tag, "cgeoBase.searchByNextPage: No cache parsed");
return search;
}
// save to application
- cgeoapplication.setError(search, caches.error);
- cgeoapplication.setViewstates(search, caches.viewstates);
+ SearchResult.setError(search, parseResult.error);
+ SearchResult.setViewstates(search, parseResult.viewstates);
+ if (search != null) {
+ search.cacheList = parseResult.cacheList;
- for (final cgCache cache : caches.cacheList) {
- cgeoapplication.addGeocode(search, cache.getGeocode());
+ for (final cgCache cache : parseResult.cacheList) {
+ search.addGeocode(cache.getGeocode());
+ }
}
- cgeoapplication.getInstance().addSearch(caches.cacheList, listId);
+ cgeoapplication.getInstance().addSearch(parseResult.cacheList, listId);
return search;
}
- public static cgSearch searchByGeocode(final String geocode, final String guid, final int listId, final boolean forceReload, final CancellableHandler handler) {
- final cgSearch search = new cgSearch();
-
+ public static ParseResult searchByGeocode(final String geocode, final String guid, final int listId, final boolean forceReload, final CancellableHandler handler) {
if (StringUtils.isBlank(geocode) && StringUtils.isBlank(guid)) {
Log.e(Settings.tag, "cgeoBase.searchByGeocode: No geocode nor guid given");
return null;
@@ -1799,6 +1799,7 @@ public class cgBase {
cgeoapplication app = cgeoapplication.getInstance();
if (!forceReload && listId == 0 && (app.isOffline(geocode, guid) || app.isThere(geocode, guid, true, true))) {
+ final ParseResult search = new ParseResult();
final String realGeocode = StringUtils.isNotBlank(geocode) ? geocode : app.getGeocode(guid);
search.addGeocode(realGeocode);
return search;
@@ -1806,22 +1807,22 @@ public class cgBase {
// if we have no geocode, we can't dynamically select the handler, but must explicitly use GC
if (geocode == null && guid != null) {
- return GCConnector.getInstance().searchByGeocode(null, guid, app, search, listId, handler);
+ return GCConnector.getInstance().searchByGeocode(null, guid, app, listId, handler);
}
- return ConnectorFactory.getConnector(geocode).searchByGeocode(geocode, guid, app, search, listId, handler);
+ return ConnectorFactory.getConnector(geocode).searchByGeocode(geocode, guid, app, listId, handler);
}
- public static cgSearch searchByOffline(final Geopoint coords, final CacheType cacheType, final int list) {
+ public static ParseResult searchByOffline(final Geopoint coords, final CacheType cacheType, final int list) {
cgeoapplication app = cgeoapplication.getInstance();
- final cgSearch search = app.getBatchOfStoredCaches(true, coords, cacheType, list);
+ final ParseResult search = app.getBatchOfStoredCaches(true, coords, cacheType, list);
search.totalCnt = app.getAllStoredCachesCount(true, cacheType, list);
return search;
}
- public static cgSearch searchByHistory(final CacheType cacheType) {
+ public static ParseResult searchByHistory(final CacheType cacheType) {
final cgeoapplication app = cgeoapplication.getInstance();
- final cgSearch search = app.getHistoryOfCaches(true, cacheType);
+ final ParseResult search = app.getHistoryOfCaches(true, cacheType);
search.totalCnt = app.getAllHistoricCachesCount();
return search;
@@ -1837,8 +1838,7 @@ public class cgBase {
* the parameters to add to the request URI
* @return
*/
- private static cgSearch searchByAny(final cgSearchThread thread, final CacheType cacheType, final boolean my, final int listId, final boolean showCaptcha, final Parameters params) {
- final cgSearch search = new cgSearch();
+ private static ParseResult searchByAny(final cgSearchThread thread, final CacheType cacheType, final boolean my, final int listId, final boolean showCaptcha, final Parameters params) {
insertCacheType(params, cacheType);
final String uri = "http://www.geocaching.com/seek/nearest.aspx";
@@ -1850,23 +1850,24 @@ public class cgBase {
return null;
}
- final cgCacheWrap caches = parseSearch(thread, fullUri, page, showCaptcha);
- if (caches == null || CollectionUtils.isEmpty(caches.cacheList)) {
+ final ParseResult parseResult = parseSearch(thread, fullUri, page, showCaptcha);
+ if (parseResult == null || CollectionUtils.isEmpty(parseResult.cacheList)) {
Log.e(Settings.tag, "cgeoBase.searchByAny: No cache parsed");
+ return parseResult;
}
- List<cgCache> cacheList = filterSearchResults(search, caches, Settings.isExcludeDisabledCaches(), false, cacheType);
- cgeoapplication.getInstance().addSearch(cacheList, listId);
+ final ParseResult search = ParseResult.filterParseResults(parseResult, Settings.isExcludeDisabledCaches(), false, cacheType);
+ cgeoapplication.getInstance().addSearch(search.cacheList, listId);
return search;
}
- public static cgSearch searchByCoords(final cgSearchThread thread, final Geopoint coords, final CacheType cacheType, final int listId, final boolean showCaptcha) {
+ public static ParseResult searchByCoords(final cgSearchThread thread, final Geopoint coords, final CacheType cacheType, final int listId, final boolean showCaptcha) {
final Parameters params = new Parameters("lat", Double.toString(coords.getLatitude()), "lng", Double.toString(coords.getLongitude()));
return searchByAny(thread, cacheType, false, listId, showCaptcha, params);
}
- public static cgSearch searchByKeyword(final cgSearchThread thread, final String keyword, final CacheType cacheType, final int listId, final boolean showCaptcha) {
+ public static ParseResult searchByKeyword(final cgSearchThread thread, final String keyword, final CacheType cacheType, final int listId, final boolean showCaptcha) {
if (StringUtils.isBlank(keyword)) {
Log.e(Settings.tag, "cgeoBase.searchByKeyword: No keyword given");
return null;
@@ -1876,7 +1877,7 @@ public class cgBase {
return searchByAny(thread, cacheType, false, listId, showCaptcha, params);
}
- public static cgSearch searchByUsername(final cgSearchThread thread, final String userName, final CacheType cacheType, final int listId, final boolean showCaptcha) {
+ public static ParseResult searchByUsername(final cgSearchThread thread, final String userName, final CacheType cacheType, final int listId, final boolean showCaptcha) {
if (StringUtils.isBlank(userName)) {
Log.e(Settings.tag, "cgeoBase.searchByUsername: No user name given");
return null;
@@ -1893,7 +1894,7 @@ public class cgBase {
return searchByAny(thread, cacheType, my, listId, showCaptcha, params);
}
- public static cgSearch searchByOwner(final cgSearchThread thread, final String userName, final CacheType cacheType, final int listId, final boolean showCaptcha) {
+ public static ParseResult searchByOwner(final cgSearchThread thread, final String userName, final CacheType cacheType, final int listId, final boolean showCaptcha) {
if (StringUtils.isBlank(userName)) {
Log.e(Settings.tag, "cgeoBase.searchByOwner: No user name given");
return null;
@@ -1903,8 +1904,7 @@ public class cgBase {
return searchByAny(thread, cacheType, false, listId, showCaptcha, params);
}
- public static cgSearch searchByViewport(final String userToken, final Viewport viewport) {
- final cgSearch search = new cgSearch();
+ public static ParseResult searchByViewport(final String userToken, final Viewport viewport) {
String page = null;
@@ -1921,14 +1921,14 @@ public class cgBase {
return null;
}
- final cgCacheWrap caches = parseMapJSON(Uri.parse(uri).buildUpon().encodedQuery(params).build().toString(), page);
- if (caches == null || CollectionUtils.isEmpty(caches.cacheList)) {
+ final ParseResult parseResult = parseMapJSON(Uri.parse(uri).buildUpon().encodedQuery(params).build().toString(), page);
+ if (parseResult == null || CollectionUtils.isEmpty(parseResult.cacheList)) {
Log.e(Settings.tag, "cgeoBase.searchByViewport: No cache parsed");
+ return parseResult;
}
- List<cgCache> cacheList = filterSearchResults(search, caches, Settings.isExcludeDisabledCaches(), Settings.isExcludeMyCaches(), Settings.getCacheType());
-
- cgeoapplication.getInstance().addSearch(cacheList, 0);
+ final ParseResult search = ParseResult.filterParseResults(parseResult, Settings.isExcludeDisabledCaches(), Settings.isExcludeMyCaches(), Settings.getCacheType());
+ cgeoapplication.getInstance().addSearch(search.cacheList, 0);
return search;
}
@@ -1950,34 +1950,6 @@ public class cgBase {
return page;
}
- public static List<cgCache> filterSearchResults(final cgSearch search, final cgCacheWrap caches, final boolean excludeDisabled, final boolean excludeMine, final CacheType cacheType) {
- List<cgCache> cacheList = new ArrayList<cgCache>();
- if (caches != null) {
- if (caches.error != null) {
- search.error = caches.error;
- }
- if (StringUtils.isNotBlank(caches.url)) {
- search.url = caches.url;
- }
- search.viewstates = caches.viewstates;
- search.totalCnt = caches.totalCnt;
-
- if (CollectionUtils.isNotEmpty(caches.cacheList)) {
- for (final cgCache cache : caches.cacheList) {
- // Is there any reason to exclude the cache from the list?
- final boolean excludeCache = (excludeDisabled && cache.isDisabled()) ||
- (excludeMine && (cache.isOwn() || cache.isFound())) ||
- (cacheType != CacheType.ALL && cacheType != cache.getType());
- if (!excludeCache) {
- search.addGeocode(cache.getGeocode());
- cacheList.add(cache);
- }
- }
- }
- }
- return cacheList;
- }
-
public static cgTrackable searchTrackable(final String geocode, final String guid, final String id) {
if (StringUtils.isBlank(geocode) && StringUtils.isBlank(guid) && StringUtils.isBlank(id)) {
Log.w(Settings.tag, "cgeoBase.searchTrackable: No geocode nor guid nor id given");
@@ -2643,13 +2615,13 @@ public class cgBase {
if (origCache != null) {
// only reload the cache, if it was already stored or has not all details (by checking the description)
if (origCache.getListId() > 0 || StringUtils.isBlank(origCache.getDescription())) {
- final cgSearch search = searchByGeocode(origCache.getGeocode(), null, listId, false, null);
+ final SearchResult search = searchByGeocode(origCache.getGeocode(), null, listId, false, null);
cache = app.getCache(search);
} else {
cache = origCache;
}
} else if (StringUtils.isNotBlank(geocode)) {
- final cgSearch search = searchByGeocode(geocode, null, listId, false, null);
+ final SearchResult search = searchByGeocode(geocode, null, listId, false, null);
cache = app.getCache(search);
} else {
cache = null;
diff --git a/main/src/cgeo/geocaching/cgCacheWrap.java b/main/src/cgeo/geocaching/cgCacheWrap.java
deleted file mode 100644
index b1ccb12..0000000
--- a/main/src/cgeo/geocaching/cgCacheWrap.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package cgeo.geocaching;
-
-import cgeo.geocaching.enumerations.StatusCode;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * List of caches
- */
-public class cgCacheWrap {
- public StatusCode error = null;
- public String url = "";
- public String[] viewstates = null;
- public int totalCnt = 0;
- public List<cgCache> cacheList = new ArrayList<cgCache>();
-} \ No newline at end of file
diff --git a/main/src/cgeo/geocaching/cgSearch.java b/main/src/cgeo/geocaching/cgSearch.java
deleted file mode 100644
index b96b1cd..0000000
--- a/main/src/cgeo/geocaching/cgSearch.java
+++ /dev/null
@@ -1,87 +0,0 @@
-package cgeo.geocaching;
-
-import cgeo.geocaching.enumerations.StatusCode;
-
-import android.os.Parcel;
-import android.os.Parcelable;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-public class cgSearch implements Parcelable {
-
- final private List<String> geocodes;
- public StatusCode error = null;
- public String url = "";
- public String[] viewstates = null;
- public int totalCnt = 0;
-
- final public static Parcelable.Creator<cgSearch> CREATOR = new Parcelable.Creator<cgSearch>() {
- public cgSearch createFromParcel(Parcel in) {
- return new cgSearch(in);
- }
-
- public cgSearch[] newArray(int size) {
- return new cgSearch[size];
- }
- };
-
- public cgSearch() {
- this((List<String>) null);
- }
-
- public cgSearch(final List<String> geocodes) {
- if (geocodes == null) {
- this.geocodes = new ArrayList<String>();
- } else {
- this.geocodes = new ArrayList<String>(geocodes.size());
- this.geocodes.addAll(geocodes);
- }
- }
-
- public cgSearch(final Parcel in) {
- geocodes = new ArrayList<String>();
- in.readStringList(geocodes);
- error = (StatusCode) in.readSerializable();
- url = in.readString();
- final int length = in.readInt();
- if (length >= 0) {
- viewstates = new String[length];
- in.readStringArray(viewstates);
- }
- totalCnt = in.readInt();
- }
-
- @Override
- public void writeToParcel(final Parcel out, final int flags) {
- out.writeStringList(geocodes);
- out.writeSerializable(error);
- out.writeString(url);
- if (viewstates == null) {
- out.writeInt(-1);
- } else {
- out.writeInt(viewstates.length);
- out.writeStringArray(viewstates);
- }
- out.writeInt(totalCnt);
- }
-
- @Override
- public int describeContents() {
- return 0;
- }
-
- public List<String> getGeocodes() {
- return Collections.unmodifiableList(geocodes);
- }
-
- public int getCount() {
- return geocodes.size();
- }
-
- public void addGeocode(final String geocode) {
- geocodes.add(geocode);
- }
-
-}
diff --git a/main/src/cgeo/geocaching/cgeoapplication.java b/main/src/cgeo/geocaching/cgeoapplication.java
index b964555..ddc5aaa 100644
--- a/main/src/cgeo/geocaching/cgeoapplication.java
+++ b/main/src/cgeo/geocaching/cgeoapplication.java
@@ -5,7 +5,6 @@ import cgeo.geocaching.enumerations.CacheType;
import cgeo.geocaching.enumerations.LoadFlags;
import cgeo.geocaching.enumerations.LoadFlags.LoadFlag;
import cgeo.geocaching.enumerations.LogType;
-import cgeo.geocaching.enumerations.StatusCode;
import cgeo.geocaching.geopoint.Geopoint;
import org.apache.commons.collections.CollectionUtils;
@@ -237,77 +236,7 @@ public class cgeoapplication extends Application {
return storage.getCacheidForGeocode(geocode);
}
- public static StatusCode getError(final cgSearch search) {
- if (search == null) {
- return null;
- }
-
- return search.error;
- }
-
- public static boolean setError(final cgSearch search, final StatusCode error) {
- if (search == null) {
- return false;
- }
-
- search.error = error;
-
- return true;
- }
-
- public static String getUrl(final cgSearch search) {
- if (search == null) {
- return null;
- }
-
- return search.url;
- }
-
- public static boolean setUrl(final cgSearch search, String url) {
- if (search == null) {
- return false;
- }
-
- search.url = url;
-
- return true;
- }
-
- public static String[] getViewstates(final cgSearch search) {
- if (search == null) {
- return null;
- }
-
- return search.viewstates;
- }
-
- public static boolean setViewstates(final cgSearch search, String[] viewstates) {
- if (cgBase.isEmpty(viewstates) || search == null) {
- return false;
- }
-
- search.viewstates = viewstates;
-
- return true;
- }
-
- public static int getTotal(final cgSearch search) {
- if (search == null) {
- return 0;
- }
-
- return search.totalCnt;
- }
-
- public static int getCount(final cgSearch search) {
- if (search == null) {
- return 0;
- }
-
- return search.getCount();
- }
-
- public boolean hasUnsavedCaches(final cgSearch search) {
+ public boolean hasUnsavedCaches(final SearchResult search) {
if (search == null) {
return false;
}
@@ -380,7 +309,7 @@ public class cgeoapplication extends Application {
return getBounds(geocodeList);
}
- public List<Number> getBounds(final cgSearch search) {
+ public List<Number> getBounds(final SearchResult search) {
if (search == null) {
return null;
}
@@ -396,7 +325,7 @@ public class cgeoapplication extends Application {
return storage.getBounds(geocodes.toArray());
}
- public cgCache getCache(final cgSearch search) {
+ public cgCache getCache(final SearchResult search) {
if (search == null) {
return null;
}
@@ -412,15 +341,15 @@ public class cgeoapplication extends Application {
* only load waypoints for map usage. All other callers should set this to <code>false</code>
* @return
*/
- public List<cgCache> getCaches(final cgSearch search, final boolean loadWaypoints) {
+ public List<cgCache> getCaches(final SearchResult search, final boolean loadWaypoints) {
return getCaches(search, null, null, null, null, loadWaypoints ? EnumSet.of(LoadFlag.LOADWAYPOINTS, LoadFlag.LOADOFFLINELOG) : EnumSet.of(LoadFlag.LOADOFFLINELOG));
}
- public List<cgCache> getCaches(final cgSearch search, Long centerLat, Long centerLon, Long spanLat, Long spanLon) {
+ public List<cgCache> getCaches(final SearchResult search, Long centerLat, Long centerLon, Long spanLat, Long spanLon) {
return getCaches(search, centerLat, centerLon, spanLat, spanLon, EnumSet.of(LoadFlag.LOADWAYPOINTS, LoadFlag.LOADOFFLINELOG));
}
- public List<cgCache> getCaches(final cgSearch search, final Long centerLat, final Long centerLon, final Long spanLat, final Long spanLon, final EnumSet<LoadFlag> loadFlags) {
+ public List<cgCache> getCaches(final SearchResult search, final Long centerLat, final Long centerLon, final Long spanLat, final Long spanLon, final EnumSet<LoadFlag> loadFlags) {
if (search == null) {
List<cgCache> cachesOut = new ArrayList<cgCache>();
@@ -445,28 +374,28 @@ public class cgeoapplication extends Application {
return cachesOut;
}
- public cgSearch getBatchOfStoredCaches(final boolean detailedOnly, final Geopoint coords, final CacheType cacheType, final int list) {
+ public ParseResult getBatchOfStoredCaches(final boolean detailedOnly, final Geopoint coords, final CacheType cacheType, final int list) {
final List<String> geocodes = storage.loadBatchOfStoredGeocodes(detailedOnly, coords, cacheType, list);
- return new cgSearch(geocodes);
+ return new ParseResult(geocodes);
}
public List<cgDestination> getHistoryOfSearchedLocations() {
return storage.loadHistoryOfSearchedLocations();
}
- public cgSearch getHistoryOfCaches(final boolean detailedOnly, final CacheType cacheType) {
+ public ParseResult getHistoryOfCaches(final boolean detailedOnly, final CacheType cacheType) {
final List<String> geocodes = storage.loadBatchOfHistoricGeocodes(detailedOnly, cacheType);
- return new cgSearch(geocodes);
+ return new ParseResult(geocodes);
}
- public cgSearch getCachedInViewport(final Long centerLat, final Long centerLon, final Long spanLat, final Long spanLon, final CacheType cacheType) {
+ public SearchResult getCachedInViewport(final Long centerLat, final Long centerLon, final Long spanLat, final Long spanLon, final CacheType cacheType) {
final List<String> geocodes = storage.getCachedInViewport(centerLat, centerLon, spanLat, spanLon, cacheType);
- return new cgSearch(geocodes);
+ return new SearchResult(geocodes);
}
- public cgSearch getStoredInViewport(final Long centerLat, final Long centerLon, final Long spanLat, final Long spanLon, final CacheType cacheType) {
+ public SearchResult getStoredInViewport(final Long centerLat, final Long centerLon, final Long spanLat, final Long spanLon, final CacheType cacheType) {
final List<String> geocodes = storage.getStoredInViewport(centerLat, centerLon, spanLat, spanLon, cacheType);
- return new cgSearch(geocodes);
+ return new SearchResult(geocodes);
}
public int getAllStoredCachesCount(final boolean detailedOnly, final CacheType cacheType, final Integer list) {
@@ -516,14 +445,6 @@ public class cgeoapplication extends Application {
return storage.saveInventory("---", list);
}
- public static void addGeocode(final cgSearch search, final String geocode) {
- if (search == null || StringUtils.isBlank(geocode)) {
- return;
- }
-
- search.addGeocode(geocode);
- }
-
public void addSearch(final List<cgCache> cacheList, final int listId) {
if (CollectionUtils.isEmpty(cacheList)) {
return;
@@ -535,7 +456,7 @@ public class cgeoapplication extends Application {
}
}
- public boolean addCacheToSearch(cgSearch search, cgCache cache) {
+ public boolean addCacheToSearch(SearchResult search, cgCache cache) {
if (search == null || cache == null) {
return false;
}
diff --git a/main/src/cgeo/geocaching/cgeocaches.java b/main/src/cgeo/geocaching/cgeocaches.java
index 1e14427..9ef26e4 100644
--- a/main/src/cgeo/geocaching/cgeocaches.java
+++ b/main/src/cgeo/geocaching/cgeocaches.java
@@ -133,7 +133,7 @@ public class cgeocaches extends AbstractListActivity {
private String keyword = null;
private String address = null;
private String username = null;
- private cgSearch search = null;
+ private ParseResult search = null;
private List<cgCache> cacheList = new ArrayList<cgCache>();
private CacheListAdapter adapter = null;
private LayoutInflater inflater = null;
@@ -163,7 +163,7 @@ public class cgeocaches extends AbstractListActivity {
public void handleMessage(Message msg) {
try {
if (search != null) {
- setTitle(title + " [" + cgeoapplication.getCount(search) + "]");
+ setTitle(title + " [" + SearchResult.getCount(search) + "]");
cacheList.clear();
final List<cgCache> cacheListTmp = app.getCaches(search, false);
@@ -185,11 +185,11 @@ public class cgeocaches extends AbstractListActivity {
showToast(res.getString(R.string.err_list_load_fail));
setMoreCaches(false);
} else {
- final int count = cgeoapplication.getTotal(search);
+ final int count = SearchResult.getTotal(search);
setMoreCaches(count > 0 && cacheList != null && cacheList.size() < count && cacheList.size() < MAX_LIST_ITEMS);
}
- if (cacheList != null && cgeoapplication.getError(search) == StatusCode.UNAPPROVED_LICENSE) {
+ if (cacheList != null && SearchResult.getError(search) == StatusCode.UNAPPROVED_LICENSE) {
AlertDialog.Builder dialog = new AlertDialog.Builder(cgeocaches.this);
dialog.setTitle(res.getString(R.string.license));
dialog.setMessage(res.getString(R.string.err_license));
@@ -211,8 +211,8 @@ public class cgeocaches extends AbstractListActivity {
AlertDialog alert = dialog.create();
alert.show();
- } else if (app != null && cgeoapplication.getError(search) != null) {
- showToast(res.getString(R.string.err_download_fail) + cgeoapplication.getError(search).getErrorString(res) + ".");
+ } else if (app != null && SearchResult.getError(search) != null) {
+ showToast(res.getString(R.string.err_download_fail) + SearchResult.getError(search).getErrorString(res) + ".");
hideLoading();
showProgress(false);
@@ -254,7 +254,7 @@ public class cgeocaches extends AbstractListActivity {
public void handleMessage(Message msg) {
try {
if (search != null) {
- setTitle(title + " [" + cgeoapplication.getCount(search) + "]");
+ setTitle(title + " [" + SearchResult.getCount(search) + "]");
cacheList.clear();
final List<cgCache> cacheListTmp = app.getCaches(search, false);
@@ -276,12 +276,12 @@ public class cgeocaches extends AbstractListActivity {
showToast(res.getString(R.string.err_list_load_fail));
setMoreCaches(false);
} else {
- final int count = cgeoapplication.getTotal(search);
+ final int count = SearchResult.getTotal(search);
setMoreCaches(count > 0 && cacheList != null && cacheList.size() < count && cacheList.size() < MAX_LIST_ITEMS);
}
- if (cgeoapplication.getError(search) != null) {
- showToast(res.getString(R.string.err_download_fail) + cgeoapplication.getError(search).getErrorString(res) + ".");
+ if (SearchResult.getError(search) != null) {
+ showToast(res.getString(R.string.err_download_fail) + SearchResult.getError(search).getErrorString(res) + ".");
listFooter.setOnClickListener(new MoreCachesListener());
hideLoading();
@@ -655,7 +655,8 @@ public class cgeocaches extends AbstractListActivity {
title = res.getString(R.string.map_map);
setTitle(title);
showProgress(true);
- search = extras != null ? (cgSearch) extras.get("search") : null;
+ SearchResult result = extras != null ? (SearchResult) extras.get("search") : null;
+ search = new ParseResult(result);
loadCachesHandler.sendMessage(Message.obtain());
break;
default:
@@ -721,7 +722,7 @@ public class cgeocaches extends AbstractListActivity {
// refresh standard list if it has changed (new caches downloaded)
if (type == CacheListType.OFFLINE && listId == StoredList.STANDARD_LIST_ID && search != null) {
- cgSearch newSearch = cgBase.searchByOffline(coords, cacheType, listId);
+ SearchResult newSearch = cgBase.searchByOffline(coords, cacheType, listId);
if (newSearch != null && newSearch.totalCnt != search.totalCnt) {
refreshCurrentList();
}
@@ -1262,7 +1263,7 @@ public class cgeocaches extends AbstractListActivity {
if (adapterInfo != null) {
// create a search for a single cache (as if in details view)
final cgCache cache = getCacheFromAdapter(adapterInfo);
- final cgSearch singleSearch = cgBase.searchByGeocode(cache.getGeocode(), null, 0, false, null);
+ final SearchResult singleSearch = cgBase.searchByGeocode(cache.getGeocode(), null, 0, false, null);
if (NavigationAppFactory.onMenuItemSelected(item, geo, this,
res, cache, singleSearch, null, null)) {
@@ -1391,7 +1392,7 @@ public class cgeocaches extends AbstractListActivity {
}
if (CollectionUtils.isNotEmpty(cacheList)) {
- final int count = cgeoapplication.getTotal(search);
+ final int count = SearchResult.getTotal(search);
setMoreCaches(count > 0 && cacheList.size() < count && cacheList.size() < MAX_LIST_ITEMS);
}
@@ -2524,7 +2525,7 @@ public class cgeocaches extends AbstractListActivity {
return;
}
- cgSearch searchToUse = search;
+ SearchResult searchToUse = search;
// apply filter settings (if there's a filter)
if (adapter != null) {
@@ -2532,10 +2533,10 @@ public class cgeocaches extends AbstractListActivity {
for (cgCache cache : adapter.getFilteredList()) {
geocodes.add(cache.getGeocode());
}
- searchToUse = new cgSearch(geocodes);
+ searchToUse = new SearchResult(geocodes);
}
- int count = cgeoapplication.getCount(searchToUse);
+ int count = SearchResult.getCount(searchToUse);
String mapTitle = title;
if (count > 0) {
mapTitle = title + " [" + count + "]";
@@ -2676,7 +2677,7 @@ public class cgeocaches extends AbstractListActivity {
context.startActivity(cachesIntent);
}
- public static void startActivityMap(final Context context, final cgSearch search) {
+ public static void startActivityMap(final Context context, final SearchResult search) {
final Intent cachesIntent = new Intent(context, cgeocaches.class);
cachesIntent.putExtra(EXTRAS_LIST_TYPE, CacheListType.MAP);
cachesIntent.putExtra("search", search);
diff --git a/main/src/cgeo/geocaching/connector/AbstractConnector.java b/main/src/cgeo/geocaching/connector/AbstractConnector.java
index b78c145..9abcd45 100644
--- a/main/src/cgeo/geocaching/connector/AbstractConnector.java
+++ b/main/src/cgeo/geocaching/connector/AbstractConnector.java
@@ -1,7 +1,7 @@
package cgeo.geocaching.connector;
+import cgeo.geocaching.ParseResult;
import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgSearch;
import cgeo.geocaching.cgeoapplication;
import cgeo.geocaching.geopoint.Geopoint;
import cgeo.geocaching.utils.CancellableHandler;
@@ -44,12 +44,12 @@ public abstract class AbstractConnector implements IConnector {
}
@Override
- public cgSearch searchByCoordinate(Geopoint center) {
+ public ParseResult searchByCoordinate(Geopoint center) {
return null;
}
@Override
- public cgSearch searchByGeocode(String geocode, String guid, cgeoapplication app, cgSearch search, int listId, CancellableHandler handler) {
+ public ParseResult searchByGeocode(String geocode, String guid, cgeoapplication app, int listId, CancellableHandler handler) {
return null;
}
diff --git a/main/src/cgeo/geocaching/connector/GCConnector.java b/main/src/cgeo/geocaching/connector/GCConnector.java
index 33705ab..f1bb117 100644
--- a/main/src/cgeo/geocaching/connector/GCConnector.java
+++ b/main/src/cgeo/geocaching/connector/GCConnector.java
@@ -1,13 +1,13 @@
package cgeo.geocaching.connector;
import cgeo.geocaching.Parameters;
+import cgeo.geocaching.ParseResult;
import cgeo.geocaching.R;
import cgeo.geocaching.Settings;
import cgeo.geocaching.cgBase;
import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgCacheWrap;
-import cgeo.geocaching.cgSearch;
import cgeo.geocaching.cgeoapplication;
+import cgeo.geocaching.enumerations.StatusCode;
import cgeo.geocaching.utils.CancellableHandler;
import org.apache.commons.collections.CollectionUtils;
@@ -15,7 +15,6 @@ import org.apache.commons.lang3.StringUtils;
import android.util.Log;
-import java.util.List;
import java.util.regex.Pattern;
public class GCConnector extends AbstractConnector {
@@ -81,7 +80,13 @@ public class GCConnector extends AbstractConnector {
}
@Override
- public cgSearch searchByGeocode(final String geocode, final String guid, final cgeoapplication app, final cgSearch search, final int listId, final CancellableHandler handler) {
+ public ParseResult searchByGeocode(final String geocode, final String guid, final cgeoapplication app, final int listId, final CancellableHandler handler) {
+
+ if (app == null) {
+ Log.e(Settings.tag, "cgeoBase.searchByGeocode: No application found");
+ return null;
+ }
+
final Parameters params = new Parameters("decrypt", "y");
if (StringUtils.isNotBlank(geocode)) {
params.put("wp", geocode);
@@ -89,16 +94,12 @@ public class GCConnector extends AbstractConnector {
params.put("guid", guid);
}
- if (app == null) {
- Log.e(Settings.tag, "cgeoBase.searchByGeocode: No application found");
- return null;
- }
-
cgBase.sendLoadProgressDetail(handler, R.string.cache_dialog_loading_details_status_loadpage);
final String page = cgBase.requestLogged("http://www.geocaching.com/seek/cache_details.aspx", params, false, false, false);
if (StringUtils.isEmpty(page)) {
+ ParseResult search = new ParseResult();
if (app.isThere(geocode, guid, true, false)) {
if (StringUtils.isBlank(geocode) && StringUtils.isNotBlank(guid)) {
Log.i(Settings.tag, "Loading old cache from cache.");
@@ -107,32 +108,25 @@ public class GCConnector extends AbstractConnector {
} else {
search.addGeocode(geocode);
}
- search.error = null;
+ search.error = StatusCode.NO_ERROR;
return search;
}
Log.e(Settings.tag, "cgeoBase.searchByGeocode: No data from server");
- return null;
+ search.error = StatusCode.COMMUNICATION_ERROR;
+ return search;
}
- final cgCacheWrap caches = cgBase.parseCache(page, listId, handler);
+ final ParseResult parseResult = cgBase.parseCache(page, listId, handler);
- if (caches == null || CollectionUtils.isEmpty(caches.cacheList)) {
- if (caches != null && caches.error != null) {
- search.error = caches.error;
- }
- if (caches != null && StringUtils.isNotBlank(caches.url)) {
- search.url = caches.url;
- }
-
- app.addSearch(null, listId);
+ if (parseResult == null || CollectionUtils.isEmpty(parseResult.cacheList)) {
Log.e(Settings.tag, "cgeoBase.searchByGeocode: No cache parsed");
- return search;
+ return parseResult;
}
- final List<cgCache> cacheList = cgBase.filterSearchResults(search, caches, false, false, Settings.getCacheType());
- app.addSearch(cacheList, listId);
+ ParseResult search = ParseResult.filterParseResults(parseResult, false, false, Settings.getCacheType());
+ app.addSearch(search.cacheList, listId);
return search;
}
diff --git a/main/src/cgeo/geocaching/connector/IConnector.java b/main/src/cgeo/geocaching/connector/IConnector.java
index 66c5c89..7fa0e3f 100644
--- a/main/src/cgeo/geocaching/connector/IConnector.java
+++ b/main/src/cgeo/geocaching/connector/IConnector.java
@@ -1,7 +1,7 @@
package cgeo.geocaching.connector;
+import cgeo.geocaching.ParseResult;
import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgSearch;
import cgeo.geocaching.cgeoapplication;
import cgeo.geocaching.geopoint.Geopoint;
import cgeo.geocaching.utils.CancellableHandler;
@@ -75,7 +75,7 @@ public interface IConnector {
*/
public boolean supportsCachesAround();
- public cgSearch searchByGeocode(final String geocode, final String guid, final cgeoapplication app, final cgSearch search, final int listId, final CancellableHandler handler);
+ public ParseResult searchByGeocode(final String geocode, final String guid, final cgeoapplication app, final int listId, final CancellableHandler handler);
/**
* search caches by coordinate. must be implemented if {@link supportsCachesAround} returns <code>true</true>
@@ -83,11 +83,11 @@ public interface IConnector {
* @param center
* @return
*/
- public cgSearch searchByCoordinate(final Geopoint center);
+ public ParseResult searchByCoordinate(final Geopoint center);
/**
* return true if this is a ZIP file containing a GPX file
- *
+ *
* @param fileName
* @return
*/
diff --git a/main/src/cgeo/geocaching/connector/opencaching/ApiOpenCachingConnector.java b/main/src/cgeo/geocaching/connector/opencaching/ApiOpenCachingConnector.java
index 657006a..dfd474d 100644
--- a/main/src/cgeo/geocaching/connector/opencaching/ApiOpenCachingConnector.java
+++ b/main/src/cgeo/geocaching/connector/opencaching/ApiOpenCachingConnector.java
@@ -1,17 +1,13 @@
package cgeo.geocaching.connector.opencaching;
import cgeo.geocaching.Parameters;
+import cgeo.geocaching.ParseResult;
import cgeo.geocaching.Settings;
-import cgeo.geocaching.cgBase;
import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgCacheWrap;
-import cgeo.geocaching.cgSearch;
import cgeo.geocaching.cgeoapplication;
import cgeo.geocaching.utils.CancellableHandler;
import cgeo.geocaching.utils.CryptUtils;
-import java.util.List;
-
public class ApiOpenCachingConnector extends OpenCachingConnector {
private final String cK;
@@ -37,16 +33,16 @@ public class ApiOpenCachingConnector extends OpenCachingConnector {
}
@Override
- public cgSearch searchByGeocode(final String geocode, final String guid, final cgeoapplication app, final cgSearch search, final int listId, final CancellableHandler handler) {
+ public ParseResult searchByGeocode(final String geocode, final String guid, final cgeoapplication app, final int listId, final CancellableHandler handler) {
final cgCache cache = OkapiClient.getCache(geocode);
if (cache == null) {
return null;
}
- final cgCacheWrap caches = new cgCacheWrap();
- caches.cacheList.add(cache);
+ final ParseResult parseResult = new ParseResult();
+ parseResult.cacheList.add(cache);
- final List<cgCache> cacheList = cgBase.filterSearchResults(search, caches, false, false, Settings.getCacheType());
- app.addSearch(cacheList, listId);
+ final ParseResult search = ParseResult.filterParseResults(parseResult, false, false, Settings.getCacheType());
+ app.addSearch(search.cacheList, listId);
return search;
}
diff --git a/main/src/cgeo/geocaching/files/GPXImporter.java b/main/src/cgeo/geocaching/files/GPXImporter.java
index a021af0..d855d69 100644
--- a/main/src/cgeo/geocaching/files/GPXImporter.java
+++ b/main/src/cgeo/geocaching/files/GPXImporter.java
@@ -3,7 +3,7 @@ package cgeo.geocaching.files;
import cgeo.geocaching.R;
import cgeo.geocaching.Settings;
import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgSearch;
+import cgeo.geocaching.SearchResult;
import cgeo.geocaching.cgeoapplication;
import cgeo.geocaching.activity.IAbstractActivity;
import cgeo.geocaching.activity.Progress;
@@ -123,10 +123,10 @@ public class GPXImporter {
caches = doImport();
importStepHandler.sendMessage(importStepHandler.obtainMessage(IMPORT_STEP_STORE_CACHES, R.string.gpx_import_storing, caches.size()));
- cgSearch search = storeParsedCaches(caches);
+ SearchResult search = storeParsedCaches(caches);
Log.i(Settings.tag, "Imported successfully " + caches.size() + " caches.");
- importStepHandler.sendMessage(importStepHandler.obtainMessage(IMPORT_STEP_FINISHED, cgeoapplication.getCount(search), 0, search));
+ importStepHandler.sendMessage(importStepHandler.obtainMessage(IMPORT_STEP_FINISHED, SearchResult.getCount(search), 0, search));
} catch (IOException e) {
Log.i(Settings.tag, "Importing caches failed - error reading data: " + e.getMessage());
importStepHandler.sendMessage(importStepHandler.obtainMessage(IMPORT_STEP_FINISHED_WITH_ERROR, R.string.gpx_import_error_io, 0, e.getLocalizedMessage()));
@@ -144,8 +144,8 @@ public class GPXImporter {
protected abstract Collection<cgCache> doImport() throws IOException, ParserException;
- private cgSearch storeParsedCaches(Collection<cgCache> caches) {
- final cgSearch search = new cgSearch();
+ private SearchResult storeParsedCaches(Collection<cgCache> caches) {
+ final SearchResult search = new SearchResult();
final cgeoapplication app = cgeoapplication.getInstance();
int storedCaches = 0;
for (cgCache cache : caches) {
diff --git a/main/src/cgeo/geocaching/files/LocParser.java b/main/src/cgeo/geocaching/files/LocParser.java
index 7fd48d4..6f043f0 100644
--- a/main/src/cgeo/geocaching/files/LocParser.java
+++ b/main/src/cgeo/geocaching/files/LocParser.java
@@ -1,8 +1,8 @@
package cgeo.geocaching.files;
+import cgeo.geocaching.ParseResult;
import cgeo.geocaching.Settings;
import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgCacheWrap;
import cgeo.geocaching.cgCoord;
import cgeo.geocaching.enumerations.CacheSize;
import cgeo.geocaching.enumerations.CacheType;
@@ -42,12 +42,11 @@ public final class LocParser extends FileParser {
private int listId;
- public static void parseLoc(final cgCacheWrap caches,
- final String fileContent) {
+ public static void parseLoc(final ParseResult parseResult, final String fileContent) {
final Map<String, cgCoord> cidCoords = parseCoordinates(fileContent);
// save found cache coordinates
- for (cgCache cache : caches.cacheList) {
+ for (cgCache cache : parseResult.cacheList) {
if (cidCoords.containsKey(cache.getGeocode())) {
cgCoord coord = cidCoords.get(cache.getGeocode());
diff --git a/main/src/cgeo/geocaching/maps/CGeoMap.java b/main/src/cgeo/geocaching/maps/CGeoMap.java
index 3a813e5..99a528b 100644
--- a/main/src/cgeo/geocaching/maps/CGeoMap.java
+++ b/main/src/cgeo/geocaching/maps/CGeoMap.java
@@ -9,7 +9,7 @@ import cgeo.geocaching.cgCache;
import cgeo.geocaching.cgCoord;
import cgeo.geocaching.cgDirection;
import cgeo.geocaching.cgGeo;
-import cgeo.geocaching.cgSearch;
+import cgeo.geocaching.SearchResult;
import cgeo.geocaching.cgWaypoint;
import cgeo.geocaching.cgeoapplication;
import cgeo.geocaching.cgeocaches;
@@ -103,13 +103,13 @@ public class CGeoMap extends AbstractMap implements OnDragListener, ViewFactory
private UpdateDirectionCallback dirUpdate = new UpdateDir();
// from intent
private boolean fromDetailIntent = false;
- private cgSearch searchIntent = null;
+ private SearchResult searchIntent = null;
private String geocodeIntent = null;
private Geopoint coordsIntent = null;
private WaypointType waypointTypeIntent = null;
private int[] mapStateIntent = null;
// status data
- private cgSearch search = null;
+ private SearchResult search = null;
private String token = null;
private boolean noMapTokenShowed = false;
// map status data
@@ -357,7 +357,7 @@ public class CGeoMap extends AbstractMap implements OnDragListener, ViewFactory
Bundle extras = activity.getIntent().getExtras();
if (extras != null) {
fromDetailIntent = extras.getBoolean(EXTRAS_DETAIL);
- searchIntent = (cgSearch) extras.getParcelable(EXTRAS_SEARCH);
+ searchIntent = (SearchResult) extras.getParcelable(EXTRAS_SEARCH);
geocodeIntent = extras.getString(EXTRAS_GEOCODE);
final double latitudeIntent = extras.getDouble(EXTRAS_LATITUDE);
final double longitudeIntent = extras.getDouble(EXTRAS_LONGITUDE);
@@ -678,7 +678,7 @@ public class CGeoMap extends AbstractMap implements OnDragListener, ViewFactory
mapView.repaintRequired(overlayCaches);
return true;
case MENU_AS_LIST: {
- final cgSearch search = new cgSearch();
+ final SearchResult search = new SearchResult();
search.totalCnt = caches.size();
for (cgCache cache : caches) {
search.addGeocode(cache.getGeocode());
@@ -1721,7 +1721,7 @@ public class CGeoMap extends AbstractMap implements OnDragListener, ViewFactory
}
// move map to view results of searchIntent
- private void centerMap(String geocodeCenter, final cgSearch searchCenter, final Geopoint coordsCenter, int[] mapState) {
+ private void centerMap(String geocodeCenter, final SearchResult searchCenter, final Geopoint coordsCenter, int[] mapState) {
if (!centered && mapState != null) {
try {
@@ -1847,7 +1847,7 @@ public class CGeoMap extends AbstractMap implements OnDragListener, ViewFactory
return new Intent(context, Settings.getMapProvider().getMapClass());
}
- public static void startActivitySearch(final Activity fromActivity, final cgSearch search, final String title, boolean detail) {
+ public static void startActivitySearch(final Activity fromActivity, final SearchResult search, final String title, boolean detail) {
final Intent mapIntent = newIntent(fromActivity);
mapIntent.putExtra(EXTRAS_DETAIL, detail);
mapIntent.putExtra(EXTRAS_SEARCH, search);
diff --git a/tests/res/raw/gc1zxez.html b/tests/res/raw/gc1zxez.html
deleted file mode 100644
index 3698317..0000000
--- a/tests/res/raw/gc1zxez.html
+++ /dev/null
@@ -1,1734 +0,0 @@
-
-<!DOCTYPE html>
-<html lang="en" class="no-js">
- <head id="ctl00_Head1"><meta charset="utf-8" />
- <!--[if IE]><![endif]-->
- <title>
- GC1ZXEZ Terrassenplatten gef&#228;llig...? (Traditional Cache) in Nordrhein-Westfalen, Germany created by Ms.Marple/Mr.Stringer
-</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/GC1ZXEZ" property="og:url" /><meta name="og:description" property="og:description" /><meta name="og:image" content="http://www.geocaching.com/images/facebook/wpttypes/2.png" property="og:image" /><meta name="og:title" content="Terrassenplatten gefällig...?" property="og:title" /><meta name="description" content="Terrassenplatten gef&#228;llig...? (GC1ZXEZ) was created by Ms.Marple/Mr.Stringer on 10/16/2009. It&#39;s a Micro size geocache, with difficulty of 2, terrain of 1.5. It&#39;s located in Nordrhein-Westfalen, Germany. Ein kleiner &quot;drive in&quot; in Velbert.....Tags&#252;ber ist es wahrscheinlich nicht Muggelfrei, aber bei der Location handelt es sich um eine Terrassenplatten-Ausstellung. Man f&#228;llt nicht unbedingt auf, wenn man keine hektischen Suchbewegungen macht." /></head>
- <body >
- <form name="aspnetForm" method="post" action="cache_details.aspx?wp=GC1ZXEZ" 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="/wEPDwUKLTkwOTY3OTc3OQ8WAh4EQy5JRCgpWVN5c3RlbS5JbnQ2NCwgbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BzE0MzM1MDMWAmYPZBYGZg9kFgYCCg8WAh4EVGV4dAViPG1ldGEgbmFtZT0iQ29weXJpZ2h0IiBjb250ZW50PSJDb3B5cmlnaHQgKGMpIDIwMDAtMjAxMSBHcm91bmRzcGVhaywgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLiIgLz5kAgsPFgIfAQVHPCEtLSBDb3B5cmlnaHQgKGMpIDIwMDAtMjAxMSBHcm91bmRzcGVhaywgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLiAtLT5kAicPFgIeB1Zpc2libGVoZAIBD2QWEgIFDxYCHwFkZAIIDxYCHwJnFgoCAQ8PFgIeCEltYWdlVXJsBU5odHRwOi8vaW1nLmdlb2NhY2hpbmcuY29tL3VzZXIvYXZhdGFyLzY0MmQyNzcxLTQyNGUtNGVlNi1iZWI2LWVmZWNkZTM0MDZmYy5qcGdkZAIDDxYCHwEFdEhlbGxvLCA8YSBocmVmPSIvbXkvZGVmYXVsdC5hc3B4IiB0aXRsZT0iVmlldyBQcm9maWxlIGZvciBCYW5hbmV3ZWl6ZW4iIGNsYXNzPSJTaWduZWRJblByb2ZpbGVMaW5rIj5CYW5hbmV3ZWl6ZW48L2E+ZAIFDw8WAh4LTmF2aWdhdGVVcmwFhgFodHRwczovL3d3dy5nZW9jYWNoaW5nLmNvbS9sb2dpbi9kZWZhdWx0LmFzcHg/UkVTRVQ9WSZyZWRpcj1odHRwJTNhJTJmJTJmd3d3Lmdlb2NhY2hpbmcuY29tJTJmc2VlayUyZmNhY2hlX2RldGFpbHMuYXNweCUzZndwJTNkR0MxWlhFWmRkAgcPFgIfAQVDPGltZyBzcmM9Ii9pbWFnZXMvaWNvbnMvaWNvbl9zbWlsZS5wbmciIHRpdGxlPSJDYWNoZXMgRm91bmQiIC8+IDE2M2QCCw8WAh8CZxYCZg8PFgIfAmhkZAIPDxYCHwJnFgICDQ8PFgIfBAVAfi90cmFjay9zZWFyY2guYXNweD9vPTEmdWlkPTMxODkyNjc4LTExMTctNDZlYi1hYTNiLTE5MWMyMGJkNjYwN2RkAiEPFgIfAmdkAiMPFgIeBWNsYXNzBQxzcGFuLTI0IGxhc3QWAgIBD2QWTAIBDxYCHwEFvQE8YSBocmVmPSIvYWJvdXQvY2FjaGVfdHlwZXMuYXNweCIgdGFyZ2V0PSJfYmxhbmsiIHRpdGxlPSJBYm91dCBDYWNoZSBUeXBlcyI+PGltZyBzcmM9Ii9pbWFnZXMvV3B0VHlwZXMvMi5naWYiIGFsdD0iVHJhZGl0aW9uYWwgQ2FjaGUiIHRpdGxlPSJUcmFkaXRpb25hbCBDYWNoZSIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMyIiAvPjwvYT5kAgQPFgIfAQUBQWQCBg8WAh8CZ2QCCQ8WAh8CaGQCEA9kFgQCAQ8WAh8BBQEwZAIDDw8WAh8EBUQvc2Vlay9jYWNoZV9mYXZvcml0ZWQuYXNweD9ndWlkPTY1MDZkNTcyLWNiYjgtNGQ4NS1iZTFkLTBjZjQ4MmUzNjBlNWRkAhEPDxYCHwJoZGQCFA8WAh8CaGQCFQ8WAh8CaGQCGA8WAh4Fc3R5bGUFD2Rpc3BsYXk6aW5saW5lOxYCAgEPFgIfAQUbVVRNOiAzMlUgRSAzNjMwNjEgTiA1Njg4NTQ2ZAIbDw8WAh8EBTNjZHBmLmFzcHg/Z3VpZD02NTA2ZDU3Mi1jYmI4LTRkODUtYmUxZC0wY2Y0ODJlMzYwZTVkZAIcDw8WAh8EBThjZHBmLmFzcHg/Z3VpZD02NTA2ZDU3Mi1jYmI4LTRkODUtYmUxZC0wY2Y0ODJlMzYwZTUmbGM9NWRkAh0PDxYCHwQFOWNkcGYuYXNweD9ndWlkPTY1MDZkNTcyLWNiYjgtNGQ4NS1iZTFkLTBjZjQ4MmUzNjBlNSZsYz0xMGRkAh4PDxYEHwQFiwFodHRwOi8vbWFwcy5nb29nbGUuY29tL21hcHM/Zj1kJmhsPWVuJnNhZGRyPTQ4Ljg2MTAwMiw5LjE4NjU3NyAoSG9tZSBMb2NhdGlvbikmZGFkZHI9NTEuMzMxNyw3LjAzNDMzMyhUZXJyYXNzZW5wbGF0dGVuK2dlZiVjMyVhNGxsaWcuLi4lM2YpHgZUYXJnZXQFBl9ibGFua2RkAiIPZBYIAgEPDxYEHglGb3JlQ29sb3IMHgRfIVNCAgRkZAIDDw8WBB8IDB8JAgRkZAIFDw8WAh8CZxYCHgdvbmNsaWNrBTtzMmdwcygnNjUwNmQ1NzItY2JiOC00ZDg1LWJlMWQtMGNmNDgyZTM2MGU1Jyk7cmV0dXJuIGZhbHNlO2QCBw8PFgIfAmcWAh8KBSBzMnBob25lKCdHQzFaWEVaJyk7cmV0dXJuIGZhbHNlO2QCJA8WAh8CZ2QCJw9kFghmDxYCHwJoZAIBDw8WAh8CaGRkAgIPDxYCHwJoZGQCAw8WAh8CaGQCKQ8PFgIfAQUTTm8gaGludHMgYXZhaWxhYmxlLhYCHwoFDXJldHVybiBmYWxzZTtkAioPFgIfAmhkAiwPZBYCZg9kFgICAQ8PFgIfAQUHR0MxWlhFWmRkAi4PFgIfAmhkAi8PDxYCHwJoZBYCAgMPDxYCHwJoZGQCMA8WAh8CZ2QCMQ8WAh8CaGQCNQ9kFgICAQ9kFgQCAQ8PFgIfAQX/AzxpZnJhbWUgdHlwZT0iaWZyYW1lIiBzcmM9Imh0dHA6Ly9hZHMuZ3JvdW5kc3BlYWsuY29tL2EuYXNweD9ab25lSUQ9OSZUYXNrPUdldCZTaXRlSUQ9MSZYPSc4OTcxYWY2ODBkN2Q0YWQwOWQ5YmI0YzViNDQzNWRiYiciIHdpZHRoPSIxMjAiIGhlaWdodD0iMjQwIiBNYXJnaW53aWR0aD0iMCIgTWFyZ2luaGVpZ2h0PSIwIiBIc3BhY2U9IjAiIFZzcGFjZT0iMCIgRnJhbWVib3JkZXI9IjAiIFNjcm9sbGluZz0ibm8iIHN0eWxlPSJ3aWR0aDoxMjBweDtIZWlnaHQ6MjQwcHg7Ij48YSBocmVmPSJodHRwOi8vYWRzLmdyb3VuZHNwZWFrLmNvbS9hLmFzcHg/Wm9uZUlEPTkmVGFzaz1DbGljayY7TW9kZT1IVE1MJlNpdGVJRD0xIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9Imh0dHA6Ly9hZHMuZ3JvdW5kc3BlYWsuY29tL2EuYXNweD9ab25lSUQ9OSZUYXNrPUdldCZNb2RlPUhUTUwmU2l0ZUlEPTEiIHdpZHRoPSIxMjAiIGhlaWdodD0iMjQwIiBib3JkZXI9IjAiIGFsdD0iIiAvPjwvYT48L2lmcmFtZT5kZAIDDxYCHglpbm5lcmh0bWwFE0FkdmVydGlzaW5nIHdpdGggVXNkAjkPZBYEAgMPDxYCHwJnZGQCBQ8PFgIfBAU8fi90cmFjay9zZWFyY2guYXNweD93aWQ9NjUwNmQ1NzItY2JiOC00ZDg1LWJlMWQtMGNmNDgyZTM2MGU1ZGQCPA8PFgIfAmhkZAI9D2QWAgIBDw8WAh8EBUUvaGlkZS93cHRsaXN0LmFzcHg/UmVmV3B0SUQ9NjUwNmQ1NzItY2JiOC00ZDg1LWJlMWQtMGNmNDgyZTM2MGU1JkRTPTFkZAI/Dw8WBh4GUkRTLklECyl2R3JvdW5kc3BlYWsuV2ViLkdQWC5XcHREYXRhU291cmNlcywgVHVjc29uLkNvbW1vbi5MZWdhY3ksIFZlcnNpb249My4wLjQyOTYuMTY2NTYsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAEeB1JXUFQuSUQoKwQHMTQzMzUwMx8CaGRkAkAPDxYCHwJnZBYCAgEPDxYEHwQFLy9tYXAvYmV0YS9kZWZhdWx0LmFzcHg/bGF0PTUxLjMzMTcmbG5nPTcuMDM0MzMzHwJnZGQCRA8PFgIfBAUsL3NlZWsvbmVhcmVzdC5hc3B4P3U9TXMuTWFycGxlJTJmTXIuU3RyaW5nZXJkZAJGDw8WAh8EBS0vc2Vlay9uZWFyZXN0LmFzcHg/dWw9TXMuTWFycGxlJTJmTXIuU3RyaW5nZXJkZAJID2QWCgIDDw8WAh8EBVUvc2Vlay9uZWFyZXN0LmFzcHg/dHg9MzJiYzkzMzMtNWU1Mi00OTU3LWIwZjYtNWEyYzhmYzdiMjU3JmxhdD01MS4zMzE3MDAmbG5nPTcuMDM0MzMzZGQCBQ8PFgIfBAVZL3NlZWsvbmVhcmVzdC5hc3B4P3R4PTMyYmM5MzMzLTVlNTItNDk1Ny1iMGY2LTVhMmM4ZmM3YjI1NyZsYXQ9NTEuMzMxNzAwJmxuZz03LjAzNDMzMyZmPTFkZAIJDw8WAh8EBS0vc2Vlay9uZWFyZXN0LmFzcHg/bGF0PTUxLjMzMTcwMCZsbmc9Ny4wMzQzMzNkZAILDw8WAh8EBTEvc2Vlay9uZWFyZXN0LmFzcHg/bGF0PTUxLjMzMTcwMCZsbmc9Ny4wMzQzMzMmZj0xZGQCDw8PFgIfBAVHaHR0cDovL3d3dy53YXltYXJraW5nLmNvbS9kaXJlY3RvcnkuYXNweD9mPTEmbGF0PTUxLjMzMTcwMCZsb249Ny4wMzQzMzNkZAJJDxYCHwJoZAJLDw8WAh8EBSUvcmV2aWV3cy9ob3RlbHMtY29vcmRzLTUxLjMzMTcsNy4wMzQzZGQCTQ9kFgICAQ8PFgQfAQWVBzxsaT48YSBocmVmPSJodHRwOi8vd3d3Lmdlb2NhY2hpbmcuY29tL21hcC9iZXRhL2RlZmF1bHQuYXNweD9sYXQ9NTEuMzMxNyZsbmc9Ny4wMzQzMzMiIHRhcmdldD0iX2JsYW5rIj5HZW9jYWNo" />
-<input type="hidden" name="__VIEWSTATE1" id="__VIEWSTATE1" value="aW5nLmNvbSBHb29nbGUgTWFwPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYXBzLmdvb2dsZS5jb20vbWFwcz9xPU4rNTElYzIlYjArMTkuOTAyK0UrMDA3JWMyJWIwKzAyLjA2MCsoR0MxWlhFWikrIiB0YXJnZXQ9Il9ibGFuayI+R29vZ2xlIE1hcHM8L2E+PC9saT48bGk+PGEgaHJlZj0iaHR0cDovL3d3dy5tYXBxdWVzdC5jb20vbWFwcy9tYXAuYWRwP3NlYXJjaHR5cGU9YWRkcmVzcyZmb3JtdHlwZT1sYXRsb25nJmxhdGxvbmd0eXBlPWRlY2ltYWwmbGF0aXR1ZGU9NTEuMzMxNyZsb25naXR1ZGU9Ny4wMzQzMzMmem9vbT0xMCIgdGFyZ2V0PSJfYmxhbmsiPk1hcFF1ZXN0PC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly9tYXBzLnlhaG9vLmNvbS9tYXBzX3Jlc3VsdD9sYXQ9NTEuMzMxNyZsb249Ny4wMzQzMzMiIHRhcmdldD0iX2JsYW5rIj5ZYWhvbyBNYXBzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cuYmluZy5jb20vbWFwcy9kZWZhdWx0LmFzcHg/dj0yJnNwPXBvaW50LjUxLjMzMTdfNy4wMzQzMzNfR0MxWlhFWiIgdGFyZ2V0PSJfYmxhbmsiPkJpbmcgTWFwczwvYT48L2xpPjxsaT48YSBocmVmPSJodHRwOi8vd3d3Lm9wZW5jeWNsZW1hcC5vcmcvP3pvb209MTImbGF0PTUxLjMzMTcmbG9uPTcuMDM0MzMzIiB0YXJnZXQ9Il9ibGFuayI+T3BlbiBDeWNsZSBNYXBzPC9hPjwvbGk+PGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cub3BlbnN0cmVldG1hcC5vcmcvP21sYXQ9NTEuMzMxNyZtbG9uPTcuMDM0MzMzJnpvb209MTIiIHRhcmdldD0iX2JsYW5rIj5PcGVuIFN0cmVldCBNYXBzPC9hPjwvbGk+HwJnZGQCTw9kFgYCAQ8WAh8BBRExNDcgTG9nZ2VkIFZpc2l0c2QCBw8PFgIfBAVDfi9zZWVrL2NhY2hlX2xvZ2Jvb2suYXNweD9ndWlkPTY1MDZkNTcyLWNiYjgtNGQ4NS1iZTFkLTBjZjQ4MmUzNjBlNWRkAgkPDxYEHwQFPX4vc2Vlay9nYWxsZXJ5LmFzcHg/Z3VpZD02NTA2ZDU3Mi1jYmI4LTRkODUtYmUxZC0wY2Y0ODJlMzYwZTUfAQUWVmlldyB0aGUgSW1hZ2UgR2FsbGVyeWRkAlAPFgIfAQUEdHJ1ZWQCUQ8WAh8BBUlsYXQ9NTEuMzMxNzsgbG5nPTcuMDM0MzMzOyBndWlkPSc2NTA2ZDU3Mi1jYmI4LTRkODUtYmUxZC0wY2Y0ODJlMzYwZTUnOw0KZAIkDxYCHwJoZAIlD2QWBAIBDxYCHwEFB0VuZ2xpc2hkAgMPFgIeC18hSXRlbUNvdW50Ag4WHGYPZBYCAgEPDxYIHg9Db21tYW5kQXJndW1lbnQFBWVuLVVTHgtDb21tYW5kTmFtZQUNU2V0VGVtcExvY2FsZR8BBQdFbmdsaXNoHhBDYXVzZXNWYWxpZGF0aW9uaGRkAgEPZBYCAgEPDxYIHw8FBWRlLURFHxAFDVNldFRlbXBMb2NhbGUfAQUHRGV1dHNjaB8RaGRkAgIPZBYCAgEPDxYIHw8FBWZyLUZSHxAFDVNldFRlbXBMb2NhbGUfAQUJRnJhbsOnYWlzHxFoZGQCAw9kFgICAQ8PFggfDwUFcHQtUFQfEAUNU2V0VGVtcExvY2FsZR8BBQpQb3J0dWd1w6pzHxFoZGQCBA9kFgICAQ8PFggfDwUFY3MtQ1ofEAUNU2V0VGVtcExvY2FsZR8BBQnEjGXFoXRpbmEfEWhkZAIFD2QWAgIBDw8WCB8PBQVzdi1TRR8QBQ1TZXRUZW1wTG9jYWxlHwEFB1N2ZW5za2EfEWhkZAIGD2QWAgIBDw8WCB8PBQVubC1OTB8QBQ1TZXRUZW1wTG9jYWxlHwEFCk5lZGVybGFuZHMfEWhkZAIHD2QWAgIBDw8WCB8PBQVjYS1FUx8QBQ1TZXRUZW1wTG9jYWxlHwEFB0NhdGFsw6AfEWhkZAIID2QWAgIBDw8WCB8PBQVwbC1QTB8QBQ1TZXRUZW1wTG9jYWxlHwEFBlBvbHNraR8RaGRkAgkPZBYCAgEPDxYIHw8FBWV0LUVFHxAFDVNldFRlbXBMb2NhbGUfAQUFRWVzdGkfEWhkZAIKD2QWAgIBDw8WCB8PBQVuYi1OTx8QBQ1TZXRUZW1wTG9jYWxlHwEFDk5vcnNrLCBCb2ttw6VsHxFoZGQCCw9kFgICAQ8PFggfDwUFa28tS1IfEAUNU2V0VGVtcExvY2FsZR8BBQntlZzqta3slrQfEWhkZAIMD2QWAgIBDw8WCB8PBQVlcy1FUx8QBQ1TZXRUZW1wTG9jYWxlHwEFCEVzcGHDsW9sHxFoZGQCDQ9kFgICAQ8PFggfDwUFaHUtSFUfEAUNU2V0VGVtcExvY2FsZR8BBQZNYWd5YXIfEWhkZAIyDxYCHwJnZAJGDxYCHwJnZAIDDxYCHwEFJ1NlcnZlcjogV0VCMTE7IEJ1aWxkOiBIb3RGaXhfMjAxMTEwMDYuMWRkqjVxZanNua2YeGkWm28O6l6KwZk=" />
-</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=603O72yZd4fptrktleC7x2jL0lcC13xjYb945GvvjdzQqSjEGuKkpZzW1qgS3aZSp6YZApHdXXpAZySQke7I5cu1gQR23oJhzR4pAnYePzS9pvnj2e2HxG66_bUVJM0L9ZvrpQR2zdR_0z0_xyWvY-PxDiaMRTBNIQdo20HH5CS0GwzUhOa17DYY__6-TasCmdZQ4bu6VJqEkcM6Idu83weUjNXSTcFS1ikJyo-gPsQtdgOs0lmFJDXnysDbN4RP_h8elpkVgWhxyBTUWXtbCkYGdEOsQ-K7V5JGwj4whdKMvHysoBh0R6pd4gC9LOWXrMEv0uYTFNB7G3Bmkspcj2B7o5jGFAOZ9cmr004ZJ_M-RfWc8IV4wwStcvzhINxrcu_uuzT-CEieY3i52xrXC4Xo7aXCucRHUYbjOJ6j-6tfbS5YHnn0YBbk6L9yDks1U2B_enEPbjeDdlW-x1VQNS2bA4avb9q4NRoE-j2y11NkIpbJ7IbrgHiAK703oMwk2ev8U1noi6YX1dTcVpdhBftmZb5ILxPqXb2Io6boGD3RiSo2Vmc84b_kw66_3_D_2yvPyrM2dWHSyhigGhcp5bWF4TzKN5AJsJuXQXjZio2JBvGkBO5BS_IvlLVv_jp7GM6GnJFi7sRmjKxGgX3XgdHbfAHG_stuppbLCOpAka1_zVcAubNd5JDJXWv29CEFAPa29JkAjYOjo06-wLkACMcY84s-niIMLqLhytV7ZEUzD2Be0" 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/642d2771-424e-4ee6-beb6-efecde3406fc.jpg" alt="" style="border-width:0px;" /></a></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=31892678-1117-46eb-aa3b-191c20bd6607">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/2.gif" alt="Traditional Cache" title="Traditional Cache" width="32" height="32" /></a>
- </p>
-
- <h2 class="NoBottomSpacing">
- <span id="ctl00_ContentBody_CacheName">Terrassenplatten gef&#228;llig...?</span></h2>
- <span class="minorCacheDetails">
- A
- cache
- by <a href="http://www.geocaching.com/profile/?guid=b66a625c-0266-43a7-9e7c-efecb9b2929a&wid=6506d572-cbb8-4d85-be1d-0cf482e360e5&ds=2">Ms.Marple/Mr.Stringer</a></span> <span class="minorCacheDetails">
- Hidden
- :
- 2009-10-16</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/stars2.gif" alt="2 out of 5" /></span>
- <span id="ctl00_ContentBody_Localize12" title="(1 is easiest, 5 is hardest)"><img src="http://www.geocaching.com/images/stars/stars1_5.gif" alt="1.5 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/micro.gif" alt="Size: Micro" title="Size: Micro" />&nbsp<small>(Micro)</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">
- 0</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=6506d572-cbb8-4d85-be1d-0cf482e360e5">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>
-
-
-
-
- <div class="CacheInformationTable">
- <div class="LocationData">
- <p class="NoBottomSpacing">
- <span id="ctl00_ContentBody_LatLon" style="font-weight:bold;">N 51° 19.902 E 007° 02.060</span>&nbsp;
- <small>
- <a id="ctl00_ContentBody_lnkConversions" title="Other Conversions" href="/wpt/?lat=51.3317&amp;lon=7.034333&amp;detail=1" target="_blank">Other Conversions</a>
- </small>
- <br />
- <span id="ctl00_ContentBody_LocationSubPanel" style="display:inline;"><small>
- UTM: 32U E 363061 N 5688546
- </small>
- <br />
- <span id="ctl00_ContentBody_lblDistFromHome"><img src="/images/icons/compass/NW.gif" alt="NW" />&nbsp;NW 314.7km from your home location</span>
- <br />
- </span>
- <span id="ctl00_ContentBody_Location">In Nordrhein-Westfalen, 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=6506d572-cbb8-4d85-be1d-0cf482e360e5" 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=6506d572-cbb8-4d85-be1d-0cf482e360e5&amp;lc=5" target="_blank">5 Logs</a>&nbsp;
- <a id="ctl00_ContentBody_lnkPrintFriendly10Logs" href="cdpf.aspx?guid=6506d572-cbb8-4d85-be1d-0cf482e360e5&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=48.861002,9.186577 (Home Location)&amp;daddr=51.3317,7.034333(Terrassenplatten+gef%c3%a4llig...%3f)" 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;6506d572-cbb8-4d85-be1d-0cf482e360e5&#39;);return false;" id="ctl00_ContentBody_btnSendToGPS" />
- |
- <input type="submit" name="ctl00$ContentBody$btnSendToPhone" value="Send to My Phone" onclick="s2phone(&#39;GC1ZXEZ&#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">
-
-
-
- </div>
-
- <br />
- <div class="UserSuppliedContent">
-
- <span id="ctl00_ContentBody_LongDescription">Ein kleiner "drive in" in Velbert.....
-<p>Tagsüber ist es wahrscheinlich nicht Muggelfrei, aber bei der
-Location handelt es sich um eine Terrassenplatten-Ausstellung. Man
-fällt nicht unbedingt auf, wenn man keine hektischen Suchbewegungen
-macht.</p>
-<p>Viel Spass !</p>
-<p>Ms.Marple and Mr. Stringer</p>
-<p>FTF by: wim47 / touring-treiber / charly4828 / Gini-Team</p></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">GC1ZXEZ</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=1433503" 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=6506d572-cbb8-4d85-be1d-0cf482e360e5" class="lnk"><img src="/images/stockholm/16x16/photos.gif" />&nbsp;<span>View Gallery</span></a></li>
-<li><a href="/my/watchlist.aspx?w=1433503" class="lnk"><img src="/images/stockholm/16x16/icon_watchlist.gif" />&nbsp;<span>Watch Listing</span></a></li>
-<li><a href="/bookmarks/ignore.aspx?guid=6506d572-cbb8-4d85-be1d-0cf482e360e5&WptTypeID=2" class="lnk"><img src="/images/stockholm/16x16/cross.gif" />&nbsp;<span>Ignore Listing</span></a></li>
-<li><a href="/bookmarks/mark.aspx?guid=6506d572-cbb8-4d85-be1d-0cf482e360e5&WptTypeID=2" class="lnk"><img src="/images/stockholm/16x16/book_open_mark.gif" />&nbsp;<span>Bookmark Listing</span></a></li>
-
- </ul>
-
- </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/2.png|51.3317,7.034333&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/wheelchair-no.gif" alt="not wheelchair accessible" title="not wheelchair accessible" width="30" height="30" /> <img src="/images/attributes/stroller-yes.gif" alt="stroller accessible" title="stroller accessible" width="30" height="30" /> <img src="/images/attributes/winter-yes.gif" alt="available in winter" title="available in winter" width="30" height="30" /> <img src="/images/attributes/available-yes.gif" alt="available 24-7" title="available 24-7" width="30" height="30" /> <img src="/images/attributes/jeeps-yes.gif" alt="off-road vehicles allowed" title="off-road vehicles allowed" width="30" height="30" /> <img src="/images/attributes/quads-yes.gif" alt="quads allowed" title="quads allowed" width="30" height="30" /> <img src="/images/attributes/motorcycles-yes.gif" alt="motorcycles allowed" title="motorcycles allowed" width="30" height="30" /> <img src="/images/attributes/bicycles-yes.gif" alt="bikes allowed" title="bikes allowed" width="30" height="30" /> <img src="/images/attributes/dogs-yes.gif" alt="dogs allowed" title="dogs allowed" 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='8971af680d7d4ad09d9bb4c5b4435dbb'" 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">
-
-
- <p class="NoBottomSpacing">
-
- <div id="ctl00_ContentBody_uxTravelBugList_uxNoTrackableItems">
-
- <span id="ctl00_ContentBody_uxTravelBugList_uxNoTrackableItemsLabel">There are no Trackables in this cache.</span>
-
-</div>
-
- <a id="ctl00_ContentBody_uxTravelBugList_uxTrackableItemsHistory" href="../track/search.aspx?wid=6506d572-cbb8-4d85-be1d-0cf482e360e5">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>
-
-
- <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=51.3317&amp;lng=7.034333" 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=Ms.Marple%2fMr.Stringer">hidden</a>&nbsp;
- or&nbsp;
- <a id="ctl00_ContentBody_uxFindLinksFoundByThisUser" href="/seek/nearest.aspx?ul=Ms.Marple%2fMr.Stringer">found</a>&nbsp;
- by this user
- </li>
-
- <li>
- ...nearby&nbsp;<a id="ctl00_ContentBody_uxFindLinksNearbyCachesOfType" href="/seek/nearest.aspx?tx=32bc9333-5e52-4957-b0f6-5a2c8fc7b257&amp;lat=51.331700&amp;lng=7.034333">caches of this type</a>,
- <a id="ctl00_ContentBody_uxFindLinksNearbyNotFound" href="/seek/nearest.aspx?tx=32bc9333-5e52-4957-b0f6-5a2c8fc7b257&amp;lat=51.331700&amp;lng=7.034333&amp;f=1">that I haven't found</a>
- </li>
- <li>
- ...all nearby&nbsp;<a id="ctl00_ContentBody_uxFindLinksAllNearbyCaches" href="/seek/nearest.aspx?lat=51.331700&amp;lng=7.034333">caches</a>,
- <a id="ctl00_ContentBody_uxFindLinksAllNearbyNotFound" href="/seek/nearest.aspx?lat=51.331700&amp;lng=7.034333&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=51.331700&amp;lon=7.034333">waymarks on Waymarking.com</a>
- </li>
-
-
- <li>
- ...nearby&nbsp;<a id="ctl00_ContentBody_uxFindLinksHotels" href="/reviews/hotels-coords-51.3317,7.0343">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=51.3317&lng=7.034333" target="_blank">Geocaching.com Google Map</a></li><li><a href="http://maps.google.com/maps?q=N+51%c2%b0+19.902+E+007%c2%b0+02.060+(GC1ZXEZ)+" target="_blank">Google Maps</a></li><li><a href="http://www.mapquest.com/maps/map.adp?searchtype=address&formtype=latlong&latlongtype=decimal&latitude=51.3317&longitude=7.034333&zoom=10" target="_blank">MapQuest</a></li><li><a href="http://maps.yahoo.com/maps_result?lat=51.3317&lon=7.034333" target="_blank">Yahoo Maps</a></li><li><a href="http://www.bing.com/maps/default.aspx?v=2&sp=point.51.3317_7.034333_GC1ZXEZ" target="_blank">Bing Maps</a></li><li><a href="http://www.opencyclemap.org/?zoom=12&lat=51.3317&lon=7.034333" target="_blank">Open Cycle Maps</a></li><li><a href="http://www.openstreetmap.org/?mlat=51.3317&mlon=7.034333&zoom=12" target="_blank">Open Street Maps</a></li></span>
-</ul>
-
- </span>
- <p class="NoPrint">
-
- </p>
-
- <div class="InformationWidget Clear">
- <h3>
- 147 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" /> 133&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="/images/icons/icon_sad.gif" alt="Didn't find it" title="Didn't find it" /> 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="/images/icons/icon_note.gif" alt="Write note" title="Write note" /> 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="/images/icons/traffic_cone.gif" alt="Archive" title="Archive" /> 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="/images/icons/traffic_cone.gif" alt="Unarchive" title="Unarchive" /> 1&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;<img src="/images/icons/coord_update.gif" alt="Update Coordinates" title="Update Coordinates" /> 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="/images/icons/big_smile.gif" alt="Post Reviewer Note" title="Post Reviewer Note" /> 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p></span>
- <p class="HalfLeft">
- <a id="ctl00_ContentBody_uxLogbookLink" href="cache_logbook.aspx?guid=6506d572-cbb8-4d85-be1d-0cf482e360e5">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=6506d572-cbb8-4d85-be1d-0cf482e360e5">View the Image Gallery</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-18T08:17:09Z">10/18/2011 08:17:09 Pacific Daylight Time (15:17 GMT)</time><br/>Last Updated: <time class="timeago" datetime="2011-10-17T16:32:18Z">2011-10-17T16:32:18Z</time> on 10/17/2011 09:32:18 Pacific Daylight Time (16:32 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=51.3317; lng=7.034333; guid='6506d572-cbb8-4d85-be1d-0cf482e360e5';
-
-
- 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 = 'PsDnbhUAfZpYJ%2fVuS%2fA9U54ejcA9wXNPAxTP1Ko197xlyETGZCA7gbO9VXK21qNg7lQ3ibk684aNVDy6A1BKOz5GvD5ZTW9iFmphI31yAa9Bw1w1qjyucLCsCsldZMaODT4mJ7d1Hce11D%2fDdYKE1Ys6Aul%2bQuMGWh%2bjMVdgmicn6WAjObjsNgRivjGIu%2fnCcWlLHYMk21Z6ue%2fh6WRyDrOSZWOZEDpq5GbnWzXDRXhs3%2fXpCYYyh5JbnhhBSXtRSp00DBmnuwIY1ANfTboJzb9CIoe24i3L4BBZbfyquxa3Y%2fLmQYrMX8csYrgDLMMUUGfIw5MyKakUg7hpnOQFY0IqnzogsjXzUf464q9%2fpXbFiqB2hIjn129P2snrL8tVBrhBJNRnspvoct%2bW6LjzCsoVsA5zME%2f7Ny9UafM0bWTIhWD2Q6NiMMSI6z%2fv03GB';mapLatLng = { lat:51.331700, lng:7.034333, type:2 };
-userInfo = {ID: 3409138};
-userToken = 'ID5R2NBJDBPQYVKRP2QCKFMGOD72N345U34TRF3HIUOES7I3DEYZLGMWQENANSEL5AL6KQIB3M4PLYKMXAA3W76GXK3SJKI26YPQPXUFEOIRR5LDZRUJ52HDEV5PK2KBLEXS7HUEFTJM4VM6K7A7AHKRPM';
-includeAvatars = false;
-initalLogs = {"status":"success", "data": [{"LogID":193211238,"CacheID":1433503,"LogGuid":"07132590-ddd3-4271-bf39-5c69b84b3ae0","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Haben vor einer Stunde gesehen, dass der wieder aktiv ist und uns ganz spontan entschlossen, ein paar Platten anzuschauen.<br/>War auch gerade die richtige Zeit.<br/>dfdc sagt Rio-Blue + Mann Von K. von Rio-Blue","Created":"2011-10-17","Visited":"2011-10-17","UserName":"Rio-Blue","MembershipLevel":3,"AccountID":4473975,"AccountGuid":"6beca192-8734-403d-b370-ff02d2456ccf","Email":"","AvatarImage":"2fc8ad68-bedb-406c-b69a-c3de8a8bbc3e.jpg","GeocacheFindCount":292,"GeocacheHideCount":2,"ChallengesCompleted":5,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":193153029,"CacheID":1433503,"LogGuid":"cf68f52c-3e9d-4ad9-a38c-1edd0d83b355","Latitude":51.3317,"Longitude":7.0343333333333335,"LatLonString":"N 51° 19.902 E 007° 02.060","LogType":"Update Coordinates","LogTypeImage":"coord_update.gif","LogText":"Coordinates changed from:<br/>N 51&#xB0; 19.900 E 007&#xB0; 02.057<br/><br/>Coordinates changed to:<br/>N 51&#xB0; 19.902 E 007&#xB0; 02.060<br/><br/>Distance from original: 16.6 feet or 5.1 meters.<br/><br/>ACHTUNG,LEICHT GE&#xC4;NDERTE KOORDINATEN","Created":"2011-10-17","Visited":"2011-10-17","UserName":"Ms.Marple/Mr.Stringer","MembershipLevel":3,"AccountID":1332221,"AccountGuid":"b66a625c-0266-43a7-9e7c-efecb9b2929a","Email":"","AvatarImage":"07bd1871-31f8-4c10-b485-e88c5e3e0f1e.jpg","GeocacheFindCount":417,"GeocacheHideCount":1,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":193152622,"CacheID":1433503,"LogGuid":"26205222-828c-4029-8363-579f95ca0baa","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Enable Listing","LogTypeImage":"icon_enabled.gif","LogText":"Er ist wieder unter leicht ge&#xE4;nderten Koordinaten auffindbar.<br/><br/> 51.19.902<br/>007.02.060","Created":"2011-10-17","Visited":"2011-10-17","UserName":"Ms.Marple/Mr.Stringer","MembershipLevel":3,"AccountID":1332221,"AccountGuid":"b66a625c-0266-43a7-9e7c-efecb9b2929a","Email":"","AvatarImage":"07bd1871-31f8-4c10-b485-e88c5e3e0f1e.jpg","GeocacheFindCount":417,"GeocacheHideCount":1,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":192640517,"CacheID":1433503,"LogGuid":"a7665ad7-fb15-467d-a88f-53b2f326d814","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Unarchive","LogTypeImage":"traffic_cone.gif","LogText":"Hallo!<br/>Sch&#xF6;n, dass es hier weiter geht. Bitte schalte den Cache selbst wieder frei per \"enable listing\", wenn alles in Ordnung ist. Dies muss innerhalb von 14 Tagen geschehen, da der Cache nach Ablauf dieser Zeit wieder archiviert wird, und dann endg&#xFC;ltig.<br/>Viele Gr&#xFC;&#xDF;e<br/>Sissi Voss<br/>Groundspeak Volunteer Reviewer","Created":"2011-10-15","Visited":"2011-10-15","UserName":"Sissi Voss","MembershipLevel":3,"AccountID":3737841,"AccountGuid":"b45f70e8-6460-444c-8c2e-5d8692b2f38f","Email":"","AvatarImage":"c23a0d01-e289-49cf-ac8d-5c7794e5db57.jpg","GeocacheFindCount":4,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Reviewer","GroupImageUrl":"/images/icon_admin.gif"},"Images":[]},{"LogID":172590003,"CacheID":1433503,"LogGuid":"b58282ef-5b0b-4a10-8bd0-a70fbdd6ea8b","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Archive","LogTypeImage":"traffic_cone.gif","LogText":"Da dieser Cache seit Monaten inaktiv ist, archiviere ich das Listing, damit es nicht mehr auf den Suchlisten auftaucht bzw. neue Caches blockiert. Falls du den Cache innerhalb der n&#xE4;chsten drei Monate reparieren oder ersetzen m&#xF6;chtest, schreibe mir bitte per E-Mail. Sofern der Cache den aktuellen Guidelines entspricht, hole ich ihn gerne wieder aus dem Archiv.","Created":"2011-07-13","Visited":"2011-07-13","UserName":"Sissi Voss","MembershipLevel":3,"AccountID":3737841,"AccountGuid":"b45f70e8-6460-444c-8c2e-5d8692b2f38f","Email":"","AvatarImage":"c23a0d01-e289-49cf-ac8d-5c7794e5db57.jpg","GeocacheFindCount":4,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Reviewer","GroupImageUrl":"/images/icon_admin.gif"},"Images":[]},{"LogID":165602693,"CacheID":1433503,"LogGuid":"8b9ca3d7-4e7a-4484-b16c-8dc047f3f2ae","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Post Reviewer Note","LogTypeImage":"big_smile.gif","LogText":"Mir ist aufgefallen, dass dieser Cache schon deutlich l&#xE4;nger deaktiviert ist als nur \"ein paar Wochen\", die die Guidelines von Geocaching.com vorsehen. Auch wenn ich denke dass Geocaching.com den Platz eine Weile f&#xFC;r dich reservieren und damit andere Caches in der n&#xE4;heren Umgebung fernhalten sollte, so kann dies letztlich nicht auf Dauer geschehen. Bitte repariere/ersetze diesen Cache oder archiviere ihn (mittels <i>archive listing</i> rechts oben im Men&#xFC;), so dass hier jemand anderes einen Cache auslegen kann und Geocacher sich wieder an diesem Ort erfreuen k&#xF6;nnen.<br/><br/>Wenn du vorhast den Cache zu reparieren, <b>schreibe bitte ein Log vom Typ \"Note\" zu diesem Cache</b> (keine E-Mail), damit ich das Listing nicht mangels R&#xFC;ckmeldung archiviere.","Created":"2011-06-08","Visited":"2011-06-08","UserName":"Sissi Voss","MembershipLevel":3,"AccountID":3737841,"AccountGuid":"b45f70e8-6460-444c-8c2e-5d8692b2f38f","Email":"","AvatarImage":"c23a0d01-e289-49cf-ac8d-5c7794e5db57.jpg","GeocacheFindCount":4,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Reviewer","GroupImageUrl":"/images/icon_admin.gif"},"Images":[]},{"LogID":147134800,"CacheID":1433503,"LogGuid":"62f55e0d-bda7-4e3e-9910-a3c7dbcad6fd","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Temporarily Disable Listing","LogTypeImage":"icon_disabled.gif","LogText":"Bei uns wird die Terrassenplattenausstellung neu gestaltet<br/>Ich muss den cache erstmal auf Eis legen, vielleicht suche ich nach einem neuen Versteck, mal sehen...","Created":"2011-03-02","Visited":"2011-03-02","UserName":"Ms.Marple/Mr.Stringer","MembershipLevel":3,"AccountID":1332221,"AccountGuid":"b66a625c-0266-43a7-9e7c-efecb9b2929a","Email":"","AvatarImage":"07bd1871-31f8-4c10-b485-e88c5e3e0f1e.jpg","GeocacheFindCount":417,"GeocacheHideCount":1,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":145971879,"CacheID":1433503,"LogGuid":"40365ca9-9ba4-463d-b80e-00346d350b2f","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Im dritten Anlauf gefunden :-)","Created":"2011-02-21","Visited":"2011-02-20","UserName":"regenbogen_69","MembershipLevel":3,"AccountID":4001017,"AccountGuid":"303f4491-1774-4562-9a96-35dc8015ca37","Email":"","AvatarImage":"70587fde-29a8-4db9-ad0d-79401abf9857.jpg","GeocacheFindCount":138,"GeocacheHideCount":1,"ChallengesCompleted":1,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":145199727,"CacheID":1433503,"LogGuid":"add82484-fad0-4f3a-8b93-cceef8bbae6e","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Hallo,<br/>nach unserer Multirunde zusammen mit Tatze1 hier kurz gehalten. Die verschiedensten Terassenplatten begutachtet und das D&#xF6;schen entdeckt.<br/>Danke f&#xFC;r den Cache<br/>Farytale19","Created":"2011-02-16","Visited":"2011-02-16","UserName":"Farytale19","MembershipLevel":3,"AccountID":2160300,"AccountGuid":"fb6f394a-6880-4a23-af2d-c3b2044bcc3d","Email":"","AvatarImage":"106b723d-3389-4caa-b48b-10ebdfc4232a.jpg","GeocacheFindCount":929,"GeocacheHideCount":1,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":145199716,"CacheID":1433503,"LogGuid":"a5fd6d36-cd88-4ae9-a714-a32c832f4720","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Zusammen mit Farytale19 Steine geguckt, gesucht, gefunden und geloggt! <img src=\"/images/icons/icon_smile_cool.gif\" border=\"0\" align=\"middle\" ></img><br/>Danke und viele Gr&#xFC;&#xDF;e<br/>Anja","Created":"2011-02-16","Visited":"2011-02-16","UserName":"Tatze1","MembershipLevel":3,"AccountID":1314694,"AccountGuid":"05545f06-b197-4b95-a146-ef7619957cba","Email":"","AvatarImage":"ba548bde-286c-43a8-aec2-08daa2469c6a.jpg","GeocacheFindCount":1176,"GeocacheHideCount":5,"ChallengesCompleted":4,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":144676823,"CacheID":1433503,"LogGuid":"736ad6b4-2c10-4c85-a39e-c5ead6dd10d7","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"So, hier heute Abend auch endlich mal schnell gelogged.<br/>TFTC","Created":"2011-02-12","Visited":"2011-02-12","UserName":"splatter2000","MembershipLevel":3,"AccountID":3846962,"AccountGuid":"6fe6999c-30c4-444b-b258-542f02a5cd12","Email":"","AvatarImage":"982c3493-29d6-4f7b-ab04-ae6b679de804.jpg","GeocacheFindCount":474,"GeocacheHideCount":11,"ChallengesCompleted":1,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":161828117,"CacheID":1433503,"LogGuid":"eec02789-0916-40a1-92c5-d368ed63539b","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"haben dat d&#xF6;sken am fr&#xFC;hen abend in der dunkelheit <br/>gehoben, mussten etwas suchen, aber schwer war&#xB4;s eigentlich nicht<br/><br/>TFTC","Created":"2011-05-21","Visited":"2011-02-08","UserName":"Die_Anderen","MembershipLevel":1,"AccountID":3045094,"AccountGuid":"78a7ce78-1cd8-41c1-a7ab-20e0ac414191","Email":"","AvatarImage":"4c718c8e-4d4d-4b14-a514-c447092a8495.jpg","GeocacheFindCount":675,"GeocacheHideCount":1,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Member","GroupImageUrl":"/images/icons/reg_user.gif"},"Images":[]},{"LogID":142960787,"CacheID":1433503,"LogGuid":"6e00ee7c-95d7-4197-a5aa-d463594a23e8","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Heute Nachmittag war hier wohl Feierabend, von daher problemlos geloggt.<br/>Danke sagt ein Rabe.","Created":"2011-01-29","Visited":"2011-01-29","UserName":"1Corvus","MembershipLevel":3,"AccountID":3846147,"AccountGuid":"7247ed51-825e-4064-8846-e5d6dab20c5a","Email":"","AvatarImage":"39761d4f-8f7e-44e7-b86a-f750100f1a60.jpg","GeocacheFindCount":815,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":142942249,"CacheID":1433503,"LogGuid":"1a31c0fa-f180-4947-b5f0-49fb22a99497","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Mit Applegeo on Tour kontnen wir mal eben anhalten :-)<br/>Hier konnte der weibliche Teil des Eisi_rs Teams f&#xFC;ndig werden.<br/><br/>Danke f&#xFC;rs zeigen und den Cache,<br/>eisi_rs","Created":"2011-01-29","Visited":"2011-01-29","UserName":"eisi_rs","MembershipLevel":3,"AccountID":2761706,"AccountGuid":"b3495b99-2d42-4bd4-9f5a-3176370aa04a","Email":"","AvatarImage":"1491f8a7-187a-4ea6-8a0d-c371b326bf0d.jpg","GeocacheFindCount":1352,"GeocacheHideCount":17,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":142935468,"CacheID":1433503,"LogGuid":"44432d3d-dabb-4043-917d-cc2c21319f56","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"TFTC<br/><br/>heute mit eisi_rs Family wieder eine nette Runde gedreht. <br/><br/>Dieses D&#xF6;schen konnte auf der heutigen Tour gut gefunden werden.<br/>Vielen Dank<br/><br/>so long<br/>applegeo","Created":"2011-01-29","Visited":"2011-01-29","UserName":"applegeo","MembershipLevel":3,"AccountID":2473125,"AccountGuid":"85bd5ab0-eaa8-4a74-9194-41c036763701","Email":"","AvatarImage":"fd95a541-998c-451b-8473-db1508f66874.jpg","GeocacheFindCount":1396,"GeocacheHideCount":8,"ChallengesCompleted":1,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":143069748,"CacheID":1433503,"LogGuid":"daef555b-f84a-47fd-be44-f0db0c52a772","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Mal alles inne Umgebung sauber gemacht!!!<br/><br/>TFTC Stratimii","Created":"2011-01-30","Visited":"2011-01-28","UserName":"Stratimii","MembershipLevel":3,"AccountID":3880267,"AccountGuid":"6a476a3c-bebc-42ec-b742-7362f65d2ae3","Email":"","AvatarImage":"","GeocacheFindCount":466,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":142909186,"CacheID":1433503,"LogGuid":"0f9f7fd5-1186-467f-bb8c-ca931a7cb2e4","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Bei einer abendlichen spontanen Suchaktion gut gefunden.<br/><br/>TFTC sagt Blauer Engel","Created":"2011-01-29","Visited":"2011-01-28","UserName":"Blauer Engel","MembershipLevel":3,"AccountID":886781,"AccountGuid":"a4fd9c2b-57a0-421c-97df-3dd394002caa","Email":"","AvatarImage":"59b88eac-43ea-40dd-a4c2-61454e61d823.jpg","GeocacheFindCount":1077,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":142327210,"CacheID":1433503,"LogGuid":"193f4404-43bb-4ed9-98e2-f70256f79fb2","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Heute gut gefunden!\nMit Nessi81 und MartyG. auf Tour gewesen.\nTftc","Created":"2011-01-23","Visited":"2011-01-23","UserName":"pfiffel69","MembershipLevel":1,"AccountID":1942922,"AccountGuid":"c46f5819-2b59-437a-94a9-e65f3776d7b7","Email":"","AvatarImage":"","GeocacheFindCount":789,"GeocacheHideCount":7,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Member","GroupImageUrl":"/images/icons/reg_user.gif"},"Images":[]},{"LogID":142326766,"CacheID":1433503,"LogGuid":"04165fdc-daa9-4a7e-beda-3370bbd74c49","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Endlich gefunden. \n\nTftc","Created":"2011-01-23","Visited":"2011-01-23","UserName":"MartyG.","MembershipLevel":3,"AccountID":850017,"AccountGuid":"d91d4094-68c6-4173-af7b-deb3ad0d7201","Email":"","AvatarImage":"a657a859-1255-42a3-a562-9cbd112e0034.jpg","GeocacheFindCount":801,"GeocacheHideCount":10,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":142321316,"CacheID":1433503,"LogGuid":"1a530dbb-9591-4610-9abc-5680b633c889","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Tolle Dose. Danke Die anderen zwei.","Created":"2011-01-23","Visited":"2011-01-23","UserName":"Die Brufis","MembershipLevel":3,"AccountID":645619,"AccountGuid":"40190cea-c852-46bc-9d51-77cf5103afd4","Email":"","AvatarImage":"fd5b16c3-0f76-404a-b7a8-7c4f10ec8072.jpg","GeocacheFindCount":1074,"GeocacheHideCount":4,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":141719467,"CacheID":1433503,"LogGuid":"58851a2f-5131-42a7-8c1e-208b85e003c6","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Mit Schw.Evi und Aik gefunden.","Created":"2011-01-17","Visited":"2011-01-14","UserName":"super-resi","MembershipLevel":1,"AccountID":1113925,"AccountGuid":"67a09fb2-8f60-4a11-adcf-3d74b03bda58","Email":"","AvatarImage":"3ce8f1a5-17e3-4d72-b204-0d2105b5a875.jpg","GeocacheFindCount":916,"GeocacheHideCount":4,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Member","GroupImageUrl":"/images/icons/reg_user.gif"},"Images":[]},{"LogID":141352841,"CacheID":1433503,"LogGuid":"c680047c-a945-43a1-84d1-d736e051b5f5","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"# 869 13:05 Uhr<br/>Hier haben wir schon etwas gebraucht.<br/>Zusammen mit Super-resi und Aik.","Created":"2011-01-15","Visited":"2011-01-14","UserName":"Schw.Evi","MembershipLevel":3,"AccountID":1118435,"AccountGuid":"36b41d03-10c3-424f-bc04-f061fe4e422e","Email":"","AvatarImage":"3ffb0dd1-d39b-4b97-a2e3-701551746bdd.jpg","GeocacheFindCount":1052,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":141393537,"CacheID":1433503,"LogGuid":"a3298e68-77da-4be9-8756-456bb45bbe79","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Auf einer entspannten Traditour durch Velbert mit Team Paveflambe gut gefunden! <img src=\"/images/icons/icon_smile.gif\" border=\"0\" align=\"middle\" ></img><br/>TFTC sagen<br/>Steffi und Herr Nick","Created":"2011-01-15","Visited":"2011-01-09","UserName":"Steffi und Herr Nick","MembershipLevel":3,"AccountID":3872570,"AccountGuid":"5e2cfd1d-8979-483d-a1b3-e9472572f237","Email":"","AvatarImage":"","GeocacheFindCount":279,"GeocacheHideCount":1,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":140871903,"CacheID":1433503,"LogGuid":"17eaa7b6-d933-4938-b26e-7c1682e7428c","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Heute waren wir mit Steffi und Herr Nick auf Tour in Velbert. Diesen Cache konnten wir finden und bedanken uns bei den Ownern f&#xFC;rs Verstecken und f&#xFC;r den sch&#xF6;nen Sonntag, den wir dadurch hatten.<br/><br/>Gr&#xFC;&#xDF;e sendet das Team paveflambe<br/><br/>no trade","Created":"2011-01-09","Visited":"2011-01-09","UserName":"paveflambe","MembershipLevel":3,"AccountID":2179187,"AccountGuid":"dff43139-0a6f-4e7a-8c92-147b861f714c","Email":"","AvatarImage":"de898fd4-b0c4-4ef1-9c2d-16c207773862.jpg","GeocacheFindCount":607,"GeocacheHideCount":10,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]},{"LogID":141470808,"CacheID":1433503,"LogGuid":"6a4ee944-3ba1-4bf2-9bc9-78bfb4e666bc","Latitude":null,"Longitude":null,"LatLonString":"","LogType":"Found it","LogTypeImage":"icon_smile.gif","LogText":"Gut gefunden. Vielen Dank Ms und Mr ......<br/>MTJERF","Created":"2011-01-16","Visited":"2011-01-08","UserName":"MTJERF","MembershipLevel":3,"AccountID":2756005,"AccountGuid":"90d3df92-e99f-4b59-a0a3-fbe0c159770a","Email":"","AvatarImage":"219e668f-f161-42b2-9a6d-ed3da586c5aa.jpg","GeocacheFindCount":278,"GeocacheHideCount":0,"ChallengesCompleted":0,"IsEncoded":false,"creator":{"GroupTitle":"Premium Member","GroupImageUrl":"/images/icons/prem_user.gif"},"Images":[]}], "pageInfo": { "idx":1, "size": 25, "totalRows": 147, "rows": 147 } };
-//]]>
-</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: WEB11; Build: HotFix_20111006.1 -->
- </body>
-</html>
diff --git a/tests/src/cgeo/geocaching/ParserTest.java b/tests/src/cgeo/geocaching/ParserTest.java
deleted file mode 100644
index 18a11df..0000000
--- a/tests/src/cgeo/geocaching/ParserTest.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package cgeo.geocaching;
-
-import cgeo.geocaching.test.AbstractResourceInstrumentationTestCase;
-import cgeo.geocaching.test.R;
-
-public class ParserTest extends AbstractResourceInstrumentationTestCase {
-
- public void testOwnerDecoding() {
- cgCacheWrap caches = cgBase.parseCacheFromText(getFileContent(R.raw.gc1zxez), 0, null);
- assertEquals(1, caches.cacheList.size());
- final cgCache cache = caches.cacheList.get(0);
- assertEquals("Ms.Marple/Mr.Stringer", cache.getOwnerReal());
- }
-} \ No newline at end of file
diff --git a/tests/src/cgeo/geocaching/cgBaseTest.java b/tests/src/cgeo/geocaching/cgBaseTest.java
index e9e65a8..f772ead 100644
--- a/tests/src/cgeo/geocaching/cgBaseTest.java
+++ b/tests/src/cgeo/geocaching/cgBaseTest.java
@@ -79,8 +79,8 @@ public class cgBaseTest extends AndroidTestCase {
for (MockedCache mockedCache : RegExPerformanceTest.MOCKED_CACHES) {
// to get the same results we have to use the date format used when the mocked data was created
Settings.setGcCustomDate(mockedCache.getDateFormat());
- cgCacheWrap caches = cgBase.parseCacheFromText(mockedCache.getData(), 0, null);
- cgCache parsedCache = caches.cacheList.get(0);
+ ParseResult parseResult = cgBase.parseCacheFromText(mockedCache.getData(), 0, null);
+ cgCache parsedCache = parseResult.cacheList.get(0);
cgBaseTest.testCompareCaches(mockedCache, parsedCache);
}
Settings.setGcCustomDate(gcCustomDate);
diff --git a/tests/src/cgeo/geocaching/cgeoApplicationTest.java b/tests/src/cgeo/geocaching/cgeoApplicationTest.java
index adacc2d..0e5731e 100644
--- a/tests/src/cgeo/geocaching/cgeoApplicationTest.java
+++ b/tests/src/cgeo/geocaching/cgeoApplicationTest.java
@@ -86,7 +86,7 @@ public class cgeoApplicationTest extends ApplicationTestCase<cgeoapplication> {
*/
@MediumTest
public static cgCache testSearchByGeocode(final String geocode) {
- final cgSearch search = cgBase.searchByGeocode(geocode, null, 0, true, null);
+ final ParseResult search = cgBase.searchByGeocode(geocode, null, 0, true, null);
assertNotNull(search);
if (Settings.isPremiumMember() || search.error == null) {
assertEquals(1, search.getGeocodes().size());
@@ -102,7 +102,7 @@ public class cgeoApplicationTest extends ApplicationTestCase<cgeoapplication> {
*/
@MediumTest
public static void testSearchByGeocodeNotExisting() {
- final cgSearch search = cgBase.searchByGeocode("GC123456", null, 0, true, null);
+ final ParseResult search = cgBase.searchByGeocode("GC123456", null, 0, true, null);
assertNotNull(search);
assertEquals(search.error, StatusCode.UNPUBLISHED_CACHE);
}
@@ -112,7 +112,7 @@ public class cgeoApplicationTest extends ApplicationTestCase<cgeoapplication> {
*/
@MediumTest
public static void testSearchByCoords() {
- final cgSearch search = cgBase.searchByCoords(null, new Geopoint("N 52° 24.972 E 009° 35.647"), CacheType.MYSTERY, 0, false);
+ final ParseResult search = cgBase.searchByCoords(null, new Geopoint("N 52° 24.972 E 009° 35.647"), CacheType.MYSTERY, 0, false);
assertNotNull(search);
assertEquals(20, search.getGeocodes().size());
assertTrue(search.getGeocodes().contains("GC1RMM2"));
@@ -123,7 +123,7 @@ public class cgeoApplicationTest extends ApplicationTestCase<cgeoapplication> {
*/
@MediumTest
public static void testSearchByOwner() {
- final cgSearch search = cgBase.searchByOwner(null, "blafoo", CacheType.MYSTERY, 0, false);
+ final ParseResult search = cgBase.searchByOwner(null, "blafoo", CacheType.MYSTERY, 0, false);
assertNotNull(search);
assertEquals(3, search.getGeocodes().size());
assertTrue(search.getGeocodes().contains("GC36RT6"));
@@ -134,7 +134,7 @@ public class cgeoApplicationTest extends ApplicationTestCase<cgeoapplication> {
*/
@MediumTest
public static void testSearchByUsername() {
- final cgSearch search = cgBase.searchByUsername(null, "blafoo", CacheType.WEBCAM, 0, false);
+ final ParseResult search = cgBase.searchByUsername(null, "blafoo", CacheType.WEBCAM, 0, false);
assertNotNull(search);
assertEquals(3, search.totalCnt);
assertTrue(search.getGeocodes().contains("GCP0A9"));
@@ -159,6 +159,9 @@ public class cgeoApplicationTest extends ApplicationTestCase<cgeoapplication> {
public static void testCacheSpecialties() {
cgCache GCV2R9 = cgeoApplicationTest.testSearchByGeocode("GCV2R9");
Assert.assertEquals("California, United States", GCV2R9.getLocation());
+
+ cgCache GC1ZXEZ = cgeoApplicationTest.testSearchByGeocode("GC1ZXEZ");
+ Assert.assertEquals("Ms.Marple/Mr.Stringer", GC1ZXEZ.getOwnerReal());
}
}
diff --git a/tests/src/cgeo/geocaching/files/GPXImporterTest.java b/tests/src/cgeo/geocaching/files/GPXImporterTest.java
index 95f1218..457bb21 100644
--- a/tests/src/cgeo/geocaching/files/GPXImporterTest.java
+++ b/tests/src/cgeo/geocaching/files/GPXImporterTest.java
@@ -2,7 +2,7 @@ package cgeo.geocaching.files;
import cgeo.geocaching.Settings;
import cgeo.geocaching.cgCache;
-import cgeo.geocaching.cgSearch;
+import cgeo.geocaching.SearchResult;
import cgeo.geocaching.cgeoapplication;
import cgeo.geocaching.test.AbstractResourceInstrumentationTestCase;
import cgeo.geocaching.test.R;
@@ -53,7 +53,7 @@ public class GPXImporterTest extends AbstractResourceInstrumentationTestCase {
assertEquals(GPXImporter.IMPORT_STEP_READ_FILE, iMsg.next().what);
assertEquals(GPXImporter.IMPORT_STEP_STORE_CACHES, iMsg.next().what);
assertEquals(GPXImporter.IMPORT_STEP_FINISHED, iMsg.next().what);
- cgSearch search = (cgSearch) importStepHandler.messages.get(3).obj;
+ SearchResult search = (SearchResult) importStepHandler.messages.get(3).obj;
assertEquals(Collections.singletonList("GC31J2H"), search.getGeocodes());
cgCache cache = cgeoapplication.getInstance().getCacheByGeocode("GC31J2H");
@@ -82,7 +82,7 @@ public class GPXImporterTest extends AbstractResourceInstrumentationTestCase {
runImportThread(importThread);
assertImportStepMessages(GPXImporter.IMPORT_STEP_START, GPXImporter.IMPORT_STEP_READ_FILE, GPXImporter.IMPORT_STEP_READ_WPT_FILE, GPXImporter.IMPORT_STEP_STORE_CACHES, GPXImporter.IMPORT_STEP_FINISHED);
- cgSearch search = (cgSearch) importStepHandler.messages.get(4).obj;
+ SearchResult search = (SearchResult) importStepHandler.messages.get(4).obj;
assertEquals(Collections.singletonList("GC31J2H"), search.getGeocodes());
cgCache cache = cgeoapplication.getInstance().getCacheByGeocode("GC31J2H");
@@ -105,7 +105,7 @@ public class GPXImporterTest extends AbstractResourceInstrumentationTestCase {
runImportThread(importThread);
assertImportStepMessages(GPXImporter.IMPORT_STEP_START, GPXImporter.IMPORT_STEP_READ_FILE, GPXImporter.IMPORT_STEP_STORE_CACHES, GPXImporter.IMPORT_STEP_FINISHED);
- cgSearch search = (cgSearch) importStepHandler.messages.get(3).obj;
+ SearchResult search = (SearchResult) importStepHandler.messages.get(3).obj;
assertEquals(Collections.singletonList("OC5952"), search.getGeocodes());
cgCache cache = cgeoapplication.getInstance().getCacheByGeocode("OC5952");
@@ -145,7 +145,7 @@ public class GPXImporterTest extends AbstractResourceInstrumentationTestCase {
runImportThread(importThread);
assertImportStepMessages(GPXImporter.IMPORT_STEP_START, GPXImporter.IMPORT_STEP_READ_FILE, GPXImporter.IMPORT_STEP_STORE_CACHES, GPXImporter.IMPORT_STEP_FINISHED);
- cgSearch search = (cgSearch) importStepHandler.messages.get(3).obj;
+ SearchResult search = (SearchResult) importStepHandler.messages.get(3).obj;
assertEquals(Collections.singletonList("GC31J2H"), search.getGeocodes());
cgCache cache = cgeoapplication.getInstance().getCacheByGeocode("GC31J2H");
@@ -163,7 +163,7 @@ public class GPXImporterTest extends AbstractResourceInstrumentationTestCase {
runImportThread(importThread);
assertImportStepMessages(GPXImporter.IMPORT_STEP_START, GPXImporter.IMPORT_STEP_READ_FILE, GPXImporter.IMPORT_STEP_READ_WPT_FILE, GPXImporter.IMPORT_STEP_STORE_CACHES, GPXImporter.IMPORT_STEP_FINISHED);
- cgSearch search = (cgSearch) importStepHandler.messages.get(4).obj;
+ SearchResult search = (SearchResult) importStepHandler.messages.get(4).obj;
assertEquals(Collections.singletonList("GC31J2H"), search.getGeocodes());
cgCache cache = cgeoapplication.getInstance().getCacheByGeocode("GC31J2H");
@@ -188,7 +188,7 @@ public class GPXImporterTest extends AbstractResourceInstrumentationTestCase {
runImportThread(importThread);
assertImportStepMessages(GPXImporter.IMPORT_STEP_START, GPXImporter.IMPORT_STEP_READ_FILE, GPXImporter.IMPORT_STEP_READ_WPT_FILE, GPXImporter.IMPORT_STEP_STORE_CACHES, GPXImporter.IMPORT_STEP_FINISHED);
- cgSearch search = (cgSearch) importStepHandler.messages.get(4).obj;
+ SearchResult search = (SearchResult) importStepHandler.messages.get(4).obj;
assertEquals(Collections.singletonList("GC31J2H"), search.getGeocodes());
cgCache cache = cgeoapplication.getInstance().getCacheByGeocode("GC31J2H");