﻿function PreracunajZnake()
{
	with (document.obrazec) {
		var
			s = TransformAccents(CRLF2LF(besedilo.value)),
			ostalo = najvecje_stevilo_znakov - s.length;

		stevilo_znakov.value = ostalo;

		if (ostalo >= 0) {
			stevilo_znakov.className = "okvirjeno";
			return true;
		} else {
			stevilo_znakov.className = "vaznaNapaka okvirjeno";
			return false;
		}
	}
}


function ResetirajVarnostnoKodo()
{
	with (document.obrazec) {
		varnostna_koda.value = "";

		var
			el = document.getElementById("varnostna_koda_0_slika");

		if (el) {
			el.src = "../slike/varnostna_koda.asp?" + (new Date()).getTime();
		}
	}
}


function AnimirajNapredek()
{
	var
		el = document.getElementById("napredek_slika");

	if (el)
		el.src = napredek_slika[napredek_slika_idx].src;

	napredek_slika_idx = (napredek_slika_idx + 1) % napredek_slika.length;
}


function Skrij(el)
{
	if (el) {
		el.style.display = "none";
		el.style.visibility = "hidden";
	}
}


function Pokazi(el, inline)
{
	if (el) {
		el.style.display = inline ? "inline" : "block";
		el.style.visibility = "visible";
	}
}


function SproziObdelavoBesedila(url, polja_obrazca)
{
	var
		st_polj = polja_obrazca.length;

	// Prvi element obrazca (besedilo za obdelavo) ne sme biti prazen.
	if (st_polj > 0 && document.obrazec[polja_obrazca[0]].value.length) {
		var
			xmlhttp = VrniXMLHTTP(),
			i, podatki = "",
			el_napredek = document.getElementById("napredek"),
			el_odgovor = document.getElementById("odgovor"),
			rocica_casovnika;

		// Sestavimo podatke obraza za zahtevo vrste application/x-www-form-urlencoded.
		for (i = 0; i < st_polj; i++)
			podatki += (i ? "&" : "") + polja_obrazca[i] + "=" + encodeURIComponent(document.obrazec[polja_obrazca[i]].value);

		// Prikažemo kazalnik napredka.
		napredek_slika_idx = 0;
		AnimirajNapredek();
		rocica_casovnika = window.setInterval(AnimirajNapredek, 500);
		Skrij(el_odgovor);
		Pokazi(el_napredek);

		// Pripravimo zahtevo za obdelavo in nastavimo funkcijo, ki naj jo objekt xmlhttp kliče, ko dobi odgovor.
		xmlhttp.open("POST", url, true);
		xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
		xmlhttp.setRequestHeader("Content-Length", podatki.length);
		xmlhttp.setRequestHeader("Connection", "close");
		xmlhttp.onreadystatechange = function() {
			if (xmlhttp.readyState == 4) {
				// Vstavimo odgovor v element za odgovor.
				el_odgovor.innerHTML = xmlhttp.responseText;

				// V odgovoru poiščemo vsa skripta in jih izvedemo.
				var
					elementi_script = el_odgovor.getElementsByTagName("script");

				for (i in elementi_script) {
					var
						el_script = elementi_script[i];

					if (typeof(el_script) == "object")
						eval(el_script.text);
				}

				// Skrijemo kazalnik napredka in prikažemo odgovor.
				window.clearInterval(rocica_casovnika);
				Skrij(el_napredek);
				Pokazi(el_odgovor);

				// Izberemo in osvetlimo prvi element obrazca.
				with (document.obrazec[polja_obrazca[0]]) {
					select();
					focus();
				}
			}
		}

		// Pošljemo besedilo v obdelavo.
		xmlhttp.send(podatki);
	}
}

