var month = new Array();
var year = new Array();
var firstDate = new Array();
var lastDate = new Array();
var firstString = new Array();
var lastString = new Array();
var babbo = false;
var navPage = {'nvpg':'sell', 'cmd':'prices'};
var calSelector = 'li';
if (vivaversion == 2) {
calSelector = 'div';
}
function creaCalendario (evento, mese, anno, filtro) {
var Calendar = new Array ();
var opStr = ((self.operatore !== undefined) && self.operatore != '')? '&wms_op='+operatore: '';
var replicheEvento = eventi[evento]; //0: location_code, 1: event_code, 2:date, 3: dispo totale, 4:cardinalità, 5:maxdispo eventi
filtro = typeof filtro !== 'undefined' ? filtro : 1;
if (firstDate[evento] == null ) {
firstDate[evento] = new Date (replicheEvento[0][2].getFullYear(), replicheEvento[0][2].getMonth(), 1); // primo giorno del primo mese
firstString[evento] = $('#mese_prev_'+evento).html();
}
if (lastDate[evento] == null ) {
lastDate[evento] = new Date (replicheEvento[replicheEvento.length-1][2].getFullYear(), replicheEvento[replicheEvento.length-1][2].getMonth()+1, 0); //ultimo giorno dell'ultimo mese
lastString[evento] = $('#mese_next_'+evento).html();
}
month[evento] = mese;
year[evento] = anno;
//inserisco il nome del mese
var mm = $('#mese_anno_'+evento);
mm.html(mesi[mese]+' '+anno);
//creo l'array per il calendario
var first = new Date (anno, mese, 1);
var last = new Date (anno, mese+1, 0); //da l'ultimo giorno del mese precedente anche se cambio anno
if (first.valueOf() == firstDate[evento].valueOf()) $('#mese_prev_'+evento).html('') ;
else $('#mese_prev_'+evento).html(firstString[evento]) ;
if (last.valueOf() == lastDate[evento].valueOf()) $('#mese_next_'+evento).html('') ;
else $('#mese_next_'+evento).html(lastString[evento]) ;
//quanti vuoti prima?
for (var i=0; i< ((first.getDay() + 6)%7); i++ ) {
Calendar.push (null);
}
// aggiungo i giorni del mese
for (var i=1; i<= last.getDate(); i++) {
var trovato =false;
var d = new Date (anno, mese, i,0,0,0,0);
for (var j=0; j< replicheEvento.length; j++) {
if (d.valueOf() == replicheEvento[j][2].valueOf()) { // giorno con evento
// dispo totale location_code event_code cardinalità maxdispo
Calendar.push (new Array (i, replicheEvento[j][3], replicheEvento[j][0], replicheEvento[j][1], replicheEvento[j][4], replicheEvento[j][5]));
trovato =true;
}
}
if (!trovato)
Calendar.push (new Array (i,null)); // giorno senza evento
}
//quanti vuoti dopo?
for (var i=0; i< ((7 - last.getDay())%7); i++ ) {
Calendar.push (null);
}
var dayOfTheMonth = '';
//mostriamoli
for (i=0; i< Calendar.length; i++) {
if (vivaversion == 2) {
if (i % 7 == 0)
dayOfTheMonth += '
';
}
if (Calendar[i]) { // giorno del mese
if (Calendar[i][1] == null) // giorno senza evento
dayOfTheMonth += '<'+calSelector+' class="day no-event cal'+(mese+1)+Calendar[i][0]+'">'+Calendar[i][0]+''+calSelector+'>';
else if (Calendar[i][1] == '0') // giorno senza disponibilita
dayOfTheMonth += '<'+calSelector+' class="day inactive cal'+(mese+1)+Calendar[i][0]+'" title="'+frasi.calendario['noSeat']+'">'+Calendar[i][0]+''+calSelector+'>';
else if (Calendar[i][5] < filtro) // giorno con dispo < filtro
dayOfTheMonth += '<'+calSelector+' class="day inactive filtro cal'+(mese+1)+Calendar[i][0]+'" title="'+frasi.calendario['noEnough']+'">'+Calendar[i][0]+''+calSelector+'>';
else { // giorno con disponibilita
// frase di default per la disponibilita' sul giorno del calendario
var posti_label= frasi.calendario['seat'].call(this, frasi.calendario['disponibilita']);
if (Calendar[i][4] == 1) {//cardinalita' 1
// NB disponibilita' expo sempre -1
if (Calendar[i][1] != -1 && Calendar[i][1] < dispo)
posti_label = frasi.calendario['seat'].call(this, Calendar[i][1]);
dayOfTheMonth += '<'+calSelector+' class="day cal'+(mese+1)+Calendar[i][0]+'">
'+Calendar[i][0]+''+calSelector+'>';
}
else { //cardinalita' > 1
dayOfTheMonth += '<'+calSelector+' class="day cal'+(mese+1)+Calendar[i][0]+'">
'+Calendar[i][0]+''+calSelector+'>';
}
}
}
else // cella vuota
dayOfTheMonth += '<'+calSelector+' class="day">'+calSelector+'>';
if (vivaversion == 2) {
if (i % 7 == 6 )
dayOfTheMonth += '
';
}
}
$('#dayOfTheMonth_'+evento).html(dayOfTheMonth);
}
function giraPagina (evento, quando) {
var mese = month[evento];
var anno = year[evento];
if (quando == 1) { // successivo
if (month[evento] == 11) { mese = 0; anno = year[evento] +1; }
else { mese = month[evento] +1; anno = year[evento]; }
}
else if (quando == -1) { // precedente
if (month[evento] == 0) { mese = 11; anno = year[evento] -1; }
else { mese = month[evento] -1; anno = year[evento]; }
}
filtro = 1;
if ($('div[data-role="seat-filter"]').length) {
filtro = $('div[data-role="seat-filter"] button.btn-success').data('n');
}
creaCalendario (evento, mese, anno, filtro);
}
function showTimeCal(dayElement, evento, tcode, pcode, day) {
var opStr = ((operatore !== undefined) && operatore != '')? '&wms_op='+operatore: '';
var d=day; if (d.length<2) d='0'+d;
var m=month[evento]+1; if (m<10) m='0'+m;
var add = '';
if (babbo) add= '&request_data='+request_data+'&code='+code[evento]+'&date='+year[evento]+'-'+m+'-'+d+opStr;
filtro = 1;
if ($('div[data-role="seat-filter"]').length) {
filtro = $('div[data-role="seat-filter"] button.btn-success').data('n');
}
$.ajax({
type: "POST",
url: "/eventoWidgetTlite.php",
data: "ajax=1&cal=1&tcode="+tcode+'&pcode='+pcode+'&seat-filter='+filtro+add,
success: function(msg){ handlerCalendario(msg, evento); }
});
$('#timeCalTitle_'+evento).html (frasi.calendario['orario'] + ' - '+day+'/'+m+'/'+year[evento]);
$('#timeCal_'+evento).css('display','block');
if (vivaversion == 1) {
$('#dayOfTheMonth_'+evento).find('a').removeClass ('selected');
$(dayElement).addClass ('selected');
} else {
$('#dayOfTheMonth_'+evento).find('div').removeClass ('selected');
$(dayElement).parent().addClass ('selected');
}
}
function handlerCalendario(content, evento) {
var opStr = ((self.operatore !== undefined) && operatore != '')? '&wms_op='+operatore: '';
var dispo_label = '';
var tcFascie = '';
eval ('var fascie = '+content+';');
for (var i=0; i';
}
if (fascie[i]['d'] < dispo) dispo_label = frasi.calendario['seat'].call(this, fascie[i]['d']);
else dispo_label = frasi.calendario['disponibilita'];
if (babbo) tcFascie += '<'+calSelector+' class="time">'+fascie[i]['ora']+''+calSelector+'>';
else tcFascie += '<'+calSelector+' class="time">'+fascie[i]['ora']+''+calSelector+'>';
if (vivaversion == 2) {
if (i % 4 == 3 )
tcFascie += '';
}
}
if (fascie.length%4 != 0) {
for (var i=0; i<(4-fascie.length%4); i++) {
tcFascie += '<'+calSelector+' class="time">'+calSelector+'>';
}
tcFascie += ''+calSelector+'>';
}
$('#timeCalFascie_'+evento).html(tcFascie);
}
function submitFormPrenota (evento, code) {
$('#pcode_'+evento).val(code);
$('#frmPrenota'+evento).submit();
}
$(document).ready(function() {
$('div[data-role="seat-filter"] button, div[data-role="seat-filter"] span[data-role="seat-filter-reset"]').click (function () {
$('div[data-role="seat-filter"] button').removeClass('btn-success').addClass('btn-default');
if ($(this).data('role') !== 'seat-filter-reset')
$(this).removeClass('btn-default').addClass('btn-success');
var mese = month[show_id];
var anno = year[show_id];
var selected = '';
if ($('#dayOfTheMonth_'+show_id+' a.selected').length > 0)
selected = $('#dayOfTheMonth_'+show_id+' a.selected').parent()[0].classList;
creaCalendario ( show_id, mese, anno, $(this).data('n'));
if (selected != '') {
if ($('#dayOfTheMonth_'+show_id+' .'+selected[0]+'.'+selected[1]+' a').length == 0)
$('#timeCal_'+show_id).hide();
else
$('#dayOfTheMonth_'+show_id+' .'+selected[0]+'.'+selected[1]+' a').trigger('click');
}
});
});