
var x = false;
var banOrder = new Array();

banOrder[0] = 'ist';
banOrder[1] = 'pre';
banOrder[2] = 'fin';
banOrder[3] = 'cul';
banOrder[4] = 'lav';

var settimana = new Array();

settimana[0] = 'Domenica';
settimana[1] = 'Luned';
settimana[2] = 'Marted';
settimana[3] = 'Mercoled';
settimana[4] = 'Gioved';
settimana[5] = 'Venerd';
settimana[6] = 'Sabato';

var mesi = new Array();

mesi[1] = 'Gennaio';
mesi[2] = 'Febbraio';
mesi[3] = 'Marzo';
mesi[4] = 'Aprile';
mesi[5] = 'Maggio';
mesi[6] = 'Giugno';
mesi[7] = 'Luglio';
mesi[8] = 'Agosto';
mesi[9] = 'Settembre';
mesi[10] = 'Ottobre';
mesi[11] = 'Novembre';
mesi[12] = 'Dicembre';

var dataRef = new Date();

//////////////////////////////////////////////////////////////////////////// COSTRUZIONE DEL CALENDARIO

var htmlContainer = '';
var giorni = 0;

function getMeseRef() {
	var mese = dataRef.getMonth()+1;
	var month = mesi[mese];
	var year = (dataRef.getYear() < 1900)? dataRef.getYear()+1900:dataRef.getYear();
	var htmlString = month+' '+year;
	document.getElementById('meseRef').innerHTML = htmlString;
}

function buildCalendar(){

	var htmlContainer = '<ul>';
	var mese = dataRef.getMonth()+1;
	var meseCal = (mese < 10)? '0'+mese:mese;
	var year = (dataRef.getYear() < 1900)? dataRef.getYear()+1900:dataRef.getYear();
	var dataCalendario; var giornoCal; var htmlEventi;

	getMeseRef();
	
	
	for(i=1;i<33;i++){
		dataRef.setDate(i);
		var nowMonth = dataRef.getMonth()+1;
		if(mese != nowMonth){
			giorni = i;i=33;
			dataRef.setDate(0);
			dataRef.setDate(1);
		}
	}
	var ng = dataRef.getDay();
	
	if (ng == 0){
		for(n=1;n<7;n++){htmlContainer += '<li> </li>';}
	}else{
		for(n=1;n<ng;n++){htmlContainer += '<li> </li>';}
	}
  
	for(n=1;n<giorni;n++){
		dataRef.setDate(n);
		giornoCal = (n < 10)? '0'+n:n;
		dataCalendario = giornoCal+'/'+meseCal+'/'+year;
		var param = "'" + dataCalendario + "'";
		htmlEventi = getCalContainerEventid(dataCalendario);
		htmlContainer += '<li onMouseOver="onOver('+param+',this);">'+n+htmlEventi+'</li>';
	}

	dataRef.setDate(giorni-1);
	ng = dataRef.getDay();
	if (ng > 0 ){
		for(n=1;n<7-ng+1;n++){htmlContainer += '<li> </li>';}
	}
	htmlContainer += '</ul>';
	document.getElementById('cal_giorno').innerHTML = htmlContainer;
	dataRef.setDate(1);
}		

function changeMonth(m){
	document.getElementById('popup').style.display = 'none';
	dataRef.setMonth(m);
	buildCalendar();
	//setCalendar(areaName);
}

function onOver(param,obj){
	//alert(param);
	if (x){window.clearTimeout(x);}
	x = window.setTimeout("document.getElementById('popup').style.display='none';", 6000);
	//alert(x);
	var position = findPos(obj);
	var coEvents = findEvents(param);
	var testoPopUp = '<body><div id="cal_pop"><h1>'+param+'</h1><table>';
	//alert(position);
	//alert(coEvents);
	document.getElementById('popup').innerHTML = '';

	if(coEvents.length>0){
		for(c=0;c<coEvents.length;c++){
			var events = coEvents[c].split('|');
			var eventID = events[3];
			var ahref = events[4];
			var text ="";
						
			var img = '<td class="cal_col_1"><img src="/it_IT/static/images/calendario/pop_'+events[0]+'.gif" /></td>';
			text = '<td class="cal_col_2">';
			if (events[4] == 'null'){
				text = text + events[2];
			}else{
				var target = (events[4].indexOf('http') != -1)? '_blank':'';
				text = text + '<a href="'+events[4]+'" target="'+target+'">'+events[2]+'</a>';
			}
			text = text+'</td>';
			var link = ' <td class="cal_col_3"><a href="/MailSmsAlertWar/jsp/CalendarioMailAlertIntro.jsp?locale=it&event='+events[3]+'" target="_blank" title="MAIL & SMS ALERT"><img src="/it_IT/static/images/calendario/arrow_dx_pop.gif" alt="MAIL & SMS ALERT"></a>';
			testoPopUp += '<tr>'+img + text+ link+'</tr>';
			
		}
		testoPopUp +=	'</table></div><div id="cal_pop_footer"></div></body>';
		document.getElementById('popup').innerHTML = testoPopUp;
		document.getElementById('popup').style.display = '';
		var altezzaPopUp = findPos(document.getElementById('popup'))[3];
		
		document.getElementById('popup').style.top = position[1] - altezzaPopUp + 12 + 'px';
	  document.getElementById('popup').style.left = position[0]-150 + 'px';
	}
	
}

function getEventsOnDate(dataCalendario,categoriesOnDate,eventsOnDate) {
	for (i=0;i<megaArray.length;i++){				
		if (megaArray[i].substr(4,10) == dataCalendario) {
			categoriaEvento = megaArray[i].substr(0,3);
			for (j=0;j<banOrder.length;j++){	
				if (banOrder[j]==categoriaEvento){
					categoriesOnDate[j]='Y';
					eventsOnDate[j]+= 1;
				}
			}
		}
	}
}			

function getCalContainerEventid(dataCalendario) {

	var categoriesOnDate = new Array();
	categoriesOnDate[0] = 'N';
	categoriesOnDate[1] = 'N';
	categoriesOnDate[2] = 'N';
	categoriesOnDate[3] = 'N';
	categoriesOnDate[4] = 'N';
	
	var eventsOnDate = new Array();
	eventsOnDate[0] = 0;
	eventsOnDate[1] = 0;
	eventsOnDate[2] = 0;
	eventsOnDate[3] = 0;
	eventsOnDate[4] = 0;
	
	var imagesOnDate = new Array();
	imagesOnDate[0] = 0;
	imagesOnDate[1] = 0;
	imagesOnDate[2] = 0;
	imagesOnDate[3] = 0;
	imagesOnDate[4] = 0;
	
	getEventsOnDate(dataCalendario,categoriesOnDate,eventsOnDate);
	
	var giorno = dataCalendario.substr(0,2);
	var CalContainerEventid = '<div class="cal_container_eventi">';
	//determino il numero di bandierine
	var numeroCategorie = 0;
	for (j=0;j<categoriesOnDate.length;j++){
		if(categoriesOnDate[j]=='Y'){numeroCategorie += 1;}
	}
	
	//variabili di utilita per confrontare sul giorno, il numero di eventi sulle categorie
	var compareNr = 0;
	var indicePrec = 0;
	
	switch(numeroCategorie) { 
  
  case 1: 
  // metto 5 sull'unica categoria
    for (j=0;j<imagesOnDate.length;j++){
				if(categoriesOnDate[j]=='Y'){
					imagesOnDate[j] = 5;
					}
		}
  break; //si ferma qui 

  case 2:
  //metto 3 sulla categoria che ha pił elementi, 2 sull'altra
  compareNr = 0; 
  indicePrec = 0;
  for (j=0;j<imagesOnDate.length;j++){
				if(categoriesOnDate[j]=='Y'){
					if (compareNr ==0 ){
						// primo giro
							imagesOnDate[j] = 3;
							indicePrec = j;
							compareNr = eventsOnDate[j];
					}
				else {
					//secondo giro
					if (eventsOnDate[j] > compareNr) {
						imagesOnDate[j] = 3;
						imagesOnDate[indicePrec] = 2;
						}
					else {
						imagesOnDate[j] = 2;
						}
					}
				}
		}
  break; //si ferma qui 

  case 3:
  //metto 1 sulla categoria che ha meno elementi, 2 sulle altre due. Attenzione parto dal fondo
  compareNr = 0; 
  indicePrec = 0;
  for (j=imagesOnDate.length-1;j>-1;j--){
				if(categoriesOnDate[j]=='Y'){
					if (compareNr ==0 ){
						// primo giro
							imagesOnDate[j] = 1;
							indicePrec = j;
							compareNr = eventsOnDate[j];
					}
				else {
					//secondo giro
					if (eventsOnDate[j] < compareNr) {
						imagesOnDate[j] = 1;
						imagesOnDate[indicePrec] = 2;
						compareNr = eventsOnDate[j];
						}
					else {
						imagesOnDate[j] = 2;
						}
					}
				}
		}
  break; //si ferma qui 

  case 4:
  //metto 2 sulla categoria che ha pił elementi, 1 su tutte le altre
  compareNr = 0; 
  indicePrec = 0;
  for (j=0;j<imagesOnDate.length;j++){
				if(categoriesOnDate[j]=='Y'){
					if (compareNr ==0 ){
						// primo giro
							imagesOnDate[j] = 2;
							indicePrec = j;
							compareNr = eventsOnDate[j];
					}
				else {
					//secondo giro
					if (eventsOnDate[j] > compareNr) {
						imagesOnDate[j] = 2;
						imagesOnDate[indicePrec] = 1;
						compareNr = eventsOnDate[j];
						}
					else {
						imagesOnDate[j] = 1;
						}
					}
				}
		}
  break; //si ferma qui 

  case 5: 
  //metto 1 su tutte le categorie
    for (j=0;j<imagesOnDate.length;j++){
				if(categoriesOnDate[j]=='Y'){
					imagesOnDate[j] = 1;
					}
		}
  break; //si ferma qui 
  
  default: 
    //istruzioni 
}

	for (j=0;j<categoriesOnDate.length;j++){	
		if(categoriesOnDate[j]=='Y'){
			for (i=0; i<imagesOnDate[j];i++){
				CalContainerEventid += '<img src="/it_IT/static/images/calendario/evento_'+banOrder[j]+'.gif" />';
				}
		}
	}

	CalContainerEventid += '</div>';
	return CalContainerEventid ;
}

function setCalendar(sezione) {
	if (sezione=="azienda" || sezione=="prodotti" || sezione=="innovazione" || sezione=="sostenibilita" || sezione=="media" || sezione=="clienti") {
		for(n=1;n<giorni;n++){
					if (n<10) {
							if (document.getElementById("ist0"+n)){
									document.getElementById("ist0"+n).style.display='';
							}
					}
					else {
							if (document.getElementById("ist"+n)){
									document.getElementById("ist"+n).style.display='';
							}
					}	
		}	
	}
	if (sezione=="azienda" || sezione=="media" ) {
				for(n=1;n<giorni;n++){
					if (n<10) {
							if (document.getElementById("cul0"+n)){
									document.getElementById("cul0"+n).style.display='';
							}
					}
					else {
							if (document.getElementById("cul"+n)){
									document.getElementById("cul"+n).style.display='';
							}
					}	
		}	
	}
	if (sezione=="media") {										
				for(n=1;n<giorni;n++){
					if (n<10) {
							if (document.getElementById("pre0"+n)){
									document.getElementById("pre0"+n).style.display='';
							}
					}
					else {
							if (document.getElementById("pre"+n)){
									document.getElementById("pre"+n).style.display='';
							}
					}	
		}	
	}
	if (sezione=="media"  || sezione=="investor" ) {																						
		for(n=1;n<giorni;n++){
					if (n<10) {
							if (document.getElementById("fin0"+n)){
									document.getElementById("fin0"+n).style.display='';
							}
					}
					else {
							if (document.getElementById("fin"+n)){
									document.getElementById("fin"+n).style.display='';
							}
					}	
		}	
	}

	if (sezione=="lavora") {											
		for(n=1;n<giorni;n++){
					if (n<10) {
							if (document.getElementById("lav0"+n)){
									document.getElementById("lav0"+n).style.display='';
							}
					}
					else {
							if (document.getElementById("lav"+n)){
									document.getElementById("lav"+n).style.display='';
							}
					}	
		}	
	}
}

////////////////////////////////////////////////////////////////////////TECNICAL STATEMENT

function findPos(obj) {
	
	var mw = mh = 0;
	mw = obj.offsetWidth;
	mh = obj.offsetHeight;
	
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	
	return [curleft,curtop,mw,mh];
}

function findEvents(param){
	var coEvents = new Array();

	for(i=0;i<megaArray.length;i++){
		
		var date = megaArray[i].substr(4,10);
		var category = megaArray[i].substr(0,3);

		if(date == param){
			coEvents.push(megaArray[i]);
		}

	}
	return coEvents;
}

window.setTimeout("buildCalendar();", 2000);
