/*
	Copyright (c) PORTANEO.

	This file is part of COLLABORATION SUITE of POSH http://sourceforge.net/projects/posh/.

	POSH is free software: you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation, either version 3 of the License, or
	(at your option) any later version

	POSH is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with Posh.  If not, see <http://www.gnu.org/licenses/>.
*/
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Portaneo javascript functions
// é à è ù
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////

var excludedKw=new Array;
$p.app.menu.optionSelected=0; // profile tab is selected by default

//reset posh information
$p.app.getVersion=function()
{
	p_version=__PEEVERSION;
}
var p_friends={
	avaiList:[],
	selList:[],
	selMenuItem:1,
	nbGroups:0,
	/*
		p_friends.items : define a user you can share items with 
		inputs :
			id: user ID
			name : user name
			email : user email
	*/
	item:function(id,name,email)
	{
		this.id=id;
		this.name=name;
		this.email=email;
	},
	/*
		p_friends.menu : display sharing menu
		inputs : 
			v_type : type of the object shared (2=article, 3=widget, 4=portal)
			v_id : id of the object shared
	*/
	menu:function(v_type,v_id)
	{
		var l_s='<br /><b>'
		
		switch (v_type){
			case 2:
				l_s+='<img src="../modules/pictures/'+tab[$p.app.tabs.sel].module[$p.app.widgets.uniqToId(tab[$p.app.tabs.sel].feeds[$p.app.widgets.rss.getId(v_id)].modUniq)].icon+'" /> <a href="'+tab[$p.app.tabs.sel].feeds[$p.app.widgets.rss.getId(v_id)].link+'" target="_blank">'+tab[$p.app.tabs.sel].feeds[$p.app.widgets.rss.getId(v_id)].title+'</a>';
				break;
			case 3:
				l_s+='<img src="../modules/pictures/'+tab[$p.app.tabs.sel].module[v_id].icon+'" /> '+tab[$p.app.tabs.sel].module[v_id].name;
				break;
			case 4:
				l_s+='<img src="'+((tab[$p.app.tabs.sel].icon=='' || tab[$p.app.tabs.sel].icon=='../modules/pictures/_deficon0.gif')?'../images/ico_portal.gif':tab[$p.app.tabs.sel].icon)+'" /> '+tab[$p.app.tabs.sel].label;
				break;
		}

		l_s+='</b><br /><br /><div class="title">'+$p.img('ico_myaccount.gif',16,16,'','imgmid')+' '+lg("shareWithSomeUsers")+'</div>'
			+'<form name="friend1" method="post" onsubmit="return p_friends.valid('+v_type+','+v_id+',this)">'
			+'<br /><table width="100%">'
			+'<tr>'
			+'<td valign="top"><div nowrap="nowrap" style="height: 20px;">'+lg('myNetwork')+'&nbsp;<span id="sharekeywords"></span></div><div id="sharemynetwork" class="cleardiv" style="width:200px;height:50px;overflow:auto;font-size:0.9em;"></div></td>'
			+'<td valign="top"><div nowrap="nowrap" style="height: 20px;">'+lg('selectedPeople')+' :</div><div id="sharepeopleselected" class="cleardiv" style="width:200px;height:50px;overflow:auto;font-size:0.9em;"></div></td>'
			+'</tr>'
			+'</table>'
			+'<br /><center><input type="submit" class="submit" value="'+lg('lblFriendShareBtn'+v_type)+'" /></center></form><br />';

		l_s+='<div class="title">'+$p.img('ico_notebook.gif',16,16,'','imgmid')+' '+lg("shareOnNotebook")+'</div>'
			+'<form name="friend2" method="post" onsubmit="return p_friends.valid('+v_type+','+v_id+',this)"><br />'
			+lg('title')+'&nbsp;<input type="text" name="title" maxlength="100" style="width: 300px" /> '+tooltip('sharedTitleHlp')+'<br /><br />'
			+lg('keywords')+'&nbsp;<input type="text" id="sharedTags" name="kw" maxlength="250" style="width: 300px" onkeyup=\'$p.tags.autocompletion.get("sharedTags")\' onblur="$p.tags.autocompletion.hide()" /> '+tooltip('sharedTagHlp')+'<br /><br />'
			+lg('desc')+' '+tooltip('SharedDescHlp')+'<br /><textarea name="desc" rows="6" style="width: 490px"></textarea><br /><br />'
			+'<table width="100%">'
			+'<tr>'
			+'<td valign="top">'
			+'<div class="title">'+lg('access')+'</div>'
			+'<input type="radio" name="access" value="3" checked="checked" />'+lg('public')+' '+tooltip('publicHlp')+'<br />'
			+'<input type="radio" name="access" value="2" />'+lg('myNetwork')+'/'+lg('members')+'<br />'
			+'<input type="radio" name="access" value="1" />'+lg('private')+'<br />'
			+'</td>'
			+'<td valign="top">'
			+'<div id="divGroupList">'
			+'<div class="title">'+lg('Groups')+' '+tooltip('sharedGroupbookHlp')+'</div>'
			+'<div id="sharegroups" style="width: 300px;height:70 px;overflow: auto;"></div>'
			+'</div>'
			+'</td>'
			+'</tr>'
			+'</table>'
			+'<br /><br /><center>'
			+'<input type="submit" class="submit" value="'+lg('lblFriendShareBtn'+v_type)+'" />'
			+' <a href="#" onclick="$p.app.popup.hide()">'+lg('cancel')+'</a>'
			+'</center>'
			+'</form>'

		$p.app.popup.show(l_s,510,indef,$p.img("ico_menu_share.gif",16,16,"","imgmid")+" "+lg("lblFriendShareBtn"+v_type));

		navWait("sharemynetwork");
		p_friends.loadKeywords();
		p_friends.loadFriends(0);
		navWait("sharegroups");
		p_friends.loadGroups("divGroupList");
		//initialize lists
		p_friends.selList.length=0;
		p_friends.avaiList.length=0;
	},
	/*
		p_friends.displayItem : display / hide sharing sub menus
		inputs :
		
	*/
	displayItem:function(v_id)
	{
		p_friends.selMenuItem=v_id;
		if (v_id==1)
		{
			navShow("sharediv1","block");
		}
		else
		{
			navShow("sharediv1","none");
		}
		if (v_id==3)
		{
			navShow("sharediv3","block");
		}
		else
		{
			navShow("sharediv3","none");
		}
	},
	/*
		p_friends.loadKeywords : load keywords linked to my network
	*/
	loadKeywords:function()
	{
		$p.ajax.call('xmlnetwork_keywords.php',
			{
				'type':'load',
				'callback':
				{
					'function':p_friends.showKeywords
				}
			}
		);
	},
	/*
		p_friends.showKeywords : display keywords linked to my network
		inputs : xml return		
	*/
	showKeywords:function(response,vars)
	{
		var i=0,l_s="",l_result=response.getElementsByTagName("keyword");
		l_s+=" <select name='keywords' onchange='p_friends.loadFriends(this.value)'><option value='0'>"+lg("all")+"</option>";
		for (var i=0;i<l_result.length;i++)
		{
			l_id=$p.ajax.getVal(l_result[i],"id","int",false,0);
			l_s+="<option value='"+l_id+"'>"+$p.ajax.getVal(l_result[i],"label","str",false,"---")+"</option>";
		}
		l_s+="</select>";
		$p.print("sharekeywords",l_s);
	},
	/*
		p_friends.loadFriends : load network list
		inputs : keyword ID (if filtered by keyword)
	*/
	loadFriends:function(v_kwid)
	{
		$p.ajax.call("xmlnetwork_users.php?kwid="+v_kwid,
			{
				'type':'load',
				'callback':
				{
					'function':p_friends.showFriends
				}
			}
		);
	},
	/*
		p_friends.showFriends : display network list
		inputs : xml return
	*/
	showFriends:function(response,vars)
	{
		var l_s="",l_result=response.getElementsByTagName("user");
		p_friends.avaiList.length=0;
		if (l_result.length==0)
		{
			l_s='<a href="#" onclick=\'$p.app.popup.hide();$p.app.menu.open(indef,"pmenunetwork");\'>'+lg("addFriend")+'</a>';
		}
		else
		{
			if (l_result.length>1) l_s+="<a href='#' onclick='p_friends.addAllFriends()'>"+lg("addAllFriends")+"</a><br />";
			for (var i=0;i<l_result.length;i++)
			{
				l_id=$p.ajax.getVal(l_result[i],"id","int",false,0);
				l_name=$p.ajax.getVal(l_result[i],"longname","str",false,"?");
				l_email=$p.ajax.getVal(l_result[i],"username","str",false,"");
				p_friends.avaiList.push(new p_friends.item(l_id,l_name,l_email));
				l_s+="<a href='#' onclick=\"p_friends.addFriend("+i+")\">"+l_name+" "+$p.img("ico_add.gif",7,7,lg("add"),"imgmid")+"</a><br />";
			}
		}
		$p.print("sharemynetwork",l_s);
	},
	/*
		p_friends.addAllFriends : add all my network in shared list
	*/
	addAllFriends:function()
	{
		for (var i=0;i<p_friends.avaiList.length;i++)
		{
			p_friends.addFriend(i,false);
		}
		p_friends.showSelected();
	},
	/*
		p_friends.addFriend : add a network item in the shared list
		inputs :
			v_id : user ID in the network list
			v_refresh : refresh network list after process
	*/
	addFriend:function(v_id,v_refresh)
	{
		var l_newItem=new p_friends.item(p_friends.avaiList[v_id].id,p_friends.avaiList[v_id].name,p_friends.avaiList[v_id].email);
		//check if the friend does not exist in the list
		for (var i=0;i<p_friends.selList.length;i++)
		{
			if (p_friends.selList[i].id==l_newItem.id) return;
		}
		p_friends.selList.push(l_newItem);
		
		if (v_refresh==indef || v_refresh) p_friends.showSelected();
	},
	/*
		p_friends.supFriend : suppress network item from shared list
		inputs : user ID in the shared list
	*/
	supFriend:function(v_id)
	{
		p_friends.selList.splice(v_id,1);
		p_friends.showSelected();
	},
	/*
		p_friends.showSelected : refresh the shared list
	*/
	showSelected:function()
	{
		var l_s="";
		for (var i=0;i<p_friends.selList.length;i++)
		{
			l_s+=p_friends.selList[i].name+" <a href='#' onclick='p_friends.supFriend("+i+")'>"+$p.img("ico_suppress.gif",7,7)+"</a><br />";
		}
		$p.print("sharepeopleselected",l_s);
	},
	/*
		p_friends.valid : confirm sharing & launch sharing processes
		inputs :
			v_type : type of the item shared (2=article, 3=widget, 4=portal)
			v_id : id of the item shared
	*/
	valid:function(v_type,v_id,v_form)
	{
		// if article, get the array feed id
		if (v_type==2) v_id=$p.app.widgets.rss.getId(v_id);

		//shared item information
//		var l_objInfo="";
//		if (v_type==3){l_objInfo+="&obj=m&id="+tab[$p.app.tabs.sel].module[v_id].id+"&v="+$p.string.esc(tab[$p.app.tabs.sel].module[v_id].vars);}
//		else if (v_type==4) {l_objInfo+="&obj=p&prof="+v_id+"&label="+$p.string.esc(tab[$p.app.tabs.sel].label)+"&nbcol="+tab[$p.app.tabs.sel].colnb+"&style="+tab[$p.app.tabs.sel].style+"&mode="+tab[$p.app.tabs.sel].showType;}
//		else if (v_type==2) {l_objInfo+="&obj=a&title="+$p.string.esc(p_article.format(tab[$p.app.tabs.sel].feeds[v_id].title))+"&link="+$p.string.esc(correctCharEncoding(tab[$p.app.tabs.sel].feeds[v_id].link));}
//		if (v_type==4 && l_form.notebook.checked) l_objInfo+="&portname="+l_form.title.value+"&portdesc="+(l_form.desc.value).substr(0,200)+"&kw="+l_form.kw.value;

		if (v_form.name=="friend1")
		{
			if (p_friends.selList.length>0)
			{
				switch (v_type)
				{
					case 2:
						p_friends.shareNews($p.string.esc($p.string.removeTags(p_article.format(tab[$p.app.tabs.sel].feeds[v_id].title))),$p.string.esc($p.string.correctEncoding(tab[$p.app.tabs.sel].feeds[v_id].link)));
						break;
					case 3:
						var l_vars=tab[$p.app.tabs.sel].module[v_id].vars+'&shared=1';
						p_friends.shareWidget(tab[$p.app.tabs.sel].module[v_id].id,$p.string.esc(l_vars));
						break;
					case 4:
						p_friends.sharePortal(v_id,$p.string.esc(tab[$p.app.tabs.sel].label),tab[$p.app.tabs.sel].colnb,tab[$p.app.tabs.sel].style,tab[$p.app.tabs.sel].showType);
						break;
				}
			}
		}
		else
		{
			var l_title=$p.string.removeTags(v_form.title.value);
			var l_desc=$p.string.removeTags(v_form.desc.value);
			var l_kw=$p.tags.formatList(v_form.kw.value);

			switch (v_type)
			{
				case 2:
					var v_tGroup = p_group.selected(v_form);
					p_friends.publishNews(v_id,$p.app.tabs.sel,l_title,l_desc,l_kw,$p.navigator.getRadioValue(v_form.access),v_tGroup);
					break;
				case 3:
					p_friends.publishWidget(v_id,$p.app.tabs.sel,l_title,l_desc,l_kw,$p.navigator.getRadioValue(v_form.access));
					break;
				case 4:
					p_friends.publishPortal(v_id,l_title==""?tab[$p.app.tabs.sel].label:l_title,l_desc,l_kw,$p.navigator.getRadioValue(v_form.access),tab[$p.app.tabs.sel].colnb,tab[$p.app.tabs.sel].style,tab[$p.app.tabs.sel].showType);
					break;
			}
		}
		//$p.app.menu.hide();
		$p.app.popup.hide();

		return false;
	},
	/*
		p_friends.shareNews : share a news with another user
		inputs : 
			v_title : news title
			v_link : news link
	*/
	shareNews:function(v_title,v_link)
	{
		var l_title=$p.app.user.name+lg("invitesYouOnArticle")+__apname;
		var l_desc=lg("hello")+",\r\n\r\n "+$p.app.user.name+lg("invitesYouOnArticleBody",$p.string.unesc(v_title))+lg("invitesYouOnArticleBody2",$p.string.unesc(v_link))+__apname+".";

		notifyByEmail(p_friends.emailsArray(),l_title,l_desc,indef);
	},
	/*
		p_friends.shareWidget : share a widget with another user
		inputs : 
			v_id : widget id
			v_vars : widget user configuration
	*/
	shareWidget:function(v_id,v_vars)
	{
		//save widget information
		$p.ajax.call("scr_shareitem.php",
			{
				'type':'load',
				'source':'xml',
				'method':'POST',
				'callback':
				{
					'function':p_friends.sendWidgetNotification,
					'variables':
					{
						'id':v_id
					}
				},
				'variables':'obj=m&id='+v_id+'&v='+v_vars+'&secured=1'
			}
		);
	},
	sendWidgetNotification:function(response,vars)
	{
		var l_chk=$p.ajax.getVal(response,"widgetchk","str",false,"");
		var l_link=__LOCALFOLDER+"portal/addtoapplication.php?id="+vars['id']+"&chk="+l_chk;
		var l_subject=$p.app.user.name+lg("invitesYouOn")+__apname;
		var l_body=lg("invitesYouOnBody",$p.app.user.name)+lg("invitesYouOnBody2",l_link)+__apname+".";

		notifyByEmail(p_friends.emailsArray(),l_subject,l_body);
	},
	/*
		p_friends.shareWidget : share a widget with another user
		inputs : 
			v_id : portal id
			v_name : portal name
			v_colnb : column number
			v_style : portal style
			v_type : portal display type
	*/
	sharePortal:function(v_id,v_name,v_colnb,v_style,v_type)
	{
		//save portal information
		$p.ajax.call("scr_shareitem.php",
			{
				'type':'load',
				'source':'xml',
				'method':'POST',
				'callback':
				{
					'function':p_friends.sendPortalNotification
				},
				'variables':'obj=p&prof='+v_id+'&nbcol='+v_colnb+'&style='+v_style+'&mode='+v_type+'&label='+v_name+'&secured=1'
			}
		);
	},
	sendPortalNotification:function(response,vars)
	{
		var l_chk=$p.ajax.getVal(response,"portalchk","str",false,"");
		var l_portalid=$p.ajax.getVal(response,"portalid","str",false,0);
		var l_subject=$p.app.user.name+lg("invitesYouOn")+__apname;
		var l_body=lg("invitesYouOnPortalBody",$p.app.user.name)+lg("invitesYouOnPortalBody2",__LOCALFOLDER+"/portal/addportaltoapplication.php?id="+l_portalid+"&chk="+l_chk)+__apname+".";

		notifyByEmail(p_friends.emailsArray(),l_subject,l_body);
	},

	/*
		p_friends.publishNews : publish a news
		inputs : 
			v_articleId : ID of the article selected
			v_tab : tab the article is displayed on
			v_title : title of the article
			v_desc : description of the article
			v_keywords : keywords of the article (coma separated)
			v_access : access to the article (3=public 2=my network 1=private)
			v_tGroup : array of groups in which to share article
	*/
	publishNews:function(v_articleId,v_tab,v_title,v_desc,v_keywords,v_access,v_tGroup)
	{
		var l_desc=v_desc+"<br /><br /><div class=notebooklink><a href='"+tab[v_tab].feeds[v_articleId].link+"' target='_blank'><img src='"+__LOCALFOLDER+"modules/pictures/"+tab[v_tab].module[$p.app.widgets.uniqToId(tab[v_tab].feeds[v_articleId].modUniq)].icon+"' align='absmiddle' /> "+$p.string.removeTags(p_article.format(tab[v_tab].feeds[v_articleId].title))+"</a><br />"+tab[v_tab].module[$p.app.widgets.uniqToId(tab[v_tab].feeds[v_articleId].modUniq)].name+" ("+$p.date.format(tab[v_tab].feeds[v_articleId].date)+")</div>";
		if (v_title=="" || v_title==indef) v_title=p_article.format($p.string.removeTags(tab[v_tab].feeds[v_articleId].title));
		//add article to notebook
		p_notebook.addArticle(v_title,l_desc,v_keywords,"2",tab[v_tab].feeds[v_articleId].id,tab[v_tab].feeds[v_articleId].id,v_access,v_articleId, v_tGroup);
		
	},
	/*
		p_friends.publishWidget : publish a widget
		inputs : 
			v_widgetId : ID of the widget selected
			v_tab : tab the widget is displayed on
			v_title : title of the widget
			v_desc : description of the widget
			v_keywords : keywords of the widget (coma separated)
			v_access : access to the widget (3=public 2=my network 1=private)
	*/
	publishWidget:function(v_widgetId,v_tab,v_title,v_desc,v_keywords,v_access,v_tGroup)
	{
		//share widget
		var l_vars=tab[v_tab].module[v_widgetId].vars+'&shared=1';

		if (v_access==1)
		{
			$p.ajax.call("scr_shareitem.php",
			{
				'type':'load',
				'source':'xml',
				'method':'POST',
				'callback':
				{
					'function':p_friends.sendNotification
				},
				'variables':'obj=m&id='+tab[v_tab].module[v_widgetId].id+'&v='+$p.string.esc(l_vars)+'&secured=1'
			}
		);
		}
		//add article to notebook
		var l_desc=v_desc+"<br /><br /><a href='#' onclick=\"p_notebook.addWidget("+tab[v_tab].module[v_widgetId].id+",'"+l_vars+"');return false;\"><img src='../images/ico_menu_add.gif' /> "+lg("addThisModuleInMyPage")+" ("+tab[v_tab].module[v_widgetId].name+")</a>";
		if (v_title=="" || v_title==indef) v_title=lg("newModule");
		p_notebook.addArticle(v_title,l_desc,v_keywords,"3",0,tab[v_tab].module[v_widgetId].id,v_access,v_widgetId);
	},
	/*
		p_friends.publishPortal : publish a portal
		inputs : 
			v_tab : ID of the tab selected
			v_title : title of the portal
			v_desc : description of the portal
			v_keywords : keywords of the portal (coma separated)
			v_access : access to the portal (3=public 2=my network 1=private)
	*/
	publishPortal:function(v_tab,v_title,v_desc,v_keywords,v_access,v_colnb,v_style,v_type)
	{
		//share portal
		$p.ajax.call("scr_shareitem.php",
			{
				'type':'load',
				'source':'xml',
				'method':'POST',
				'callback':
				{
					'function':p_friends.publishPortalAddArticle,
					'variables':
					{
						'title':v_title,
						'desc':v_desc,
						'keywords':v_keywords,
						'tab':v_tab,
						'access':v_access
					}
				},
				'variables':'obj=p&prof='+v_tab+'&mode='+v_type+'&secured='+v_access+'&portname='+$p.string.esc(v_title)+'&portdesc='+$p.string.esc(v_desc)
			}
		);
	},
	publishPortalAddArticle:function(response,vars)
	{
		var l_portalId=$p.ajax.getVal(response,"portalid","int",false,0);
		//add article to notebook
		p_notebook.addArticle(vars['title'],vars['desc'],vars['keywords'],"4",0,l_portalId,vars['access'],vars['tab']);	
	},
	/*
		p_friends.sendNotification : send notification after sharing
		inputs :
			v_emails : object type (m=widget, p=portal)
			v_subject : notification subject
			v_message : notification message
	*/
	sendNotification:function(response,vars)
	{
		var l_subject=$p.ajax.getVal(response,"subject","str",false,"");
		var l_body=$p.ajax.getVal(response,"body","str",false,"");

		notifyByEmail(p_friends.emailsArray(),l_subject,l_body,indef);
	},
	/*
		p_friends.emailsArray : list of selected emails
	*/
	emailsArray:function()
	{
		if (p_friends.selList.length==0) return false;
		var l_email=new Array();
		for (var i=0;i<p_friends.selList.length;i++)
		{
			l_email[i]=p_friends.selList[i].email;
		}
		return l_email;
	},
	/*
		p_friends.addPortal : add shared portail in my own portal
		inputs :
	*/
	addPortal:function(v_sess){
		if (v_sess){
			var l_form=document.forms["f"];
			$p.app.pages.newExample(l_form.id.value,2,l_form.check.value,false,true);
		}
	},
	/*
		p_friends.loadGroups : load group list for user passed in parameter
		inputs :
		* displayTagId : to display if group list exists
		* user ID :  
	*/
	loadGroups:function(displayTagId, userId)
	{
		if (undefined != userId) {
			/*load group list in which userId is not invited or not member*/
			$p.ajax.call("xmlnetwork_userworkinggroups.php?uId="+userId,
				{
					'type':'load',
					'callback':
					{
						'function':p_friends.showGroups,
						'variables':
						{
							'tagid':displayTagId
						}
					}
				}
			);
		}
		else {
			var param;
			if (undefined != displayTagId)
			{
				param = displayTagId;
			}
			else
			{
				param = "";
			}
			$p.ajax.call("xmlnetwork_userworkinggroups.php?okOnly=1",
				{
					'type':'load',
					'callback':
					{
						'function':p_friends.showGroups,
						'variables':
						{
							'tagid':param
						}
					}
				}
			);
		}
	},
	/*
		p_friends.showGroups : display group list
		inputs : xml return
	*/
	showGroups:function(response,vars)
	{
		var l_s="", l_result=response.getElementsByTagName("workinggroup");

		p_friends.nbGroups = l_result.length;
		if (l_result.length!=0)
		{
			for (var i=0;i<l_result.length;i++)
			{
				l_id=$p.ajax.getVal(l_result[i],"id","int",false,0);
				l_name=$p.ajax.getVal(l_result[i],"name","str",false,"?");
				l_status=$p.ajax.getVal(l_result[i],"status","int",false,0);

				if(l_result.length == 1)
					l_s+="<input type='checkbox' id='"+l_id+"' name='group'\">"+l_name+"<br />";
				else
					l_s+="<input type='checkbox' id='"+l_id+"' name='group[]'\">"+l_name+"<br />";
			}
		}
		$p.print("sharegroups",l_s);

		if (indef != vars['tagid']) {
			if ("" == l_s) {
				navShow(vars['tagid'],'none');
			}
		}
	}
}

// Manage the users' messages
function articleObj(id,title,link,status,source,icon,date,feedArticleId){
	this.id=id;
	this.title=title;
	this.link=link;
	this.status=status;
	this.source=source;
	this.icon=icon;
	this.date=date;
	this.feedArticleId=feedArticleId;
}
var p_article={
	shown:false,
	items:[],
	initMenu:function()
	{
		if ($p.app.user.id>0) $p.app.menu.options[1].subOpt.push({"id":"parttoread","label":"lblArchive","seq":0,"action":"p_article.menu()","pages":new Array()});
	},
	menu:function()
	{
		$p.app.menu.addTitle('articlemenu_1','myinfo.gif',lg("lblArchive"),p_article.getUnread);
		$p.app.menu.addArea('articlemenu_1',"<div id='articlestoread'></div>");

		$p.app.menu.openSubMenu('articlemenu_1',true);
	},
	/*
		p_article.load : initialize "articles to read" plugin
		inputs : v_start : list of article starts at number v_start
	*/
	load:function(v_start)
	{
		$p.plugin.open();
		$p.plugin.init(lg("lblArchive"),'archive');
		$p.app.setState("p_article.load("+v_start+")");
		$p.plugin.menu([{'id':1,'title':lg("articlesToRead"),'icon':'','fct':'','isLink':false}]);
		p_article.classify.redirect=true;

		$p.plugin.wait();

		if (v_start==indef) v_start=0;

		$p.ajax.call("xmlarticles.php?start="+v_start+"&nb=10",
			{
				'type':'load',
				'callback':
				{
					'function':p_article.get
				}
			}
		);
	},
	/*
		p_article.get : register articles
		inputs : xml response
	*/
	get:function(response,vars)
	{
		var i=0;
		p_article.items.length=0;
		
		while (response.getElementsByTagName("article")[i])
		{
			var l_result=response.getElementsByTagName("article")[i];
			p_article.items.push(new articleObj($p.ajax.getVal(l_result,"id","int",false,0),$p.ajax.getVal(l_result,"title","str",false,"=="),$p.ajax.getVal(l_result,"link","str",false,""),indef,$p.ajax.getVal(l_result,"source","str",false,""),$p.ajax.getVal(l_result,"icon","str",false,""),$p.ajax.getVal(l_result,"pubdate","str",false,""),$p.ajax.getVal(l_result,"feedarticle_id","int",false,0)));
			i++;
		}
		
		p_article.display();
	},
	/*
		p_article.display : refresh "articles to read" list
	*/
	display:function()
	{
		var l_s="",l_bg="clear";
		if (p_article.items.length>0)
		{
			l_s+="<table width='100%' class='ftable' cellspacing='0'>";
			for (var i=0;i<p_article.items.length;i++)
			{
				if ((p_article.items[i].title).length>98) p_article.items[i].title+=" ...";
				l_s+="<tr class='"+l_bg+"'><td width='20'>"+$p.img("../modules/pictures/"+p_article.items[i].icon,16,16)+"</td>";
				l_s+="<td><a href='"+p_article.items[i].link+"' target=_blank><b>"+p_article.items[i].title+"</b></a><br />"+p_article.items[i].source+", "+lg("onThe")+" "+$p.date.formatDateShort($p.date.convertFromDb(p_article.items[i].date))+"<br />";
				l_s+="<a href='"+p_article.items[i].link+"' target=_blank>"+lg("openLinkedArticle")+"</a> - ";
				if (__useSharing) l_s+="<a href=# onclick='return p_article.classify.newDocument("+i+")'>"+$p.img("ico_classify.gif",15,15,lg("archive"),"imgmid")+" "+lg("archive")+"</a> - ";
				l_s+="<a href=# onclick='return p_article.suppress("+i+","+p_article.items[i].id+")'>"+$p.img("ico_suppress.gif",14,14,lg("suppress"),"imgmid")+" "+lg("suppress")+"</a><br /><br /></td></tr>";
				l_bg=l_bg=="clear"?"dark":"clear";
			}
			l_s+="</table>";
		}
		else
		{
			l_s+=lg("lblArchEmpty");
		}
		$p.plugin.content(l_s);
	},
	/*
		p_article.format : format the articles for display
		inputs : article
	*/
	format:function(v_s)
	{
		return v_s.substr(0,99);
	},
	/*
		p_article.save : save an article from a personalized page
		inputs : article ID
	*/
	save:function(v_id)
	{
		var l_feedid=$p.app.widgets.rss.getId(v_id);
		var l_source=$p.string.esc(p_article.format(tab[$p.app.tabs.sel].feeds[l_feedid].modName));
		var l_title=$p.string.esc(p_article.format(tab[$p.app.tabs.sel].feeds[l_feedid].title));
		var l_link=$p.string.esc(tab[$p.app.tabs.sel].feeds[l_feedid].link);
		var l_id=$p.app.widgets.uniqToId(tab[$p.app.tabs.sel].feeds[l_feedid].modUniq);
		var l_icon=tab[$p.app.tabs.sel].module[l_id].icon;
		var l_date=$p.date.getDbFormat((tab[$p.app.tabs.sel].feeds[l_feedid].date).getDate(),(tab[$p.app.tabs.sel].feeds[l_feedid].date).getMonth(),(tab[$p.app.tabs.sel].feeds[l_feedid].date).getFullYear());

		$p.ajax.call('scr_savearticle.php',
			{
				'type':'execute',
				'variables':'t='+l_title+'&l='+l_link+'&s='+l_source+'&i='+l_icon+'&d='+l_date+'&id='+tab[$p.app.tabs.sel].feeds[l_feedid].id
			}
		);

		$p.app.menu.open(false,'parttoread');

		$p.app.alert.show(lg("msgSrcSave"));

		return false;
	},
	/*
		p_article.hide : close article plugin
	*/
	hide:function()
	{
		$p.plugin.hide();
	},
	/*
		p_article.suppress : suppress an article from the list
		inputs :
			v_id : article ID (of the javascript list)
			v_dbid : article ID (in the DB)
	*/
	suppress:function(v_id,v_dbid)
	{
		var l_input=confirm(lg("msgArchSup"));
		if (l_input==1)
		{
			p_article.items.splice(v_id,1);

			$p.ajax.call('scr_suparticle.php',
				{
					'type':'execute',
					'variables':'id='+v_dbid
				}
			);
			
			p_article.display();
		}
	},
	/*
		p_article.getUnread : get number of unread articles
	*/
	getUnread:function()
	{
		if ($p.app.user.id==0)	
			$('articlestoread').set('html',lg('msgNeedToBeConnectedMenu'));
		else
		{
			$p.ajax.call("xmlnbarticles.php",
				{
					'type':'load',
					'callback':
					{
						'function':p_article.displayUnread
					}
				}
			);
		}
	},
	/*
		p_article.displayUnread: display number of unread articles
		inputs : xml response
	*/
	displayUnread:function(response,vars)
	{
		var l_s='';
		var l_nbarticles=$p.ajax.getVal(response,'nbarticles','int',false,0);
		l_s+='<a href="#" onclick="p_article.load();return false;">'+l_nbarticles+lg('nbArticlesToRead')+'</a>';
		l_s+='<br /><br /><a href="#" onclick=\'$p.app.pages.initSummary();return false;\'>'+lg('latestArticlesOfMyPages')+'</a>';

		$p.print("articlestoread",l_s);
	}
}

//send articles to read to the notebook
p_article.classify={
	redirect:true,
	/*
		p_article.classify.newDocument : display classification box for a new article
		inputs : article javascript ID
	*/
	newDocument:function(v_id)
	{
		var l_s="<form onsubmit='return p_article.classify.save(this,true);'><input type='hidden' name='articleurl' value='"+p_article.items[v_id].link+"' /><br />";
		l_s+=p_article.classify.information(p_article.items[v_id].title,p_article.items[v_id].id,"","",3,"../modules/pictures/"+p_article.items[v_id].icon,p_article.items[v_id].source,p_article.items[v_id].date,p_article.items[v_id].feedArticleId);
		l_s+="<br /><center><input type='submit' value='"+lg("add")+"' class='submit' /> <input type='button' class='btn' value='"+lg("cancel")+"' onclick='$p.app.popup.hide()' /></center>";
		l_s+="</form>";
		
		$p.app.popup.show(l_s,500,400,lg("archiveArticle"));
	},
	/*
		p_article.classify.load : load article detail information
		inputs : article ID
	*/
	load:function(v_id)
	{
		$p.ajax.call("xmlarticles_mydetail.php?id="+v_id,
			{
				'type':'load',
				'callback':
				{
					'function':p_article.classify.show,
					'variables':
					{
						'id':v_id
					}
				}
			}
		);
	},
	/*
		p_article.classify.show : display article detail information
		inputs : xml response
	*/
	show:function(response,vars)
	{
		var l_s="";
		var l_title=$p.ajax.getVal(response,"title","str",false,"---");
		var l_link=$p.ajax.getVal(response,"link","str",false,"");
		var l_private=$p.ajax.getVal(response,"private","int",false,3);
		var l_desc=$p.ajax.getVal(response,"description","str",false,"");
		var l_icon="../modules/pictures/"+$p.ajax.getVal(response,"icon","str",false,"");
		var l_source=$p.ajax.getVal(response,"source","str",false,"---");
		var l_date=$p.ajax.getVal(response,"pubdate","str",false,"0000-00-00");
		var l_feedarticleid=$p.ajax.getVal(response,"feedarticle_id","int",false,0);
		//get user keywords
		var l_kw=[],l_result=response.getElementsByTagName("keyword");
		for (var i=0;i<l_result.length;i++)
		{
			l_kw.push(l_result[i].firstChild.nodeValue);
		}
		l_keywords=l_kw.join(",");
				
		var l_s="<form onsubmit='return p_article.classify.save(this,false);'><input type='hidden' name='articleurl' value='"+l_link+"' /><br />";
		l_s+=p_article.classify.information(l_title,vars['id'],l_keywords,l_desc,l_private,l_icon,l_source,l_date,l_feedarticleid);
		l_s+="<br /><input type='submit' value='"+lg("modify")+"' class='submit' /> <input type='button' class='btn' value='"+lg("cancel")+"' onclick='$p.app.popup.hide()' />";
		l_s+="</form>";
		
		$p.app.popup.show(l_s,500,400,lg("archiveArticle"));
	},
	/*
		p_article.classify.information : generate the details informaiton about the article
		inputs :
			v_title : article title
			v_id : article ID
			v_keywords : article keywords
			v_description : article description
			v_access : 1=private / 3=public / 2=network
			v_icon : article icon
			v_source : article source
			v_date : article pubdate
			v_feedArticleId : article ID in the feed_article table
	*/
	information:function(v_title,v_id,v_keywords,v_description,v_access,v_icon,v_source,v_date,v_feedArticleId)
	{
		var l_s="<br /><br /><h2>"+$p.img(v_icon,16,16,"","imgmid")+" "+v_title+"</h2><br /><br />";
		l_s+='<input type="hidden" name="aid" value="'+v_id+'" /><input type="hidden" name="title" value="'+v_title+'" /><input type="hidden" name="icon" value="'+v_icon+'" /><input type="hidden" name="source" value="'+v_source+'" /><input type="hidden" name="pubdate" value="'+v_date+'" /><input type="hidden" name="feedarticleid" value="'+v_feedArticleId+'" />';
		l_s+="<center><input type='radio' name='priv' value='3' "+(v_access==3?"checked='checked' ":"")+"/>"+lg("public")+" <input type='radio' name='priv' value='2' "+(v_access==2?"checked='checked' ":"")+"/>"+lg("myNetwork")+" <input type='radio' name='priv' value='1' "+(v_access==1?"checked='checked' ":"")+"/>"+lg("private")+"</center><br />"; 
		l_s+=lg("tags")+" "+tooltip("helpTagsArticle")+"<br /><input type='text' id='articletagsinput' name='keywords' size='90' maxlength='255' value='"+v_keywords+"' onkeyup=\"$p.tags.autocompletion.get('articletagsinput')\" onblur='$p.tags.autocompletion.hide()' /><br /><br />";
		l_s+=lg("description")+"<br /><textarea name='description' cols='90' rows='5'>"+v_description+"</textarea><br /><br />";
		
		return l_s;
	},
	/*
		p_article.classify.save : classify the article in the notebook
		inputs :
			v_form : form name where classification information is
			v_owner : owner of the article classified
	*/
	save:function(v_form,v_add,v_owner)
	{
		if (v_owner==indef) v_owner=0;
		var l_title=v_form.title.value;
		var l_desc=v_form.description.value;
		var l_link=v_form.articleurl.value;
		var l_source=v_form.source.value;
		var l_date=v_form.pubdate.value;
		var l_feedArticleId=v_form.feedarticleid.value;
		var l_access=$p.navigator.getRadioValue(v_form.priv);
		var l_keywords=$p.tags.formatList(v_form.keywords.value);

		$p.ajax.call('scr_article_classify.php',
			{
				'type':'execute',
				'variables':"act="+(v_add?"add":"upd")+"&id="+v_form.aid.value+"&faid="+l_feedArticleId+"&owner="+v_owner+"&priv="+l_access+"&kw="+l_keywords+"&kwformated="+$p.string.formatForSearch(l_keywords)+"&title="+$p.string.esc(l_title)+"&icon="+v_form.icon.value+"&link="+l_link+"&desc="+l_desc+"&source="+$p.string.esc(l_source)+"&dat="+$p.date.formatDateShort($p.date.convertFromDb(l_date)),
				'alarm':false,
				'forceExecution':false,
				'callback':
				{
					'function':p_article.classify.close
				}
			}
		);

		return false;
	},
	/*
		p_article.classify.close : close the classification plugin window
		inputs :
	*/
	close:function(v_act)
	{
		$p.app.popup.hide();
		if (v_act=="add" && p_article.classify.redirect) p_article.load();
	}
}

var p_search={
	shown:false,
	searchtxt:"",
	menu:new Array({"id":1,"title":"search","icon":"ico_search.gif","fct":"","isLink":false}),
	/*
		p_search.init : init search plugin
	*/
	init:function(searchtxt)
	{
		if (searchtxt==indef) searchtxt="";
		$p.plugin.open();
		$p.plugin.init(lg("search"),'search');
		$p.app.setState("p_search.init()");
		p_article.classify.redirect=false;

		//search module allow to create a module, that is linked to a dummy tab
		tab[$p.app.tabs.sel]=new $p.app.tabs.object(-1,"","P","",0,0,0,0,"",0);
		tab[$p.app.tabs.sel].moduleAlign=true;
		$p.app.tabs.selId=0;

		$p.plugin.menu(p_search.menu);

		var l_s="<br /><br /><center><form name='search' onsubmit='p_search.start(this);return false;'><input type='text' id='searchinput' name='searchtxt' size='50' maxlength='100' onkeyup=\"$p.tags.autocompletion.get('searchinput')\" onblur='$p.tags.autocompletion.hide()' value=\""+searchtxt+"\" /> <input type='submit' class='submit' value='"+lg("search")+"' />";
		l_s+="<br /><br /><input type='checkbox' name='inmypage' onclick='p_search.check(\"inmypage\",this.checked)'";if($p.cookie.get('inmypage')=="checked"){ l_s+="checked='checked'";}l_s+="/> "+lg("inMyOpenPages");
		l_s+="<input type='checkbox' name='inmyarchives' onclick='p_search.check(\"inmyarchives\",this.checked)'";if($p.cookie.get('inmyarchives')=="checked"){ l_s+="checked='checked'";}l_s+="/> "+lg("inMyArchives");
		l_s+="<input type='checkbox' name='inothersarchives' onclick='p_search.check(\"inothersarchives\",this.checked)'";if($p.cookie.get('inothersarchives')=="checked"){ l_s+="checked='checked'";}l_s+="/> "+lg("inPeopleArchives");
		l_s+="<input type='checkbox' name='inmodules' onclick='p_search.check(\"inmodules\",this.checked)'";if($p.cookie.get('inmodules')=="checked"){ l_s+="checked='checked'";}l_s+="/> "+lg("inModules");
		l_s+="<input type='checkbox' name='inpeople' onclick='p_search.check(\"inpeople\",this.checked)'";if($p.cookie.get('inpeople')=="checked"){ l_s+="checked='checked'";}l_s+="/> "+lg("people");
		l_s+="</form></center>";
		l_s+="<br /><br /><div id='searchresults'></div>";
		
		$p.plugin.content(l_s);
		
		//Set the first default filter as checked if none is cheched
		if( (!($p.cookie.get('inmypage'))) && (!($p.cookie.get('inmyarchives'))) && (!($p.cookie.get('inothersarchives'))) && (!($p.cookie.get('inmodules'))) && (!($p.cookie.get('inpeople'))))
		{
			document.search.inmypage.checked=true;
			p_search.check('inmypage',true);
		}
		
		p_search.shown=true;
	},
	/*
		p_search.check : write the  checkbox value in a cookie
	*/
	check:function(boxname,val)
	{
		if (val)
		{
			$p.cookie.write(boxname+'=checked');
		}
		else{
			$p.cookie.write(boxname+'=');
		}
	},
	/*
		p_search.hide : close the search plugin
	*/
	hide:function()
	{
		$p.plugin.hide();
		p_search.shown=false;
	},
	/*
		p_search.start : launch search
		inputs : form containing searched information
	*/
	start:function(v_form,v_def)
	{
		var l_s="";

		if (!p_search.shown) p_search.init(v_def);

		if (v_form==indef) v_form=document.forms["search"];
		
		var searchtxt=_lc(v_form.searchtxt.value);

		if (searchtxt.length<3)
		{
			$p.app.alert.show(lg("lblSrch3car"),2);
			return false;
		}
		if (v_form.inmypage.checked)
		{
			l_s+="<div class='searchtitle' style='position: relative'><a style='float: right;padding-right:4px' href='#' onclick=\"p_search.close('inmypage','resultsinmypage')\">"+$p.img("ico_close.gif",12,11)+"</a>"+lg("search")+" :: "+lg("inMyOpenPages")+"</div><div id='resultsinmypage'></div>";
		}
		if (v_form.inmyarchives.checked)
		{
			l_s+="<div class='searchtitle'><a style='float: right;padding-right:4px;' href='#' onclick=\"p_search.close('inmyarchives','resultsinmyarchives')\">"+$p.img("ico_close.gif",12,11)+"</a>"+lg("search")+" :: "+lg("inMyArchives")+"</div><div id='resultsinmyarchives'></div>";
		}
		if (v_form.inothersarchives.checked)
		{
			l_s+="<div class='searchtitle'><a style='float: right;padding-right:4px;' href='#' onclick=\"p_search.close('inothersarchives','resultsinothersarchives')\">"+$p.img("ico_close.gif",12,11)+" "+"</a><a style='float: right;padding-right:4px;' href='#' onclick=\"$p.app.widgets.rss.checkFeed('"+__LOCALFOLDER+"portal/rss_notebooksearch.php?search="+searchtxt+"')\">"+$p.img('mymodules_add.gif',16,16,lg('addThisModuleInMyPage'),'imgmid')+"</a> "+lg("search")+" :: "+lg("inPeopleArchives")+"</div><div id='resultsinothersarchives'></div>";
		}
		if (v_form.inmodules.checked)
		{
			l_s+="<div class='searchtitle'><a style='float: right;padding-right:4px;' href='#' onclick=\"p_search.close('inmodules','resultsinmymodules')\">"+$p.img("ico_close.gif",12,11)+"</a>"+lg("search")+" :: "+lg("inModules")+"</div><div id='resultsinmymodules'></div>";
		}
		if (v_form.inpeople.checked)
		{
			l_s+="<div class='searchtitle'><a style='float: right;padding-right:4px;' href='#' onclick=\"p_search.close('inpeople','resultsinpeople')\">"+$p.img("ico_close.gif",12,11)+"</a>"+lg("search")+" :: "+lg("people")+"</div><div id='resultsinpeople'></div>";
		}
		$p.print("searchresults",l_s);

		if (v_form.inmypage.checked)
		{
			navWait("resultsinmypage");
			p_search.page.init(searchtxt);
		}
		if (__useSharing && v_form.inmyarchives.checked)
		{
			navWait("resultsinmyarchives");
			p_search.notebook.load($p.string.formatForSearch(searchtxt),0,$p.app.user.id);
		}
		if (__useSharing && v_form.inothersarchives.checked)
		{
			navWait("resultsinothersarchives");
			p_search.notebook.load($p.string.formatForSearch(searchtxt),0,0);
		}
		if (v_form.inmodules.checked)
		{
			navWait("resultsinmymodules");
			p_search.module.load($p.string.formatForSearch(searchtxt),0);
		}
		if (v_form.inpeople.checked)
		{
			navWait("resultsinpeople");
			p_search.network.load($p.string.formatForSearch(searchtxt),0);
		}
		return false;								
	},
	/*
		p_search.close : hide a search window
		inputs :
			v_type : search type to hide
			v_div : div object containing search results
	*/
	close:function(v_type,v_div)
	{
		var l_form=document.forms["search"];
		l_form.elements[v_type].checked=false;
		$p.print(v_div,"");
	}
}
p_search.page={
	nbPerPage:5,
	results:[],
	resultObj:function(tabId,artId,step)
	{
		this.tabId=tabId;
		this.artId=artId;
		this.step=step;
	},
	/*
		p_search.page.init : init search in active pages
		inputs : searched string
	*/
	init:function(v_searchtxt)
	{
		p_search.searchtxt=v_searchtxt;
		p_search.page.results.length=0;
		p_search.page.load(1,0);
	},
	/*
		p_search.page.load : search string in active pages
		inputs :
			v_step : search step
			v_start : start at result nb v_start
	*/
	load:function(v_step,v_start)
	{
		l_searchtxt=p_search.searchtxt;
		if (v_step==indef) v_step=1;
		if (v_start==indef) v_start=0;
		
		if (p_search.page.results.length<v_start+p_search.page.nbPerPage && v_step!=7)
		{
			//search exact sentence in title
			if (v_step==1)
			{
				for (var i=0;i<tab.length;i++)
				{
					if (tab[i].isLoaded)
					{
						for (var j=0;j<tab[i].feeds.length;j++)
						{
							if ((_lc(tab[i].feeds[j].title)).indexOf(l_searchtxt)!=-1)
							{
								p_search.page.results.push(new p_search.page.resultObj(i,j,v_step));
							}
						}
					}
				}
				v_step=2;
			}
		
			//search exact sentence in description
			if (v_step==2 && p_search.page.results.length<=v_start+p_search.page.nbPerPage+1)
			{
				for (var i=0;i<tab.length;i++)
				{
					if (tab[i].isLoaded)
					{
						for (var j=0;j<tab[i].feeds.length;j++)
						{
							if ((_lc(tab[i].feeds[j].desc)).indexOf(l_searchtxt)!=-1)
							{
								if (p_search.page.noDouble(i,j)) p_search.page.results.push(new p_search.page.resultObj(i,j,v_step));
							}
						}
					}
				}
				v_step=3;
			}
			
			if (v_step>2) var keyword=l_searchtxt.split(" ");
			
			//search all the words in title
			if (v_step==3 && p_search.page.results.length<=v_start+p_search.page.nbPerPage+1)
			{
				var l_found;
				for (var i=0;i<tab.length;i++)
				{
					if (tab[i].isLoaded)
					{
						for (var j=0;j<tab[i].feeds.length;j++)
						{
							l_found=true;
							for (var k=0;k<keyword.length;k++)
							{
								if (keyword[k].length>2 && l_found)
								{
									if ((_lc(tab[i].feeds[j].title)).indexOf(keyword[k])==-1) l_found=false;
								}
							}
							if (l_found && p_search.page.noDouble(i,j)) p_search.page.results.push(new p_search.page.resultObj(i,j,v_step));
						}
					}
				}
				v_step=4;
			}
		
			//search all the words in description
			if (v_step==4 && p_search.page.results.length<=v_start+p_search.page.nbPerPage+1)
			{
				var l_found;
				for (var i=0;i<tab.length;i++)
				{
					if (tab[i].isLoaded)
					{
						for (var j=0;j<tab[i].feeds.length;j++)
						{
							l_found=true;
							for (var k=0;k<keyword.length;k++)
							{
								if (keyword[k].length>2 && l_found)
								{
									if ((_lc(tab[i].feeds[j].desc)).indexOf(keyword[k])==-1) l_found=false;
								}
							}
							if (l_found && p_search.page.noDouble(i,j)) p_search.page.results.push(new p_search.page.resultObj(i,j,v_step));
						}
					}
				}
				v_step=5;
			}
		
			//search at least 1 word in title
			if (v_step==5 && p_search.page.results.length<=v_start+p_search.page.nbPerPage+1)
			{
				var l_found;
				for (var i=0;i<tab.length;i++)
				{
					if (tab[i].isLoaded)
					{
						for (var j=0;j<tab[i].feeds.length;j++)
						{
							l_found=false;
							for (var k=0;k<keyword.length;k++)
							{
								if (keyword[k].length>2 && !l_found)
								{
									if ((_lc(tab[i].feeds[j].title)).indexOf(keyword[k])!=-1) l_found=true;
								}
							}
							if (l_found && p_search.page.noDouble(i,j)) p_search.page.results.push(new p_search.page.resultObj(i,j,v_step));
						}
					}
				}
				v_step=6;
			}
		
			//search at least 1 word in description
			if (v_step==6 && p_search.page.results.length<=v_start+p_search.page.nbPerPage+1)
			{
				var l_found;
				for (var i=0;i<tab.length;i++)
				{
					if (tab[i].isLoaded)
					{
						for (var j=0;j<tab[i].feeds.length;j++)
						{
							l_found=false;
							for (var k=0;k<keyword.length;k++)
							{
								if (keyword[k].length>2 && !l_found)
								{
									if ((_lc(tab[i].feeds[j].desc)).indexOf(keyword[k])!=-1) l_found=true;
								}
							}
							if (l_found && p_search.page.noDouble(i,j)) p_search.page.results.push(new p_search.page.resultObj(i,j,v_step));
						}
					}
				}
				v_step=7;
			}
		}
		
		//treat results
		var l_s="<table>",inc=v_start;
		while (inc<p_search.page.results.length && inc<v_start+p_search.page.nbPerPage)
		{
			l_s+="<tr>";
			if (tab[p_search.page.results[inc].tabId].feeds[p_search.page.results[inc].artId].image!="x") l_s+="<td><img"+tab[p_search.page.results[inc].tabId].feeds[p_search.page.results[inc].artId].image+" align='left' style='margin-right:6px;width:100px;' /></td>";
			else l_s+="<td valign='top' style='padding-top: 7px;'>"+$p.img("puce.gif",3,5)+"</td>";

            l_s+="<td valign='top'><a href='"+tab[p_search.page.results[inc].tabId].feeds[p_search.page.results[inc].artId].link+"' target='_blank'><b>"+tab[p_search.page.results[inc].tabId].feeds[p_search.page.results[inc].artId].title+"</b></a><br />"+$p.date.formatDelai($p.date.delayFromNow(tab[p_search.page.results[inc].tabId].feeds[p_search.page.results[inc].artId].date))+"</td>";
			l_s+="</tr>";
			inc++;
		}
		l_s+="<tr><td></td><td align='right'>";
		if (v_start>0) l_s+="<a href='#' onclick='return p_search.page.load("+v_step+","+(v_start-p_search.page.nbPerPage)+")'>"+$p.img("ico_previous2.gif",12,11,"","imgmid")+" "+lg("previousResults")+"</a>";
		if (p_search.page.results.length>v_start+p_search.page.nbPerPage) l_s+=" &nbsp; <a href='#' onclick='return p_search.page.load("+v_step+","+(v_start+p_search.page.nbPerPage)+")'>"+lg("nextResults")+" "+$p.img("ico_next2.gif",12,11,"","imgmid")+"</a>";
		l_s+="</td></tr>";
		l_s+="</table>";
		if (p_search.page.results.length==v_start) l_s+=lg("noResultForThisSearch");
		$p.print("resultsinmypage",l_s);
		
		return false;
	},
	/*
		p_search.page.noDouble : remove doubloons from the results
		inputs :
			v_tabId : tab ID where the result was found
			v_articleID : article ID
	*/
	noDouble:function(v_tabId,v_artId)
	{
		for (var inc=0;inc<p_search.page.results.length;inc++)
		{
			if (p_search.page.results[inc].tabId==v_tabId && p_search.page.results[inc].artId==v_artId) return false;
		}
		return true;
	}
}

//search in notebooks
p_search.notebook={
	/*
		p_search.notebook.load : search in the notebooks
		inputs :
			v_search : searched string
			v_page : results page number
			v_owner : 0 to search in public notebooks, user ID to search in a private notebook
	*/
	load:function(v_search,v_page,v_owner)
	{
		$p.ajax.call("xmlnotebook_search.php?searchtxt="+v_search+"&p="+v_page+"&owner="+v_owner,
			{
				'type':'load',
				'callback':
				{
					'function':p_search.notebook.display,
					'variables':
					{
						'search':v_search,
						'page':v_page,
						'owner':v_owner
					}
				}
			}
		);
		return false;
	},
	/*
		p_search.notebook.display : display search results
		inputs : xml response
	*/
	display:function(response,vars)
	{
		var l_s="<table>", l_result=response.getElementsByTagName("item");
		for (var i=0;i<l_result.length;i++)
		{
			if (i<10)
			{
				var l_userid=$p.ajax.getVal(l_result[i],"ownerid","int",false,0);
				var l_id=$p.ajax.getVal(l_result[i],"id","int",false,0);
				l_s+="<tr>";
				l_s+="<td valign='top' style='padding-top: 3px;'>"+$p.img("puce.gif",3,5,"","imgmid")+"</td><td valign='top'><a href='../notebook/detail.php?id="+l_userid+"&artid="+l_id+"' target='_blank'><b>"+$p.ajax.getVal(l_result[i],"title","str",false,"")+"</b></a>"+$p.date.formatDelai($p.ajax.getVal(l_result[i],"date","str",false,""));
				//options not displayed if looking in my notebook
				var l_owner=$p.ajax.getVal(l_result[i],"owner","str",false,"");
				if (vars['owner']==0) l_s+="<br />"+lg("sharedBy")+" <a href='#' onclick=\"p_notebook.open("+l_userid+",'index','"+l_owner+"')\">"+l_owner+"</a>";
				l_s+="</td>";
				l_s+="</tr>";
			}
		}
		l_s+="<tr><td></td><td align='right'>";
		if (vars['page']>0) l_s+="<a href='#' onclick='return p_search.notebook.load(\""+vars['search']+"\","+(vars['page']-1)+"'>"+$p.img("ico_previous2.gif",12,11,"","imgmid")+" "+lg("previousResults")+"</a>";
		if (l_result.length==11) l_s+=" &nbsp; <a href='#' onclick='return p_search.notebook.load(\""+vars['search']+"\","+(vars['page']+1)+"'>"+$p.img("ico_next2.gif",12,11,"","imgmid")+" "+lg("nextResults")+"</a>";
		l_s+="</td></tr>";
		l_s+="</table>";
		if (l_result.length==0) l_s+=lg("noResultForThisSearch");
		
		//results area depend on the notebook I search(mine or others)
		$p.print((vars['owner']==0?"resultsinothersarchives":"resultsinmyarchives"),l_s);
	}
}
p_search.network={
	/*
		p_search.network : search in users list
		inputs :
			v_search : search string
			v_page : results page number
	*/
	load:function(v_search,v_page)
	{
		$p.ajax.call("xmlnetwork_search.php?p="+v_page+"&search="+v_search+"&type=t",
			{
				'type':'load',
				'callback':
				{
					'function':p_search.network.display,
					'variables':
					{
						'search':v_search,
						'page':v_page
					}
				}
			}
		);
	},
	/*
		p_search.network.display : display search results
		inputs : xml response
	*/
	display:function(response,vars)
	{
		var l_s="<table>", l_result=response.getElementsByTagName("user");
		for (var i=0;i<l_result.length;i++)
		{
			if (i<10)
			{
				l_s+="<tr>";
				var l_picture=$p.ajax.getVal(l_result[i],"picture","str",false,"");
				var l_username=$p.ajax.getVal(l_result[i],"name","str",false,"");
				l_s+="<td valign='top'><img src='"+(l_picture==""?"../images/nopicture.gif":l_picture)+"' width='32' height='32' class='picture' /></td>";
				l_s+="<td valign='top'><a href='#' onclick='p_network.card.load("+$p.ajax.getVal(l_result[i],"id","int",false,0)+")'><b>"+l_username+"</b></a><br /><a href='#' onclick=\"p_notebook.open("+$p.ajax.getVal(l_result[i],"id","int",false,0)+",'index','"+l_username+"')\">"+lg("seeHisNotebook")+"</a></td>";
				l_s+="</tr>";
			}
		}
		l_s+="<tr><td></td><td align='right'>";
		if (vars['page']>0) l_s+="<a href='#' onclick='return p_search.network.load("+vars['search']+","+(vars['page']-1)+")'>"+$p.img("ico_previous2.gif",12,11,"","imgmid")+" "+lg("previousResults")+"</a>";
		if (l_result.length==11) l_s+=" &nbsp; <a href='#' onclick='return p_search.network.load("+vars['search']+","+(vars['page']+1)+")'>"+$p.img("ico_next2.gif",12,11,"","imgmid")+" "+lg("nextResults")+"</a>";
		l_s+="</td></tr>";
		l_s+="</table>";
		if (l_result.length==0) l_s+=lg("noResultForThisSearch");
		
		$p.print("resultsinpeople",l_s);
	}
}
p_search.module={
	/*
		p_search.module.load : search in widgets list
		inputs :
			v_search : searched string
			v_page : results page number
	*/
	load:function(v_search,v_page)
	{
		$p.ajax.call("xmlsearch.php?p="+v_page+"&searchtxt="+v_search,
			{
				'type':'load',
				'callback':
				{
					'function':p_search.module.display,
					'variables':
					{
						'search':v_search,
						'page':v_page
					}
				}
			}
		);
	},
	/*
		p_search.module.display : display search results
		inputs : xml response
	*/
	display:function(response,vars)
	{
		var l_s="<table>", l_result=response.getElementsByTagName("item");
		for (var i=0;i<l_result.length;i++)
		{
			if (i<10)
			{
				l_s+="<tr>";
				l_s+="<td valign='top'>"+$p.img("puce.gif",3,5,"","imgmid")+" <a href='#' onclick=\"$p.app.widgets.open("+$p.ajax.getVal(l_result[i],"id","int",false,0)+",'','uniq',"+($p.ajax.getVal(l_result[i],"secured","int",false,0)==0?false:true)+")\"><b>"+$p.ajax.getVal(l_result[i],"name","str",false,"")+"</b></a></td>";
				l_s+="</tr>";
			}
		}
		l_s+="<tr><td></td><td align='right'>";
		if (vars['page']>0) l_s+="<a href='#' onclick='return p_search.module.load("+vars['search']+","+(vars['page']-1)+")'>"+$p.img("ico_previous2.gif",12,11,"","imgmid")+" "+lg("previousResults")+"</a>";
		if (l_result.length==11) l_s+=" &nbsp; <a href='#' onclick='return p_search.module.load("+vars['search']+","+(vars['page']+1)+")'>"+$p.img("ico_next.gif",12,11,"","imgmid")+" "+lg("nextResults")+"</a>";
		l_s+="</td></tr>";
		l_s+="</table>";
		if (l_result.length==0) l_s+=lg("noResultForThisSearch");
		
		$p.print("resultsinmymodules",l_s);
	}
}
p_network.initMenu=function()
{
	if ($p.app.user.id>0) $p.app.menu.options.push({"id":"network","label":lg("myNetwork"),"desc":lg("networkIconDesc"),"icon":"ico_menu_share.gif","seq":40,"action":"","type":"","subOpt":[{"id":"pmenunetwork","label":"myNetwork","seq":0,"action":"p_network.dashboard.menu()","pages":[]},{"id":"pchat","label":"communicate","seq":0,"action":"p_chat.menu()","pages":[]},{"id":"pmenunetworktoread","label":"lblArchive","seq":0,"action":"p_network.information.menu()","pages":[]}],"pages":[]});
}
/*
	p_network.addNews : feed users NEWS FEED
	inputs : xml return from scr_notebook_articleadd.php
*/
p_network.addNews=function(v_vars,v_fctvars)
{
	var l_vars=v_vars.split(/_/);
	var l_s="type="+l_vars[0];
	//l_s+="&access="+$p.navigator.getRadioValue(document.forms["friend"]);
	l_s+="&access="+v_fctvars['access'];
	if (l_vars[0]==2)
	{
		l_s+="&title="+$p.string.esc($p.string.removeTags(p_article.format(tab[$p.app.tabs.sel].feeds[l_vars[1]].title)));
		l_s+="&link="+$p.string.esc("../notebook/detail.php?id="+$p.app.user.id+"&artid="+l_vars[2]);
	}
	if (l_vars[0]==3)
	{
		l_s+="&title="+$p.string.esc(tab[$p.app.tabs.sel].module[l_vars[1]].name);
		l_s+="&link="+$p.string.esc("../portal/addtoapplication.php?pid="+tab[$p.app.tabs.sel].module[l_vars[1]].id+"&"+tab[$p.app.tabs.sel].module[l_vars[1]].vars);
	}
	if (l_vars[0]==4)
	{
		l_s+="&title="+$p.string.esc(tab[$p.app.tabs.sel].label);
		l_s+="&link="+$p.string.esc("../portal/addportaltoapplication.php?id="+l_vars[2]+"&chk=");
	}
	$p.ajax.call('scr_network_news.php',
		{
			'type':'execute',
			'variables':l_s,
			'alarm':true
		}
	);
	//$p.app.menu.hide();
}
p_network.dashboard={
	filterKw:0,
	labelKwList:[],
	filterUsersCorporateGroup:0,
	labelUsersCorporateGroupList:[],
	filterUsersWorkingGroup:0,
	labelUsersWorkingGroupList:[],
	centralAreaShown:"USERS",
	nbUsersInMyNetwork:0,
	nbUsersGroups:0,
	/*
		p_network.dashboard.buildElement : build user card
		inputs :
			v_id : user ID
			v_img : user picture
			v_name : user name
			v_email : user email
			v_status : user status
			v_keywords : user keywords
			v_options : actions available for this user
			v_isCreator : used by displayUsersWorkingGroup, true if the l_id is the notebook_group's creator  
			v_activity : user activity (chat feature)
	*/
	buildElement:function(v_id,v_img,v_name,v_email,v_status,v_description,v_keywords,v_options,v_isCreator,v_activity)
	{
		var l_s="<li>";
		l_s+="<div class='card-inner'>";
		if (undefined != v_isCreator && true==v_isCreator) 
		{
			l_s+="<div class='card-bar-creator'>";
			l_s+="<b>"+lg("manager")+"</b>&nbsp;-&nbsp;";
		}
		else 	l_s+="<div class='card-bar'>";
		
		if (__useChat && v_activity!=indef) l_s+=$p.img('ico_activity'+v_activity+'.gif',16,16,lg('activity'+v_activity),'imgmid')+" ";
		l_s+='<b>'+v_name+'</b>'
			+'</div>'
			+'<div class="card-content">'
			+'<table cellpadding="8" width="100%">'
			+'<tr>'
			+'<td valign="top" width="80">'
			+'<a href="#" onclick="p_network.card.load('+v_id+')">'+$p.img(v_img,64,64,'','picture')+'</a>'
			+'</td>'
			+'<td valign="bottom">'
			+'<br />';
		
		if (v_status!="")l_s+="<b>"+lg("status")+"</b> : "+$p.string.trunk(v_status,30)+"<br /><br />";
		l_s+="	<div class='title' style='width: 100%;margin-bottom: 2px;'>"+lg('options')+"</div>"
			+$p.img('ico_mail_unread.gif',16,16,'','imgmid')+" <a href=mailto:"+v_email+" title="+v_email+" >"+lg('contactByEmail')+"</a> |"
			+$p.img("ico_form.gif",16,16,'',"imgmid")+" <a href='#' onclick=p_network.dashboard.detailInfos("+v_id+") >"+lg('completeDetails')+"</a>";
		if (__useSharing) l_s+=" | "+$p.img("ico_notebook.gif",16,16,lg("seeHisNotebook"),"imgmid")+" <a href='#' onclick=\"p_notebook.open("+v_id+",'index','"+v_name+"')\">"+lg("seeHisNotebook")+"</a>";
		if (__useChat && v_activity=='o' && v_id!=$p.app.user.id) l_s+=" | "+$p.img("ico_chat.gif",16,16,'',"imgmid")+'<a href="#" onclick=\'p_chat.discussion.open(0,'+v_id+',"'+v_name+'");\'>'+lg("chat")+'</a>';
		for (var i=0;i<v_options.length;i++)
		{
			l_s+=' | '+v_options[i];
		}
		l_s+='</td>'
			+'</tr>'
			+'</table>'
			+'</div>'
			+'</div>'
			+'</li>';
	
		return l_s;
	},
	/*
		p_network.dashboard.detailInfos : Load an iframe which displays user's detailed infos
	*/
	detailInfos:function(v_id)
	{
		$p.ajax.call('xmlnetwork_completeInfos.php?id='+v_id,
			{
				'type':'load',
				'callback':
				{
					'function':p_network.dashboard.displayDetailInfos
				}
			}
		);
	},
	displayDetailInfos:function(response,vars)
	{
		//general user info
		var v_id = $p.ajax.getVal(response,'id','int',false,0);
		var picture = $p.ajax.getVal(response,'picture','str',false,'');
		var description = $p.ajax.getVal(response,'description','str',false,'');
		var username = $p.ajax.getVal(response,'username','str',false,'');
		var longname = $p.ajax.getVal(response,'longname','str',false,'');
		var keywords = $p.ajax.getVal(response,'keywords','str',false,'');
		var networknb = $p.ajax.getVal(response,'innetwork','int',false,0);
		var mydescription = $p.ajax.getVal(response,'mydescription','str',false,'');
        
		//get keywords i set for this user
		var l_kw=[],l_result2=response.getElementsByTagName("mykeywords");
		for (var i=0;i<l_result2.length;i++)
		{
			l_kw.push(l_result2[i].firstChild.nodeValue);
		}
		if (l_kw.length==0)	l_kw.push('');			
		
		//popup content
		var l_s=''
			+'<table border="0" cellspacing="3" cellpadding="3" width="95%">'
			+'<tr>'
			+'<td align="center" valign="top" width="100">'
			+'<img src='+picture+'?nocache='+rand+' width="64" height="64" class="picture" />'
			+'</td>'
			+'<td valign="top">'
			+'<div class="title">'+lg('publicInfo')+'</div>'
            +'<p><b>'+lg('lblEmail')+': </b> '+username+'</p>'	
			+'<p><b>'+lg('Name')+': </b> '+longname+'</p>'
			+'<p><b>'+lg('tags')+': </b>'+keywords+'</p>'
			+'<p><b>'+lg('desc')+': </b>'+description+'</p>';
		
		//specific user caracteristics (criterias)
		var result=response.getElementsByTagName("criteria");
		for (var i=0;i<result.length;i++)
		{
			var type=$p.ajax.getVal(result[i],'type','int',false,0);
			var label=$p.ajax.getVal(result[i],'label','str',false,'');
			var parameters=$p.ajax.getVal(result[i],'parameters','str',false,'undefined');
			var options=$p.ajax.getVal(result[i],'options','str',false,'');

			switch (type)
			{
				//if the criteria is an input type TEXT
				case 1 :
				{	
					l_s+="<p><b>"+label+": </b>"+parameters+"</p>";
					break;
				}			
				//if the criteria is a TEXTAREA
				case 5 :
				{
					l_s+="<p><b>"+label+": </b>"+parameters+"</p>";
					break;
				}	
				//if the criteria is a SELECT
				case 2 :
				{
					var tableau = options.split(";");
					l_s+="<p><b>"+label+": </b>"+tableau[parameters-1]+"</p>";
					break;
				}	
				//if the criteria is a RADIO
				case 4 :
				{
					var tabRadio = options.split(";")
					l_s+="<p><b>"+label+": </b>"+tabRadio[parameters-1]+"</p>";
					break;
				}		
					
				//if the criteria is a CHECKBOX
				case 3 :
				{
					var tabOptions = options.split(";");
					var tabParameters = parameters.split(";");
					
					l_s+="<p><b>"+label+": </b>";
					for (var a=0;a<tabParameters.length;a++)
					{
							var index = tabParameters[a];
							l_s+=tabOptions[index-1]+" - ";
					}
					l_s+="</p>";
					break;
				}			
			}
		}	
		
		if (networknb==1)   {
			l_s+='<div class="title">'+lg('privateInfo')+'</div>'
				+'<p><b>'+lg('myTags')+' :</b>'+l_kw.join(",")+'</p>'
				+'<p><b>'+lg('description')+' :</b>'+mydescription+'</p>'
                +'<a href="#" onclick="$p.network.card.load('+v_id+')">'+lg('modify')+'</a>';
		}

		l_s+='</td>'
			+'</tr>'
			+'</table>';

		if (networknb==0)
		{
			l_s+='<center><input type="button" class="btn" onclick="return p_network.card.load('+v_id+',true)" value="'+lg('addToMyNetwork')+'" /></center>';
		}

		$p.app.popup.show(l_s,600,indef,lg("completeDetails"),true);
	},
	open:function()
	{
		if ($p.app.env!='network')
			p_network.init(lg('network'),'network');
		
		$p.plugin.content("<div id='plugindiv'></div>");
	},
	/*
		p_network.dashboard.myNetwork : get my network
	*/
	myNetwork:function(v_id){
		if (v_id==indef) v_id=0;
		p_network.dashboard.open();
		$p.app.setState("p_network.dashboard.myNetwork()");

		p_network.dashboard.getUsers(v_id);
	},
	/*
	* p_network.dashboard.menu : load user's group
	*/
	menu:function()
	{
		$p.app.menu.addTitle('networkmenu_1','mynetwork.gif',lg("myNetwork"),p_network.dashboard.getInfo);
		var l_s=''
			+'<div id="networkinfodiv"></div>'
			+'<br /><br />'
			+'<div class="title">'+lg("addFriend")+'</div>'
			+'<div class="highlight">'
			+'<form onsubmit="return p_network.add.search(this)">'
			+$p.img("ico_friend_add.gif",16,16,"","imgmid")+'&nbsp;<input type="text" name="searchtxt" class="thinbox" style="width: 176px;color: #aaaaaa;" onFocus=\'$p.navigator.inputFocus(this,"'+lg("inputEmailOrNameOrTag")+'")\' onBlur=\'$p.navigator.inputLostFocus(this,"'+lg("inputEmailOrNameOrTag")+'");\' value="'+lg("inputEmailOrNameOrTag")+'" />'
			+'&nbsp;<input type="submit" class="submit" value="'+lg("ok")+'" />'
			+'</form>'
			+'<br />'
			+$p.img('puce.gif')+" <a href='#' onclick='p_network.dashboard.loadRecommended()'>"+lg("recommendedUsers")+"</a><br />"
			+$p.img('puce.gif')+" <a href='#' onclick='p_network.dashboard.loadDirectory()'>"+lg("usersDirectory")+"</a><br /><br />"
			+'</div>';

		$p.app.menu.addArea('networkmenu_1',l_s);

		if (__useSharing)
		{
			$p.app.menu.addTitle('networkmenu_2','ico_work.gif',lg("myGroups"),p_network.dashboard.getUserWorkingGroups);
			$p.app.menu.addArea('networkmenu_2','<div id="workinggroupsdiv"></div>');

			$p.app.menu.addTitle('networkmenu_3','ico_corporate.gif',lg("myCorporateGroups"),p_network.dashboard.getUserCorporateGroups);
			$p.app.menu.addArea('networkmenu_3','<div id="usergroupsdiv"></div>');
		}

		$p.app.menu.addTitle('networkmenu_4','ico_tag.gif',lg('tagsFilter'),p_network.dashboard.getkeywords);
		$p.app.menu.addArea('networkmenu_4','<div id="keywordsdiv"></div>');

		$p.app.menu.openSubMenu('networkmenu_1',true);

	},
	/*
		p_network.dashboard.getInfo: Get information about your network
	*/
	getInfo:function()
	{
		if ($p.app.user.id==0)	$('networkinfodiv').set('html',lg('msgNeedToBeConnectedMenu'));
		else
		{
			navWait('networkinfodiv');
			$p.ajax.call('xmlnetwork_info.php',
				{
					'type':'load',
					'callback':
					{
						'function':p_network.dashboard.displayInfo
					}
				}
			);
		}
	},
	displayInfo:function(response,vars)
	{
		var l_s='<br /><div class="title">'+lg('myNetwork')+'</div>';
		l_s+=$p.img('puce.gif')+" <a href='#' onclick='p_network.dashboard.myNetwork()'>"+$p.ajax.getVal(response,'networknb','int',false,0)+"&nbsp;"+lg("peopleOnYourNetwork")+"</a><br/>";
		//l_s+="<a href='#' onclick='p_network.chat.menu()'>"+$p.ajax.getVal(response,'onlinenb','int',false,0)+"&nbsp;personne(s) de votre réseau en ligne</a><br/>";
		l_s+=$p.img('puce.gif')+" <a href='#' onclick='p_network.dashboard.loadFollowers()'>"+$p.ajax.getVal(response,'referernb','int',false,0)+"&nbsp;"+lg('addedinNetwork')+"</a><br/>";
		if (__useSharing) l_s+=$p.img('puce.gif')+" <a href='#' onclick='p_network.dashboard.initNetworkNews()'>"+lg("newOfYourNetwork")+"</a><br />";
		
		$p.print('networkinfodiv',l_s);
	},
	/*
		p_network.dashboard.getkeywords : load user keywords
	*/
	getkeywords:function()
	{
		if ($p.app.user.id==0)	$('keywordsdiv').set('html',lg('msgNeedToBeConnectedMenu'));
		else
		{
			navWait("keywordsdiv");
			$p.ajax.call('xmlnetwork_keywords.php',
				{
					'type':'load',
					'callback':
					{
						'function':p_network.dashboard.displayKeywords
					}
				}
			);
		}
	},
	/*
	 * p_network.dashboard.getUsersWorkingGroup : load users of working group and display it in central area
		inputs : notebook group id
	 */
	getUsersWorkingGroup:function(v_groupId)
	{
		p_network.dashboard.open();

		navWait("plugindiv");

		p_network.dashboard.filterUsersWorkingGroup = v_groupId;
		var l_label = p_network.dashboard.labelUsersWorkingGroupList[v_groupId];
		$p.plugin.menu([{'id':1,'title':lg("membersOfGroupname") + "&nbsp;" + l_label,'icon':'','fct':'','isLink':false}]);

		$p.ajax.call('xmlnetwork_usersnotebookgroup.php?gid='+v_groupId,
			{
				'type':'load',
				'callback':
				{
					'function':p_network.dashboard.displayUsersWorkingGroup,
					'variables':
					{
						'v0':'',
						'v1':true,
						'v2':true,
						'v3':true,
						'v4':false
					}
				}
			}
		);
	},
	/*
		p_network.dashboard.displayUsersWorkingGroup : display users working group in the central area
		inputs : xml response
	*/
	displayUsersWorkingGroup:function(response, vars) 
	{
		var result=response.getElementsByTagName("user");
		var l_s="";
		l_s+="<ul class='card-outer'>";
		
		if ( 0 == result.length)
		{
			l_s+=lg("noMembersOfThisGroupInYourNetwork");
		}
		else
		{
			var v_isCreator;
			for (var i=0;i<result.length;i++)
			{
				var l_id=$p.ajax.getVal(result[i],"id","int",false,0);
				var l_picture=$p.ajax.getVal(result[i],"picture","str",false,"");
				var l_created_by=$p.ajax.getVal(result[i], "created_by", "int", false, 0);
				if (l_picture=="") l_picture="nopicture.gif";
				var l_options=[];

				if($p.app.user.id != l_id && __useSharing) {
					l_options.push($p.img('ico_group_add.gif',16,16,'','imgmid')+" <a onclick='p_group.card.load("+l_id+", "+$p.app.user.id+")' href='#'>"+lg("addInMyGroups")+"</a>");
				}
				if (l_created_by == l_id) {
					v_isCreator = true;
				}
				else {
					v_isCreator = false;
				}
				if (vars['v3']) l_options.push("<a href='#' onclick='return p_network.suppress("+l_id+")'>"+lg("suppressFromMyNetwork")+"</a>");
				l_s+=p_network.dashboard.buildElement(l_id,l_picture,$p.ajax.getVal(result[i],"longname","str",false,"..."),$p.ajax.getVal(result[i],"username","str",false,"..."),$p.ajax.getVal(result[i],"stat","str",false,""),$p.ajax.getVal(result[i],"description","str",false,""),$p.ajax.getVal(result[i],"keywords","str",false,""),l_options, v_isCreator,p_chat.computeActivity($p.ajax.getVal(result[i],"activity","str",false,"x"),$p.ajax.getVal(result[i],"lastconndate","str",false,""),$p.ajax.getVal(result[i],"dbdate","str",false,"")));
			}
		}
		l_s+="</ul><div style='clear: both;float: none;'></div>";
		l_s+="<div style='text-align: center;background: #c6c3c6;height: 22px;margin-top: 15px;padding-top: 3px;'></div>";
		
		$p.print("plugindiv", l_s);
		p_network.dashboard.centralAreaShown = "WORK";
		
		p_network.dashboard.refreshKeywords();
	},
	/*
	 * p_network.dashboard.getUsersCorporateGroup : load users group and display it in central area
		inputs : group id
	 */
	getUsersCorporateGroup:function(v_groupId)
	{
		p_network.dashboard.open();

		navWait("plugindiv");
		
		p_network.dashboard.filterUsersCorporateGroup = v_groupId;
		var l_label = p_network.dashboard.labelUsersCorporateGroupList[v_groupId];
		$p.plugin.menu([{'id':1,'title':lg("membersOfGroupname") + "&nbsp;" + l_label,'icon':'','fct':'','isLink':false}]);

		$p.ajax.call('xmlnetwork_usersgroup.php?gid='+v_groupId,
			{
				'type':'load',
				'callback':
				{
					'function':p_network.dashboard.displayUsersCorporateGroup,
					'variables':
					{
						'v0':'',
						'v1':true,
						'v2':true,
						'v3':true,
						'v4':false
					}
				}
			}
		);
	},
	/*
		p_network.dashboard.displayUsersCorporateGroup : display users group in the central area
		inputs : xml response
	*/
	displayUsersCorporateGroup:function(response, vars) 
	{
		var result=response.getElementsByTagName("user");
		var l_s="";
		l_s+="<ul class='card-outer'>";
		
		if ( 0 == result.length)
		{
			l_s+=lg("noMembersOfThisGroupInYourNetwork");
		}
		else
		{
			for (var i=0;i<result.length;i++)
			{
				var l_id=$p.ajax.getVal(result[i],"id","int",false,0);
				var l_picture=$p.ajax.getVal(result[i],"picture","str",false,"");
				if (l_picture=="") l_picture="nopicture.gif";
				var l_options=[];
				if($p.app.user.id != l_id && __useSharing) {
					l_options.push($p.img('ico_group_add.gif',16,16,'','imgmid')+" <a onclick='p_group.card.load("+l_id+", "+$p.app.user.id+")' href='#'>"+lg("addInMyGroups")+"</a>");
				}
				if (vars['v3']) l_options.push("<a href='#' onclick='return p_network.suppress("+l_id+")'>"+lg("suppressFromMyNetwork")+"</a>");
				l_s+=p_network.dashboard.buildElement(l_id,l_picture,$p.ajax.getVal(result[i],"longname","str",false,"..."),$p.ajax.getVal(result[i],"username","str",false,"..."),$p.ajax.getVal(result[i],"stat","str",false,""),$p.ajax.getVal(result[i],"description","str",false,""),$p.ajax.getVal(result[i],"keywords","str",false,""),l_options,indef,p_chat.computeActivity($p.ajax.getVal(result[i],'activity','str',false,'x'),$p.ajax.getVal(result[i],'lastconndate','str',false,''),$p.ajax.getVal(result[i],'dbdate','str',false,'')));
			}
		}
		l_s+="</ul><div style='clear: both;float: none;'>";
		l_s+="<div style='text-align: center;background: #c6c3c6;height: 22px;margin-top: 15px;padding-top: 3px;'>";
		
		$p.print("plugindiv", l_s);
		p_network.dashboard.centralAreaShown = "CORP";
		
		p_network.dashboard.refreshKeywords();
	},
	/*
		p_network.dashboard.getUserCorporateGroups : load user corporate groups
	*/
	getUserCorporateGroups:function() 
	{
		if ($p.app.user.id==0)	$('usergroupsdiv').set('html',lg('msgNeedToBeConnectedMenu'));
		else
		{
			navWait("usergroupsdiv");
			$p.ajax.call('xmlnetwork_usercorporategroups.php',
				{
					'type':'load',
					'callback':
					{
						'function':p_network.dashboard.displayUserCorporateGroups
					}
				}
			);
		}
	},
	/*
		p_network.dashboard.displayUserCorporateGroups : display user corporate groups
		inputs : xml response
	*/
	displayUserCorporateGroups:function(response,vars)
	{
		var l_s="";
		var result=response.getElementsByTagName("usergroup");
		if (result.length > 0) {
			p_network.dashboard.labelUsersCorporateGroupList = new Array();
			for (var i=0;i<result.length;i++)
			{
				var l_id=$p.ajax.getVal(result[i],"id","int",false,0);
				var l_label = $p.ajax.getVal(result[i],"name","str",false,"...");
				p_network.dashboard.labelUsersCorporateGroupList[l_id] =l_label;
				l_s+="<a href='#' onclick='p_network.dashboard.getUsersCorporateGroup("+ l_id +")'>"+$p.img('puce.gif')+' '+l_label+"</a><br/>";
			}
		}
		else
		{
			l_s=lg("noGroup");
		}
		$p.print("usergroupsdiv",l_s);

	},
	/*
		p_network.dashboard.getUserWorkingGroups : load user working groups
	*/
	getUserWorkingGroups:function()
	{
		if ($p.app.user.id==0)	$('workinggroupsdiv').set('html',lg('msgNeedToBeConnectedMenu'));
		else
		{
			navWait("workinggroupsdiv");
			$p.ajax.call('xmlnetwork_userworkinggroups.php',
				{
					'type':'load',
					'callback':
					{
						'function':p_network.dashboard.displayUserWorkingGroups
					}
				}
			);
		}
	},
	/*
		p_network.dashboard.displayKeywords : display user keywords
		inputs : xml response
	*/
	displayKeywords:function(response,vars)
	{
		var l_s='';
		
		var result=response.getElementsByTagName("keyword");
		p_network.dashboard.labelKwList = new Array();
		for (var i=0;i<result.length;i++)
		{
			var l_id=$p.ajax.getVal(result[i],"id","int",false,0);
			var l_label = $p.ajax.getVal(result[i],"label","str",false,"...");
			p_network.dashboard.labelKwList[l_id]=l_label;
			if (l_id==p_network.dashboard.filterKw) 
				l_s+="<font color='red'>"+l_label+"</font>&nbsp;";
			else 
				l_s+="<a href='#' onclick='p_network.dashboard.myNetwork("+ l_id +")'>"+l_label+"</a>&nbsp;";
		}
		if (result.length==0)
			l_s+=lg('noTag');

		if (p_network.dashboard.filterKw!=0)
			l_s+="<a href='#' onclick='p_network.dashboard.myNetwork()'><b>"+lg("removeTheFilter")+"</b></a><br/>";

		$p.print("keywordsdiv",l_s);
	},
	/*
		p_network.dashboard.displayUserWorkingGroups : display user working groups
		inputs : xml response
	*/
	displayUserWorkingGroups:function(response, vars)
	{
		var l_s = '<div class="title">'+lg('myGroups')+'</div>';
		var user=response.getElementsByTagName("user");
		if (undefined == user[0]) {
			l_s+=p_groupbook.add.getHtml();
		
			$p.print("workinggroupsdiv",l_s);
			return;
		}

		var userId = $p.ajax.getVal(user[0], "id", "int", false, 0);
		var result=response.getElementsByTagName("workinggroup");
		p_network.dashboard.nbUsersGroups = result.length;

		p_network.dashboard.labelUsersWorkingGroupList = new Array();
		
		for (var i=0;i<result.length;i++)
		{
			var l_id = $p.ajax.getVal(result[i], "id", "int", false, 0);
			var l_label = $p.ajax.getVal(result[i], "name", "str", false,"...");
			var created_by = $p.ajax.getVal(result[i], "created_by", "int", false, 0);
			var v_status = $p.ajax.getVal(result[i], "status", "str", false, "I");

			p_network.dashboard.labelUsersWorkingGroupList[l_id] = l_label;

			l_s+="<a href='#' onclick='p_network.dashboard.getUsersWorkingGroup("+ l_id +", 1)'>"+$p.img('puce.gif')+' ';
			if (userId == created_by) {
				l_s+= "<b>"+l_label+"</b>";
			}
			else {
				if ("I" == v_status) {
					l_s+= "<font color='red'>";
				}
				l_s+=l_label;
				if ("I" == v_status) {
					l_s+= "</font>";
				}
			}
			l_s+="</a>";

			if (userId != created_by) {
				l_s+=" [";
				if ("O" == v_status) {
					l_s+="<a href='#' onclick='p_network.dashboard.quitUserFromWorkingGroup("+ l_id +")'>";
					l_s+= lg("Quit");
					l_s+="</a>"
				}
				else {
					l_s+="<a href='#' onclick='p_groupbook.add.join("+ l_id +")'>";
					if ("I" == v_status) {
						l_s+= "<font color='red'>";
					}
					l_s+= lg("join");
					if ("I" == v_status) {
						l_s+= "</font>";
					}
					
					l_s+="</a>"
				}
				l_s+=" ]";
			}

			l_s+=" [";
			if (userId == created_by) {
				l_s+="<a href='#' onclick=\"p_notebook.open("+ l_id +",'group','"+l_label+"')\">";
				l_s+=lg("Notebook");
			}
			else {
				if ("O" == v_status) {
					l_s+="<a href='#' onclick=\"p_notebook.open("+ l_id +",'group','"+l_label+"')\">";
					l_s+=lg("Notebook");
				}
				else {
					l_s+="<a href='#' onclick='p_network.dashboard.removeUserFromWorkingGroup("+ l_id +")'>";
					l_s+= "<font color='red'>";
					l_s+=lg("reject");
					l_s+= "</font>";
				}
			}
			l_s+="</a>";
			l_s+="]";
			l_s+="<br/>";
		}
		l_s+="</ul><div style='clear: both;float: none;'></div><br />";
		l_s+=p_groupbook.add.getHtml();
		
		
		$p.print("workinggroupsdiv",l_s);
	},
	/*
		p_network.dashboard.getUsers : load users of my network 
		inputs : keyword id (if filtered by keyword)
	*/
	getUsers:function(v_keywordId)
	{
		p_network.dashboard.filterKw=v_keywordId;
		navWait("plugindiv");
		$p.plugin.page='mynetwork';

		var v_title = "";
		if (0==v_keywordId)
		{
			$p.plugin.menu([{'id':1,'title':lg("peopleToMyNetwork"),'icon':'','fct':'','isLink':false}]);
		}
		else
		{
			$p.plugin.menu([{'id':1,'title':lg("peopleToMyNetworkWithTag")+"&nbsp;"+p_network.dashboard.labelKwList[v_keywordId ],'icon':'','fct':'','isLink':false}]);
		}
		$p.ajax.call('xmlnetwork_users.php?kwid='+v_keywordId,
			{
				'type':'load',
				'callback':
				{
					'function':p_network.dashboard.displayUsers,
					'variables':
					{
						'v0':'',
						'v1':true,
						'v2':true,
						'v3':true,
						'v4':false
					}
				}
			}
		);
	},
	/*
		p_network.dashboard.loadFollowers : load my followers
	*/
	loadFollowers:function()
	{
		p_network.dashboard.open();
		navWait("plugindiv");
		$p.plugin.menu([{'id':1,'title':lg('peopleThatAddMeInTheirNetwork'),'icon':'','fct':'','isLink':false}]);
		
		$p.ajax.call('xmlnetwork_followers.php',
			{
				'type':'load',
				'callback':
				{
					'function':p_network.dashboard.displayUsers,
					'variables':
					{
						'v0':'',
						'v1':false,
						'v2':true,
						'v3':false,
						'v4':true
					}
				}
			}
		);
	},
	/*
		p_network.dashboard.loadDirectory : load users directory
		inputs : user first letter (if filtered by first letter)
	*/
	loadDirectory:function(v_initial,v_page)
	{
		p_network.dashboard.open();
		if ($p.app.user.id==0)	$('plugindiv').set('html',lg('msgNeedToBeConnectedPage'));
		else
		{
			var l_menuItems=[{'id':1,'title':lg('usersDirectory'),'icon':'','fct':'','isLink':false}];
			l_menuItems.push({'id':1,'title':'.','icon':'','fct':'p_network.dashboard.loadDirectory()','isLink':true});
			for (var i=0;i<26;i++) l_menuItems.push({'id':1,'title':String.fromCharCode(97+i),'icon':'','fct':'p_network.dashboard.loadDirectory(\''+String.fromCharCode(97+i)+'\')','isLink':true});
			$p.plugin.menu(l_menuItems);
			navWait("plugindiv");
			$p.ajax.call('xmlnetwork_directory.php?page='+v_page+(v_initial==indef?'':'&i='+v_initial),
				{
					'type':'load',
					'callback':
					{
						'function':p_network.dashboard.displayUsers,
						'variables':
						{
							'title':lg("usersDirectory"),
							'v1':false,
							'v2':true,
							'v3':false,
							'v4':true,
							'initial':v_initial,
							'page':v_page
						}
					}
				}
			);
		}
		return false;
	},
	/*
		p_network.dashboard.initNetworkNews : init network NEWS FEED page
	*/
	initNetworkNews:function()
	{
		p_network.dashboard.open();
		$p.plugin.menu([{'id':1,'title':lg('newOfYourNetwork'),'icon':'','fct':'','isLink':false}]);
        $p.plugin.content("<div id='plugindiv'>"+lang["noActivity"]+"</div>");
		p_network.information.summaryLoadNetwork();
	},
	/*
		p_network.dashboard.displayUsers : display users list in the central area
		inputs : xml response
	*/
	displayUsers:function(response,vars)
	{
		var l_s='';
		var result=response.getElementsByTagName("user");
		if (result.length==0 && p_network.dashboard.filterKw!=0){p_network.dashboard.load();return;}
		l_s+="<ul class='card-outer'>";

		if (0==p_network.dashboard.filterKw)  {
			p_network.dashboard.nbUsersInMyNetwork=result.length;
		}

		var l_iter=_min(result.length,18);
		if (l_iter==0)
		{
			l_s+=lg("emptyList");
		}
		else
		{
			for (var i=0;i<l_iter;i++)
			{
				var l_id=$p.ajax.getVal(result[i],"id","int",false,0);
				var l_picture=$p.ajax.getVal(result[i],"picture","str",false,"");
				if (l_picture=="") l_picture="nopicture.gif";
				var l_options=[];
				if($p.app.user.id != l_id && __useSharing) {
					l_options.push($p.img('ico_group_add.gif',16,16,'','imgmid')+" <a onclick='p_group.card.load("+l_id+", "+$p.app.user.id+")' href='#'>"+lg("addInMyGroups")+"</a>");
				}
				//if (vars['v1']) l_options.push("<a href='#' onclick='p_network.card.load("+l_id+",false)'>"+lg("modify")+"</a>");
				//if (vars['v4']) l_options.push("<a href='#' onclick='p_network.card.load("+l_id+")'>"+lg("add")+"/"+lg("modify")+" </a>");
				if (vars['v3']) l_options.push("<a href='#' onclick='return p_network.suppress("+l_id+")'>"+lg("suppressFromMyNetwork")+"</a>");
				l_s+=p_network.dashboard.buildElement(l_id,l_picture,$p.ajax.getVal(result[i],"longname","str",false,"..."),$p.ajax.getVal(result[i],"username","str",false,"..."),$p.ajax.getVal(result[i],"stat","str",false,""),$p.ajax.getVal(result[i],"description","str",false,""),$p.ajax.getVal(result[i],"keywords","str",false,""),l_options,indef,p_chat.computeActivity($p.ajax.getVal(result[i],'activity','str',false,''),$p.ajax.getVal(result[i],'lastconndate','str',false,''),$p.ajax.getVal(result[i],'dbdate','str',false,'')));
			}
		}
		l_s+="</ul><div style='clear: both;float: none;'></div>";
		l_s+="<div style='text-align: center;background: #c6c3c6;height: 22px;margin-top: 15px;padding-top: 3px;'>";
		var l_page=vars['page']==indef?0:vars['page'].toInt();
		if (l_page!=0) l_s+="<a href='#' onclick='p_network.dashboard.loadDirectory("+vars['initial']+","+(l_page-1)+")'>"+$p.img('ico_previous2.gif',12,11,'','imgmid')+" "+lg("previous")+"</a> &nbsp; ";
		l_s+=lg("page")+" "+(l_page+1);
		if (result.length>18) l_s+=" &nbsp; <a href='#' onclick='p_network.dashboard.loadDirectory("+vars['initial']+","+(l_page+1)+")'>"+lg("next")+" "+$p.img('ico_next2.gif',12,11,'','imgmid')+"</a>";
		l_s+="</div>";
		
		$p.print("plugindiv",l_s);
		p_network.dashboard.centralAreaShown = "USERS";
	},
	/*
		p_network.dashboard.refresh : refresh users list
	*/
	refresh:function(){
		if ("USERS" == p_network.dashboard.centralAreaShown)
		{
			p_network.dashboard.getUsers(p_network.dashboard.filterKw);
		}
		else if ("CORP" == p_network.dashboard.centralAreaShown) {
			p_network.dashboard.getUsersCorporateGroup(p_network.dashboard.filterUsersCorporateGroup);
		}
		else {
			p_network.dashboard.getUsersWorkingGroup(p_network.dashboard.filterUsersWorkingGroup);
		}
	},
	/*
		p_network.dashboard.refreshKeywords : refresh user keywords list
	*/
	refreshKeywords:function() {
		p_network.dashboard.filterKw = 0;
		p_network.dashboard.getkeywords();
	},
	/*
	 *	p_network.dashboard.removeUserFromWorkingGroup : Remove user from working group
	 */
	removeUserFromWorkingGroup:function(v_group_id)
	{
		$p.ajax.call('scr_groupbook_add.php',
			{
				'type':'execute',
				'variables':'act=del&id='+v_group_id,
				'alarm':false,
				'forceExecution':false,
				'callback':
				{
					'function':p_network.dashboard.getUserWorkingGroups
				}
			}
		);

	}, 
	/*
	 *	p_network.dashboard.quitUserFromWorkingGroup : User unsubscribe working group
	 */
	quitUserFromWorkingGroup:function(v_group_id) 
	{
		$p.ajax.call('scr_groupbook_add.php',
			{
				'type':'execute',
				'variables':'act=quit&id='+v_group_id,
				'alarm':false,
				'forceExecution':false,
				'callback':
				{
					'function':p_network.dashboard.getUserWorkingGroups
				}
			}
		);
	},
	/*
		p_network.dashboard.loadRecommended : load recommended peoples
	*/
	loadRecommended:function(v_page)
	{
		if (v_page==indef) v_page=0;
		p_network.dashboard.open();
		if ($p.app.user.id==0)	$('plugindiv').set('html',lg('msgNeedToBeConnectedPage'));
		else
		{
			navWait("plugindiv");
			$p.plugin.menu([{'id':1,'title':lg('recommendedUsers'),'icon':'','fct':'','isLink':false}]);
			
			$p.ajax.call('xmlnetwork_recommendations.php?p='+v_page,
				{
					'type':'load',
					'callback':
					{
						'function':p_network.dashboard.displayRecommended,
						'variables':
						{
							'page':v_page
						}
					}
				}
			);
		}
	},
	displayRecommended:function(response,vars)
	{
		var l_s='',l_excluded=[];

		var result1=response.getElementsByTagName("excluded");

		for (var i=0;i<result1.length;i++)
		{
			l_excluded.push($p.ajax.getVal(result1[i],"id","int",false,0));
		}

		var result=response.getElementsByTagName("user");

		var l_users=[],l_nextpage=false;
		for (var i=0;i<result.length;i++)
		{
			var l_id=$p.ajax.getVal(result[i],"id","int",false,0);
			if (l_id==$p.app.user.id) break;
			var l_picture=$p.ajax.getVal(result[i],"picture","str",false,"");
			if (l_picture=="") l_picture="nopicture.gif";
			var l_name=$p.ajax.getVal(result[i],"longname","str",false,"...");
			var l_email=$p.ajax.getVal(result[i],"username","str",false,"...");
			var l_status=$p.ajax.getVal(result[i],"stat","str",false,"");
			var l_description=$p.ajax.getVal(result[i],"description","str",false,"");
			var l_kw=$p.ajax.getVal(result[i],"keywords","str",false,"");
			var l_rel=$p.ajax.getVal(result[i],"nbrel","str",false,0);
			var l_type=$p.ajax.getVal(result[i],"type","str",false,'');
			if (l_id!=$p.app.user.id && l_excluded.indexOf(l_id)==-1)
			{
				l_users.push({'id':l_id,'picture':l_picture,'name':l_name,'email':l_email,'status':l_status,'desc':l_description,'kw':l_kw,'rel':l_rel,'type':l_type});
			}

			if (l_users.length==18 && i<result.length-1)
			{
				l_nextpage=true;
			}

			if (l_nextpage) break;
		}

		if (l_users.length==0)
		{
			l_s+=lg("noRecommendation");
		}
		else
		{
			l_s+="<ul class='card-outer'>";
			for (var i=0;i<l_users.length;i++)
			{
				var l_options=[l_users[i].rel+" <font color='red'>"+(l_users[i].type=='tag'?lg('commonTags'):lg('commonRelations'))+"</font>",$p.img('ico_friend_add.gif',16,16,'','imgmid')+" <a href='#' onclick='p_network.card.load("+l_users[i].id+")'>"+lg("add")+"/"+lg("modify")+" </a>"];
				l_s+=p_network.dashboard.buildElement(l_users[i].id,l_users[i].picture,l_users[i].name,l_users[i].email,l_users[i].status,l_users[i].desc,l_users[i].kw,l_options,indef,indef);
			}
			l_s+="</ul><div style='clear: both;float: none;'></div>";
		}

		l_s+="<div style='clear: both;float: none;text-align: center;background: #c6c3c6;height: 22px;margin-top: 15px;padding-top: 3px;'>";
		var l_page=vars['page']==indef?0:vars['page'].toInt();
		if (l_page!=0) l_s+="<a href='#' onclick='p_network.dashboard.loadDirectory("+vars['category']+","+(l_page-1)+")'>"+$p.img('ico_previous2.gif',12,11,'','imgmid')+" "+lg("previous")+"</a> &nbsp; ";
		l_s+=lg("page")+" "+(l_page+1);
		if (l_nextpage) l_s+=" &nbsp; <a href='#' onclick='p_network.dashboard.loadDirectory("+vars['category']+","+(l_page+1)+")'>"+lg("next")+" "+$p.img('ico_next2.gif',12,11,'','imgmid')+"</a>";
		l_s+="</div>";

		$p.print("plugindiv",l_s);
		p_network.dashboard.centralAreaShown = "USERS";
	}
}
p_network.add={
	/*
		p_network.add.search : search user
		inputs : form containing searched string
	*/
	search:function(v_form)
	{
		if ($p.app.user.id==0) 
		{
			$p.app.alert.show(lg('msgNeedToBeConnectedMenu'));
			v_form.searchtxt.value="";
		}
		else
		{
			var l_email=_lc(v_form.searchtxt.value);
			if (l_email.length<4)
			{
				$p.app.alert.show(lg('4caractMin'));
				return false;
			}
			$p.ajax.call('xmlnetwork_search.php?p=0&type='+(checkEmail(l_email)?'m':'t')+'&search='+l_email,
				{
					'type':'load',
					'callback':
					{
						'function':p_network.add.results
					}
				}
			);
		}
		return false;
	},
	/*
		p_network.add.results : display searched user results
		inputs : xml response
	*/
	results:function(response,vars)
	{
		var l_result=response.getElementsByTagName("user");
		if (l_result.length==0)
		{
			$p.app.alert.show(lg("noResultForThisSearch"));
		}
		else if (l_result.length==1)
		{
			p_network.card.load($p.ajax.getVal(l_result[0],"id","int",false,0));
		}
		else
		{
			var l_s=''
				+'<br />'
				+'<div style="'+(l_result.length>10?'overflow:auto;height:100px;width:100%;':'')+'">'
				+'<table>';

			for (var i=0;i<l_result.length;i++)
			{
				l_id=$p.ajax.getVal(l_result[i],"id","int",false,0);
				var l_picture=$p.ajax.getVal(l_result[i],"picture","str",false,"");
				if (l_picture=="") l_picture="nopicture.gif";
				l_s+='<tr>'
					+'<td>'
					+$p.img(l_picture,48,48)
					+'</td>'
					+'<td>'
					+$p.ajax.getVal(l_result[i],"name","str",false,"no name")+'<br />'
					+'<a href="#" onclick="p_network.card.load('+l_id+')">'+lg('addToMyNetwork')+'</a>'
					+'</td>'
					+'</tr>';
			}
			l_s+='</table>'
				+'</div>'
				+'<br />'
				+'<a href="#" onclick="$p.app.popup.hide()">'+lg('cancel')+'</a>';

			$p.app.popup.show(l_s,500,indef,lg("addPeopleToMyNetwork"));
		}
	}
}
var p_group={
	/*
	 * p_group.selected : get all selected groups
	 * */
	 selected:function(v_form){
	 	var v_tGroup = new Array();
		if(v_form.elements['group[]'] != undefined)
		{
			for(i=0; i<v_form.elements['group[]'].length; i++)
			{
				if(v_form.elements['group[]'][i].checked)
				{
					v_tGroup[v_tGroup.length] = v_form.elements['group[]'][i].id;
				}
			}
		}else{
			if(v_form.elements['group']!= undefined && v_form.elements['group'].checked)
			{
				v_tGroup[v_tGroup.length] = v_form.elements['group'].id;
			}
		}
		return v_tGroup;
	 }
}
p_group.card={
	/*
		p_group.card.load : load user information
		inputs :
			v_id : user ID
			v_loggedId : user logged ID
			v_add : true=the user is not yet in my network, false=the user is in my network
	*/
	load:function(v_id,v_loggedId,v_add)
	{
		v_add= false;
		$p.ajax.call('xmlnetwork_userdetail.php?id='+v_id,
			{
				'type':'load',
				'callback':
				{
					'function':p_group.card.show,
					'variables':
					{
						'id':v_id,
						'logid':v_loggedId,
						'add':v_add
					}
				}
			}
		);
	},
	/*
		p_group.card.show : display user information in popup
		inputs : xml response
			vars :
				[1] : user Id
				[2] : logged user Id
				[3] : add boolean value
	*/
	show:function(response,vars)
	{
		var l_s='',l_name=$p.ajax.getVal(response,"longname","str",false,"no name");
		if (vars['logid']==indef) var l_add=$p.ajax.getVal(response,"new","int",false,1);
		var l_picture=$p.ajax.getVal(response,"picture","str",false,"");
		if (l_picture=="") l_picture="nopicture.gif";
		l_s+='<br />'
			+'<table>'
			+'<tr>'
			+'<td valign="top">'+$p.img(l_picture,64,64,'','picture')+'</td>'
			+'<td valign="top">'+$p.ajax.getVal(response,'username','str',false,'')+'<br /><br /><a href="#" onclick=\'p_notebook.open('+vars['id']+',"index","'+l_name+'")\'>'+$p.img("ico_notebook.gif",16,16,"","imgmid")+' '+lg("seeHisNotebook")+'</a></td>'
			+'</tr>'
			+'</table>';
		
		//get user keywords
		var l_kw=[],l_result=response.getElementsByTagName("keyword");
		for (var i=0;i<l_result.length;i++)
		{
			l_kw.push(l_result[i].firstChild.nodeValue);
        }
    
        var l_group=$p.ajax.getVal(response,"group","int",false,0);
        if (l_group>0) {
    		l_s+='<br />'+lg('selectGroupsInWhichYouInvite')+' '+l_name+':'
				+'<br /><form name="frmLstGrp" onsubmit="return p_group.card.save(this);">'
				+'<div id="sharegroups"></div>'
				+'<center><input type="hidden" name="uid" value="'+vars['id']+'" />'
				+'<input type="submit" id="btnAdd"  value="'+lg('add')+'" class="submit" /> '
				+'<input type="button" class="btn" onclick="$p.app.popup.hide()" value="'+lg('cancel')+'" />'
				+'<br/>'
				+'</form>'
				+'</center>'
				+'<br />';
            p_friends.loadGroups('btnAdd', vars['id']);
        }
        else
		{
            l_s+='<br />'
				+lg('noGroupRightsRequired')+'<br /><br />'
				+'<center>'
				+'<input type="button" class="btn" onclick="$p.app.popup.hide()" value="'+lg('cancel')+'" />'
				+'</center>';
        }
	
		var l_t = lg("Invite")+" " + l_name+" "+lg("inGroups");

		if (_gel("popupcontent")==null)
		{
			$p.app.popup.show(l_s,500,indef,l_t);
		}
		else
		{
			$p.print('popupcontent',l_t);
		}
	},
	/*
		p_group.card.save : save user in a group 
		inputs :
			v_form : form containing updated information
	*/
	save:function(v_form)
	{
		var l_vars=[];
		var j = 0;
		var v_tGroup = p_group.selected(v_form);
		
		for(i=0; i<v_tGroup.length; i++)
		{
			l_vars.push("gId"+j+"="+v_tGroup[i]);
			j++;
		}

		if (j > 0)
		{
			$p.ajax.call('scr_group_adduser.php',
				{
					'type':'execute',
					'variables':'id='+v_form.uid.value+'&'+l_vars.join("&"),
					'alarm':false,
					'forceExecution':false,
					'callback':
					{
						'function':p_group.card.addConfirmation
					}
				}
			);

		}
		else 	$p.app.alert.show(lg("youHaveToSelectOneGroup"), 1);
		
		return false;
	},
	/*
		p_group.card.addConfirmation : send confirmation that user has been added in groups 
	*/
	addConfirmation:function()
	{
		$p.app.alert.show(lg('userAddedInGroups'));
		$p.app.popup.hide();
	}
}
p_network.card={
	/*
		p_network.card.load : load user information
		inputs :
			v_id : user ID
			v_add : true=the user is not yet in my network, false=the user is in my network
	*/
	load:function(v_id,v_add)
	{
        $p.ajax.call('xmlnetwork_userdetail.php?id='+v_id,
			{
				'type':'load',
				'callback':
				{
					'function':p_network.card.show,
					'variables':
					{
						'id':v_id,
						'add':v_add
					}
				}
			}
		);
	},
	/*
		p_network.card.show : display user information in popup
		inputs : xml response
	*/
	show:function(response,vars)
	{
		var l_s="",l_name=$p.ajax.getVal(response,"longname","str",false,"no name");
		var l_add=(vars['add']==indef?$p.ajax.getVal(response,"new","int",false,1):vars['add']);
		var l_picture=$p.ajax.getVal(response,"picture","str",false,"");
	
		if (l_picture=="") l_picture="nopicture.gif";

		l_s+='<br />'
			+'<table>'
			+'<tr>'
			+'<td valign="top">'
			+$p.img(l_picture,64,64,"","picture")
			+'</td>'
			+'<td valign="top">'
			+$p.ajax.getVal(response,"username","str",false,"")
			+'<br /><br />'
			+(__useSharing?"<a href='#' onclick=\"p_notebook.open("+vars['add']+",'index','"+l_name+"')\">"+$p.img("ico_notebook.gif",16,16,"","imgmid")+" "+lg("seeHisNotebook")+"</a>":"")
			+'</td>'
			+'</table>';
	
		//get user keywords
		var l_kw=[],l_result=response.getElementsByTagName("keyword");
		for (var i=0;i<l_result.length;i++)
		{
			l_kw.push(l_result[i].firstChild.nodeValue);
		}
		
		l_s+="<br /><form onsubmit='return p_network.card.save(this,"+l_add+")'>"
            +"<input type='hidden' name='uid' value='"+vars['id']+"' />"
			+lg("tags")+" "+tooltip("helpTagsPeople")+"<br />"
            +"<input type='text' id='networktagsinput' name='keywords' maxlength='250' value=\""+l_kw.join(",")+"\" onkeyup=\"$p.tags.autocompletion.get('networktagsinput')\" onblur='$p.tags.autocompletion.hide()' style='width: 470px' /><br /><br />"
			+lg("description")+"<br />"
            +"<textarea name='description' style='width: 470px' rows='6'>"+$p.ajax.getVal(response,"description","str",false,"")+"</textarea><br /><br />"
			+"<center><input type='submit' value='"+(l_add==1?lg("addToMyNetwork"):lg("modify"))+"' class='submit' /> "
            +"<input type='button' class='btn' onclick='$p.app.popup.hide()' value='"+lg("cancel")+"' />"
            +"</center>"
			+"</form><br /><br />";

		if (_gel("popupcontent")==null)
		{
			$p.app.popup.show(l_s,600,indef,l_name);
		}
		else
		{
			$p.print("popupcontent",l_s);
		}              
	},
	/*
		p_network.card.save : save network user changes
		inputs :
			v_form : form containing updated information
			v_add : is the user new or not in my network (1=new)
	*/	
	save:function(v_form,v_add)
	{   
		var l_keywords=$p.tags.formatList(v_form.keywords.value);
		$p.ajax.call('scr_network_adduser.php',
			{
				'type':'execute',
				'variables':'act='+(v_add==1?'add':'upd')+'&id='+v_form.uid.value+'&kw='+l_keywords+'&kwformated='+$p.string.formatForSearch(l_keywords)+'&desc='+v_form.description.value,
				'alarm':false,
				'forceExecution':false,
				'callback':
				{
					'function':((v_add==1)?p_network.card.addSuccess:p_network.card.close)
				}
			}
		);
		return false;
	},
	/*
		p_network.card.addSuccess : user has been added successfully in network
		inputs :
			v_form : form containing updated information
			v_add : is the user new or not in my network
	*/
	addSuccess:function()
	{
		p_network.dashboard.nbUsersInMyNetwork++;
		$p.app.alert.show(lg("peopleAddedToNetwork"));
		p_network.card.close();
		$p.app.menu.refresh();
	},
	/*
		p_network.card.close : close user card
		inputs : user ID
	*/
	close:function(v_id)
	{
        $p.app.popup.hide();
		if ($p.plugin.page=='mynetwork')p_network.dashboard.refresh();
	}
}

/*
	p_network.suppress : suppress a user from my network
	inputs : user ID
*/
p_network.suppress=function(v_id)
{
	var l_input=confirm(lg("confirmUserRemove"));
	if (l_input==1)
	{
		$p.ajax.call('scr_network_removeuser.php',
			{
				'type':'execute',
				'variables':'id='+v_id,
				'alarm':false,
				'forceExecution':false,
				'callback':
				{
					'function':p_network.dashboard.refresh
				}
			}
		);
		p_network.dashboard.nbUsersInMyNetwork--;
        ($p.app.menu.isOpen!=indef)?$p.app.menu.refresh():'';
	}
	return false;
}
p_network.information={
	/*
		p_network.information.summary : init NEWS FEED
		inputs : container for summary information
	*/
	summary:function(v_div)
	{
		if (v_div==indef) v_div='plugindiv';
		p_network.information.summaryLoadNetwork(15,0,v_div);
	},
	/*
		p_network.information.menu : information of my network menu
	*/
	menu:function()
	{
		$p.app.menu.addTitle('networkinfomenu_1','',lg("myNetwork"));
		$p.app.menu.addArea('networkinfomenu_1',$p.img('puce.gif')+'<a href="#" onclick="p_network.information.display();return false;">'+lg('latestNews')+'</a><br />');

		$p.app.menu.openSubMenu('networkinfomenu_1',true);
	},
	open:function()
	{
		if ($p.app.env!='info')
			p_network.init(lg('myInfo'),'info');
		
		$p.plugin.content("<div id='plugindiv'></div>");
	},
	/*
		p_network.information.summaryLoad : load my profile
	*/
	summaryLoad:function()
	{
		$p.ajax.call('xmlnetwork_myprofile.php?id=1',
			{
				'type':'load',
				'callback':
				{
					'function':p_network.information.profile
				}
			}
		);
	},
	/*
		p_network.information.profile : display my profile
		inputs : xml response
	*/
	profile:function(response,vars)
	{
		var l_picture=$p.ajax.getVal(response,"picture","str",false,"");
		$p.print("mypicture","<img src='"+(l_picture==""?"../images/nopicture.gif":l_picture)+"' width='36' height='36' class='picture' /></td>");
		if (document.forms["stats"])
		{
			var l_status=$p.ajax.getVal(response,"stat","str",false,"");
			if (l_status=="") l_status=lg("myStatus")+" ...";
			document.forms["stats"].stat.value=l_status;
		}
		p_network.information.summaryLoadNetwork();
	},
	/*
		p_network.information.display : load my network last news
	*/
	display:function()
	{
		p_network.init();
        $p.plugin.menu([{'id':1,'title':lg('latestNews'),'icon':'','fct':'','isLink':false}]);
		$p.plugin.content("<div id='plugindiv'>"+lang["noNewsOfYourNetwork"]+"</div>");
		if ($p.app.user.id==0)	
			$('plugindiv').set('html',lg('msgNeedToBeConnectedPage'));
		else
			p_network.information.summaryLoadNetwork();
	},
	/*
		p_network.information.summaryLoadNetwork : load network NEWS FEED
	*/
	summaryLoadNetwork:function(v_nb,v_page,v_div)
	{
		if (v_nb==indef) v_nb=40;
		if (v_page==indef) v_page=0;

		$p.ajax.call('xmlnetwork_summary.php?nb='+v_nb+'&p='+v_page,
			{
				'type':'load',
				'callback':
				{
					'function':p_network.information.summaryDisplay,
					'variables':
					{
						'nb':v_nb,
						'page':v_page,
						'divid':v_div
					}
				}
			}
		);
	},
	/*
		p_network.information.summaryDisplay : display NEWS FEED
		inputs : xml response
	*/
	summaryDisplay:function(response,vars)
	{
		var l_s='<h2>'+$p.img('mynetwork.gif',16,16,'','imgmid')+' '+lg('myNetwork')+'</h2><br />';
		var l_div=(vars['divid']==indef?'plugindiv':vars['divid']);

		var l_result=response.getElementsByTagName("update");
		if (l_result.length>0)
		{
			var l_previousDate,l_currentDate;
			for (var i=0;i<_min(l_result.length,vars['nb']);i++)
			{
				l_currentDate=$p.date.formatDateLong($p.date.convertFromDb($p.ajax.getVal(l_result[i],"pubdate","str",false,"")));
				if (l_previousDate!=l_currentDate)
				{
					//l_s+="<div class='subtitle' style='clear: left;margin: 6px 0 4px 0;'>"+l_currentDate+"</div>";
					l_s+="<div class='subtitle' style='clear: left;margin: 6px 0 4px 0;'>"+l_currentDate+"</div>";
					l_previousDate=l_currentDate;
				}
				var l_picture=$p.ajax.getVal(l_result[i],"picture","str",false,"");
				if (l_picture=="") l_picture="nopicture.gif";
				var l_id=$p.ajax.getVal(l_result[i],"userid","int",false,0);
				var l_type=$p.ajax.getVal(l_result[i],"type","int",false,2);
				var l_link=$p.ajax.getVal(l_result[i],"link","str",false,"");
				l_s+="<div style='clear: both;float: none;'>";
				l_s+="<div style='margin: 2px;float: left;'><a href='#' onclick='p_network.card.load("+l_id+",false)'>"+$p.img(l_picture,28,28,"","picture")+"</a></div>";
				//l_s+="<a href='#' onclick='p_network.card.load("+l_id+",false)'><b>"+$p.ajax.getVal(l_result[i],"long_name","str",false,"???")+"</b></a> "+lg("txtNetSummary"+l_type)+" "+(l_link==""?"":"<a href='"+l_link+"'"+((l_type==1||l_type==2)?" target='_blank'":"")+">")+"<b>"+$p.ajax.getVal(l_result[i],"title","str",false,"...")+"</b>"+(l_link==""?"":"</a>");
				l_s+="<a href='#' onclick='p_network.card.load("+l_id+",false)'><b>"+$p.ajax.getVal(l_result[i],"long_name","str",false,"???")+"</b></a> "+lg("txtNetSummary"+l_type)+" "+(l_link==""?"":"<a href='"+l_link+"' target='_blank'>")+"<b>"+$p.ajax.getVal(l_result[i],"title","str",false,"...")+"</b>"+(l_link==""?"":"</a>");
				l_s+="</div>";
			}
			l_s+="<div style='clear: both;float: none;'></div>";

			l_s+='<div style="text-align: right">';
			
			if (vars['page']!=0) 
				l_s+='<a href="#" onclick=\'p_network.information.summaryLoadNetwork('+vars['nb']+','+(vars['page']-1)+',"'+vars['divid']+'");return false;\'>'+$p.img('ico_previous2.gif',12,11,'','imgmid')+' '+lg('previous')+'</a> &nbsp; ';
			if (l_result.length>vars['nb'])
				l_s+='<a href="#" onclick=\'p_network.information.summaryLoadNetwork('+vars['nb']+','+(vars['page']+1)+',"'+vars['divid']+'");return false;\'>'+lg('next')+' '+$p.img('ico_next2.gif',12,11,'','imgmid')+'</a>';
				
			l_s+='</div>';

		}
		else
		{
			l_s+="<b>"+lg("noNewsOfYourNetwork")+"</b>";
			l_s+="</ul><div style='clear: both;float: none;'>";
			l_s+="<div style='text-align: center;background: #c6c3c6;height: 22px;margin-top: 15px;padding-top: 3px;'></div>";
		}
		$p.print(l_div,l_s);
	},
	myNews:function()
	{
		p_network.init();
		$p.plugin.menu([{'id':1,'title':'myContributions','icon':'ico_write.gif','fct':'','isLink':false}]);
		$p.plugin.content('<div id="mynewsdiv"></div>');

		$p.ajax.call('xmlnetwork_mysummary.php',
			{
				'type':'load',
				'callback':
				{
					'function':p_network.information.myNewsDisplay
				}
			}
		);
		return false;
	},
	myNewsDisplay:function(response,vars)
	{
		var l_s=lg('myContributionDesc')+'<br /><br />';
		var l_result=response.getElementsByTagName("update"),l_date,l_prevdate;
		if (l_result.length>0)
		{
			for (var i=0;i<l_result.length;i++)
			{
				var l_id=$p.ajax.getVal(l_result[i],"id","int",false,0);
				var l_type=$p.ajax.getVal(l_result[i],"type","int",false,2);
				var l_link=$p.ajax.getVal(l_result[i],"link","str",false,"");
				l_date=$p.date.formatDateLong($p.date.convertFromDb($p.ajax.getVal(l_result[i],"pubdate","str",false,"")),false);
				if (l_date!=l_prevdate) l_s+="<div class='subtitle'>"+l_date+" :</div>";
				l_prevdate=l_date;
				l_s+="<b>"+$p.app.user.name+"</b> "+lg("txtNetSummary"+l_type)+" "+(l_link==""?"":"<a href='"+l_link+"'"+(l_type==2?" target='_blank'":"")+">")+"<b>"+$p.ajax.getVal(l_result[i],"title","str",false,"...")+"</b>"+(l_link==""?"":"</a>")+" - <a href='#' onclick='p_network.information.suppress("+l_id+")' title='"+lg('stopSharing')+"'>"+lg('suppress')+"</a><br />";

			}
		} else 
			{
			l_s+="<b>"+lg("noNews")+"</b>";
			l_s+="</ul><div style='clear: both;float: none;'>";
			l_s+="<div style='text-align: center;background: #c6c3c6;height: 22px;margin-top: 15px;padding-top: 3px;'></div>";
			}
		
		$p.print("mynewsdiv",l_s);
	},
	/*
		p_network.information.suppress : suppress a network news
		input : 
			v_id : id of the news to suppress
	*/
	suppress:function(v_id)
	{
		l_input=confirm(lg("areYouSureToSuppressNews"));
		if (l_input==1)
		{
			$p.ajax.call('scr_supnews.php',
				{
					'type':'execute',
					'variables':'id='+v_id,
					'alarm':true,
					'forceExecution':true,
					'callback':
					{
						'function':p_network.information.myNews
					}
				}
			);
		}	
	}
}

var p_groupbook={

	open:function(v_groupId)
	{
		p_notebook.open(v_groupId,'group');
	},
	
	/*
		p_groupbook.trackback : get an article in my own groupbook
		inputs : 
		* v_articleId : article id 
		* v_ownerId  : article's owner 
		* v_value : accesslevel action to do 
	*/
	trackback:function(v_articleid, v_ownerid, v_value)
	{
		$p.ajax.call('../notebook/scr_groupbook_trackback.php',
			{
				'type':'execute',
				'variables':'artid='+v_articleid+'&owner='+v_ownerid+'&source='+v_value,
				'alarm':false,
				'forceExecution':false,
				'callback':
				{
					'function':p_groupbook.trackbackSuccess
				}
			}
		);
		
		return false;
	},	
	
	/*
		p_groupbook.trackbackSuccess : message when the article is saved in my groupbook
	*/
	trackbackSuccess:function()
	{
		$p.app.alert.show(lg("trackbackSuccess"));
//		link();
	}
}
p_groupbook.add={
	isError:0,
	/*
                    Function: p_groupbook.add.getHtml
                        build form to add new group
                        
                    Returns: 
                        add groupbook form
	 */
	getHtml:function()
	{
		var	l_s='<div class="title">'+lg('addGroup')+'</div>'
			+'<div class="highlight">'
            +"<form name='frmGroupNotebook' onsubmit='return p_groupbook.add.insert(this);' >"
			+$p.img('ico_group_add.gif',16,16,'','imgmid')+'&nbsp;'
			+'<input type="text" name="txtNewNotebookGroup" maxlength="100" style="color: #aaaaaa;width: 200px;" onFocus=\'$p.navigator.inputFocus(this,"'+lg('Name')+'")\' onBlur=\'$p.navigator.inputLostFocus(this,"'+lg('Name')+'");\' value="'+lg('Name')+'" />'
			+'<br/><br/>'
			+'<input type="checkbox" name="chkPrivate" value="1" >' + lg('IamTheOnlyOneToAddMembers')+'<br/><br/>'
			+'<input style="margin-left:100px;" type="submit" class="submit" name="btnAdd" value="' + lg('add')+'" onclick="p_groupbook.add.isExists();">'
			+'</form>'
			+'</div>';

		return l_s;		
	},

	/*
	 * p_groupbook.add.isExists : check if captured name notebook group is already exist or not
	 */
	isExists:function() {
		var v_newNotebook = document.forms["frmGroupNotebook"].txtNewNotebookGroup.value;
		 
		if ("" != _trim(v_newNotebook)) {
			$p.ajax.call('xmlgroupbook_exists.php?name='+v_newNotebook,
				{
					'type':'load',
					'callback':
					{
						'function':p_groupbook.add.initExist
					}
				}
			);
		}
		else
		{
			p_groupbook.add.isError = 1;
			$p.app.alert.show(lg("mandatoryNotebookName"));
		}
		return false;
	},

	initExist:function(response,vars)
	{
		p_groupbook.add.isError = $p.ajax.getVal(response, "exist", "int", true, 0);
		if(p_groupbook.add.isError!=0)
			$p.app.alert.show(lg("alreadyExists"));		
	},

	/*
	 * p_groupbook.add.insert : insert new notebook group in database
	 */
	insert:function(v_form)
	{

		if (0==p_groupbook.add.isError) {
			var v_newNotebook = v_form.txtNewNotebookGroup.value;
			var v_chkPrivate = (true==v_form.chkPrivate.checked)?1:0;

			$p.ajax.call('scr_groupbook_add.php',
				{
					'type':'execute',
					'variables':'act=add&pv='+v_chkPrivate+'&name='+v_newNotebook,
					'alarm':false
				}
			);

			p_network.dashboard.getUserWorkingGroups();
		}
		return false;
	},
	/*
	 * p_groupbook.add.join : user join to notebook group
	 *  input : notebook group id
	 */
	join:function(v_groupId)
	{
		$p.ajax.call('scr_groupbook_add.php',
			{
				'type':'execute',
				'variables':'act=join&id='+v_groupId,
				'alarm':false,
				'forceExecution':false,
				'callback':
				{
					'function':p_network.dashboard.getUserWorkingGroups
				}
			}
		);
	}
}
p_groupbook.profile={
	desc:"",
	/*
		p_groupbook.profile.getDesc : display my profile formated description 
		inputs : define if the description is truncated or not
	*/
	getDesc:function(v_trunc)
	{
		var l_desc=(v_trunc && p_groupbook.profile.desc.length>150)?p_groupbook.profile.desc.substr(0,150)+" ...[<a href='#' onclick='p_groupbook.profile.getDesc(false);return false;'>"+lg("readMore")+"</a>]":p_groupbook.profile.desc;
		$p.print("groupbookdesc",l_desc);
	}
}
p_groupbook.comment={
	/*
		p_groupbook.comment.remove : remove comment
		inputs
			v_id: comment id
	*/
	remove:function(v_id)
	{
		var response=confirm(lg("readyToSuppressComment"));
		if (response!=1) return false;
		$p.ajax.call('../notebook/scr_groupbook_removecomment.php',
			{
				'type':'execute',
				'variables':'id='+v_id,
				'alarm':true,
				'forceExecution':true,
				'callback':
				{
					'function':p_groupbook.comment.confirmRemove
				}
			}
		);
		return false;
	},
	/*
		p_groupbook.comment.confirmRemove : confirm comment suppression
		input : xml file return
	*/
	confirmRemove:function(v_ret)
	{
		if (v_ret!=indef)
		{
			$p.app.alert.show(lg("modificationApplied"));
			navShow("comment"+v_ret, "none");
		}
	}
}
p_groupbook.sidebar={
	/*
		p_groupbook.sidebar.getArticleTags : get tags list of an article
		input : article id, groupe id
	*/
	getArticleTags:function(v_artId, v_groupId) {
		navWait("tagslistdiv");
		$p.ajax.call('xmlgroupbook_tagsarticle.php?artId='+v_artId+'&gid='+v_groupId,
			{
				'type':'load',
				'callback':
				{
					'function':p_groupbook.sidebar.displayArticleTags,
					'variables':
					{
						'groupid':v_groupId
					}
				}
			}
		);
	},
	
	/*
		p_groupbook.sidebar.displayArticleTags : refresh tags list of an article
	*/
	displayArticleTags:function(response, vars) {
		var result=response.getElementsByTagName("tag");
		l_s="";
		
		if ( result.length > 0)
		{
			for (var i=0; i<result.length; i++)
			{
				var l_id=$p.ajax.getVal(result[i], "id", "int",false,0);
				var l_label=$p.ajax.getVal(result[i],"label","str",false,"");
				var l_nb=$p.ajax.getVal(result[i], "nb", "int",false,0);
				l_s+= "<a href='index.php?id="+vars['groupid']+"&search="+l_label+"&searchid="+l_id+"&type=tag'>"+l_label+"("+l_nb+")</a> &nbsp; ";
			}
		}
		$p.print("tagslistdiv", l_s);
	}
}
p_groupbook.article={
	/*
		p_groupbook.article.setStatus : set access type to groupbook articles
		inputs
			v_id: article id
			v_status : new status
			v_groupId : notebookgroup id
	*/
	setStatus:function(v_id,v_status,v_groupId)
	{
		if (v_status=="D")
		{
			var response=confirm(lg("msgArchSup"));
			if (response!=1) return false;
		}
		$p.ajax.call('../notebook/scr_groupbook_changearticlestatus.php',
			{
				'type':'execute',
				'variables':'id='+v_id+'&status='+v_status+'&group='+v_groupId,
				'alarm':true,
				'forceExecution':true,
				'callback':
				{
					'function':p_groupbook.article.setStatusApplied
				}
			}
		);
	},
	/*
		p_groupbook.article.setStatusApplied :
		input : xml file return
	*/
	setStatusApplied:function(v_ret)
	{
		$p.app.alert.show(lg("modificationApplied"));
		var l_ret=v_ret.split("_");
		navClass("article"+l_ret[0],"notebookarticle"+l_ret[1]);
		if ("D"==l_ret[1]) {
			p_groupbook.sidebar.getArticleTags(l_ret[0], l_ret[2]);
		}
	}
}

var p_notebook={
	opened:[],
	inFrame:false,
	initMenu:function()
	{
		//if ($p.app.user.id>0) $p.app.menu.options.push({"id":"notebook","label":lg("Notebook"),"desc":lg("notebookIconDesc"),"icon":"ico_notebook.gif","seq":30,"action":"","type":"","subOpt":[{"id":"pmenunotebooktoread","label":"myNotebook","seq":0,"action":"p_notebook.open()","pages":[]},{"id":"pmenunotebooktoread","label":"lblArchive","seq":1,"action":"p_notebook.menu()","pages":[]}],"pages":[]});
		if ($p.app.user.id>0) $p.app.menu.options.push({"id":"notebook","label":lg("Notebook"),"desc":lg("notebookIconDesc"),"icon":"ico_notebook.gif","seq":30,"action":"p_notebook.menu()","type":"","subOpt":[],"pages":[]});
	},
	menu:function()
	{
		$p.app.menu.addTitle('notebookinfomenu_1','ico_notebook.gif',lg("myNotebook"));
		var l_s=''
			+'<br />'
			+$p.img('ico_notebook.gif',16,16,'','imgmid')
			+'&nbsp;<a href="#" onclick="p_notebook.open();return false;">'+lg('myNotebook')+'</a>'
			+'<br /><br />'
			+'<div class="title">'+lg('lblArchive')+'</div>'
			+$p.img('puce.gif')
			+'&nbsp;<a href="#" onclick=\'p_notebook.getRecentComments();return false;\'>'+lg('lastComments')+'</a><br />'
			+$p.img('puce.gif')
			+'&nbsp;<a href="#" onclick=\'p_notebook.getmostcommented();return false;\'>'+lg('MostCommented')+'</a>';
		$p.app.menu.addArea('notebookinfomenu_1',l_s);

		$p.app.menu.addTitle('notebookinfomenu_2','',lg('notebooksOfMyNetwork'),p_notebook.getNetworkNotebooks);
		$p.app.menu.addArea('notebookinfomenu_2','<div id="networknotebooksmenu"></div>');

		$p.app.menu.addTitle('notebookinfomenu_3','',lg('notebooksOfMyGroups'),p_notebook.getGroupsNotebooks);
		$p.app.menu.addArea('notebookinfomenu_3','<div id="groupsnotebooksmenu"></div>');

		$p.app.menu.openSubMenu('notebookinfomenu_1',true);
	},
	/*
		getNetworkNotebooks : load notebooks of user's network
	*/
	getNetworkNotebooks:function()
	{
		$p.ajax.call('xmlnetwork_users.php',
			{
				'type':'load',
				'callback':
				{
					'function':p_notebook.displayNetworkNotebooks
				}
			}
		);
	},
	displayNetworkNotebooks:function(response,vars)
	{
		var l_s='',l_result=response.getElementsByTagName('user');
		for (var i=0;i<l_result.length;i++)
		{
			var l_name=$p.ajax.getVal(l_result[i],'longname','str',false,'...');
			l_s+=$p.img('puce.gif')+'&nbsp;'
				+'<a href="#" onclick=\'p_notebook.open('+$p.ajax.getVal(l_result[i],'id','int',false,0)+',"index","'+l_name+'")\'>'+l_name+'</a><br />';
		}

		$p.print('networknotebooksmenu',l_s);
	},
	/*
		getGroupsNotebooks : load notebooks of user's groups
	*/
	getGroupsNotebooks:function()
	{
		$p.ajax.call('xmlnetwork_userworkinggroups.php',
			{
				'type':'load',
				'callback':
				{
					'function':p_notebook.displayGroupsNotebooks
				}
			}
		);
	},
	displayGroupsNotebooks:function(response,vars)
	{
		var l_s='',l_result=response.getElementsByTagName('workinggroup');
		for (var i=0;i<l_result.length;i++)
		{
			var l_name=$p.ajax.getVal(l_result[i],'name','str',false,'...');
			l_s+=$p.img('puce.gif')+'&nbsp;'
				+'<a href="#" onclick=\'p_notebook.open('+$p.ajax.getVal(l_result[i],'id','int',false,0)+',"group","'+l_name+'")\'>'+l_name+'</a><br />';
		}

		$p.print('groupsnotebooksmenu',l_s);
	},
	summary:function(v_div)
	{
		navPrint(v_div,'<h2>'+$p.img('ico_rss.gif',16,16,'','imgmid')+' '+lg('lastComments')+'</h2><br /><div id="notebooksummary"></div>');
		p_notebook.getContributions(0,'notebooksummary');
	},
	getRecentComments:function()
	{
		p_network.information.open();

		$p.plugin.menu([{'id':1,'title':lg('notebook')+' : '+lg('lastComments'),'icon':'','fct':'','isLink':false}]);

		p_notebook.getContributions(0,'plugindiv');
	},
	/*
		p_notebook.addArticle : add an article to notebook
		inputs :
			v_title : article title
			v_desc : article description
			v_keywords : article keywords list (coma separated)
			v_type : article type (2=standard, 3=module 4=portal)
			v_articleid : article id (from feed_articles table, if applicable)
			v_linkedObjId : id of linked object (widget id, portal id, article id, ..., if applicable)
			v_access : access code (3=public, 2=my network 1=private)
			v_objectId : 
			v_tGroup : array of groups in which to share article
	*/
	addArticle:function(v_title,v_desc,v_keywords,v_type,v_articleId,v_linkedObjId,v_access,v_objectId, v_tGroup)
	{
		v_keywords=$p.tags.formatList(v_keywords);
		var l_kwformated=$p.string.formatForSearch(v_keywords);
		var l_vars=[];
		if (undefined != v_tGroup) {
			var j = 0;
			for(i=0; i<v_tGroup.length; i++)
			{
				l_vars.push("gId"+j+"="+v_tGroup[i]);
				j++;
			}
		}
		
		//save article and call p_network.addNews with xml response
		$p.ajax.call('scr_notebook_articleadd.php',
			{
				'type':'execute',
				'variables':'pubtitle='+$p.string.esc(v_title)+'&desc='+$p.string.esc(v_desc)+'&faid='+v_articleId+'&type='+v_type+'&linked='+v_linkedObjId+'&access='+v_access+'&kw='+v_keywords+'&kwformated='+l_kwformated+'&oid='+v_objectId+'&'+l_vars.join('&'),
				'alarm':true,
				'forceExecution':false,
				'callback':
				{
					'function':p_network.addNews,
					'variables':
					{
						'access':v_access
					}
				}
			}
		);
	},
	/*
		p_notebook.trackback : get an article in my own notebook
	*/
	trackback:function(v_articleid,v_ownerid,v_sourceid)
	{
		$p.ajax.call('../notebook/scr_notebook_trackback.php',
			{
				'type':'execute',
				'variables':'artid='+v_articleid+'&owner='+v_ownerid+'&source='+v_sourceid,
				'alarm':true,
				'forceExecution':true,
				'callback':
				{
					'function':p_notebook.trackbackSuccess
				}
			}
		);

		return false;
	},
	/*
		p_notebook.trackbackSuccess : message when the article is saved in my notebook
	*/
	trackbackSuccess:function()
	{
		$p.app.alert.show(lg("trackbackSuccess"));
	},
	/*
		p_notebook.open : open my notebook
		inputs
			v_id : id of the notebook
			v_type : type of the notebook (personal / group)
			v_name : name of the notebook
	*/
	open:function(v_id,v_type,v_name,v_articleid)
	{
		if (v_id==indef) v_id=$p.app.user.id;
		if (v_name==indef) v_name=$p.app.user.name;
		if (v_type==indef) v_type='index';
		if ($p.app.env!='notebook')
		{
			p_notebook.init();
		}
		p_notebook.display(v_id,v_type,v_name,v_articleid);
	},
	/*
		p_notebook.init : init the notebook interface
	*/
	init:function()
	{
		$p.plugin.open();
		$p.plugin.init(lg("notebook"),'notebook');
		$p.plugin.useWidget();

		var l_height=Window.getHeight()-getPos($('plugincontent'),"Top")-40+(getPos($('pluginmenu'),"Top")-getPos($('menus'),"Top"));

		$p.plugin.content('<iframe id="notebookframe" name="notebookframe" src="" width="100%" height="'+l_height+'" frameborder=0></iframe>');
	},
	/*
		p_notebook.display : display a notebook
		input : id of the notebook
	*/
	display:function(v_id,v_type,v_name,v_articleid)
	{
		switch(v_type)
		{
			case 'index':
				var l_link='notebook/index.php?id='+v_id;
				break
			case 'group':
				var l_link='notebook/index_group.php?id='+v_id;
				break
			case 'detail':
				var l_link='notebook/detail.php?artid='+v_articleid;
				v_type='index';
				break
		}
		$('notebookframe').src=__LOCALFOLDER+l_link;
		if (!p_notebook.opened.some(function(item,index){return item.id==v_id}))
		{
			p_notebook.opened.push({"id":v_id,"type":v_type,"name":v_name});
		}
		p_notebook.links(v_id);
		$p.app.setState('p_notebook.open('+v_id+',"'+v_type+'","'+v_name+'")');
	},
	/*
		p_notebook.close : close selected notebook
	*/
	close:function(v_id)
	{
		p_notebook.opened.splice(v_id,1);
		if (p_notebook.opened.length==0)
		{
			p_notebook.links();
		}
		else
		{
			p_notebook.display(p_notebook.opened[0].id,p_notebook.opened[0].type,p_notebook.opened[0].name);
		}
	},
	/*
		p_notebook.links : display links to opened notebooks
	*/
	links:function(v_id)
	{
		var l_items=[];
        if (v_id==indef)  
        {  
            p_app.openHome(); 
        }
        else
        {   
    		l_items.push({'id':0,'title':lg('notebooks'),'icon':'ico_notebook.gif','fct':'','isLink':false});
    		for (var i=0;i<p_notebook.opened.length;i++)
    		{
    			if (v_id==p_notebook.opened[i].id)
    			{
    				l_items.push({'id':i+1,'title':'<u>'+p_notebook.opened[i].name+'</u> <a href="#" onclick="p_notebook.close('+i+');return false;">'+$p.img('ico_close.gif',12,11,'','imgmid')+'</a>','icon':'','fct':'','isLink':false});
    			}
    			else
    			{
    				l_items.push({'id':i+1,'title':p_notebook.opened[i].name+'&nbsp;<a href="#" onclick="p_notebook.close('+i+');return false;">'+$p.img('ico_close.gif',12,11,'','imgmid')+'</a>','icon':'','fct':"p_notebook.open("+p_notebook.opened[i].id+",'"+p_notebook.opened[i].type+"','"+p_notebook.opened[i].name+"')",'isLink':true});
    			}
    		}
    		$p.plugin.menu(l_items);
        }
	},
	/*
		p_notebook.checkInclusion : check if the notebook is in a frame or not
	*/
	checkInclusion:function()
	{
		if (parent.window.location!=window.location)
		{
			p_notebook.inFrame=true;
			navShow('header','none');
			$('notebook').style.width='100%';
		}
	},
	/*
		p_notebook.openLinkInNotebook : open a Notebook link depending if the notebook is inside Portaneo or in another page
		inputs
			v_type : link type
			v_id : id of the object to open
			v_name : name of the notebook that will be opened
	*/
	openLinkInNotebook:function(v_type,v_id,v_name,v_articleid)
	{
		if (v_name==indef) v_name=$p.app.user.name;
		if (p_notebook.inFrame)
		{
			parent.p_notebook.open(v_id,v_type,v_name,v_articleid);
			$p.app.setState('p_notebook.open('+v_id+',"'+(v_type=='detail'?'index':v_type)+'","'+v_name+'")');
		}
		else
		{
			switch(v_type)
			{
				case 'index':
					var l_link='../notebook/index.php?id='+v_id;
					break;
				case 'detail':
					var l_link='../notebook/detail.php?artid='+v_id;
					break;
			}
			$p.navigator.openLink(l_link,true);
		}
	},
	/*
		p_notebook.addRssWidget : add notebook information in a widget
		Input :
			v_rss: rss feed
			v_name : name of the widget
	*/
	addRssWidget:function(v_rss,v_name)
	{
		if (p_notebook.inFrame)
		{	
			var l_rss=$p.string.unesc(v_rss);
			parent.$p.app.widgets.rss.checkFeed(l_rss,$p.string.unesc(v_name));
			//p_notebook.addWidget(86,'rssurl='+v_rss+'&ptitl='+v_name);
		}
		else
		{
			$p.navigator.openLink('../portal/addtoapplication.php?name='+v_name+"&url="+v_rss);
		}
	},
	addWidget:function(v_id,v_vars)
	{
		parent.$p.app.widgets.open(v_id,v_vars,'uniq');
	},
	/*
		p_notebook.addPage : add a page from notebook
		Inputs
			v_pageid : page ID
			v_check : security MD5 string
	*/
	addPage:function(v_pageid,v_check)
	{
		if (p_notebook.inFrame)
		{
			parent.$p.app.pages.loadSharedPortal(v_pageid,2,v_check,false);
		}
		else
		{
			$p.navigator.openLink('../portal/addportaltoapplication.php?id='+v_pageid+'&chk='+v_check);
		}
	},
	/*
		p_notebook.getmostcommented : get most commented notebook articles
	*/
	getmostcommented:function(v_page)
	{
		if (v_page==indef) v_page=0;
		p_network.information.open();
		if ($p.app.user.id==0)	$("plugindiv").set('html',lg('msgNeedToBeConnectedPage'));
		else
		{
			navWait("plugindiv");
			$p.plugin.menu([{'id':1,'title':lg('notebook')+' : '+lg('MostCommented'),'icon':'','fct':'','isLink':false}]);
			$p.ajax.call('xmlmostcomments.php?p='+v_page,
				{
					'type':'load',
					'callback':
					{
						'function':p_notebook.displayMostCommented,
						'variables':
						{
							'page':v_page
						}
					}
				}
			);
		}
	},
	/*
		p_notebook.displayContributions: display notebook summary
	*/
	displayMostCommented:function(response,vars)
	{
		var l_s="",l_result=response.getElementsByTagName("item");
		if(l_result.length==0){
			l_s+="<b>"+lg("noCommentary");+"</b>"
		}
		for (var i=0;i<l_result.length;i++)
		{
			l_s+=$p.img('ico_notebook.gif',16,16,'','imgmid')+" <a href='../notebook/detail.php?id="+$p.app.user.id+"&artid="+$p.ajax.getVal(l_result[i],"id","int",false,0)+"#comments' target='_blank'>"+$p.ajax.getVal(l_result[i],"title","str",false,"???")+"</a> ("+$p.ajax.getVal(l_result[i],"commentsnb","int",false,0)+" "+lg('comments')+")<br /><br />";
		}
		l_s+='<div style="text-align: right">';
		if (vars['page']!=0) l_s+='<a href="#" onclick="p_notebook.getmostcommented('+(vars['page']-1)+');return false;">'+$p.img('ico_previous2.gif',12,11,'','imgmid')+' '+lg('previous')+'</a>';
		if (l_result.length==20) l_s+='<a href="#" onclick="p_notebook.getmostcommented('+(vars['page']+1)+');return false;">'+lg('next')+' '+$p.img('ico_next2.gif',12,11,'','imgmid')+'</a>';
		l_s+='</div>';

		$p.print("plugindiv",l_s);
	},
	/*
		p_notebook.getContributions : get notebook contributions
	*/
	getContributions:function(v_page,v_div)
	{
		if (v_page==indef) v_page=0;
		if ($p.app.user.id==0)	$(v_div).set('html',lg('msgNeedToBeConnectedPage'));
		else
		{
			navWait(v_div);
			$p.ajax.call('xmlmycomments.php?p='+v_page,
				{
					'type':'load',
					'callback':
					{
						'function':p_notebook.displayContributions,
						'variables':
						{
							'page':v_page,
							'divid':v_div
						}
					}
				}
			);
		}
	},
	/*
		p_notebook.displayContributions: display notebook summary
	*/
	displayContributions:function(response,vars)
	{
		var l_s="",l_result=response.getElementsByTagName("item");
		if(l_result.length==0){
			l_s+="<b>"+lg("noCommentary");+"</b>"
		}
		for (var i=0;i<l_result.length;i++)
		{
			l_s+=$p.img('ico_notebook.gif',16,16,'','imgmid')+" <a href='../notebook/detail.php?id="+$p.ajax.getVal(l_result[i],"userid","int",false,0)+"&artid="+$p.ajax.getVal(l_result[i],"articleid","int",false,0)+"#comments' target='_blank'>"+$p.ajax.getVal(l_result[i],"user","str",false,"???")+"</a><br />"+$p.string.trunk($p.ajax.getVal(l_result[i],"message","str",false,"???"),60)+"<br /><br />";
		}
		l_s+='<div style="text-align: right">';
		if (vars['page']!=0) l_s+='<a href="#" onclick=\'p_notebook.getContributions('+(vars['page']-1)+',"'+vars['divid']+'");return false;\'>'+$p.img('ico_previous2.gif',12,11,'','imgmid')+' '+lg('previous')+'</a>';
		if (l_result.length==20) l_s+='<a href="#" onclick=\'p_notebook.getContributions('+(vars['page']+1)+',"'+vars['divid']+'");return false;\'>'+lg('next')+' '+$p.img('ico_next2.gif',12,11,'','imgmid')+'</a>';
		l_s+='</div>';

		$p.print(vars['divid'],l_s);
	},
	showOptions:function(v_articleId)
	{
		if ($p.isShown('notebookoptions'+v_articleId))
		{
			$p.show('notebookoptions'+v_articleId,'none');
		}
		else
		{
			$p.show('notebookoptions'+v_articleId,'block');
		}
	}
}
p_notebook.profile={
	desc:"",
	/*
		p_notebook.profile.getDesc : display my profile formated description 
		inputs : define if the description is truncated or not
	*/
	getDesc:function(v_trunc)
	{
		var l_desc=(v_trunc && p_notebook.profile.desc.length>150)?p_notebook.profile.desc.substr(0,150)+" ...[<a href='#' onclick='p_notebook.profile.getDesc(false);return false;'>"+lg("readMore")+"</a>]":p_notebook.profile.desc;
		$p.print("notebookdesc",l_desc);
	}
}
p_notebook.article={
	/*
		p_notebook.article.setStatus : set access type to notebook articles
		inputs
			v_id: article id
			v_status : new status
	*/
	setStatus:function(v_id,v_status)
	{
		if (v_status=="D")
		{
			var response=confirm(lg("msgArchSup"));
			if (response!=1) return false;
		}
		if (v_status!="D" || (v_status=="D" && response==1))
		{
			$p.ajax.call('../notebook/scr_notebook_changearticlestatus.php',
				{
					'type':'execute',
					'variables':'id='+v_id+'&status='+v_status,
					'alarm':true,
					'forceExecution':true,
					'callback':
					{
						'function':p_notebook.article.setStatusApplied
					}
				}
			);
		}
	},
	/*
		p_notebook.article.setStatusApplied :
		input : xml file return
	*/
	setStatusApplied:function(v_ret)
	{
		$p.app.alert.show(lg("modificationApplied"));
		var l_ret=v_ret.split("_");
		navClass("article"+l_ret[0],"notebookarticle"+l_ret[1]);
	}
}
p_notebook.comment={
	/*
		p_notebook.comment.remove : remove comment
		inputs
			v_id: comment id
	*/
	remove:function(v_id)
	{
		var response=confirm(lg("readyToSuppressComment"));
		if (response!=1) return false;
		$p.ajax.call('../notebook/scr_notebook_removecomment.php',
			{
				'type':'execute',
				'variables':'id='+v_id,
				'alarm':true,
				'forceExecution':true,
				'callback':
				{
					'function':p_notebook.comment.confirmRemove
				}
			}
		);

		return false;
	},
	/*
		p_notebook.comment.confirmRemove : confirm comment suppression
		input : xml file return
	*/
	confirmRemove:function(v_ret)
	{
		if (v_ret!=indef)
		{
			$p.app.alert.show(lg("modificationApplied"));
			navShow("comment"+v_ret,"none");
		}
	}
}

var p_help={
	menu:new Array({"id":1,"title":"lblHelp","icon":"ico_help.gif","fct":"","isLink":false}),
	open:function()
	{
		$p.plugin.open();
		$p.plugin.init(lg("lblHelp"),'help');
		$p.plugin.application="help";
		$p.plugin.menu(p_help.menu,1);
		$p.app.setState("p_help.open()");
		
		var l_s="<div class='subtitle'>"+lg("guides")+"</div><br />";
		l_s+="<a href='../docs/"+__lang+"/guide_de_l_utilisateur.pdf' target='_blank'>"+lg("userGuide")+"</a><br />"
		l_s+="<br /><div class='subtitle'>"+lg("contacts")+"</div><br />";
		l_s+="<a href='mailto:"+__SUPPORTEMAIL+"'>"+__SUPPORTEMAIL+"</a><br />";
		l_s+="<br /><div class='subtitle'>"+lg("credits")+"</div><br />";
		l_s+="<br />icons : FamFamFam<br />";
		l_s+="<br />&copy; Portaneo";
		$p.plugin.content(l_s);
	}
}

// Manage the users' messages
function messageObj(id,title,description,status,sender,senddate){
	this.id=id;
	this.title=title;
	this.description=description;
	this.status=status;
	this.sender=sender;
	this.senddate=senddate;
}
var p_msg={
	shown:false,
	items:[],
	nbPerPage:10,
	sel:0,
	nbUnread:-1,
	init:function(){
		$p.plugin.open();
		//$p.app.tabs.create(indef,false,false,-1);
		var l_s="<div class='addonbar'>"+lg("receivedMessages")+" | <a href=''>"+lg("sentMessage")+"</a> | <a href='#' onclick='p_msg.write();'>"+$p.img("ico_mail_write.gif",16,16,"","imgmid")+" "+lg("sendANewMessage")+"</a> | <a href='#' onclick='p_msg.load()'>"+$p.img("ico_refresh.gif",12,11,"","imgmid")+" "+lg("refresh")+"</a></div><br />";
		l_s+="<table width='100%'><tr><td id='messageslist' width='500' valign='top'>";
		l_s+="</td><td valign='top'>";
		l_s+="<a href='#' onclick=\"p_msg.write('','Fw: '+p_msg.items[p_msg.sel].title,'================================'+p_msg.items[p_msg.sel].description)\">"+$p.img("ico_mail_transfert.gif",16,16,"","imgmid")+" "+lg("transfert")+"</a> | <a href='#' onclick=\"p_msg.write(p_msg.items[p_msg.sel].sender,'Re: '+p_msg.items[p_msg.sel].title,'================================'+p_msg.items[p_msg.sel].description)\">"+$p.img("ico_mail_reply.gif",16,16,"","imgmid")+" "+lg("reply")+"</a> | <a href='#' onclick='p_msg.suppress()'>"+$p.img("ico_suppress.gif",14,14,"","imgmid")+" "+lg("delete")+"</a> | <a href=''>"+lg("getByEmail")+"</a><br />";
		l_s+="<br /><div width='100%' id='messagereadbox'>&nbsp;</div>";
		l_s+="</td></tr></table>";

		l_s+="</td></tr></table>";
		$p.print("messages",l_s);
		navShow("messages","block");
		navWait("messageslist");
		p_msg.shown=true;
		p_msg.load(false);
	},
	load:function(v_alert,v_start){
		if (v_start==indef) v_start=0;
		$p.ajax.call('xmlmessages.php?start='+v_start+'&nb='+p_msg.nbPerPage,
			{
				'type':'load',
				'callback':
				{
					'function':p_msg.get
				}
			}
		);
	},
	get:function(response,vars){
		var i=0;
		p_msg.items.length=0;
		while (response.getElementsByTagName("message")[i]){
			p_msg.items.push(new messageObj($p.ajax.getVal(response.getElementsByTagName("message")[i],"id","int",false,0),$p.ajax.getVal(response.getElementsByTagName("message")[i],"title","str",false,"=="),$p.ajax.getVal(response.getElementsByTagName("message")[i],"description","str",false,""),$p.ajax.getVal(response.getElementsByTagName("message")[i],"status","str",false,"U"),$p.ajax.getVal(response.getElementsByTagName("message")[i],"sender","str",false,"-"),$p.ajax.getVal(response.getElementsByTagName("message")[i],"senddate","str",false,"")));
			i++;
		}
		p_msg.display();
		p_msg.read(0);
	},
	display:function(){
		var l_s="<br /><table width='100%'>";
		for (var i=0;i<p_msg.items.length;i++){
			if (p_msg.items[i].status=="U"){
				l_s+="<tr><td valign='top' width='22'>"+$p.img("ico_mail_unread.gif",16,16)+"</td><td class='"+(p_msg.sel==i?"selmessage":"message")+"'><b><a href='#' onclick='p_msg.read("+i+")'>"+p_msg.items[i].title+"</a></b>";
			} else {
				l_s+="<tr><td valign='top' width='22'>"+$p.img("ico_mail_read.gif",16,16)+"</td><td class='"+(p_msg.sel==i?"selmessage":"message")+"'><a href='#' onclick='p_msg.read("+i+")'>"+p_msg.items[i].title+"</a>";
			}
			l_s+="<br />sent the "+p_msg.items[i].senddate+" by "+p_msg.items[i].sender+"</td></tr>";
		}
		l_s+="</table>";
		if (i==0) l_s+="<i>"+lg("lblMsgNone")+"</i>";
		$p.print("messageslist",l_s);
		//p_msg.getNb();
	},
	read:function(v_i){
		p_msg.sel=v_i;
		if (p_msg.items[v_i].status=="U"){
			p_msg.items[v_i].status="R";
			//record read status in DB
			$p.ajax.call('scr_readmessage.php',
			{
				'type':'execute',
				'variables':'id='+p_msg.items[v_i].id
			}
		);
		}
		$p.print("messagereadbox",p_msg.items[v_i].description);
		//$p.print("messagereadbox","toot");
		p_msg.display();
	},
	write:function(v_dest,v_title,v_msg){
		$p.plugin.open();
		//$p.app.tabs.create(indef,false,false,-1);
		var l_s="<div class='addonbar'><a href='#' onclick='p_msg.init()'>"+lg("receivedMessages")+"</a> | <a href=''>"+lg("sentMessage")+"</a> | "+$p.img("ico_mail_write.gif",16,16,"","imgmid")+" "+lg("sendANewMessage")+" | <a href='#' onclick='p_msg.load()'>"+$p.img("ico_refresh.gif",12,11,"","imgmid")+" "+lg("refresh")+"</a></div><br />";
		l_s+="<table width='100%'><tr><td valign='top'>";
		l_s+="<form name='f' method='post'>"
		l_s+=lg("sendTo")+" "+lg("selectedPeopleInTheList")+"<br /><input type='text' name='to' size='50' value='"+(v_dest==indef?"":v_dest)+"'/><br /><br />";
		l_s+=lg("title")+"<br /><input type='text' name='title' size='50' value='"+(v_title==indef?"":v_title)+"' /><br /><br />";
		l_s+=lg("message")+"<br /><textarea name='message' cols='50' rows='10'>"+(v_msg==indef?"":v_msg)+"</textarea><br /><br />";
		l_s+="<input type='button' class='btn' value='"+lg("send")+"' />";
		l_s+="</form>";
		l_s+="</td><td id='mailfriends' valign='top' width='500px'>";
		l_s+="</td></tr></table>";
		$p.print("messages",l_s);
		navShow("messages","block");
		navWait("mailfriends");
		p_msg.shown=true;
		p_msg.friends();
	},
	getNb:function(){
		$p.ajax.call('xmlnbmessages.php',
			{
				'type':'load',
				'callback':
				{
					'function':p_msg.displayNb
				}
			}
		);
	},
	displayNb:function(response,vars){
		var l_nb=$p.ajax.getVal(response,"nb","int",false,0);
		if (p_msg.nbUnread>=0 && l_nb>p_msg.nbUnread && !p_msg.shown){
			$p.app.alert.show(lg("youHaveReceivedNewMessages"));
		}
		p_msg.nbUnread=l_nb;
	},
	hide:function(){
		$p.print("messages","");
		navShow("messages","none");
		p_msg.shown=false;
	},
	suppress:function(v_id){
		if (v_id==indef) v_id=p_msg.sel;
		var response=confirm(lg("doYouWantToSuppressMessage"));
		if (response==1){
			$p.ajax.call('scr_supmessage.php',
				{
					'type':'execute',
					'variables':'id='+p_msg.items[v_id].id,
					'alarm':false,
					'forceExecution':false,
					'callback':
					{
						'function':p_msg.load
					}
				}
			);
// a modifier (par recharger a chaque suppression !!)
			//p_msg.getNb();
		}
	},
	friends:function(){
		$p.ajax.call('xmlfriends.php',
			{
				'type':'load',
				'callback':
				{
					'function':p_msg.displayFriends
				}
			}
		);
	},
	displayFriends:function(response,vars){
		var l_s="";
		if (response.getElementsByTagName("friend")[0]){
			var inc=0;
			while (response.getElementsByTagName("friend")[inc]){
				var l_result=response.getElementsByTagName("friend")[inc];
				l_s+="<a href='#'>"+$p.ajax.getVal(l_result,"name","str",false,"...")+"</a>";
				inc++;
			}
		}
		else {l_s+=lg("noFriends");}
		$p.print("mailfriends",l_s);
	}
}
var p_chat={
	minimized:false,
	/*
		p_chat.menu : chat menu
	*/
	menu:function()
	{
		$p.app.menu.addTitle('chatmenu_1','ico_chat.gif',lg('chat'),p_chat.getConnectedPeople);
		$p.app.menu.addArea('chatmenu_1','<div id="menuchatconnpeople"></div>');

		$p.app.menu.openSubMenu('chatmenu_1',true);
	},
	/*
		p_chat.checkActivity : check user activity
	*/
	checkActivity:function()
	{
		var l_oldStatus=$p.app.user.status;

		if (l_oldStatus!='b')
		{
			if ($p.app.inactivityTime<=12)
			{
				$p.app.user.status='o'; //online status
			}
			else
			{
				$p.app.user.status='a'; //away status
			}
		}

		if (l_oldStatus!=$p.app.user.status) p_chat.displayStatus();

		p_chat.getNotifications((l_oldStatus!=$p.app.user.status || $p.app.counter.step%6==5)?'true':'false');
	},
	/*
		p_chat.getNotifications : get Notifications from DB
	*/
	getNotifications:function(sendActivity)
	{
		//get the opened discussion
		l_writingChat=[];
		l_inactiveChat=[];
		for (var i=0;i<p_chat.discussion.opened.length;i++)
		{
			if (p_chat.discussion.opened[i].status=='O')
			{
				var l_id=p_chat.discussion.opened[i].id;

				//write status management
				if (document.forms['chatform'+i].chatInput.value!='' && p_chat.discussion.opened[i].myStatus!='write')
				{
					l_writingChat.push(p_chat.discussion.opened[i].userid);
					p_chat.discussion.opened[i].myStatus='write';
				}
				//chat inactivity management
				if (document.forms['chatform'+i].chatInput.value=='' && p_chat.discussion.opened[i].myStatus=='write')
				{
					//after 4 *10s of inactivity
					if (p_chat.discussion.opened[i].inactivityStep==3)
					{
						l_inactiveChat.push(p_chat.discussion.opened[i].userid);
						p_chat.discussion.opened[i].myStatus='none';
					}
					else
					{
						p_chat.discussion.opened[i].inactivityStep++;
					}
				}
			}
		}

		$p.ajax.call('scr_chat_activity.php'+(sendActivity?'?act='+$p.app.user.status:'?noact=1')+(l_writingChat.length==0?'':'&writing='+l_writingChat.join(','))+(l_inactiveChat.length==0?'':'&inac='+l_inactiveChat.join(',')),
			{
				'type':'load',
				'callback':
				{
					'function':p_chat.treatNotifications
				}
			}
		);
	},
	treatNotifications:function(response,vars)
	{
		//check new discussions
		var l_newChats=response.getElementsByTagName('newchat');
		for (var i=0;i<l_newChats.length;i++)
		{
			p_chat.discussion.open($p.ajax.getVal(l_newChats[i],'id','int',false,0),$p.ajax.getVal(l_newChats[i],'userid','int',false,0),$p.ajax.getVal(l_newChats[i],'name','str',false,'?'));
		}

		var l_messages=response.getElementsByTagName('message');
		for (var i=0;i<l_messages.length;i++)
		{
			p_chat.discussion.write($p.ajax.getVal(l_messages[i],'chatid','int',false,0),$p.ajax.getVal(l_messages[i],'content','str',false,''));
		}
		if (l_messages.length>0) $p.navigator.sound(); // sound if new message

		//check writing in chat
		var l_writing=response.getElementsByTagName('writing');
		for (var i=0;i<l_writing.length;i++)
		{
			var l_status=$p.ajax.getVal(l_writing[i],'type','str',false,'');
			p_chat.discussion.status(p_chat.discussion.getId($p.ajax.getVal(l_writing[i],'userid','int',false,0)),l_status);
		}
	},
	/*
		p_chat.displayStatus: display user activity
	*/
	displayStatus:function()
	{
		if ($('myactivity')!=null)
		{
			$p.print('myactivity','<a href="#" onclick="p_chat.activitySelection();return false;">'+$p.img('ico_activity'+$p.app.user.status+'.gif',16,16,'','imgmid')+$p.img('ico_down_arrow2.gif',14,20,'','imgmid')+'</a> '+lg('activity'+$p.app.user.status));
		}
	},
	/*
		p_chat.activitySelection:give the activities selection
	*/
	activitySelection:function()
	{
		if ($('activityselection').innerHTML=='')
		{
			$p.print('activityselection','<a href="#" onclick=\'p_chat.setActivity("o");return false;\'>'+$p.img('ico_activityo.gif',16,16,lg('activityo'))+'</a> <a href="#" onclick=\'p_chat.setActivity("b");return false;\'>'+$p.img('ico_activityb.gif',16,16,lg('activityb'))+'</a> <a href="#" onclick=\'p_chat.setActivity("x");return false;\'>'+$p.img('ico_activityx.gif',16,16,lg('activityx'))+'</a>');
		}
		else
		{
			$('activityselection').empty();
		}
	},
	/*
		p_chat.setActivity
		input : new status
	*/
	setActivity:function(v_activity)
	{
		if (v_activity!=$p.app.user.status)
		{
			$p.app.user.status=v_activity;
			p_chat.displayStatus();
			p_chat.getNotifications(true);
		}
		$p.print('activityselection','');
	},
	/*
		p_chat.computeActivity : compute user activity
		Inputs :
			v_lastActivity : activity status logged in DB
			v_lastconnect : date of the latest user connection
			v_refdate : date of the DB
	*/
	computeActivity:function(v_lastActivity,v_lastconnect_date,v_refdate)
	{
		if (v_lastActivity=='x') return 'x';
		var l_delay=$p.date.convertFromDb(v_refdate)-$p.date.convertFromDb(v_lastconnect_date);
		//if no new status for 2 min => disconnected
		if (l_delay>120000) return 'x';
		return v_lastActivity;
	},
	/*
		p_chat.getConnectedPeople : get the list of the chat connected people
	*/
	getConnectedPeople:function()
	{
		if ($p.app.user.id==0)	
			$('menuchatconnpeople').set('html',lg('msgNeedToBeConnectedMenu'));
		else	
		{
				$p.ajax.call('xmlnetwork_connected.php',
					{
						'type':'load',
						'callback':
						{
							'function':p_chat.displayConnectedPeople
						}
					}
				);
		}
	},
	displayConnectedPeople:function(response,vars)
	{
		var l_result=response.getElementsByTagName('user'),l_chatNb=0,l_s='<div class="title">'+lg("connectedPeople")+' :</div>';

		//display users
		for (var i=0;i<l_result.length;i++)
		{
			var l_id=$p.ajax.getVal(l_result[i],'id','int',false,0);
			var l_activity=p_chat.computeActivity($p.ajax.getVal(l_result[i],'activity','str',false,'x'),$p.ajax.getVal(l_result[i],'lastconndate','str',false,''),$p.ajax.getVal(l_result[i],'dbdate','str',false,''));
			if (l_id!=$p.app.user.id && l_activity!='x' && l_activity!='b')
			{
				var l_id=$p.ajax.getVal(l_result[i],'id','int',false,0);
				var l_longname=$p.ajax.getVal(l_result[i],'longname','str',false,'???');
				l_s+='<a href="#" onclick=\'p_chat.discussion.open(0,'+l_id+',"'+l_longname+'");return false;\'>'+$p.img('ico_activity'+l_activity+'.gif',16,16,lg('activity'+l_activity),'imgmid')+' '+l_longname+'</a><br />';
				l_chatNb++;
			}
		}
		if (l_chatNb==0)
		{
			l_s+=lg('nobodyConnected');
		}

		l_s+='<br /><br />'+$p.img('puce.gif')+'&nbsp;<a href="#" onclick="p_chat.archive()">'+lg('archives')+'</a>';
		$p.print('menuchatconnpeople',l_s);
	},
	/*
		p_chat.displayBoxes : display chat area
	*/
	displayArea:function()
	{
		if ($('chatarea')==null)
		{
			var chatObj=new Element('div',
				{
					'id':'chatarea',
					'styles':
					{
						'overflow':'hidden'
					}
				}
			);
			chatObj.injectInside($('menus'));
		}
		else
		{
			navShow('chatarea','block');
		}
	},
	/*
		p_chat.archive : get chat archive
	*/
	archive:function()
	{
		$p.plugin.open();
		$p.plugin.init(lg("archives"),'chatarchives');
		$p.app.setState("p_chat.archive()");
		$p.plugin.menu([{'id':1,'title':lg("archives"),'icon':'','fct':'','isLink':false}]);

		$p.plugin.wait();

		p_chat.getArchive(0);
	},
	getArchive:function(v_page)
	{
		$p.ajax.call('xmlchat_archive.php?p='+v_page,
			{
				'type':'load',
				'callback':
				{
					'function':p_chat.displayArchive,
					'variables':
					{
						'page':v_page
					}
				}
			}
		);
	},
	displayArchive:function(response,vars)
	{
		var l_s='<table width="100%"><tr><td width="50%" valign="top"><table>',l_result=response.getElementsByTagName("chat");
		if(l_result.length==0){
			l_s+="<b>"+lg('noArchives')+"</b>";
		}
		for (var i=0;i<l_result.length;i++)
		{
			var l_date=$p.date.formatDateShort($p.date.convertFromDb($p.ajax.getVal(l_result[i],'pubdate','str',false,'')));
			var l_username=$p.ajax.getVal(l_result[i],'username','str',false,'');
			l_s+='<tr><td>'+$p.img('ico_chat.gif',16,16,'','imgmid')+'</td><td>'+l_date+'</td><td>'+l_username+'</td><td><a href="#" onclick=\'p_chat.getArchiveDetail('+$p.ajax.getVal(l_result[i],'id','int',false,0)+',"'+(l_username+' ('+l_date+')')+'")\'>'+$p.ajax.getVal(l_result[i],'title','str',false,'???')+'</a></td></tr>';
		}
		l_s+='</table></td><td valign="top" id="chatdetail" style="border: 1px solid #c6c3c6;background: #efefef;"></div></td></tr></table>';
		if ($p.app.env=='chatarchives') $p.plugin.content(l_s)
	},
	getArchiveDetail:function(v_id,v_title)
	{
		$p.ajax.call('xmlchat_archivedetail.php?id='+v_id,
			{
				'type':'load',
				'callback':
				{
					'function':p_chat.displayArchiveDetail,
					'variables':
					{
						'title':v_title
					}
				}
			}
		);
	},
	displayArchiveDetail:function(response,vars)
	{
		var l_s='<b>'+vars['title']+'</b><br /><br />',l_result=response.getElementsByTagName('item');
		for (var i=0;i<l_result.length;i++)
		{
			l_s+='<b>'+$p.ajax.getVal(l_result[i],'username','str',false,'')+'</b> : '+$p.ajax.getVal(l_result[i],'message','str',false,'')+'<br />';
		}
		$p.print('chatdetail',l_s);
	}
}
p_chat.discussion={
	opened:[],
	tread:function(id,userid,username,status)
	{
		this.id=id;
		this.userid=userid;
		this.username=username;
		this.status=status;
		this.lastSenderId=0;
		this.myStatus='none';
		this.contactStatus='none';
		this.inactivityStep=0;
	},
	/*
		p_chat.discussion.open: open a chat discussion with a user
		inputs :
			v_userid : id of the user to chat with
	*/
	open:function(v_chatid,v_userid,v_username)
	{
		//Check if a discussion is already existing with the user
		for (var i=0;i<p_chat.discussion.opened.length;i++)
		{
			if (p_chat.discussion.opened[i].userid==v_userid)
			{
				p_chat.discussion.show(i);
				return;
			}
		}
		l_id=(p_chat.discussion.opened.push(new p_chat.discussion.tread(v_chatid,v_userid,v_username,(v_chatid==0?'N':'O')))-1);
		p_chat.discussion.addBox(l_id,v_username);
	},
	/*
		p_chat.discussion.addBox : add a discussion box
		inputs :
			v_id : chat id
			v_title : chat box title
	*/
	addBox:function(v_id,v_title)
	{
		p_chat.displayArea();

		var chatTitle=new Element('div',
			{
				'class':'title',
				'styles':{
					'width':'298px',
					'height':'24px',
					'font-size':'13px',
					'font-weight':'bold'
				}
			}
		);
		chatTitle.set('html','<div style="float: left;"> '+$p.img('ico_chat.gif',16,16,'','imgmid','chatstatus'+v_id)+' '+v_title+'</div><div style="padding: 5px;float: right;"><a href="#" onclick="p_chat.discussion.minimize();return false;"><img src="../images/ico_minimize.gif"></a> <a href="#" onclick="p_chat.discussion.hide('+v_id+');return false;"><img src="../images/ico_close.gif"></a></div>');
		var chatContent=new Element('div',
			{
				'class':'content',
				'id':'chatcontent'+v_id,
				'styles':{
					'width':'100%',
					'height':'150px',
					'overflow':'auto'
				}
			}
		);
		var chatInput=new Element('textarea',
			{
				'name':'chatInput',
				'class':'input',
				'rows':'2',
				'styles':{
					'margin':'2px',
					'width':'292px'
				}
			}
		);
		chatInput.formId=v_id;
		chatInput.set('html',lg('typeYourMessageHere'));
		chatInput.addEvent('keypress',function(event)
			{
				if (event.key=='enter')
				{
					p_chat.discussion.send(this.formId,this.value);
				}
				else
				{
					p_chat.discussion.typing(this.formId);
				}
			}
		)
		var chatForm=new Element('form',
			{
				'name':'chatform'+v_id,
				'id':'chatform'+v_id,
				'action':'#',
				'events':{
					'submit':function()
					{
						return false;
					}
				}
			}
		);
		chatInput.injectInside(chatForm);
		var chatDiv=new Element('div',
			{
				'class':'container',
				'id':'chat'+v_id,
				'styles':{
					'width':'300px'
				}
			}
		);
		chatTitle.injectInside(chatDiv);
		chatContent.injectInside(chatDiv);
		chatForm.injectInside(chatDiv);
		chatDiv.injectInside($('chatarea'));
	},
	/*
		p_chat.discussion.send : send a message
		inputs :
			v_id : chat ID
			v_message : text message to send
	*/
	send:function(v_id,v_message)
	{
		v_message=removeTags(v_message);
		$p.ajax.call('scr_chat_message.php',
			{
				'type':'execute',
				'variables':'id='+p_chat.discussion.opened[v_id].id+'&m='+v_message+'&s='+p_chat.discussion.opened[v_id].status+(p_chat.discussion.opened[v_id].status=='N'?'&t='+v_message.substr(0,32):'')+'&fid='+p_chat.discussion.opened[v_id].userid,
				'alarm':false,
				'forceExecution':true,
				'callback':
				{
					'function':p_chat.discussion.sendAfter,
					'variables':
					{
						'id':v_id
					}
				}
			}
		);

		p_chat.discussion.write(p_chat.discussion.opened[v_id].id,v_message,$p.app.user.id);
		p_chat.discussion.opened[v_id].myStatus=='none';
	},
	sendAfter:function(v_chatid,vars)
	{
		p_chat.discussion.opened[vars['id']].id=v_chatid;
		p_chat.discussion.opened[vars['id']].status='O';
		document.forms['chatform'+vars['id']].chatInput.value='';
	},
	typing:function(v_chatid)
	{
		p_chat.discussion.opened[v_chatid].inactivityStep=0;
	},
	/*
		p_chat.discussion.write : write message on chat
		inputs :
			v_id : chat id
			v_message : message
			v_received = true if the message is received
	*/
	write:function(v_id,v_message,v_sender)
	{
		for (var i=0;i<p_chat.discussion.opened.length;i++)
		{
			if (p_chat.discussion.opened[i].id==v_id)
			{
				if (v_sender==indef) v_sender=p_chat.discussion.opened[i].userid;

				if (p_chat.discussion.opened[i].lastSenderId!=v_sender)
					$p.print('chatcontent'+i,'<b>'+(v_sender==$p.app.user.id?lg('me'):p_chat.discussion.opened[i].username)+'</b><br />','bottom');
				$p.print('chatcontent'+i,v_message+'<br />','bottom');
				p_chat.discussion.opened[i].lastSenderId=v_sender;

				p_chat.discussion.scroll(i);
			}
		}
		navShow('chat'+v_id,'inline');
		if (p_chat.minimized) p_chat.discussion.minimize();//maximize chat windows if minimized
	},
	scroll:function(v_id)
	{
		$('chatcontent'+v_id).scrollTop=$('chatcontent'+v_id).scrollHeight;
	},
	show:function(v_id)
	{
		navShow('chat'+v_id,'inline');
	},
	hide:function(v_id)
	{
		navShow('chat'+v_id,'none');
	},
	/*
		p_chat.discussion.minimize : minimize all chat windhow
	*/
	minimize:function()
	{
		var l_status=(p_chat.minimized?'block':'none');

		for (var i=0;i<p_chat.discussion.opened.length;i++)
		{
			if ($('chatcontent'+i)!=null) $('chatcontent'+i).style.display=l_status;
			if ($('chatform'+i)!=null) $('chatform'+i).style.display=l_status;
		}
		p_chat.minimized=(p_chat.minimized?false:true);
	},
	/*
		p_chat.discussion.status : change chat status
		inputs
			v_id : ID of the chat
			v_status : new status
	*/
	status:function(v_id,v_status)
	{
		if (v_id==indef) return;
		if ($('chatstatus'+v_id)!=null) $('chatstatus'+v_id).src='../images/ico_chat'+_lc(v_status)+'.gif';
		p_chat.discussion.opened[v_id].contactStatus=v_status;
	},
	/*
		p_chat.discussion.getId : get chat ID from user id
	*/
	getId:function(v_userId)
	{
		for (var i=0;i<p_chat.discussion.opened.length;i++)
		{
			if (p_chat.discussion.opened[i].userid==v_userId)
				return i;
		}
		return false;
	}
}
