// set resize ctrl repositionuing
window.onresize = function() { 
  SetCtrlPosition(); 
}; 

// fade in and out script
var m_nCtrlChangeInterval = 5000;
var m_nOpacityChangeInterval = 100;
var Timer_CtrlChange;
var Timer_OpacityChange;

var m_CtrlPosition_Id;
var m_CtrlData_In_Id;
var m_CtrlData_Out_Id;
var m_CtrlData_Id;
var m_CtrlData_Id_Max;
var m_CtrlData_Id_Last;

function Eloquex_FadeInFadeOut(nChangeInterval, nOpacityChangeInterval, CtrlPosition_Id, CtrlData_In_Id, CtrlData_Out_Id, CtrlData_Id, CtrlData_Id_Max)
{
	m_nCtrlChangeInterval = nChangeInterval;
	m_nOpacityChangeInterval = nOpacityChangeInterval;

	m_CtrlPosition_Id = CtrlPosition_Id;
	m_CtrlData_In_Id = CtrlData_In_Id;
	m_CtrlData_Out_Id = CtrlData_Out_Id;
	m_CtrlData_Id = CtrlData_Id;
	m_CtrlData_Id_Max = CtrlData_Id_Max;

	// set initial data
	var CtrlData_In = document.getElementById(m_CtrlData_In_Id);
	var CtrlData_Out = document.getElementById(m_CtrlData_Out_Id);
	if(CtrlData_In != null)
	{
		CtrlData_In.style.display = 'none';
		CtrlData_Out.style.display = 'none';
		SetCtrlInnerHtml(CtrlData_In);
	}
	// start timer
	ResetTimer(Timer_CtrlChange, 'InitFadeInFadeOut()', 100);
}
function ResetTimer(Timer_Ctrl, strFunction, nInterval)
{
	Timer_Ctrl = setTimeout (strFunction, nInterval);
}
function ResetCtrlChangeTimer()
{
	ResetTimer(Timer_CtrlChange, 'InitFadeInFadeOut()', m_nCtrlChangeInterval);
}
function ResetOpacityChangeTimer()
{
	ResetTimer(Timer_OpacityChange, 'ChangeCtrlOpacity()', m_nOpacityChangeInterval);
}

function SetCtrlPosition()
{
	var CtrlPosition = document.getElementById(m_CtrlPosition_Id);
	var CtrlData_In = document.getElementById(m_CtrlData_In_Id);
	var CtrlData_Out = document.getElementById(m_CtrlData_Out_Id);
	if(CtrlData_In != null && CtrlData_Out != null && CtrlPosition != null)
	{
		// set position
		CtrlData_Out.style.top = CtrlData_In.style.top = GetTop(CtrlPosition) + 'px';
		CtrlData_Out.style.left = CtrlData_In.style.left = GetLeft(CtrlPosition) + 'px';
	}
}

function InitFadeInFadeOut()
{
	// set ctrl position
	SetCtrlPosition();
	// reset opacity timer
	ResetOpacityChangeTimer();
}

function ChangeCtrlOpacity(CtrlData_In, CtrlData_Out)
{
	var CtrlData_In = document.getElementById(m_CtrlData_In_Id);
	var CtrlData_Out = document.getElementById(m_CtrlData_Out_Id);
	
	if(CtrlData_In != null && CtrlData_Out != null)
	{
		CtrlData_In.style.display = '';
		CtrlData_Out.style.display = '';
		// check / set current value
		var CtrlData_In_Opacity = parseFloat(CtrlData_In.style.opacity);
		if(isNaN(CtrlData_In_Opacity))
		{
			CtrlData_In_Opacity = 0;
		}
		var CtrlData_Out_Opacity = parseFloat(CtrlData_Out.style.opacity);
		if(isNaN(CtrlData_Out_Opacity))
		{
			CtrlData_Out_Opacity = 1;
		}
		// change opacity		
		if(CtrlData_Out_Opacity > 0.0 || CtrlData_In_Opacity < 1)
		{
			CtrlData_Out_Opacity -= 0.05;
			if(CtrlData_Out_Opacity < 0)
				CtrlData_Out_Opacity = 0;
			SetCtrlOpacity(CtrlData_Out, CtrlData_Out_Opacity);
			CtrlData_In_Opacity += 0.05;
			if(CtrlData_In_Opacity > 1)
				CtrlData_In_Opacity = 1;
			SetCtrlOpacity(CtrlData_In, CtrlData_In_Opacity);
			ResetOpacityChangeTimer();
		}
		else
		{
			// fix for poor text rendering when opacity = 1
			try{CtrlData_In.style.removeAttribute('filter');}catch(err){}
			try{CtrlData_In.style.removeAttribute('opacity');}catch(err){}
			// swap ids
			var TempId = m_CtrlData_In_Id;
			m_CtrlData_In_Id = m_CtrlData_Out_Id;
			m_CtrlData_Out_Id = TempId;
			ResetCtrlChangeTimer();
			// apply new data to hidden id
			SetCtrlInnerHtml(CtrlData_Out)
		}
	}
}

function SetCtrlInnerHtml(ctrl)
{
	// get random data
	var FailSafe = 5;
	var r = Math.floor(Math.random() * m_CtrlData_Id_Max) + 1;
	if(m_CtrlData_Id_Last != undefined)
	{
		// avoid the same data
		while(r == m_CtrlData_Id_Last && FailSafe-- > 0)
		{
			r = Math.floor(Math.random() * m_CtrlData_Id_Max) + 1;
		}
	}
	m_CtrlData_Id_Last = r;
	var CtrlData = document.getElementById(m_CtrlData_Id + r);
	if(CtrlData != null)
	{
		ctrl.innerHTML = CtrlData.innerHTML;
	}
}

function SetCtrlOpacity(ctrl, nOpacity)
{
	ctrl.style.opacity=nOpacity;
	ctrl.style.filter='alpha(opacity=' + (nOpacity * 100) + ')';
}
function GetTop(cCtrl)
{
	var nTop;
	return GetTop(cCtrl, nTop)
}
function GetTop(cCtrl, nTop)
{
	if(cCtrl != undefined & cCtrl != null)
	{
		if(nTop != undefined & nTop != null)
			nTop += cCtrl.offsetTop;
		else
			nTop = cCtrl.offsetTop;
		// add parent offsets
		return GetTop(cCtrl.offsetParent, nTop)
	}
	return nTop;
}
function GetLeft(cCtrl)
{
	var nLeft;
	return GetLeft(cCtrl, nLeft)
}
function GetLeft(cCtrl, nLeft)
{
	if(cCtrl != undefined & cCtrl != null)
	{
		if(nLeft != undefined & nLeft != null)
			nLeft += cCtrl.offsetLeft;
		else
			nLeft = cCtrl.offsetLeft;
		// add parent offsets
		return GetLeft(cCtrl.offsetParent, nLeft)
	}
	return nLeft;
}


