document.write('<div id="pexeso">&nbsp;</div>');

var rozmery = new Array();
rozmery['rows'] = 9;
rozmery['cols'] = 4;
var otoceneKarticky = new Array();

//statistiky
var pocetPokusu = 0;
var zbyvaParu = 0;
var nalezenoParu = 0;
var hraciPlan = new Array();

// preload obrazku
var preload = new Array("nalezena.jpg", "otocena.jpg");
for (var i = 0; i < Math.floor(rozmery['rows']*rozmery['cols']/2); i++)
	preload.push(i + '.jpg');
for (var i = 0; i < preload.length; i++)
{
	var image = new Image();
	image.src = 'img_pexeso/' + preload[i];
}




document.onload = inicializace();
function inicializace()
{
	var document_write = '';
	
	//reset promennych
	pocetPokusu = 0;
	zbyvaParu = 0;
	nalezenoParu = 0;
	hraciPlan = new Array();
	otoceneKarticky = new Array();

	//seznam karticek
	var karticky = new Array();   
	for (var i = 1; i <= Math.floor(rozmery['rows'] * rozmery['cols'] / 2); i++)
	{
		karticky.push(i);
		karticky.push(i);
		zbyvaParu++;
	}		

	//vygenerovani hraciho pole		
	for (var r = 0; r < rozmery['rows']; r++)
	{
		hraciPlan[r] = new Array();
		for (var c = 0; c < rozmery['cols']; c++)
		{
			
			var karticka = Math.floor(Math.random()*karticky.length);	//nahodne vybrani karticky
			hraciPlan[r][c] = new Array ();		//pridani karticky na hraci pole
			hraciPlan[r][c]['cisloKarticky'] = karticky[karticka];
			hraciPlan[r][c]['stav'] = 0;	//neotocena
			karticky.splice(karticka, 1);							//ostraneni karticky se seznamu
		}
	}
	
	//vykresleni hraciho pole
	for (var r = 0; r < rozmery['rows']; r++)
	{
		for (var c = 0; c < rozmery['cols']; c++)
		{
			document_write += '<img id="karticka_' + r + '_' + c + '" src="img_pexeso/otocena.jpg" alt="" onclick="otocKartu(' + r + ',' + c + ')" />';
			document_write += '&nbsp;';
		}
		document_write += '<br />';
	}
	//vykresleni statusu
	document_write += '<p id="pexeso_status">&nbsp;</p>';
	document_write += '<p id="pexeso_reset"><input type="button" value="nová hra" onclick="inicializace();" /></p>';
	
	document.getElementById('pexeso').innerHTML = document_write;
	vypisStatistiku();
}

function vypisStatistiku()
{
	document.getElementById('pexeso_status').innerHTML = 'nalezeno: ' + nalezenoParu + ', zbývá: ' + zbyvaParu + ', pokusů: ' + pocetPokusu;
	
	if (zbyvaParu == 0)
	{
		// GRATULACE
		alert("GRATULUJI !!!\nDohrál jsi hru a potřeboval jsi na ní jen " + pocetPokusu + " pokusů.");
		inicializace(); 
	}
}
		
function otocKartu(row, col)
{
	if (otoceneKarticky.length < 2)
	{
		//neni otocena zatim zadna nebo jen jedna karta
		
		if (otoceneKarticky.length == 0)
		{
			pocetPokusu++;
			vypisStatistiku();
		}

		if (hraciPlan[row][col]['stav'] == 0)
		{
			document.getElementById('karticka_' + row + '_' + col).src = 'img_pexeso/' + hraciPlan[row][col]['cisloKarticky'] + '.jpg';
			otoceneKarticky.push(new Array(row, col));
			hraciPlan[row][col]['stav'] = 1; 	//je otocena
		}
		
		// kontrola shodnosti
		if (otoceneKarticky.length == 2)
		{
			var cisloKarticky1 = hraciPlan[otoceneKarticky[0][0]][otoceneKarticky[0][1]]['cisloKarticky'];
			var cisloKarticky2 = hraciPlan[otoceneKarticky[1][0]][otoceneKarticky[1][1]]['cisloKarticky'];

			if (cisloKarticky1 == cisloKarticky2)
			{
				//souhlasi -> odstranit z hraciho pole
				hraciPlan[otoceneKarticky[0][0]][otoceneKarticky[0][1]]['stav'] = 2;
				hraciPlan[otoceneKarticky[1][0]][otoceneKarticky[1][1]]['stav'] = 2;
				
				document.getElementById('karticka_' + otoceneKarticky[0][0] + '_' + otoceneKarticky[0][1]).src = 'img_pexeso/nalezena.jpg';
				document.getElementById('karticka_' + otoceneKarticky[1][0] + '_' + otoceneKarticky[1][1]).src = 'img_pexeso/nalezena.jpg';

				nalezenoParu++;
				zbyvaParu--;
				vypisStatistiku();
				
				otoceneKarticky = new Array();
			}
		}
	}
	else
	{
		//nesouhlasi -> otocit zpet
		hraciPlan[otoceneKarticky[0][0]][otoceneKarticky[0][1]]['stav'] = 0;
		hraciPlan[otoceneKarticky[1][0]][otoceneKarticky[1][1]]['stav'] = 0;

		document.getElementById('karticka_' + otoceneKarticky[0][0] + '_' + otoceneKarticky[0][1]).src = 'img_pexeso/otocena.jpg';
		document.getElementById('karticka_' + otoceneKarticky[1][0] + '_' + otoceneKarticky[1][1]).src = 'img_pexeso/otocena.jpg';
		otoceneKarticky = new Array();
	}
}

