
/* Preglednik slika */

var domDokument;
var domJezik;
var domSlikokvir;
var domSlikopribor;
var domSlika;
var domSWF;

function $ (id) {
	return (document.getElementById ? document.getElementById (id) : document.all[id]);
}

function otvori_sliku (src, sirina, visina) {
	domDokument = document.getElementById ("dokument");
	domJezik = document.getElementById ("jezik");
	domSlikokvir = document.getElementById ("slikokvir");
	domSlikopribor = document.getElementById ("slikopribor");
	domSlika = document.getElementById ("slika");

	domDokument.style.display = "none";
	domJezik.style.display = "none";
	domSlikopribor.style.display = "none";
	
	if (src.indexOf (".swf") > -1)
		domSWF = domSlikopribor.appendChild (stvori_swf (src, sirina, visina));
	else
		domSlika.src = src;
	
	animacija_oblika (domSlikokvir, 696, 400, +30, sirina+40, visina+33+40, +0, new Date().getTime(),
		function () { domSlikopribor.style.display = "block"; });
}

function zatvori_sliku () {
	if (domSlikokvir && domSlikokvir.style.display == "block") {
		domSlikopribor.style.display = "none";
		if (domSWF)
			domSlikopribor.removeChild (domSWF);
		else
			domSlika.src = "/images/pixel.gif";
		domSWF = null;
		animacija_oblika (domSlikokvir, domSlikokvir.offsetWidth, domSlikokvir.offsetHeight, +0, 696, 400, +30, new Date().getTime(),
			function () { domDokument.style.display = "block"; domJezik.style.display = "block"; domSlikokvir.style.display = "none" });
	}
}

function animacija_oblika (element, sirina1, visina1, pomak1, sirina2, visina2, pomak2, pocetak, zakljucenje) {
	var T = 300;
	var t = Math.min (T, new Date().getTime() - pocetak);
	var x = (T-t)/T;
	var y = (1 - x*x*x);
	var sirina = (t >= T ? sirina2 : Math.floor (sirina1 + (sirina2-sirina1) * y));
	var visina = (t >= T ? visina2 : Math.floor (visina1 + (visina2-visina1) * y));
	var pomak = (t >= T ? pomak2 : Math.floor (pomak1 + (pomak2-pomak1) * y));
	element.style.width = sirina + "px";
	element.style.height = visina + "px";
	element.style.marginLeft = - Math.floor (sirina/2) + "px";
	element.style.marginTop = - Math.floor (visina/2) + pomak + "px";
	element.style.display = "block";
	if (t < T)
		setTimeout (function () { animacija_oblika (element, sirina1, visina1, pomak1, sirina2, visina2, pomak2, pocetak, zakljucenje)}, 15);
	else
		zakljucenje ();
}


/* Pomoæne funkcije */

function aktivni_link (f) {
	var lokacija = new String (window.location).replace (/^http:..[^\/]+\/?|^.*\/?|[-.].*$|.html?$/g, "");
	if (lokacija == "") lokacija = "index";
	var linkovi = document.links;
	for (var i=0; linkovi && i < linkovi.length; i++) {
		var link = linkovi[i].href.replace (/^.*\/|[-.].*$|.html?$/g, "");
		if (link == lokacija)
			f (linkovi[i]);
	}
}

function stvori_swf (src, sirina, visina) {
	var div = document.createElement ("div")
	div.innerHTML =
		'<object id="slika" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+sirina+'" height="'+visina+'">' +
		'<param name="movie" value="'+src+'" /><param name="menu" value="false" /><param name="quality" value="high" /><param name="bgcolor" value="#91311A" />' +
		'<embed src="'+src+'" menu="false" quality="high" scale="noborder" bgcolor="#91311A" width="'+sirina+'" height="'+visina+'" name="swf-1" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />' +
		'</object>';
	return div;
}

function ajaxCommand (url, success, failure) {
	var ajax = (navigator.appName == "Microsoft Internet Explorer" ? new ActiveXObject ("Microsoft.XMLHTTP") : new XMLHttpRequest ());

	var ajaxtimer = setTimeout (function () {
		ajax.abort ();
		if (failure)
			failure ();
	}, 30*1000);
	
	ajax.onreadystatechange = function () {
		if (ajax.readyState == 4 /*&& !ajax.timeout*/ && success != null) {
			success (ajax.responseText);
			if (ajaxtimer)
				clearTimeout (ajaxtimer);
		}
		if (ajax.readyState > 4 /*&& !ajax.timeout*/ && failure != null) {
			failure (ajax.readyState);
			if (ajaxtimer)
				clearTimeout (ajaxtimer);
		}
		// empty function?
	}
	ajax.open ("GET", url, true);
	ajax.send (null);
}

function ajaxLoad (url, el) {
	ajaxCommand (url,
		function (response) { el.innerHTML = response },
		function (error) { el.innerHTML = "Network error" });
}
