Index: trunk/src/org/openstreetmap/josm/actions/ImageryAdjustAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/ImageryAdjustAction.java	(revision 5807)
+++ trunk/src/org/openstreetmap/josm/actions/ImageryAdjustAction.java	(revision 5808)
@@ -145,5 +145,4 @@
             return;
         oldMapMode = Main.map.mapMode;
-        layer.enableOffsetServer(false);
         super.actionPerformed(e);
     }
Index: trunk/src/org/openstreetmap/josm/gui/layer/ImageryLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/ImageryLayer.java	(revision 5807)
+++ trunk/src/org/openstreetmap/josm/gui/layer/ImageryLayer.java	(revision 5808)
@@ -26,10 +26,8 @@
 import javax.swing.JPopupMenu;
 import javax.swing.JSeparator;
-import javax.swing.SwingUtilities;
 
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.ImageryAdjustAction;
 import org.openstreetmap.josm.data.ProjectionBounds;
-import org.openstreetmap.josm.data.coor.EastNorth;
 import org.openstreetmap.josm.data.imagery.ImageryInfo;
 import org.openstreetmap.josm.data.imagery.ImageryInfo.ImageryType;
@@ -38,6 +36,4 @@
 import org.openstreetmap.josm.data.preferences.IntegerProperty;
 import org.openstreetmap.josm.gui.MenuScroller;
-import org.openstreetmap.josm.io.imagery.OffsetServer;
-import org.openstreetmap.josm.io.imagery.OsmosnimkiOffsetServer;
 import org.openstreetmap.josm.tools.ImageProvider;
 
@@ -66,20 +62,5 @@
     protected int sharpenLevel;
 
-    protected boolean offsetServerSupported;
-    protected boolean offsetServerUsed;
-    protected OffsetServerThread offsetServerThread;
-
     private final ImageryAdjustAction adjustAction = new ImageryAdjustAction(this);
-    private final AbstractAction useServerOffsetAction = new AbstractAction(tr("(use server offset)")) {
-        @Override
-        public void actionPerformed(ActionEvent e) {
-            enableOffsetServer(true);
-        }
-    };
-
-    protected OffsetServerThread createoffsetServerThread() {
-        return new OffsetServerThread(new OsmosnimkiOffsetServer(
-                OsmosnimkiOffsetServer.PROP_SERVER_URL.get()));
-    }
 
     public ImageryLayer(ImageryInfo info) {
@@ -94,8 +75,4 @@
         }
         this.sharpenLevel = PROP_SHARPEN_LEVEL.get();
-        if (OffsetServer.PROP_SERVER_ENABLED.get()) {
-            offsetServerThread = createoffsetServerThread();
-            offsetServerThread.start();
-        }
     }
 
@@ -164,5 +141,4 @@
         public void actionPerformed(ActionEvent ev) {
             setOffset(b.dx, b.dy);
-            enableOffsetServer(false);
             Main.main.menu.imageryMenu.refreshOffsetMenu();
             Main.map.repaint();
@@ -183,12 +159,4 @@
         public boolean supportLayers(List<Layer> layers) {
             return false;
-        }
-    }
-
-    public void enableOffsetServer(boolean enable) {
-        offsetServerUsed = enable;
-        if (offsetServerUsed && !offsetServerThread.isAlive()) {
-            offsetServerThread = createoffsetServerThread();
-            offsetServerThread.start();
         }
     }
@@ -202,14 +170,7 @@
     public JComponent getOffsetMenuItem(JComponent subMenu) {
         JMenuItem adjustMenuItem = new JMenuItem(adjustAction);
-        if (OffsetBookmark.allBookmarks.isEmpty() && !offsetServerSupported) return adjustMenuItem;
+        if (OffsetBookmark.allBookmarks.isEmpty()) return adjustMenuItem;
 
         subMenu.add(adjustMenuItem);
-        if (offsetServerSupported) {
-            JCheckBoxMenuItem item = new JCheckBoxMenuItem(useServerOffsetAction);
-            if (offsetServerUsed) {
-                item.setSelected(true);
-            }
-            subMenu.add(item);
-        }
         subMenu.add(new JSeparator());
         boolean hasBookmarks = false;
@@ -220,5 +181,5 @@
             }
             JCheckBoxMenuItem item = new JCheckBoxMenuItem(new ApplyOffsetAction(b));
-            if (b.dx == dx && b.dy == dy && !offsetServerUsed) {
+            if (b.dx == dx && b.dy == dy) {
                 item.setSelected(true);
             }
@@ -235,5 +196,5 @@
             }
         }
-        return (hasBookmarks || offsetServerSupported) ? subMenu : adjustMenuItem;
+        return hasBookmarks ? subMenu : adjustMenuItem;
     }
 
@@ -265,49 +226,4 @@
     }
 
-    protected class OffsetServerThread extends Thread {
-        OffsetServer offsetServer;
-        EastNorth oldCenter = new EastNorth(Double.NaN, Double.NaN);
-
-        public OffsetServerThread(OffsetServer offsetServer) {
-            this.offsetServer = offsetServer;
-            setDaemon(true);
-        }
-
-        private void updateOffset() {
-            if (Main.map == null || Main.map.mapView == null) return;
-            EastNorth center = Main.map.mapView.getCenter();
-            if (center.equals(oldCenter)) return;
-            oldCenter = center;
-
-            EastNorth offset = offsetServer.getOffset(getInfo(), center);
-            if (offset != null) {
-                setOffset(offset.east(),offset.north());
-            }
-        }
-
-        @Override
-        public void run() {
-            if (!offsetServerSupported) {
-                if (!offsetServer.isLayerSupported(info)) return;
-                offsetServerSupported = true;
-            }
-            offsetServerUsed = true;
-            SwingUtilities.invokeLater(new Runnable() {
-                @Override
-                public void run() {
-                    Main.main.menu.imageryMenu.refreshOffsetMenu();
-                }
-            });
-            try {
-                while (offsetServerUsed) {
-                    updateOffset();
-                    Thread.sleep(1000);
-                }
-            } catch (InterruptedException e) {
-            }
-            offsetServerUsed = false;
-        }
-    }
-
     /* (non-Javadoc)
      * @see org.openstreetmap.josm.gui.layer.Layer#destroy()
Index: trunk/src/org/openstreetmap/josm/gui/preferences/imagery/CommonSettingsPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/imagery/CommonSettingsPanel.java	(revision 5807)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/imagery/CommonSettingsPanel.java	(revision 5808)
@@ -10,5 +10,4 @@
 
 import javax.swing.JButton;
-import javax.swing.JCheckBox;
 import javax.swing.JColorChooser;
 import javax.swing.JLabel;
@@ -16,12 +15,7 @@
 import javax.swing.JPanel;
 import javax.swing.JSlider;
-import javax.swing.JTextField;
-import javax.swing.event.ChangeEvent;
-import javax.swing.event.ChangeListener;
 
 import org.openstreetmap.josm.gui.layer.ImageryLayer;
 import org.openstreetmap.josm.gui.widgets.JosmComboBox;
-import org.openstreetmap.josm.io.imagery.OffsetServer;
-import org.openstreetmap.josm.io.imagery.OsmosnimkiOffsetServer;
 import org.openstreetmap.josm.tools.ColorHelper;
 import org.openstreetmap.josm.tools.GBC;
@@ -37,6 +31,4 @@
     private final JSlider fadeAmount = new JSlider(0, 100);
     private final JosmComboBox sharpen;
-    private final JCheckBox useOffsetServer;
-    private final JTextField offsetServerUrl;
 
     /**
@@ -80,16 +72,4 @@
         add(GBC.glue(5, 0), GBC.std().fill(GBC.HORIZONTAL));
         add(this.sharpen, GBC.eol().fill(GBC.HORIZONTAL));
-
-        this.useOffsetServer = new JCheckBox(tr("Use offset server: "));
-        this.offsetServerUrl = new JTextField();
-        this.useOffsetServer.addChangeListener(new ChangeListener() {
-            @Override
-            public void stateChanged(ChangeEvent e) {
-                offsetServerUrl.setEnabled(useOffsetServer.isSelected());
-            }
-        });
-        offsetServerUrl.setEnabled(useOffsetServer.isSelected());
-        add(this.useOffsetServer, GBC.eol().fill(GBC.HORIZONTAL));
-        add(this.offsetServerUrl, GBC.eol().fill(GBC.HORIZONTAL));
     }
     
@@ -103,6 +83,4 @@
         this.fadeAmount.setValue(ImageryLayer.PROP_FADE_AMOUNT.get());
         this.sharpen.setSelectedIndex(Math.max(0, Math.min(2, ImageryLayer.PROP_SHARPEN_LEVEL.get())));
-        this.useOffsetServer.setSelected(OffsetServer.PROP_SERVER_ENABLED.get());
-        this.offsetServerUrl.setText(OsmosnimkiOffsetServer.PROP_SERVER_URL.get());
     }
     
@@ -112,7 +90,4 @@
      */
     public boolean saveSettings() {
-        OffsetServer.PROP_SERVER_ENABLED.put(useOffsetServer.isSelected());
-        OsmosnimkiOffsetServer.PROP_SERVER_URL.put(offsetServerUrl.getText());
-
         ImageryLayer.PROP_FADE_AMOUNT.put(this.fadeAmount.getValue());
         ImageryLayer.PROP_FADE_COLOR.put(this.btnFadeColor.getBackground());
Index: trunk/src/org/openstreetmap/josm/io/imagery/OffsetServer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/imagery/OffsetServer.java	(revision 5807)
+++ 	(revision )
@@ -1,12 +1,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.io.imagery;
-
-import org.openstreetmap.josm.data.coor.EastNorth;
-import org.openstreetmap.josm.data.imagery.ImageryInfo;
-import org.openstreetmap.josm.data.preferences.BooleanProperty;
-
-public interface OffsetServer {
-    public static BooleanProperty PROP_SERVER_ENABLED = new BooleanProperty("imagery.offsetserver.enabled",false);
-    abstract boolean isLayerSupported(ImageryInfo info);
-    abstract EastNorth getOffset(ImageryInfo info, EastNorth en);
-}
Index: trunk/src/org/openstreetmap/josm/io/imagery/OsmosnimkiOffsetServer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/imagery/OsmosnimkiOffsetServer.java	(revision 5807)
+++ 	(revision )
@@ -1,64 +1,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.io.imagery;
-
-import static org.openstreetmap.josm.tools.I18n.tr;
-
-import java.io.BufferedReader;
-import java.io.InputStreamReader;
-import java.net.URL;
-import java.net.URLEncoder;
-
-import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.data.coor.EastNorth;
-import org.openstreetmap.josm.data.coor.LatLon;
-import org.openstreetmap.josm.data.imagery.ImageryInfo;
-import org.openstreetmap.josm.data.preferences.StringProperty;
-import org.openstreetmap.josm.tools.Utils;
-
-public class OsmosnimkiOffsetServer implements OffsetServer {
-    public static final StringProperty PROP_SERVER_URL = new StringProperty("imagery.offsetserver.url","http://offset.osmosnimki.ru/offset/v0?");
-    private String url;
-
-    public OsmosnimkiOffsetServer(String url) {
-        this.url = url;
-    }
-
-    @Override
-    public boolean isLayerSupported(ImageryInfo info) {
-        try {
-            URL url = new URL(this.url + "action=CheckAvailability&id=" + URLEncoder.encode(info.getUrl(), "UTF-8"));
-            System.out.println(tr("Querying offset availability: {0}", url));
-            final BufferedReader rdr = new BufferedReader(new InputStreamReader(Utils.openHttpConnection(url).getInputStream(), "UTF-8"));
-            String response = rdr.readLine();
-            System.out.println(tr("Offset server response: {0}", response));
-            if (response == null)
-                return false;
-            if (response.contains("\"offsets_available\": true")) return true;
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return false;
-    }
-
-    @Override
-    public EastNorth getOffset(ImageryInfo info, EastNorth en) {
-        LatLon ll = Main.getProjection().eastNorth2latlon(en);
-        try {
-            URL url = new URL(this.url + "action=GetOffsetForPoint&lat=" + ll.lat() + "&lon=" + ll.lon() + "&id=" + URLEncoder.encode(info.getUrl(), "UTF-8"));
-            System.out.println(tr("Querying offset: {0}", url.toString()));
-            final BufferedReader rdr = new BufferedReader(new InputStreamReader(Utils.openHttpConnection(url).getInputStream(), "UTF-8"));
-            String s = rdr.readLine();
-            if (s == null)
-                return null;
-            int i = s.indexOf(',');
-            if (i == -1) return null;
-            String sLon = s.substring(1,i);
-            String sLat = s.substring(i+1,s.length()-1);
-            return Main.getProjection().latlon2eastNorth(new LatLon(Double.valueOf(sLat),Double.valueOf(sLon))).sub(en);
-        } catch (Exception e) {
-            e.printStackTrace();
-            return null;
-        }
-    }
-
-}
