Výuka skriptovacího jazyka JavaScript


Co potřebuje ke tvorbě JS
První skript
Problém-uvozovky
Proměnné
Alert
Prompt
Operátory
Podmíněné příkazy
Switch
Cykly
While a do while
Continue a break
Jeden skript na více stránkách



Objekty v JavaScriptu
Hierarchie objektů
Využívání objektů
Hrátky s datumem
Počeštění datumu
Události v JS
Událost onMouseOver
Událost onMouseOut
Událost onClick
Událost onFocus
Událost onBlur
Událost onChange
Událost onSelect
Událost onLoad
Událost onUnLoad
Událost onError
Událost onAbort
Událost onReset
Událost onSubmit
Událost onKeyPress
Událost onDblClick
Nenápadný odkaz
Vpřed a Zpět



Co jsou to pole
Zjištění a změna velikosti pole
Jednoduchý kalendář a zabezpečení
Funkce
Funkce s parametrem
Grafika v JavaScriptu
Okna v Javascriptu
Přehled vlastností objektu window
Formuláře v JavaScriptu
Kniha hostů v JavaScriptu



Matematika v JavaScriptu

Pole


Co jsou to pole?
Když jsme mluvili o proměnných, zjistili jsme, že v proměnné může být najednou uložena pouze jedna hodnota. Při uložení další dojde ke ztrátě původní. Tato skutečnost je velice limitující, a proto v JS existuje datová struktura, které se říká array(pole). Pole si lze představit jako tabulku, kde jsou hodnoty zapsány v pořadí jedna vedle druhé. Pro práci s poli je v JS samostatný objekt Array. Je ho stejně jako objekt Date nejprve nutné vytvořit takto:
pole= new Array()
Než s poli začneme pořádně pracovat je zde tabulka metod a vlastností objektu Array:

Typ Název Popis
metoda concat() Přidá prvky jednoho pole do pole druhého= spojování polí.
metoda join(oddělovač) Spojí všechny prvky do jediného řetěcze, budou odděleny pomocí oddělovače v závorce.
metoda reverse() Otočí pořadí prvků v poli, prvek na 0 bude na poslední pozici a obráceně.
metoda sort() Seřadí prvky podle abecedy.
metoda toString Převede prvky pole na řetězec.
vlastnost length Vrací počet prvků v poli.

Co je to prvek pole?
Prvek je vlastně část pole v níž je uložena určitá informace. Počet prvků můžeme určit již při deklaraci pole:
pole_o_pěti_prvcích= new Array(5)
Nyní si určíme ,co bude který prvek obsahovat:
var pole= new Array (5)
pole[0]="Jakub"
pole[1]=5
pole[2]="mama"
pole[3]="i"
pole[4]=15
Obsah prvků pole můžeme určit již při jeho deklaraci:
pole= new Array ("mama",4,"tata")
Možná se divíte jak je možné, že pole může obsahovat písmena i čísla zároveň, to je dáno jednoduchostí JavaScriptu např. v Javě by to bylo nemyslitelné. Velikost pole je nastavena podle počtu prvků, velice důležité je, že číslování polí začíná od nuly.
Zjištění a změna velikosti pole
K tomu budeme potřebovat vlastnost length, která vypíše počet prvků v poli a cyklus for:
<script language="JavaScript">
var pole= new Array(0,2,4,6,8)
var i
document.write("Všechna sudá čísla do desíti:<br>")
for (i=0 ;i document.write(pole[i]+"<br>")
}
</script>
Tento příklad si velice dobře prohlédněte, protože využívání cyklu for ve spolupráci s poli je velmi časté. Nyní si ukážeme jak jednodušše zvětšit velikost pole:
var pole= new Array(1,2,3,4)
pole[18]=19 //a vida pole má 19 prvků(nezapomeňte na nulu) zbylé se doplní sami

Spojování polí
Spojování polí probíhá pomocí metody concat(), nejlepší asi bude, když si to ukážeme na příkladu:
var pole= new Array(1,2,3)
var pole1= new Array(4,5,6)
var pole2=pole.concat(pole1)//přidání pole1 na konec pole
var i
document.write("Výpis pole:<br>")
for (i=0; i document.write(pole[i]+"<br>")
}
document.write("Výpis pole1:<br>")
for (i=0; i document.write(pole1[i]+"<br>")
}
document.write("Výpis pole2:<br>")
for (i=0; i document.write(pole2[i]+"<br>")
}
Vidíte, že to nebylo moc složité.

Jednoduchý kalendář
Teď se juknem jak by šel kombinací polí a datumu vytvořit skript, který vypsal den v týdnu a nemusel by se použít příkaz switch:
var datum= new Date()
var den=datum.getDay()
var tyden= new Array("Neděle","Pondělí","Úterý","Středa","Čtvrtek","Pátek","Sobota")
document.write("Dnes je: "+tyden[den])
Kdo si s tímto trochu složitějším skriptem neví rady, nechť stahuje zde.
Na začátku si vytvořím datum což je objekt Date(), poté den což je metoda datum vracející den v týdnu. Nyní si vytvořím pole tyden s prvky dnů v týdnu. Poté vypíši den v týdnu pomocí den, který my zjistí pořadí dne a vypíše adekvátní prvek.

Zabezpečení stránky chytrým způsobem
Způsob je chytrý v tom, že uživatel musí znát URL adresu stránky nebo kód aby se dostal kam chce.
var pismena= new Array("a","b","k","j","t","m","n","l","e")
Aby se uživatel na cílovou stránku tajne.htm musí zadat kód 40368, protože to odpovídá indexu těchto písmen. Ještě si musíme něco říci o metodě substring() objektu String. Tento příkaz dokáže z řetězce určit část, která začíná a končí zadaným indexem.
var text="jakub halva"
vat text1=text.substring(6,10)
Obsahem proměnné text1 bude tedy halva, protože počítáme-li i mezery akorát to vychází. A nyní již kompletní zdroják.
<script language="JavaScript">
var pismena= new Array("a","b","k","j","t","m","n","l","e")
var zadat=prompt("zadej kód:","11111")
var pomocna //pomocná proměnná, kam se ukládají indexy získané z kódu
var heslo //jméno zašifrované stránky
var i //čítač
for (i=0; i pomocna=zadane.substring(i,i+1) //uložit jeden znak
heslo+=pismena[pomocna] /*ke jmenu stránky přidat písmeno, které leží v poli s indexem kodu*/
}
location.href=heslo+".htm" //k výsledku přidat koncovku a přejít na tuto stranu
</script>
Nelekněte se tohoto složitějšího skriptu, časem se vám bude zdát velice jednoduchý. A to je o polích vše nyní nás čekají...

Funkce

Co je to funkce? Funkce je celý blok příkazů, které se mají vykonat např. při určité události. Jak nám funkce může zlepšit život si ukážeme na následujícím příkladu. Nejprve bez použití funkce:
<script language="JavaScript">
var datum= new Date()
var hodina= datum.getHours()
var den= datum.getDay()
</script>
<input type="button" onClick="document.write('Dnes je: '+den+' hodina'+hodina)">

Nyní to samé s použitím funkce:
<script language="JavaScript">
function datum() {
var datum= new Date()
var hodina= datum.getHours()
var den= datum.getDay()
document.write("Dnes je: "+den+" hodina"+hodina)
}
</script>
<input type="button" onClick="datum()">

Nezdá se vám, že by funkce měli nějakou výhodu? Tak si představte, že byste tento stejný datum potřebovali vypsat třeba třikrát v jednom dokumentu. Bez použití funkcí byste vždy museli psát ten sáhodlouhý text, kdyžto s funkcemi stačí napsat např. onClick="názevfunkce" a je to.

A kam se ty funkce píší?
Pokud chcete aby jste funkci mohli používat kdekoliv v dokumentu musíte je napsat do hlavičky dokumentu mezi tagy <head> a </head>.

Globální a lokální proměnné
Pokud vytvoříme funkci a v ní proměnnou je tato proměnná nedosažitelná mimo funkci. Když však vytvoříme proměnnou mimo území funkce na začátku skriptu můžeme ji použít i v funkci i v normálním skriptu.
< script language="JavaScript">
var glob="Globální proměnná"
function vypis() {
var lok="Lokální proměnná"
document.write(lok+"<br>")
document.write(glob)
}
document.write(glob) //zde mimo území funkce nemůžeme vypsat lok
</script>

Funkce s parametry
Nyní si zlepšíme náš příkaz na měnění barvy odkazů z dřívějška.
<script language="JavaScript">
function over() {
document.linkColor="red"
}

function out() {
document.linkColor="teal"
}
</script>

<p> Pokud najedet myší<span onMouseOver="over()" onMouseOut="out()"> sem</span> změní se barva odkazů na červenou, po odjezdu na kovovou.</p>

Vidíte, jak jsme tím zkrátili ten sáhodlouhý zápis z minula. Ale pořád to není dokonalé, pokud bychom chtěli mít více barev museli bychom tvořit novou funkci, ovšem tomu zabrání funkce s argumentem, kdy jsou barvy zadávány až na místě.
<script language="JavaScript">
function over(barva) {
document.linkColor=barva
}
</script>

<p> Pokud najedet myší<span onMouseOver="over('red')" onMouseOut="over('teal')"> sem</span> změní se barva odkazů na červenou, po odjezdu na kovovou.</p>
<p> Pokud najedet myší<span onMouseOver="over('blue)" onMouseOut="over('silver')"> sem</span> změní se barva odkazů na modrou, po odjezdu na stříbrnou.</p>

Ta nesporná výhoda je v tom, že funkci můžete použít kolikrát chcete a vždy stačí jen v parametru změnit barvy. To by zatím k funkcím stačilo a nyní se vrhneme na:

Grafika


Dnes už veškeré internetové prezentace používají grafiku jako svůj základní kámen. Nyní si ukážeme jak pomocí jednoduchých, ale velice efektních skriptů zlepšit celkový dojem z vaší stránky. Standartní je měnění tlačítek po nájezdu myši. K tomu budeme potřebovat opravdu velice jednoduchý skript.
<img src="obr.jpg" border="0" name="obraz"§ onMouseOver="document.obraz.src='obr1.jpg'"§ onMouseOut="document.obraz.src="'obr.jpg'">

Tak a toto je výsledek, nejprve v klidu:


A nyní po nájezdu myši:

Tento typ měnících se tlačítek asi příliš nevyužijete, spíše se používají tlačítka s odkazem na následující stránku. Proto drobně upravíme zdrojový kód a voilá:
<a href="stranka.htm" onMouseOver="document.odkaz.src='obr1.jpg'"§ onMouseOut="document.obr.src='obr.jpg'">
<img src="obr.jpg" name="odkaz" border="0"></a>

A přesto pokud jste si tento skript vyzkoušeli, zjistili jste jeho podstatnou vadu a to, že trvá poměrně dlouho než se načte další obrázek, tomu se dá zabránit vložíme-li do zdrojového kódu stránky mezi tag head:
<script languge="JavaScript">
obrazek=new Image
obrazek.src="obr.jpg"
obrazke1=new Image
obrazek1.src="obr1.jpg"
</script>
Tento nenápadný skript zajistí aby se při nahrání stránky natáhly do paměti všechny potřebné obrázky. Pokud si nevíte rady s vytvářením takovýchto tlačítek mohu vám jen doporučit program ButtonMania, který je volně k stažení na Studně. To by bylo k grafice všechno a nyní:

Okna


Základní objekt window má sice mnoho zajímavých podobjektů, ale věděli jste také, že má i několik vlastností a metod? Nyní si ukážeme jak s nimi pracovat.
Základní je otevření nového okna a to i při reakci na určitou událost:
<form>
<input type="button" value="Otevři" onClick="window.open()">
</form>
Ovšem metoda window.open() nemusí být pouze takto holá:
window.open("uvod.htm","uvod","height=500,width=500,scrollbar=1,location=1,status=1§
,menubar=1,resizable=1,toolbar=1,left=0,top=0")
Teď by asi stálo za vysvětlení co co znamená:
Atribut Popis
height výška okna v pixelech
left vzdálenost levého okraje od kraje obrazovky
location panel s URL adresou
menubar panel nabídek
resiable umožní změnu velikosti okna
scrollbars přidá posuvníky
status stavový řádek
toolbar panel nástrojů
top vzdálenost horního okraje od kraje obrazovky
width šířka okna

Změna zaměření
Jistě jste se již několikrát setkali s nepříjemnou reklamou na cizích stránkách. Pokud chcete aby vaše okno hned po otevření zalezlo pěkně do pozadí není nic lehčího než použít metodu window.focus().
<input type="button" value="Otevři" onClick="window.open('uvod.htm','uvod','width=500,height=300,status=1,toolbar=1,menubar=1§
,location=1');window.focus()">

Vyzkoušejte a poznáte, že v jednoduchosti je síla.
Zavření okna
Všechno jednou končí a tak kdybyste někdy náhodou potřebovali zavřít nějaké okno stačí napsat window.close().
<input type="button" value="Zavři" onClick="window.close()">
Tímto příkazem chudáka okno bezmilosrdně zavřete.
Ovládání
Nyní si ukážeme, jak si pomocí tlačítka vytvoříme prázdné okno a do něj teprve zapíšeme potřebné věci. V následujícím příkladu nejprve vytvořím tlačítko, při jehož stisknutí se otevře nové okno a v něm tlačítko, kterým toto okno zavřeme.
<input type="button" value="Otevři" onClick="otevri()">
<script language="JavaScript">
function otevri() {
var okno1=window.open('','okenko','top=150, left=150')
okno1.document.write("<html><body><form name='form'>§
<input type='button' value='Zavřít'§
onClick='window.close()'></form></body></html>")
}
</script>

Toto je velice jednoduché, když vytváříme nové okno, vytvoříme proměnnou, která ho bude obsahovat. S tímto oknem pak můžeme manipulovat pomocí normálních příkazů JavaScriptu jenom před ně musíme napsat název naší proměnné.
Dynamická okna
Teď se naučíme vytvářet pěkná dynamická okna. Tento příklad se uživatele nejprve zeptá na jeho jméno. Poté se mu zobrazí okno s jeho zadaným jménem a otázka zda je zadané jméno správné.
function zacatek() {
var jmeno=prompt("Jaké je vaše jméno?","Jakub")
var okno1=window.open('','okno','left=150, top=150')
okno1.document.write("<html><body><p align='center'>Vaše jméno§
je "+jmeno+".</p><br><br><span onClick='window.close()'>§
<font size='4'>Zavřít</font></span></body></html>")
}

Nyní už stačí jen napsat do body onLoad="zacatek()" a je hotovo. Toto je velmi strohý skript, samozřejmě si ho můžete vyšperkovat do větších detailů, ale pro příklad stačí.

Stavový řádek
Se stavovým řádkem již jistě umíte pracovat pomocí kódu např.:
Pokud najedete myší <span onMouseOver="status='AHOJ'"> sem </span> pozdravím vás.
Ale možná ještě nevíte o existenci tohoto kódu:
<head>
<script language="JavaScript">
defaultStatus="AHOJKY"
</script>
</head>
<body>
A teď najeďte myší <span onMouseOver="status='AHOJ'"> sem </span> a uvidíte tu změnu.
</body>
Pokud chcete mít ve stavovém řádku nastaveno standartně něco jiného než hotovo(velice rozumné), měli byste použít právě příkaz defaultStauts. Pokud si tento příklad vyzkoušíte, zjistíte, že obyčejbý status přebíjí ten starý a zobrazuje určenou hlášku. Kdybyste k normálnímu odkazu nenapsali status, defaultStatus by byl přebit obyčejnou a nehezkou adresou.

Přehledná tabulka vlastností a metod objektu window
Název Popis
Metody
open( ) Otevře nové HTML okno s parametry zadanými v závorce
close( ) Zavře okno s fokusem(zaměřením)
alert( ) Otevře dialogové okno s tlačítkem OK vhodné pro různá sdělení
confirm( ) Otevře dialogové okno s tlačítky OK a Zrušit, podle odpovědi vrací true nebo false
prompt( ) Otevře dialogové okno pro vkládání údajů uživatelem
focus( ) Přidá oknu zaměření
blur( ) Vezme oknu zaměření
scrollTo( ) Posune obsah okna na určené místo
setInterval( ) Určí dobu v milisekundách mezi každým zavoláním funkce např. setInterval("alert('AHOJ')",10000) každých deset sekund vyvolá okno s nápisem AHOJ
setTimeout( ) Začne odpočítávání po jehož dokončení se provede daná operace např. setTimeout("alert('AHOJ')",5000) provede po 5 vteřinách pouze jednou výpis AHOJ
Vlastnosti
history Objekt obsahující informace o navštívených stránkách
location Objekt obsahující adresu aktuální stránky
document Nejdůležitější objekt, jež obsahuje informace o aktuálním HTML dokumentu
frame Objekt s informacemi o použitých rámech
defaultStatus Zde jsou uloženy informace o defaultním(standartním) stavovém řádku
frames[ ] Pole obsahující seznam rámů použitých v okně
length Udává počet rámů v okně
name Jméno okna
opener Odkaz na okno, z něhož bylo aktivní okno otevřeno
self Odkaz na aktuální okno
status Obsah stavového řádku("přebíjí" defaultStatus)
top Poloha horní hrany okna
left Poloha levé hrany okna
parent Odkaz na nadřazené okno

Formuláře

Co je to formulář v HTML? Formulář je vlastně sloupec políček, zaškrtávátek atd. do nichž může uživatel vkládat údaje, jež jsou dále zpracovávány. V HTML se formulář vkládá mezi tagy <form> a </form>. Samotný prvek formuláře se poté vkládá:
<input type="typ prvku" name="jmeno prvku" value="hodnota prvku">
Typy prvků si za chvíli ukážeme a ostatní může být takřka libovolné.

Formuláře prakticky

Tlačítka
Tlačítka se v HTML do textu vkládají pomocí:
<input type="button" name="název ve zdroj. kódu" value="co uvidí uživatel">
Při následující demonstraci síly tlačítek, necháme uživatele do vedlejšího text. pole napsat svoje jméno a to mu poté napíšem: <form name="form">
<input type="text" name="text1" length="10" value="Napiš svoje jméno">
<input type="button" value="Vypiš!" name="tlac1" onClick="alert('Vaše§ jméno zní: '+document.form.text1.value)">
</form>
Jak jste již jistě pochopili typ text znamená textový řádek. Length je délka tohoto řádku a value označuje co bude v řádku předepsáno. Nejzajímavější ale je ona událost onClick, každý doufám pochopil, že nyní budeme používat hlavně události. Pokud chceme vypsat něco zadané uživatelem musíme k tomu zadat celou "cestu". Sledujte onu logiku:

na začátku by mělo být window-nepovinné
document označuje aktivní HTML dokument
form= název formuláře v němž jsou umístěny prvky
text1= název zadaný atributem name, kdybychom chtěli tlačítko bylo by tu tlac1
value= konečná vlastnost prvku, kterou chceme vypsat, zde může být např. value, type, name, length, atd.

Jde o velice jednoduchý princip, jež budete používat odteď až do konce života.
Další typy tlačítek
Dalšími tlačítky, jež jsou v HTML dostupné jsou: reset- vymaže formulář a submit- odešle formulář serveru.

Editační řádka
K čemu by byl formulář bez možnosti aby do něj zasahoval uživatel? Právě k tomu se používá editační řádka, která se do textu vkládá, jak jste asi pochopili z minulého příkladu pomocí < input type="text">. Narozdíl od tlačítka nám ale přibydou 2 nové vlastnosti:

Jako příklad na použití editační řádky by mohl poslužit příklad minulý, ale my si ukážeme jinou událost:
<form name="form">
<input type="text" length="20" maxlength="15" onFocus="alert('Byl jsem zaměřen')">
</form>
Jak vidíte tato ukázka je spíše demostrace události onFocus než formulářů, alenyní si ukážeme skutečně užitečný skript, jež jistě využijete a to:

Internetový vyhledávač
No, tedy jen vyhledávač na největším portálu Seznam, ale za chvíli až se dostaneme na práci s nabídkami, si ukážeme jak udělat, aby si uživatel mohl vybrat jaký vyhledávač chce použít. A nyní již skript a poté jeho rozbor:

<html>
<head>
<title> Vyhledávač poprvé</title>
<script language="JavaScript">
function Hledej() {
var coHledat=document.form.text1.value
var adresa="http://search.seznam.cz/cgi/§
hledej.cgi?string="+coHledat+"&co=seznam"
location.href=adresa
}
</script>
</head>
<body>
Do editační řádky prosím vepište co chcete na Seznamu najít a stiskněte tlačítko Hledej.<br><br>
<input type="text" name="text1" length="20" maxlength="20">
<input type="button" value="Hledej" onClick="Hledej()">
</form>
</body>
</html>

Pěkný, rychlý a hlavně užitečný a ještě k tomu velice jednoduchý skript, co si víc přát? Pro ty méně chápavé tu mám rozbor:
Nejprve vytvořím funkci Hledej(), jež se aktivuje při kliknutí na tlačítko. Ve finkci vytvořím proměnnou coHledta, jež obsahuje obsah editační řádky s názvem text1. Dále si vytvořím proměnnou adresa do níž vložím potřebnou adresu a na určité místo vložím obsah proměnné coHledat. Poté již jen zadám přesměrování stránky na určenou adresu v proměnné adresa a skript je hotov.

Zaškrtávací políčko
Zaškrtávací políčko se do textu vkládá, tak že do typu zadáme checkbox, a má novou a velice důležitou vlastnost checked, když je její hodnota true je políčko zaškrtnuto. Na nynějším příkladu využijeme vše, co jsme se zatím naučili o formulářích:

<HTML>
<HEAD>
<TITLE>Barvy</TITLE>
<script language="JavaScript">
function Hledej() {
var mod=document.form.mod.checked
var cer=document.form.cer.checked
var zel=document.form.zel.checked
if (mod) {
document.write("<h1 align='center'><font color='blue'>Vaše jméno§
je: "+document.form.text1.value+"</font></h1>")
}
if (cer) {
document.write("<h1 align='center'><font color='red'>Vaše jméno§
je: "+document.form.text1.value+"</font></h1>")
}
if (zel) {
document.write("<h1 align='center'><font color='green'>Vaše jméno§
je: "+document.form.text1.value+"</font></h1>")
}
}
</script>
</head>
<body>
<form name="form">
<input type="text" name="text1" length="20" maxlength="20">
<input type="button" value="Vypiš" onClick="Hledej()"><br><br>
<input type="checkbox" name="mod">Modrá<br>
<input type="checkbox" name="cer">Červená<br>
<input type="checkbox" name="zel">Zelená<br>
</form>
</BODY>
</HTML>

Tento dlouhý, ale primitivní skript není vůbec vychytaný, např. nepočítá s tím, že někdo neoznačí žádnou možnost nebo naopak více možností. Jestli chcete vidět promakaný skript podobný tomuto, koukněte se do sekce bonusové skripty a stáhněte si skript Všehochuť.

Kniha hostů
Abyste mohli vytvořit knihu návštěv potřebujete ještě znát dvě věci. Nejprve jak se vytváří textové pole:
<textarea rows="počet řádků" cols="počet znaků na jednu řádku" name="jméno" wrap="virtual">obsah textového pole</textarea>
Ještě vysvětlivka k wrap, jedná se o zalamování řádků, virtual bude asi nejpoužívanější, protože slovo přesahující řádek pošle na řádek další. Nyní potřebujete znát již jen jednu věc a to odeslání formuláře na váš e-mail:
<form method="post" action="mailto:JakubHalva@seznam.cz§
?Subject=KnihaHostu" enctype="text/plain" name="FormularOdeslan" onSubmit="potvrdit()">


Teď trochu vysvětlivek co co znamená:

Nyní si postupně vytvoříme celou knihu:

<form method="post" action="mailto:JakubHalva@seznam.cz§
?Subject=KnihaHostu" enctype="text/plain" name="FormularOdeslan" onSubmit="potvrdit()">
<b>Zde napište text pozdravu </b><br>
<textarea cols="40" rows="20" name="Text"></textarea><br>
<input type="submit" value="Odešli">
<input type="reset" value="Vymaž">

Takže, už máme textové pole, do nějž je možné vpisovat informace a také tlačítko pro odeslání, po jehož stisknutí se spustí skript potvrdit() a formulář se odešle na moji e-mailovou adresu. Teď je na řadě funkce potvrdit():

<script language="JavaScript">
function potvrdit() {
var okno=window.open("","hlaseni","height=300, width=300")
okno.document.write("<html> <title>Děkuji za příspěvek</title><body>")
okno.document.write("Vaše zpráva ve znění:§
<i>"+ FormularOdeslan.Text.value+ "</i> byl odeslán")
okno.document.write("<br><br><form><input type='button'§
value='Zavři' onClick='self.close()'></form>")
okno.document.write("</body></html>")
}
</script>

No, a je hotovo. Nyní již stačí pouze tyto dva celky spojit dohromady a máte fungující knihu hostů. Tak, teď už si umíte naprogramovat sktučně užitečné a fungující skripty a budeme už pouze dopilovávat.