/****************************************
skripty pro zkouseni ze slepych map
verze oisunem pruvodce i tazenim mysi
autor: Martin Havel
posledni uprava 4.2.2003
****************************************/

var gZkouseniZeSeznamu = 1;
var gSpravnaOdpoved = '';
var gVysledky = new Array(gSeznamObrazku.length - 1);

var gPocetObrazku = (gSeznamObrazku.length - 1) * 2;
var gPoradiObrazku = new Array (gPocetObrazku);
var gPocetObrazkuSpravne = 0;

var gPocetPokusuSpravne = 0;
var gPocetPokusuSpatne = 0;
var gVybranyObrazek = 0;

var gPosunTop;
var gPosunLeft;

var gSeznam;
var gLeveOdsazeni = 20;

Array.prototype.exists = function(pValue) {
	var i;
	var lValue = String(pValue);
	
	for (i=0; i < this.length; i++) {
		if (String(this[i]) == lValue) {return true}
	}
	return false;
}

Array.prototype.Item = function(pItem)
// Nahrada za Dictionary
{
	for (var i = 0; i < this.length; i += 2) 
		if (parseInt(this[i]) == parseInt(pItem)) {
			return (this[i + 1]);
		}
	return '';
}

Array.prototype.vratNejmensi = function()
// Vrati nejmensi cislo, ktere neni 0
{
	var i = 0;
	for (; i < this.length && this[i] == 0; i++);
	var lNejmensi = i;

	if (i >= this.length)
		return -1;

	for (; i < this.length; i++) {
		if (this[i] != 0 && this[i] < this[lNejmensi]){
			lNejmensi = i;
		}
	}
//	this[lNejmensi] = 0;

	return lNejmensi;
}

function vyberNazev(pHodnota, pStyl)
//Priradi nazvu spravny styl
{
	if (typeof(pHodnota) != 'object')
		document.getElementById('o' + pHodnota).className = pStyl;
	else
		if (gSpravnaOdpoved != '' && !gZkouseniZeSeznamu)
			pHodnota.className = pStyl;
}

function zobrazSipku(pCo, pKde)
{
	document.getElementById(pCo).style.display = 'block';
	document.getElementById(pCo).style.top = gTop.Item(pKde) + gPosunTop;
	document.getElementById(pCo).style.left = gLeft.Item(pKde) + gPosunLeft;
}

function zobrazHodnoceni(pCo)
{
	document.getElementById('idHodnoceni').innerHTML = pCo;
}

function vyhodnot(pHodnota)
{
	gSpravnaOdpoved -= 0;
	pHodnota -= 0; //Musim to prevest na cislo

	if (gSpravnaOdpoved == pHodnota)
	{
		if (gZkouseniZeSeznamu == 1)
			posunPruvodceZacatek(gSpravnaOdpoved, '<span class="txSpravne"><img src="'+SKIN_ADRESAR+'smajlik_zeleny.gif" width="12" height="12"> Skvělé!</span><br><br><span class="txVyrazne">' + gNazvy.Item(gSpravnaOdpoved) + '</span>', false, true);
		else
			posunPruvodceZacatek(gSpravnaOdpoved, '<span class="txSpravne"><img src="'+SKIN_ADRESAR+'smajlik_zeleny.gif" width="12" height="12"> Výborně!</span><br><br><span class="txVyrazne">' + gNazvy.Item(gSpravnaOdpoved) + '</span>', false, true);
		document.Obrazky.umi.value++;
		document.Obrazky.dBody.value++;
		gVysledky[gSpravnaOdpoved] = gSpravnaOdpoved;
		gPocetPokusuSpravne ++;
		gPoradiObrazku[gVybranyObjekt] = 0;
		gPocetObrazkuSpravne ++;
	}
	else
	{
		if (gZkouseniZeSeznamu == 1)
			posunPruvodceZacatek(gSpravnaOdpoved, '<span class="txSpatne"><img src="'+SKIN_ADRESAR+'smajlik_cerveny.gif" width="12" height="12"> Bohužel!</span><br><br>Špatně<br><span class="txVyrazne">' + gNazvy4p.Item(gSpravnaOdpoved) + '</span>', false, true);
		else
			posunPruvodceZacatek(gSpravnaOdpoved, '<span class="txSpatne"><img src="'+SKIN_ADRESAR+'smajlik_cerveny.gif" width="12" height="12"> Je mi moc líto!</span><br><br>Ukazuji<br><span class="txVyrazne">' + gNazvy4p.Item(gSpravnaOdpoved) + '</span>', false, true);
		zobrazUdaj(pHodnota, gNazvy.Item(pHodnota));
		document.Obrazky.spatne.value++;
		gPocetPokusuSpatne ++;
		gPoradiObrazku[gVybranyObjekt] += 5 + parseInt(Math.random() * gPoradiObrazku.length);
	}
	gZrus2 = pHodnota;
	gSpravnaOdpoved = '';

	zobrazStatistiku();
//	dal();
}

function kliknuto(pHodnota)
{

	var lHodnota = pHodnota.id;

	if (gSpravnaOdpoved == '')
		dal();
	else
		if (lHodnota.substring(0,3) == 'idA')
		{
			if (gZkouseniZeSeznamu == 1)
				vyhodnot(lHodnota.replace(/idA/,''));
		}
		else
			if (gZkouseniZeSeznamu == 0)
				vyhodnot(lHodnota.replace(/idN/,''));
}

function dal()
{
	if (gSpravnaOdpoved == '') // ma se jit dal
	{
		gSpravnaOdpoved = vyberObjekt();
		document.getElementById('idSipka').style.display = 'none';

		if (gZkouseniZeSeznamu == 1)
			posunPruvodceZacatek(null, 'Najdi mi prosím <br><br><span class="txVyrazne">' + gNazvy4p.Item(gSpravnaOdpoved) + '</span>');
		else
			posunPruvodceZacatek(gSpravnaOdpoved, 'Na co ukazuji?<br><br>', true);

		gZrus1 = gSpravnaOdpoved;
	} else {
		if (gZkouseniZeSeznamu == 1)
			posunPruvodceZacatek(gSpravnaOdpoved, '' + gNazvy.Item(gSpravnaOdpoved));
		else
			posunPruvodceZacatek(gSpravnaOdpoved, '' + gNazvy.Item(gSpravnaOdpoved));
		gSpravnaOdpoved = '';
		gPoradiObrazku[gVybranyObjekt] += 5 + parseInt(Math.random() * gPoradiObrazku.length);
	}
//	zobrazHodnoceni('');
	zobrazStatistiku();
}

function vyberObjekt()
{
	gVybranyObjekt = gPoradiObrazku.vratNejmensi();
	if (gVybranyObjekt == -1)
		konec();
	gZkouseniZeSeznamu = gVybranyObjekt % 2;
	return gSeznamObrazku[parseInt(gVybranyObjekt / 2)];
}

function zobrazStatistiku()
//Zatim se nezobrazuje, tak neni odladena.
{

	document.getElementById('idHUdaje').innerHTML = ZobrazHistogram (gPocetObrazkuSpravne, gPocetObrazku - gPocetObrazkuSpravne, 'tbHstHotove', 'tbHstNehotove', '',' align="center"');
	document.getElementById('idHistogram').innerHTML = ZobrazHistogram (gPocetPokusuSpravne, gPocetPokusuSpatne, null, null, null,' align="center"');

	document.getElementById('idDBody').innerHTML = document.Obrazky.item('dBody').value;
}

function init()
{
	gPosunTop = 0;
	gPosunLeft = 0;

	obj = new lib_obj('idPruvodce');

	zobrazStatistiku();
	for (var i = 0; i < gPocetObrazku; i++)
		if ( i % 2 == 0)
			gPoradiObrazku[i] = parseInt(Math.random() * gPocetObrazku + 1);
		else
			gPoradiObrazku[i] = parseInt(Math.random() * gPocetObrazku + gPoradiObrazku[i - 1]);

//	obj.dragdrop();

	prepocti();
//	dal();
}

function prepocti()
{
	gPosunTop = document.getElementById('idCelek').offsetHeight;
	gPosunLeft = document.getElementById('idCelek').offsetWidth;
	dal();
}

function konec()
{
	window.close();
}

function nastavitPripominku1(pStrankaID, pURL, pURLreferrer, pOstatni, pNazevFramu, pPredmetID) {
	var lLevy, lElement;

	if (lElement = document.getElementById('strankaID')) lElement.value = pStrankaID;
	if (lElement = document.getElementById('URL')) lElement.value = pURL;
	if (lElement = document.getElementById('URLreferrer')) lElement.value = pURLreferrer;
	if (lElement = document.getElementById('ostatni')) lElement.value = pOstatni;
	if (lElement = document.getElementById('predmetID')) lElement.value = pPredmetID;
	
	return 1;
}

function pocitejCas()
{
	gCasovac = setTimeout(pocitejCas, 60000);

	gMinuty ++;

	if (document.getElementById('cas'))
		document.getElementById('cas').innerHTML = gMinuty + ' min.';	
	else
		zastavCas();
}


function zastavCas()
{
	if (gCasovac != null)
		clearTimeout (gCasovac);
	 gCasovac = null;
}

function posunPruvodceZacatek(pHodnota, pHlaska, pSeznam, pPopisPo)
{
	var lTop, lLeft;
	var lPul;

	document.getElementById('idHlaska').innerHTML = pHlaska;
	document.getElementById('idSipkaPruvodce').style.display = 'none';
	document.getElementById('idBublina').style.display = 'none';
	gSeznam = false;

	if (pHodnota == null) {
		lTop = document.body.scrollTop + 24;//gPosunTop;
		lLeft = gPosunLeft - document.getElementById('idPruvodce').offsetWidth - 120;
	} else {
		lTop = document.getElementById('idO' + pHodnota).offsetTop;
		lLeft = document.getElementById('idO' + pHodnota).offsetLeft + document.getElementById('idO' + pHodnota).offsetWidth - gLeveOdsazeni;
	}

	if (!pSeznam)
		pSeznam = false;
	if (!pPopisPo)
		pPopisPo = false;
	obj.slideIt(lLeft, lTop, 15, 10, 'posunPruvodceKonec(' + pHodnota + ', ' + pSeznam + ', ' + pPopisPo + ')');
	//zobrazPruvodce (lLeft, lTop, pSeznam);
}

function posunPruvodceKonec(pHodnota, pSeznam, pPopisPo)
{
	var lTop, lLeft;
	var lPul;

	if (pHodnota == null) {
		lTop = document.body.scrollTop + 24;//gPosunTop;
		lLeft = gPosunLeft - document.getElementById('idPruvodce').offsetWidth - 120;
		document.getElementById('idSipkaPruvodce').style.display = 'none';
	} else {
		lTop = document.getElementById('idO' + pHodnota).offsetTop;
		lLeft = document.getElementById('idO' + pHodnota).offsetLeft + document.getElementById('idO' + pHodnota).offsetWidth - gLeveOdsazeni;
		document.getElementById('idSipkaPruvodce').style.display = 'block';
		document.getElementById('idSipkaPruvodce').style.top = lTop + 6;
		document.getElementById('idSipkaPruvodce').style.left = lLeft-11;
	}

	if (pSeznam) {
		document.getElementById('idBublina').style.display = 'block';
		document.getElementById('idSeznam').style.display = 'block';
		document.getElementById('idPopisPo').style.display = 'none';
		document.getElementById('Bublina').width = 100;
		lPul = parseInt((document.getElementById('idBublina').offsetHeight - document.getElementById('idPruvodce').offsetHeight) / 2);
		document.getElementById('idBublina').style.top = Math.max(lTop - lPul, gPosunTop);
		document.getElementById('idBublina').style.left = lLeft + document.getElementById('idPruvodce').offsetWidth;
	} else
		if (pPopisPo && gPopisPo.Item(pHodnota)!='null' && gPopisPo.Item(pHodnota)!='') {
			document.getElementById('idBublina').style.display = 'block';
			document.getElementById('idSeznam').style.display = 'none';
			document.getElementById('idPopisPo').style.display = 'block';
			document.getElementById('Bublina').width = 200;
			document.getElementById('idPopisPo').innerHTML = gPopisPo.Item(pHodnota);
			lPul = parseInt((document.getElementById('idBublina').offsetHeight - document.getElementById('idPruvodce').offsetHeight) / 2);
			document.getElementById('idBublina').style.top = Math.max(lTop - lPul, gPosunTop);
			document.getElementById('idBublina').style.left = lLeft + document.getElementById('idPruvodce').offsetWidth;
		} else
			document.getElementById('idBublina').style.display = 'none';
	gSeznam = pSeznam;
}

function zobrazPruvodce(pLeft, pTop, pSeznam)
{
	var lPul;

	if (pLeft < 0)
		pLeft = 0;
	if (pTop < 24)
		pTop = 24//gPosunTop;

	document.getElementById('idPruvodce').style.display = 'block';
	document.getElementById('idPruvodce').style.top = pTop;
	document.getElementById('idPruvodce').style.left = pLeft;

	if (gSeznam) {
		document.getElementById('idBublina').style.display = 'block';
		lPul = parseInt((document.getElementById('idBublina').offsetHeight - document.getElementById('idPruvodce').offsetHeight) / 2);
		document.getElementById('idBublina').style.top = Math.max(pTop - lPul, gPosunTop);
		document.getElementById('idBublina').style.left = pLeft + document.getElementById('idPruvodce').offsetWidth + 2;
	}
}

function zobrazUdaj(pHodnota, pHlaska)
{
	document.getElementById('idUdaj').innerHTML = pHlaska;
	document.getElementById('idSipka').style.display = 'block';
	document.getElementById('idSipka').style.top =  document.getElementById('idO' + pHodnota).offsetTop;
	document.getElementById('idSipka').style.left = document.getElementById('idO' + pHodnota).offsetLeft + ((document.getElementById('idO' + pHodnota).offsetWidth - document.getElementById('idSipka').offsetWidth) / 2);
}

function posunScroll()
{
//	if (gTimeoutPruvodce)
//		clearTimeout(gTimeoutPruvodce);
//	alert (document.body.scrollTop);
	if (gZkouseniZeSeznamu == 1 && gSpravnaOdpoved!='') {
		lTop = document.body.scrollTop + 24;
		lLeft = gPosunLeft - document.getElementById('idPruvodce').offsetWidth - 120;
		obj.slideIt(lLeft, lTop, 15, 10, 'posunPruvodceKonec(null, false, false)');
	}
}

// Pouzita cast externi knihovny

function lib_bwcheck(){ 
  this.ver=navigator.appVersion
  this.agent=navigator.userAgent
  this.dom=document.getElementById?1:0
  this.opera5=this.agent.indexOf("Opera 5")>-1
  this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; 
  this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
  this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
  this.ie=this.ie4||this.ie5||this.ie6
  this.mac=this.agent.indexOf("Mac")>-1
  this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
  this.ns4=(document.layers && !this.dom)?1:0;
  this.bw=(this.ie6||this.ie5||this.ie4||this.ns4||this.ns6||this.opera5)
  return this
}


function lib_obj(obj,nest){ 
	nest = (!nest) ? "" : 'document.' + nest + '.';
	this.evnt = bw.dom? document.getElementById(obj) : bw.ie4 ? document.all[obj] : bw.ns4?eval(nest + "document.layers." + obj) : 0;	
	if(!this.evnt) 
		return ('The layer does not exist ('+obj+')' + '- \nIf your using Netscape please check the nesting of your tags!')
	this.css=bw.dom||bw.ie4?this.evnt.style:this.evnt; 
	this.ref=bw.dom||bw.ie4?document:this.css.document;
	this.x=parseInt(this.css.left)||this.css.pixelLeft||this.evnt.offsetLeft||0;
	this.y=parseInt(this.css.top)||this.css.pixelTop||this.evnt.offsetTop||0
	this.w=this.evnt.offsetWidth||this.css.clip.width||
		this.ref.width||this.css.pixelWidth||0; 
	this.h=this.evnt.offsetHeight||this.css.clip.height||this.ref.height||this.css.pixelHeight||0
	this.c=0 //Clip values
	if((bw.dom || bw.ie4) && this.css.clip) {
		this.c=this.css.clip; this.c=this.c.slice(5,this.c.length-1); 
		this.c=this.c.split(' ');
		for(var i=0;i<4;i++) {
			this.c[i] = parseInt(this.c[i])
		}
	}
	this.ct=this.css.clip.top||this.c[0]||0; 
	this.cr=this.css.clip.right||this.c[1]||this.w||0;
	this.cb=this.css.clip.bottom||this.c[2]||this.h||0; 
	this.cl=this.css.clip.left||this.c[3]||0;
	this.obj = obj + "Object"; 
	eval(this.obj + "=this")
	return this
}

//Moving object to **************
lib_obj.prototype.moveIt = function(x,y){
	this.x=x;
	this.y=y; 
	zobrazPruvodce(x ,y);
}

//Moving object by ***************
lib_obj.prototype.moveBy = function(x,y){
	zobrazPruvodce(this.x += x, this.y += y);
//	this.css.left = this.x += x; 
//	this.css.top = this.y += y;
}

//Drag drop functions start *******************
dd_is_active=0; 
dd_obj=0; 
dd_mobj=0;
function lib_dd(){
	dd_is_active=1;
	if(bw.ns4)
		document.captureEvents(Event.MOUSEMOVE|Event.MOUSEDOWN|Event.MOUSEUP)

	document.onmousemove=lib_dd_move;
	document.onmousedown=lib_dd_down;
	document.onmouseup=lib_dd_up;
}

lib_obj.prototype.dragdrop = function(obj){
	if(!dd_is_active)
		lib_dd();
	this.evnt.onmouseover=new Function("lib_dd_over("+this.obj+")");
	this.evnt.onmouseout=new Function("dd_mobj=0");
	if(obj)
		this.ddobj=obj;
}

lib_obj.prototype.nodragdrop = function(){
	this.evnt.onmouseover="";
	this.evnt.onmouseout="";
	dd_obj=0;
	dd_mobj=0;
}

//Drag drop event functions
function lib_dd_over(obj){dd_mobj=obj}
function lib_dd_up(e){dd_obj=0}
function lib_dd_down(e){ //Mousedown
	if(dd_mobj){
		x=(bw.ns4 || bw.ns6)?e.pageX:event.x||event.clientX
		y=(bw.ns4 || bw.ns6)?e.pageY:event.y||event.clientY
		dd_obj=dd_mobj
		dd_obj.clX=x-dd_obj.x; 
		dd_obj.clY=y-dd_obj.y
	}
}

function lib_dd_move(e,y,rresize){ //Mousemove
	x=(bw.ns4 || bw.ns6)?e.pageX:event.x||event.clientX
	y=(bw.ns4 || bw.ns6)?e.pageY:event.y||event.clientY
	if(dd_obj){
		nx=x-dd_obj.clX; ny=y-dd_obj.clY
		if(dd_obj.ddobj)
			dd_obj.ddobj.moveIt(nx,ny)
		else
			dd_obj.moveIt(nx,ny)
	}
	if(!bw.ns4)
		return false
}
//Drag drop functions end *************
lib_obj.prototype.slideIt = function(endx,endy,inc,speed,fn){
	if (this.slideactive){
		clearTimeout(this.timeout);
		this.slideactive = 0;
	}

	if(!this.slideactive){
		var distx = endx - this.x;
		var disty = endy - this.y
		var num = Math.sqrt(Math.pow(distx,2)+Math.pow(disty,2))/inc
		var dx = distx/num; var dy = disty/num
		this.slideactive = 1; 
		if(!fn)
			fn=0;
		this.slide(dx,dy,endx,endy,speed,fn)
	}
}

lib_obj.prototype.slide = function(dx,dy,endx,endy,speed,fn) {
	if (this.slideactive && (Math.floor(Math.abs(dx)) < Math.floor(Math.abs(endx-this.x)) || Math.floor(Math.abs(dy)) < Math.floor(Math.abs(endy-this.y)))) {
		this.moveBy(dx,dy); 
		this.timeout = setTimeout(this.obj + ".slide(" + dx + "," + dy + "," + endx + "," + endy + "," + speed + ",'" + fn + "')", speed)
	} else {
		this.slideactive = 0;
		this.moveIt(endx,endy);
		if(fn) {
			eval(fn);
		}
	}
}

