/*Caricamento delel impostazioni di default in caso di configurazioni mancanti*/

if(!timer) var timer=3;
if(!Opwr) var Opwr=0.5;
if(!Osteps) var Osteps=20;
if(!Otimer) var Otimer=3;

var autoSwap=false;

function expand(e, o){
	if (!e) var e = window.event;
	var relTarg = e.relatedTarget || e.fromElement;
	if(relTarg.id!=o.id){
		sub=g(o.id+"_submenu");
		sub.style.left=o.offsetLeft+"px";
		fadeIn(sub);
	}
}
function collapse(e, o){
	if (!e) var e = window.event;
	var relTarg = e.relatedTarget || e.toElement;
	if(o.title==relTarg.title || (relTarg.tagName=="A" && relTarg.parentNode.title==o.title) ){
		return;
	}
	else{
		sub=g(o.title+"_submenu");
		fadeOut(sub);
	}
}

var immagini=new Array();
var current=0;
var previous=false;


function easeInOut(minValue,maxValue,totalSteps,actualStep,powr) { 
    var delta = maxValue - minValue; 
    var stepp = minValue+(Math.pow(((1 / totalSteps) * actualStep), powr) * delta); 
    return Math.ceil(stepp) 
}

function setOpacity(obj,opacity){
	opacity=(opacity==100) ? 99.999 : opacity;
	obj.style.filter = "alpha(opacity:"+opacity+")";
	obj.style.KHTMLOpacity = opacity/100;
	obj.style.MozOpacity = opacity/100;
	obj.style.opacity = opacity/100;
}

function getOpacity(o){
	if(o.style.opacity) return o.style.opacity*100;
	else if(o.style.filter) return o.style.filter;
	else if(o.style.KHTMLOpacity) return o.style.KHTMLOpacity*100;
	else if(o.style.MozOpacity) return o.style.MozOpacity*100;
}

function p(stringa){
	return parseInt(stringa);
}

function g(id){
	return document.getElementById(id);
}

function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}

function fadeIn(a, maxOp){
	if(!maxOp) maxOp=100;
	if(a.fade) window.clearInterval(a.fade);
	a.style.visibility="visible";
	a.style.display="block";
	var passo=0;
	var currentOp=1;
	setOpacity(a,1)
	a.fade=window.setInterval(
	function(){
		currentOp=easeInOut(1, maxOp, Osteps, passo, Opwr);
		setOpacity(a,currentOp)
		passo++;
		if(passo>Osteps)window.clearInterval(a.fade);
	}, 10);
}

function fadeOut(a, minOp, del){
	if(!del) del=false;
	if(!minOp) minOp=1;
	if(a.fade) window.clearInterval(a.fade);
	a.style.visibility="visible";
	a.style.display="block";
	var passo=0;
	var currentOp=100;
	currentOp=getOpacity(a);
	var maxOp=currentOp;
	a.fade=window.setInterval(
	function(){
		currentOp=easeInOut(maxOp, minOp, Osteps, passo, Opwr);
		setOpacity(a,currentOp)
		passo++;
		if(passo>Osteps){ window.clearInterval(a.fade); a.style.display="none"; if(del) a.parentNode.removeChild(a); }
	}, 10);
}


function swapImage(index){
	var o=g("images");
	var imgTag=document.createElement('img');
	var img=new Image();
	var ind=index%immagini.length;
	//var iTitle=g("image_title");
	//var iDescription=g("image_description");
	if(ind<0) ind=immagini.length+ind;
	
	if(previous){
		fadeOut(previous, 1, true);
	}
	o.style.backgroundImage="";
	imgTag.src="";
	imgTag.title=immagini[ind][2];
	imgTag.id="p"+ind;
	imgTag.style.visibility="hidden";
	img.onload=function(){
		imgTag.src=img.src;
		o.appendChild(imgTag);
		o.style.backgroundImage="none";
		fadeIn(imgTag);
		//iTitle.innerHTML=immagini[ind][2];
		//iDescription.innerHTML=immagini[ind][3];
		current=ind;
		previous=g("p"+current);
		if(autoSwap)
			window.clearInterval(autoSwap);
		autoSwap=window.setTimeout("swapImage(current+1);", Otimer*1000);
	}
	img.src=immagini[ind][1];
}
