// -------------------------------------------------------------------
// variabili generali
var url_base = './';
var url_separator = '/#/';

var d = 900;
var e = 'easeOutExpo';

var is_ie = false;
var window_resize = true;

// -------------------------------------------------------------------
// variabili sfondo (default)
var background_url = '#';

// -------------------------------------------------------------------
// funzioni
jQuery(function(){
	$.ajaxSetup ({
	    cache: false
	});
	
	load_crosslayout(background_url);
	load_menupage();
	validate_contacts();
});

$(window).resize(function(){
	if (is_ie){
		
	}else{
		delayed_resize(false);
	}
});

function delayed_resize(delayed_resize){
	if (window_resize || delayed_resize){
		
		if (window_resize && !delayed_resize){
			setTimeout("delayed_resize(true)", 1000);
			setTimeout("resize_again()", 1500);
			window_resize = false;
		}
		
		load_crosslayout(background_url);
		
	}
}

function resize_again(){
	window_resize = true;
}

/*
function load_url(){
	
	var url = window.location.href;
	var url_pure = url.replace(url_separator, '/');
	
	if (url_pure == url_base || url_pure == (url_base + '/')){

		if (url.indexOf(url_separator) != -1) {
			if ($('.current-menu-item').find('a').attr("href") != url_pure) {
				$.post(url_pure, function(data){
					$('body').html(data);
				});
				return 'loading';
			}
		}
		
	} else {
		if (url.indexOf(url_separator) == -1) {
			return url;
			
		} else { 
			if ($('.current-menu-item').find('a').attr("href") != url_pure) {
				$.post(url_pure, function(data){
					$('body').html(data);
				});
				return 'loading';
			}
		}
	}
	
	return 'loaded';
}
*/

function load_crosslayout(background_url){
	var h = $(window).height();
	var w = $(window).width();
	
	$('body').css('overflow', 'hidden');
	
	if (is_ie) { 
		load_columns(true); 
		setTimeout("$('body').css('overflow-y', 'auto')", d);
	}
		
	$('<img />')
		.attr('height', h)
		.attr('width', w)
	    .attr('src', background_url)
	    .load(function(){
	        $('#background').html($(this));
			$('#background').show('fade', d);
			
			if (!is_ie) { 
				load_columns(true);
				setTimeout("$('body').css('overflow-y', 'auto')", d);
			}
	    });
}

function load_columns(opening_page){
	var h = $(window).height();
	var w = $(window).width();
	
	// -------------------------------------------------------------------
	// variabili colonne
	var margin = 10;

	// top - bottom
	var w_page = 850;
	var w_top = 300;
	var w_bottom = w_page - (w_top + margin); 
	if (w < (w_page + (2 * margin))) { $('body').css('overflow-x', 'scroll'); }

	var hp_top = 45;
	var hp_bottom = 70;
	var h_top = (h / 100) * hp_top;
	if (h_top < 350) { h_top = 350; }
	var h_bottom = (h / 100) * hp_bottom;

	var mleft_top = (w / 2) - (w_page / 2);
	var mleft_bottom = mleft_top + w_top + margin;

	// left - right
	var w_left = mleft_top + w_top;
	var w_right = w - mleft_bottom;

	var h_left = 130;
	var h_right = 40;

	var mtop_left = h_top + margin;
	var mtop_right = h - (h_right + margin + h_bottom);

	// stati
	var p0_opacity = 1;
	var p1_opacity = 1;

	var p0_top = 0 - h_top;
	var p1_top = 0;

	var p0_bottom = h;
	var p1_bottom = h - h_bottom;

	var p0_left = 0 - w_left;
	var p1_left = 0;

	var p0_right = w;
	var p1_right = w - w_right;
	
	if (!opening_page){
		p0_opacity = 1;
		p1_opacity = 0;

		p1_top = 0 - h_top;
		p0_top = 0;

		p1_bottom = h;
		p0_bottom = h - h_bottom;

		p1_left = 0 - w_left;
		p0_left = 0;

		p1_right = w;
		p0_right = w - w_right;
	}
	
	$('#top').css('height', h_top);
	$('#top').css('width', w_top);
	$('#top').css('left', mleft_top);

	$('#bottom').css('min-height', h_bottom);
	$('#bottom').css('width', w_bottom);
	$('#bottom').css('left', mleft_bottom);

	$('#left').css('height', h_left);
	$('#left').css('width', w_left);
	$('#left').css('top', mtop_left);

	$('#right').css('height', h_right);
	$('#right').css('width', w_right);
	$('#right').css('top', mtop_right);
	
	$('.element').css('display', 'block');
		
	$('#top').css('top', p0_top);
	$('#top').css('opacity', p0_opacity);
	$('#top').animate(
		{ top: p1_top, opacity: p1_opacity }, 
		{ duration: d, easing: e }
	);

	$('#bottom').css('top', p0_bottom);
	$('#bottom').css('opacity', p0_opacity);
	$('#bottom').animate(
		{ top: p1_bottom, opacity: p1_opacity }, 
		{ duration: d, easing: e }
	);

	$('#left').css('left', p0_left);
	$('#left').css('opacity', p0_opacity);
	$('#left').animate(
		{ left: p1_left, opacity: p1_opacity }, 
		{ duration: d, easing: e }
	);

	$('#right').css('left', p0_right);
	$('#right').css('opacity', p0_opacity);
	$('#right').animate(
		{ left: p1_right, opacity: p1_opacity }, 
		{ duration: d, easing: e }
	);
}

function load_menupage(){
	$("ul.menu li.menu-item a").click(function(){
		$("ul.menu li").removeClass('menu-item');

		$('body').css('overflow', 'hidden');

		var url = $(this).attr("href");
		var rel = $(this).attr("rel");
		rel = rel.replace('/', '');

		$("ul.menu li a").removeAttr('href');
		$("ul.menu li a").addClass('unselected');

		$(this).removeClass();
		$(this).addClass('selected');

		load_columns(false);

		$('#background').hide('fade', d, function(){
			window.location.href = url; 
			//load_url();
		});

		return false;
	});
}

function validate_contacts(){
	$('form#contact-form').submit(function() {
		
		$('form#contact-form .error').remove();
		$('form#contact-form input').removeClass('inputError');
		$('form#contact-form textarea').removeClass('inputError');
		
		var hasError = false;
		
		$('.requiredField').each(function() {
			if(jQuery.trim($(this).val()) == '') {
            	var labelText = $(this).prev('label').text();
            	$(this).prev('label').find('em').append('<span class="error">Richiesto</span>');
            	$(this).addClass('inputError');
            	hasError = true;

            } else if($(this).hasClass('email')) {
            	var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
            	if(!emailReg.test(jQuery.trim($(this).val()))) {
            		var labelText = $(this).prev('label').text();
            		$(this).prev('label').find('em').append('<span class="error">Invalida</span>');
            		$(this).addClass('inputError');
            		hasError = true;
            	}
            }
		});
		
		if(!hasError) {
			$('form#contact-form input.submit').fadeOut('normal', function() {
				$(this).parent().append('');
			});
			
			var formInput = $(this).serialize();
			
			$.post($(this).attr('action'),formInput, function(data){
				$('form#contact-form').slideUp(d, function() {
					$(this).before('<h3>Grazie!</h3><p>Il tuo messaggio è stato correttamente inviato. Ti ricontatteremo il prima possibile.</p>');
				});
			});
		}

		return false;

	});
}

