/**
* AFW module Text slider
*
*/
if(typeof(afw) === 'undefined')
{
	var afw = {};
}
if(typeof(afw.module) === 'undefined')
{
	afw.module = {};
}
afw.module.textslider =
{
	params :
	{
		activeIndex : -1
		,activeText : null
		,list : []
		,fullWidth : true
		,identifier : 'afw_textslider'
		,fadeType : 'text'  // text | word
	}
	,init : function()
	{
		var sliderContainer = afw.common.functions.getElement(afw.module.textslider.params.identifier);
		if(sliderContainer)
		{
			switch(afw.module.textslider.params.fadeType)
			{
				default:
				case 'text':
					afw.module.textslider.params.list = afw.common.functions.getChildren(sliderContainer, 'DIV');
				break;

				case 'word':
					afw.module.textslider.params.list = afw.common.functions.getChildren(sliderContainer, 'DIV');
					var i, m, s;
					for(i = 0, m = afw.module.textslider.params.list.length; i < m; ++i)
					{
						s = afw.module.textslider.params.list[i].innerHTML;
						s = afw.module.textslider.parseContent(s);
						afw.module.textslider.params.list[i].innerHTML = s;
					}
				break;
			}
		}
		afw.module.textslider.next();
	}
	,parseContent : function(s)
	{
		return '<span>' + s.replace(/ /mig, '</span> <span>') + '</span>';
	}
	,next : function()
	{
		if(afw.module.textslider.params.list.length && afw.common.functions.getElement(afw.module.textslider.params.identifier))
		{
			afw.module.textslider.params.activeIndex++;
			if(afw.module.textslider.params.activeText)
			{
				afw.module.textslider.params.activeText.style.display = 'none';
			}
			if(afw.module.textslider.params.activeIndex + 1 > afw.module.textslider.params.list.length)
			{
				afw.module.textslider.params.activeIndex = 0;
			}
			var text = afw.module.textslider.params.list[afw.module.textslider.params.activeIndex];
			afw.common.functions.setOpacity(text, 0);
			text.style.display = 'block';
			if(afw.module.textslider.params.fullWidth)
			{
				afw.module.textslider.setOptimizedFont(text);
			}
			if(afw.module.fader !== undefined)
			{
				switch(afw.module.textslider.params.fadeType)
				{
					default:
					case 'text':
						afw.module.fader.fade(text, 'IN', 100, 4, 0);
					break;

					case 'word':
						afw.module.fader.fade(text, 'IN', 100, 4, 0);
						var i, m, s, list;
						list = afw.common.functions.getChildren(text, 'SPAN');
						for(i = 0, m = list.length; i < m; ++i)
						{
							afw.common.functions.setOpacity(list[i], 0);
							(function(i, list)
							{
								setTimeout(function(){ afw.module.fader.fade(list[i], 'IN', 100, 4, 0); }, i * 370);
							})(i, list);
						}
					break;

					case 'block':
						afw.module.fader.fade(text, 'IN', 100, 4, 0);
						var i, m, s, list;
						list = afw.common.functions.getChildren(text);
						for(i = 0, m = list.length; i < m; ++i)
						{
							afw.common.functions.setOpacity(list[i], 0);
							(function(i, list)
							{
								setTimeout(function(){ afw.module.fader.fade(list[i], 'IN', 100, 4, 0); }, i * 370);
							})(i, list);
						}
					break;
				}
			}
			else
			{
				afw.common.functions.setOpacity(text, 100);
			}
			afw.module.textslider.params.activeText = text;
			setTimeout('afw.module.textslider.next()', 6500); // 6500
		}
	}
	,setOptimizedFont : function(o)
	{
		if(o)
		{
			var done = false;
			var fontSize = 0;
			var dim;
			var dimMax = afw.common.functions.getDimensions(o.parentNode);
			o.style.display = 'block';
			o.style.lineHeight = '1.2em';
			while(!done)
			{
				fontSize++;
				o.style.fontSize = fontSize + 'px';
				dim = afw.common.functions.getDimensions(o);
				if(dim.width > dimMax.width || dim.height > dimMax.height)
				{
					fontSize--;
					o.style.fontSize = fontSize + 'px';
					done = true;
				}
			}
			o.style.display = 'block';
		}
	}
};
afw.common.functions.addEvent('load', window, afw.module.textslider.init);
