var mood = 'neutro';//autunno, natale, inverno, valentino, primavera, estate
var directionsService;// variabili per google maps
var directionsDisplay;
var booking, bookingBottom;
$(document).ready(function() {
	if (!$('#layout.gm').is('div')) {gestisciGalleria()}//galleria attiva sempre tranne quando c'e' google maps
	booking=$('#booking');
    if (booking.is('div')) {formattaForm('booking')}
	//if ($('#form_contatti').is('form')) {controllaForm('contatti')}
	//if ($('#form_info').is('form')) {controllaForm('info')}
	//if ($('#form_carriere').is('form')) {controllaForm('carriere')}
	if ($('.privacy').is('label')) {gestisciLayer('privacy')}
	if ($('.circus').is('div')) {gestisciLayer('circus')}
	if ($('#nl').is('div')) {gestisciNL()}
	if ($('#menu').is('div')) {nascondiSottomenu()}
	if ($('.box_suite').is('div')) {slideSuite()}
	if ($('.tab').is('div')) {gestisciTab()}
	if ($('.carosello').is('div')) {gestisciCarosello()}
	if ($('#gmap_wrap').is('div')) {caricaMappa()}
	if($('#faq').is('div')) {gestisciFAQ()}
    //if (!$.support.borderRadius) {stonda()}
	if ($.browser.msie&&($.browser.version=='7.0'||$.browser.version=='8.0')) {stonda()}
	
	if ($("#eventform").is("div")) {
		$('#eventform').load('/www.fortysevenhotel.it/other/contactform_' + langXml + '.html',	function() {
			//checkResponseContatti();
			if ($('#form_contatti').is('form')) {
				controllaForm('contatti');
				formattaForm('contatti');
				gestisciLayer('privacy');
			}
		});
	}
	if ($("#jobform").is("div")) {
		$('#jobform').load('/www.fortysevenhotel.it/other/jobform_' + langXml + '.html',	function() {
			//checkResponseContatti();
			if ($('#form_carriere').is('form')) {
				controllaForm('carriere');
				formattaForm('carriere');
				gestisciLayer('privacy');
			}
		});
	}

    var dataCal=$("#datepicker");
    var defaultData=dataCal.val();
    return;
    var bookingSelect=booking.find("select:not(#bambini)");
    booking.find("form input[type='submit']").click(
        function()
        {
            var ok=true;
            bookingSelect.each(
                function()
                {
                        ok=ok&&($(this).val()!="--");

                }
            );  
            if ((ok && dataCal.val()!=defaultData)==false) 
            {
                alert(messaggi.nl.incompleto[langXml]);
                return false;
            }
        }
    
    );


});

/* function checkResponseContatti() {
	var res = GetUrlParam('response');
	if (res == 'ok') {
		$("#form_info").html(txtFormSend);
	} else if (res == 'ko') {
		$("#form_info").html(txtFormNotSend);
	} else {
		$('#form_info input[name=error]').val(
				window.location.toString() + "?response=ko");
		$('#form_info input[name=forward]').val(
				window.location.toString() + "?response=ok");
	}
} */

function stampaMessaggi(oggetto, status) {// alert(messaggi[oggetto][status][langXml]);
	return messaggi[oggetto][status][langXml];
}

var validEmail = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;

	function gestisciNL() {
		$('#form_nl').submit(function() {
			var send = true;
			var nl_sot = $('#nl #nl_sottotitolo');
			if ( !( validEmail.test($('#form_nl input[name=email]').val()) )) {// email non valida
					/* $('#nl form').fadeOut();
					nl_sot.fadeOut(function() {
						nl_sot.html(stampaMessaggi('nl', 'successo'));
					});
					nl_sot.fadeIn();
				} else {// email non valida */
					nl_sot.fadeOut(function() {
						nl_sot.html(stampaMessaggi('nl', 'errore'));
					});
					nl_sot.fadeIn();
					send = false;// inibisco invio del form perche compilato erroneamente
				} else if ( !($('#privacy_nl').is(':checked')) ) {//email valida, allora controlla privacy
					nl_sot.fadeOut(function() {
						nl_sot.html(stampaMessaggi('nl', 'privacy'));
					});
					nl_sot.fadeIn();
					send = false;// inibisco invio del form perche compilato erroneamente
				}
			return send;		
		});
	}

	function formattaForm(formale) {
		var tipoForm;
		switch (formale) {
			case "booking" :
					tipoForm = $('#booking select');
					break;
			case "contatti" :
					tipoForm = $('#form_contatti select');
					break;
			case "carriere" :
					tipoForm = $('#form_carriere select');
					break;
				/* case "circus" :
					tipoForm = $('#form_circus');
					break; */
			default :				
		}
		//$('#booking select, #form_contatti select, #form_carriere select').sSelect();
		tipoForm.sSelect();
        //alert("ecco");
		Date.firstDayOfWeek = 0;
		Date.format = 'mm/dd/yyyy';
		$("#datepicker").datePicker( {		clickInput : true	}).dpSetOffset(0, 31);// prenotazioni
		$("#calendario").datePicker( {		clickInput : true	}).dpSetOffset(0, 31);// info

        bookingBottom=booking.css("bottom");
        var bookingContent=$("#banda_content");
        var bandaWrap=bookingContent.find("#banda_wrap");
        var aespBook=$("a.esp_booking");
        aespBook.click(
            function()
            {
                if (!aespBook.hasClass("up"))
                {
                    booking.animate({"bottom":0},function(){bookingContent.css({"overflow":"visible"});aespBook.addClass("up")});
                    bandaWrap.addClass("out");
                }
                else 
                {
                    bookingContent.css("overflow","hidden");
                    booking.animate({"bottom":bookingBottom},function(){aespBook.removeClass("up");bandaWrap.removeClass("out");});
                    
                }
            }
        )
	}

	function controllaForm(formale){
		var formContatti;// = (formale=='contatti') ? $('#form_contatti') : $('#form_info');
		switch (formale) {
   case "contatti" :
				formContatti = $('#form_contatti');
				break;
   case "info" :
				formContatti = $('#form_info');
				break;
			case "carriere" :
				formContatti = $('#form_carriere');
				break;
			case "circus" :
				formContatti = $('#form_circus');
				break;
   default :				
		}
	var formContattiText = formContatti.find('input[type="text"].obbligatorio');

	formContatti.find('input[type="reset"]').click(function() {
		formContatti.find('.riga').removeClass('errore');// resetto errori
		formContatti.find('.errore_msg').hide();// nascondo messaggi
	});

	formContattiText.each(function(indice) {
		$(this).focus(function() {// al focus seleziono tutto il campo, per agevolare l'utente nella compilazione
			$(this).select();
		});

			$(this).blur(function(){//al blur controllo la correttezza del campo
				if ( $(this).val()!='' && $(this).val()!= stampaMessaggi('contatti','obbligatorio') ) {//controllo che campo non sia vuoto ne compilato dal messaggio d'errore
					if ( $(this).is('input[name=email]') ) {//se siamo nel campo email
						if ( $(this).val()!= stampaMessaggi('contatti','email') ) {//email ha un messaggio d'errore diverso
							if ( (validEmail.test( formContatti.find('input[name=email]').val() )) ) {//email valida
								$(this).parent('.riga').removeClass('errore');//resetto errore
								}
							}
						} else {// non siamo nel campo email
							$(this).parents('.riga').removeClass('errore');// resetto errore
						}
					}
				});
	});

		formContatti.find('select').change(function(){//(la select esiste solo nel form contatti, eventualmente usa la variabile generica formContatti anche qui)
			if ($(this).val()!=''){
				$(this).nextAll('.errore_msg').hide().parent('.riga').removeClass('errore');//resetto errore al cambio della select
				}
			});

		formContatti.find('input[type="checkbox"]').change(function(){
			$(this).nextAll('.errore_msg').hide();//resetto errore al cambio della checkbox
		});
		
		formContatti.find('input[type="file"]').change(function(){
			$(this).nextAll('.errore_msg').hide().parent('.riga').removeClass('errore');//resetto errore al caricamento del cv
	});

		formContatti.submit(function(){

			var send=true;//usando variabile send posso fare piu controlli contemporaneamente e solo alla fine eventualmente inibisco l'invio del form
			//formContatti.find('.riga').removeClass('errore');//resetto errori
			//if ( formContattiText.val()=='' || formContattiText.val()==stampaMessaggi('contatti','obbligatorio') ){//i campi testo con asterisco sono obbligatori
			formContattiText.each(function(indice){
				if ( $(this).val()=='' || $(this).val()== stampaMessaggi('contatti','obbligatorio') || $(this).val()== stampaMessaggi('contatti','email') ) {
					$(this).val( stampaMessaggi('contatti','obbligatorio') ).parents('.riga').addClass('errore');
					send=false;
				}
			});
			//}
			//if ($('#form_contatti input[name=email]').val()!='') {
			if ( !(validEmail.test( formContatti.find('input[name=email]').val() )) ) {//email non valida
				formContatti.find('input[name=email]').val( stampaMessaggi('contatti','email') ).parent('.riga').addClass('errore');
				send=false;
			}
			// }
			if (formContatti.find('select').val() == '') {// select obbligatoria
				formContatti.find('select').parent('.riga').addClass('errore');
				formContatti.find('select').nextAll('.errore_msg').html(stampaMessaggi('contatti', 'select')).show();
				send = false;
			}

			if (formContatti.find('input[type="file"]').val()==''){//curriculum obbligatorio
				formContatti.find('input[type="file"]').parent('.riga').addClass('errore');
				formContatti.find('input[type="file"]').nextAll('.errore_msg').html( stampaMessaggi('contatti','file') ).show();
				send=false;
			}

			if ( !(formContatti.find('input[type="checkbox"]').attr('checked')) ){//privacy obbligatoria
				formContatti.find('input[type="checkbox"]').nextAll('.errore_msg').html( stampaMessaggi('contatti','privacy') ).show();
				send=false;
			}
			if( $('#form_contatti').is("form") && send){
				var tomail=$("#form_contatti select[name=to]").val();
				 if(tomail.indexOf("reservations")>=0){
					$("#form_contatti [name=subject]").val("Form di contatto ["+langXml+"] - Prenotazioni");
					}else  if(tomail.indexOf("contact")>=0){
						$("#form_contatti [name=subject]").val("Form di contatto ["+langXml+"] - Relazioni con gli ospiti");
					}			
				}
			return send;
		});

		formContatti.find('textarea').maxlength({   
			events: [], // Array of events to be triggerd    
			maxCharacters: 1500, // Characters limit   
			status: true, // True to show status indicator bewlow the element    
			statusClass: "mancanti", // The class on the status div  
			statusText: stampaMessaggi('contatti','textarea'), // The status text  
			notificationClass: "errore",	// Will be added when maxlength is reached  
			showAlert: false, // True to show a regular alert message    
			alertText: "You have typed too many characters.", // Text in alert message   
			slider: false // True Use counter slider    
  }); 
		
	}

	function gestisciFAQ(){
		//$('#faq li:first-child').css({'background':'url("img/'+mood+'/faq_bg.png") no-repeat 0 50px'});//inizializzo bg dell'acceso
		$('#faq').accordion({ header: 'h2', active: false });
		/* $('#faq .ui-state-default').click(function(){
			$('#faq li').css({'background':'url("/www.fortysevenhotel.it/img/faq_bg_off.png") no-repeat 0 50px'});//spengo tutti i bg
			$(this).parent().css({'background':'url("/www.fortysevenhotel.it/img/'+mood+'/faq_bg.png") no-repeat 0 50px'});//applico bg dell'acceso
		}); */
	}
	
	function gestisciLayer(tipologia){
		$('.'+tipologia+' a').click(function(){
			$('body').append('<div id="fdr">&nbsp;</div>');//appendo il layer al body
			$('body').append('<div id="layer_content" class="'+tipologia+'">&nbsp;</div>');//appendo il div sopra il layer
			var layer_content = $('#layer_content');
			var scrollTop = $(window).scrollTop();//memorizzo lo scrolling della finestra
			layer_content.load('/www.fortysevenhotel.it/other/'+tipologia+'_'+langXml+'.html .content', function() {
				layer_content.css({'top': scrollTop+50 }).prepend('<p><a href="#" id="layer_close" title="'+stampaMessaggi('layer','chiudi')+'"><img src="/www.fortysevenhotel.it/img/'+mood+'/chiudi_bg.png" alt="'+stampaMessaggi('layer','chiudi')+'" /></a></p>');
					if (tipologia=='circus') {
						$("#calendario").datePicker({clickInput:true}).dpSetOffset(0,31);
						controllaForm('circus');
						layer_content.find('.privacy_content').load('/www.fortysevenhotel.it/other/privacy_'+langXml+'.html .content');
					}
					$('#fdr').css({'height': getDocHeight() });//il layer prende l'altezza del document (mentre la larghezza e' fissa); lo faccio dopo l'iniezione del contenuto
					
					$('#layer_close').click(function(){//chiudo il layer rimuovendo il div semiopaco e il div contenente il layer
							$('#fdr').remove();
							layer_content.remove();
							return false;
						});
				});
			return false;
		});
}

function slideSuite() {
	$('.box_suite .didascalia a').click(function() {// apro info
				$(this).parents('.didascalia').slideUp('slow').next('.info').slideDown('slow');
				return false;
			});
	$('.box_suite .info a').click(function() {// chiudo info
				$(this).parents('.info').slideUp('slow').prev('.didascalia').slideDown('slow');
				return false;
			});
}

function gestisciTab() {
	$('.tab_title.off a').live('click', function() {
		$('.tab_content, .tab_title, .contenuto.tab').toggleClass('off');
		return false;
	});
}

function nascondiSottomenu() {
	if (($('#menu > ul > li.on > ul').is('ul'))	|| ($('#top_content > ul > li.on > ul').is('ul'))) {// se il menu ha il sottomenu
		// alert('ce sottomenu');//allora aumenta altezza header a 83px
		$('#header').height(83);
	} else {
		// alert('non ce sottomenu');//altrimenti lasciala a 50px
		$('#header').height(50);
	}
}

function gestisciCarosello(){
	$(".carosello").jCarouselLite({
		btnNext: "#carosello_dx",
		btnPrev: "#carosello_sx",
		visible: 1,
		speed: 1000
	});
}

	var indice = 0;//inizializzo indice della galleria
	//var galleria_on = 'false';//all'inizio la galleria non e' attiva
	function gestisciGalleria(){
		galleria();//inizializzo galleria con la prima foto
		$('.freccia').click(function(){
			( $(this).attr('id')=='freccia_dx' ) ? indice++ : indice--;//se clicco freccia_dx allora aumento indice, altrimenti lo diminuisco
			galleria();//cambio foto e descrizione
			return false;
		});
	}

function galleria(){
		//var galleria_attuale = $('.hidden_gallery').attr('href');
		//var galleria_attuale = 'ajax/galleriaHP.xml';//da commentare per dinamico
		$.ajax({
			type: "GET",
			url: galleria_attuale,
			dataType: "xml",
			async: false,//per inibire l'accavallarsi di click da parte dell'utente maligno
			success: function(msg){
				var immagini = $(msg).find('Item').length;//memorizzo quante foto ci sono
				if (immagini<=1) {$('#frecce').hide()}//se c'e' solo un'immagine nascondo le frecce
				if (indice == immagini) {indice=0}//rendo galleria circolare in avanti
				if (indice == -1) {indice=immagini-1}//rendo galleria circolare all'indietro
				//alert('Nel file xml ci sono '+immagini+' immagini');
				var foto = $(msg).find('Item').eq(indice).children('img').text().replace(/\s+/ig,"");//memorizzo l'indirizzo della foto, per FF il replace toglie spazi, a capo etc.
				var descrizione = $(msg).find('Item').eq(indice).children('title').text().replace(/(<([^>]+)>)/ig,"");//memorizzo la descrizione della foto
				$('#galleria').animate({opacity:0},'slow',function(){
					$(this).css({'background-image':'url("'+foto+'")'}).animate({opacity: 1},'slow');
		});
		$('#didascalia p').fadeOut(function() {
			$('#didascalia span').html(descrizione);
			$(this).fadeIn();
		});

	}
	});
}

function stonda() {// bordi stondati per IE
	// alert('');
   
	DD_roundies.addRule('#content_main .btn_esp', '15px');
		//DD_roundies.addRule('.btn_esp.sx', '15px');
	DD_roundies.addRule('.bottoni input', '15px');
	DD_roundies.addRule('#form_nl input[type=submit]', '15px');
		//DD_roundies.addRule('#menu > ul > li.on', '5px 5px 0 0', true);
		//$('.no-borderradius .btn_espandibile').corner('15px');
	}

function getDocHeight() {
	return Math.max(
		$(document).height(),
		$(window).height(),
		document.documentElement.clientHeight// for opera
	);
};

/*google maps*/
	function caricaMappa(){
		directionsService = new google.maps.DirectionsService();
		directionsDisplay = new google.maps.DirectionsRenderer();
		var latlng47 = new google.maps.LatLng(41.890542, 12.48067);// coordinate di 47
		var myOptions = {
			zoom : 13,
			center : latlng47,
			mapTypeId : google.maps.MapTypeId.HYBRID// ROADMAP, SATELLITE, HYBRID, TERRAIN
		};
		var map = new google.maps.Map(document.getElementById("gmap_content"),myOptions);

		var marker47 = new google.maps.Marker( {// marker di 47
			position : latlng47,
			title : "47 Hotel",
			icon: '/www.fortysevenhotel.it/img/47_marker_hotel.png'
		});
		var aeroporti_stazioni = [
			[ 'Aeroporto di Fiumicino', 41.80258, 12.255103, '47_marker_transport.png','Aeroporto di Fiumicino' ],
			[ 'Aeroporto di Ciampino', 41.800388, 12.590832, '47_marker_transport.png','Aeroporto di Ciampino' ],
			[ 'Stazione Termini', 41.900534, 12.501878, '47_marker_transport.png','Stazione Termini' ],
			[ 'Stazione Tiburtina', 41.89384, 12.505715, '47_marker_transport.png','Stazione Tiburtina' ]
		];
		var monumenti = [
			[ 'Bocca della Verita\'', 41.888147, 12.481357, '47_marker_monumenti.png','Bocca della Verita\'' ],
			[ 'Piazza Venezia', 41.896181, 12.48196, '47_marker_monumenti.png','Piazza Venezia' ],
			[ 'Fori Imperiali', 41.894435, 12.486112, '47_marker_monumenti.png','Fori Imperiali' ],
			[ 'Colosseo', 41.889957, 12.493336, '47_marker_monumenti.png','Colosseo' ],
			[ 'Fontana di Trevi', 41.89001, 12.4933, '47_marker_monumenti.png','Fontana di Trevi' ],
			[ 'Pantheon', 41.899498, 12.476778, '47_marker_monumenti.png','Pantheon' ],
			[ 'Piazza di Spagna', 41.905798, 12.482141, '47_marker_monumenti.png','Piazza di Spagna' ],
			[ 'San Pietro', 41.902251, 12.458371, '47_marker_monumenti.png','San Pietro' ],
			[ 'Circo Massimo', 41.886072, 12.485318, '47_marker_monumenti.png','Circo Massimo' ],
			[ 'Via Condotti', 41.905153, 12.480497, '47_marker_monumenti.png','Via Condotti' ],
			[ 'Piazza Navona', 41.898833, 12.473106, '47_marker_monumenti.png','Piazza Navona' ]
		];
		var markersAero = [];
		var baloonAero = [];
		var markersMonu = [];
		var baloonMonu = [];
		
		var infowindow = new google.maps.InfoWindow(
			{
				content : '<strong>47 Hotel</strong><br />Via Petroselli 47, 00186 - Rome<br />tel +39.06.6787816<br />Fax +39.06.69190726',
				zIndex: 900
			});

			
			//console.log(aeroporti_stazioni[0][1]);
	directionsDisplay.setMap(map);
	marker47.setMap(map);// posiziono il marker di 47

	google.maps.event.addListener(marker47, 'click', function() {
		infowindow.open(map, marker47);
	});

	if ($('#aereo_treno').is(':checked')) {// inizializzo marker aeroporti
		setMarkers(map, aeroporti_stazioni, markersAero, baloonAero);
	}
	if ($('#monumenti').is(':checked')) {// inizializzo marker monumenti
		setMarkers(map, monumenti, markersMonu, baloonMonu);
	}
	$('#aereo_treno').change(function() {
		if ($(this).is(':checked')) {// col tick attivo relativi marker
				setMarkers(map, aeroporti_stazioni, markersAero, baloonAero);
			} else {// senza tick disattivo relativi marker
				clearMarkers(markersAero, baloonAero);
			}
		});

	$('#monumenti').change(function() {
		if ($(this).is(':checked')) {// col tick attivo relativi marker
				setMarkers(map, monumenti, markersMonu, baloonMonu);
			} else {// senza tick disattivo relativi marker
				clearMarkers(markersMonu, baloonMonu);
			}
		});

		$('#raggiungere a').click(function(){	calcRoute();	});

		$("#raggiungere_input").live("keypress", function (e){//invio da tastiera
				var key;
			if(window.event){ key = window.event.keyCode}//IE
			else {key = e.which}//FF
   if(key == 13){
				calcRoute();
				// return false;
			}
		});

	}

function setMarkers(map, locations, vettMarkers, vettBaloon) {// Add markers to the map
	// alert(locations.length);
	for ( var i = 0; i < locations.length; i++) {
		var luoghi = locations[i];
		var image = '/www.fortysevenhotel.it/img/'+luoghi[3];
		var myLatLng = new google.maps.LatLng(luoghi[1], luoghi[2]);
		var marker = new google.maps.Marker( {
			position : myLatLng,
			map : map,
			// shadow: shadow,
			icon : image,
			// shape: shape,
			title : luoghi[0],
			html: luoghi[4]//,
			// zIndex: beach[3]
		});
		
		var contentString = "Some content";
		var infowindows = new google.maps.InfoWindow({
			content: contentString
		});

		google.maps.event.addListener(marker, 'click', function() {
			//alert(this.html);
			infowindows.setContent(this.html);
			infowindows.open(map,this);
		});
		
		
		vettMarkers.push(marker);
		vettBaloon.push(infowindows);
		
		
		
		
	}
}

function clearMarkers(vettMarkers, vettBaloon) {// Clear markers from the map
	// alert(locations.length);
	for ( var i = 0; i < vettMarkers.length; i++) {
		vettMarkers[i].setMap(null);
		vettBaloon[i].close();
	}
}

function calcRoute() {
	var start = 'Via Petroselli 47, Rome';
	var end = document.getElementById("raggiungere_input").value;
	var request = {
		origin : start,
		destination : end,
		travelMode : google.maps.DirectionsTravelMode.DRIVING
	};
	directionsService.route(request, function(result, status) {
		if (status == google.maps.DirectionsStatus.OK) {
			directionsDisplay.setDirections(result);
		}// else {alert('percorso non calcolabile')}
		});
}


