var really_fade_tooltip = false;
var really_hide_tooltip = false;
var container_x;
var timer;
$(window).resize(function() {
	container_x = $('#container').offset().left;
});

/**
 * Executed when document is finished loading elements into DOM
 */
$(document).ready(function() {

	container_x = $('#container').offset().left;

	fixMainmenu();

	$('.scroll-pane').jScrollPane({
		showArrows: true
	});

	// replace all textual info[at]domain.com style emails to js
	$('.email').each(function(){
		var email = $(this).text().replace('[at]', '@');
		$(this).html('<a href="mailto:'+email+'">'+email+'</a>');
	});

	if ($('.banners .page').length > 1) {
		setTimeout(nextBannerPage, 5000); //setInterval is evil
	}

	if ($('#slides .item').length > 1) {
		var duration = $('#slides .item:first').attr('data-duration');
		timer = setTimeout(nextSlide, parseInt(duration) * 1000);
		
	}

	$('#map-areas area').mouseover(function(event){
		really_hide_tooltip = false;
		$('#shop-tooltip').show();

		shop_id = $(this).attr('id').split('-')[1];

		img_src = 'url('+webroot+'img/shops/medium_'+shop_id+'.jpg)';

		if (typeof(shops[shop_id]) == 'undefined'){
			if ($('#shop-tooltip div').css('background-image') != img_src){
				$('#shop-tooltip div').css('background-image', img_src);
				$('#shop-tooltip span').hide();
			}
		}else{
			$('#shop-tooltip div').css('background-image', 'none');
			$('#shop-tooltip span').html(shops[shop_id]).show();
		};
	});

	$('#map-areas area, #shop-tooltip').mousemove(function(event){
		$('#shop-tooltip').css('top', event.pageY - 80 - 60);
		$('#shop-tooltip').css('left', event.pageX - container_x - 58);
	});

	$('#map-areas area, #shop-map-img').mouseleave(function(){
		really_hide_tooltip = true;
		setTimeout("hideTooltip('shop');", 100);
	});

	$('#map-areas area, #shop-map-img').mouseover(function(){
		really_fade_tooltip = false;
		$('#shop-tooltip-clone').hide();
	});

	$('#map-areas area, #shop-map-img').mouseleave(function(){
		really_fade_tooltip = true;
		setTimeout("fadeTooltip('shop');", 100);
	});

	$('#office-map-areas area').mouseover(function(event){
		really_hide_tooltip = false;
		$('#office-tooltip').show();
		office_id = $(this).attr('id').split('-')[1];
		//$('#sh-tooltip div').css('background-image', 'none');
		var description = $("#office-description-"+office_id).html();
		$('#office-tooltip span').html(description).show();
	});

	$('#office-map-areas area, #office-tooltip').mousemove(function(event){
		$('#office-tooltip').css('top', event.pageY - 165);
		$('#office-tooltip').css('left', event.pageX - 128);
	});

	$('#office-map-areas area, #office-map-img').mouseleave(function(){
		really_hide_tooltip = true;
		setTimeout("hideTooltip('office');", 100);
	});

	$('#office-map-areas area, #office-map-img').mouseover(function(){
		really_fade_tooltip = false;

		$('#office-tooltip-clone').hide();
		//$('#shop-tooltip-clone').animate({opacity: 0}, 1000, null, function(){ $('#shop-tooltip-clone').hide(); });
	});

	$('#office-map-areas area, #office-map-img').mouseleave(function(){
		really_fade_tooltip = true;
		setTimeout("fadeTooltip('office');", 100);
	});

	$('a.lightbox').fancybox({
		titlePosition: 'inside'
	});

});

/**
 * Show next bunch of sidebar banners
 */
function nextBannerPage() {
	var container = $('.banners');
	var item = container.find('.page:visible');
	var next = item.next();
	if (!next.length) {
		next = container.find('.page:first');
	}
	item.fadeOut();
	next.fadeIn();

	setTimeout(nextBannerPage, 5000);
}


/**
 * Show next slide
 */


function nextSlide() {
	var container = $('#slides');
	var item = container.find('.item:visible');
	var next = item.next('.item');
	var itm_id = item.attr('id');
	var ids = $('.active').attr('id');
        var pag = container.find('.paginator #'+itm_id);

	if (!next.length) {
		next = container.find('.item:first');
	}

	$('.paginator li a').removeClass('active');
	$('.paginator li a#menu-'+next.attr('id')).addClass('active');
	item.fadeOut();
	next.fadeIn();

	var duration = next.attr('data-duration');
	timer = setTimeout(nextSlide, parseInt(duration) * 1000);
}

/* Choosing slide*/

function chooseSlide(n,ids,manual) {
	var container = $('#slides');
	var item = container.find('.item:visible');
	var id = $('ids');
	var next = item.siblings('#'+ids);
	if(item.attr('id') == ids){
		
	}else{
	$('.paginator li a').removeClass('active');
	$('.paginator li a#menu-'+ids).addClass('active');
	item.fadeOut();
	next.fadeIn();
       }
	if (manual)
	{
		// stop automatic slider change if user manualy chooses slider
		clearTimeout(timer);
	}
}


function hideTooltip(shop_office){
	if (really_hide_tooltip){
		$('#'+shop_office+'-tooltip').hide();
	}
}

function showTooltip(id, top, left, shop_office){
	$('#'+shop_office+'-tooltip-clone').show();
}

function fadeTooltip(shop_office){
	if (really_fade_tooltip){
		$('#'+shop_office+'-tooltip-clone').show();
	}
}


/**
 * Set .rtl (right to left class) to submenus that goes over header's right
 * side. .rtl class will force submenu to show on the left side
 *
 * It also positions 2nd level submenus so they don't go outside header as well
 *
 * Because we can't get position of hidden elements, we first show them
 * and then hide (.show() and .hide() won't work, as will not setting
 * display to none - we must remove display style from element by setting
 * it to empty string)
 *
 * todo: improve calculations
 */
function fixMainmenu() {
	var margin = $('header').outerWidth() + $('header').offset().left;
	var invisible_els = $('#mainmenu ul:hidden');
	var ul, el_margin;

	invisible_els.css('display', 'block');

	$('#mainmenu .lvl-2').each(function(k, el){
		ul = $(el);
		el_margin = ul.outerWidth() + ul.offset().left;
		if (el_margin > margin) {
			ul.css('left', (margin - el_margin)+'px');
		}
	});

	$('#mainmenu .lvl-2 ul').each(function(k, el){
		ul = $(el);
		el_margin = ul.outerWidth() + ul.offset().left;
		if (el_margin > margin) {
			ul.addClass('rtl');
		}
	});

	invisible_els.css('display', '');
}
