var zoom_images = new Array( );
var zoom_bg = null;
var zoom_layer = null;
var zoom_quit = null;
var zoom_prev = null;
var zoom_next = null;
var isExplorer = navigator.appName == "Microsoft Internet Explorer" && navigator.userAgent.indexOf("Opera") < 0;

function zoom_load( )
{
	for(var i=0; i<document.links.length; i++) if(document.links[i].className == "zoom" && document.links[i].getAttribute("zoom_loaded") != "yes")
	{
		document.links[i].onclick = zoom_click;
		var zoom_image = document.createElement("IMG");
		zoom_image.src = document.links[i].href;
		zoom_image.width = document.links[i].title.match(/\((\d+)x\d+\)$/)[1]; 
		zoom_image.height = document.links[i].title.match(/\(\d+x(\d+)\)$/)[1]; 
		zoom_image.title = document.links[i].firstChild.alt;
		zoom_images.push(zoom_image);
		document.links[i].setAttribute("zoom_loaded", "yes");
	}
	if(!zoom_layer)
	{
		zoom_layer = document.createElement("DIV");
		zoom_bg = document.createElement("DIV");
		zoom_quit = document.createElement("DIV");
		zoom_quit.innerHTML = "<a href=\"#\" onclick=\"return zoom_close(0)\" title=\"Chiudi\">X</a>"; 
		zoom_quit.id = "zoom_quit";
		zoom_prev = document.createElement("DIV");
		zoom_prev.innerHTML = "<a href=\"#\" onclick=\"return zoom_toprev( )\" title=\"Precedente\">&laquo; Prec.</a>";
		zoom_prev.id = "zoom_prev";
		zoom_next = document.createElement("DIV");
		zoom_next.innerHTML = "<a href=\"#\" onclick=\"return zoom_tonext( )\" title=\"Successivo\">Succ. &raquo;</a>";
		zoom_next.id = "zoom_next";
		zoom_layer.id = "zoom_layer";
		zoom_bg.id = "zoom_bg";
		zoom_layer.style.visibility = "hidden";
		zoom_bg.style.visibility = "hidden";
		zoom_layer.style.display = "none";
		zoom_bg.style.display = "none";
    if(isExplorer)
      zoom_bg.style.height = document.documentElement.scrollHeight;
    else
		{
			zoom_layer.style.position = "fixed";
			zoom_bg.style.position = "fixed";
			zoom_quit.style.position = "fixed";
			zoom_prev.style.position = "fixed";
			zoom_next.style.position = "fixed";
		}
		for(var i=0; i<zoom_images.length; i++)
			zoom_layer.appendChild(zoom_images[i]);
		document.body.appendChild(zoom_bg);
		document.body.appendChild(zoom_layer);
		document.body.appendChild(zoom_quit);
		document.body.appendChild(zoom_prev);
		document.body.appendChild(zoom_next);
		zoom_images = zoom_layer.getElementsByTagName("IMG");
	}

	var googlemap = document.getElementById("googlemap");
	if(googlemap)
	{
		var gps_lat = googlemap.title.match(/: ([\d\.]+), [\d\.]+$/)[1];
		var gps_lon = googlemap.title.match(/: [\d\.]+, ([\d\.]+)$/)[1];
		if(GBrowserIsCompatible())
		{
     	var map = new GMap2(googlemap);
      map.addControl(new GSmallMapControl());
			map.addControl(new GMapTypeControl());
    	map.setCenter(new GLatLng(gps_lat, gps_lon), 15);
			map.setMapType(G_SATELLITE_TYPE);
      var marker = new GMarker(new GLatLng(gps_lat, gps_lon));
      map.addOverlay(marker);
      GEvent.addListener(marker, "click", function() {
        marker.openInfoWindowHtml(WINDOW_HTML);
      });
      marker.openInfoWindowHtml(WINDOW_HTML);
		}	
	}
}

function zoom_click( )
{
	for(var i=0; i<zoom_images.length; i++) if(zoom_images[i].src == this.href)
	{
		zoom_display(i);
		i=zoom_images.length;
	}
	return false;
}

function zoom_close( )
{
	zoom_quit.style.display = "none"; 
	zoom_prev.style.display = "none"; 
	zoom_next.style.display = "none"; 
	zoom_layer.style.display = "none"; 
	zoom_bg.style.display = "none"; 
	zoom_quit.style.visibility = "hidden"; 
	zoom_prev.style.visibility = "hidden"; 
	zoom_next.style.visibility = "hidden"; 
	zoom_layer.style.visibility = "hidden"; 
	zoom_bg.style.visibility = "hidden";
	return false;
}

function zoom_display(image_id)
{
	zoom_bg.style.visibility = "visible";	
	zoom_bg.style.display = "block";
	zoom_layer.style.display = "block";
	zoom_quit.style.display = "block";
	zoom_prev.style.display = "block";
	zoom_next.style.display = "block";
	zoom_layer.setAttribute("image_id", image_id);
	for(var i=0; i<zoom_images.length; i++) if(i != image_id)
	{
		zoom_images[i].style.visibility = "hidden";
		zoom_images[i].style.display = "none";
	}
	for(var i=0; i<zoom_images.length; i++) if(i == image_id)
	{
		zoom_images[i].style.visibility = "visible";
		if(isExplorer)
		{
			zoom_layer.style.top = Math.max(Math.floor(document.documentElement.scrollTop + (document.documentElement.offsetHeight - zoom_images[i].height) / 2), 0) + "px";
			zoom_layer.style.left = Math.max(Math.floor(document.documentElement.scrollLeft + (document.documentElement.offsetWidth - zoom_images[i].width) / 2), 0) + "px";
		}
		else
		{
			zoom_layer.style.top = Math.max(Math.floor((window.innerHeight - zoom_images[i].height) / 2), 0) + "px";
			zoom_layer.style.left = Math.max(Math.floor((window.innerWidth - zoom_images[i].width) / 2), 0) + "px";
		}
		zoom_images[i].style.display = "block";
		zoom_quit.style.top = (zoom_layer.offsetTop - 12) + "px";  
		zoom_quit.style.left = (zoom_layer.offsetLeft + zoom_layer.offsetWidth - 20 - zoom_quit.offsetWidth) + "px";  
		zoom_prev.style.top = (zoom_layer.offsetTop + zoom_layer.offsetHeight - 12) + "px";  
		zoom_prev.style.left = (zoom_layer.offsetLeft + 20) + "px";  
		zoom_next.style.top = (zoom_layer.offsetTop + zoom_layer.offsetHeight - 12) + "px";  
		zoom_next.style.left = (zoom_layer.offsetLeft + zoom_layer.offsetWidth - 20 - zoom_next.offsetWidth) + "px";
	}
	zoom_layer.style.visibility = "visible";
	zoom_quit.style.visibility = "visible";	
	zoom_prev.style.visibility = "visible";	
	zoom_next.style.visibility = "visible";	
}

function zoom_tonext( )
{
	image_id = parseInt(zoom_layer.getAttribute("image_id"));
	previous_id = image_id; 
	image_id++;
	if(image_id == zoom_images.length)
		image_id = 0;
	zoom_layer.setAttribute("image_id", image_id); 
	for(var i=0; i<zoom_images.length; i++) if(i != image_id)
	{
		zoom_images[i].style.visibility = "hidden";
		zoom_images[i].style.display = "none";
	}
	for(var i=0; i<zoom_images.length; i++) if(i == image_id)
	{
		zoom_images[i].style.display = "block";
		if(isExplorer)
		{
			zoom_layer.style.top = Math.max(Math.floor(document.documentElement.scrollTop + (document.documentElement.offsetHeight - zoom_images[i].height) / 2), 0) + "px";
			zoom_layer.style.left = Math.max(Math.floor(document.documentElement.scrollLeft + (document.documentElement.offsetWidth - zoom_images[i].width) / 2), 0) + "px";
		}
		else
		{
			zoom_layer.style.top = Math.max(Math.floor((window.innerHeight - zoom_images[i].height) / 2), 0) + "px";
			zoom_layer.style.left = Math.max(Math.floor((window.innerWidth - zoom_images[i].width) / 2), 0) + "px";
		}
		zoom_images[i].style.visibility = "visible";
		zoom_quit.style.top = (zoom_layer.offsetTop - 12) + "px";  
		zoom_quit.style.left = (zoom_layer.offsetLeft + zoom_layer.offsetWidth - 20 - zoom_quit.offsetWidth) + "px";  
		zoom_prev.style.top = (zoom_layer.offsetTop + zoom_layer.offsetHeight - 12) + "px";  
		zoom_prev.style.left = (zoom_layer.offsetLeft + 20) + "px";  
		zoom_next.style.top = (zoom_layer.offsetTop + zoom_layer.offsetHeight - 12) + "px";  
		zoom_next.style.left = (zoom_layer.offsetLeft + zoom_layer.offsetWidth - 20 - zoom_next.offsetWidth) + "px";
	}
	zoom_layer.style.display = "block";
	return false;
}

function zoom_toprev( )
{
	image_id = parseInt(zoom_layer.getAttribute("image_id"));
	previous_id = image_id; 
	image_id--;
	if(image_id == 0)
		image_id = zoom_images.length - 1;
	zoom_layer.setAttribute("image_id", image_id); 
	for(var i=0; i<zoom_images.length; i++) if(i != image_id)
	{
		zoom_images[i].style.visibility = "hidden";
		zoom_images[i].style.display = "none";
	}
	for(var i=0; i<zoom_images.length; i++) if(i == image_id)
	{
		zoom_images[i].style.display = "block";
		if(isExplorer)
		{
			zoom_layer.style.top = Math.max(Math.floor(document.documentElement.scrollTop + (document.documentElement.offsetHeight - zoom_images[i].height) / 2), 0) + "px";
			zoom_layer.style.left = Math.max(Math.floor(document.documentElement.scrollLeft + (document.documentElement.offsetWidth - zoom_images[i].width) / 2), 0) + "px";
		}
		else
		{
			zoom_layer.style.top = Math.max(Math.floor((window.innerHeight - zoom_images[i].height) / 2), 0) + "px";
			zoom_layer.style.left = Math.max(Math.floor((window.innerWidth - zoom_images[i].width) / 2), 0) + "px";
		}
		zoom_images[i].style.visibility = "visible";
		zoom_quit.style.top = (zoom_layer.offsetTop - 12) + "px";  
		zoom_quit.style.left = (zoom_layer.offsetLeft + zoom_layer.offsetWidth - 20 - zoom_quit.offsetWidth) + "px";  
		zoom_prev.style.top = (zoom_layer.offsetTop + zoom_layer.offsetHeight - 12) + "px";  
		zoom_prev.style.left = (zoom_layer.offsetLeft + 20) + "px";  
		zoom_next.style.top = (zoom_layer.offsetTop + zoom_layer.offsetHeight - 12) + "px";  
		zoom_next.style.left = (zoom_layer.offsetLeft + zoom_layer.offsetWidth - 20 - zoom_next.offsetWidth) + "px";
	}
	zoom_layer.style.display = "block";
	return false;
}

if(typeof self.addEventListener != "undefined")
	self.addEventListener("load", zoom_load, false);
else if(typeof self.attachEvent != "undefined")
	self.attachEvent("onload", zoom_load);

//zoom_load( );
