/* ================================ LOADING ================================ */
function loading(val) {
	var lb = document.getElementById('loadingBlock');
	setOpacity('loadingBlock', 70);
	if(val) {
		var c = document.getElementById(nextBlockId);
		var w = c.clientWidth;
		var h = c.clientHeight;
		var left = 0;
		var top = 0;
		var el = c;
		
		if (c.style.position == 'absolute') {
			left = c.style.left;
			top = c.style.top;
		} else {
			while(el != null) {
				if(el.style.position == 'absolute') {
					el = el.offsetParent;
					break;
				}
				left += el.offsetLeft;
				top += el.offsetTop;
				el = el.offsetParent;
			}
		}

		
		lb.style.left = left+"px";
		lb.style.top = (top)+"px";
		lb.style.width = (w+2)+"px";
		lb.style.height = (h+2)+"px";
		lb.style.display = "block";
		lb.style.zIndex = '1000';
		//alert(lb.style.top+" "+lb.style.left+" "+lb.style.width+" "+lb.style.height+" ");
	} else {
		setTimeout('document.getElementById(\'loadingBlock\').style.display = "none";', 500);
	}
}

/* ================================ FADE IN/OUT ================================ */

var nextBlockId = 'foto_block';
//var loading = true;
var fading = false;
var interv = 75;

function setOpacity(elemId, val) {
	var elem = document.getElementById(elemId);
	elem.style.opacity = "val/100";
	elem.style.filter = "alpha(opacity="+val+")";
	elem.style.MozOpacity = val/100;
	elem.style.KhtmlOpacity = val/100;
}

var nextIdx = 0;

/* ================================ GALLERY ================================ */
function showGallery() {
	document.getElementById('gmap').style.display = "none";
	//setOpacity('foto_block', 0);
	document.getElementById('foto_block').style.display = "";
}

function changeImage(imgId) {
	var img = document.getElementById('foto');
	if(img) {
		img.src = images[nextIdx];
		img.onload = function() { loading(false); }
		document.getElementById('act_id').innerHTML = nextIdx + 1;
		document.getElementById('foto_desc').innerHTML = descrizioni[nextIdx];
	} else {
		loading(false);
	}
}

function nextImage(imgId) {
	if(images.length == 1)
		return;
	selectGallery();
	nextIdx++;
	nextIdx %= images.length;
	nextBlockId = 'foto_block';
	loading(true);
	changeImage(imgId);
	//startFadeOut('foto_block');
}

function prevImage(imgId) {
	if(images.length == 1)
		return;
	selectGallery();
	nextIdx--;
	if(nextIdx < 0) {
		nextIdx = images.length - 1;
	}
	nextBlockId = 'foto_block';
	loading(true);
	changeImage(imgId);
	//startFadeOut('foto_block');
}

function setImage(imgId, idx) {
	if(nextIdx == idx)
		return;
	nextIdx = idx;
	nextBlockId = 'foto_block';
	loading(true);
	changeImage(imgId);
	//startFadeOut('foto_block');
}

function selectGallery() {
	if(images.length > 1) {
		loading(true);
	}
	if (nextBlockId != "gmap") {
		changeImage(nextBlockId);
		//startFadeOut(nextBlockId);
		nextBlockId = 'foto_block';
	} else {
		nextBlockId = 'foto_block';
		showGallery();
		changeImage(nextBlockId);
	}
}

/* ================================ MAPS ================================ */
_map_lat = null;
_map_long = null;
_zoom = null;

function showMaps() {
	document.getElementById('foto_block').style.display = "none";
	//setOpacity('gmap', 0);
	document.getElementById('gmap').style.display = "";
}

function displayMap(mapId) {
	PlotMap(mapId, _map_lat, _map_long, _zoom);
	document.getElementById(mapId).style.display = "";
	//setOpacity(mapId, 100);
	//startFadeIn(mapId);
}

function selectMaps(map_lat, map_long, zoom) {
	if(nextBlockId == 'gmap')
		return;
		
	_map_lat = map_lat;
	_map_long = map_long;
	_zoom = zoom;
	if(!document.mapPlotted) {
		loading(true);
		setTimeout("loading(false)", 2000);
	}
	nextBlockId = 'gmap';
	showMaps();
	displayMap('gmap');
}
