/**
 * (c) 2008 Martin Žaloudek, ICQ 56371711 - všechna práva vyhrazena
 *
 * verze: 08.02.07
 * aktualizace 08.02.07 - pouziti funkce addEvent z global.js 
 *    
 * použití:
 *  		prohlizeniObrazku_seznam.push({
 *				"id": "fotogalerie/pokus1/P8270615.JPG",
 *				"url": "prilohy/fotogalerie/pokus1/P8270615.JPG",
 *				"url_nahled": "nahled.php?w=800&h=533&img=fotogalerie/pokus1/P8270615.JPG",
 *				"popis": "P8270615.JPG"
 *			});
 *			prohlizeniObrazku_seznam.push({
 *				"id": "fotogalerie/pokus1/P8270620_cb.jpg",
 *				"url": "prilohy/fotogalerie/pokus1/P8270620_cb.jpg",
 *				"url_nahled": "nahled.php?w=800&h=533&img=fotogalerie/pokus1/P8270620_cb.jpg",
 *				"popis": "P8270620_cb.jpg"				
 *			});
 *
 *			<img alt="P8270615.JPG" src="nahled.php?img=fotogalerie%2Fpokus1%2FP8270615.JPG" onclick="return zobrazProhlizeniObrazku('fotogalerie/pokus1/P8270615.JPG')" />
 *			<img alt="P8270620_cb.jpg" src="nahled.php?img=fotogalerie%2Fpokus1%2FP8270620_cb.jpg" onclick="return zobrazProhlizeniObrazku('fotogalerie/pokus1/P8270620_cb.jpg')" />    
*/
var prohlizeniObrazku_seznam = new Array();
var prohlizeniObrazku_zobrazeno = false; //false=skryte, jinak ID aktualniho obrazku

addEvent(window, 'load', inicializace);
function inicializace()
{
	var div = document.createElement("div");
	div.setAttribute('id', 'prohlizeniObrazku')
	div.innerHTML = '<div class="pozadi"></div>' +   
		'	<div id="prohlizeniObrazku_ramecekContainer" class="ramecekContainer">' +
		'	<div class="ramecekContainer2">' +
		'		<div class="ramecek">' +
		'			<div id="prohlizeniObrazku_imgbox">' +
		'			</div>' +
		'			<div id="prohlizeniObrazku_navigace">' +
		'				<p><strong>Aplikace zatím nebyla inicializována.</strong></p>' +
		'				<p>' + 
		'					<a href="#" onclick="return skryjProhlizeniObrazku();">Zavřít</a> (klávesa Esc)' + 
		'				</p>' +
		'			</div>' +
		'			</div>' +
		'		</div>' +
		'</div>';	
	document.body.insertBefore(div, document.body.childNodes[0]);
}

/* pomocna funkce: najde v seznamu obrazku ten se souhlasicim ID a vrati index teto hodnoty v poli */
function idObrazkuToIndex(id)
{
	for (var i = 0; i < prohlizeniObrazku_seznam.length; i++)
	{
		if (prohlizeniObrazku_seznam[i]['id'] == id)
		{
			return i;
		}
	}
	return -1; 
}

/* ZOBRAZI OBRAZEK SE ZVOLENYM ID */
function zobrazProhlizeniObrazku(id)
{
	document.getElementById("prohlizeniObrazku").style.display = "block";

	//najit index hodnotu pole
	var index = idObrazkuToIndex(id);
	
	if (index >= 0)
	{ 
		//OBRAZERK LOADING...
		document.getElementById("prohlizeniObrazku_imgbox").innerHTML =
			'	<img class="loading" src="img/loading.gif" alt="loading..." width="32" height="32" />' +
			'	<p class="loading" >Obrázek se načítá...</p>';

		//NAVIGACE + POPIS
		var html = '';
		html += '<p class="fright">' + (index + 1) + ' / ' + prohlizeniObrazku_seznam.length + '</p>';
		html += '<p><strong>' + prohlizeniObrazku_seznam[index]['popis'] + '&nbsp;</strong></p>';
		
		html += '<p class=" fleft clear"><a href="' + prohlizeniObrazku_seznam[index]['url'] + '">plná velikost</a></p>';
		html += '<p class="fright"><a href="#" onclick="return skryjProhlizeniObrazku();">zavřít</a> (klávesa Esc)</p>';
		html += '<p>';
		if (index > 0)										//odkaz na predchozi obr
		{
			var url_predchozi = prohlizeniObrazku_seznam[index - 1]['id'];
			html += '	<a href="#" onclick="return prohlizeniObrazku_nasledujici(-1);">&laquo; předchozí</a> | ';
		}
		else
			html += '	&laquo; předchozí | ';

		if (index < (prohlizeniObrazku_seznam.length - 1))	//odkaz na nasledujici obr
		{
			var url_nasledujici = prohlizeniObrazku_seznam[index + 1]['id'];
			html += '	<a href="#" onclick="return prohlizeniObrazku_nasledujici(+1);">následující &raquo;</a>';
		}
		else
			html += '	následující &raquo; ';
		html += '</p>';
		document.getElementById("prohlizeniObrazku_navigace").innerHTML = html;

		prohlizeniObrazku_zobrazeno = id;
	
		//preload obrazku
		var preload = new Image();
		preload.onload = function() {
			zobrazProhlizeniObrazku_nopreload(prohlizeniObrazku_zobrazeno);
		}
		preload.src = prohlizeniObrazku_seznam[index]['url_nahled'];
		return false;		
	}
	else
		return true;
}
 
/* pomocne funkce - je volane funkci zobrazProhlizeniObrazku(id) po nacteni celeho obrazku do cache */
function zobrazProhlizeniObrazku_nopreload(id)
{
	if (prohlizeniObrazku_zobrazeno)	//pouze, pokud je ještě prohlizeni aktivni
	{
		//najit index hodnotu pole
		var index = idObrazkuToIndex(id);
		if (index < 0)
		{
			alert("Chyba: Litujeme, ale odkaz na soubor se nepodařilo nalézt v seznamu obrázků.");
			return true;
		}

		//ZOBRAZENI OBRAZKU
		document.getElementById("prohlizeniObrazku_imgbox").innerHTML =
			'	<a href="#" onclick="return skryjProhlizeniObrazku();">' +
			'		<img src="' + prohlizeniObrazku_seznam[index]['url_nahled'] + '" alt="' + prohlizeniObrazku_seznam[index]['popis'] + '" />' +
			'	</a>';
		
		return false;
	}
	else
		return true;
}

/* prepne na nasledujici obrazek */
function prohlizeniObrazku_nasledujici(offset)
{
	if (prohlizeniObrazku_zobrazeno)
	{
		var index = idObrazkuToIndex(prohlizeniObrazku_zobrazeno);
		
		if ((offset > 0 && index < (prohlizeniObrazku_seznam.length - offset)) || (offset < 0 && index+offset >= 0))
		{
			zobrazProhlizeniObrazku(prohlizeniObrazku_seznam[index + offset]['id']);			
		}
	}
	return false;
}

/* VYPNE PROHLIZENI OBRAZKU */
function skryjProhlizeniObrazku()
{
	document.getElementById("prohlizeniObrazku").style.display = "none";
	prohlizeniObrazku_zobrazeno = false;
	return false;
}

/* NAVIGACE KLAVESNICI */
document.onkeydown = ovladaniKlavesnici;
function ovladaniKlavesnici (event)
{
	//pouze pokud je nahled zobrazen
	if (!prohlizeniObrazku_zobrazeno && document.getElementById("prohlizeniObrazku").style.display == "none")
		return true;
	
	if (!document.getElementById)
		return true;

	if (window.event) event = window.event;

//	if ((event.ctrlKey) && (event.altKey))
	{
		switch (event.keyCode ? event.keyCode : event.which ? event.which : null)
		{
			case 27: //Esc
				skryjProhlizeniObrazku();
				return false;
				break;
			case 33: //pageUp
			case 38: //up
			case 37: //left
				prohlizeniObrazku_nasledujici(-1);
				return false;
				break;
			case 34: //pageDown
			case 40: //down
			case 39: //right
				prohlizeniObrazku_nasledujici(+1);
				return false;
				break;
		}
	}
	return true; //tlacitko neodpovida, nechat osetrit udalost prohlizecem			
}
			   
function addslashes(str)
{
	str=str.replace("'", "\\'");
	str=str.replace('"', '\\"');
	return str;
}
