/**
 * Kreira AJAX objekta.
 * 
 * @return ajax objekat
 */
function napraviAjaxObjekat()
{

var xmlHttp=null;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
return xmlHttp;
}

function obeleziGreske(greske)
{
	for (var i = 0; i < greske.length; i++)
	
	{
		if (greske[i].attributes[0].value == "indeksGodina" || greske[i].attributes[0].value == "indeksBroj" || greske[i].attributes[0].value == "indeksPostoji")
			document.getElementById("g_indeks").style.display = "inline";
		else if (greske[i].attributes[0].value == "ePostaPostoji")
			document.getElementById("g_ePosta").style.display = "inline";
		else
			document.getElementById("g_" + greske[i].attributes[0].value).style.display = "inline";
	}
}

function uhvatiRezultat() 
{
	if (xmlHttp.readyState == 4)
	{
		if (xmlHttp.status == 200)
		{
			//pamtimo xml odgovor
			var xmlDoc = xmlHttp.responseXML;

			//ako je sve ok daje info o uspesnosti
			if (xmlDoc.getElementsByTagName("uspesnost")[0].childNodes[0].nodeValue == "true")
			{
				document.getElementById("greska").innerHTML = "Podaci su uspešno zabeleženi! Poslata vam je e-poruka za potvrdu. <span style=\"color:red\">Da bi prijava bila validna morate je potvrditi klikom na link u poruci.</span> Hvala na prijavi.";
				document.getElementById("greska").style.background = "#33CC00";
				document.getElementById("forma").style.display = "none";
			}
			//ako je doslo do greske ona ispisuje se odgovarajuca poruka
			else if (xmlDoc.getElementsByTagName("uspesnost")[0].childNodes[0].nodeValue == "false")
			{
				//ako je nije došlo do greške prilikom validacije traži se šta je korisnik pogrešno uneo
				if (xmlDoc.getElementsByTagName("greska")[0].attributes[0].value != "validacija")
				{
					//obelezavamo polja sa greskama
					obeleziGreske(xmlDoc.getElementsByTagName("greska"));
					
					//sakupljamo sve informacije o greskama
					var greske = "";
					var nizGresaka = xmlDoc.getElementsByTagName("greska");
					for (var i = 0; i < nizGresaka.length; i++)
					{
						greske += "<br />– " + nizGresaka[i].childNodes[0].nodeValue;
					}
					document.getElementById("greska").innerHTML = "Greske: " + greske;
					document.getElementById("greska").style.background = "#FF6600";
				}
				else
				{
					document.getElementById("greska").innerHTML = "Greska: " + xmlDoc.getElementsByTagName("greska")[0].childNodes[0].nodeValue;
					document.getElementById("greska").style.background = "#FF6600";
				}
			}
			else
			{
				document.getElementById("greska").innerHTML = "Greska! Nije moguće uspostaviti vezu.";
				document.getElementById("greska").style.background = "#FF6600";
			}
			document.getElementById("load").style.display = "none";
			document.getElementById("greska").style.display = "block";
		}
	}
}

function procitajPodatke()
{
	var predmeti = new Array();
	var prijavljeniPredmeti = document.getElementsByName("prijavljeniPredmeti");
	var j=0;
	for (var i = 0; i < prijavljeniPredmeti.length; i++)
	{
		if (prijavljeniPredmeti[i].checked)
			predmeti[j++] = prijavljeniPredmeti[i].value;
	}

	var podaci = new Array(
		document.getElementsByName("ime")[0].value,
		document.getElementsByName("prezime")[0].value,
		document.getElementsByName("indeksGodina")[0].value,
		document.getElementsByName("indeksBroj")[0].value,
		document.getElementById("prva").selected?"1":document.getElementById("druga").selected?"2":document.getElementById("treca").selected?"3":document.getElementById("cetvrta").selected?"4":document.getElementById("master").selected?"5":document.getElementById("doktorant").selected?"6":"",
		document.getElementsByName("mobilniTelefon")[0].value,
		document.getElementsByName("ePosta")[0].value,
		predmeti
	); 
	return podaci;
}

function pripremiPodatke(podaci)
{
	var params = "";
	params += "ime=" + podaci[0];
	params += "&prezime=" + podaci[1];
	params += "&indeksGodina=" + podaci[2];
	params += "&indeksBroj=" + podaci[3];
	params += "&godinaStudija=" + podaci[4];
	params += "&mobilniTelefon=" + encodeURIComponent(podaci[5]);
	params += "&ePosta=" + podaci[6];
	for (var i = 0; i < podaci[7].length; i++)
		params += "&prijavljeniPredmeti[]=" + podaci[7][i];

	return params;
}

function pripremiIkonice()
{
	document.getElementById("greska").style.display = "none";
	document.getElementById("load").style.display = "block";
	
	document.getElementById("g_ime").style.display = "none";
	document.getElementById("g_prezime").style.display = "none";
	document.getElementById("g_indeks").style.display = "none";
	document.getElementById("g_godinaStudija").style.display = "none";
	document.getElementById("g_mobilniTelefon").style.display = "none";
	document.getElementById("g_ePosta").style.display = "none";
	document.getElementById("g_prijavljeniPredmeti").style.display = "none";
}

function posaljiPodatke()
{
	pripremiIkonice();

	xmlHttp=napraviAjaxObjekat();
	if (xmlHttp==null)
	  {
	  alert ("Vaš pretraživač ne podržava AJAX!");
	  return;
	  } 

	var podaci = procitajPodatke();
	var params = pripremiPodatke(podaci) + "&akcija=odgovor";
	var skripta = "prijavaStudenataAjax.php";

	xmlHttp.onreadystatechange = uhvatiRezultat;
	xmlHttp.open("POST",skripta,true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
}

function ucitajPredmete()
{
	xmlHttp=napraviAjaxObjekat();
	if (xmlHttp==null)
	  {
	  alert ("Vaš pretraživač ne podržava AJAX!");
	  return;
	  } 

	var params = "akcija=predmeti";
	var skripta = "prijavaStudenataAjax.php";

	xmlHttp.onreadystatechange = uhvatiPredmete;
	xmlHttp.open("POST",skripta,true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.send(params);
}

function uhvatiPredmete() 
{ 
	if (xmlHttp.readyState == 4)
	{
		if (xmlHttp.status == 200)
		{
			//pamtimo html odgovor
			var html = xmlHttp.responseText;
			
			document.getElementById("load1").style.display = "none";
			document.getElementById("predmeti").innerHTML = html;
		}
	}
}

