(function($){
		
var speed = 500;
var colZero = {width:0,marginLeft:-15};
var colNormal = {width:196,marginLeft:-15};
var colWide = {width:558,marginLeft:-15};
var container = '#container';
var menuClass = ".navmain";
var baseUrl = "http://www.cravattificiodiana.it";
var timer = 0;

$('body').ajaxError(function() {
	$.address.value('/index.php');
});

parseLinks('body');

$.address.externalChange(function(event) {

	var current = $.address.baseURL();
	
	urlSuffix = current.replace(baseUrl, '');
	path = event.value;
	
	if (current != baseUrl && current != baseUrl + '/')
	{
		document.location.href = baseUrl + '/#' + urlSuffix;
	}
	
	if (event.value == '/')
	{
		path = '/' + 'intro.php';
	}	
	
	loadPagina(path, true);
});

$.address.internalChange(function(event) {

	path = event.value;	
	
	if (event.value == '/')
	{
		path = '/' + 'intro.php';
	}
	
	loadPagina(path, false);
});

function parseLinks(from)
{
	//$('.customScrollBox').jScrollPane();
	galleryImmagini();	
	fixHeight();

	var a = $(from).find('a').not('[href*="mailto:"]').not('[target="_blank"]');
	
	a.address(function() {
		return $(this).attr('href').replace(baseUrl,'');
	});
	
	$('form').address(); 
}

function loadPagina(path, out)
{
	clearTimeout(timer);
			
	$('body').addClass('animating');
	var url = baseUrl + path;
	
	if (path.indexOf('/intro.php') >= 0) {
		//mostro l'animazione...
		loadIntro(url, path);
	}
	else
	{
		var target = $(menuClass).filter(':has(.col a[href*="' + path.replace('/','') + '"])');
		
		var next = target.next(menuClass);
		var prev = target.prev(menuClass);
		
		if (target.length > 0 && !out)
		{
			$('.curr').animate(colNormal, speed);
			$('.curr .cont').hide();
			prev.animate(colNormal,speed);
			next.animate(colNormal,speed);
			
			//riduco gli elementi distanti una colonna...
			prev.prev(menuClass).animate(colZero,speed);
			next.next(menuClass).animate(colZero,speed);
			
			//riduco gli elementi distanti due colonne...
			prev.prev(menuClass).prev(menuClass).animate(colZero,speed);
			next.next(menuClass).next(menuClass).animate(colZero,speed);
			
			//riduco gli elementi distanti tre colonne...
			prev.prev(menuClass).prev(menuClass).prev(menuClass).animate(colZero,speed);
			next.next(menuClass).next(menuClass).next(menuClass).animate(colZero,speed);
			
			target.animate(colWide, speed, function() {
				loadAjaxColumn(url);
			});
		}
		else
		{
			loadAjax(url);
		}
	}
}

function loadAjaxColumn(url)
{
	$('body').append('<span class="loading"></span>');
	$.get(url, function(data) {
		var newContent = $(data).find(container).html();
		var newTitle = data.match(/<title>([^<]+)<\/title>/i)[1];
		$.address.title(newTitle);
		$(container).css({visibility:'visible'});
		$(container).html(newContent);
		$('.cont').hide().fadeIn(speed);
		$('body').removeClass('animating');
		$('.loading').remove();	
		parseLinks(container);
	});
}

function loadAjax(url)
{
	$('body').append('<span class="loading"></span>');
	$(container).css({visibility:'visible'});
	$(container).hide();
	$.get(url, function(data) {
		var newContent = $(data).find(container).html();
		var newTitle = data.match(/<title>([^<]+)<\/title>/i)[1];
		$.address.title(newTitle);
		$(container).html(newContent).fadeIn(speed);
		$('body').removeClass('animating');
		$('.loading').remove();	
		parseLinks(container);
	});
}

function loadIntro(url,path)
{
	$('body').append('<span class="loading"></span>');
	$.get(url, function(data) {
		var newContent = $(data).find(container).html();
		var newTitle = data.match(/<title>([^<]+)<\/title>/i)[1];
		$.address.title(newTitle);
	$(container).css({visibility:'visible'});
		$(container).html(newContent);
		presentazione(path);
		$('body').removeClass('animating');
		$('.loading').remove();
		parseLinks(container);		
	});
}

function fixHeight()
{
	var windowHeight = $(window).height();
	var contentHeight = $('.spacer').outerHeight();
	
	$('html, body, #wrapper, .page, .col, #container, #container-full, .navmain, .navmain .col a, .curr .cont').height("100%");
	
	if (contentHeight > windowHeight)
	{
		$('html, body, #wrapper, .page, .col, #container, #container-full, .navmain, .navmain .col a, .curr .cont').height(contentHeight);
	}
	else if (windowHeight < 600 && contentHeight < windowHeight)
	{
		$('html, body, #wrapper, .page, .col, #container, #container-full, .navmain, .navmain .col a, .curr .cont').height(600);
	}
}

function presentazione(path)
{
	var numero = 0;
	var ms = 500;
	var slides = $('.intro-wrapper li');
	slides.hide();
	animaSlide();
	
	function animaSlide()
	{
		if (slides.eq(numero).length > 0)
		{
			var el = slides.eq(numero);
			el.fadeIn(ms);
			var orig = el.find('.number');
			if (orig.length)
			{
				growNumber(orig,orig.html());
			}
			clearTimeout(timer);
			timer = setTimeout(function() {
				el.fadeOut(1000, function() {
					animaSlide(numero++);
				});
			}, 4000);
		}
		else
		{
			//sono a fine animazione, quindi carico la pagina con le colonne...
			
			if (path.indexOf('/en/') >= 0)
			{
				$.address.value('/en/index.php');
			}
			else if (path.indexOf('/jp/') >= 0)
			{
				$.address.value('/jp/index.php');			
			}
			else
			{
				$.address.value('/index.php');
			}
		}
	}
	
	function growNumber(el, max)
	{
		el.css({opacity:0.03});
		var temp = 0;
		var framerate = 100;
		
		step = max / (ms/framerate);
		
		var x = setInterval(function() {
			if (temp >= max-1)
			{
				temp = max;
				clearInterval(x);
				el.animate({opacity:1},1000);
			}
			el.html(addZeri(Math.ceil(temp),max));
			temp+=step;
		}, framerate);
	}
	
	function addZeri(num,max)
	{
		max = '' + max;
		num = '' + num;
		
		var numZeri = max.length - num.length;
		
		for (var i=0; i<numZeri; i++)
		{
			num = '0'+num;
		}
		return num;
	}
}

function galleryImmagini()
{
	$('.gallery').each(function() {
	
		$(this).addClass('foto-gallery');
	
		var pics = $(this).find('img');
		var dotWrapper = $('<div class="dotWrapper"></div>');
		
		dotWrapper.appendTo(this);
		
		pics.each(function() {
			dotWrapper.append('<span class="dot"></span>');
		});
		
		var dots = dotWrapper.find('.dot');
		
		//preparo l'inizio...
		var curPic = pics.eq(0);
		var curDot = dots.eq(0);
		pics.hide();
		curPic.show();
		curDot.addClass('dot-hover');
		
		var timer = setInterval(rotate, 5000);
		
		dots.click(dotClick);
		
		function dotClick() {
			clearInterval(timer);
		
			dots.removeClass('dot-hover');
			$(this).addClass('dot-hover');
			
			var index = dots.index(this);
			var next = pics.eq(index);
			
			next.fadeIn(1000);
			curPic.fadeOut(1000);
			curPic = next;
			
			timer = setInterval(rotate, 5000);
		}
		
		function rotate() {
		
			next = curPic.next('img');
			
			if (next.length == 0) {
				next = pics.eq(0);
			}
			
			var index = pics.index(next);
			dots.removeClass('dot-hover');
			dots.eq(index).addClass('dot-hover');
			
			next.fadeIn(1000);
			curPic.fadeOut(1000);
			curPic = next;
		
		}
	
	});
	

}

})(jQuery);

