<?xml version="1.0" encoding="UTF-8"?>
<Module>
<ModulePrefs title="Kalkulátor silni&#269;ních vzdáleností"
  height="160"
  width="320"
  author="Marek Prokop"
  author_email="marek@sovavsiti.cz"
  author_affiliation="Prokop software"
  screenshot="http://lh4.google.com/marek.prokop/R7BmNVCmGjI/AAAAAAAAAs4/dHV3jbozSu0/distance-calculator.png"
  thumbnail="http://lh4.google.com/marek.prokop/R7BmNVCmGkI/AAAAAAAAAtA/sZxK3XSHKi4/distance-calculator-thumb.png"
  description='Zjistí silni&#269;ní vzdálenost a pravd&#283;podobný &#269;as jízdy autem mezi dv&#283;ma místy. Místem m&#367;že být bu&#271; obec (nap&#345;. Praha), nebo p&#345;esná adresa (nap&#345;. Laubova 8, Praha). Názvy obcí i ulic je t&#345;eba zadávat p&#345;esn&#283; (nap&#345;. "Benátky nad Jizerou", ne "Benátky nj"; "Palackého t&#345;ída, Brno" ne "Palackého, Brno") a za celosv&#283;tov&#283; nejednozna&#269;nými názvy je t&#345;eba zadávat i stát (nap&#345;. Brno, &#268;eská Republika). Výchozí místo si lze uložit jako p&#345;edvolbu.'>
  <Locale lang="cs" country="cz"/>
  <Require feature="minimessage"/>
</ModulePrefs>
<UserPref name="defFrom" display_name="Start" />
<Content type="html" ><![CDATA[

<script src="http://maps.google.com/maps?file=api&amp;v=2.x" type="text/javascript"></script>

<style type="text/css">
body, input {font-size:90%}
p, form, div#output {margin: 0.5em 0;}
#fromAddress, #toAddress {width: 98%;}
</style>

<form action="#" onsubmit="setDirections(this.from.value, this.to.value); return false">
<p>
<label for="fromAddress">Start:</label><br />
<input type="text" id="fromAddress" name="from" value="__UP_defFrom__" /><br />
</p>
<p>
<label for="toAddress">Cíl:</label><br />
<input type="text" id="toAddress" name="to" /><br />
</p>
<p>
<input name="submit" type="submit" />
</p>
</form>
<div id="output"></div>

<script type="text/javascript">

var msg = new _IG_MiniMessage(__MODULE_ID__);

var gdir;
var fromAddress;
var toAddress;

function initialize() {
  if (GBrowserIsCompatible()) {
    gdir = new GDirections();
    GEvent.addListener(gdir, "load", onGDirectionsLoad);
    GEvent.addListener(gdir, "error", handleErrors);
  }
}

function setDirections(fromAddress, toAddress) {
 gdir.load("from: " + fromAddress + " to: " + toAddress, { "locale": "cs" });
}

function handleErrors(){
  if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
    msg.createDismissibleMessage("Jedna z adres nebyla nalezena, nebo není zadána jednozna&#269;n&#283;.\n Kód chyby: " + gdir.getStatus().code);
  else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
    msg.createDismissibleMessage("Z neznámých d&#367;vod&#367; se nepoda&#345;ilo nalézt cestu.\n Kód chyby: " + gdir.getStatus().code);
  else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
    msg.createDismissibleMessage("Adresa nebyla zadána.\n Kód chyby: " + gdir.getStatus().code);
  else if (gdir.getStatus().code == G_GEO_BAD_KEY)
    msg.createDismissibleMessage("Chybný API klí&#269;.\n Kód chyby: " + gdir.getStatus().code);
  else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
    msg.createDismissibleMessage("Požadavek se nepoda&#345;ilo zpracovat.\n Kód chyby: " + gdir.getStatus().code);
  else msg.createDismissibleMessage("Došlo k neznámé chyb&#283;.");
}

function utf8_encode(string) {
  string = string.replace(/\r\n/g,"\n");
  var utftext = "";

  for (var n = 0; n < string.length; n++) {
    var c = string.charCodeAt(n);
    if (c < 128) {
      utftext += String.fromCharCode(c);
    }
    else if((c > 127) && (c < 2048)) {
      utftext += String.fromCharCode((c >> 6) | 192);
      utftext += String.fromCharCode((c & 63) | 128);
    }
    else {
      utftext += String.fromCharCode((c >> 12) | 224);
      utftext += String.fromCharCode(((c >> 6) & 63) | 128);
      utftext += String.fromCharCode((c & 63) | 128);
    }
  }
  return utftext;
}

function onGDirectionsLoad(){
  var fromAddress = gdir.getGeocode(0).address;
  var toAddress = gdir.getGeocode(1).address;
  var mapUrl = "http://maps.google.com/?q=from" + escape(utf8_encode(": " + fromAddress + " to: " + toAddress));
  var output = "";
  output = output + "<b>" + gdir.getDistance().html + " (" + gdir.getDuration().html + ")</b> - ";
  output = output + '<a target="_blank" title="Ukaž trasu na Mapách Google" href="' + mapUrl + '>';
  output = output + "Trasa</a>";
  document.getElementById("output").innerHTML = output;
  document.getElementById("fromAddress").value = fromAddress;
  document.getElementById("toAddress").value = toAddress;
}

_IG_RegisterOnloadHandler(initialize());

</script>
]]>

</Content>
</Module>

