/*
 * 
 * Zajedničke funkcije i promenljive za www.vezbanka.com
 * 
 */

var docname = location.href;
var tacno = 0;
var pogresno = 0;
var tip = 1;
var zadatak, operacija, broj_1, broj_2, tacan_odgovor, uspeh_txt, naslov, uspeh, slovo;
var samstaribr, recenica, recbr, azbukaM, azbukaV, samoglasnik, samoglasnikM, samoglasnikV, suglasnik, brSuglasnik, brSamoglasnik, azbr, azbrr;

function onoff(objekat) {
	if ( document.getElementById(objekat).style.visibility == 'hidden' ) {
		document.getElementById(objekat).style.visibility = 'visible';
		document.getElementById(objekat+"_btn").className = objekat+"_on";
	} else {
		document.getElementById(objekat).style.visibility = 'hidden';
		document.getElementById(objekat+"_btn").className = objekat;
	}
	if ( docname.match("matematika") || docname.match("engleski") ) {
		zadatak = document.getElementById("zadatak");
		zadatak.tvoj_odgovor.focus();
	}
}

function sakrijInfo() {
	document.getElementById("uspeh").innerHTML = uspeh_txt;
}

function preNula(broj) {
	if ( broj < 10 ) {
		return "0" + broj;
	} else {
		return broj;
	}
}
function preSpace(broj) {
	if ( broj < 10 ) {
		return "  " + broj;
	} else if ( broj < 100 ) {
		return " " + broj;
	} else {
		return broj;
	}
}

function vreme() {
	var currentTime = new Date();
	var sati      = preNula(currentTime.getHours());
	var minuti    = preNula(currentTime.getMinutes());
	var sekunde   = preNula(currentTime.getSeconds());
	return sati +":"+ minuti +":"+ sekunde +")";
}

function init_azbuka() {
	// globalne promenljive
	tekst = "";
	samstaribr = 0;
	
	// za azbuku
	azbukaM = "абвгдђежзијклљмнњопрстћуфхцчџш";
	azbukaV = "АБВГДЂЕЖЗИЈКЛЉМНЊОПРСТЋУФХЦЧЏШ"
	azbr = azbrr = 0;

	// za samoglasnike
	samoglasnikM = "аеиоу";
	samoglasnikV = "АЕИОУ";

	// za slogove
	suglasnik = "бвгдђжзјклљмнњпрстћфхцчџшБВГДЂЖЗЈКЛЉМНЊПРСТЋФХЦЧЏШ";
	samoglasnik = samoglasnikM+samoglasnikV;
	brSuglasnik = brSamoglasnik = 0;

	// za recenice
	recbr = 0;
	recenica = new Array(
"Ено Симе са Емом.",
"Ено Еме са Симом.",
"Јаје снео,<br />семе јео.",
"То је мој ној.",
"Реп има,<br />сома снима.",
"То је рак Сима.",
"Тата нема ташну.",
"Тата нема машну.",
"Урош то има.",
"Тата шешир нема.",
"Љиља љуља Лену.",
"Лена љуља Љуљу.",
"Лана се наљутила,<br />што се није љуљала.",
"Горан шутира лопту.",
"Лопта је полетела.",
"Зашто воз јури?",
"Воз воли шине.",
"Зашто змај лети?",
"Змај воли висине.",
"Пева кос.",
"Ко га слуша,<br />ко га гледа?",
"Један унук,<br />један деда.",
"Бака бира чашу чаја.",
"Чича бира чашу сока.",
"Пију и причају.",
"Ћуран и ћурка<br />ћаскају у хладу.",
"Ђак има џемпер.",
"Џемпер има џеп.",
"Ђак воли грожђе.",
"Џемпер не воли<br />грожђе у џепу.",
"Зима, зима<br />е, па шта је.",
"Ако је зима није лав!",
"Зима, зима<br />па нека је.",
"Не боји се<br />ко је здрав!",
"А шта може<br />зима мени.",
"Шта ми може,<br />шта ми сме?",
"Нек ми носић поцрвени.",
"Ето, то је,<br />то је све!",
"Јана и Јасна су сестре.",
"Оне носе мараме.",
"Јасна има ауто.",
"Јана има тротинет.",
"Оне устају рано.",
"Риста има мотор.",
"Тина има сина.",
"Емина носи сат.",
"Роса рано роси.",
"Мира и Тамара носе мараме.",
"Ирена снима море.",
"Момир рано рани.",
"Тина носи сено.",
"Митар има стрину Марину.",
"Марта, Анита и Мина су сестре.",
"Момир сутра снима манастире.",
"Маја и тата су на сајму књига.",
"Мија и мама су на сајму аутомобила.",
"Сјајно је на сајму књига.",
"Исто је и на сајму аутомобила.",
"Маја носи са сајма књигу.",
"Она је уморна.",
"Лепа принцеза Цица из Гривца,",
"срете на балу младога принца.",
"И заљуби се Цица у принца",
"и заљуби се принц у Цицу.",
"А онда њена мајка царица",
"донесе прекрасну венчаницу.",
"И рече Цици с росом у оку",
"- Устани, кћери, да пустиш стоку."
);
	azbukaSet("Учимо српски језик",'<span class="uputstvo"><br /><br />Прво кликни на дугме са задацима,<br />онда притискај тастер за размак на тастатури.</span>',"");
	tip = 1;
}

function azbukaSet(naslov,slovo,uspeh) {
	document.getElementById("naslov").innerHTML = naslov;
	document.getElementById("slovo").innerHTML  = slovo;
	document.getElementById("uspeh").innerHTML  = uspeh;
	tip++;
}

function funcAzbuka() {
	naslov = "Памћење великих и малих слова азбуке, по реду";
	slovo = "<span class=\"slovo\">" +azbukaV.substr(azbrr,1) + azbukaM.substr(azbrr,1)+ "</span>";
	uspeh = (azbrr+1)+"/30 (пређено: " +tip+ ")";
	azbukaSet(naslov,slovo,uspeh);

	// na kraju niza ponovo ide prvo slovo
	if ( azbrr < 29) {
		azbrr++;
	} else {
		azbrr = 0;
	}
}

function funcAzbukaNas() {
	naslov = "Памћење насумично изабраних слова азбуке";
	azbr = Math.round(59*Math.random());
	tekst = azbukaM + azbukaV;
	tekst = tekst.substr(azbr,1);
	slovo = "<span class=\"azbukanas\">" +tekst+ "</span>";
	uspeh = "(пређено: " +tip+ ")";
	azbukaSet(naslov,slovo,uspeh);
}

function funcAzbukaNasPar() {
	naslov = "Памћење насумично изабраних великих и малих слова";
	azbr = Math.round(29*Math.random());
	slovo = "<span class=\"azbukanaspar\">" +azbukaV.substr(azbr,1) + azbukaM.substr(azbr,1) +"</span>";
	uspeh = "(пређено: " +tip+ ")";
	azbukaSet(naslov,slovo,uspeh);
}

function funcSamoglasnik() {
	naslov = "Препознавање и памћење самогласника";
	// nasumicno
	var vel = Math.round(1*Math.random());
	sambr = Math.round(4*Math.random());
	if ( vel == 0 ) {
		tekst = samoglasnikM.substr(sambr,1);
	} else {
		tekst = samoglasnikV.substr(sambr,1);
	}
	slovo = "<span class=\"samoglasnik\">" +tekst+ "</span>";
	uspeh = "(пређено: " +tip+ ")";
	if ( samstaribr == sambr ) {
		funcSamoglasnik();
	} else {
		azbukaSet(naslov,slovo,uspeh);
		samstaribr = sambr;
	}
}

function funcSlogNas(){
	naslov = "Читање насумично изабраних слогова";
	brSuglasnik = Math.round(49*Math.random());
	brSamoglasnik = Math.round(9*Math.random());
	slovo = "<span class=\"slog\">" +suglasnik.substr(brSuglasnik,1) + samoglasnik.substr(brSamoglasnik,1)+ "</span>";
	uspeh = "(пређено: " +tip+ ")";
	azbukaSet(naslov,slovo,uspeh);
}

function funcSlog(){
	naslov = "Читање слогова по реду";
	if ( brSuglasnik > 24 ) { brSuglasnik = 0; brSamoglasnik = 0; }
	if ( brSamoglasnik > 4 ) { brSamoglasnik = 0; }
	tekst = suglasnik.substr(brSuglasnik,1);
	tekst += samoglasnikM.substr(brSamoglasnik,1);
	slovo = "<span class=\"slog\">" +tekst+ "</span>";
	uspeh = (brSuglasnik+1)+ "/25 :: " +(brSamoglasnik+1)+ "/5 (пређено: " +tip+ ")";
	azbukaSet(naslov,slovo,uspeh);

	if ( brSuglasnik >= 24 ) {
		if ( brSamoglasnik < 4 ) {
			brSamoglasnik += 1;
		} else {
			brSamoglasnik = 0;
		}
		brSuglasnik = 0;
	} else {
		brSuglasnik = brSuglasnik + 1;
	}
}

function funcRecenica(){
	naslov = "Читање простих реченица по реду";
	slovo = "<span class=\"recenice\"><br />" +recenica[recbr]+ "</span>";
	uspeh = (recbr+1)+ "/" +recenica.length+ " (пређено: " +tip+ ")";
	azbukaSet(naslov,slovo,uspeh);

	// na kraju niza ponovo ide prva recenica
	if ( recbr < recenica.length-1) {
		recbr++;
	} else {
		recbr = 0;
	}
}

function funcRecenicaNas(){
	naslov = "Читање насумично изабраних простих реченица";
	// nasumicno
	recbr = Math.round(recenica.length*Math.random());
	slovo = "<span class=\"recenice\"><br />" +recenica[recbr]+ "</span>";
	uspeh = (recbr+1)+ "/" +recenica.length+ " (пређено: " +tip+ ")";
	azbukaSet(naslov,slovo,uspeh);
}
	
function init_matematika() {
	uspeh_txt = "Укуцај резултат једначине.<br />(кад укуцаш притисни тастер Ентер за проверу)";
	onoff('istorija');
	zadatak.tvoj_odgovor.value = "";
	zadatak.tvoj_odgovor.focus();
	document.getElementById('uspeh').innerHTML = uspeh_txt;
	novoMat();
}

function novoMat() {

	// uzmemo dva nasumična broja od 1 do 10
	 broj_1 = Math.floor(Math.random()*10)+1;
	 broj_2 = Math.floor(Math.random()*10)+1;

	// proverimo da li može da se vrši oduzimanje
	if ( broj_1 > broj_2 ) {
		// da li može delenje (ceo broj)?
		var podeljeno = broj_1 / broj_2;
		if ( podeljeno == Math.floor(podeljeno) ) {
			operacija = Math.floor(Math.random()*4)+1;
		} else {
			operacija = Math.floor(Math.random()*3)+1;
		}
	} else {
		operacija = Math.floor(Math.random()*2)+1;
	}

	// definišemo tekst za ispis zadatka
	switch(operacija) {
		case 1:
			tacan_odgovor = broj_1 + broj_2;
			prvi = "први сабирак";
			drugi = "други сабирак";
			oper = "сабирања";
			var t_postavka = opisnoPitanje(prvi,drugi,"+");
			break;
		case 2:
			tacan_odgovor = broj_1 * broj_2;
			prvi = "први чинилац";
			drugi = "други чинилац";
			oper = "множења";
			var t_postavka = opisnoPitanje(prvi,drugi,"×");
			break;
		case 3:
			tacan_odgovor = broj_1 - broj_2;
			prvi = "умањеник";
			drugi = "умањилац";
			oper = "одузимања";
			var t_postavka = opisnoPitanje(prvi,drugi,"-");
			break;
		case 4:
			tacan_odgovor = broj_1 / broj_2;
			prvi = "дељеник";
			drugi = "делилац";
			oper = "дељења";
			var t_postavka = opisnoPitanje(prvi,drugi,":");
			break;
	}
	document.getElementById("pitanje").innerHTML = "Израчунај <span title=\"резултат " +oper+ "\">" + kojaOp("a",operacija) + "</span> ако је " +prvi+ " <strong>" + broj_1 + "</strong>, а " +drugi+ " <strong>" + broj_2 + "</strong>.";
	document.getElementById("postavka_txt").innerHTML = t_postavka;
	zadatak.tvoj_odgovor.value = "";
}
	
function proveriMat() {
	var tvoj_odgovor  = zadatak.tvoj_odgovor.value.replace(/^\s+|\s+$|^0+/g, '');

	if ( tvoj_odgovor != "" ) {

		var odgovori = document.getElementById("odgovori").innerHTML;
			
		var tacan_odg = kojaOp("n",operacija) + " бројева <strong>" + broj_1 + "</strong> и <strong>" + broj_2 + "</strong> је <strong>" + tacan_odgovor +"</strong>";
		
		if ( tvoj_odgovor == tacan_odgovor && tvoj_odgovor != "" ) {
			tacno++;
			tajmaut = 1500;
			document.getElementById("uspeh").innerHTML = "<span class=\"tacno\">Браво, " + tacan_odg + "</span>";
			document.getElementById("odgovori").innerHTML = "<pre class=\"da\">" + vreme() + " " + preSpace(broj_1) + " " + kojaOp("z",operacija) + " " + preSpace(broj_2) + " = " + preSpace(tvoj_odgovor) + "</pre>" + odgovori;
		} else {
			pogresno++;
			tajmaut = 3000;
			document.getElementById("uspeh").innerHTML = "<span class=\"greska\">Грешка, " + tacan_odg + ", није <strong>" + tvoj_odgovor + "</strong>.</span>";
			document.getElementById("odgovori").innerHTML = "<pre class=\"ne\">" + vreme() + " " + preSpace(broj_1) + " " + kojaOp("z",operacija) + " " + preSpace(broj_2) + " ≠" + preSpace(tvoj_odgovor) + " =" + preSpace(tacan_odgovor) + "</pre>" + odgovori;
		}
		// postavim novo pitanje
		novoMat();
			
	} else {
		document.getElementById("uspeh").innerHTML = "<span class=\"neodgovoreno\">Нисте уписали резултат! Покушајте поново.</span>";
	}
		
	if ( tacno > 0 || pogresno > 0 ) {
		var ukupno = parseFloat(tacno) + parseFloat(pogresno);
		document.getElementById("statistika").innerHTML = "Број одговора: тачних: <strong>" +tacno+ "</strong> + погрешних: <strong>" +pogresno+ "</strong> = укупно: <strong>" +ukupno+ "</strong>";
	}

	setTimeout("sakrijInfo();", tajmaut);

}

function opisnoPitanje(prvi,drugi,oper) {
	return "<span title=\"" +prvi+ "\">" +broj_1+ "</span> " +oper+ " <span title=\"" +drugi+ "\">" + broj_2 + "</span> =";
}

function kojaOp(padez, oper) {
	// z - znak operacije
	// n - nominativ
	// a - akuzativ
	// o - operacija
	if ( padez == "o" ) {
		if ( oper == 1 ) {
			return "сабирање";
		} else if ( oper == 2 ) {
			return "множење";
		} else if ( oper == 3 ) {
			return "одузимање";
		} else if ( oper == 4 ) {
			return "делење";
		}
	} else if ( padez == "z" ) {
		if ( oper == 1 ) {
			return "+";
		} else if ( oper == 2 ) {
			return "×";
		} else if ( oper == 3 ) {
			return "-";
		} else if ( oper == 4 ) {
			return ":";
		}
	} else {
		if ( oper == 1 ) {
			return "збир";
		} else if ( oper == 2 ) {
			return "производ";
		} else if ( oper == 3 ) {
			if ( padez == "a" ) {
				return "разлику";
			} else {
				return "разлика";
			}
		} else if ( oper == 4 ) {
			return "количник";
		}
	}
}

var rec_prethodna = "";
var rec_eng, rec_srp;
var smer = "es";

function init_engleski() {
	if ( smer == "se" ) {
		uspeh_txt = "Напиши на енглеском шта значи ова српска реч?<br />(кад напишеш притисни тастер Ентер за проверу)";
	} else {
		uspeh_txt = "Напиши на српском шта значи ова енглеска реч?<br />(кад напишеш притисни тастер Ентер за проверу)";
	}
	onoff('istorija');
	zadatak.tvoj_odgovor.value = "";
	zadatak.tvoj_odgovor.focus();
	document.getElementById('uspeh').innerHTML = uspeh_txt;
	novoEng();
}

function novoEng() {
if (smer == "se" ) { recnik = srpeng; } else { recnik = engsrp; }
	// uzmemo nasumični par iz niza
	var esPar = recnik[Math.floor(Math.random()*recnik.length)];
//	var esPar = engsrp[Math.floor(Math.random()*engsrp.length)];
	rec_eng = esPar.split("|")[0];
	rec_srp = esPar.split("|")[1];
	// nećemo istu reč dva puta uzastopno
	if ( rec_eng == rec_prethodna ) {
		novoEng();
	} else {
		document.getElementById("engleski").innerHTML = rec_eng;
	}
	zadatak.tvoj_odgovor.focus();
}

function proveriEng() {
	var tvoj_odg_raw = zadatak.tvoj_odgovor.value.replace(/^\s+|\s+$/g, '');
	if ( smer != "se" ) { var tvoj_odgovor = lat2cir(tvoj_odg_raw.toLowerCase()); } else { var tvoj_odgovor = tvoj_odg_raw.toLowerCase(); }

	// ako je dat odgovor, proveravamo da li je tačan
	if ( tvoj_odgovor != "" ) {

		var odgovori  = document.getElementById("odgovori").innerHTML;

		// da li treba pomoć?
		if ( tvoj_odgovor == "?" || tvoj_odgovor == "#помоћ" ) {
			if ( rec_srp.indexOf(",") > 1 ) {
				znacenje = rec_srp.split(",")[0];
			} else {
				znacenje = rec_srp;
			}
			tajmaut = 4000;
			document.getElementById("uspeh").innerHTML = "<span class=\"pomoc\"><strong>" +rec_eng+ "</strong> значи <strong>" +znacenje+ "</strong></span>";
			zadatak.tvoj_odgovor.value = "";
			document.getElementById("odgovori").innerHTML = "<pre class=\"pomoc\">" +vreme()+ " помоћ за " +rec_eng+ " =" +znacenje+ "</pre>" +odgovori;
		} else {
			
			// proverim da li je original u nizu ili jedna reč
			// ovu kobasicu uprostiti sa podfunkcijom
			if ( rec_srp.indexOf(",") > 1 ) {
				var odg_u_nizu = 0;
				var reci = rec_srp.split(",");
				var znacenje = reci[0];
				for ( r = 0; r < reci.length; r++ ) {
					if ( tvoj_odgovor == reci[r] ) {
						odg_u_nizu++;
					}
				}
				if ( odg_u_nizu > 0 ) {
					// tačan odgovor
					tacno++;
					tajmaut = 1500;
					document.getElementById("uspeh").innerHTML = "<span class=\"tacno\">БРАВО! Одговор је тачан!</span>";
					zadatak.tvoj_odgovor.value = "";
					document.getElementById("odgovori").innerHTML = "<pre class=\"da\">" +vreme()+ " " +rec_eng+ " =" +tvoj_odg_raw+ " &#10003;</pre>" +odgovori;
				} else {
					// pogrešan odgovor
					pogresno++;
					tajmaut = 8000;
					document.getElementById("uspeh").innerHTML = "<span class=\"greska\"><strong>" +tvoj_odg_raw+ "</strong> није тачан одговор.<br /><strong>" +rec_eng+"</strong> значи <strong>" +znacenje+ "</strong></span>";
					zadatak.tvoj_odgovor.value = "";
					document.getElementById("odgovori").innerHTML = "<pre class=\"ne\">" +vreme()+ " " +rec_eng+ " ≠" +tvoj_odg_raw+ " =" +znacenje+ "</pre>" +odgovori;
				}
			} else {
				if ( tvoj_odgovor == rec_srp ) {
					// tačan odgovor
					tacno++;
					tajmaut = 1500;
					document.getElementById("uspeh").innerHTML = "<span class=\"tacno\">БРАВО! Одговор је тачан!</span>";
					zadatak.tvoj_odgovor.value = "";
					document.getElementById("odgovori").innerHTML = "<pre class=\"da\">" +vreme()+ " " +rec_eng+ " =" +tvoj_odg_raw+ " &#10003;</pre>" +odgovori;
				} else {
					// pogrešan odgovor
					pogresno++;
					tajmaut = 8000;
					document.getElementById("uspeh").innerHTML = "<span class=\"greska\"><strong>" +tvoj_odg_raw+ "</strong> није тачан одговор.<br /><strong>" +rec_eng+"</strong> значи <strong>" +rec_srp+ "</strong></span>";
					zadatak.tvoj_odgovor.value = "";
					document.getElementById("odgovori").innerHTML = "<pre class=\"ne\">" +vreme()+ " " +rec_eng+ " ≠" +tvoj_odg_raw+ " =" +rec_srp+ "</pre>" +odgovori;
				}
			}

			rec_prethodna = rec_eng;

		} // traži pomoć ili daje odgovor	
	} else {
		document.getElementById("uspeh").innerHTML = "<span class=\"neodgovoreno\">Упиши значење речи на српском!</span>";
	}
		
	if ( tacno > 0 || pogresno > 0 ) {
		var ukupno = parseFloat(tacno) + parseFloat(pogresno);
			document.getElementById("statistika").innerHTML = "Број одговора: тачних: <strong>" +tacno+ "</strong> + погрешних: <strong>" +pogresno+ "</strong> = укупно: <strong>" +ukupno+ "</strong>";
	}

	setTimeout("sakrijInfo();", tajmaut);
	novoEng();
}

function preusmeri() {
	if ( smer == "se" ) {
		smer = "es";
		document.getElementById("smer_btn").className = "smer";
		uspeh_txt = "Напиши на српском шта значи ова енглеска реч?<br />(кад напишеш притисни тастер Ентер за проверу)";
		document.getElementById('uspeh').innerHTML = uspeh_txt;
		novoEng();
	} else {
		smer = "se";
		document.getElementById("smer_btn").className = "smer_on";
		uspeh_txt = "Напиши на енглеском шта значи ова српска реч?<br />(кад напишеш притисни тастер Ентер за проверу)";
		document.getElementById('uspeh').innerHTML = uspeh_txt;
		novoEng();
	}
}

function lat2cir(rec) {
	// konvertor je zasnovan na http://www.aleksa.org/vucko/
	rec = rec.replace(/lj/g,'љ');
	rec = rec.replace(/nj/g,'њ');
	rec = rec.replace(/dž/g,'џ');
	rec = rec.replace(/dј/g,'ђ');
	rec = rec.replace(/a/g,'а');
	rec = rec.replace(/b/g,'б');
	rec = rec.replace(/c/g,'ц');
	rec = rec.replace(/č/g,'ч');
	rec = rec.replace(/ć/g,'ћ');
	rec = rec.replace(/d/g,'д');
	rec = rec.replace(/đ/g,'ђ');
	rec = rec.replace(/e/g,'е');
	rec = rec.replace(/f/g,'ф');
	rec = rec.replace(/g/g,'г');
	rec = rec.replace(/h/g,'х');
	rec = rec.replace(/i/g,'и');
	rec = rec.replace(/j/g,'ј');
	rec = rec.replace(/k/g,'к');
	rec = rec.replace(/l/g,'л');
	rec = rec.replace(/m/g,'м');
	rec = rec.replace(/n/g,'н');
	rec = rec.replace(/o/g,'о');
	rec = rec.replace(/p/g,'п');
	rec = rec.replace(/r/g,'р');
	rec = rec.replace(/s/g,'с');
	rec = rec.replace(/š/g,'ш');
	rec = rec.replace(/t/g,'т');
	rec = rec.replace(/u/g,'у');
	rec = rec.replace(/v/g,'в');
	rec = rec.replace(/z/g,'з');
	rec = rec.replace(/ž/g,'ж');
	return rec;

}
