var mesi = new Array ('GENNAIO','FEBBRAIO','MARZO','APRILE','MAGGIO','GIUGNO','LUGLIO','AGOSTO','SETTEMBRE','OTTOBRE','NOVEMBRE','DICEMBRE');
var mesi_eng = new Array ('JANNUARY','FEBRUARY','MARCH','APRIL','MAY','JUNE','JULY','AUGUST','SEPTEMBER','OCTOBER','NOVEMBER','DICEMBER');
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;
function creaCalendario (evento, mese, anno) {
var Calendar = new Array ();
var opStr = ((self.operatore !== undefined) && self.operatore != '')? '&wms_op='+operatore: '';
var replicheEvento = eventi[evento];
if (!firstDate[evento] || firstDate[evento] == null ) {
firstDate[evento] = new Date (replicheEvento[0][2].getFullYear(), replicheEvento[0][2].getMonth(), 1); // primo giorno del primo mese
firstString[evento] = document.getElementById('mese_prev_'+evento).innerHTML;
}
if (!lastDate[evento] || 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] = document.getElementById('mese_next_'+evento).innerHTML;
}
month[evento] = mese;
year[evento] = anno;
//inserisco il nome del mese
var mm = document.getElementById ('mese_anno_'+evento);
mm.innerHTML = ((eng == 1)? mesi_eng[mese]: 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()) document.getElementById('mese_prev_'+evento).innerHTML = '';
else document.getElementById('mese_prev_'+evento).innerHTML = firstString[evento] ;
if (last.valueOf() == lastDate[evento].valueOf()) document.getElementById('mese_next_'+evento).innerHTML = '';
else document.getElementById('mese_next_'+evento).innerHTML = 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
Calendar.push (new Array (i,replicheEvento[j][3], replicheEvento[j][0], replicheEvento[j][1], replicheEvento[j][4]));
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 (Calendar[i]) { // giorno del mese
if (Calendar[i][1] == null) // giorno senza evento
dayOfTheMonth += "
"+Calendar[i][0]+"";
else if (Calendar[i][1] == '0') // giorno senza disponibilita
dayOfTheMonth += ''+Calendar[i][0]+'';
else { // giorno con disponibilita
if (Calendar[i][4] == 1) //cardinalità 1
dayOfTheMonth += ''+Calendar[i][0]+'';
else //cardinalità > 1
dayOfTheMonth += ''+Calendar[i][0]+'';
}
}
else // cella vuota
dayOfTheMonth += "";
}
document.getElementById('dayOfTheMonth_'+evento).innerHTML = 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]; }
}
creaCalendario (evento, mese, anno);
}
var prevElement = new Array();
function showTimeCal(dayElement, evento, tcode, pcode, day) {
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;
ajaxGet("eventoWidgetTlite.php?ajax=1&cal=1&tcode="+tcode+'&pcode='+pcode+add, handlerCalendario, evento);
document.getElementById('timeCalTitle_'+evento).innerHTML = ((eng == 1)?'TIMETABLE':'ORARIO') + ' - '+day+'/'+m+'/'+year[evento];
document.getElementById('timeCal_'+evento).style.display = 'block';;
if (prevElement[evento] != null) {
prevElement[evento].setAttribute ('class','');
prevElement[evento].setAttribute ('className','');
}
dayElement.setAttribute ('class','selected');
dayElement.setAttribute ('className','selected');
prevElement[evento] = dayElement;
}
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'+fascie[i]['ora']+'';
}
else {
if (fascie[i]['d'] < dispo) dispo_label = fascie[i]['d']+((eng == 1)?'seats':'posti');
else dispo_label = ((eng == 1)?'availability':'disponibilita');
if (babbo) tcFascie += ''+fascie[i]['ora']+'';
else tcFascie += ''+fascie[i]['ora']+'';
}
}
if (fascie.length%4 != 0) {
for (var i=0; i<(4-fascie.length%4); i++) {
tcFascie += '';
}
}
document.getElementById('timeCalFascie_'+evento).innerHTML = tcFascie;
}
function toggleLegenda() {
var theBody = document.getElementById('legendaCalBody');
var theToggler = document.getElementById('legendaCalToggler');
if (theBody.style.display=='none') {
theBody.style.display='block';
theToggler.innerHTML=((eng == 1)?'Hide legenda':'Nascondi legenda');
theToggler.className='open';
} else {
theBody.style.display='none';
theToggler.innerHTML=((eng == 1)?'Show legenda':'Mostra legenda');
theToggler.className='';
}
}
function submitFormPrenota (evento, code) {
document.getElementById('pcode_'+evento).value = code;
document.getElementById('frmPrenota'+evento).submit();
}