/*
* SET DI FUNZIONI PER IL LOAD DELLE PRENOTAZIONI E DEI FORM NEL PANNELLO
*
*/
function load_area_prenotazioni_camera($elemento_id,$mese,$anno,$gestione){
$('#area_prenotazioni_'+$elemento_id).html(' Caricamento area prenotazioni in corso...');
$('#area_prenotazioni_'+$elemento_id).show().load('/_ajax/area_prenotazioni_camere.php?id='+$elemento_id+'&mese='+$mese+'&anno='+$anno+'&gestione='+$gestione);
}
function load_prenota_camera($camera_id,date,gestione){
$('#modifica_prenotazioni_'+$camera_id).html(' Caricamento area prenotazioni in corso...');
$('#modifica_prenotazioni_'+$camera_id).show().load('/_ajax/prenota_camera.php?id='+$camera_id+'&date='+date+'&gestione='+gestione);
}
function load_container_camera($camera_id,date,$prenotazione_id,$blocca_giorno){
$('#container_prenotazioni_'+$camera_id).html(' Caricamento area prenotazioni in corso...');
$('#container_prenotazioni_'+$camera_id).show().load('/_ajax/prenota_camera.php?id='+$camera_id+'&date='+date+'&prenotazione_id='+$prenotazione_id+'&blocca_giorno='+$blocca_giorno);
}
/*
* FUNZIONE DI AUTOCOMPLETE COMUNI NEL FORM DI PRENOTAZIONE
*
*/
function autocomplete_comuni($camera_id){
$( "#seleziona_citta"+$camera_id).autocomplete({
source: function(request, response) {
$.ajax({
url: "/_ajax/seleziona_citta.php",
data: {
term: request.term
},
type: "POST", // a jQuery ajax POST transmits in querystring format in utf-8
dataType: "json", //return data in json format
success: function(data) {
if(data != null){
response($.map(data, function(item) {
return {
value: item.value,
sigla: item.sigla,
id: item.id
}
}))
}
}
});
},
select: function( event, ui ) {
$('#citta_selezionata'+$camera_id).val(ui.item.id);
},
minLength: 3
});
}
/*
* FUNZIONE CHE DATO IL TIPO DI CAMERA,ARRIVO E PARTENZA CALCOLA IL PREZZO (PANNELLO)
*/
function calcola_prezzo_camera($camera_id){
var $arrivo = $('#arrivo_'+$camera_id).val();
var $partenza = $('#partenza_'+$camera_id).val();
var $tipo_uso_id = $('#tipo_uso_id_'+$camera_id).val();
if(
($arrivo != '') && ($partenza != '') && ($tipo_uso_id != '') && (typeof($tipo_uso_id) != 'undefined')
){ // MANDO LA FUNZIONE
$.post('/_ajax/calcola_prezzo.php', {
arrivo: $arrivo,
partenza: $partenza,
tipo_uso_id: $tipo_uso_id,
camera_id: $camera_id
},
function(data){
$('#prezzo_'+$camera_id).val(data);
}
);
} // MANDO LA FUNZIONE
}
/*
* VALIDATE DEL FORM DI PRENOTAZIONE - PANNELLO!!
*/
function validate_form_prenotazione($camera_id){
return $("#form_prenotazione_"+$camera_id).validate({
rules : {
"email" : {
required: false,
email: true
},
"numero_carta" : {
required: false,
creditcard: true
},
"arrivo" : {
required: true
},
"partenza" : {
required: true
},
"camera_id" : {
required: true
}
},
messages : {
"arrivo" : "
Obbligatorio",
"partenza" : "
Obbligatorio",
"nome" : "
Obbligatorio",
"cognome" : "
Obbligatorio",
"email" : "
Inserire una email valida",
"tipo_uso_id": "
Obbligatorio",
"carta_credito_id": "
Obbligatorio",
"mese_scadenza_carta": "
Obbligatorio",
"anno_scadenza_carta":"
Obbligatorio",
"cvv2": "
Obbligatorio",
"titolare_carta": "
Obbligatorio",
"numero_carta": "
Inserire un numero carta di credito valido"
}
}).form();
}
function obbligatorioSP(){
if($('#payment_mode_after').is(':checked')){
return true;
}
else{
return false;
}
}
/*
* VALIDATE DEL FORM DI PRENOTAZIONE - SITO!!
*/
function validate_form_prenotazione_sito(){
$("#form_prenotazione_sito").validate({
rules : {
"email" : {
required: true,
email: true
},
"numero_carta" : {
required: function(element){
return obbligatorioSP();
},
creditcard: true
},
"carta_credito_id" : {
required: function(element){
return obbligatorioSP();
}
},
"mese_scadenza_carta" : {
required: function(element){
return obbligatorioSP();
}
},
"anno_scadenza_carta" : {
required: function(element){
return obbligatorioSP();
}
},
"cvv2" : {
required: function(element){
return obbligatorioSP();
},
number: true,
minlength: 3
},
"titolare_carta" : {
required: function(element){
return obbligatorioSP();
}
},
/* "code" : {
required: true,
remote: '/_ajax/controllo_captcha.php'
},
*/
"tel" : {
required: true
// number: true
}
},
messages : {
"email" : "
Inserire una email valida",
"numero_carta": "
Inserire un numero di carta corretto",
"code": "
Inserire correttamente il codice di sicurezza",
"cvv2": "
Inserire correttamente il Cvv2",
"tel": "
Inserire correttamente il num.telefono"
}
});
}
/*
* FUNZIONE CHE DA IL PROSPETTO PER LE PRENOTAZIONI A 3 MESI PER LE CAMERE - PANNELLO!!
*/
function calendario_prenotazioni($camera_id,mese,anno,gestione){
months = new Array(), days = new Array(), years = new Array(), confirmed = new Array(), bloccato = new Array();
$.post('/_ajax/giorni_occupati.php', {
pannello : 1,
tipo : 0,
camera_id: $camera_id,
mese : mese,
anno: anno,
mesi_durata : 3
},
function(data){
for (x = 0; x < data.length; x++) {
months.push(data[x].mese);
days.push(data[x].giorno);
years.push(data[x].anno);
confirmed.push(data[x].confermata);
bloccato.push(data[x].bloccato);
}
var pickerOpts = {
beforeShowDay: function(date){ // BEFORE SHOW DAY
if(gestione == 'inserimento'){ // INSERIMENTO
for(x = 0; x < days.length; x++) {
if(
date.getMonth() == months[x] - 1 &&
date.getDate() == days[x] &&
date.getFullYear() == years[x]
) {
if(bloccato[x] == 1){ // PRENOTAZIONE CONFERMATA
return [false, "prenotato"];
}
else{ // PRENOTAZIONE NON CONFERMATA
// return [false, "non_confermato"];
return [true, ""];
}
}
}
return [true, ""];
} // FINE INSERIMENTO
else { // MODIFICA
for(x = 0; x < days.length; x++) {
if(
date.getMonth() == months[x] - 1 &&
date.getDate() == days[x] &&
date.getFullYear() == years[x]
) {
if(confirmed[x] == 1){ // PRENOTAZIONE CONFERMATA
return [true, "prenotato"];
}
else{ // PRENOTAZIONE NON CONFERMATA
return [true, "non_confermato"];
}
}
}
return [false, ""];
} // FINE MODIFICA
},// BEFORE SHOW DAY
onChangeMonthYear: function(year, month, inst) {
$('.calendario_prenotazioni').each(function(){
if($(this).is(':visible')){
$elemento_id = $(this).attr('rel');
load_area_prenotazioni_camera($elemento_id, month, year,gestione);
}
});
},
numberOfMonths: 3,
defaultDate: new Date(anno,mese-1),
onSelect: function(date,inst){
inst.inline = false;
load_prenota_camera($camera_id,date,gestione);
}
};
$("#prenotazioni_"+$camera_id).datepicker(pickerOpts);
$('a.ui-state-active').removeClass('ui-state-active');
}
,'json');
}
/*
* FUNZIONE CHE GENERA IL DATEPICKER ARRIVO PER LE PRENOTAZIONI CAMERE
*/
function datepicker_form_prenotazione_arrivo($camera_id,$prenotazione_id,$arrivo_id,$partenza_id,$post,$pannello){
var months = [];
var days = [];
var years = [];
confirmed = new Array();
bloccato = new Array();
if(!$arrivo_id && !$partenza_id){ // PANNELLO
$arrivo_id = 'arrivo';
$partenza_id = 'partenza';
$post = 'giorni_occupati';
}
$.post('/_ajax/'+$post+'.php', {
pannello:$pannello,
tipo : 0,
camera_id: $camera_id,
mese : new Date().getMonth(),
anno: new Date().getFullYear(),
mesi_durata : 14,
prenotazione_id : $prenotazione_id
},
function(data){
for (x = 0; x < data.length; x++) {
months.push(data[x].mese);
days.push(data[x].giorno);
years.push(data[x].anno);
confirmed.push(data[x].confermata);
bloccato.push(data[x].bloccato);
}
var pickerOpts = {
beforeShowDay: function(date){
// SE IL GIORNO E' PRENOTATO NON E' SELEZIONABILE
for(x = 0; x < days.length; x++) {
if(
date.getMonth() == months[x] - 1 &&
date.getDate() == days[x] &&
date.getFullYear() == years[x] &&
bloccato[x] == 1
) {
return [false, ""];
}
}
return [true, ""];
},
numberOfMonths: 1,
dateFormat : 'dd/mm/yy',
showOn: "both",
buttonImage: "/immagini/calendar.png",
buttonImageOnly: true,
minDate:0,
maxDate:'+1y',
onSelect: function(selectedDate) {
instance = $( this ).data("datepicker"),
date = $.datepicker.parseDate(
instance.settings.dateFormat ||
$.datepicker._defaults.dateFormat,
selectedDate, instance.settings );
// SELEZIONO ARRIVO -> CAMBIO MINDATE DI PARTENZA +1 GIORNO
// SELEZIONO PARTENZA -> CAMBIO MAXDATE DI ARRIVO - 1 GIORN0
date.setDate(date.getDate()+1);
minDate = new Date();
minDate.setTime(date.valueOf());
$('#'+$partenza_id).datepicker("option","minDate",minDate);
// SETTO MAXDATE DI PARTENZA AL PRIMO GIORNO OCCUPATO
loop_date = new Date();
loop_date.setTime(minDate.valueOf());
maxDate = '';
for(loop = 0; loop < 364; loop++){
if(loop != 0){
loop_date.setDate(loop_date.getDate()+1);
}
for(x = 0; x < days.length; x++) {
if(
loop_date.getMonth() == months[x] - 1 &&
loop_date.getDate() == days[x] &&
loop_date.getFullYear() == years[x] &&
bloccato[x] == 1
) {
maxDate = loop_date;
break;
}
}
if(maxDate != ''){
break;
}
}
if(maxDate != ''){
$('#'+$partenza_id).datepicker("option","maxDate",maxDate );
}
else {
$('#'+$partenza_id).datepicker("option","maxDate",'+1y' );
}
$('#'+$partenza_id).val('');
if(/arrivo/.test($arrivo_id)){ // SITO/PRENOTAZIONI E PANNELLO
$ce_partenza = $('#'+$partenza_id).val();
if($ce_partenza){
calcola_prezzo_camera($arrivo_id.slice(7));
load_disponibilita();
load_area_elementi_prenotati();
}
}
}
};
$('#'+$arrivo_id).datepicker(pickerOpts);
}
,'json');
}
/*
* FUNZIONE CHE GENERA IL DATEPICKER PARTENZA PER LE PRENOTAZIONI CAMERE
*/
function datepicker_form_prenotazione_partenza($camera_id,$mese,$anno,$stringa_data_partenza,$prenotazione_id,$arrivo_id,$partenza_id,$post,$pannello){
var months = [];
var days = [];
var years = [];
confirmed = new Array();
bloccato = new Array();
if(!$arrivo_id && !$partenza_id){
$arrivo_id = 'arrivo';
$partenza_id = 'partenza';
$post = 'giorni_occupati';
}
$.post('/_ajax/'+$post+'.php', {
pannello:$pannello,
tipo : 0,
camera_id: $camera_id,
mese : $mese,
anno: $anno,
mesi_durata : 14,
prenotazione_id : $prenotazione_id
},
function(data){
for (x = 0; x < data.length; x++) {
months.push(data[x].mese);
days.push(data[x].giorno);
years.push(data[x].anno);
confirmed.push(data[x].confermata);
bloccato.push(data[x].bloccato);
}
var pickerOpts = {
beforeShow: function(input, inst) {
data_arrivo = $('#'+$arrivo_id).datepicker('getDate');
if(!data_arrivo){ // PER LA PRENOTAZIONE DALLA SCHEDA CAMERA SUL SITO
data_arrivo = new Date();
}
loop_date = new Date();
loop_date.setTime(data_arrivo.valueOf());
maxDate = '';
for(loop = 1; loop < 367; loop++){
loop_date.setDate(loop_date.getDate()+1);
for(x = 0; x < days.length; x++) {
if(
loop_date.getMonth() == months[x] - 1 &&
loop_date.getDate() == days[x] &&
loop_date.getFullYear() == years[x] &&
bloccato[x] == 1
) {
maxDate = loop_date;
break;
}
}
if(maxDate != ''){
break;
}
}
if(maxDate != ''){
$('#'+$partenza_id).datepicker("option","maxDate",maxDate );
}
else {
$('#'+$partenza_id).datepicker("option","maxDate",'+1y' );
}
},
numberOfMonths: 1,
dateFormat : 'dd/mm/yy',
showOn: "both",
buttonImage: "/immagini/calendar.png",
buttonImageOnly: true,
minDate:$stringa_data_partenza,
onSelect: function(selectedDate) {
instance = $( this ).data("datepicker"),
date = $.datepicker.parseDate(
instance.settings.dateFormat ||
$.datepicker._defaults.dateFormat,
selectedDate, instance.settings );
// SELEZIONO ARRIVO -> CAMBIO MINDATE DI PARTENZA +1 GIORNO
// SELEZIONO PARTENZA -> CAMBIO MAXDATE DI ARRIVO - 1 GIORNO
date.setDate(date.getDate()-1);
//$('#arrivo').datepicker("option", "maxDate",date);
// HO COMMENTATO LA RIGA PRECEDENTE PER AVERE ARRIVO SEMPRE LIBERO, PARTENZA SI REGOLA DI CONSEGUENZA
if(/arrivo/.test($arrivo_id)){ // SITO/PRENOTAZIONI E PANNELLO
calcola_prezzo_camera($arrivo_id.slice(7));
load_disponibilita();
load_area_elementi_prenotati();
}
}
};
$('#'+$partenza_id).datepicker(pickerOpts);
}
,'json');
}
function disablegiorniferiali(date) {
var daysToDisable = [0, 1, 2, 3, 4, 5];
var day = date.getDay();
for (i = 0; i < daysToDisable.length; i++) {
if ($.inArray(day, daysToDisable) != -1) {
return false;
}
}
return true;
}
function controlla_div_prezzi(){
if($('#payment_mode_now').is(':checked')){
$('#div_totale_prenotazione_scontato').show();
$('#div_totale_prenotazione').hide();
}
else{
$('#div_totale_prenotazione_scontato').hide();
$('#div_totale_prenotazione').show();
}
}
$(document).ready(function(){
$('#ccInfoTable select,#ccInfoTable input').change(function(){
$('#payment_mode_after').attr('checked',"checked");
});
controlla_div_prezzi();
$('input[name="payment_mode"]').change(function(){
controlla_div_prezzi();
});
// PRENOTAZIONE CAMERE
$('#scegli_camera').val('');
$('#scegli_camera').unbind('change').bind('change',function(){
$camera = $(this).val();
$tipo = $(this).attr('rel');
$gestione = $('input[name="gestione"]:checked').val();
today = new Date();
mese = today.getMonth()+1; //January is 0!
anno = today.getFullYear();
if($camera && $gestione){
$('.div_prenotazioni').empty().hide();
$array_camere = $camera.split(',');
for ($camera_id in $array_camere) {
load_area_prenotazioni_camera($array_camere[$camera_id],mese,anno,$gestione);
}
}
});
$('input[name="gestione"]').click(function(){
$('#scegli_camera').trigger('change');
});
$('.tasto_prenota').click(function(){
$elemento_id = $(this).attr('rel');
prenota_elemento($elemento_id);
});
$('select.num_persone_live').live('change',function(){
$elemento_id = $(this).attr('rel');
$num_persone = $(this).val();
cambia_persone_elemento($elemento_id,$num_persone);
});
$('.cambia_tipo_uso').unbind('change').bind('change',function(){
$id = $(this).attr('id');
$camera_id = $(this).attr('rel');
cambia_tipo_uso($camera_id,$id);
});
$('#apri_carta_credito').click(function(){
$('.credito').toggle('slow');
});
$('#submit_testata').click(function(){
$arrivo = $('#prenotazione_dal').datepicker('getDate');
$partenza = $('#prenotazione_al').datepicker('getDate');
if($arrivo && $partenza && !controllo_date($arrivo,$partenza)){
var $dialog_box = $("#dialog_box");
$('.ui-dialog').remove();
$dialog_box.dialog({
autoOpen:true,
width: 200,
resizable: false,
closeOnEscape: true
});
setTimeout(function() { $dialog_box.dialog('close'); }, 2 * 1000);
}
else{
$('#form_testata').submit();
}
});
});
/*
* FUNZIONE CHE RICARICA LE DISPONIBILITA IN RISPOSTA A NUOVE SELEZIONI (PAGINA PRENOTAZIONI SITO)
*/
function load_disponibilita(){
//TIPO DI SELEZIONE (CAMERE O CASE)
$tipo_id = $('input[name="tipo_scelta_pagina_prenotazioni"]:checked').val();
$data_partenza = $('#partenza').val();
$data_arrivo = $('#arrivo').val();
$partenza = $('#partenza').datepicker('getDate');
$arrivo = $('#arrivo').datepicker('getDate');
if($arrivo && $partenza && !controllo_date($arrivo,$partenza)){
var $dialog_box = $("#dialog_box");
$('.ui-dialog').remove();
$dialog_box.dialog({
autoOpen:true,
width: 200,
resizable: false,
closeOnEscape: true
});
setTimeout(function() { $dialog_box.dialog('close'); }, 3 * 1000);
}
else{
$('#disponibilita').html(' ');
$('#disponibilita').show().load('/_ajax/disponibilita.php?tipo_id='+$tipo_id+'&partenza='+$data_partenza+'&arrivo='+$data_arrivo);
}
}
/*
* FUNZIONE CHE RICARICA IL TOTALE DEI SERVIZI AGGIUNTIVI IN RISPOSTA A NUOVE SELEZIONI (PAGINA PRENOTAZIONI SITO)
*/
function load_totale_servizi_aggiuntivi($elemento_id,$tipo_elemento){
$.post('/_ajax/totale_servizi_aggiuntivi.php', {
elemento_id : $elemento_id,
tipo_elemento : $tipo_elemento
},
function(data){
$('.servizi_aggiuntivi_'+$elemento_id).html(data);
/*
if(data.totale != ''){
$('#scritta_totale_colorbox_'+$elemento_id).html(data.scritta_totale);
$('#totale_colorbox_'+$elemento_id).html(data.totale);
}
else{
$('#scritta_totale_colorbox_'+$elemento_id).empty();
$('#totale_colorbox_'+$elemento_id).html("-");
}
*/
// load_totale_prenotazione();
});
}
/*
* FUNZIONE CHE SEGNA PRENOTATO UN ELEMENTO (PAGINA PRENOTAZIONI SITO)
*/
function cambia_persone_elemento($elemento_id,$num_persone){
$.post('/_ajax/num_persone_elemento.php', {
elemento_id : $elemento_id,
num_persone: $num_persone
});
}
function prenota_elemento($elemento_id){
$tipo_uso = $('input[name="tipo_uso_'+$elemento_id+'"]:checked').val(); // TROVO IL TIPO USO (NEL CASO DI CAMERE)
$prezzo = $('.prezzo_da_usare_'+$elemento_id).val(); // TROVO IL PREZZO
$num_persone = $("select[rel='"+$elemento_id+"']").val();
$prezzo_intero = $('.prezzo_intero_da_usare_'+$elemento_id).val(); // TROVO IL PREZZO INTERO
$.post('/_ajax/prenota_elemento.php', {
elemento_id : $elemento_id,
tipo_uso : $tipo_uso,
num_persone: $num_persone,
prezzo : $prezzo,
prezzo_intero : $prezzo_intero
},
function(data){
$('#div_elemento_'+$elemento_id).toggle();
$('.checkbox_'+$elemento_id+"_"+$tipo_uso).attr('checked', 'checked');
load_area_elementi_prenotati();
var $ci_sono_ancora = false;
$('.ei').each(function(){
if($(this).is(':visible')){
$ci_sono_ancora = true;
}
});
if($ci_sono_ancora != true){
$("#camereDisponibili").hide();
}
else{
if(!$("#camereDisponibili").is(':visible')){
$("#camereDisponibili").show();
}
}
if(data==1){
// var new_position = $('#anchor_elementi_prenotati').offset();
// window.scrollTo(new_position.left,new_position.top);
return false;
}
},'json');
}
function controllo_date($arrivo,$partenza){
$return = ($arrivo<$partenza) ? true : false;
return $return;
}
/*
* FUNZIONE CHE CAMBIA IL TIPO D'USO E QUINDI IL PREZZO DI UNA CAMERA IN PRENOTAZIONE
*/
function cambia_tipo_uso($camera_id,$id){
$prezzo_da_stampare = $('.prezzo_'+$id).val();
$prezzo_intero = $('.prezzo_intero_'+$id).val();
$offerta_id = $('.offerta_'+$id).val();
$('.div_prezzo_'+$camera_id).html('€ '+number_format($prezzo_da_stampare,2));
$('.div_prezzo_intero_'+$camera_id).html('€ '+number_format($prezzo_intero,2));
$('.prezzo_da_usare_'+$camera_id).val($('.prezzo_'+$id).val());
$('.prezzo_intero_da_usare_'+$camera_id).val($('.prezzo_intero_'+$id).val());
if($offerta_id != ''){
$('.div_prezzo_intero_'+$camera_id).show();
$('.div_offerta_elemento_'+$camera_id).load('/_ajax/box_offerta.php?offerta_id='+$offerta_id).show();
$('.div_promozione_'+$camera_id).show();
}
else{
$('.div_prezzo_intero_'+$camera_id).hide();
$('.div_offerta_elemento_'+$camera_id).hide();
$('.div_promozione_'+$camera_id).hide();
}
$prezzo_da_impostare = $('.prezzo_'+$id).val();
imposta_prezzo_elemento($camera_id,$id,$prezzo_da_impostare,$prezzo_intero);
}
function load_area_elementi_prenotati(){
$('#area_elementi_prenotati').load('/_ajax/area_elementi_prenotati.php');
}
function load_totale_prenotazione(){
$('#totale_prenotazione').load('/_ajax/totale_prenotazione.php');
}
function imposta_prezzo_elemento($elemento_id,$tipo_uso,$prezzo_da_impostare){
$.post('/_ajax/imposta_prezzo_elemento.php', {
elemento_id : $elemento_id,
tipo_uso : $tipo_uso,
prezzo : $prezzo_da_impostare,
prezzo_intero : $prezzo_intero
},
function(data){
load_totale_prenotazione();
},'json');
}
function load_servizi_aggiuntivi($tipo,$camera_id,$div_camera_id){
$('#servizi_aggiuntivi_'+$div_camera_id).show();
$.post('/_ajax/load_servizi_aggiuntivi.php', {
tipo: $tipo,
camera_id: $camera_id,
div_camera_id : $div_camera_id
},
function(data){
$('#servizi_aggiuntivi_'+$div_camera_id).html(data);
});
}