/**
 * @author Oleg
 */

var loaded = false;



var preloaded = new Array();

$.fn.preloadBackImage = function(i){
	preloaded[i] = new Image();
	var arr = /url\((.+)\)/.exec($(this).css('background-image'));
	preloaded[i].src = arr[1];
};

$().ready(function(){
	// Создаём очередь загрузки, т.к IE6 не поддерживает DOM2
	var load_queue = new Array();
	if (window.onload) {load_queue.push(window.onload);}
	load_queue.push(function(){loaded = true;});
	load_queue.push(function(){$('.hide-onload').toggle();});
	window.onload = function(){
		while(load_queue.length > 0) {
			load_queue.shift().call();
		}
	}
	
	$('.hide-onload').toggle();
	$('.active-back').each(function(i){
		$(this).preloadBackImage(i);
	});
	$('.magic-button a').hover(
		function(){activate($(this).parent().find('.active-back'));},
		function(){deactivate($(this).parent().find('.active-back'));}
	);
	$('#bottom-menu a').hover(
		function(){activate($('#'+$(this).attr('rel')).find('.active-back'));},
		function(){deactivate($('#'+$(this).attr('rel')).find('.active-back'));}
	);
	$('#magical-button-links li a').hover(
		function(){activate($('#'+$(this).attr('rel')).find('.active-back'));},
		function(){deactivate($('#'+$(this).attr('rel')).find('.active-back'));}
	);
	
	$('.changeable-block a').hover(
		function(){activate($('#'+$(this).attr('rel')).find('.active-back'));},
		function(){deactivate($('#'+$(this).attr('rel')).find('.active-back'));}
	);
	
	$('#map map area').mouseenter(
		function(){
			$(this).parent().parent().find('.transparent').css('z-index', 30);
			activate($('#'+$(this).attr('rel')).find('.active-back'));
		});
	$('#map map area').mouseout(
		function(){
			deactivate($('#'+$(this).attr('rel')).find('.active-back'));
			$(this).parent().parent().find('.transparent').css('z-index', 1);
		}
	);
	
	
	// Посветить
	function activate(el, activated){
		if (loaded) {
			if (el.parent().attr('id') != 'magical-toys' && el.parent().attr('id') != 'magical-news' ) {
				$('.b-phone').css('z-index', '100');
			}
			else {
				$('.b-phone').css('z-index', '1');
			}
			
			if (el.parent().attr('id').indexOf('mirror') > -1 && !activated) {
				setTimeout(function(){animateMirror();}, 1000);
			}
			
			$('#magical-button-links li a[rel="'+el.parent().attr('id')+'"]').css('color', '#4c0b30');
			
			if (!el.hasClass('active')){
				el
					.stop()
					.addClass('active').removeClass('waiting').css({'display': 'block'})
					.animate({opacity: 1}, (700 * (1 - el.css('opacity')))); // Время не фиксировано, а хитро высчитывается от текущей прозрачности. Сделано для ситуаций когда навелись при затухании.
			}
		}
	}
	
	// Убрать подсветку
	function deactivate(el){
		$('#magical-button-links li a[rel="'+el.parent().attr('id')+'"]').css('color', '#fff');
		
		el.removeClass('active').addClass('waiting');
		setTimeout(function(){animateDeactivation(el)}, 100); // Задержка чтобы не запустить затухание если навелись на другой активатор
	}
	
	// Анимация убирания подсветки
	function animateDeactivation(el){
		if (el.hasClass('waiting')){
			el
				.removeClass('waiting')
				.animate(
					{opacity: 0}, 200, 
					function(){el.css({'display': 'none'});}
				);
		}
		if (el.parent().attr('id').indexOf('mirror') > -1) {
			el.parent().removeClass('activated');
		}
	}
	
	function animateMirror(force) {
		if ($('#mirror').find('.active').size() > 0 && (!$('#mirror').hasClass('activated') || force)) {
			$('#mirror').addClass('activated');
			var index = $('#mirror .m-back').index($('#mirror').find('.m-active')) + 1; // текущий элемент
			
			var next = (index % $('#mirror .m-back').size()) + 1;
//			alert(next);
			var next_el = $('#mirror .back-'+next);
			next_el.css({'opacity': '1', 'display': 'block', 'z-index': '9'}).addClass('m-active');
			//next_el.addClass('active-back').addClass('active').css({'display': 'block'});
			
			
			var curr_el = $('#mirror .back-'+index);
			curr_el.css({'opacity': '1', 'z-index': '10'}).animate({'opacity' : 0}, function(){
				curr_el.removeClass('m-active');
				});
			//curr_el.removeClass('active-back').removeClass('active').css({'display': 'none'});
			
			//activate(next_el);
			//deactivate(curr_el);
			//next_el.addClass('active-back').addClass('active').css({'display': 'block'});
			setTimeout(function(){animateMirror(true);}, 1000);
		}
	}
	
	$('.active-back, .mirror-back').css({'opacity': 0});
	
	
	/* Фиксим баг ие6 с морганием мыши */
	try{
		document.execCommand("BackgroundImageCache", false, true);} 
	
	catch(e) {
		}
});
