/**
 * @author rgaumond
 */

function augmentMyHeight(id,interval_time,target_height, oncomplete)
{
	try{
		if ( document.getElementById(id).offsetHeight < target_height) {
		
		if (document.getElementById(id).augment_height_interval) 
			window.clearInterval(document.getElementById(id).augment_height_interval);

		document.getElementById(id).augment_height_interval = window.setInterval(function(){
				var el_height = document.getElementById(id).offsetHeight; 
				if ((el_height == target_height) || (el_height > target_height)) {
					window.clearInterval(document.getElementById(id).augment_height_interval);
					document.getElementById(id).style.height = target_height;
					eval(oncomplete);
				}
				else if (el_height < target_height) {
					document.getElementById(id).style.height = el_height + 10+"px";
				}
			}, interval_time);
	}
	}catch(e){alert("error in function augmentMyHeight(effects.js). Error:"+e.message)}
}

function reduceMyHeight(id,interval_time,target_height, oncomplete)
{
	try{
		if ( document.getElementById(id).offsetHeight > target_height) {
		if (document.getElementById(id).the_height_interval) 
			window.clearInterval(document.getElementById(id).the_height_interval);
		
		document.getElementById(id).the_height_interval = window.setInterval(function(){
			var el_height = document.getElementById(id).offsetHeight;
			
			if ((el_height == target_height) || (el_height < target_height)
			||(el_height==20 || el_height - 20<0)) {
				window.clearInterval(document.getElementById(id).the_height_interval);
				document.getElementById(id).style.height = 1;
				el_height = target_height;
				
				eval(oncomplete);
			}
			else 
				if (el_height > target_height) {
					document.getElementById(id).style.height = el_height - 20;
					centerElementOnScreen(document.getElementById(id));
				}
		}, interval_time);
	}
	}catch(e){alert("error in function reduceMyHeight(effects.js). Error:"+e.message)}
}

function augmentMyWidth(id, interval_time, target_width, oncomplete){
	
	try{
		var el = document.getElementById(id);

		var the_width = parseInt(el.style.width);
		
	if (the_width < target_width) {
		if (el.the_width_interval) 
			window.clearInterval(el.the_width_interval);
		
		el.the_width_interval = window.setInterval(function(){
			var elem = document.getElementById(id);
			var the_width = parseInt(elem.style.width);
			
			if ((the_width == target_width) || (the_width > target_width)) {			
				window.clearInterval(elem.the_width_interval);
				elem.style.width = target_width;
				centerElementOnScreen(elem);
				eval(oncomplete);
			}
			else 
				if (the_width < target_width) {
					elem.style.width = the_width + 30;					
					centerElementOnScreen(elem);
				}
		}, interval_time);
	}
	}catch(e){alert("error in function augmentMyWidth(effects.js). Error:"+e.message)}
}

function reduceMyWidth(id, interval_time, target_width, oncomplete){
	
	try{
		var el = document.getElementById(id);

		var the_width = parseInt(el.style.width);
		
	if (the_width > target_width) {
		if (el.reduce_width_interval) 
			window.clearInterval(el.reduce_width_interval);
		
		el.reduce_width_interval = window.setInterval(function(){
			var elem = document.getElementById(id);
			var the_width = parseInt(elem.style.width);
			
			if ((the_width == target_width) || (the_width < target_width)) {			
				window.clearInterval(elem.reduce_width_interval);
				elem.style.width = target_width;
				centerElementOnScreen(elem);
				eval(oncomplete);
			}
			else 
				if (the_width > target_width) {
					if((the_width - 30)<0)
						elem.style.width=0;
					else
						elem.style.width = the_width - 30;					
					centerElementOnScreen(elem);
				}
		}, interval_time);
	}
	}catch(e){alert("error in function augmentMyWidth(effects.js). Error:"+e.message)}
}

function moveMeDown(id,interval_time,target_top)
{
	try{
		if (parseInt(document.getElementById(id).style.top) < target_top) {
		if (document.getElementById(id).the_top_interval) 
			window.clearInterval(document.getElementById(id).the_top_interval);
		document.getElementById(id).the_top_interval = window.setInterval(function(){
			var el_top = parseInt(document.getElementById(id).style.top);
			
			if ((el_top == target_top) || (el_top > target_top)) {
				window.clearInterval(document.getElementById(id).the_top_interval);
				document.getElementById(id).style.top = target_top;
			}
			else 
				if (el_top < target_top) {
					document.getElementById(id).style.top = el_top + 1;
					
				}
		}, interval_time);
	}
	}catch(e){alert("error in function reduceMyHeight(effects.js). Error:"+e.message)}
}

function moveMeUp(id,interval_time,target_top)
{
	try{
		if (parseInt(document.getElementById(id).style.top) > target_top) 
	if (document.getElementById(id).the_top_interval) 
			window.clearInterval(document.getElementById(id).the_top_interval);
	document.getElementById(id).the_top_interval = window.setInterval(
			function()
			{
			 var el_top =parseInt( document.getElementById(id).style.top);
			
			 if ((el_top == target_top) || (el_top < target_top)) {
				window.clearInterval(document.getElementById(id).the_top_interval);
				document.getElementById(id).style.top = target_top;
			 }
			 else 
			 	if (el_top > target_top) 
			 		document.getElementById(id).style.top = el_top-1;
			},interval_time);
			}catch(e){alert("error in function reduceMyHeight(effects.js). Error:"+e.message)}
}

function fadeMe(objectToFade_ID, targetedOpacity, stepsSize)
{
	try{
	var fade_object = new function()
	{
		this.objectToFade_ID=objectToFade_ID;
		this.targetedOpacity=targetedOpacity;
		this.stepsSize=stepsSize;
		return this; 
	};
	var counter=0;
	var current_index = interval_effect_array.length;
	interval_effect_array.push(fade_object);
	
	var current_object = interval_effect_array[current_index];
	interval_effect_array[current_index]._interval = window.setInterval(
		function (){
			
			var objectToFade=document.getElementById(current_object.objectToFade_ID);
			var currentOpacity;
			
			//Modifying value for IE
			if(IE)
			{
				try{currentOpacity = objectToFade.filters.alpha.opacity;}
				catch(exception){currentOpacity=0;}	
			}
			else
			{	
				if (objectToFade.style.opacity=="")
					currentOpacity = "0";
				else
					currentOpacity =  objectToFade.style.opacity*100;
			}
		
			
			if (((currentOpacity-current_object.stepsSize)<current_object.targetedOpacity)
					||(current_object.targetedOpacity==currentOpacity) )//do nothing 
			{
				if(IE)
					objectToFade.style.filter="alpha(opacity="+(current_object.targetedOpacity)+")";
				else
					objectToFade.style.opacity=current_object.targetedOpacity/100;
				
				window.clearInterval(current_object._interval);
				
				if(current_object.targetedOpacity==0)
					objectToFade.style.display="none";
				return;
				
			}
			else if (currentOpacity < current_object.targetedOpacity) 
			{
					if(IE)
					 	objectToFade.style.filter="alpha(opacity="+(currentOpacity+current_object.stepsSize)+")";
					else
						objectToFade.style.opacity=(currentOpacity+current_object.stepsSize)/100;	
		
			}
			else if (currentOpacity > current_object.targetedOpacity) 
			{
				if(IE)
			 		objectToFade.style.filter="alpha(opacity="+(parseInt(currentOpacity)-current_object.stepsSize)+")";
				else
					objectToFade.style.opacity=(currentOpacity-current_object.stepsSize)/100;
			}
		},10);
	}catch(e){alert("error in function fade_me(effects.js). Error:"+e.message)}
}

function resize_text(content, target_width,target_height ,max_size)
{
	try{
		
		content.style.fontSize = "0.1em";	
		if(max_size==null||max_size==0)
			max_size=999;//set it to an unreachable size

		do{
			if(parseFloat(content.style.fontSize)<max_size)			
				content.style.fontSize =
					parseFloat(content.style.fontSize)+0.1+"em";
			else
				break;
		}while (content.clientWidth<target_width);
	
		if(content.clientHeight>target_height)//we overflowed in heights
		do{
			content.style.fontSize =
			parseFloat(content.style.fontSize)-0.1+"em";
		}while (content.clientHeight>target_height);

	}catch(e){alert("error in function resize_text(effects.js). Error:"+e.message)}
}

function imageRoll(el)
{
	var the_src = el.src;

	if(the_src.indexOf("_on")==-1)
		the_src = the_src.substring(0,the_src.indexOf(".gif"))+"_on.gif";
	else
		the_src = the_src.substring(0,the_src.indexOf("_on"))+".gif";
	
	el.src = the_src;
}

