/**
 * @author Sergey Chikuyonok (sc@design.ru)
 * @copyright Art.Lebedev Studio (http://www.artlebedev.ru)
 * @include "/rit-demo/js/jTweener.js"
 */

/**
 * Случайное число в заданном диапазоне
 * @param {Number} n1 Нижняя граница диапазона
 * @param {Number} n2 Верхняя граница диапазона
 * @return {Number}
 */
function rnd(n1, n2){
	return n1 + Math.round(Math.random() * (n2 - n1));
}

/**
 * Обрамляет каждое слово в переданном элементе span'ом
 * @param {Element} node
 */
function wordWrap(node) {
	var text;
	if (node.hasChildNodes()) {
		// это тэг, вызываем новый цикл сканирования
		for (var i = 0, il = node.childNodes.length; i < il; i++) {
			wordWrap(node.childNodes[i]);
		}
	} else if (node.nodeType == 3 && !isWhiteSpace(node.nodeValue)) {
		// это текстовый элемент, обрамляем слова
		var span = document.createElement('span');
		span.innerHTML = node.nodeValue.replace(/(\S+)/g, '<span class="w">$1</span>');
		node.parentNode.replaceChild(span, node);
	}
}

/**
 * Проверяет, является ли переданная строка последовательностью пробельных
 * символов.
 * @param {String} str
 * @return {Boolean}
 */
function isWhiteSpace(str) {
	return !(str.replace(/\s+/g, ''));
}

$(function(){
	// контейнер слов
	var words = $('#words');

	// обрамляем все слова span'ами
	wordWrap(words[0]);

	words.find('span.w').each(function(){
		var color = rnd(100, 255);
		color = 'rgb(' + color + ',' + color + ',' + color + ')';

		var obj = this;

		var fade_in = {
			time: rnd(5, 20) / 10,
			transition: 'easeinoutcubic',
			color: color
		};

		var fade_out = {
			time: rnd(5, 20) / 10,
			transition: 'easeinoutcubic',
			color: '#000'
		};

		// замыкаю анимации между собой
		fade_in.onComplete = function(){
			jTweener.addTween(obj, fade_out);
		};

		fade_out.onComplete = function(){
			jTweener.addTween(obj, fade_in);
		};

		// начинаю анимацию
		jTweener.addTween(obj, fade_in);

	});
});