//Gradual Elements Fader- By Dynamic Drive at http://www.dynamicdrive.com
//Last updated: Nov 8th, 07'

var gradualFader={}

gradualFader.baseopacity=0 //set base opacity when mouse isn't over element (decimal below 1)
gradualFader.increment=0.2 //amount of opacity to increase after each iteration (suggestion: 0.1 or 0.2)

document.write('<style type="text/css">\n') //write out CSS to enable opacity on "gradualfader" class
document.write('.gradualfader{filter:progid:DXImageTransform.Microsoft.alpha(opacity='+gradualFader.baseopacity*100+'); -moz-opacity:'+gradualFader.baseopacity+'; opacity:'+gradualFader.baseopacity+';}\n')
document.write('</style>')

gradualFader.setopacity=function(obj, value){ //Sets the opacity of targetobject based on the passed in value setting (0 to 1 and in between)
	var targetobject=obj
	if (targetobject && targetobject.filters && targetobject.filters[0]){ //IE syntax
		if (typeof targetobject.filters[0].opacity=="number") //IE6
			targetobject.filters[0].opacity=value*100
		else //IE 5.5
			targetobject.style.filter="alpha(opacity="+value*100+")"
		}
	else if (targetobject && typeof targetobject.style.MozOpacity!="undefined") //Old Mozilla syntax
		targetobject.style.MozOpacity=value
	else if (targetobject && typeof targetobject.style.opacity!="undefined") //Standard opacity syntax
		targetobject.style.opacity=value
	targetobject.currentopacity=value
}

gradualFader.fadeupdown=function(obj, direction){
	var targetobject=obj
	//var odir=document.getElementById(obj.id+'_direction');
	//var ostatus=document.getElementById(obj.id+'_status');
	var fadeamount=(direction=="fadeup")? this.increment : -this.increment
	if (targetobject && (direction=="fadeup" && targetobject.currentopacity<1 || direction=="fadedown" && targetobject.currentopacity>this.baseopacity)){
		this.setopacity(obj, targetobject.currentopacity+fadeamount)
		window["opacityfader"+obj._fadeorder]=setTimeout(function(){gradualFader.fadeupdown(obj, direction)}, 50)
	}
}


gradualFader.fadeupdowngroup=function(group,direction){
	for(i=1;i<9;i++){
	var targetobject=document.getElementById('gfg_'+group+'_'+i);
	var obj=targetobject;	
	var fadeamount=(direction=="fadeup")? this.increment : -this.increment
		if (targetobject && (direction=="fadeup" && targetobject.currentopacity<1 || direction=="fadedown" && targetobject.currentopacity>this.baseopacity)){
			//this.setopacity(obj, targetobject.currentopacity+fadeamount)
			clearTimeout(window["opacityfader"+obj._fadeorder]);
			//window["opacityfader"+obj._fadeorder]=setTimeout(function(){gradualFader.fadeupdown(obj, direction)}, 50)
			gradualFader.fadeupdown(obj, direction);
		}
	var gfg_opacity=document.getElementById('gfg_'+group+'_opacity');
	gfg_opacity.value=targetobject.currentopacity;
	}
}


gradualFader.clearTimer=function(obj){
if (typeof window["opacityfader"+obj._fadeorder]!="undefined")
	clearTimeout(window["opacityfader"+obj._fadeorder])
}

gradualFader.isContained=function(m, e){
	var e=window.event || e
	var c=e.relatedTarget || ((e.type=="mouseover")? e.fromElement : e.toElement)
	while (c && c!=m)try {c=c.parentNode} catch(e){c=m}
	if (c==m)
		return true
	else
		return false
}

gradualFader.fadeinterface=function(obj, e, direction){
	if (!this.isContained(obj, e)){
		gradualFader.clearTimer(obj)
		gradualFader.fadeupdown(obj, direction)
	}
}

gradualFader.collectElementbyClass=function(classname){ //Returns an array containing DIVs with specified classname
	var classnameRE=new RegExp("(^|\\s+)"+classname+"($|\\s+)", "i") //regular expression to screen for classname within element
	var pieces=[]
	var alltags=document.all? document.all : document.getElementsByTagName("*")
	for (var i=0; i<alltags.length; i++){
		if (typeof alltags[i].className=="string" && alltags[i].className.search(classnameRE)!=-1)
			pieces[pieces.length]=alltags[i]
	}
	return pieces
}



gradualFader.init=function(){
	
	//document.writeln('<input type="text" name="debug" id="debug" value="" size="30" >');
	
	var targetobjects=this.collectElementbyClass("gradualfader")
	var col=0;
	var groupcount=-1;
	var gi=0;
	for (var i=0; i<targetobjects.length; i++){
		targetobjects[i]._fadeorder=i

		var groupinfo=new Array();
		groupinfo=targetobjects[i].id.split('_');
		this.setopacity(targetobjects[i], this.baseopacity)
		//if(groupinfo[2]!='0') { this.setopacity(targetobjects[i], this.baseopacity) }
		this.setopacity(document.getElementById('gfg_'+groupinfo[1]+'_0'), 1);
		
		//color="FF"+(10*col);

		//document.writeln('<br/>i:'+groupinfo[0]+'_'+groupinfo[1]+'_'+groupinfo[2]);
				
		if(groupcount!=groupinfo[1]) { /*document.writeln('<br>');*/ groupcount=groupinfo[1]; gi=0; }
		
		if(groupinfo[2]=='0') { 
		//document.writeln('<input type="text" id="gfg_'+groupinfo[1]+'_dir" value="0" size="1" style="background-color:#00FFFF;display:none" >');
		//document.writeln('<input type="text" id="gfg_'+groupinfo[1]+'_opacity" value="0" size="1" style="background-color:#FFFFFF;display:none" >');
		//document.writeln('<input type="text" id="gfg_'+groupinfo[1]+'_'+gi+'_direction" value="0" size="1" style="background-color:#FFFF00;display:none" >');
		}
		
			if(groupinfo[0]=='gfg') {
			col++;	
			//document.writeln('<input type="text" id="gfg_'+groupinfo[1]+'_'+gi+'_direction" value="0" size="1" style="background-color:#FFFF00;display:none" >');
			if((gi+1)%3==0) { document.writeln('<br>'); }
					
			eval('targetobjects[i].onmouseover=function(e){document.getElementById(\'gfg_'+groupinfo[1]+'_'+gi+'_direction\').value=\'1\';};');
			eval('targetobjects[i].onmouseout=function(e){document.getElementById(\'gfg_'+groupinfo[1]+'_'+gi+'_direction\').value=\'0\';};');
			
			gi++;
				
			eval('intervalID=setInterval( fadegrouprefresh_'+groupinfo[1]+' , 50 );');
			//eval('fadegrouprefresh_'+groupinfo[1]+'();');
			}else{
			targetobjects[i].onmouseover=function(e){gradualFader.fadeinterface(this, e, "fadeup");}; 
			targetobjects[i].onmouseout=function(e){gradualFader.fadeinterface(this, e, "fadedown"); }
			}
	}
}

/*legge le variabili gruppo attiva le dissolvenze di conseguenza*/
function fadegrouprefresh_0(){
var gfg_opacity=document.getElementById('gfg_0_opacity');
	
	if(gfg_opacity.value=='') { gfg_opacity.value=0; opacity=0; 
	}else{ opacity=parseInt(gfg_opacity.value); }

var dir=0;	
	for(i=0;i<9;i++){
	var gfg_element=document.getElementById('gfg_0_'+i+'_direction');
	if( (gfg_element.value!='') && (gfg_element.value!='0') && (gfg_element.value!=0) ) { dir++; }
	//dir+=parseInt(gfg_element.value);		
	}
document.getElementById('gfg_0_dir').value=dir;	

	if( (dir==1) && (opacity<1) ){ gradualFader.fadeupdowngroup(0,"fadeup"); }
	if( (dir==0) && (opacity>0) ){ gradualFader.fadeupdowngroup(0,"fadedown"); }
 	
}

function fadegrouprefresh_1(){
var gfg_opacity=document.getElementById('gfg_1_opacity');

	if(gfg_opacity.value=='') { gfg_opacity.value=0; opacity=0; 
	}else{ opacity=parseInt(gfg_opacity.value); }


var dir=0;	
	for(i=0;i<9;i++){
	var gfg_element=document.getElementById('gfg_1_'+i+'_direction');
	if( (gfg_element.value!='') && (gfg_element.value!='0') && (gfg_element.value!=0) ) { dir++; }
	//dir+=parseInt(gfg_element.value);		
	}
document.getElementById('gfg_1_dir').value=dir;	
	if( (dir==1) && (opacity<1) ){ gradualFader.fadeupdowngroup(1,"fadeup"); }
	if( (dir==0) && (opacity>0) ){ gradualFader.fadeupdowngroup(1,"fadedown"); }
}

function fadegrouprefresh_2(){
var gfg_opacity=document.getElementById('gfg_2_opacity');

	if(gfg_opacity.value=='') { gfg_opacity.value=0; opacity=0; 
	}else{ opacity=parseInt(gfg_opacity.value); }

var dir=0;	
	for(i=0;i<9;i++){
	var gfg_element=document.getElementById('gfg_2_'+i+'_direction');
	if( (gfg_element.value!='') && (gfg_element.value!='0') && (gfg_element.value!=0) ) { dir++; }
	//dir+=parseInt(gfg_element.value);		
	}
document.getElementById('gfg_2_dir').value=dir;	
	if( (dir==1) && (opacity<1) ){ gradualFader.fadeupdowngroup(2,"fadeup"); }
	if( (dir==0) && (opacity>0) ){ gradualFader.fadeupdowngroup(2,"fadedown"); }
}


/*legge le variabili gruppo attiva le dissolvenze di conseguenza*/
/*
gfg_0_status.value=sum;
	if(sum>0) {
		for(i=0;i<3;i++){
		var gfg_element=document.getElementById('gfg_0_'+i);
		gfg_element.id='gfg_0_'+i;
		gradualFader.fadeupdowngroup(0,"fadeup");		
		}
	}else{
		for(i=0;i<3;i++){
		var gfg_element=document.getElementById('gfg_0_'+i);
		gfg_element.id='gfg_0_'+i;
		gradualFader.fadeupdowngroup(0,"fadedown");		
		}
	}
*/

/*
function fadegrouprefresh_1(){
var gfg_0_status=document.getElementById('gfg_1_status');
var sum=0;	
	for(i=0;i<9;i++){
	var gfg_element=document.getElementById('gfg_1_'+i+'_direction');
	sum+=parseInt(gfg_element.value);		
	}
gfg_0_status.value=sum;
	
	if(sum>0) {
		for(i=0;i<3;i++){
		var gfg_element=document.getElementById('gfg_1_'+i);
		gfg_element.id='gfg_1_'+i;
		gradualFader.fadeupdowngroup(1,"fadeup");		
		}
	}else{
		for(i=0;i<3;i++){
		var gfg_element=document.getElementById('gfg_1_'+i);
		gfg_element.id='gfg_1_'+i;
		gradualFader.fadeupdowngroup(1,"fadedown");		
		}
	}
}

function fadegrouprefresh_2(){
var gfg_0_status=document.getElementById('gfg_2_status');
var sum=0;	
	for(i=0;i<9;i++){
	var gfg_element=document.getElementById('gfg_2_'+i+'_direction');
	sum+=parseInt(gfg_element.value);		
	}
gfg_0_status.value=sum;
	
	if(sum>0) {
		for(i=0;i<3;i++){
		var gfg_element=document.getElementById('gfg_2_'+i);
		gfg_element.id='gfg_2_'+i;
		gradualFader.fadeupdowngroup(2,"fadeup");		
		}
	}else{
		for(i=0;i<3;i++){
		var gfg_element=document.getElementById('gfg_2_'+i);
		gfg_element.id='gfg_2_'+i;
		gradualFader.fadeupdowngroup(2,"fadedown");		
		}
	}
}
*/





