var ZEN_Interval	= 0;
var ZEN_Animacion 	= function(){}

ZEN_Animacion.prototype = {

	
	Enlarge: function(IdElement, Limit, Velocidad, Callback){

		if(getById(IdElement).style.height == '' || getById(IdElement).style.height == 'auto'){ 
			getById(IdElement).style.height = getById(IdElement).offsetHeight+'px'
		}
		
		DisplayBlock(IdElement);
		
		func 		= arguments.callee
		Alto 		= parseInt(getById(IdElement).style.height)
		Limit		= parseInt(Limit)
		Velocidad	= parseInt(Velocidad)
		
		Alto 		= Alto+Velocidad

		if(Alto <= Limit){

			getById(IdElement).style.height = Alto+'px'
			
			if (!ZEN_Interval){
				ZEN_Interval = setInterval(function(){
				func(IdElement, Limit, Velocidad, Callback)
				}, 2)
			}
		}
		else{
		
			getById(IdElement).style.height = 'auto';

			clearInterval(ZEN_Interval)
			ZEN_Interval = 0;
			
			if(Callback != 0){
				return Callback()
			}

		}
	},


	Decrease: function(IdElement, Limit, Velocidad, Callback){

		if(getById(IdElement).style.height == '' || getById(IdElement).style.height == 'auto'){ 
			getById(IdElement).style.height = getById(IdElement).offsetHeight+'px'
		}
		
		DisplayBlock(IdElement);
		
		func 		= arguments.callee
		Alto 		= parseInt(getById(IdElement).style.height)
		Limit		= parseInt(Limit)
		Velocidad	= parseInt(Velocidad)
		
		Alto 		= Alto-Velocidad

		if(Alto >= Limit){

			getById(IdElement).style.height = Alto+'px'
			
			if (!ZEN_Interval){
				ZEN_Interval = setInterval(function(){
				func(IdElement, Limit, Velocidad, Callback)
				}, 2)
			}
		}
		else{
		
			getById(IdElement).style.height = 'auto';
		
			clearInterval(ZEN_Interval)
			ZEN_Interval = 0;
		
			if(Callback != 0){
				return Callback()
			}
		}
	},

	
	

	FadeIn: function(IdElement, Limit, Velocidad, Callback){

		if(isUndefined(getById(IdElement).style.opacity)){ 
			getById(IdElement).style.opacity = 0.1
		}
		
		DisplayBlock(IdElement);
		func 		= arguments.callee
		Alpha 		= parseInt(getById(IdElement).style.opacity*100)
		Limit		= parseInt(Limit)
		Velocidad	= parseInt(Velocidad)
		
		Alpha 		= Alpha+Velocidad

		if(Alpha <= Limit){

			getById(IdElement).style.opacity = (Alpha / 100)
			getById(IdElement).style.filter  = "alpha(opacity="+Alpha+")"

			if (!ZEN_Interval){
				ZEN_Interval = setInterval(function(){
				func(IdElement, Limit, Velocidad, Callback)
				}, 2)
			}

		}
		else{
		
			clearInterval(ZEN_Interval)
			ZEN_Interval = 0;
			
			if(Callback != 0){
				return Callback()
			}
		}
	},
	
	
	
	
	FadeOut: function(IdElement, Limit, Velocidad, Callback){
	
	
		if(isUndefined(getById(IdElement).style.opacity)){ 
			getById(IdElement).style.opacity = 0.9
		}
		
		DisplayBlock(IdElement)
		func 		= arguments.callee
		Alpha 		= getById(IdElement).style.opacity*100
		Limit		= parseInt(Limit)
		Velocidad	= parseInt(Velocidad)
		
		Alpha 		= Alpha-Velocidad

		if(Alpha >= Limit){
		
			getById(IdElement).style.opacity = (Alpha / 100)
			getById(IdElement).style.filter  = "alpha(opacity="+Alpha+")"

			if (!ZEN_Interval){
				ZEN_Interval = setInterval(function(){
				func(IdElement, Limit, Velocidad, Callback)
				}, 2)
			}
		}
		else{
		
			clearInterval(ZEN_Interval)
			ZEN_Interval = 0;
			
			if(Callback != 0){
				return Callback()
			}
		}
	}
}

