Index: applications/editors/josm/plugins/pointInfo/README.md
===================================================================
--- applications/editors/josm/plugins/pointInfo/README.md	(revision 30334)
+++ applications/editors/josm/plugins/pointInfo/README.md	(revision 30367)
@@ -1,3 +1,3 @@
-![](http://www.kyralovi.cz/tmp/josm/pointinfo_beta4.png)
+![](http://www.kyralovi.cz/tmp/josm/pointInfo_v1.png)
 
 ---
@@ -6,6 +6,5 @@
 
 This plugin shows all available information for clicked point from external database.
-Currently, only Czech RUIAN module is available.
-
+There is only a Czech RUIAN module available at this moment.
 
 ##Author
@@ -13,4 +12,9 @@
  * Marián Kyral <mkyral@email.cz>
 
+##Websites
+
+ * OSM wiki - not availavle yet
+ * [JOSM svn](https://trac.openstreetmap.org/browser/subversion/applications/editors/josm/plugins/pointInfo)
+ * [Github](https://github.com/mkyral/josm-pointInfo)
 
 ##Licence:
@@ -18,8 +22,4 @@
  * GPL v2 or later
 
-
-##Used libraries:
-
-* org.json (http://www.json.org/java/index.html) for parse json data.
 
 ##Notes:
@@ -29,4 +29,15 @@
 - Optionally you can define special links (file://...) that will be sent back to the module to the performAction method
 
+---
+###The RUIAN module
+
+ * Shows data about building, addresses, streets,  parcels and cadastral area from Czech RUIAN registry (http://wiki.openstreetmap.org/wiki/RUIAN)
+
+ * Additional actions are available :
+    * [![](http://raw.githubusercontent.com/mkyral/josm-pointInfo/master/images/dialogs/copy-tags.png)] Copy tags to clipboard
+    * [![](https://raw.githubusercontent.com/mkyral/josm-pointInfo/master/images/dialogs/create-addr.png)] Create an address point on position where was clicked
+    * [![](https://raw.githubusercontent.com/mkyral/josm-pointInfo/master/images/dialogs/create-addr-ruian.png)] Create an address point on position defined in RUIAN
+
+---
 ###The interface:
 
@@ -56,4 +67,2 @@
 
 ```
-
-
Index: applications/editors/josm/plugins/pointInfo/build.xml
===================================================================
--- applications/editors/josm/plugins/pointInfo/build.xml	(revision 30334)
+++ applications/editors/josm/plugins/pointInfo/build.xml	(revision 30367)
@@ -15,5 +15,5 @@
 
     <!-- enter the SVN commit message -->
-    <property name="commit.message" value="PointInfo: Fix format of start_date key"/>
+    <property name="commit.message" value="PointInfo: Replace org.json with JOSM embedded (GPL-compliant) jsonp."/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
     <property name="plugin.main.version" value="6238"/>
Index: applications/editors/josm/plugins/pointInfo/src/org/openstreetmap/josm/plugins/pointinfo/ruianModule.java
===================================================================
--- applications/editors/josm/plugins/pointInfo/src/org/openstreetmap/josm/plugins/pointinfo/ruianModule.java	(revision 30334)
+++ applications/editors/josm/plugins/pointInfo/src/org/openstreetmap/josm/plugins/pointinfo/ruianModule.java	(revision 30367)
@@ -25,17 +25,24 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.coor.LatLon;
+import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.Tag;
+import org.openstreetmap.josm.data.osm.TagCollection;
+import org.openstreetmap.josm.gui.Notification;
 import org.openstreetmap.josm.tools.Utils;
-import org.openstreetmap.josm.gui.Notification;
-// import org.openstreetmap.josm.actions.PasteTagsAction;
+
 import org.openstreetmap.josm.command.AddCommand;
 import org.openstreetmap.josm.command.Command;
 import org.openstreetmap.josm.command.SequenceCommand;
-import org.openstreetmap.josm.data.osm.Node;
-
-import org.openstreetmap.josm.data.osm.Tag;
-import org.openstreetmap.josm.data.osm.TagCollection;
-
-import org.json.JSONObject;
-import org.json.JSONArray;
+
+import java.io.InputStream;
+import java.io.ByteArrayInputStream;
+
+import javax.json.Json;
+import javax.json.JsonException;
+import javax.json.JsonArray;
+import javax.json.JsonObject;
+import javax.json.JsonReader;
+import javax.json.JsonValue;
+
 
 import java.util.*;
@@ -279,40 +286,53 @@
       init();
 
-
-    try {
-      JSONObject obj = new JSONObject(jsonStr);
+      JsonReader jsonReader = Json.createReader(new ByteArrayInputStream(jsonStr.getBytes()));
+      JsonObject obj = jsonReader.readObject();
+      jsonReader.close();
 
       try {
-        m_coor_lat = obj.getJSONObject("coordinates").getDouble("lat");
+        JsonObject coorObjekt = obj.getJsonObject("coordinates");
+
+        try {
+          m_coor_lat = Double.parseDouble(coorObjekt.getString("lat"));
+        } catch (Exception e) {
+          System.out.println("coordinates.lat: " + e.getMessage());
+        }
+
+        try {
+          m_coor_lon = Double.parseDouble(coorObjekt.getString("lon"));
+        } catch (Exception e) {
+          System.out.println("coordinates.lon: " + e.getMessage());
+        }
+
+        try {
+          m_source = obj.getString("source");
+        } catch (Exception e) {
+          System.out.println("source: " + e.getMessage());
+        }
+
       } catch (Exception e) {
-      }
-
-      try {
-        m_coor_lon = obj.getJSONObject("coordinates").getDouble("lon");
-      } catch (Exception e) {
-      }
-
-      try {
-        m_source = obj.getString("source");
-      } catch (Exception e) {
+        System.out.println("coordinates: " + e.getMessage());
       }
 
 // =========================================================================
       try {
-        JSONObject stavebniObjekt = obj.getJSONObject("stavebni_objekt");
-
-        try {
-          m_objekt_ruian_id = stavebniObjekt.getLong("ruian_id");
-        } catch (Exception e) {
-        }
-
-        try {
-          m_objekt_podlazi = stavebniObjekt.getInt("pocet_podlazi");
-        } catch (Exception e) {
-        }
-
-        try {
-          m_objekt_byty = stavebniObjekt.getInt("pocet_bytu");
-        } catch (Exception e) {
+        JsonObject stavebniObjekt = obj.getJsonObject("stavebni_objekt");
+
+        try {
+          m_objekt_ruian_id = Long.parseLong(stavebniObjekt.getString("ruian_id"));
+        } catch (Exception e) {
+          System.out.println("stavebni_objekt.ruian_id: " + e.getMessage());
+        }
+
+        try {
+          m_objekt_podlazi = Integer.parseInt(stavebniObjekt.getString("pocet_podlazi"));
+        } catch (Exception e) {
+          System.out.println("stavebni_objekt.pocet_podlazi: " + e.getMessage());
+        }
+
+        try {
+          m_objekt_byty = Integer.parseInt(stavebniObjekt.getString("pocet_bytu"));
+        } catch (Exception e) {
+          System.out.println("stavebni_objekt.pocet_bytu: " + e.getMessage());
         }
 
@@ -320,4 +340,5 @@
           m_objekt_zpusob_vyuziti = stavebniObjekt.getString("zpusob_vyuziti");
         } catch (Exception e) {
+          System.out.println("stavebni_objekt.zpusob_vyuziti: " + e.getMessage());
         }
 
@@ -325,4 +346,5 @@
           m_objekt_zpusob_vyuziti_kod = stavebniObjekt.getString("zpusob_vyuziti_kod");
         } catch (Exception e) {
+          System.out.println("stavebni_objekt.m_objekt_zpusob_vyuziti_kod: " + e.getMessage());
         }
 
@@ -330,4 +352,5 @@
           m_objekt_zpusob_vyuziti_key = stavebniObjekt.getString("zpusob_vyuziti_key");
         } catch (Exception e) {
+          System.out.println("stavebni_objekt.zpusob_vyuziti_key: " + e.getMessage());
         }
 
@@ -335,4 +358,5 @@
           m_objekt_zpusob_vyuziti_val = stavebniObjekt.getString("zpusob_vyuziti_val");
         } catch (Exception e) {
+          System.out.println("stavebni_objekt.m_objekt_zpusob_vyuziti_val: " + e.getMessage());
         }
 
@@ -340,4 +364,5 @@
           m_objekt_plati_od = stavebniObjekt.getString("plati_od");
         } catch (Exception e) {
+          System.out.println("stavebni_objekt.plati_od: " + e.getMessage());
         }
 
@@ -345,34 +370,40 @@
           m_objekt_dokonceni = stavebniObjekt.getString("dokonceni");
         } catch (Exception e) {
-        }
+          System.out.println("stavebni_objekt.dokonceni: " + e.getMessage());
+        }
+
       } catch (Exception e) {
+        System.out.println("stavebni_objekt: " + e.getMessage());
       }
 
 // =========================================================================
       try {
-        JSONArray arr = obj.getJSONArray("adresni_mista");
-
-        for(int i = 0; i < arr.length(); i++)
+        JsonArray arr = obj.getJsonArray("adresni_mista");
+
+        for(int i = 0; i < arr.size(); i++)
         {
-          JSONObject adresniMisto = arr.getJSONObject(i);
+          JsonObject adresniMisto = arr.getJsonObject(i);
           addrPlaces am = new addrPlaces();
 
           try {
-            am.setRuianID(adresniMisto.getLong("ruian_id"));
-          } catch (Exception e) {
-          }
-
-          try {
-            JSONArray node = adresniMisto.getJSONArray("pozice");
+            am.setRuianID(Long.parseLong(adresniMisto.getString("ruian_id")));
+          } catch (Exception e) {
+            System.out.println("adresni_mista.ruian_id: " + e.getMessage());
+          }
+
+          try {
+            JsonArray node = adresniMisto.getJsonArray("pozice");
             am.setPosition(new LatLon(
-                LatLon.roundToOsmPrecisionStrict(node.getDouble(1)),
-                LatLon.roundToOsmPrecisionStrict(node.getDouble(0)))
-              );
-          } catch (Exception e) {
-          }
-
-          try {
-            am.setBudovaID(adresniMisto.getLong("budova_kod"));
-          } catch (Exception e) {
+              LatLon.roundToOsmPrecisionStrict(node.getJsonNumber(1).doubleValue()),
+              LatLon.roundToOsmPrecisionStrict(node.getJsonNumber(0).doubleValue()))
+            );
+          } catch (Exception e) {
+            System.out.println("adresni_mista.pozice: " + e.getMessage());
+          }
+
+          try {
+            am.setBudovaID(Long.parseLong(adresniMisto.getString("budova_kod")));
+          } catch (Exception e) {
+            System.out.println("adresni_mista.budova_kod: " + e.getMessage());
           }
 
@@ -380,4 +411,5 @@
             am.setCisloTyp(adresniMisto.getString("cislo_typ"));
           } catch (Exception e) {
+            System.out.println("adresni_mista.cislo_typ: " + e.getMessage());
           }
 
@@ -385,4 +417,5 @@
             am.setCisloDomovni(adresniMisto.getString("cislo_domovni"));
           } catch (Exception e) {
+            System.out.println("adresni_mista.cislo_domovni: " + e.getMessage());
           }
 
@@ -390,4 +423,5 @@
             am.setCisloOrientacni(adresniMisto.getString("cislo_orientacni"));
           } catch (Exception e) {
+            System.out.println("adresni_mista.cislo_orientacni: " + e.getMessage());
           }
 
@@ -395,4 +429,5 @@
             am.setUlice(adresniMisto.getString("ulice"));
           } catch (Exception e) {
+            System.out.println("adresni_mista.ulice: " + e.getMessage());
           }
 
@@ -400,4 +435,5 @@
             am.setCastObce(adresniMisto.getString("cast_obce"));
           } catch (Exception e) {
+            System.out.println("adresni_mista.m_cast_obce: " + e.getMessage());
           }
 
@@ -405,4 +441,5 @@
             am.setMestskaCast(adresniMisto.getString("mestska_cast"));
           } catch (Exception e) {
+            System.out.println("adresni_mista.mestska_cast: " + e.getMessage());
           }
 
@@ -410,4 +447,5 @@
             am.setObec(adresniMisto.getString("obec"));
           } catch (Exception e) {
+            System.out.println("adresni_mista.obec: " + e.getMessage());
           }
 
@@ -415,4 +453,5 @@
             am.setOkres(adresniMisto.getString("okres"));
           } catch (Exception e) {
+            System.out.println("adresni_mista.okres: " + e.getMessage());
           }
 
@@ -420,4 +459,5 @@
             am.setKraj(adresniMisto.getString("kraj"));
           } catch (Exception e) {
+            System.out.println("adresni_mista.kraj: " + e.getMessage());
           }
 
@@ -425,4 +465,5 @@
             am.setPsc(adresniMisto.getString("psc"));
           } catch (Exception e) {
+            System.out.println("adresni_mista.psc: " + e.getMessage());
           }
 
@@ -430,18 +471,21 @@
         }
       } catch (Exception e) {
+        System.out.println("adresni_mista: " + e.getMessage());
       }
 
 // =========================================================================
       try {
-        JSONObject parcela = obj.getJSONObject("parcela");
-
-        try {
-          m_parcela_ruian_id = parcela.getLong("ruian_id");
-        } catch (Exception e) {
-        }
-;
+        JsonObject parcela = obj.getJsonObject("parcela");
+
+        try {
+          m_parcela_ruian_id = Long.parseLong(parcela.getString("ruian_id"));
+        } catch (Exception e) {
+          System.out.println("parcela.ruian_id: " + e.getMessage());
+        }
+
         try {
           m_parcela_druh_pozemku = parcela.getString("druh_pozemku");
         } catch (Exception e) {
+          System.out.println("parcela.druh_pozemku: " + e.getMessage());
         }
 
@@ -449,4 +493,5 @@
           m_parcela_zpusob_vyuziti = parcela.getString("zpusob_vyuziti");
         } catch (Exception e) {
+          System.out.println("parcela.zpusob_vyuziti: " + e.getMessage());
         }
 
@@ -454,16 +499,19 @@
           m_parcela_plati_od = parcela.getString("plati_od");
         } catch (Exception e) {
+          System.out.println("parcela.plati_od: " + e.getMessage());
         }
 
       } catch (Exception e) {
+        System.out.println("parcela: " + e.getMessage());
       }
 
 // =========================================================================
       try {
-        JSONObject ulice = obj.getJSONObject("ulice");
-
-        try {
-          m_ulice_ruian_id = ulice.getLong("ruian_id");
-        } catch (Exception e) {
+        JsonObject ulice = obj.getJsonObject("ulice");
+
+        try {
+          m_ulice_ruian_id = Long.parseLong(ulice.getString("ruian_id"));
+        } catch (Exception e) {
+          System.out.println("ulice.ruian_id: " + e.getMessage());
         }
 
@@ -471,16 +519,19 @@
           m_ulice_jmeno = ulice.getString("jmeno");
         } catch (Exception e) {
+          System.out.println("ulice.jmeno: " + e.getMessage());
         }
 
       } catch (Exception e) {
+        System.out.println("ulice: " + e.getMessage());
       }
 
 // =========================================================================
       try {
-        JSONObject katastr = obj.getJSONObject("katastr");
-
-        try {
-          m_katastr_ruian_id = katastr.getLong("ruian_id");
-        } catch (Exception e) {
+        JsonObject katastr = obj.getJsonObject("katastr");
+
+        try {
+          m_katastr_ruian_id = Long.parseLong(katastr.getString("ruian_id"));
+        } catch (Exception e) {
+          System.out.println("katastr.ruian_id: " + e.getMessage());
         }
 
@@ -488,4 +539,5 @@
           m_katastr_nazev = katastr.getString("nazev");
         } catch (Exception e) {
+          System.out.println("katastr.nazev: " + e.getMessage());
         }
 
@@ -493,4 +545,5 @@
           m_katastr_obec = katastr.getString("obec");
         } catch (Exception e) {
+          System.out.println("katastr.okres: " + e.getMessage());
         }
 
@@ -498,4 +551,5 @@
           m_katastr_okres = katastr.getString("okres");
         } catch (Exception e) {
+          System.out.println("katastr.okres: " + e.getMessage());
         }
 
@@ -503,11 +557,10 @@
           m_katastr_kraj = katastr.getString("kraj");
         } catch (Exception e) {
+          System.out.println("katastr.kraj: " + e.getMessage());
         }
 
       } catch (Exception e) {
-      }
-    } catch (Exception e) {
-    }
-
+        System.out.println("katastr: " + e.getMessage());
+      }
     }
 
