var Browser = {  IEVersion: 
	function() {
		var version = 999; // we assume a sane browser    
		if (navigator.appVersion.indexOf("MSIE") != -1)      
		version = parseFloat(navigator.appVersion.split("MSIE")[1]);
		return version;  
	}
}


function show(elementId) {
	var hiddenText = document.getElementById('hiddenText'+elementId);
	var ctrlHide = document.getElementById('ctrlHide'+elementId);
	var ctrlShow = document.getElementById('ctrlShow'+elementId);	
	hiddenText.style.display= 'inline';
	ctrlHide.style.display = 'inline';
	ctrlShow.style.display = 'none';
}

function hide(elementId) {
	var hiddenText = document.getElementById('hiddenText'+elementId);
	var ctrlHide = document.getElementById('ctrlHide'+elementId);
	var ctrlShow = document.getElementById('ctrlShow'+elementId);
	hiddenText.style.display= 'none';
	ctrlHide.style.display = 'none';
	ctrlShow.style.display = 'inline';
}

function initializeGoogleMap(properties) {
	var mapDivId = properties.mapDivId;
	var zoomLevel = properties.zoomLevel;
	var latlng = new google.maps.LatLng(properties.coord.lat, properties.coord.lon);
	var typeId = google.maps.MapTypeId.ROADMAP;
	switch (properties.type) {
		case "TERRAIN": typeId = google.maps.MapTypeId.TERRAIN; break;
	}
	var myOptions = { zoom: zoomLevel, center: latlng, mapTypeId: typeId, mapTypeControl: true,	scrollwheel: false,	mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.DROPDOWN_MENU, position: google.maps.ControlPosition.TOP_RIGHT }, navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL, position: google.maps.ControlPosition.TOP_LEFT }};
	return new google.maps.Map(document.getElementById(mapDivId), myOptions);
}

function setMarkerGoogleMap(map, marker) {
			new google.maps.Marker({position: new google.maps.LatLng(marker.x, marker.y), map: map, title:marker.label});	
}

function movemap() {
	map.setZoom(7);
	
	map.setZoom(8);
	map.setZoom(9);
	//map.setCenter(new google.maps.LatLng(45.8888015747, 10.5298500061));
	
}

function HideGoogleMapsCopyright() { 
	for(var i = 0; i < map.getContainer().childNodes.length; ++i){ 
		if(map.getContainer().childNodes[i].innerHTML.indexOf("Term") !== -1){ 
			innerHTML=map.getContainer().childNodes[i].innerHTML+"<br><br><br><br>";
			map.getContainer().childNodes[i].innerHTML="";
			map.getContainer().childNodes[i].style.fontSize = '7px';   			
		} 
	} 
} 

/*
 Virtual Tours Functions
*/

var virtualTours = new Array();

function initVirtualTour (imgDirPath, picsNumber) {
	virtualTourOn = true;
	virtualTourPoints = new Array();
	for(var i = 0; i < picsNumber; i++){ 
		virtualTourPoints[i]=new VirtualTourPoint(imgDirPath+zeroPad(i+1,2)+"t"+".jpg", imgDirPath+zeroPad(i+1,2)+".jpg", "");
	}
	if (picsNumber>0) {
		virtualTours['Default'] = new VirtualTour("Default", virtualTourPoints);
		virtualTours['Default'].init();
		virtualTours['Default'].play();
	}
}

function pauseVirtualTour() {
	if(virtualTours['Default']!=null)
		virtualTours['Default'].pause();
}

function playVirtualTour() {
	if(virtualTours['Default']!=null)
		virtualTours['Default'].play();
}

function VirtualTourPoint (imageThumbUrl, imageUrl, caption) {
	this.imageThumbUrl=imageThumbUrl;
	this.imageUrl=imageUrl;
	this.caption=caption;
}

function VirtualTour(id, points) {
	this.activeVirtualTourBlendingLength=2000;
	this.swapInterval=4000;
	
	this.id=id;
	this.virtualTourOn = false;
	this.points=points;
	this.doc=document;
	this.currentIndex=0;
	this.size=points.length;
	this.nextImg;
	this.nextTimeOut;
	
	this.currentPercentage;
	this.imageid='vtimage';
	this.divid='vtdiv';

	// initialize the member function references 
  // for the class prototype
  if (typeof(_VirtualTour_prototype_called) == 'undefined') {
     _VirtualTour_prototype_called = true;
     VirtualTour.prototype.getNext = getNext;
     VirtualTour.prototype.preloadNextImage = preloadNextImage;
     VirtualTour.prototype.init = init;
     VirtualTour.prototype.stop = stop;
     VirtualTour.prototype.pause = pause;
     VirtualTour.prototype.play = play;
     VirtualTour.prototype.swapImage = swapImage;
  }
  
	function getNext() {
		this.currentIndex = (this.currentIndex + 1) % this.size;
		return this.points[this.currentIndex];
	}

	function init() {
		document.getElementById(this.imageid).src = this.points[0].imageThumbUrl;
		document.getElementById(this.divid).style.backgroundImage = "url(" + this.points[0].imageThumbUrl + ")"; 
		document.getElementById('vtlink').href = this.points[0].imageUrl;
	}
	
	
	function play() {
		if (this.virtualTourOn==false) {
			this.virtualTourOn = true;
			preloadNextImage();
			this.nextTimeOut = setTimeout(swapImage, this.swapInterval);
		}
	}

	function stop() {
		this.virtualTourOn = false;
		clearTimeout(this.nextTimeOut);
	}

	function pause() {
		this.virtualTourOn = false;
		clearTimeout(this.nextTimeOut);
	}

	function preloadNextImage() {
			var vt= virtualTours['Default'];
			vt.nextImg = new Image();
    	vt.nextImg.src = vt.points[(vt.currentIndex + 1) % vt.size].imageThumbUrl;
	}
	

	function swapImage() {
		var vt= virtualTours['Default'];
		if (vt.virtualTourOn) {
			
			// Check if the next image has been loaded. If not, try swapping after 1 second
			if(!vt.nextImg.complete) {
				vt.nextTimeOut = setTimeout(vt.swapImage, 1000);
				return;
			}
				var nextPoint=vt.getNext();
				
			//set the current image as background 
			document.getElementById(vt.divid).style.backgroundImage = "url(" + document.getElementById(vt.imageid).src + ")"; 
			//make image transparent 
			changeOpac(0, vt.imageid); 
			//make new image 
    	document.getElementById(vt.imageid).src = nextPoint.imageThumbUrl;
    	// the following action is necessary due to Highslide's interferences with the image properties (Highslide sets the object to invisible)
    	document.getElementById(vt.imageid).style.visibility = "visible";
    	// start blending    
    	vt.currentPercentage=0;
    	blendimage("Default");
			document.getElementById('vtlink').href = nextPoint.imageUrl;
    	document.getElementById('vtimage').alt= nextPoint.caption;
		}
	}
}

function blendimage(virtualTourId) {
	var vt = virtualTours[virtualTourId];
	if(vt.virtualTourOn) {
		if(vt.currentPercentage<100) {
			vt.currentPercentage++;
			changeOpac(vt.currentPercentage, vt.imageid);
			setTimeout("blendimage('"+virtualTourId+"')",vt.activeVirtualTourBlendingLength/100); 
		} else {
			vt.preloadNextImage();
			vt.nextTimeOut = setTimeout(vt.swapImage, vt.swapInterval);
		}
	} else {
			changeOpac(100, vt.imageid);
			
	}
}



//change the opacity for different browsers
function changeOpac(opacity, id) {
	var object = document.getElementById(id).style; 
	object.opacity = (opacity / 100); 
	object.MozOpacity = (opacity / 100); 
	object.KhtmlOpacity = (opacity / 100); 
	object.filter = "alpha(opacity=" + opacity + ")"; 
} 


//pad with zero a number
function zeroPad(num,count) {
	var numZeropad = num + '';
	while(numZeropad.length < count) {
		numZeropad = "0" + numZeropad; 
	}
	return numZeropad;
}


function writeQuotes() {
	document.write("\"Que dire du lac Majeur, des &icirc;les Borrom&eacute;es, du lac de C&ocirc;me, sinon plaindre ceux qui n'en sont pas fous?\"<br/>(Stendhal, 1829)<br/><br/>"+
				"\"For however fanciful and fantastic the Isola Bella may be, and is, it still is beautiful.\"<br/>(C. Dickens, 1844)<br/><br/>"+
				"\"I'm up here at Stresa a little resort on Lake Maggiore one of the most beautiful of the Italian Lakes\"<br/>(E. Hemingway, 1929)<br/><br/>");
}







