//questa classe viene istanziata in MyTool.php 
function Notifica(uid,alias){

	// uid e username serviranno sicuramente per integrare i dati quando si legge un proprio blog
	this.id=uid;
	this.alias=alias;
	this.events=new Array();
	this.msg=new Array();
	this.blogcom=new Array();
	this.buddy_inv=new Array();
	this.buddy_ok=new Array();
	this.buddy_nok=new Array();
	this.chat_inv=new Array();
	this.chat_pend=new Array();
	this.events={};
		this.events["msg"]		=	new Array();
		this.events["blog_com"]	=	new Array();
		this.events["buddy_inv"]	=	new Array();
		this.events["buddy_nok"]	=	new Array();
		this.events["buddy_ok"]	=	new Array();
		this.events["chat_inv"]	=	new Array();
		this.events["chat_pend"]	=	new Array();
		
	
	//variabili cui devono essere assegnati gli id dei div dove visualizzare i msg, i commenti dei blog, ecc...
	//TODO queste variabili possono avere un valore di default che però può essere reimpostato dall'esterno
	//attualmente l'id del div che contiene le varie icone viene impostato dall'esterno...anche per questo dovrei mettere un valore di default
	//var msgsViewElement;
	//this.msgsViewElement=msgsViewElement; 			//DA ELIMINARE PERCHE SOSTIUTITO DA msgsEventItem, msgsEventClickable
	var msgsEventItem, msgsEventClickable;
	this.msgsEventItem=msgsEventItem;				//elemento che conterra le informazioni (e icona) di notifica nuovi msg
	this.msgsEventClickable=msgsEventClickable;		//elemento mionore o uguale al relativo item clickabile per accedere alle info notificate
	this.eventItem={};
	//eventItem['msg']='';
	this.ptextZero={};
	this.ptextOne={};
	this.ptextMany={};
	//this.ptextOneItem[
	
// testi visualizzati quando c'e' solo una notifica
this.ptextOne["msg"]="Nuovi Messaggi";
this.ptextOne["blog_com"]="Commento Blog";
this.ptextOne["buddy_inv"]="Invito di amicizia";
this.ptextOne["buddy_nok"]="Amicizia rifiutata";
this.ptextOne["buddy_ok"]="Amicizia accettata";
this.ptextOne["chat_inv"]="Invito di chat";
this.ptextOne["chat_pend"]="Chat in sospeso";
this.ptextOne["visits"]="Visita ricevuta";

this.ptextOne["buddy"]="Notifica Amici";
this.ptextOne["chat"]="Notifica Chat";


// testi visualizzati quando c'e' piu di una notif
this.ptextMany["msg"]=" Nuovi Messaggi";	
this.ptextMany["blog_com"]="Commenti Blog";	
this.ptextMany["buddy_inv"]="Inviti di amicizia";
this.ptextMany["buddy_nok"]="Amicizie rifiutate";
this.ptextMany["buddy_ok"]="Amicizie accettate";
this.ptextMany["chat_inv"]="Inviti di chat"; 	
this.ptextMany["chat_pend"]="Chat in sospeso";
this.ptextMany["visits"]="Visite ricevute";

this.ptextMany["buddy"]="Notifiche Amici";
this.ptextMany["chat"]="Notifiche Chat";


// testi visualizzati quando DINAMICAMEMTE si è giunti a Zero notifiche
this.ptextZero["msg"]=		"Nuovi Messaggi";
this.ptextZero["blog_com"]=	"Commenti ad un tuo Blog";
this.ptextZero["buddy_inv"]=	"Richieste di Amicizia";
this.ptextZero["buddy_nok"]=	"Rifiuto amicizia";
this.ptextZero["buddy_ok"]=	"Nuovi amici";
this.ptextZero["chat_inv"]=	"Inviti in chat";
this.ptextZero["chat_pend"]=	"Chat in sospeso";
this.ptextZero["visits"]="Visite ricevute";	


this.ptextZero["buddy"]="Notifiche Amici";	
this.ptextZero["chat"]="Notifiche chat";


	var buddyEventItem, buddyEventClickable;
	//this.buddyEventItem=buddyEventItem;			//elemento che conterra le informazioni (e icona) di notifica nuovi inviti per buddy list
	this.buddyEventClickable=buddyEventClickable;	
	
	this.msgsSubMenuContainer;					//(SPOSTATO DA _msg a _notifica) contenitore del submenu che compare quando si clicka sull'icona nuovi msg
	this.buddy_invSubMenuContainer;					//(SPOSTATO DA _buddy a _notifica) contenitore del submenu che compare quando si clicka sull'icona nuovi inviti buddy
	this.buddy_okSubMenuContainer;
	this.buddy_nokSubMenuContainer;
	this.chat_invSubMenuContainer;
	this.chat_pendSubMenuContainer;
	this.blog_comSubMenuContainer;
	
	this.noeventContainer;
	
	this.msgSubmenuItemClickable;				//item clickabile relativo al singolo messaggio che si vuole aprire in lettura contenuto in msgsSubMenu
	this.msgSubmenuItemClickable='eventTitolo_inbox';
	this.buddySubmenuItemClickable;
	this.buddySubmenuItemClickable='buddy_ans';
	
	this.buddy_okSubmenuItemClickable='buddy_ok_ans'; //è l'id dell'elemento clickabile nella dialog che si apre in corrispondenza dell'icona nuovi eventi "risposta positiva ad invito buddy"
	this.buddy_nokSubmenuItemClickable='buddy_nok_ans';
	
	this.chat_invSubmenuItemClickable='chat_inv_ans';
	this.chat_pendSubmenuItemClickable='chat_pen_ans';
	this.blog_comSubmenuItemClickable='blog_com_ans';
	
	var _notificaAreaContainer;
	this._notificaAreaContainer=_notificaAreaContainer; 
	
	var msgsNotfMenuElement;
	this.msgsNotfMenuElement=msgsNotfMenuElement;
	
	this.msgsSubMenuFirst=1;
	this.buddy_invSubMenuFirst=1;
	this.buddy_okSubMenuFirst=1;
	this.buddy_nokSubMenuFirst=1;
	this.chat_invSubMenuFirst=1;
	this.chat_pendSubMenuFirst=1;
	this.blog_comSubMenuFirst=1;
	
	this.first={};
	this.first['msgeventicon']=1;
	this.first['buddy_inveventicon']=1;this.first['chat_inveventicon']=1;this.first['chat_pendeventicon']=1;
	this.first['buddy_okeventicon']=1;
	this.first['buddy_nokeventicon']=1;
	this.first['blog_comeventicon']=1;
	this.first['visiteventicon']=1;

	this.first['buddy_eventicon']=1;
	this.first['chat_eventicon']=1;
	
this.eventlabel={};	
this.eventlabel["msg"]=		'msgeventicon';
this.eventlabel["blog_com"]=	'blog_comeventicon';
this.eventlabel["buddy_inv"]=	'buddy_inveventicon';
this.eventlabel["buddy_nok"]=	'buddy_nokeventicon';
this.eventlabel["buddy_ok"]=	'buddy_okeventicon';
this.eventlabel["chat_inv"]=	'chat_inveventicon';
this.eventlabel["chat_pend"]=	'chat_pendeventicon';
this.eventlabel["visits"]=	'visiteventicon';

this.BigEventlabel={};	//usate come label per indirizzare il binder
this.BigEventlabel['msg']=	'msgeventicon';
this.BigEventlabel["blog_com"]=	'blog_comeventicon';
this.BigEventlabel["buddy"]=	'buddy_eventicon';
this.BigEventlabel["chat"]=	'chat_eventicon';


this.eventIcon={};
this.eventIcon["msg"]=		'../application/views/img/posta.gif';
this.eventIcon["blog_com"]=	'../application/views/img/comment.gif';
this.eventIcon["buddy_inv"]=	'../application/views/img/amici.gif';
this.eventIcon["buddy_nok"]=	'../application/views/img/frown.gif';
this.eventIcon["buddy_ok"]=	'../application/views/img/bigsmile.gif';
this.eventIcon["chat_inv"]=	'../application/views/img/chat.gif';
this.eventIcon["chat_pend"]=	'../application/views/img/chatpend.gif';
this.eventIcon["visits"]=	'../application/views/img/visits.gif';

this.eventIcon["buddy"]=	'../application/views/img/amici.gif';
this.eventIcon["chat"]=	'../application/views/img/chat.gif';

this.eventIcon_g={};
this.eventIcon_g["msg"]=			'../application/views/img/posta_g.gif';
this.eventIcon_g["blog_com"]=		'../application/views/img/comment_g.gif';
this.eventIcon_g["buddy_inv"]=	'../application/views/img/amici_g.gif';
this.eventIcon_g["buddy_nok"]=	'../application/views/img/frown_g.gif';
this.eventIcon_g["buddy_ok"]=		'../application/views/img/bigsmile_g.gif';
this.eventIcon_g["chat_inv"]=		'../application/views/img/chat_g.gif';
this.eventIcon_g["chat_pend"]=	'../application/views/img/chatpend_g.gif';
this.eventIcon_g["visits"]=		'../application/views/img/visits_g.gif';

this.eventIcon_g["buddy"]=	'../application/views/img/amici_g.gif';
this.eventIcon_g["chat"]=		'../application/views/img/chat_g.gif';

this.visits=-1;

	this.noevent=function(){
			var h='Ciao '+this.alias;
			h+=',per ora non e\' ancora successo nulla, ma qui ti avviseremo quando qualcuno sta interagendo con te.<br> Ora le icone sono grige, ma quando riceverai un messaggio, un invito in chat o si verifichera\' uno degli eventi presenti, l\'icona diventera\' rossa e cliccando potrai scoprire quali novita\' ci sono.<br><br>Comincia tu a contattare altri amici e vedrai che anche loro ti cercheranno!';
			var id='#'+this.noeventContainer;
			$(id).empty().append(h);
			$('#'+this.noeventContainer).parent().show();
			$('#layer3_titolo').text('Un aiutino da Meetu!');
	}
	
	this.polepositioninfo=function(){
			var h='Ciao '+this.alias;
			h+='<br>Vuoi essere anche tu al top delle ricerche?<br>Clicka su "PolePosition" e scatta....in testa!!!!';
			id='#'+this.noeventContainer;
			$(id).empty().append(h);
			$('#'+this.noeventContainer).parent().show();
			$('#layer3_titolo').text('Un aiutino da Meetu!');
	}
	this.useraniminfo=function(){
			var h='';
			h+='Ci dispiace ma questo iscritto non ha registrato il proprio numero di cellulare! Non possiamo quindi mostrarti il suo profilo...peccato!';
			var id='#'+_notifica.noeventContainer;
			$(id).empty().append(h);
			$('#'+this.noeventContainer).parent().show();
			$('#layer3_titolo').text('Un aiutino da Meetu!');
	}
	
		
	/*
	*	gestisce il menu che si apre clickando su icona evento nuovi inviti buddy
	*	buddy	array contenente friendship id, other alias e id
	*
	*	this.buddySubmenuItemClickable		area clickabile della lista
	*	this.buddy_invSubMenuContainer			contenitore della lista
	*/
	this.buddy_invSubMenu=function(buddy){
		var h='';
		$('#layer3_titolo').text('Eventi');
		if (buddy.length > 0){
			for (r=0;r<buddy.length;r++){///////////////////////////////////////////////////////////////////+'<br><input type="button" id=buddyconf class=Bottone value="Conferma"/> <input type=button id=deleteconf class="Bottone" value="Annulla"/>';
				h+='<div id=richiesta fid='+buddy[r].fid+' oid='+buddy[r].oid+' other='+buddy[r].other+'>'+buddy[r].other+' Vorrebbe diventare tuo amico<br><a id="buddy_ans" ans="ok" style="cursor:pointer"><strong>Accetta</strong>&nbsp&nbsp</a>&nbsp&nbsp<a id="buddy_ans" ans="nok" style="cursor:pointer"><strong>Rifiuta</strong></a><br></div>';
			}
			id='#'+this.buddy_invSubMenuContainer;
			$(id).empty().append(h);
			if (this.buddy_invSubMenuFirst){
				bindevent('buddySubmenueventItemClickon');	//la gestione del click sul singolo item della lista inviti implica coinvolgimento di azione della classe _buddy
				this.buddy_invSubMenuFirst=0;
			}
		}
		else {
			id='#'+this.buddy_invSubMenuContainer;
			$(id).parent().hide();
		}		
	}
	
	//qui devo elencare i 3 sub menu che comparivano da :
	//		-this.buddy_invSubMenu
	//		-this.buddy_okSubMenu		
	//		-this.buddy_nokSubMenu
	this.buddy_SubMenu=function(){
		var h='';
		var buddy;
		buddy = new Array();
		$('#layer3_titolo').text('Eventi');
		if (_notifica.events['buddy_inv']){
			buddy=_notifica.events['buddy_inv'];
			if (buddy.length > 0){
				for (r=0;r<buddy.length;r++){
					//alert(r);
					h+='<div id=richiesta fid='+buddy[r].fid+' oid='+buddy[r].oid+' other='+buddy[r].other+'>'+buddy[r].other+' Vorrebbe diventare tuo amico<br><a id="buddy_ans" ans="ok" style="cursor:pointer"><strong>Accetta</strong>&nbsp&nbsp</a>&nbsp&nbsp<a id="buddy_ans" ans="nok" style="cursor:pointer"><strong>Rifiuta</strong></a><br></div>';		
				}
				if (this.buddy_invSubMenuFirst){
					bindevent('buddySubmenueventItemClickon');	//la gestione del click sul singolo item della lista inviti implica coinvolgimento di azione della classe _buddy
					this.buddy_invSubMenuFirst=0;
				}
			}
		}
		if (_notifica.events['buddy_ok']){
			var buddy_ok=_notifica.events['buddy_ok'];
			if (buddy_ok.length > 0){
				for (r=0;r<buddy_ok.length;r++){
					h+='<div id=richiesta fid='+buddy_ok[r].fid+'>'+buddy_ok[r].other+' Ha accettato di diventare tuo amico<br><a id="buddy_ok_ans" ans="ok" style="cursor:pointer"><strong>Ok</strong>&nbsp&nbsp</a><br></div>';
				}
				if (this.buddy_okSubMenuFirst){
					bindevent('buddy_okSubmenueventItemClickon');	//la gestione del click sul singolo item della lista inviti implica coinvolgimento di azione della classe _buddy
					this.buddy_okSubMenuFirst=0;
				}
			}
		}
		if (_notifica.events['buddy_nok']){
			var buddy_nok=_notifica.events['buddy_nok'];
			if (buddy_nok.length > 0){
				for (r=0;r<buddy_nok.length;r++){
					h+='<div id=richiesta fid='+buddy_nok[r].fid+'>'+buddy_nok[r].other+' Ha rifiutato di diventare tuo amico<br><a id="buddy_nok_ans" ans="nok" style="cursor:pointer"><strong>Ok</strong>&nbsp&nbsp</a><br></div>';
				}
				if (this.buddy_nokSubMenuFirst){
					bindevent('buddy_nokSubmenueventItemClickon');	//la gestione del click sul singolo item della lista inviti implica coinvolgimento di azione della classe _buddy
					this.buddy_nokSubMenuFirst=0;
				}
			}
		}
		if (h!=''){
			id='#'+this.buddy_invSubMenuContainer;
			$(id).empty().append(h);
		}
		else {
			id='#'+this.buddy_invSubMenuContainer;
			$(id).parent().hide();
		}		
	}
	this.chat_SubMenu=function(){
		var h='';
		var chat;
		chat=new Array();
		$('#layer3_titolo').text('Eventi');
		if (_notifica.events['chat_inv']){
			chat=_notifica.events['chat_inv'];
			if (chat.length > 0){
				for (r=0;r<chat.length;r++){
					if (chat[r].rel==1) h+='<div id=richiesta id1='+chat[r].id1+' aut='+chat[r].aut+' sid='+chat[r].sid+'>'+chat[r].aut+', un tuo amico ti sta rivolgendo la parola...<br><a id="chat_inv_ans" ans="ok" style="cursor:pointer"><strong>Senti cosa dice</strong>&nbsp&nbsp</a><br></div>';
					else
					h+='<div id=richiesta id1='+chat[r].id1+' aut='+chat[r].aut+' sid='+chat[r].sid+'>'+chat[r].aut+' Vorrebbe chattare con te<br><a id="chat_inv_ans" ans="ok" style="cursor:pointer"><strong>Accetta</strong>&nbsp&nbsp</a>&nbsp&nbsp<a id="chat_inv_ans" ans="nok" style="cursor:pointer"><strong>Rifiuta</strong></a><br></div>';
				}
				if (this.chat_invSubMenuFirst==1){
					bindevent('chat_invSubmenueventItemClickon');	//la gestione del click sul singolo item della lista inviti implica coinvolgimento di azione della classe _chat
					this.chat_invSubMenuFirst=0;
				}
			}
		}
		if (_notifica.events['chat_pend']){
			chat=_notifica.events['chat_pend'];
			if (chat.length > 0){
				for (r=0;r<chat.length;r++){
					if (chat[r].id12=='id1') id=chat[r].id1; else id=chat[r].id2;
					if (chat[r].rel==1) h+='<div id=richiesta id1='+id+' aut='+chat[r].aut+' sid='+chat[r].sid+'>'+chat[r].aut+', un tuo amico ha scritto nuovi messaggi...<br><a id="chat_pen_ans" ans="ok" style="cursor:pointer"><strong>Leggili</strong>&nbsp&nbsp</a><br></div>';
					else h+='<div id=richiesta id1='+id+' aut='+chat[r].aut+' sid='+chat[r].sid+'>'+chat[r].aut+' Ha scritto nuovi messaggi per te<br><a id="chat_pen_ans" ans="ok" style="cursor:pointer"><strong>Accetta</strong>&nbsp&nbsp</a>&nbsp&nbsp<a id="chat_pen_ans" ans="nok" style="cursor:pointer"><strong>Rifiuta</strong></a><br></div>';
				}
				if (this.chat_pendSubMenuFirst==1){
					bindevent('chat_pendSubmenueventItemClickon');	//la gestione del click sul singolo item della lista inviti implica coinvolgimento di azione della classe _chat
					this.chat_pendSubMenuFirst=0;
				}
			}
		}
		if (h!=''){
			id='#'+this.buddy_invSubMenuContainer;
			$(id).empty().append(h);
		}
		else {
			id='#'+this.buddy_invSubMenuContainer;
			$(id).parent().hide();
		}		
	}
	
	this.blog_comSubMenu=function(blogcom){
		var h='';
		$('#layer3_titolo').text('Eventi');
		if (blogcom.length > 0){
			for (r=0;r<blogcom.length;r++){
				h+='<div id=richiesta bid='+blogcom[r].bid+' oid='+blogcom[r].com_autid+' cid='+blogcom[r].cid+' other='+blogcom[r].writer_com+'>'+blogcom[r].writer_com+' Ha scritto un commento ad un tuo post<br><a id="blog_com_ans" ans="ok" style="cursor:pointer"><strong>Leggi blog</strong>&nbsp&nbsp</a>&nbsp&nbsp<a id="blog_com_ans" ans="nok" style="cursor:pointer"><strong>Leggero\' dopo</strong></a><br></div>';
			}
			id='#'+this.blog_comSubMenuContainer;
			$(id).empty().append(h);
			if (this.blog_comSubMenuFirst){
				bindevent('blog_comSubmenueventItemClickon');	//la gestione del click sul singolo item della lista inviti implica coinvolgimento di azione della classe _buddy
				this.blog_comSubMenuFirst=0;
			}
		}
		else {
			id='#'+this.blog_comSubMenuContainer;
			$(id).parent().hide();
		}		
	}		

	this.chat_invSubMenu=function(chat){
		var h='';
		$('#layer3_titolo').text('Eventi');
		//this.chatSubmenuItemClickable='chatans';
		if (chat.length > 0){
			for (r=0;r<chat.length;r++){
				if (chat[r].rel==1) h+='<div id=richiesta id1='+chat[r].id1+' aut='+chat[r].aut+' sid='+chat[r].sid+'>'+chat[r].aut+', un tuo amico ti sta rivolgendo la parola...<br><a id="chat_inv_ans" ans="ok" style="cursor:pointer"><strong>Senti cosa dice</strong>&nbsp&nbsp</a><br></div>';
				else
				h+='<div id=richiesta id1='+chat[r].id1+' aut='+chat[r].aut+' sid='+chat[r].sid+'>'+chat[r].aut+' Vorrebbe chattare con te<br><a id="chat_inv_ans" ans="ok" style="cursor:pointer"><strong>Accetta</strong>&nbsp&nbsp</a>&nbsp&nbsp<a id="chat_inv_ans" ans="nok" style="cursor:pointer"><strong>Rifiuta</strong></a><br></div>';
				//alert(chat[r].other+' vuole diventare tuo amico');
			}
			id='#'+this.chat_invSubMenuContainer;
			$(id).empty().append(h);
			if (this.chat_invSubMenuFirst==1){
				bindevent('chat_invSubmenueventItemClickon');	//la gestione del click sul singolo item della lista inviti implica coinvolgimento di azione della classe _chat
				this.chat_invSubMenuFirst=0;
			}
		}
		else {
			id='#'+this.chat_invSubMenuContainer;
			$(id).parent().hide();
		}	
	}		
	this.chat_pendSubMenu=function(chat){
		var h='';
		$('#layer3_titolo').text('Eventi');
		//this.chatSubmenuItemClickable='chatans';
		var id='';var r=0;var h='';
		if (chat.length > 0){
			for (r=0;r<chat.length;r++){
				if (chat[r].id12=='id1') id=chat[r].id1; else id=chat[r].id2;
				if (chat[r].rel==1) h+='<div id=richiesta id1='+id+' aut='+chat[r].aut+' sid='+chat[r].sid+'>'+chat[r].aut+', un tuo amico ha scritto nuovi messaggi...<br><a id="chat_pen_ans" ans="ok" style="cursor:pointer"><strong>Leggili</strong>&nbsp&nbsp</a><br></div>';
				else h+='<div id=richiesta id1='+id+' aut='+chat[r].aut+' sid='+chat[r].sid+'>'+chat[r].aut+' Ha scritto nuovi messaggi per te<br><a id="chat_pen_ans" ans="ok" style="cursor:pointer"><strong>Accetta</strong>&nbsp&nbsp</a>&nbsp&nbsp<a id="chat_pen_ans" ans="nok" style="cursor:pointer"><strong>Rifiuta</strong></a><br></div>';
				//alert(chat[r].other+' vuole diventare tuo amico');
			}
			id='#'+this.chat_pendSubMenuContainer;
			$(id).empty().append(h);
			if (this.chat_pendSubMenuFirst==1){
				bindevent('chat_pendSubmenueventItemClickon');	//la gestione del click sul singolo item della lista inviti implica coinvolgimento di azione della classe _chat
				this.chat_pendSubMenuFirst=0;
			}
		}
		else {
			id='#'+this.chat_pendSubMenuContainer;
			$(id).parent().hide();
		}
	}

	this.buddy_okSubMenu=function(buddy_ok){
		var h='';
		$('#layer3_titolo').text('Eventi');
		if (buddy_ok.length > 0){
			for (r=0;r<buddy_ok.length;r++){
				h+='<div id=richiesta fid='+buddy_ok[r].fid+'>'+buddy_ok[r].other+' Ha accettato di diventare tuo amico<br><a id="buddy_ok_ans" ans="ok" style="cursor:pointer"><strong>Ok</strong>&nbsp&nbsp</a><br></div>';
				//alert(buddy[r].other+' vuole diventare tuo amico');
			}
			id='#'+this.buddy_okSubMenuContainer;
			$(id).empty().append(h);
			if (this.buddy_okSubMenuFirst){
				bindevent('buddy_okSubmenueventItemClickon');	//la gestione del click sul singolo item della lista inviti implica coinvolgimento di azione della classe _buddy
				this.buddy_okSubMenuFirst=0;
			}
		}
		else {
			id='#'+this.buddy_okSubMenuContainer;
			$(id).parent().hide();
		}		
	}		
	this.buddy_nokSubMenu=function(buddy_nok){
		var h='';
		$('#layer3_titolo').text('Eventi');
		if (buddy_nok.length > 0){
			for (r=0;r<buddy_nok.length;r++){
				h+='<div id=richiesta fid='+buddy_nok[r].fid+'>'+buddy_nok[r].other+' Ha rifiutato di diventare tuo amico<br><a id="buddy_nok_ans" ans="nok" style="cursor:pointer"><strong>Ok</strong>&nbsp&nbsp</a><br></div>';
			}
			id='#'+this.buddy_nokSubMenuContainer;
			$(id).empty().append(h);
			if (this.buddy_nokSubMenuFirst){
				bindevent('buddy_nokSubmenueventItemClickon');	//la gestione del click sul singolo item della lista inviti implica coinvolgimento di azione della classe _buddy
				this.buddy_nokSubMenuFirst=0;
			}
		}
		else {
			id='#'+this.buddy_nokSubMenuContainer;
			$(id).parent().hide();
		}		
	}		


	/*
	*	gestisce il menu che si apre clickando sull'icona evento nuovi msg quando c'è più di un nuovo msg
	*	msgs 	array contenente message id, id e nick autore, titolo
	*
	*	this.msgSubmenuItemClickable		area clickabile della lista
	*	this.msgsSubMenuContainer		contenitore della lista
	*/
	this.msgsSubMenu=function(msgs){
		var cont='';
		var strs='';
		var newhh='';
		$('#layer3_titolo').text('Eventi');
		//alert('sono rimasti da leggere :'+msgs.length+' messaggi');
		if (msgs.length > 0) {
			newhtmlAs= new Array();
			newhtmlBs= new Array();
			for (r=0;r<msgs.length;r++){
				//alert(r);
				newhtmlAs[r]='<div id="eventMessaggio" mid='+msgs[r].mid+' style="border:solid 1px #ffffff; width:205px; height:40px; margin-top:2px;font-family:Verdana; font-size:11px;color:#990000">';
		
				newhtmlBs[r]='<div id="eventTitolo_inbox"  mid='+msgs[r].mid+' style=" width:119px; height:25px; float:left; font-family:Verdana; font-size:11px; color: #333333; padding-top:2px; background-color:#E4E4E4; padding-left:2px; padding-right:2px;cursor:pointer;">'+msgs[r].title+'</div>'
				+'</div>';
				userthumb='<div id="visita_inbox" style="height:30px; width:80px;float:left;margin-top:3px;float:left; padding-left:2px">'+msgs[r].aut+'</div>';
				newhh+=newhtmlAs[r]+userthumb+newhtmlBs[r];
				strs+=msgs[r].uid+',';
			}
			strs=strs.substr(0,strs.length-1);
			urls='/profile/getUserPart2?str='+strs;
			var newh='';
			$.getJSON(urls,function(ans){
				usrs = new Array();
				usrs = ans.usrs;
				for (r=0;r<usrs.length;r++){
					userthumb='<div id="visita_inbox" style="height:30px; width:100px;float:left;margin-top:3px;  float:left; padding-left:3px">'+usrs[r].nick+'</div>';
					row=newhtmlAs[r]+userthumb+newhtmlBs[r];
					newh+=row;
				}
				id='#'+_notifica.msgsSubMenuContainer;
				$(id).empty().append(newhh);
				if (_notifica.msgsSubMenuFirst) {
					bindevent('msgSubmenueventItemClickon');	//l'azione di leggere un msg coinvolge altre classi, quindi il bind viene fatto fuori dalla classe
					this.msgsSubMenuFirst=0;
				}	
			});
		}
		else {
			newh='Nessun nuovo messaggio da leggere';
			id='#'+_notifica.msgsSubMenuContainer;
			$(id).empty().append(newh);
		}
	}	
this.BigEvents={};

	//viene chiamata all'onload del body di templateConFotoDinamiche.php (quindi ogni volta che viene richiamata la pag.....
	//.........normalmente ciò dovrebbe accadere solo una volta.....
	this.startEventsNotf=function(tex,o){	//questa funzione dovrebbe cambiare nome in startNotfDispatcher()
		ev=new Array("msg","buddy_inv","buddy_nok","buddy_ok","chat_inv","chat_pend","blog_com","visit");
		BigEv= new Array("buddy","chat","msg","blog_com");
		var printed=0;
		var visitRed=0;
		_notifica.BigEvents['blog_com']=0;_notifica.BigEvents['buddy']=0;_notifica.BigEvents['chat']=0;_notifica.BigEvents['msg']=0;
		if (tex!=''){
			ans=JSON.parse(tex);
			if (ans.data != 'NULL') {
				printed=1;
				var newevents = JSON.parse(ans.data);
				_notifica.events=newevents;
				/////////////////////////////
				//filter : scinde history da notifiche che appartengono a bigtype a notifiche coincidenti con bigtype
				//	alla fine avrò history da una parte e dei bigtype dall'altra
				//_notifica.BigEvents['blog_com']=0;_notifica.BigEvents['buddy']=0;_notifica.BigEvents['chat']=0;_notifica.BigEvents['msg']=0;
				for (var r in ev) {
					if (newevents[ev[r]]){
						if ((ev[r]=="buddy_inv") || (ev[r]=="buddy_nok") || (ev[r]=="buddy_ok")) {
							_notifica.BigEvents['buddy']+=newevents[ev[r]].length;
						}
						if ((ev[r]=="chat_inv") || (ev[r]=="chat_pend") ) {
							_notifica.BigEvents['chat']+=newevents[ev[r]].length;
						}
						if (ev[r]=="msg") {_notifica.BigEvents['msg']+=newevents[ev[r]].length;}
						if (ev[r]=="blog_com") {_notifica.BigEvents['blog_com']+=newevents[ev[r]].length;}
						if (ev[r]=="visit") visitRed=1;
						
					}
					else _notifica.events[ev[r]]=new Array();
				}
				/////////////////////////////
				for (var r in BigEv){
					if (_notifica.BigEvents[BigEv[r]] > 0) _notifica.printNotfItemIcon22(_notifica.BigEvents[BigEv[r]],o,BigEv[r],_notifica.BigEventlabel[BigEv[r]]);
					else _notifica.printZeroItemIcon(o,BigEv[r],_notifica.eventlabel[BigEv[r]]);
				}
			}	
		}
		if (printed == 0) for (r in BigEv)  _notifica.printZeroItemIcon(o,BigEv[r],_notifica.BigEventlabel[BigEv[r]]);
		if (visitRed==1) updtElem('/profile/readvisitnew',_notifica,'historyEventNotf',oo);
		else updtElem('/profile/readvisitnew',_notifica,'greyhistoryEventNotf',oo);
	}

	//sara chiamata da updtElem() che sara chiamata periodicamente via setInterval() 
	this.updateNotfDispatcher=function(tex,o){
		var r='';
		if ( (tex != ''))
		{
			ans=JSON.parse(tex);
			//newevents = JSON.parse(tex);
			if (ans.data != 'NULL') {
				newevents =JSON.parse(ans.data);
				_notifica.BigEvents['buddy']=0;_notifica.BigEvents['chat']=0;_notifica.BigEvents['msg']=0;
				ev=new Array("msg","buddy_inv","buddy_nok","buddy_ok","chat_inv","chat_pend","blog_com","visit");
				BigEv= new Array("buddy","chat","msg");
				
				//agg strutture dati
				for (r in ev) {
					if (newevents[ev[r]]){
						
_notifica.events[ev[r]]?_notifica.myconcat(_notifica.events[ev[r]],newevents[ev[r]],ev[r]):_notifica.events[ev[r]]=newevents[ev[r]];
if (!((ev[r]=="buddy_inv") || (ev[r]=="buddy_nok") || (ev[r]=="buddy_ok") || (ev[r]=="chat_inv") || (ev[r]=="chat_pend") || (ev[r]=="visit")) )
	_notifica.printNotfItemIcon(_notifica.events[ev[r]],o,ev[r],_notifica.eventlabel[ev[r]]);
else if (ev[r]=="visit") updtElem('/profile/readvisitnew',_notifica,'historyEventNotf',oo);
					}
				}
				//qui mi devo occupare della visualizzazione
					_notifica.BigEvents['chat']=_notifica.events['chat_inv'].length+_notifica.events['chat_pend'].length;
					_notifica.BigEvents['buddy']=_notifica.events['buddy_inv'].length+_notifica.events['buddy_ok'].length+_notifica.events['buddy_nok'].length;
				_notifica.printNotfItemIcon22(_notifica.BigEvents["buddy"],o,"buddy",_notifica.BigEventlabel["buddy"]);
				_notifica.printNotfItemIcon22(_notifica.BigEvents["chat"],o,"chat",_notifica.BigEventlabel["chat"]);
			}
		}	
	}





this.myconcat=function(exist_vect,new_rows,what){
indname={};
indname["msg"]='mid';
indname["buddy_inv"]='fid';
indname["buddy_nok"]='fid';
indname["buddy_ok"]='fid';
indname["chat_inv"]='sid';
indname["chat_pend"]='sid';
indname["blog_com"]='bid';
	var r=0;var rr=0;
	for (r=0;r<new_rows.length;r++){
		already=0;
		for (rr=0;rr<exist_vect.length;rr++){
			var m='mid';
			//alert(exist_vect[rr][indname[what]]);
			if (new_rows[r][indname[what]]==exist_vect[rr][indname[what]]) already=1;
		}
		if (!already) {
			//alert('inserting');
			//alert (this.events[what].length);
			//this.events[what]=(this.events[what]).push(new_rows[r]);
			_notifica.events[what][_notifica.events[what].length]=new_rows[r];
			//alert (this.events[what].length);
		}	
	}
	
}
	//questa funzione può essere chiamata da 2 punti :
	//	1)this.dipatchNotf()
	//	2)(TODO)dal js  nel momento in cui si clicka su icona-notifica relativa
//	this.aggiornaMsgNotf=function(newmsg,act,o){

this.concat2=function(exist_vect,new_rows){
				//alert(exist_vect.length);
				new_rows_real =new Array();
				var ind=0;
				for (r=0;r<new_rows.length;r++){
					already=0;
					for (rr=0;rr<exist_vect.length;rr++){
						if (new_rows[r] == exist_vect[rr]) already=1;
					}
					if (already !=1) {
						new_rows_real[ind]=new_rows[r];
						ind+=1;
					}
				}
				exist_vect.concat(new_rows_real);
				//alert(exist_vect.length);
return exist_vect;
}

	this.rmNotf=function(o,val,what){
		var Blabel='';
		if (this.events[what]){ //questo if ci vuole perchè potrei anche entrare qui quando leggo un msg gia letto e il _notifica.events['msg'] è ancora undefined
			if (what=='msg'){
				for (r=0;r<this.events[what].length;r++){
					if (val == this.events[what][r].mid) this.events[what].splice(r,1);
				}
			}
			else if ((what=='chat_inv') || (what=='chat_pend')){
				for (r=0;r<this.events[what].length;r++){
					if (val == this.events[what][r].sid) this.events[what].splice(r,1);
				}
				Blabel='chat';
				_notifica.BigEvents['chat']=_notifica.events['chat_inv'].length+_notifica.events['chat_pend'].length;
			}	
			else if (what=='blog_com'){
				for (r=0;r<this.events[what].length;r++){
					//alert(val+'-'+this.events[what][r].cid);
					if (val == this.events[what][r].cid) this.events[what].splice(r,1);
				}
			}	
			else {
				for (r=0;r<this.events[what].length;r++){
					if (val == this.events[what][r].fid) this.events[what].splice(r,1);
				}
				Blabel='buddy';
				_notifica.BigEvents['buddy']=_notifica.events['buddy_inv'].length+_notifica.events['buddy_ok'].length+_notifica.events['buddy_nok'].length;
			}
			
			//////////////////filtro che aggiorna i big events
/*		ev=new Array("msg","buddy_inv","buddy_nok","buddy_ok","chat_inv","chat_pend","blog_com");
		//BigEv= new Array("buddy","chat","msg");
		BigEv= new Array("buddy");

				for (var r in ev) {
					if (this.events[ev[r]]){
						if ((ev[r]=="buddy_inv") || (ev[r]=="buddy_nok") || (ev[r]=="buddy_ok")) {
							_notifica.BigEvents['buddy']+=newevents[ev[r]].length;
						}
						if ((newevents[ev[r]]=="chat_inv") || (newevents[ev[r]]=="chat_pend") ) {
							_notifica.BigEvents['chat']+=newevents[ev[r]].length;
						}
						if (newevents[ev[r]]=="msg")  _notifica.BigEvents['msg']+=newevents[ev[r]].length;
					}
				}
*/			//////////////////////////////////////////////////	
			//_notifica.printNotfItemIcon22(_notifica.BigEvents[BigEv[r]],o,BigEv[r],_notifica.BigEventlabel[BigEv[r]]);
			if (Blabel != '') this.printNotfItemIcon22(this.BigEvents[Blabel],o,Blabel,_notifica.BigEventlabel[Blabel]);
			else this.printNotfItemIcon22(this.events[what],o,what,'msgeventicon');
			
		}	
	}

this.refuteChat=function(tex,o){
//nothing to do
//alert(tex);
}	

//visualizza le icone grigie
this.printZeroItemIcon=function(o,what,bindlabel){
	var itemViewElement=_notifica.eventItem[what];
	var kk=o.getElementsByTagName("div");
	var lnk=kk[itemViewElement].getElementsByTagName("a");
	lnk[0].childNodes[0].attributes['src'].value=this.eventIcon_g[what];
	lnk[1].childNodes[0].nodeValue=this.ptextZero[what];
	txt=document.createTextNode(' ');
	lnk[0].appendChild(txt);
	//lnk[0].childNodes[1].nodeValue=' ';
				if (this.first[bindlabel]){
					 bindevent(bindlabel);
					 this.first[bindlabel]=1;
				}
}	

this.historyEventNotf=function(tex,o){	//questa funzione dovrebbe cambiare nome in startNotfDispatcher()
		/*
			1	leggere valore numero visite
			2	confrontarlo con dato precedente memorizzato in _notifica.visits
			3	se uguale non fare niente e stop
			4	se diverso visualizzalo attraverso _notifica.printNotfItemIcon
		*/
		ans=JSON.parse(tex);
		if (ans.status == 200) {
			//if (ans.v!=_notifica.visits){
				_notifica.visits=ans.v;
				_notifica.printNotfItemIcon(_notifica.visits,o,'visits',_notifica.eventlabel['visits']);
			//}
		}
	}
this.greyhistoryEventNotf=function(tex,o){	//questa funzione dovrebbe cambiare nome in startNotfDispatcher()
		/*
			1	leggere valore numero visite
			2	confrontarlo con dato precedente memorizzato in _notifica.visits
			3	se uguale non fare niente e stop
			4	se diverso visualizzalo attraverso _notifica.printNotfItemIcon
		*/
		ans=JSON.parse(tex);
		if (ans.status == 200) {
				_notifica.visits=ans.v;
				//_notifica.printNotfItemIcon(_notifica.visits,o,'visits',_notifica.eventlabel['visits']);
				////////////////////////////////////////////////////////////////////////////////////////
		var what='visits';
		var bindlabel=_notifica.eventlabel['visits'];
		var items_length=_notifica.visits;
		var itemViewElement=_notifica.eventItem[what];
		var ptextOne=_notifica.ptextOne[what];
		var ptextMany=_notifica.ptextMany[what];
		var newhtml='';
			var kk=o.getElementsByTagName("div");
			var lnk=kk[itemViewElement].getElementsByTagName("a");
			var ptex=kk[itemViewElement].getElementsByTagName("p");
		if (items_length == 1) {
			kk[itemViewElement].style.display="block";
			
			lnk[0].childNodes[0].attributes['src'].value=this.eventIcon_g[what];
			
			txt=document.createTextNode('(1)');		
			
			lnk[1].childNodes[0].nodeValue=this.ptextOne[what]+'(1)';
					if (this.first[bindlabel]){
						 bindevent(bindlabel);
						 this.first[bindlabel]=1;
					}
		}
		else if ((items_length == 0) && (what!='visits')) {
			//alert('items.length=0');
			lnk[1].childNodes[0].nodeValue=this.ptextZero[what];
			lnk[0].childNodes[0].attributes['src'].value=this.eventIcon_g[what];
		}	
		else {
				
				kk[itemViewElement].style.display="block";
				
				lnk[0].childNodes[0].attributes['src'].value=this.eventIcon_g[what];
				
				txt=document.createTextNode('('+items_length+')');
				
				lnk[1].childNodes[0].nodeValue=this.ptextMany[what]+'('+items_length+')';
					if (this.first[bindlabel]){
						 bindevent(bindlabel);
						 this.first[bindlabel]=1;
					}
		}
////////////////////////////////////////////////////////////////////////////////////////////////////
		}
	}

////////////////////////////////////////////////////////////////////////////////////////////////////
	//nella chiamata 	itemViewElement=this.buddyEventItem
	/*
	*	items			array degli oggetti -what- da rappresentare con icona di notifica
	*	o				contenitore ?
	*	itemViewElement	
	*	bindlabel			label che sarà usata come riferimento nella routine di binding degli eventi
	*/
	this.printNotfItemIcon=function(items,o,what,bindlabel){
		if (what == 'visits') var items_length=items;
		else var items_length=items.length;
		itemViewElement=_notifica.eventItem[what];
		ptextOne=_notifica.ptextOne[what];
		ptextMany=_notifica.ptextMany[what];
		var newhtml='';
			kk=o.getElementsByTagName("div");
			lnk=kk[itemViewElement].getElementsByTagName("a");
			ptex=kk[itemViewElement].getElementsByTagName("p");
		if (items_length == 1) {
			kk[itemViewElement].style.display="block";
			
			lnk[0].childNodes[0].attributes['src'].value=this.eventIcon[what];
			
			txt=document.createTextNode('(1)');		
			
			lnk[1].childNodes[0].nodeValue=this.ptextOne[what]+'(1)';
					if (this.first[bindlabel]){
						 bindevent(bindlabel);
						 this.first[bindlabel]=1;
					}
		}
		else if ((items_length == 0) && (what!='visits')) {
			//alert('items.length=0');
			lnk[1].childNodes[0].nodeValue=this.ptextZero[what];
			lnk[0].childNodes[0].attributes['src'].value=this.eventIcon_g[what];
		}	
		else {
				
				kk[itemViewElement].style.display="block";
				
				lnk[0].childNodes[0].attributes['src'].value=this.eventIcon[what];
				
				txt=document.createTextNode('('+items_length+')');
				
				lnk[1].childNodes[0].nodeValue=this.ptextMany[what]+'('+items_length+')';
					if (this.first[bindlabel]){
						 bindevent(bindlabel);
						 this.first[bindlabel]=1;
					}
		}
	}	
	this.printNotfItemIcon22=function(items,o,what,bindlabel){
		//a/lert('22:'+bindlabel);
		var txt;
		
		if ((what == 'visits') || (what == 'msg') || (what=='chat') || (what=='buddy') || (what=='blog_com')) var items_length=items;
		else var items_length=items.length;
		itemViewElement=_notifica.eventItem[what];
		ptextOne=_notifica.ptextOne[what];
		ptextMany=_notifica.ptextMany[what];
		var newhtml='';
			var kk=o.getElementsByTagName("div");
			var lnk=kk[itemViewElement].getElementsByTagName("a");
			var ptex=kk[itemViewElement].getElementsByTagName("p");
		if (items_length == 1) {
			kk[itemViewElement].style.display="block";
			
			lnk[0].childNodes[0].attributes['src'].value=this.eventIcon[what];
			
			txt=document.createTextNode('(1)');		
			
			lnk[1].childNodes[0].nodeValue=this.ptextOne[what]+'(1)';
					if (this.first[bindlabel]){
						 bindevent(bindlabel);
						 this.first[bindlabel]=1;
					}

		}
		else if ((items_length == 0) && (what!='visits')) {
			//alert('items.length=0');
			lnk[1].childNodes[0].nodeValue=this.ptextZero[what];
			lnk[0].childNodes[0].attributes['src'].value=this.eventIcon_g[what];
		}	
		else {
				
				kk[itemViewElement].style.display="block";
				
				lnk[0].childNodes[0].attributes['src'].value=this.eventIcon[what];
				
				txt=document.createTextNode('('+items_length+')');
				
				lnk[1].childNodes[0].nodeValue=this.ptextMany[what]+'('+items_length+')';
					if (this.first[bindlabel]){
						 bindevent(bindlabel);
						 this.first[bindlabel]=1;
					}
		}
	}	
}		
