var POCET_PRECHODU = 6;
var STYL = 'ohraniceno';
var INTERVAL = 150; //v ms

var keZruseni;
keZruseni = new Array();

function zrusOhraniceni(objekt) {
	objekt = keZruseni.shift();
	if (--objekt.ohraniceni) {
		objekt.className = objekt.trida + ' ' + STYL + objekt.ohraniceni;
		timeoutID = setTimeout("zrusOhraniceni();", INTERVAL);
		objekt.timeoutID = timeoutID;
		keZruseni.push(objekt);
	} else {
		objekt.className = objekt.trida;
	}
//	objekt.className = objekt.className.replace(/ ohraniceno/, "");
}

function vytvorOhraniceni(objekt) {
	objekt.ohraniceni = POCET_PRECHODU;
	if (typeof(objekt.trida) == 'undefined') {
		objekt.trida = objekt.className;
	}
	objekt.className = objekt.trida + ' ' + STYL + POCET_PRECHODU;
	for (i=keZruseni.length-1; i>=0; i--) {
		if (keZruseni[i].id == objekt.id) {
			clearTimeout(objekt.timeoutID);
			keZruseni.splice(i,1);
		}
	}
	timeoutID = setTimeout("zrusOhraniceni();", 500);
	objekt.timeoutID = timeoutID;
	keZruseni.push(objekt);
}

function vyhodnotZaskrtavaci(otazka) {
	vytvorOhraniceni(otazka);
	odpoved = otazka.getAttribute('odpoved');
	pole = otazka.getElementsByTagName('input');
	for (i=0; i<pole.length; i++) {
		inputbox = pole[i];
		if (inputbox.checked) {
			if (odpoved.indexOf(inputbox.value) != -1) {
				zmenObrazek(inputbox, 1);
			} else {
				zmenObrazek(inputbox, -1);
			}
		} else {
			zmenObrazek(inputbox, 0);
		}
	}
}

function vyhodnotTexty(otazka) {
	vytvorOhraniceni(otazka);
	nahodnePoradi = otazka.getAttribute('nahodnePoradi');
	pole = otazka.getElementsByTagName('input');
	if (nahodnePoradi == "a") {
		odpovedi = new Array();
		for (i=0; i<pole.length; i++) {
			odpovedi.push(pole[i].getAttribute('odpoved'));
		}
	}
	for (i=0; i<pole.length; i++) {
		textbox = pole[i];
		if (textbox.value == "") {
			zmenObrazek(textbox, 0);
			continue;
		}
		if (nahodnePoradi != "a") {
			odpovedi = new Array(textbox.getAttribute('odpoved'));
		}
		zmeneno = false;
		for (j=0; j<odpovedi.length; j++) {
			if (overOdpoved(textbox, odpovedi[j])) {
				zmenObrazek(textbox, 1);
				odpovedi.splice(j,1);
				zmeneno = true;
				break;
			}
		}
		if (!zmeneno) {
			zmenObrazek(textbox, -1);
		}
	}
}

function overOdpoved(textbox, odpoved) {
	polozky = odpoved.split(";");
	for (k=0; k<polozky.length; k++) {
		// trim funkce: replace(/^\s+|\s+$/g, '')
		if (textbox.value.toLowerCase().replace(/^\s+|\s+$/g, '') == polozky[k].toLowerCase()) {
			return true;
		}
	}
	return false;
}

function vyhodnotPrirazeni(otazka) {
	vytvorOhraniceni(otazka);
	pole = otazka.getElementsByTagName('select');
	for (i=0; i<pole.length; i++) {
		listbox = pole[i];
		odpoved = listbox.getAttribute('odpoved');
		if (listbox.value == odpoved) {
			zmenObrazek(listbox, 1);
		} else {
			zmenObrazek(listbox, -1);
		}
	}
}

function zmenObrazek(objekt, vysl) {
//			objekt = objekt.getElementsByTagName('img')[0];
//	while (objekt.nodeType != 1 || objekt.tagName.toLowerCase() != 'img') {
//		objekt = objekt.previousSibling;
//	}
	temp = objekt;
	try {
		while (objekt.nodeType != 1 || objekt.tagName.toLowerCase() != 'tr')  {
			objekt = objekt.parentNode;
		}
		objekt = objekt.getElementsByTagName('td')[0].getElementsByTagName('img')[0];
	}
	catch(e) {
		// pro otazky typu text v otazce
		objekt = temp;
		while (objekt.nodeType != 1 || objekt.tagName.toLowerCase() != 'img') {
			objekt = objekt.previousSibling;
		}
	}
	
	if (vysl==1) {
		objekt.src = '../shared/ok.gif';
	} else if (vysl==-1) {
		objekt.src = '../shared/bad.gif';
	} else {
		objekt.src = '../shared/blank.gif';
	}
}
