//FUNZIONE CHE VISUALIZZA L'ELENCO DELLE NEWS DATO L'ARRAY ASSOCIATIVO ESTRATTO DAL XML
function mostraNews(albero,righe)
{
	for(var i=0; i<righe; i++)
	{
		disegnaElemento(albero,i,i);		
	}
}

//FUNZIONE CHE VISUALIZZA L'ELENCO DELLE NEWS DATO L'ARRAY ASSOCIATIVO ESTRATTO DAL XML DATO UN DETERMINATO FILTRO
function mostraNewsFiltro(albero,tipoFiltro,valoreFiltro,righe)
{
	var contenuti=0;
	for(var i=0; i<righe; i++)
	{
	   if(albero[i][tipoFiltro]==valoreFiltro)
	   {
		disegnaElemento(albero,i,contenuti);
		contenuti++;
	   }
	}
	if(contenuti==0)
		document.write('<b>Nessun contenuto al momento...</b>');
}

//FUNZIONE CHE DISEGNA A VIDEO UN DETERMINATO NODO DEL FILE XML, DATO IL NODO CONTENUTO NEL RECORD DELL'ARRAY ASSOCIATIVO
function disegnaElemento(albero,i,primo)
{
	document.write('<div class="titolo">');
	document.write('<a onclick="apriChiudi('+i+')">');
	if(primo>3){
		immagine='./Images/slideDown.gif';
		visibile='none';
	}
	else{
		immagine='./Images/slideUp.gif';
		visibile='block';
	}
	document.write('<img style="cursor:pointer" id="img'+i+'" src="'+immagine+'" align="left" border="0"></a>'+albero[i]['titolo']+'</div>');
	document.write('<div id="contenuto'+i+'" class="contenuti" style="display:'+visibile+';">');
	if(albero[i]['foto']!='.')
	document.write('<img src="'+albero[i]['foto']+'" align="left" height="100">');
	//FORMATTO IL CONTENUTO DEL NODO IN MODO DA OTTENERE I TAG HTML
	albero[i]['contenuto']=albero[i]['contenuto'].replace(/#18#/g,'<');
	albero[i]['contenuto']=albero[i]['contenuto'].replace(/#19#/g,'>');
	document.write(albero[i]['contenuto']);
	if(albero[i]['allegato'] || albero[i]['link'])
	{
		document.write('<table width="100%" border="0">');
		document.write('<tr>');
		if(albero[i]['allegato'])
		{
			document.write('<td>');
			document.write('<b>Allegati</b>');
			document.write('<ul>');
			if(albero[i]['allegato'] instanceof Array)
			{
				for(z=0;z<albero[i]['allegato'].length;z++)
				{
					var nomeDoc=albero[i]['allegato'][z].split("/");
					var doc=nomeDoc[nomeDoc.length-1].split(".");
					document.write('<li><a href="'+albero[i]['allegato'][z]+'" target="_blank">'+doc[0]+'</a></li>');
				}
			}
			else{
				var nomeDoc=albero[i]['allegato'].split("/");
				var doc=nomeDoc[nomeDoc.length-1].split(".");
				document.write('<li><a href="'+albero[i]['allegato']+'" target="_blank">'+doc[0]+'</a></li>');
			}
			document.write('</ul>');
			document.write('</td>');
			document.write('</tr>');
			document.write('</table>');
		}
		if(albero[i]['link'])
		{
			document.write('<td>');
			document.write('<b>Links</b>');
			document.write('<ul>');
			if(albero[i]['link'] instanceof Array)
			{
				for(z=0;z<albero[i]['link'].length;z++)
				{
					var nomeDoc=albero[i]['link'][z].split("/");
					var doc=nomeDoc[nomeDoc.length-1].split(".");
					document.write('<li><a href="'+albero[i]['link'][z]+'" target="_blank">'+doc[0]+'</a></li>');
				}
			}
			else{
				var nomeDoc=albero[i]['link'].replace("http://","");
				var doc=nomeDoc.split("/");
				document.write('<li><a href="'+albero[i]['link']+'" target="_blank">'+doc[0]+'</a></li>');
			}
			document.write('</ul>');
			document.write('</td>');
			document.write('</tr>');
			document.write('</table>');
		}
	}						
	document.write('</div>');						
	document.write('<br>');
}


//FUNZIONE PER IL CONFRONTO DELLE DATE, RITORNA VERO SE LA DATA è PRIMA O DOPO LA DATA SPECIFICATA (IL CONTROLLO SE PRIMA O DOPO)
//VIENE EFFETTUATO TRAMITE IL PARAMETRO DOPO
function confrontaDate(data1,data2,dopo)
{
	data1=formattaData(data1);
	data2=formattaData(data2);
	//alert(data1+' '+data2);
	if(dopo)
	{
		if(data1 > data2)
			return true;
	}
	if(!dopo)
	{
		if(data1 < data2)
			return true;
	}
	return false;
}

//FUNZIONE CHE RITORNA UNA STRINGA CONTENENTE LA DATA IN FORMATO AAAAMMGGHHMM
function formattaData(data)
{
	//alert(data);
	var dataOra=data.split(' ');
	var data=dataOra[0].split('-');
	var ora=dataOra[1].split(':');
	return data[2]+data[1]+data[0]+ora[0]+ora[1];
}

//FUNZIONE CHE RITORNA UNA STRINGA CONTENENTE LA DATA E L'ORA CORRENTI NEL FORMATO GG-MM-AAAA HH-MM
function sysdate()
{
	var data=new Date();
	var giorno=data.getDate();
	if(giorno<10) giorno='0'+giorno;
	var mese=parseInt(data.getMonth())+1;
	if(mese<10) mese='0'+mese;
	var anno=data.getFullYear();
	var ore=parseInt(data.getHours());
	var minuti=data.getMinutes();
	var stringaData=giorno+'-'+mese+'-'+anno+' '+ore+':'+minuti;
	//alert(stringaData);
	return stringaData;
}

//FUNZIONE CHE DATA UNA DETERMINATA DATA RITORNA LA DATA FORMATTATA AGGIUNGENDO IL NUMERO DI GIORNI SCELTI
function sysdateShiftata(giorni)
{
	var data=new Date();
	var giorno=parseInt(data.getDate());
	giorno=giorno+giorni;
	var mese=parseInt(data.getMonth())+1;
	if(mese==2)
	{
		if(anno%4==0)
		{
			if(giorno>29)
			{
				mese++;
				giorno=giorno-29;
			}
		}
		else{
			if(giorno>28)
			{
				mese++
				giorno=giorno-28;
			}
		}
			
	}
	if(mese==11 || mese==4 || mese==6 || mese==9)
	{
		if(giorno>30)
		{
			mese++;
			giorno=giorno-30;
		}
	}
	else{
		if(giorno>31)
		{
			mese++;
			giorno=giorno-31;
		}
	}
	if(giorno<10) giorno='0'+giorno;
	var anno=parseInt(data.getFullYear());
	if(mese>12)
	{
		anno++;
		mese=mese-12;
	}
	if(mese<10) mese='0'+mese;
	var ore=parseInt(data.getHours());
	var minuti=data.getMinutes();
	var stringaData=giorno+'-'+mese+'-'+anno+' '+ore+':'+minuti;
	//alert(stringaData);
	return stringaData;

}


function mergesort(arr)
{
   var left = new Array();
   var right = new Array();
   var len = arr.length;

   if (len <= 1) return arr;

   var middle = Math.floor(len / 2);
   for (var i = 0; i < middle; i++) left.push(arr[i]);
   for (var i = middle; i < len; i++) right.push(arr[i]);

   left = mergesort(left);
   right = mergesort(right);

   return merge(left, right);
}

function merge(left, right)
{
   var retval = new Array();
   while(left.length > 0 && right.length > 0)
   {
      if (lt_or_eq(left[0], right[0])) retval.push(left.shift());
      else retval.push(right.shift());
   }

   if (left.length > 0) return retval.concat(left);
   if (right.length > 0) return retval.concat(right);

   return retval;
}

//FUNZIONE CHE INSERISCE NEL DOCUMENTO UNA COPIA DEL NODO DATO IN INPUT
function inserisciCopia(id,formId,idDaCopiare)
{
	var div=document.getElementById(idDaCopiare);
	var form=document.getElementById(formId);
	var count=form.childNodes.length;
	var copia=div.cloneNode(true);
	var nuovoId=id+count;
	copia.setAttribute('id',nuovoId);
	var rimuovi='<a href="#" onclick="eliminaNodo(\''+nuovoId+'\',\''+formId+'\')"><b class="grassettino">Rimuovi</b></a>';
	var HTML=copia.innerHTML;
	copia.innerHTML=HTML+rimuovi;
	form.insertBefore(copia,document.getElementById(id));
}

//FUNZIONE CHE ELIMINA UN NODO DA UN DOCUMENTO
function eliminaNodo(id,formId)
{
	var morto=document.getElementById(id);
	var padre=document.getElementById(formId);
	padre.removeChild(morto);
}

function compariScompari(id,check)
{
	var elemento=document.getElementById(id);
	if (check.checked)
		elemento.appear();
	if (!check.checked)
		elemento.hide();
}
