
/*---------------- Librerķas basada en Zapatec  Suite ------------------------------------------------*/
Effect = {};
Effect.fade = function(ref, counter) {
	if(ref.OriginalOpacity == null && ref.__zp_opacitySaved == null){
		ref.OpacitySaved = true;
		ref.OriginalOpacity = document.all ? 
			ref.style.filter : ref.style.opacity != null ? 
				ref.style.opacity : ref.style.MozOpacity;
	}

	var md = null;

	var currentOpacity = 
		(!isNaN(parseFloat(ref.OriginalOpacity || 1)) ?
			parseFloat(ref.OriginalOpacity || 1) : (
				(md = ref.OriginalOpacity.match(/alpha\(opacity=(\d+)\)/i)) ?
					parseInt(md[1]) / 100 : 1
			)
		) * counter / 100;

	if (ref.filters) {
		if (!ref.style.filter.match(/alpha/i)) {
			ref.style.filter += ' alpha(opacity=' + (currentOpacity * 100) + ')';
		} else if (ref.filters.length && ref.filters.alpha) {
			ref.style.filter = ref.style.filter.replace(/alpha\(opacity=\d+\)/ig, 'alpha(opacity=' + (Math.floor(currentOpacity * 100)) + ')')
		}
	} else {      
		if(counter > 0 && counter < 100){
			ref.style.opacity = ref.style.MozOpacity = currentOpacity;
		}
	}

	if(counter <= 0){
		ref.style.display = 'none';
		ref.style.filter = ref.style.opacity = ref.style.MozOpacity = ref.OriginalOpacity;
		ref.OriginalOpacity = null;
		ref.OpacitySaved = null;
	}

	if(counter >= 100 && ref.OpacitySaved != null) {
		ref.style.filter = ref.OriginalOpacity;
			ref.style.opacity = ref.style.MozOpacity = ref.OriginalOpacity;
	
		ref.OriginalOpacity = null;
		ref.OpacitySaved = null;
	}
};

Effect.run = function(ref,  show, animSpeed, currVal) {
 	
	if(animSpeed == null)
		animSpeed = 10;

	if(currVal < 0){
		currVal = 0;
	}

	if(currVal > 100){
		currVal = 100;
	}


if(currVal == null) {	
		if(show){
			currVal = 0;
			if(ref.style.display == "none"){
				ref.style.display = '';			
			}
		}
		else {
			currVal = 100;
		}
	}

	currVal += (show ? 1 : -1) * animSpeed;
	
   Effect.fade (ref, currVal); /* Fade Effect */
   
	if (currVal >= 0 && currVal < 100) { 
		setTimeout(function() {
		   Effect.run(ref, show, animSpeed, currVal);
		}, 50);
	}
}
