/**
 * @author Sergey Chikuyonok (gonarch@design.ru)
 * @copyright Art.Lebedev Studio (http://www.artlebedev.ru)
 */

var words = [];
var word_iterator = -1;
var timer;
var flash_loaded = false;

var connection_id = (new Date()).getTime();

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

function isWhiteSpace(str){
	return !(str.replace(/\s+/g, ''));
}

function flashLoaded(){
	flash_loaded = true;
}

function animateWords(){
	words = $('#intro .comma .word, #intro h1>span>.word');
	word_iterator = words.length;

	$('#intro img').unbind('click', animateWords);
	clearTimeout(timer);

	timer = setInterval(_wordsAnim, 100);
}

function hideLogo(a){
	//console.log('got from flash '+a, arguments);
	//$('#logo img').fadeOut('normal', repositionHeader);
	$('#logo img').hide();
	//setTimeout(function(){$('#logo img').hide();}, 10);
	repositionHeader();
//	broadcastMessage('play');
}

function repositionHeader(){
	var root = $('#intro');
	var header = $('h1', root);

	header.css({width: 'auto'});

	var root_width = header[0].offsetWidth;
	root.css({width: root_width});
	var pos = document.body.offsetWidth - root[0].offsetLeft - root_width;

	if($.browser.mozilla)
		$('#flash').css('z-index', 1);


	root.css({marginLeft: 0, left: 'auto', right: pos});
	header.css({right: 0});
	var tw = new Tween(root, 'right', EEQ.Cubic.easeInOut, pos, 30, 35);
	tw.onMotionFinished = function(){
		//broadcastMessage('play');


		//hideLogo();
		return;
		$('#intro a').hover(
			function(){
				broadcastMessage('hilite');
				if($.browser.mozilla)
					$('#flash').css('z-index', 0);
			},
			function(){
				broadcastMessage('downlite');
				if($.browser.mozilla)
					$('#flash').css('z-index', 1);
			}
		);
	}

}

function _wordsAnim(obj){
	word_iterator--;
	if(word_iterator >= 0){
		var tw = new Tween(words[word_iterator], 'color', EEQ.linear, '#424242', '#ffffff', 15);
		if(!$(words[word_iterator]).is('.comma'))
			tw.onMotionFinished = _removeWord;

		if(word_iterator == Math.round(words.length/2))
			_repositionLogo();
	}
	else{
		clearInterval(timer);
		_animateHref();
	}
}

function _removeWord(obj){
	if(obj){
		$(obj).remove();
	}
}

function _animateHref(){
	var links = $('#intro h1 a');
	new Tween(links.find('.word'), 'color', EEQ.linear, '#424242', '#af0000', 15);
	var tw = new Tween(links, 'color', EEQ.linear, '#ffffff', '#af0000', 16);
	tw.onMotionFinished = function(obj){
		obj = $(obj);
		obj.html( obj.text() );
	}
}

function _repositionLogo(){
	var elem = $('#intro');

	var tw = new Tween(elem, 'margin-left', EEQ.Cubic.easeInOut, 0, 162, 40);
	tw.onMotionFinished = function(){
		broadcastMessage('ready');
	}
}

function broadcastMessage(msg){
	//return;
	//console.log('broadcasting');
	var so = new SWFObject(broadcasterUrl, 'flash_broadcaster', '10', '10', 9, '#ffffff');
	so.addParam('allowScriptAccess', 'always');
	so.addVariable('cid', connection_id);
	so.addVariable('message', msg);
	so.write('broadcaster');
}

function dbg(msg){
//	if(console){
//		console.log(msg);
//	}
}

$(function(){
	var root = $('#intro');
	var header = $('h1', root);
	nodeScan(header[0]);
	root.find('.comma').prepend( $('<span>').addClass('dot').html('.'));

	//делаем ссылки белыми
	header.find('a').css('color', '#ffffff');

	$('img', root).click(animateWords);

	timer = setTimeout(animateWords, 2000);

//	var so = new SWFObject(cardsUrl, 'flash_cards', '100%', '100%', 9, '#ffffff');
	var so = new SWFObject('/f/1/index.swf', 'flash_cards', '100%', '100%', 9, '#ffffff');
	so.addParam('wmode', ($.browser.mozilla) ? 'transparent' : 'opaque');
	so.addParam('allowScriptAccess', 'always');
//	so.addParam('scale', 'default');
	so.addVariable('cid', connection_id);
//	so.addVariable('fw_cards', '/f/1/index.swf?f='+(new Date()).getTime());
	so.addVariable('fw_url', $('#intro a').attr('href'));
	so.write('flash');
});