//tento subor obsahuje funkcie, ktore potrebuje index.php pri spracovani v ramci AJAXu
//tato funkcia zoberie data formulara



//toto bola experimentalna funkcia planovana na prihlasovanie
//nakoniec som sa rozhodol pouzit ajax len na mieste, kde nacitavanie trva dlho
//teda loading chcem zobrazovat len pri otvarani clankov

function zober_data_formulara(id_formulara){
var str="";
if(id_formulara=="login"){
str+="uzivatel="+document.getElementById("uzivatel").value+"&heslo="+document.getElementById("heslo").value;
}
if(id_formulara=="vyhladavac"){
str+="hladane="+document.getElementById("hladane").value;
}
return str;
}



//tato funkcia vypne autocomplete akoze taky ofajc maly :)
function autocomplete_off(){
	document.getElementById("uzivatel").name=Math.random();
	document.getElementById("heslo").name=Math.random();
	document.getElementById("vyhladavac").name=Math.random();
}

//tato funkcia len skontroluje policka formulara, ci obsahuju povolene znaky
function skontroluj_formular(meno_formulara){
var vzor=/[^A-Za-z0-9_.-]/;
var co="";
var err=0;

if(meno_formulara=="login"){
if (document.getElementById("uzivatel").value.search(vzor)>-1) {co+=" Meno užívateľa, "; err=1;}
if (document.getElementById("heslo").value.search(vzor)>-1) {co+=" Heslo užívateľa, "; err=1;}

if(err==1) co=("Prosím zadajte "+co+" len z písmen, číslic, pomlčky, podtržníka a bodky!\n");

if((document.getElementById("uzivatel").value).length<4){co+="Zadajte prosím Užívateľa pri prihlásení viac ako 3 písmená.\n"; err=1;}
if((document.getElementById("heslo").value).length<4){co+="Zadajte prosím Heslo užívateľa pri prihlásení viac ako 3 písmená.\n"; err=1;}
}
if(err==1){
alert(co);
document.getElementById("uzivatel").value="";
document.getElementById("heslo").value="";
return false;
}else{
return true;
}

//na tomto mieste skontrolujem formular vyhladavania
//ak som zadal bludy, stopnem to javascriptom
//samozrejme kontrola prebieha aj na serveri, ak je javascript vypnuty
var co="";
if(meno_formulara=="hladaj"){
if (document.getElementById("hladane").value.search(vzor)>-1) {co+=" Znaky formulára pre vyhladávanie, "; err=1;}


if(err==1) co=("Prosím zadajte "+co+" len z písmen, číslic, pomlčky, podtržníka a bodky!\n");

if((document.getElementById("hladane").value).length<4){co+="Zadajte prosím do formulára pre vyhladávanie viac ako 3 písmená.\n"; err=1;}
}
if(err==1){
alert(co);
document.getElementById("hladane").value="";
return false;
}else{
return true;
}

}


//tato funkcia skotroluje formular pre vyhladavanie

function skontroluj_formular2(meno_formulara){
//v tomto pripade kontrolujem len, ci som neodklikol prazdny vyhladavaci formular
//ak je vypnuty javascript, kontrola prebehne aj na serveri
var co="";
var err=0;
//na tomto mieste skontrolujem formular vyhladavania
//ak som zadal bludy, stopnem to javascriptom
//samozrejme kontrola prebieha aj na serveri, ak je javascript vypnuty
if(meno_formulara=="hladaj"){
if((document.getElementById("hladane").value).length<4){co+="Zadajte prosím do formulára pre vyhladávanie viac ako 3 písmená.\n"; err=1;}
}
if(err==1){
alert(co);
document.getElementById("hladane").value="";
return false;
}else{
return true;
}

}



//tato funkcia len vypise zadany_stav do zvoleneho kontajnera
function vypisStav (zadany_stav,kontajner){
obj=document.getElementById(kontajner);
obj.innerHTML = "<div style=\"text-align:center;font-size:16px;\" class=\"nacitavam\"><img src=\"pics/loading.gif\" /> <span class=\"loading\">" + zadany_stav + "</span><br/> <img src=\"pics/bar.gif\" /> </div>";
}

//tato funkcia zobere poslane data posle ich na spracovanie skriptu na serveri a nasledne vrati vysledok do kontajnera
/*
stranka_servera - na tu sa to odosle
kontajner - do toho kontajnera sa vratia udaje zo servera
metoda - zvolim si metodu, akou posielam, najcastejsie GET, POST
udaje_z_dormulara - to su udaje, ktore posielam serveru danou metodou
*/
function spracuj_ajax(stranka_servera,kontajner,metoda,udaje_z_formulara){
var xmlhttp = false;
//skontrolujme, ci pouzivame IE

if (window.ActiveXObject){
try {
	//ak je javascript verzia vacsia ako 5.
	xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
	//ak nie je vacsia, tak pouzi active x object.
	try {
		//ak pouzivame IE bereme jeho objekt.
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	} catch (E) {
		//inak to nebol IE.
		xmlhttp = false;
	}
}
}

//Ak pouzivam prehliadac, ktory nie je Internet Explorer (IE), vytvorim instanciu objektu.
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
		//povodne len xmlhttp = new XMLHttpRequest();
		//teraz:
		try {
			xmlhttp = new XMLHttpRequest();
		} catch (e) {
			xmlhttp=false;
		}

	}


	if (!xmlhttp && window.createRequest) {
		try {
			xmlhttp = window.createRequest();
		} catch (e) {
			xmlhttp=false;
		}
	}



//mam zisteny prehliadac a vytvoreny objekt, teraz poslem data serveru a vratim odpoved
document.getElementById(kontajner).innerHTML = "";
vypisStav("Načítavam...",kontajner);
var obj = document.getElementById(kontajner);
xmlhttp.open(metoda,stranka_servera,true);//otvorim asynchronne spojenie so serverom
//poslem hlavicku s mojou znakovou sadou
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=windows-1250");
//dalej kontrolujem, ako mi server odpoveda
xmlhttp.onreadystatechange = function() {
/*
readyState moze byt toto: 0: uninitialized, 1: loading,
2: loaded, 3: interactive, 4: complete
status moze byt toto:
200 OK, 304 Not Modified, 401 Unauthorized, 403 Forbidden, 404 Not Found, 500 Internal server error,
503 Service unavaiable
*/
try{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
//ak je vsetko v poriadku, vratim odpoved servera do daneho kontajnera
obj.innerHTML = xmlhttp.responseText;
}else{
//ak sa stalo nieco ine nie readyState:4 a status:200 tak rob toto: zisti co sa stalo blizsie a vypis
   if(xmlhttp.readyState == 3) vypisStav("Stav pripravenosti objektu je: Interactive(Interaktívny)",kontajner);
   if(xmlhttp.readyState == 2) vypisStav("Stav pripravenosti objektu je: Loaded / Loading (Načítaný / Načítavam)",kontajner);
   if(xmlhttp.readyState == 1) vypisStav("Stav pripravenosti objektu je: Loading(Načítavam...)",kontajner);
   if(xmlhttp.readyState == 0) vypisStav("Stav pripravenosti objektu je: Uninitialized(Neinicializovaný)",kontajner);
   if(xmlhttp.status == 304) vypisStav("Stav servera je: Not modified(Nezmenený)",kontajner);
   if(xmlhttp.status == 401) vypisStav("Stav servera je: Unauthorized(Nemáte právo na prístup)",kontajner);
   if(xmlhttp.status == 403) vypisStav("Stav servera je: Forbidden(Zakázaný prístup)",kontajner);
   if(xmlhttp.status == 404) vypisStav("Stav servera je: Not found(Žiadaný dokument nenájdený)",kontajner);
   if(xmlhttp.status == 500) vypisStav("Stav servera je: Internal server error(Vnútorná chyba servera)",kontajner);
   if(xmlhttp.status == 503) vypisStav("Stav servera je: Service not available(Služba nedostupná)",kontajner);
}
}catch(e){}
}
xmlhttp.send(udaje_z_formulara);//odoslem serveru na jeho skript stranka_servera data z formulara
}

/*
//toto bola len experimentalna funkcia na prihlasovanie
//nakoniec som sa rozhodol, ze takto prihlasovat nebudem
//AJAX teda chcem pouzit len na mieste, kde nacitavanie trva dlho
//teda ukazkovo AJAX pouzijem na kliknutie v menu Citaj zadane clanky

function klikol_prihlas(){
if(skontroluj_formular("login")){
spracuj_ajax("j_login.php","vnutro_login","POST",zober_data_formulara("login"));
}
}

*/

//toto je len funkcia na ukazanie ako spracovat clanky, co najjednoduchsie
function zobraz_clanky(){
	spracuj_ajax("index.php?action=read_articles","telo","GET","action=read_articles");
}

//funkcia preloading v menu po kliknutí na zadaj novy clanok
function zadaj_novy_clanok(){
	spracuj_ajax("index.php?action=add_article","telo","GET","action=add_article");
}

//funkcia preloading v menu po kliknutí na zmaz clanok
function zmaz_clanok(){
	spracuj_ajax("index.php?action=delete_article","telo","GET","action=delete_article");
}

//funkcia preloading v menu po kliknutí na uprav clanok
function uprav_clanok(){
	spracuj_ajax("index.php?action=edit_article","telo","GET","action=edit_article");
}

//funkcia preloading v menu po kliknutí na pridat noveho uzivatela
function pridaj_uzivatela(){
	spracuj_ajax("index.php?action=add_user","telo","GET","action=add_user");
}

//funkcia preloading v menu po kliknutí na zmazat uzivatela
function zmaz_uzivatela(){
	spracuj_ajax("index.php?action=delete_user","telo","GET","action=delete_user");
}

//funkcia preloading v menu po kliknutí na zmenit heslo admina
function zmen_heslo_admina(){
	spracuj_ajax("index.php?action=change_admin_passw","telo","GET","action=change_admin_passw");
}

//funkcia preloading v menu po kliknutí na odhlas ma
function odhlas_ma(){
	spracuj_ajax("index.php?command=logout","telo","GET","command=logout");
}

//funkcia preloading po kliknutí na otvor clanok
function zobraz_clanok_idc(id){
	spracuj_ajax("index.php?article="+id,"telo","GET","article="+id);
}

//tato funkcia skontroluje prihlasovacie udaje a nasledne zobrazi loading...
//potom prihlasi uzivatela alebo odmietne
function prihlas_ma(){
	if(skontroluj_formular('login')){
	spracuj_ajax("index.php","telo","POST",zober_data_formulara("login"));
    }else{
	return false
    }
}


//tato funckia zobrazi loading a potom vyhlada udaje na serveri
function najdi_to(){
	if(skontroluj_formular2('hladaj')){
	spracuj_ajax("index.php?action=hladajto","telo","POST",zober_data_formulara("vyhladavac"));
    }else{
	return false
    }
}
