var opacity = 70;
var timerID = new Array();
var listaBottoni = new Array();
var delay = 75;

function initializeFade(containerId,imageClass) {
	node = document.getElementsByTagName(containerId);
	listaBottoni = getElementsByClass(imageClass,node[0],'img');
	for (i = 0; i < listaBottoni.length; i++) {
		setOpacity(listaBottoni[i],opacity);
	}
}

function increaseOpacity(image){
	obj = image;
	clearFadeTimer(obj.src);
	timerID[obj.src] = setInterval("fade(obj,0)",delay);
}

function decreaseOpacity(image){
	obj = image;
	clearFadeTimer(obj.src);
	timerID[obj.src] = setInterval("fade(obj,1)",delay);
}

function setOpacity(obj,value) {
	if ( obj.style.MozOpacity )
		obj.style.MozOpacity = value/100;
	else if ( obj.style.KhtmlOpacity )
		obj.style.KhtmlOpacity  = value/100;
	else if ( obj.filters ) {
		obj.style.cssText = "filter:alpha(opacity="+opacity+");";
		obj.filters[0].opacity = value;
	}
	else
    obj.style.opacity = value/100;
}

function clearFadeTimer(_index){
	for (i = 0; i < listaBottoni.length; i++) {
		if ( listaBottoni[i].src != _index )
			setOpacity(listaBottoni[i],opacity);
	}
	for ( var index in timerID ) {
		if ( timerID[index] )
			clearInterval(timerID[index]);
	}
}

function fade(obj,in_out){
	if ( in_out == 1 ) {
		if ( obj.style.opacity && (obj.style.opacity < 1) )
			obj.style.opacity = Math.min(parseFloat(obj.style.opacity)+0.1,1);
		else if ( obj.style.MozOpacity && (obj.style.MozOpacity < 1) )
    	obj.style.MozOpacity  = Math.min(parseFloat(obj.style.MozOpacity)+0.1,1);
    else if ( obj.style.KhtmlOpacity && (obj.style.KhtmlOpacity < 1) )
			obj.style.KhtmlOpacity = Math.min(parseFloat(obj.style.KhtmlOpacity)+0.1,1);
    else if ( obj.filters && (obj.filters[0].opacity < 100) )
			obj.filters[0].opacity = Math.min(obj.filters[0].opacity+10,100);
		else
			clearFadeTimer(obj.src);
	}
	else {
    if ( obj.style.opacity && obj.style.opacity > opacity/100 )
			obj.style.opacity = Math.max(parseFloat(obj.style.opacity)-0.1,opacity/100);
		else if ( obj.style.MozOpacity && obj.style.MozOpacity > opacity/100 )
    	obj.style.MozOpacity  = Math.max(parseFloat(obj.style.MozOpacity)-0.1,opacity/100);
    else if ( obj.style.KhtmlOpacity && obj.style.KhtmlOpacity > opacity/100 )
			obj.style.KhtmlOpacity = Math.max(parseFloat(obj.style.KhtmlOpacity)-0.1,opacity/100);
    else if ( obj.filters && obj.filters[0].opacity > opacity )
			obj.filters[0].opacity = Math.max(obj.filters[0].opacity-10,opacity);
		else
			clearFadeTimer(obj.src);
	}
}

function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}
