/* Any error can be reported to shahmeet.singh@morningstar.com */
/*------------- Opacity Control ------------ */
var fadeInTimeId, fadeOutTimeId;
function opactiyControl(opacityControlDirection, opacityControlUpTo, opacityControlTime, opacityControlId, opacityControlSpeed) {
	opacityControlObj = document.getElementById(opacityControlId).style;
	if(fadeInTimeId) {
		clearInterval(fadeInTimeId);
	} else if (fadeOutTimeId) {
		clearInterval(fadeOutTimeId);
	}
	/* ------------- Parse Integers ------------ */
	opacityControlUpTo = parseInt(opacityControlUpTo);
	opacityControllevel = parseInt(opacityControlObj.opacity);
	opacityControlSpeed = parseInt(opacityControlSpeed);
	
	/*--------------- Controls ------------- */
	if (opacityControlDirection == 'fadeout') {	
		fadeOutTimeId = setInterval(fadeOut, opacityControlTime, opacityControlUpTo, opacityControlObj, opacityControlSpeed);
	} else if(opacityControlDirection == 'fadein') {
		fadeInTimeId = setInterval(fadeIn, opacityControlTime, opacityControlUpTo, opacityControlObj, opacityControlSpeed);
	}
	function fadeOut(fadeOutUpTo,fadeOutObj, fadeOutSpeed) {
		if(opacityControllevel != opacityControlUpTo) {
			opacityControllevel = opacityControllevel + opacityControlSpeed;
			opacityControlObj.filter = 'alpha(opacity= ' + opacityControllevel + ')';
			opacityControlObj.opacity = '.' + opacityControllevel;
			opacityControlObj.MozOpacity = '.' + opacityControllevel;
			opacityControlObj.KhtmlOpacity = '.' + opacityControllevel;
		} else {
			clearInterval(fadeOutTimeId);
		}
	}
	function fadeIn(fadeInUpTo, fadeInObj, fadeInSpeed) {
		if(opacityControllevel > opacityControlUpTo) {
			opacityControllevel = opacityControllevel - opacityControlSpeed;
			opacityControlObj.filter = 'alpha(opacity= ' + opacityControllevel + ')';
			opacityControlObj.opacity = '.' + opacityControllevel;
			opacityControlObj.MozOpacity = '.' + opacityControllevel;
			opacityControlObj.KhtmlOpacity = '.' + opacityControllevel;
		} else {
			clearInterval(fadeInTimeId);
		}
	}
}