/******************************************************************************************************************/
// ADJUST
/******************************************************************************************************************/

var ww;
var wh;

function adjustSize(){
	// questa la devo sistemare!!!
	
	ww = $(window).width();
	wh = $(window).height();
	
	if ($('#panel').height() <= wh) {
		$('#panel').height(wh);
	}
	else {
		$('#bg, #content').height($('#panel').height()); 
		//$('#bg img').width(ww);
	}
}

/******************************************************************************************************************/
// SLIDER
/******************************************************************************************************************/

var sindex = 0;
var snum = 0;
var simg = Array();
var slidertimer;

function nextSlide(){
	sindex++;
	if (sindex >= snum) sindex = 0;
	
	$('<img />').attr('src', simg[sindex]).load(function(){
		myimg = $(this);
		$('.slider .viewport img').fadeOut(800, function(){
			$('.slider .viewport').html(myimg.fadeIn(1000));
			slidertimer = window.setTimeout('nextSlide()', 6000);
		});
	});
}

function handleSlider(){
	snum = $('.slider li').size();
	
	if (snum > 1){
		// init images array
		$('.slider li').each(function(i){
			simg[i] = $(this).html();
		});
		
		// preload first image an show the panel
		$('.slider ul').remove();
		$('.slider .viewport').addClass('loading');
		$('<img />').attr('src', simg[sindex]).load(function(){
			$('.slider .viewport').removeClass('loading');
	        $('.slider .viewport').html($(this).fadeIn(1000, function(){ 
				handleNav(); 
				slidertimer = window.setTimeout('nextSlide()', 6000);
			}));
	    });
	}
}

/******************************************************************************************************************/
// GALLERY
/******************************************************************************************************************/

var gnum = 0;
var gindex = 0;

function showPhoto(mylink){
	clearTimeout(slidertimer);
	
	$('#bg .viewport').addClass('loading');
	$('#bg .viewport img').fadeOut(800, function(){
		// load img
		$('<img />').attr('src', mylink).load(function(){
			myimg = $(this);
			myimg.css({ marginTop: 20, width: 'auto', height: (wh - 40) });
			
			$('#bg .viewport').removeClass('loading').html(myimg.fadeIn(1000));
		});
	});
}

function handleGallery(){
	// click
	$('.gallery a').live('click', function(){
		clearTimeout(slidertimer);
		$('#panel, #page').animate({ left: -600 }, 800).fadeOut(800);
		$('#social').fadeOut(800);
		
		// setup gallery
		gnum = $('.gallery a').size();
		gindex = $('.gallery a').index(this); 
		mylink = $(this).attr('href');
		
		$('#bg').prepend('<div id="gal-close" class="close">&times;</div><div class="nav"><div id="prev" class="arrow left"></div><div id="next" class="arrow right"></div><div class="title">'+ $('#page .title').html() +'</div><div class="bullets"></div></div>');
		
		for (i = 0; i < gnum; i++) $('#bg .nav .bullets').append('<span class="bullet">'+ i +'</span>');
		
		$('#bg .bullet').removeClass('sel');
		$('#bg .bullet:eq('+ gindex +')').addClass('sel');
		
		$('#bg .nav, #gal-close').fadeIn(800);
		
		// show photo
		showPhoto(mylink);
		
		return false;
	});
	
	// bullet
	$('#bg .bullet').live('click', function(){
		if (!$(this).hasClass('sel')){
			gindex = $('#bg .bullet').index(this); 
			mylink = $('.gallery a:eq('+ gindex +')').attr('href');
		
			showPhoto(mylink);
		
			$('#bg .bullet').removeClass('sel');
			$(this).addClass('sel');
		}
	});
	
	// next
	$('#next').live('click', function(){
		gindex++;
		if (gindex >= gnum) gindex = 0;
		
		mylink = $('.gallery a:eq('+ gindex +')').attr('href');
		
		showPhoto(mylink);
		
		$('#bg .bullet').removeClass('sel');
		$('#bg .bullet:eq('+ gindex +')').addClass('sel');
	});
	
	// prev
	$('#prev').live('click', function(){
		gindex--;
		if (gindex < 0) gindex = gnum - 1;
		
		mylink = $('.gallery a:eq('+ gindex +')').attr('href');
		
		showPhoto(mylink);
		
		$('#bg .bullet').removeClass('sel');
		$('#bg .bullet:eq('+ gindex +')').addClass('sel');
	});
	
	// close
	$('#gal-close').live('click', function(){
		$('#panel').fadeIn(500).animate({ left: 100 }, 1000);
		$('#page').fadeIn(500).animate({ left: 360 }, 1000);
		$('#social').fadeIn(1000);
		
		$('#bg .nav, #gal-close').remove();
		$('.slider .viewport img').fadeOut(300);
		
		// restore bg slider
		nextSlide();
	});
}

/******************************************************************************************************************/
// NAV
/******************************************************************************************************************/

function loadMap(){
	var latlng = new google.maps.LatLng(43.028949,13.857729);
	var myOptions = {
		zoom: 16,
		center: latlng,
		mapTypeId: google.maps.MapTypeId.HYBRID,//ROADMAP,
     	disableDoubleClickZoom: true,
     	//draggable: false,
     	keyboardShortcuts: false,
     	//overviewMapControl: false,
     	//panControl: false,
     	//rotateControl: false,
     	//scaleControl: false,
     	scrollwheel: false,
     	//streetViewControl: false,
     	//zoomControl: false,
	};
	
	var map = new google.maps.Map(document.getElementById("map"),myOptions);
	
	var marker = new google.maps.Marker({
		position: latlng, 
		map: map, 
		title: "Villa Cellini - Cupra Marittima (AP)"
	});
	
	
	infowindow = new google.maps.InfoWindow();
	infowindow.setContent('<strong>Villa Cellini</strong><br />via Adriatica Nord, 71<br />63064 - Cupra Marittima (AP)<br/>0735 778670 ');
  	infowindow.open(map,marker);
}

function handleNav(){
	var mloaded = false;
	
	$('#page').css({ width: 0 });
	
	// home
	if ($('#panel').hasClass('center')) {
		$('#panel').css({ left: (ww - 300) / 2 });	
		$('#panel').fadeIn(1500, function(){
			$(this).animate({ left: 100 }, 1500);
			$('#payoff, #social').fadeIn(1500);
		});
	}
	else {
		$('#panel').fadeIn(1500, function(){
			$('#page').animate({ width: 480 }, 800).fadeIn(800);
			$('#social').fadeIn(1500);
		});
	}
	
	$('#logo a').click(function(){
		$('#map').fadeOut(500);
		$('#panel').removeClass('contrast');
		$('#page').animate({ width: 0 }, 800).fadeOut(800);
		$('#payoff').fadeIn(800);
		$('#nav a').removeClass('sel');
		$('#frm-contact').hide();
		closeSocial();
		
		return false;
	});
	
	// click
	$('#nav a').click(function(){
		$('#frm-contact').hide();
		$('#payoff').fadeOut(800);
		closeSocial();
		
		$('#nav a').removeClass('sel');
		$(this).addClass('sel');
		
		mylink = $(this).attr('href');
		
		if ($(this).hasClass('map')) {
			$('#page').animate({ width: 0 }, 800).fadeOut(800);
			$('#map').fadeIn(800, function(){ $('#panel').addClass('contrast'); });
			
			if (!mloaded) {
				loadMap();
				mloaded = true;
			}
		}
		else {
			$('#map').fadeOut(500);
			$('#panel').removeClass('contrast');
			$('#page').html('<div class="loader"></div>');
		
			$('#page').animate({ width: 480 }, 1000, function(){
				jQuery.ajax({
					url: mylink,
					success: function(html){
						$('#page').html($(html).find('#page').html());
					}
				});
			});
		}
		
		return false;
	});
}

/******************************************************************************************************************/
// CONTACT
/******************************************************************************************************************/

function handleContact(){
	$('#frm-open').click(function(){
		$('#frm-contact').show();
		
		$('#map').fadeOut(500);
		$('#panel').removeClass('contrast');
		$('#page').animate({ width: 0 }, 800).fadeOut(800);
		$('#payoff').fadeIn(800);
		$('#nav a').removeClass('sel');
		closeSocial();
		
		return false;
	});
	
	$('#frm-close').click(function(){ $('#frm-contact').hide(); });
	
	// submit
	$('#frm-contact').submit(function(){
		// qui ci va la gestione ajax del form
		
		return false;
	});
}

/******************************************************************************************************************/
// SOCIAL
/******************************************************************************************************************/

var sr = 0;
var pnum = 0;
var pindex = 0;
var sopen = false;
var ptimer;

function openSocial(){
	$('#map').fadeOut(500);
	$('#panel').removeClass('contrast');
	$('#page').animate({ width: 0 }, 800).fadeOut(800);
	$('#payoff').fadeIn(800);
	$('#nav a').removeClass('sel');
	$('#frm-contact').hide();

	if (ww <= 1200) $('#panel').fadeOut(800);

	$('#social').animate({ right: 0 }, 800);
	$('#box-toggle').addClass('close');
	
	sopen = true;
}

function closeSocial(){
	if (ww <= 1200) $('#panel').fadeIn(800);

	$('#social').animate({ right: sr }, 800);
	$('#box-toggle').removeClass('close');
	
	sopen = false;
}

function showPosts(){
	$('#social .posts li').hide();
	$('#social .posts li:eq('+ pindex +')').fadeIn(500);
	
	pindex++;
	if (pindex >=pnum) pindex = 0;
	
	ptimer = window.setTimeout('showPosts()', 3500);
}

function handleSocial(){
	sr = - ($('#social').width() - 50);
	$('#social').css({ right: sr });
	
	$('#box-toggle').click(function(){
		if (!sopen) openSocial();
		else closeSocial();
	});
	
	// ticker
	pnum = $('#social .posts li').size();
	if (pnum > 1) {
		showPosts();
		
		// over
		$('#social .posts li').hover(function(){
			clearTimeout(ptimer);
		}, function(){
			ptimer = window.setTimeout('showPosts()', 3500);
		});
	}
}

/******************************************************************************************************************/
// on load...
/******************************************************************************************************************/

$(function(){
	// adjust
	adjustSize();
	$(window).resize(function(){ adjustSize(); });
	
	// slider
	$('#panel, #payoff, #social').hide();
	handleSlider();
	
	// gallery
	handleGallery();
	
	// contact
	handleContact();
	
	// social
	handleSocial();
	
	// validate
	$("#frm-contact").validate({
		submitHandler: function(form) {
			$('#frm-contact .loading').show();
			var nome_cognome = $('input[name="nome_cognome"]').val();
			var tel = $('input[name="tel"]').val();
			var email = $('input[name="email"]').val();
			var messaggio = $('textarea[name="messaggio"]').val();
			var captcha_somma = $('input[name="captcha_somma"]').val();
			
			$.ajax({
				type: "POST",
				url: "http://www.villacellini.it/wp-content/themes/villacellini/ajax_mail.php",
				data: "nome_cognome=" + nome_cognome + "&tel=" + tel + "&email=" + email + "&messaggio=" + messaggio + "&captcha_somma=" + captcha_somma,
				success: function(msg){
					$('#frm-contact .loading').hide();
					if( msg.match('OK') ){
						alert( "La sua richiesta è stata inviata correttamente");
						$('#frm-contact').hide();
					}
					else if( msg.match('CAPTCHA') )
						alert( "Il risultato della somma non è corretto. Verifica e prova ad inviare di nuovo." );
					else
						alert( "Si è verificato un errore. Riprovi più tardi." );
				}
			});
		},
		rules: {
			nome_cognome: "required",
			messaggio: "required",
			email: {
				required: true,
				email: true
			},
			captcha_somma: "required"
		},
		messages: {
			nome_cognome: "&uarr; Questo &egrave; un campo obbligatorio.",
			messaggio: "&uarr; Questo &egrave; un campo obbligatorio.",
			email: "&uarr; L'email inserita non &egrave; corretta.",
			captcha_somma: "&uarr; Questo &egrave; un campo obbligatorio."
		}
	});
	
	// fancybox
	$("a#privacy").fancybox({
		'width'				: '65%',
		'height'			: '85%',
		'autoScale'			: false,
		'transitionIn'		: 'none',
		'transitionOut'		: 'none',
		'type'				: 'iframe'
	});
			
});
