/* Funkce, která zjistí, jestli je daný údaj definovaný či nikoliv. */
function datoveTypy_jeUdajDefinovan(udaj)
{
    if (udaj == "" || udaj == "undefined" || udaj == null)
    {
        return false;
    }
    else
    {
        return true;
    }
}

/* Funkce, která dostane jako parametr hodnotu a pole a vratí logickou hodnotu,
 * jestli se daná hodnota ve poli nachází. */
function datoveTypy_jeVPoli(hodnota, pole, rezimStriktne)
{
    var index = ''; 
    var striktne = !!rezimStriktne;
 
    if (striktne)
    {
        for (index in pole)
        {
            if (pole[index] === hodnota)
            {
                return true;
            }
        }
    } 
    else
    {
        for (index in pole)
        {
            if (pole[index] == hodnota)
            {
                return true;
            }
        }
    }
 
    return false;
}

/* Funkce, která zjistí, jestli hodnota, kterou dostane jako parametr 
 * reprezentuje kladné celé číslo. */
function datoveTypy_jeCeleCislo(hodnota, pouzeKladne)
{
    // Povolené znaky, které může řetězec obsahovat.
    var povoleneZnaky = "-0123456789";
    
    // Sem načítáme jednotlivé znaky.
    var znak;
 
    /* Projdeme všechny znaky řetězce až do konce, nebo dokud nenarazíme na 
     * chybu. */
    //for (i = 0; i < hodnota.length && jeCislo == true; i++)
    for (i = 0; i < hodnota.length; i++)
    { 
        // Načteme jeden znak.
        znak = hodnota.charAt(i); 
        
        // Otestujeme, jeslti patří do povelených znaků.
        if (povoleneZnaky.indexOf(znak) == -1) 
        {
            // Pokud ne, shodíme praporek.
            return false;
        }
    }
    
    if (pouzeKladne && eval(hodnota) <= 0)
    {
        return false;    
    }
    else
    {
        return true;
    }
}
