//------------------
// Kódovací funkce
//------------------
// Zakóduje parametry do výsledné adresy
function EncodeString (Url){
  // Tato proměnná bude obsahovat výslednou adresu
  Str = new String();

  // Forcyklus přes všechny argumenty funkce
  for (var i=1; i<EncodeString.arguments.length; i++){
    // Pokud se zpracovává první parametr,
    // prřidá se do adresy znak '?' oddělující parametrickou
    // část adresy, jinak přidáme znak '&'
    // oddělující jednotlivé parametry
    if (i==1)
      Str = Str + '?';
    else
        Str = Str + '&';

    // Do řetězce se uloží název parametru a jeho hodnota
    // Na tu se ještě předtím volá funkce escape(), která
    // převede "nebezpečné znaky"
    Str = Str + 'Arg' + (i-1) + '=' +
      escape (EncodeString.arguments[i]);
  }

  // Výsledná adresa je adresa cílové stránky, které se
  // budou parametry předávat a vlastních parametrů
  Str = Url + Str;
  return (Str);
}


//---------------------
// Dekódovací funkce
//---------------------
// Převádí URL na pole parametrů
function DecodeString (Url){
  // Vysledné pole parametrů
  Args=new Array();

  // Pomocné pole pro uložení částí URL
  var DecodeUrl;

  var PomUrl, PomArgs, PomArg;

  // Ziskání části adresy s parametry
  Url = Url.toString();
  // Adresa se rozdělí do pole podle znaku '?'
  DecodeUrl = Url.split ('?');
  // Pokud za znakem '?' byl nějaký text
  if (DecodeUrl.length>1 && DecodeUrl[1].length>0){
    // Do proměnné PomUrl se uloží část adresy s parametry
    PomUrl = DecodeUrl[1];
    // Rozdělí se podle znaku '&' na dvojice Parametr=Hodnota
      PomArgs = PomUrl.split ('&');
    for (var i=0; i<PomArgs.length; i++){
      // Pro každý parametr se získá jeho hodnta
      // (řetězec se tentokráte rozdělí podle znaku '=')
        PomArg = PomArgs[i].split('=');
      Args[i] = unescape(PomArg[1]);
    }
  }
  // Vrátí se výsledné pole hodnot
  return (Args);
}


