var ArrayBacheca = new Array();
var Cancellabile = false;

function isArray(obj) {
   if (obj.constructor.toString().indexOf("Array") == -1)
      return false;
   else
      return true;
}

function submitBacheca(dominio, idUtente, idScrivente, idBacheca, divBacheca)
{

	var objBachecaText = document.getElementById(idBacheca);
	
	if (objBachecaText) {
		//recupero del testo
		
		var testoBacheca = objBachecaText.value;
	
	
		if (testoBacheca != "") {
			//Definizione della pagina
			pagina = dominio+"funzioni/salva_post_bacheca.php?testo="+escape(testoBacheca)+"&idU="+idUtente+"&idS="+idScrivente;
			
			//salvataggio dei dati
			PostDati(pagina);
			
			leggiBacheca(dominio,idUtente,'DatiBacheca','rw');
		}
		
		objBachecaText.value = "";
	}
}


function cancellaBacheca(dominio, idUtente, idBacheca)
{


			//Definizione della pagina
			pagina = dominio+"funzioni/cancella_post_bacheca.php?&idU="+idUtente+"&idB="+idBacheca;
			
			//salvataggio dei dati
			PostDati(pagina);
			
			leggiBacheca(dominio,idUtente,'DatiBacheca','rw');


}


//Lettura messaggi della bacheca
function leggiBacheca(dominio,idUtente,idBacheca,op)
{

	//Recupero i messaggi in bacheca
	var objBacheca = document.getElementById(idBacheca);
	var testoBacheca = "";
	
	
	if (objBacheca) {
		
		//Definizione della pagina
		pagina = dominio+"funzioni/read_post_bacheca.php?idU="+idUtente;
		
		
		if (ArrayBacheca.length > 9) {
			op = "r";
			for (popC=0;popC<10;popC++)
			{
				var temp = ArrayBacheca.pop();
			}
		}		
		
		//salvataggio dei dati
		LeggiDatiBacheca(pagina,idBacheca, dominio, op, idUtente);
	}	
}


function generaDatiBacheca(objBacheca, DatiBacheca, dominio, op, idUtente)
{
		//Li ritrasformo con l'array
		//Definizione delle righe
		
		var testoBacheca = "";
		var righe = DatiBacheca.split("+|+");
		
		var indice = 0;
		
		if (isArray(righe) && righe != "") {
		
			for(conta=0;conta < righe.length; conta++)
			{
				var valori = righe[conta].split("*|*");
				
				if (isArray(valori) && valori != "") {
				

				
					idUnico = valori[0];
					testMessaggio = valori[1];
					nomeScrivente = valori[2];
					fotoScrivente = valori[3];
					idScrivente = valori[4];
					dataMessaggio = valori[5];
					
					testMessaggioTemp = "";
					
					if (testMessaggio) {
					
						if (testMessaggio.length > 150) {
							for (contaT =0; contaT <testMessaggio.length; contaT=contaT+150)
							{
								testMessaggioTemp += testMessaggio.substr(contaT,150)+"<br>";
							}
							testMessaggio = testMessaggioTemp;
						} 
					
					
					
					
					
						testoBacheca = "<table border=\"0\" cellpadding=\"3\" cellspacing=\"3\" class=\"MessaggioBacheca\">";
						testoBacheca += "<tr><td align=\"left\" valign=\"top\" width=\"70px\" class=\"FotoProfilo\">";
						
						var immagine = "/immagini/profilo_nofoto_small.jpg";
						if (fotoScrivente != "") {
							immagine = fotoScrivente;	
						}
						testoBacheca +="<img src=\""+immagine+"\" border=\"0\" />";
						testoBacheca += "</td>";
						
						testoBacheca += "<td align=\"left\" valign=\"top\" >";
						testoBacheca += "<a href=\""+dominio+"social_profilo.php?id="+idScrivente+"\" class=\"LinkRossoLight\">"+nomeScrivente+"</a>&nbsp;&nbsp;<span class=\"testoVerde\">"+dataMessaggio+"</span><br/>";
						testoBacheca += testMessaggio;
						testoBacheca += "</td>";
						
						testoBacheca += "<td align=\"right\" valign=\"top\" width=\"10px\">";
						if (Cancellabile == true) {
							testoBacheca += "<a href=\"#\" onclick=\"cancellaBacheca('"+dominio+"', '"+idUtente+"', "+idUnico+")\"><img src=\"/immagini/imgCroce.gif\" border=\"0\"/></a>";
						} else {
							testoBacheca += "&nbsp;";
						}
						testoBacheca += "</td>";
						
						testoBacheca += "</tr>";
						testoBacheca += "</table>";				
					}
					
					//Controllo se il messaggio cè già
					if (ArrayBacheca.length > 0) {
						//Verifico se esiste già nell'array
						esiste = false;
						for (contaB=0;contaB<ArrayBacheca.length;contaB++)
						{
							if (ArrayBacheca[contaB] == idUnico)
							{
								esiste = true;
								break;
							}
						}
						
						if (!esiste)
						{
							
							indice = ArrayBacheca.length;
							if (indice <0) indice = 0;
							ArrayBacheca[indice] = idUnico;
							
							if (op == "r") {
								objBacheca.innerHTML += testoBacheca;					
							}
							
							if (op == "rw") {
								objBacheca.innerHTML = testoBacheca + objBacheca.innerHTML;					
							}							
						}
						
					} else {
						
						//Aggiungo direttamente
						indice = ArrayBacheca.length;
						
						if (indice <0) indice = 0;
						ArrayBacheca[indice] = idUnico;
						if (testoBacheca) objBacheca.innerHTML = testoBacheca;
					}
				}
			}
		}
}

function LeggiDatiBacheca(nomeFile,idBacheca, dominio, op, idUtente)
{
	// funzione di caricamento testo,
	// accetta una stringa contenente
	// il nome di un file da leggere
	var ajax = null;
	
	
	// assegnazione oggetto XMLHttpRequest
	ajax = assegnaXMLHttpRequest(),
	
	// risultato booleano di funzione
	usaLink = true;
	  
	// se l'oggetto XMLHttpRequest non è nullo
	if(ajax) {
		// il link al file non deve essere usato
		usaLink = false;

		// impostazione richiesta asincrona in GET
		// del file specificato
		
		ajax.open("get", nomeFile, true);

		// rimozione dell'header "connection" come "keep alive"
		ajax.setRequestHeader("connection", "close");
		//$(document.body).startWaiting('bigWaiting');

		// impostazione controllo e stato della richiesta
		ajax.onreadystatechange = function() {
			      
			// verifica dello stato
			if(ajax.readyState === readyState.COMPLETATO) {
				// verifica della risposta da parte del server
				if(ajax.status == "200") {
					// operazione avvenuta con successo
					var pTestoLetto = ajax.responseText;
					//Recupero i messaggi in bacheca
					var objBacheca = document.getElementById(idBacheca);
					if (objBacheca) {					
							
							generaDatiBacheca(objBacheca, pTestoLetto, dominio, op, idUtente);
					}
					
				}
			} 
		}

		// invio richiesta
		ajax.send(null);
	}
	return (usaLink);
}


function ShowFormMessaggio(id)
{
	var objForm = document.getElementById(id);
	var objTesto = document.getElementById('boxRisposta');
	
	if (objForm) {
		if (objForm.style.display == "block") {
			objForm.style.display = "none";
			
			if (objTesto) objTesto.style.display = "none";
		} else {
		
			if (window.innerWidth) {
				var x = (window.innerWidth / 2) - (420 / 2);
				var y = (window.innerHeight / 2) - (270 / 2);        
			} else {
				var x = (document.body.clientWidth / 2) - (420 / 2);
				var y = (document.body.clientHeight / 2) - (270 / 2);        			
			}
			
			objForm.style.top = y +"px";
			objForm.style.left = x +"px";
			objForm.style.display = "block";
		}
	}
}


function ShowTestoRisposta(id, testo)
{
	var objForm = document.getElementById(id);
	var objTesto = document.getElementById('testoRisposta');
	
	if (objForm) {
		if (objForm.style.display == "block") {
			objForm.style.display = "none";
		} else {
		
			if (window.innerWidth) {
				var x = (window.innerWidth / 2) - (270 / 2);
				var y = (window.innerHeight / 2) - (50 / 2);        
			} else {
				var x = (document.body.clientWidth / 2) - (270 / 2);
				var y = (document.body.clientHeight / 2) - (50 / 2);        			
			}
			

			objForm.style.top = y +"px";
			objForm.style.left = x +"px";
			objForm.style.display = "block";
			
			if (testo != "" && objTesto) objTesto.innerHTML = testo;
		}
	}
}




function submitMessaggio(dominio, idUtente, idScrivente, idOggetto, idMessaggio)
{

	var objOggetto = document.getElementById(idOggetto);
	var objMessaggio = document.getElementById(idMessaggio);
	var objRisposta = document.getElementById('boxRisposta');
	var objTestoRisposta = document.getElementById('testoRisposta');
	
	if (objOggetto && objMessaggio && objRisposta) {
		//recupero del testo
		var msgOggetto = objOggetto.value;
		var msgTesto = objMessaggio.value;
	
	
		if (msgOggetto != "" && msgTesto != "") {
			//Definizione della pagina
			pagina = dominio+"funzioni/salva_messaggio.php?oggetto="+escape(msgOggetto)+"&testo="+escape(msgTesto)+"&idU="+idUtente+"&idS="+idScrivente;
			
			
			//salvataggio dei dati
			PostDati(pagina);
			
			
			
			ShowFormMessaggio('boxMessaggi');
			ShowTestoRisposta('boxRisposta', "Il messaggio è stato inviato");
			
			//dopo un tot faccio sparire il testo risposta
			setTimeout("ShowTestoRisposta('boxRisposta','')",1500);
			
			
		} else {
			
			ShowTestoRisposta('boxRisposta', "Indicare l'oggetto ed il testo del messaggio");
			
		}
	}
}


function CheckPosta(dominio, idUtente, linkPosta)
{
	var objLink = document.getElementById(linkPosta);
	
	if (objLink)
	{
		pagina = dominio+"funzioni/check_posta.php?idU="+idUtente;
		LeggiDatiPostaNonLetti(pagina,dominio, idUtente, objLink)
	}
}



function LeggiDatiPostaNonLetti(nomeFile,dominio, idUtente, objLink)
{
	// funzione di caricamento testo,
	// accetta una stringa contenente
	// il nome di un file da leggere
	var ajax = null;
	
	
	// assegnazione oggetto XMLHttpRequest
	ajax = assegnaXMLHttpRequest(),
	
	// risultato booleano di funzione
	usaLink = true;
	  
	// se l'oggetto XMLHttpRequest non è nullo
	if(ajax) {
		// il link al file non deve essere usato
		usaLink = false;

		// impostazione richiesta asincrona in GET
		// del file specificato
		
		ajax.open("get", nomeFile, true);

		// rimozione dell'header "connection" come "keep alive"
		ajax.setRequestHeader("connection", "close");
		//$(document.body).startWaiting('bigWaiting');

		// impostazione controllo e stato della richiesta
		ajax.onreadystatechange = function() {
			      
			// verifica dello stato
			if(ajax.readyState === readyState.COMPLETATO) {
				// verifica della risposta da parte del server
				if(ajax.status == "200") {
					// operazione avvenuta con successo
					var pTestoLetto = ajax.responseText;
					//Recupero i messaggi in bacheca
					if (objLink) {					
							generaDatiPosta(objLink, pTestoLetto);
					}
					
				}
			} 
		}

		// invio richiesta
		ajax.send(null);
	}
	return (usaLink);
}

function generaDatiPosta(objLink, pTestoLetto)
{
	if (objLink)
	{
		if (!isNaN(pTestoLetto)) {
			if (pTestoLetto > 0) {
				objLink.innerHTML += "&nbsp;&nbsp;<span class=\"numMessaggiPosta\">"+pTestoLetto+"</span>";
			}
		}
	}
}

function checkCancellazioneAlbum(isProfilo, link)
{
	
	if (isProfilo == 1) {
		alert("Non è possibile eliminare l'album identificato come PROFILO.")
	} else {
		if (confirm("Sei sicuro di voler cancellare l'album?")) {
			document.location.href = link;
		}
	}
}

function checkCancellazioneFoto(link)
{
	
	if (confirm("Sei sicuro di voler cancellare la foto?")) {
		document.location.href = link;
	}
}





function CheckAmici(dominio, idUtente, linkAmici)
{
	var objLink = document.getElementById(linkAmici);
	
	if (objLink)
	{
		pagina = dominio+"funzioni/check_amici.php?idU="+idUtente;
		LeggiDatiAmiciInAttesa(pagina,dominio, idUtente, objLink)
	}
}



function LeggiDatiAmiciInAttesa(nomeFile,dominio, idUtente, objLink)
{
	// funzione di caricamento testo,
	// accetta una stringa contenente
	// il nome di un file da leggere
	var ajax = null;
	
	
	// assegnazione oggetto XMLHttpRequest
	ajax = assegnaXMLHttpRequest(),
	
	// risultato booleano di funzione
	usaLink = true;
	  
	// se l'oggetto XMLHttpRequest non è nullo
	if(ajax) {
		// il link al file non deve essere usato
		usaLink = false;

		// impostazione richiesta asincrona in GET
		// del file specificato
		
		ajax.open("get", nomeFile, true);

		// rimozione dell'header "connection" come "keep alive"
		ajax.setRequestHeader("connection", "close");
		//$(document.body).startWaiting('bigWaiting');

		// impostazione controllo e stato della richiesta
		ajax.onreadystatechange = function() {
			      
			// verifica dello stato
			if(ajax.readyState === readyState.COMPLETATO) {
				// verifica della risposta da parte del server
				if(ajax.status == "200") {
					// operazione avvenuta con successo
					var pTestoLetto = ajax.responseText;
					//Recupero i messaggi in bacheca
					if (objLink) {					
							generaDatiAmici(objLink, pTestoLetto);
					}
					
				}
			} 
		}

		// invio richiesta
		ajax.send(null);
	}
	return (usaLink);
}

function generaDatiAmici(objLink, pTestoLetto)
{
	if (objLink)
	{
		if (!isNaN(pTestoLetto)) {
			if (pTestoLetto > 0) {
				objLink.innerHTML += "&nbsp;&nbsp;<span class=\"numMessaggiPosta\">"+pTestoLetto+"</span>";
			}
		}
	}
}



/***********************************************
* Pausing up-down scroller- © Dynamic Drive (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
***********************************************/

function pausescroller(content, divId, divClass, delay){
this.content=content //message array content
this.tickerid=divId //ID of ticker div to display information
this.delay=delay //Delay between msg change, in miliseconds.
this.mouseoverBol=0 //Boolean to indicate whether mouse is currently over scroller (and pause it if it is)
this.hiddendivpointer=1 //index of message array for hidden div
document.write('<div id="'+divId+'" class="'+divClass+'" style="position: relative; overflow: hidden"><div class="innerDiv" style="position: absolute; width: 100%" id="'+divId+'1">'+content[0]+'</div><div class="innerDiv" style="position: absolute; width: 100%; visibility: hidden" id="'+divId+'2">'+content[1]+'</div></div>')
var scrollerinstance=this
if (window.addEventListener) //run onload in DOM2 browsers
window.addEventListener("load", function(){scrollerinstance.initialize()}, false)
else if (window.attachEvent) //run onload in IE5.5+
window.attachEvent("onload", function(){scrollerinstance.initialize()})
else if (document.getElementById) //if legacy DOM browsers, just start scroller after 0.5 sec
setTimeout(function(){scrollerinstance.initialize()}, 500)
}

// -------------------------------------------------------------------
// initialize()- Initialize scroller method.
// -Get div objects, set initial positions, start up down animation
// -------------------------------------------------------------------

pausescroller.prototype.initialize=function(){
this.tickerdiv=document.getElementById(this.tickerid)
this.visiblediv=document.getElementById(this.tickerid+"1")
this.hiddendiv=document.getElementById(this.tickerid+"2")
this.visibledivtop=parseInt(pausescroller.getCSSpadding(this.tickerdiv))
//set width of inner DIVs to outer DIV's width minus padding (padding assumed to be top padding x 2)
this.visiblediv.style.width=this.hiddendiv.style.width=this.tickerdiv.offsetWidth-(this.visibledivtop*2)+"px"
this.getinline(this.visiblediv, this.hiddendiv)
this.hiddendiv.style.visibility="visible"
var scrollerinstance=this
document.getElementById(this.tickerid).onmouseover=function(){scrollerinstance.mouseoverBol=1}
document.getElementById(this.tickerid).onmouseout=function(){scrollerinstance.mouseoverBol=0}
if (window.attachEvent) //Clean up loose references in IE
window.attachEvent("onunload", function(){scrollerinstance.tickerdiv.onmouseover=scrollerinstance.tickerdiv.onmouseout=null})
setTimeout(function(){scrollerinstance.animateup()}, this.delay)
}


// -------------------------------------------------------------------
// animateup()- Move the two inner divs of the scroller up and in sync
// -------------------------------------------------------------------

pausescroller.prototype.animateup=function(){
var scrollerinstance=this
if (parseInt(this.hiddendiv.style.top)>(this.visibledivtop+5)){
this.visiblediv.style.top=parseInt(this.visiblediv.style.top)-5+"px"
this.hiddendiv.style.top=parseInt(this.hiddendiv.style.top)-5+"px"
setTimeout(function(){scrollerinstance.animateup()}, 50)
}
else{
this.getinline(this.hiddendiv, this.visiblediv)
this.swapdivs()
setTimeout(function(){scrollerinstance.setmessage()}, this.delay)
}
}

// -------------------------------------------------------------------
// swapdivs()- Swap between which is the visible and which is the hidden div
// -------------------------------------------------------------------

pausescroller.prototype.swapdivs=function(){
var tempcontainer=this.visiblediv
this.visiblediv=this.hiddendiv
this.hiddendiv=tempcontainer
}

pausescroller.prototype.getinline=function(div1, div2){
div1.style.top=this.visibledivtop+"px"
div2.style.top=Math.max(div1.parentNode.offsetHeight, div1.offsetHeight)+"px"
}

// -------------------------------------------------------------------
// setmessage()- Populate the hidden div with the next message before it's visible
// -------------------------------------------------------------------

pausescroller.prototype.setmessage=function(){
var scrollerinstance=this
if (this.mouseoverBol==1) //if mouse is currently over scoller, do nothing (pause it)
setTimeout(function(){scrollerinstance.setmessage()}, 100)
else{
var i=this.hiddendivpointer
var ceiling=this.content.length
this.hiddendivpointer=(i+1>ceiling-1)? 0 : i+1
this.hiddendiv.innerHTML=this.content[this.hiddendivpointer]
this.animateup()
}
}

pausescroller.getCSSpadding=function(tickerobj){ //get CSS padding value, if any
if (tickerobj.currentStyle)
return tickerobj.currentStyle["paddingTop"]
else if (window.getComputedStyle) //if DOM2
return window.getComputedStyle(tickerobj, "").getPropertyValue("padding-top")
else
return 0
}

