﻿// ************** LICENCE ****************
// This file is part of POSH Portaneo Open Source Homepage (http://www.portaneo.net).
// Copyright (c) 2006 Eric Mathieu and contributors. All rights reserved.
// POSH is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License
// 
// ***************************************
// POSH javascript main file
// ***************************************
// Created by Eric Mathieu on 01/01/2007
// ***************************************

// navigators identification
var IE=(document.all)?1:0;
var SAF=navigator.userAgent.indexOf("Safari")>=0;
var NS=navigator.userAgent.indexOf('Netscape')>0;
var OP=navigator.userAgent.indexOf('Opera')>0;

// Menu variables
var showNewMod=false;
var showBoxStatus=false;
var showHdr=false;
var noteSize=0;
var newModH;

// Newspaper variables
var searchControl;

var dirOptSelId=[];
var ourSel="";
var ourSelSub=[];
var maxUniq=0;
var useMod;
var cols=[];
var tab=[];
var module=[];
var mDivObj=null;
var indef;
var pfolder="";
var allowSave=false;
var isPortal=true;

//================================================================================================================
//==                                      COMMON FUNCTIONS
//================================================================================================================

// Get object with its ID
function _gel(v_id){return document.getElementById?(document.getElementById(v_id)?document.getElementById(v_id):null):document.all[v_id];}
// Get objects with their tag name
function _gelstn(v_t){return document.getElementsByTagName?document.getElementsByTagName(v_t):new Array();}
// Change HTML content of an object
function navPrint(v_id,v_s){
	var l_obj=_gel(v_id);
	if (l_obj) l_obj.innerHTML=v_s;
}
// Change CSS Class of an object
function navClass(v_id,v_class){
	var l_obj=_gel(v_id);
	if (l_obj) l_obj.className=v_class;
}
// Show/Hide object
function navShow(v_id,v_disp){
	var l_obj=_gel(v_id);
	if (l_obj) l_obj.style.display=v_disp;
}
function navIsShown(v_id){
	var l_obj=_gel(v_id);
	if (l_obj) {
		return (l_obj.style.display=='block'?true:false);
	} else {return false;}l_obj.style.display=v_disp;
}
// Encode string
function _esc(v_s){return window.encodeURIComponent?encodeURIComponent(v_s):escape(v_s);}
// Decode string
function _unesc(v_s){return window.decodeURIComponent?decodeURIComponent(v_s):unescape(v_s);}
// uppercase transformation
function _uc(v_s){return v_s.toUpperCase();}
// lowercase transformation
function _lc(v_s){return v_s.toLowerCase();}
// return minimum of 2 values
function _min(v1,v2){return Math.min(v1,v2);}
// return maximum of 2 values
function _max(v1,v2){return Math.max(v1,v2);}
// change style property value
function changeStyle(v_class,v_prop,v_value){
	var l_items=_gelstn("*");
	for(var l_item=0;l_item<l_items.length;l_item++){
		if(l_items[l_item].className==v_class){l_items[l_item].style[v_prop]=v_value}
	}
}
// Change object ID
function navId(v_id,v_newid){
	var l_obj=_gel(v_id);
	if (l_obj) l_obj.id=v_newid;
}
// Change object height
function navHeight(v_id,v_h){
	var l_obj=_gel(v_id);
	l_obj.style.height=v_h;
}
// Change object width
function navWidth(v_id,v_w){
	var l_obj=_gel(v_id);
	l_obj.style.width=v_w;
}
// Get image script
function img(v_file,v_w,v_h,v_alt,v_cl,v_id){
	if (v_file=="-") return "";
	if (v_file==indef || v_file=="") v_file="s.gif";
	var l_width=v_w?" width='"+v_w+"'":"";
	var l_height=v_h?" height='"+v_h+"'":"";
	if (v_alt==indef) v_alt="";
	if (v_cl==indef) v_cl=".";
	if (v_id==indef){v_id="";}else{v_id=" id='"+v_id+"'";}
	return "<img src='"+pfolder+"../images/"+v_file+"' alt='"+v_alt.replace(/'/g,"")+"'"+l_width+l_height+" class='"+v_cl+"'"+v_id+" />";
}
// Generate the box headers
function box(v_h,v_title,hideFct,v_content,v_hdr){
	var l_s=(v_hdr==indef?"":v_hdr)+"<table cellpadding='10' cellspacing='0' width='100%'><tr><td"+(v_h>0?" height="+v_h:"")+"><table class='menubox' cellpadding='0' cellspacing='0' border='0' width='100%'>";
	l_s+="<tr><td class='menuhdr'><table width='100%'><tr><td class='menutitle'><b>"+v_title+"</b></td>";
	if (hideFct!="") l_s+="<td class='menuclose'><a class='w' href='#' onclick='"+hideFct+";return false;'>"+img("s.gif",13,13,lg("lblClose"),"imgmid")+" "+lg("lblClose")+"</a></td>";
	l_s+="</tr></table></td></tr>";
	l_s+="<tr><td valign='top' class='menucont'>";
	l_s+=v_content;
	l_s+="</td></tr></table></td></tr>";
	return l_s;
}
//Check that cookies are accepted
function checkcook(){
	if (__showHomeBar>0){
		if ((__showHomeBar==1 && document.cookie.indexOf("homebar")==-1) || __showHomeBar==2) homebar();
	}
	if (__showHomeBar==1) writeCookie("homebar=1");
	accepteCookies = (navigator.cookieEnabled) ? true : false;
	if (typeof navigator.cookieEnabled == "undefined" && !cookieEnabled) {
		writeCookie("homebar=1");
		accepteCookies = (document.cookie.indexOf("homebar")==-1)?false:true;
	}
	if (!accepteCookies) link("cookies_restriction.html",false,true);
}
// Cookies management functions
function writeCookie(v_vars,v_delay){
	var l_date=new Date;
	if (v_delay==indef) v_delay=10;
	l_date.setFullYear(l_date.getFullYear()+v_delay);
	document.cookie=v_vars+"; path=/; expires="+l_date.toGMTString()+";";
}
function getCookie(v_name){
	var l_ret="";
	if (document.cookie.length > 0){
		var l_arr=document.cookie.split(/;/);
		for (var i=0;i<l_arr.length;i++){
			if (l_arr[i].indexOf((v_name+"="))!= -1){
				l_ret=l_arr[i].substring((v_name.length+2),l_arr[i].length);
			}
		}
	}
	return l_ret;
}
// Format the search string
function formatSearch(v_s){
	v_s=_lc(v_s);
	v_s=supAccent(v_s);
	v_s=v_s.replace(/\+/gi,",");
	v_s=v_s.replace(/;/gi,",");
	v_s=v_s.replace(/"/gi," ");
	v_s=v_s.replace(/\./gi," ");
	v_s=v_s.replace(/'/gi," ");
	v_s=v_s.replace(/, /gi,",");
	v_s=v_s.replace(/  /gi," ");
	return v_s;
}
// Replace accentuated signs
function supAccent(v_s){
	v_s=v_s.replace(/[àâä]/gi,"a");
	v_s=v_s.replace(/[éèêë]/gi,"e");
	v_s=v_s.replace(/[îï]/gi,"i");
	v_s=v_s.replace(/[ôö]/gi,"o");
	v_s=v_s.replace(/[ùûü]/gi,"u");
	v_s=v_s.replace(/[ç]/gi,"c");
	return v_s;
}
// check email validity
function checkEmail(v_email){
	var l_ret=true;
	var l_reg = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$/;
	if (l_reg.exec(v_email)==null){l_ret=false;}
	return l_ret;
}
// Get var value in a string
function getVar(v_s,v_var){
	var l_ret="",l_items=v_s.split("&");
	for (var i=0;i<l_items.length;i++) {
		var l_arr=l_items[i].split("=");
		if (l_arr[0]==v_var) {
			l_ret=_unesc(l_arr[1]);
		}
	}
	return l_ret;
}
//suppress a var
function supVar(v_s,v_var){
	var l_items=v_s.split("&");
	for (var i=0;i<l_items.length;i++) {
		var l_arr=l_items[i].split("=");
		if (l_arr[0]==v_var) {
			l_items.splice(i,1);
		}
	}
	return l_items.join("&");
}
function textToHtml(v_s){
	v_s=v_s.replace(/\&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/  /g,"&nbsp; ").replace(/\r/g,"");
	v_s=(IE)?v_s.replace(/\n/g,"<BR>"):v_s.replace(/\n/g,"<br>");
	return v_s;
}
function htmlToText(v_s){
	v_s=v_s.replace(/\&amp;/g,"&").replace(/\&lt;/g,"<").replace(/&gt;/g,">").replace(/\&nbsp;/g," ").replace(/<BR>/g,"\r\n").replace(/<br>/g,"\r\n");
	return v_s;
}
function textToXml(v_s){
	var l_xml;
	if (document.implementation.createDocument){ 
		// Firefox XML object creation 
		var parser = new DOMParser(); 
		l_xml = parser.parseFromString(v_s, "text/xml"); 
	} else if (window.ActiveXObject){ 
		// IE XML object creation
		l_xml = new ActiveXObject("Microsoft.XMLDOM"); 
		l_xml.async="false";
		l_xml.loadXML(v_s);
	}
	return l_xml;
}
function _hesc(v_s){return htmlToText(v_s);}
function _args(v_s){
	v_s=(v_s)?v_s:window.location.search;
	if (v_s.substr(0,1)=='&'||v_s.substr(0,1)=='?') v_s=v_s.substr(1);
	var l_arr=v_s.split('&');
	var l_ret=[];
	for (var i=0;i<l_arr.length;i++){
		var pair=l_arr[i].split('=');
		l_ret[pair[0]]=pair[1];
	}
	return l_ret;
}
function formatString(v_s){
	return v_s.replace(/\'/g," ");
}
function doubleToSimpleCot(v_s){
	return v_s.replace(/"/g,"'");
}
// Suppress unused blanks before string
function _trim(v_s){
	var l_ws=new String(" \t\n\r");
	var l_ret=new String(v_s);
	if (l_ws.indexOf(l_ret.charAt(0))!=-1){
		var l_i=0,l_l=l_ret.length;
		while (l_i<l_l && l_ws.indexOf(l_ret.charAt(l_i))!=-1){
			l_i++;
		}
		l_ret=l_ret.substring(l_i,l_l);
	}
	return l_ret;
}
// Sort dates
function sortDate(a,b){
	if (a.date<b.date) return -1;
	if (a.date>b.date) return 1;
	return 0; 
}
// Sorting function for bloc showing type
function blocSort(v_a,v_b){
	if (v_a.newcol<v_b.newcol) return -1;
	if (v_a.newcol>v_b.newcol) return 1;
	if (v_a.newpos<v_b.newpos) return -1;
	if (v_a.newpos>v_b.newpos) return 1;
	return 0; 
}
// Sorting function for newspaper showing type
function newspaperSort(v_a,v_b){
	if (v_a.posj<v_b.posj) return -1;
	if (v_a.posj>v_b.posj) return 1;
	return 0; 
}
// Activate a style sheet
function setActiveStyleSheet(v_css) {
	var l_link;
	for(var i=0;(l_link=document.getElementsByTagName("link")[i]);i++) {
		if(l_link.getAttribute("rel").indexOf("style") != -1 && l_link.getAttribute("title")) {
			l_link.disabled = true;
			if(l_link.getAttribute("title")=="css"+v_css) l_link.disabled = false;
		}
	}
}
// Select the next style sheet
function nextstyle(){
	if (NS){p_alert.show(lg("msgOptNS"));}
	else {
		if (p_area.style==__themeNb) p_area.style=0;
		p_area.style++;
		setActiveStyleSheet(p_area.style);
	}
}
// Select the previous style sheet
function prevstyle(){
	if (NS){p_alert.show(lg("msgOptNS"));}
	else {
		if (p_area.style==1) p_area.style=__themeNb+1;
		p_area.style--;
		setActiveStyleSheet(p_area.style);
	}
}
// redirect to correct link depending on folder
function link(v_url,v_newpage,v_uselang){
	var l_url=v_url;
	if (v_uselang) l_url="../l10n/"+__lang+"/"+l_url;
	if (l_url.substr(0,7)!="http://") l_url=pfolder+l_url;
	if (v_newpage){
		window.open(l_url);
	} else {
		window.location=l_url;
	}
	return false;
}
// simplified URL
function simpleUrl(v_url){
	if (v_url.indexOf("?")>0){v_url=v_url.substr(0,v_url.indexOf("?"));}
	if (v_url.indexOf("#")>0){v_url=v_url.substr(0,v_url.indexOf("#"));}
	return v_url;
}
function ishttp(url){
	return (url.substr(0,7)=="http://");
}
function noinclusion(){
//	if (parent.frames.length!=0) top.location.href=document.location.href;
	if (parent.frames.length!=window.frames.length) top.location.href=document.location.href;
}
// Add to the bookmarks
function addFav(){
	var l_url=simpleUrl(window.location.href);
	window.external.addfavorite(l_url,lg("msgFav"));
}
// Add URL as the starting page
function addHome(){
	var l_url=simpleUrl(window.location.href);
	document.body.style.behavior='url(#default#homepage)';document.body.setHomePage(l_url);
}
// show new user help
function homebar(){
	var l_s="<table cellpadding='0' cellspacing='0' width='100%'><tr>";
	l_s+="<td valign='top' width='33%'><b>1/ "+lg("lblAddMenu")+"</b><br /><br /><center>"+img("homebar_1.gif")+"</center></td>";
	l_s+="<td class='lefthr' valign='top' width='33%'><b>2/ "+lg("lblEditMenu")+"</b><br /><br /><center>"+img("homebar_2.gif")+"</center></td>";
	l_s+="<td class='lefthr' valign='top'><b>3/ "+lg("lblSave")+"</b><br /><br /><center>"+img("homebar_3.gif")+"</center></td>";
	l_s+="</tr></table>";
	navPrint("box",box(0,lg("lblBeginningWith")+__apname,"hideBox()",l_s));
	navShow("box","block");
}
// Valid the input value
function validKeys(v_form){
	var l_value=v_form.searchtxt.value;
	if (l_value.substr(0,3)=='ex:' || l_value==''){p_alert.show(lg("msgKWInput"));return false;}
	else {
		var i=0,l_pos=0,l_newpos;
		while (l_value.indexOf(',',l_pos)!=-1){
			l_newpos=l_value.indexOf(',',l_pos);
			if (l_value.substring(l_pos,l_newpos)!='' && l_value.substring(l_pos,l_newpos)!=' '){i++;}
			l_pos=l_newpos+1;
		}
		if (l_value.substr(l_pos)!='' && l_value.substr(l_pos)!=' '){i++;}
		if (i<5){p_alert.show(lg("msgKWError"));return false;}
		else {
			v_form.searchtxt.value=formatSearch(l_value);
			return true;
		}
	}
}
// Show help messages
function help(v_id){
	var msg;
	switch(v_id){
		case 1:msg=lg("msgHelp1");break;
	}
	p_alert.show(msg);
	return false;
}
// open help box
function openHelp(){
	link("firstusage.html",true,true);
	return false;
}
function errorMsg(v_id){
	return lg("msgError"+v_id);
}
// Compute delai between a date and now
function dateDelai(v_date){
	v_date=_trim(v_date);
	v_date=v_date.replace("CEST","CST");
	var l_delai,l_try,l_date=new Date(v_date);
	if (isNaN(l_date)) {l_try=v_date.substr(0,12)+"20"+v_date.substr(12);l_date=new Date(l_try);}
	if (isNaN(l_date)) {l_try=v_date.substr(0,7)+"20"+v_date.substr(7);l_date=new Date(l_try);}
	if (isNaN(l_date)) {l_date=new Date(parseInt(v_date.substr(0,4),10),(parseInt(v_date.substr(5,7),10)-1),parseInt(v_date.substr(8,10),10),parseInt(v_date.substr(11,13),10),parseInt(v_date.substr(14,16),10),0);}
	if (isNaN(l_date)) {l_date=new Date(parseInt(v_date.substr(0,4),10),(parseInt(v_date.substr(5,7),10)-1),parseInt(v_date.substr(8,10),10));}
	if (isNaN(l_date)) {l_date=new Date(parseInt(v_date.substr(6,10),10),(parseInt(v_date.substr(3,5),10)-1),parseInt(v_date.substr(0,2),10));}
	if (!isNaN(l_date)){
		var now=new Date();
		l_delai=(now.getTime()-l_date.getTime())/1000;
		if (l_delai<-1000) l_delai=864000;
	}
	return l_delai;
}
// Format date range
function formatDelai(v_t){
	var l_ret="";
	if (!isNaN(v_t)){
		if (v_t<=60){ret=lg("lblThereIs")+"1 "+lg("lblMinute");}
		else if (v_t<=3600){l_ret=lg("lblThereIs")+Math.floor(v_t/60)+" "+lg("lblMinute");}
		else if (v_t<=86400){l_ret=lg("lblThereIs")+Math.floor(v_t/3600)+" "+lg("lblHour");}
		else {l_ret=lg("lblThereIs")+Math.floor(v_t/86400)+" "+lg("lblDay");}
	}
	return l_ret;
}
function openPage(v_p){if (v_p) link("../portal/mypage.php?start="+v_p);}
function logout(){link("../portal/scr_authentif.php?act=logout");}
// Return to connected homepage
function goIndex(){
	//window.location=((window.location.href).substr(0,((window.location.href).indexOf(".php")-1)))+"0.php";
	link("../portal/mymodules.php");
	return false;
}
function goArchive(){
	link("../portal/myinfo.php");
	return false;
}
// Get session variable
function getSession(){
	var url=window.location.href;
	var l_p1=url.indexOf("page_")+5;
	var l_p2=url.indexOf("_",l_p1);
	return url.substring(l_p1,l_p2);
}
// Format user identifier
function shortName(v_n){
	if (v_n.indexOf("@")>0) {v_n=v_n.substr(0,(v_n.indexOf("@")));}
	return v_n;
}
function helpMove(){
	return img("ico_right_arrow.gif",6,9,"","imgmid")+lg("lblhelpMove");
}
function changePageTitle(v_title){
	if (v_title==indef) {v_title=p_tabs.currName+(p_rss.unread==0?"":" ("+p_rss.unread+")");}
	document.title=v_title+' :: '+__apname;
}
function getRadioValue(v_element){
	for (var i=0; i<v_element.length;i++) {
		if (v_element[i].checked) return v_element[i].value;
	}
	return false;
}
function dbDateFormat(v_day,v_month,v_year){
	v_month=("00").substr(0,2-v_month.length)+v_month;
	v_day=("00").substr(0,2-v_day.length)+v_day;
	return v_year+"-"+v_month+"-"+v_day;
}
function debug(v_msg,v_type){
	if (__debugmode){
		if (_gel("debug")!=null){
			l_msg=textToHtml(v_msg);
			var l_style="";
			if (v_type==indef) v_type="info"
			switch(v_type){
				case "error":l_style="color: #ff0000";break;
				case "warning":l_style="color: orange";break;
			}
			var l_obj=_gel("debug");
			var l_date=new Date();
			l_obj.style.display="block";
			l_obj.innerHTML="<table cellpadding='0' cellspacing='0'><tr><td width='80' valign='top'>"+l_date.getHours()+":"+l_date.getMinutes()+":"+l_date.getSeconds()+"></td><td style='"+l_style+"'> "+l_msg+"</td></tr></table>"+l_obj.innerHTML;
		}
	}
}
function getWindowWidth(){
	if(typeof(window.innerWidth)=='number'){
	    return window.innerWidth;
	} else if( document.documentElement && document.documentElement.clientWidth){
		return document.documentElement.clientWidth;
	  } else if( document.body && document.body.clientWidth){
		return document.body.clientWidth;
	}
}
function getWindowHeight(){
	if(typeof(window.innerHeight)=='number'){
	    return window.innerHeight;
	} else if(document.documentElement && document.documentElement.clientHeight){
		return document.documentElement.clientHeight;
	  } else if(document.body && document.body.clientHeight){
		return document.body.clientHeight;
	}
}
//======================================================================================================================
//==                            XML FEEDS MANAGEMENT
//======================================================================================================================

// Get XML results
function getXml(v_url,fct,v_fctvars,v_type,v_vars,v_method){
	var xmlhttp=null;
	if (v_type==indef) v_type="xml";
	if (v_method==indef) v_method="GET";
	if (!pfolder) {pfolder="";}

	if (window.XMLHttpRequest) {
		xmlhttp = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else {debug(lg("msgXMLmissing"));}
	
	xmlhttp.onreadystatechange = function() {
		if (xmlhttp.readyState == 4) {// only if req shows "loaded"
			if (xmlhttp.status >= 400) {
				debug("Xml file not read : "+v_url+" (status "+xmlhttp.status+")","error");
				debug("Content read : "+xmlhttp.responseText,"error");
			} else {
				var l_ret=(v_type=="xml")?xmlhttp.responseXML:xmlhttp.responseText;
				fct(l_ret,v_fctvars);
			}
		}
	}

	//if rss feed, check proxy settings
	if (v_vars!=indef && getVar(v_vars,"rssurl")!="" && __proxypacfile!=""){
		v_vars+="&proxy="+getProxy(getVar(v_vars,"rssurl"));
	}

	// if url not on the same domain, use tunnel
	if (v_url.substr(0,7)=="http://"){
		//if file is located on the current server
		if (v_url.substr(7,(location.hostname).length)==location.hostname) {l_feed=v_url;}
		else {
			if (__useproxy){
				if (__proxypacfile=="")	l_feed=pfolder+"../tools/xmltunproxy.php?url="+v_url;
				else {
					if (getProxy(v_url)==""){
						l_feed=pfolder+"../tools/xmltun.php?url="+v_url;
					} else {
						l_feed=pfolder+"../tools/xmltunproxypac.php?url="+v_url+"&proxy="+getProxy(v_url);
					}
				}			
			} else {
				if (v_vars==indef || getVar(v_vars,"auth")==""){
					l_feed=pfolder+"../tools/xmltun.php?url="+v_url;
				} else {
					l_feed=pfolder+"../tools/xmltunauth.php?auth="+getVar(v_vars,"auth")+"&url="+v_url;
				}
			}
		}
	} else {
		l_feed=v_url.substr(0,3)=="../"?v_url:pfolder+v_url;
	}

	xmlhttp.open(v_method,l_feed, true);
	if (v_method=="GET"){
		xmlhttp.send(null);
	} else {
		xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		xmlhttp.send(v_vars);
	}
	//debug (need to activate debug mode)
	debug("read "+v_type+" : "+v_url+" (variables: "+v_vars+")");
}
// Execute PHP script with XML file
function executescr(v_scr,v_vars,v_alarm,v_forced,fct){
	var l_noerror=true;
	if (allowSave||v_forced){
		var xmlhttp=null;
		if (window.XMLHttpRequest) {
			xmlhttp = new XMLHttpRequest();
		} else if (window.ActiveXObject) {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		else {p_alert.show(lg("msgXMLnav"));l_noerror=false;}
		xmlhttp.onreadystatechange = function() {
			if (xmlhttp.readyState == 4) {// only if req shows "loaded"
				if (xmlhttp.status >= 400) {
					debug("Xml file not read : "+v_scr,"error");
					l_noerror=false;
				} else {
					if (xmlhttp.responseXML.getElementsByTagName("status")[0]){
						if (xmlhttp.responseXML.getElementsByTagName("msg")[0]) {
							var l_msg=getXMLval(xmlhttp.responseXML,"msg","str",false,lg("msgXMLerror")+"(1)");
//							var l_node
//							if (l_node.firstChild.nodeType == 3){l_node.removeChild(l_node.firstChild);}
//							var l_msg=xmlhttp.responseXML.getElementsByTagName("msg")[0].firstChild.nodeValue;
						}
						if (xmlhttp.responseXML.getElementsByTagName("ret")[0]) var l_ret=xmlhttp.responseXML.getElementsByTagName("ret")[0].firstChild.nodeValue;
						if (v_alarm&&l_msg){p_alert.show(l_msg)}
						if (fct) {if (l_ret){fct(l_ret);}else{fct();};}
					} else {
						debug("Xml file not correct : "+v_scr,"error");
						debug("Content read : "+xmlhttp.responseText,"error");
						l_noerror=false;
					}
				}
			}
		}
		var l_feed=pfolder+v_scr;
//if (!IE) {netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite");}
		xmlhttp.open("POST",l_feed, true);
		xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
//alert(l_feed+" : "+v_vars);
		xmlhttp.send(v_vars);
	}
	//debug
	debug("execute : "+l_feed+" (variables: "+v_vars+")");
	return l_noerror;
}
function getXMLprop(v_item,v_name,v_type,v_required,v_default){
	if (v_default==indef) v_default="";
	if (v_required&&!v_item.getAttribute(v_name)){p_alert.show(lg("msgModuleIssue"));return v_default;}
	var l_prop=(v_item.getAttribute(v_name))?v_item.getAttribute(v_name):v_default;
	if (v_type=="int") l_prop=parseInt(l_prop,10);
	return l_prop;
}
function getXMLval(v_item,v_name,v_type,v_required,v_default){
	if (v_default==indef) v_default="";
	var l_node=v_item.getElementsByTagName(v_name)[0];
	if (!l_node||!l_node.firstChild||!l_node.firstChild.nodeValue){
		if (v_required) p_alert.show(lg("msgModuleIssue"));
		return v_default;
	} else {
//if (v_name=="msg") alert(v_name+" "+l_node.firstChild.nodeType+' -'+l_node.firstChild.nodeValue.charCodeAt(0)+'-');
		//if there is a space between xml tag and xml value
		if (l_node.firstChild.nodeType==3&&l_node.firstChild.nodeValue.charCodeAt(0)==10) {l_node.removeChild(l_node.firstChild);}
		var l_val=(l_node.firstChild.nodeValue)?l_node.firstChild.nodeValue:v_default;
		if (v_type=="int") l_val=parseInt(l_val,10);
		return l_val;
	}
}

//=============================================================================================================
//==					OBJECTS CREATION & METHODS
//=============================================================================================================

// Module class (col=column / pos=position in the column / minModSize=size mini of the module / updModSize=is the module resizable / x=left position / y=top position / rank=uniq id of the module)
function moduleObj (col,pos,posj,height,id,link,name,vars,minModSize,updModSize,size,url,x,y,uniq_db,format,nbvars,blocked,minimize,icon,isLoaded,header,footer){
	this.col=col;
	this.pos=pos;
	this.posj=posj;
	this.height=height;
	this.size=size;
	this.id=id;
	this.link=link;
	this.name=name;
	this.vars=vars;
	this.minModSize=minModSize;
	this.updModSize=updModSize;
	this.url=url;
	this.y=y;
	this.x=x;
	this.uniq=uniq_db;
	this.format=format;
	this.newcol=col;
	this.newpos=pos;
	this.newposj=posj;
	this.nbvars=nbvars;
	this.blocked=(blocked && blocked==1)?true:false;
	this.minimized=(minimize && minimize==1)?true:false;
	this.icon=(icon==indef)?"box0_"+this.id+".gif":icon;
	this.isLoaded=isLoaded;
	this.header=header;
	this.footer=footer;
	this.create=create;
	this.destruct=destruct;
	this.show=showMod;
	this.refresh=refreshMod;
	this.changeVar=changeVar;
	this.placeinCol=placeinCol;
	this.placeonTop=placeonTop;
	this.setHeight=modSetHeight;
	this.hdrColor=modHdrColor;
	this.getIcon=modGetIcon;
	this.nbunread=0;
}
// Module creation method
function create(){
	var l_obj=null;
	l_obj=document.createElement("DIV");
	l_obj.style.display="none";
	//place new modules
	if (this.uniq==0) {maxUniq++;this.uniq=maxUniq;changeUniq(uniqToId(this.uniq),this.uniq);}
	l_obj.id="module"+this.uniq;
	l_obj.className="module";
	//attach DIV to the corresponding column. if new module this.col=0 => col[0] need to be created
	if (this.col!=-1){
		if (p_area.showType==0||this.col==0){cols[this.col].appendChild(l_obj);} else {cols[1].appendChild(l_obj);}
	} else {document.appendChild(l_obj);}
	var l_s="<table id='bmod"+this.uniq+"' class='bmod' cellspacing='0' cellpadding='0' width='100%'><tbody><tr><td class='headmod' onmouseover='showmodoptions("+this.uniq+",true)' onmouseout='showmodoptions("+this.uniq+",false)'>";
	l_s+="<table id='hmod"+this.uniq+"' class='hmod' cellpadding='0' cellspacing='0' width='100%'><tr><td width='100%'><div class='titmod' id='module"+this.uniq+"_h'>"+this.name+"</div></td>";
	//l_s+="<td class='optmod' id='module"+this.uniq+"_o' nowrap='nowrap'>";
	l_s+="<td class='optmod' id='module"+this.uniq+"_o' nowrap='nowrap'>";
	if (this.nbvars>0 || __barcolnb>1) l_s+="<a href='#' onclick='return p_param.show("+this.uniq+");'>"+lg("lblConfigure")+"</a>&nbsp;";
	if (jsid!=0&&__useSharing) l_s+="<a href='#' onclick='return p_friends.menu(0,uniqToId("+this.uniq+"))'>"+img("ico_share_s.gif",11,9,lg("lblShareModule"))+"</a>&nbsp;";
	l_s+="<a href='#' onclick='return module[uniqToId("+this.uniq+")].refresh(0);'>"+img("ico_refresh.gif",13,9,lg("lblRefresh"))+"</a>&nbsp;";
	if (!this.blocked) l_s+="<a href='#' onclick='p_area.module.minimize("+this.uniq+");return false'>"+img((this.minimized?"ico_maximize.gif":"ico_minimize.gif"),11,9,"minimize","","imgminimize"+this.uniq)+"</a>&nbsp;";
	if (!this.blocked) l_s+="<a href='#' onclick='p_area.module.suppress("+this.uniq+",true);return false'>"+img("ico_close.gif",9,9,lg("lblSuppress"))+"</a>&nbsp;";
	l_s+="&nbsp;</td></tr></table>";
	l_s+="<div id='editbar"+this.uniq+"' class='editbox'></div>";
	l_s+="</td></tr><tr><td><div class='content'>";
	l_s+="<table border='0' cellpadding='0' cellspacing='0' align='center' width='100%'><tr><td id='module"+this.uniq+"_c'"+(this.minimized?" style='display:none'":"")+">";
	if (this.format=="I") l_s+="<iframe id='modfram"+this.uniq+"' src='"+this.url+"pid="+jsid+"&prof="+jsprof+"&p="+this.uniq+"&"+this.vars+"' frameborder='no' marginwidth='0' marginheight='0' scrolling='no' style='height:"+this.height+"px;width:100%;z-index:auto;'>Issue with module display.<a href='../portal/contact.php' target='_blank'>Contact us</a></iframe><br />";
//	if (this.format=="H") l_s+="<IFRAME id='modfram"+this.uniq+"' src='"+pfolder+"empty_module.html' frameborder=NO marginwidth=0 marginheight=0 scrolling=NO style='height:"+this.height+"px;width:100%;z-index:auto;'>Issue with module display.<A href='../portal/contact.php' target='_blank'>Contact us</A></IFRAME><BR />";
	if (this.format=="H") l_s+="<iframe id='modfram"+this.uniq+"' src='' frameborder='no' marginwidth='0' marginheight='0' scrolling='no' style='height:"+this.height+"px;width:100%;z-index:auto;'>Issue with module display.<a href='../portal/contact.php' target='_blank'>Contact us</a></iframe><br />";
	if (this.format=="R"||this.format=="M") l_s+=lg("lblLoading");
	l_s+=img("s.gif",this.minModSize,1)+"<br /></td></tr></table>";
	if (__useNotation&&jsid>0) l_s+=p_notation.buildBlock(this.uniq);
	l_s+="</td></tr></tbody></table>";
	//be carefull : if the module is generated in a <FORM> tag, there will be a bug in the next line
	l_obj.innerHTML=l_s;

	//load the content
	if (this.format=="R") p_rss.refresh(uniqToId(this.uniq),0);
	if (this.format=="M") refreshModCont(uniqToId(this.uniq));
//	if (this.format=="H") refreshHtmlCont(uniqToId(this.uniq));
	if (this.format=="I"){
		if (this.nbvars>0) p_param.getModuleParam(uniqToId(this.uniq));
		else if (__barcolnb>1) p_param.fillEditBox(indef,this.uniq);
	}
	this.hdrColor();
	this.getIcon();
}
// Destruct a module
function destruct(){
	var l_obj=document.getElementById("module"+this.uniq);
	var l_col=this.newcol;
	if (p_area.showType==1 && this.newcol!=0) l_col=1;
	cols[l_col].removeChild(l_obj);
}
// Module refresh method
function refreshMod(v_act){
	var l_id=uniqToId(this.uniq);
	module[l_id].isLoaded=false;
	if (this.format=="I"){var l_obj=_gel("modfram"+this.uniq);l_obj.src=module[l_id].url+"pid="+jsid+"&prof="+jsprof+"&p="+module[l_id].uniq+"&"+module[l_id].vars;}
	if (this.format=="R"){p_area.module.supFeed(this.uniq);p_rss.refresh(l_id,v_act);}
	if (this.format=="M"){refreshModCont(l_id);}
	return false;
}
// Place a module on top of a column
function placeonTop(){
	//change the position of the modules that are placed in the destination column
	for (var i=0;i<module.length;i++){
		if (module[i].newcol==this.newcol) module[i].newpos+=1;
		if (this.format!='R' && module[i].format!='R') module[i].newposj++;
	}
	//set the position of the module added (usefull ?? treated before ??)
	this.newpos=1
	
	if (p_area.showType==0){var l_col=this.newcol;}else{var l_col=1;}
	if (_gel("module"+this.uniq)!=null){
		var l_firstInCol=cols[l_col].firstChild;
		var l_movedMod=_gel("module"+this.uniq);
		if (p_area.showType==0||this.format!='R'){cols[l_col].insertBefore(l_movedMod,l_firstInCol);initMove(l_movedMod,"module",cols,"multidim",true);}
		else {p_newspaper.show(true);}
	}
}
// Place a module on top of a column
function placeinCol(v_col){
	if (!maxModReached()) {
		this.newcol=v_col;
		this.placeonTop();
		if (p_banner.option.ctrl=='Y') {p_area.module.showHdr();}
		var l_vars=[];
		l_vars[0]=v_col;
		saveChanges(l_vars);
	}
}
//set module height
function modSetHeight(v_height){
	navHeight("modfram"+this.uniq,v_height);
}
function _IG_AdjustIFrameHeight(){
	var l_height;
	if (document.height){
		l_height=document.height;
	} else if (document.all) {
		if (document.compatMode && document.compatMode != 'BackCompat') {
			l_height=document.documentElement.scrollHeight + 5;
		} else {
			l_height = document.body.scrollHeight + 5;
		}
	} 
	if (navigator.appName=="Netscape")
	{	 top.outerHeight=l_height;} 
	else top.resizeTo(400,l_height);
}
// Change a module or all module variable
function changeVar(v_var,v_value){
	var l_oldVars=this.vars;
	if (v_var==""){l_newVars=v_value;}
	else {
		var l_oldValue=getVar(l_oldVars,v_var);
		var l_newVars=l_oldVars.replace(v_var+"="+l_oldValue+"&","").replace("&"+v_var+"="+l_oldValue,"").replace(v_var+"="+l_oldValue,"");
		l_newVars=(l_newVars=="")?(v_var+"="+v_value):(l_newVars+"&"+v_var+"="+v_value);
	}
	this.vars=l_newVars;
	//record changes in DB
	if (l_oldVars!=l_newVars) executescr("scr_savevar.php","prof="+jsprof+"&un="+this.uniq+"&vars="+_esc(l_newVars),false);
}
// Module display - called when modules are loaded
function showMod(){navShow('module'+this.uniq,"block");}
//change module header color
function modHdrColor(v_uniq,v_style){
	if (!v_uniq) v_uniq=this.uniq;
	if (!v_style) v_style=getVar(this.vars,"bcolor");
	var l_obj=_gel("module"+v_uniq);
	l_obj.className="module"+v_style;
}
function modGetIcon(){
	if (getVar(this.vars,"icon")!=""){
		this.icon=getVar(this.vars,"icon");
	}
//	else {
//		this.icon"box0_"+this.id+".gif";
//	}
}
// show / hide modules options  BUG: let the function name in lowercase
function showmodoptions(v_uniq,v_status){
	var l_obj=_gel("module"+v_uniq+"_o");
	if (l_obj) l_obj.className=(v_status?"optmoda":"optmod");
}
// Pages Tab class
function tabObj(id,label,type,fct,lock,seq,editable,movable){
	if (lock==indef) lock="";
	this.id=id;
	this.label=label;
	this.type=type;
	this.fct=fct;
	this.lock=lock;
	this.seq=seq;
	this.editable=editable;
	this.movable=movable;
}
// RSS article class
function feedObj(id,modId,modUniq,modName,title,link,image,date,desc){
	this.id=id;
	this.modId=modId;
	this.modUniq=modUniq;
	this.modName=modName;
	this.title=title;
	this.link=link;
	this.image=image;
	this.date=date;
	this.desc=desc;
}
// Modules preferences
function _IG_Prefs(uniq){
	this.uniq=uniq;
	this.id=uniqToId(uniq);
	this.vars=module[this.id].vars;
	this.getString=getString;
	this.getInt=getInt;
	this.getBool=getBool;
	this.set=setPrefVal;
	this.open=openPref;
}
function getString(v_var){
	return getVar(this.vars,v_var);
}
function getInt(v_var){
	return parseInt(getVar(this.vars,v_var),10);
}
function getBool(v_var){
	return (getVar(this.vars,v_var)==1?true:false);
}
function setPrefVal(v_var,v_value){
	module[this.id].changeVar(v_var,v_value);
//	module[this.id].refresh();
}
function openPref(){}

//=============================================================================================================
//==					MODULES MANAGEMENT
//=============================================================================================================

// Manage portal objects
var p_area={
	isLoaded:false,
	root:{},
	style:1,
	showType:0,
	locked:false,
	load:function(v_page,v_id){
		module.length=0;
		p_rss.init();
		if (!v_id) v_id="";
		var l_method=(v_id=="")?"GET":"POST";
		getXml(v_page,p_area.treat,"","xml",v_id,l_method);
	},
	treat:function(response,vars){
		var i=0,result;
		//if not yet install
		if (response.getElementsByTagName("install")[0]) link("../portal/installrequested.html");
		//if connected mode
		//if (response.getElementsByTagName("empty")[0]) link("../portal/login.php");
		var l_type=getXMLval(response,"type","int",false,1);
		if (l_type==1){
			//if page locked
			if (getXMLval(response,"pagelocked","int",false,0)==1){
				navPrint('loading','');
				p_area.locked=true;
				askCode();
			} else {
				p_area.locked=false;
				p_area.col.nb=getXMLval(response,"nbcol","int",false,p_area.col.nb);
				p_area.showType=getXMLval(response,"showtype","int",false,p_area.showType);
				p_newspaper.nb=getXMLval(response,"npnb","int",false,p_newspaper.nb);
				p_banner.option.ctrl=getXMLval(response,"ctrl","str",false,p_banner.option.ctrl);
				p_area.style=getXMLval(response,"style","int",false,1);
				jspass=getXMLval(response,"usepass","str",false,"");
				p_banner.info.requested=getXMLval(response,"advise","str",false,p_banner.info.requested);
				p_rss.usereader=getXMLval(response,"usereader","int",false,p_rss.usereader);
				p_pages.def=getXMLval(response,"default","str",false,p_pages.def);
				while (response.getElementsByTagName("module")[i]){
					result=response.getElementsByTagName("module")[i];
					module[i]=new moduleObj(getXMLval(result,"col","int",true,0),getXMLval(result,"pos","int",false,0),getXMLval(result,"posj","int",false,0),getXMLval(result,"height","int",false,100),getXMLval(result,"id","int",false,0),getXMLval(result,"site","str",false,"/"),getXMLval(result,"name","str",false,"--"),getXMLval(result,"vars","str",false,""),getXMLval(result,"minmodsize","int",false,180),getXMLval(result,"updmodsize","int",false,1),getXMLval(result,"minmodsize","int",false,180),getXMLval(result,"url","str",false,""),0,0,getXMLval(result,"uniq","int",false,0),getXMLval(result,"format","str",false,"I"),getXMLval(result,"nbvars","int",false,0),getXMLval(result,"blocked","int",false,0),getXMLval(result,"minimized","int",false,0));
					i++;
				}
				stats();
				setActiveStyleSheet(p_area.style);
				p_area.init();
			}
		} else if (l_type==2){
			p_area.frame(getXMLval(response,"param","str",false,"about:blank"));
			loading(false);
		} else if (l_type==3){eval(getXMLval(response,"param","str",false,""));loading(false);}
	},
	init:function(){
		startLoading();
		p_area.clean(p_area.root);
		if (p_area.showType==1) p_newspaper.hide();
		navShow("modules","block");
		navShow("advise","block");
		p_area.col.createAll();
		p_area.module.createAll();
		if (p_banner.option.ctrl=='Y'){p_area.module.showHdr();}
		displayItems();
		p_area.col.isInit=false;
		useMod=true;
		displayItems();
		//	if (p_area.showType==0||sourceNb>=p_rss.sources.length)loading(false);
		loading(false);
		checkcook();
		//prevent cols to be wider than 400px
//		if (p_area.showType==0){for (var i=1;i<=p_area.col.nb;i++){cols[i].style.width="400px";};}else {cols[1].style.width="400px";}
	},
	clean:function(v_mainObj){
		var l_obj=null;
		//suppress all the descendant nodes of mainObj
		if (v_mainObj!=null){
			while (v_mainObj.hasChildNodes()){
				l_obj=v_mainObj;
				while (l_obj.hasChildNodes()) l_obj=l_obj.firstChild;
				l_obj=l_obj.parentNode;
				l_obj.removeChild(l_obj.firstChild);
			}
		}
	},
	frame:function(v_url,v_id){
		if (v_id!=indef) {p_tabs.create(indef,indef,indef,v_id);}
		//if (showBoxStatus){hideBox();}
		navShow("modules","none");
		navShow("advise","none");
		navShow("box","none");
		var l_s="<iframe src='"+v_url+"' frameborder='no' marginwidth='0' marginheight='0' scrolling='auto' style='height:500px;width:100%;z-index:auto;'></iframe>"
		navPrint("other",l_s);
		navShow("other","block");
	},
	hideFrame:function(){
		navPrint("other","");
		navShow("other","none");
	},
	footer:function(){
		navPrint("footer",__footer);
	}
}
p_area.col={
	isInit:false,
	nb:0,
	createAll:function(){
		var l_table=document.createElement("TABLE");
		//condition suppressed with 1.0.0 : better placement without and reused for version 1.1
		l_table.style.width="100%";
		l_table.cellSpacing=4;
		l_table.style.border=0;
		var l_tbody=document.createElement("TBODY");
		var l_tr=document.createElement("TR");
		l_tr.id="maintr";
		if (p_area.showType==0){for (var i=1;i<=p_area.col.nb;i++){l_tr.appendChild(p_area.col.create(i));};} else {l_tr.appendChild(p_area.col.create(1));}
		p_area.col.size();
		l_tbody.appendChild(l_tr);
		l_table.appendChild(l_tbody);
		p_area.root.appendChild(l_table);
	},
	init:function(){
		// Initialize column & modules behaviors
		// do not initialize the columns if already done
		if(p_area.col.isInit)return;
		p_area.col.isInit=true;
		for(var i=1;i<cols.length;i++){
			for(var l_item=0;l_item<cols[i].childNodes.length-1;l_item++){  
				var l_mod=cols[i].childNodes[l_item];
 				initMove(l_mod,"module",cols,"multidim",true);
			}
		}
	},
	create:function(v_id){
		cols[v_id]=document.createElement("TD");
		cols[v_id].id="col"+v_id;
		cols[v_id].style.verticalAlign="top";
	// cols[v_id].style.width=parseInt((100/p_area.col.nb),10)+"%";
		return cols[v_id];
	},
	size:function(){
		//if newspaper mode, the cols are not sized (=> if no module on col1, col1 width=0)
		if (p_area.showType==0){
			for (var i=1;i<cols.length;i++){cols[i].style.width=(parseInt((100/p_area.col.nb),10))+"%";}
		}
	},
	add:function(v_id){
		// Add columns (until selected one)
		var l_obj=_gel("maintr");
		// add the new cols
		if (p_area.showType==0){
			for (var i=p_area.col.nb+1;i<=v_id;i++){
				l_obj.appendChild(p_area.col.create(i));
				cols[i].appendChild(p_area.module.endList());
			}
			p_area.col.size();
		}
		p_area.col.nb=v_id;
	},
	sup:function(v_id){
		// Suppress columns
		var l_obj=_gel("maintr");
		if (p_area.showType==0){
			for (var i=p_area.col.nb;i>v_id;i--){
				//suppress the node
				l_obj.removeChild(cols[i]);
				delete(cols[i]);
				cols.length-=1;
			}
			p_area.col.size();
		}
		p_area.col.nb=v_id;
	},
	check:function(v_id){
		//check that the suppressed columns are empty
		var l_ret=true;
		if (v_id<p_area.col.nb){
			for (var i=0;i<module.length;i++){
				if (module[i].col>v_id){l_ret=false;p_alert.show(lg("msgColSup",module[i].col));break;}
			}
		}
		return l_ret;
	}
}
p_area.module={
	showAdminProperties:false,
	createAll:function(){
		// Create all the modules
		var l_col=1;
		var l_ontop=0;
		// compute the max Uniq ID
		for (var i=0;i<module.length;i++){if (module[i].uniq>maxUniq) maxUniq=module[i].uniq;}
		//sort the modules depending on the show type
		if (p_area.showType==0){module.sort(blocSort);} else {module.sort(newspaperSort);}
		for (var i=0;i<module.length;i++){
			while (module[i].col>l_col) l_col++;
			if (p_area.showType==0||module[i].format!='R') module[i].create();
			//if a module is added from outside of Portaneo
			if (module[i].pos==99){l_ontop=i;}
		}
		if (p_area.showType==1) {
			p_newspaper.init();
			p_newspaper.load();
			cols[1].appendChild(p_area.module.endList());
		}
		else {
			for (var i=1;i<=p_area.col.nb;i++){
				cols[i].appendChild(p_area.module.endList());
			}
		}
		if (l_ontop!=0) {module[l_ontop].placeonTop();var l_var=[];l_var[0]=module[l_ontop].col;saveChanges(l_var);}
	},
	suppress:function(v_uniq,v_confirm){
		// Suppress a module
		var l_id=uniqToId(v_uniq),l_ret=false;
		// if module to suppress is not yet included in the page
		if (showNewMod && l_id==(maxUniq)){closeNewMod();}
		else {
			var l_response=v_confirm?confirm(lg("msgModSup")):1;
			if (l_response==1)
			{
				//suppress linked RSS feeds
				if (module[l_id].format=='R') p_area.module.supFeed(v_uniq);

				//virtually change the module position
				for(var i=0;i<module.length;i++){
					if (module[i].newcol==module[l_id].newcol && module[i].newpos>module[l_id].newpos){module[i].newpos-=1;}
					if (module[i].newposj>module[l_id].newposj){module[i].newposj-=1;}
				}
				if (p_area.showType==0||module[l_id].format!='R') module[l_id].destruct();
				//register the suppression
				var l_vars=[];
				if (p_area.showType==0){l_vars[0]=module[l_id].col;}else{l_vars[0]=1;}
				saveChanges(l_vars,l_id);

				module.splice(l_id,1);
				l_ret=true;
			}
		}
		return l_ret;
	},
	minimize:function(v_uniq){
		var l_id=uniqToId(v_uniq);
		if (module[l_id].minimized){
			navShow("module"+v_uniq+"_c","block");
			module[l_id].minimized=false;
			(_gel("imgminimize"+v_uniq)).src="../images/ico_minimize.gif";
			executescr("scr_minimize.php","m=0&prof="+jsprof+"&u="+v_uniq);
		} else {
			navShow("module"+v_uniq+"_c","none");
			module[l_id].minimized=true;
			(_gel("imgminimize"+v_uniq)).src="../images/ico_maximize.gif";
			executescr("scr_minimize.php","m=1&prof="+jsprof+"&u="+v_uniq);
		}
	},
	supFeed:function(v_uniq){
		//suppress feeds linked to a module
		var i=0;
		while (p_rss.feeds[i]){
			if (p_rss.feeds[i].modUniq==v_uniq){p_rss.feeds.splice(i,1);} else {i++;}
		}
	},
	endList:function(){
		// Add an empty module at the bottom of a column
		var l_obj=null;
		l_obj=document.createElement("DIV");
		l_obj.className="necessary";
		l_obj.innerHTML="&nbsp;";
		// necessary to add an empty column
		l_obj.style.width="180px";
		return l_obj;
	},
	showHdr:function(){
		// Show the modules headers
		if (p_banner.option.ctrl=='Y'){changeStyle("hmod","display","block");navClass("movBtn","iconea");}
		else {
			navClass("movBtn","iconei");
			//FF bug fix
			if (!IE) navShow("modules","none");
			changeStyle("hmod","display","none");
			if (!IE) navShow("modules","block");
		}
	},
	switchHdr:function(){
		p_banner.option.ctrl=(p_banner.option.ctrl=='Y')?'N':'Y';
		//executescr("scr_controls.php","ctrl="+p_banner.option.ctrl+"&prof="+jsprof);
		p_area.module.showHdr();
	},
	changeTab:function(v_desttab,v_module){
		executescr("scr_addmodule_othertab.php","src="+tab[p_tabs.sel].id+"&dest="+tab[v_desttab].id+"&uniq="+v_module,false,false,p_area.module.suppress);
		//if (l_check){p_area.module.suppress(v_module);}
	},
	insertInTab:function(v_desttab,v_id){
		executescr("scr_addmodule_intab.php","dest="+tab[v_desttab].id+"&id="+v_id,false,false,p_area.module.suppress);
	},
	changeName:function(v_id,v_name){
		if (v_name!=indef) module[v_id].name=v_name;	
		var l_s=module[v_id].name;
		if (module[v_id].nbunread!=0) l_s="<font class='rssstatus'>("+module[v_id].nbunread+")</font> "+l_s;
		if (__showicon) l_s=img("../modules/pictures/"+module[v_id].icon,16,16,"","imgmid")+" "+l_s;
		//navPrint("module"+module[v_id].uniq+"_h",v_name.substr(0,20));
		navPrint("module"+module[v_id].uniq+"_h",l_s);
	}
}
var p_counter={
	timer:0,
	step:0,
	reset:function(v_step){
		if (p_counter.timer) p_counter.stop();
		p_counter.step=v_step?v_step:0;
		p_counter.timer=setInterval("p_counter.action()",10000);
	},
	action:function(){
		if (p_counter.step==1) loading(false);
		// other action are launched when user is connected
		if (jsid>0){
			if (p_counter.step==1&&__useSharing) p_msg.getNb();
			if (p_counter.step%90==89&&jspass!="") lockPage();
			if (__rssrefreshdelay!=0 && p_counter.step%__rssrefreshdelay==(__rssrefreshdelay-1)) p_rss.refreshAll();
			if (p_counter.step%2==1) p_banner.info.roll();
		}
		p_counter.step++;
	},
	stop:function(){
		clearTimeout(p_counter.timer);
	}
}
function startLoading(){
	p_area.isLoaded=false;
	navShow("loading","block");
	p_counter.reset();
}
// show the modules when they are all loaded
function loading(v_t){
	if (!v_t){
		for (var i=0;i<module.length;i++){module[i].show();}
		if (p_area.showType==1){
			//newspaper data treatment & show
			p_newspaper.show(true);
			navShow("newspaper","block");
		}
		navShow("loading","none");
		p_area.isLoaded=true;
		additionalMod();
	}
}
// Change uniq id of a module
function changeUniq(v_id,v_uniq){
	if (v_uniq==indef) v_uniq=maxUniq;
	executescr("scr_changeuniq.php","uniq="+v_uniq+"&prof="+jsprof+"&x="+module[v_id].newcol+"&y="+module[v_id].newpos);
}
// Get Module id from its uniq value
function uniqToId(v_uniq){
	for (var k=0;k<module.length;k++){if (module[k].uniq==v_uniq) return k;}
	return 0;
}
//get module id of a module object
function getModuleId(v_obj){
	var ret=-1;
	var l_objid=v_obj.id;
	if (l_objid.indexOf("module")>=0){
		var l_uniq=l_objid.replace(/module/,"");
		ret=uniqToId(l_uniq);
	}
	return ret;
}
// Display window items
function displayItems(){
	changeStyle("optmod","display","");
	//initialise modules move only if allowed and not in newspaper mode
	if(useMod&&p_area.showType==0){
		if(!p_area.col.isInit) p_area.col.init();
	}
}
// Create shadow
function mDiv(){
	if(!mDivObj){
		mDivObj=document.createElement("DIV");
		mDivObj.style.display="none";
		mDivObj.style.position="absolute";
		mDivObj.style.cursor="move";
		mDivObj.style.backgroundColor="#c6c3c6";
		mDivObj.style.paddingBottom="0px";
		document.body.appendChild(mDivObj)
	}
	return mDivObj
}
//** hide the shadow module after move
function hideDivMove(){
	mDiv().style.display="none";
	//IE bug : after module move, p_param.valid was not working any more
	p_area.clean(mDivObj);
} 
// Format the shadow module
function updModMove(v_content){
	v_content=_lc(v_content);
	//** suppress the iframes
	while(v_content.indexOf("<iframe")!=-1){
		var l_p1=v_content.indexOf("<iframe");
		var l_p2=v_content.indexOf("</iframe>")+9;
		v_content=v_content.substr(0,l_p1)+v_content.substr(l_p2,v_content.length);
	}
	return v_content;
}
// Module deplacement prototype
var p_move={
	obj:null,
	status:"",
	init:function(mObj){
		mObj.onmousedown=p_move.start;
		if(isNaN(parseInt(mDiv().style.left)))mDiv().style.left="0px";
		if(isNaN(parseInt(mDiv().style.top)))mDiv().style.top="0px";
		mObj.onDragStart=new Function();
		mObj.onDragEnd=new Function();
		mObj.onDrag=new Function();
	},
	start:function(e){
		var mObj=p_move.obj=this;
		e=p_move.fixE(e);
		mObj.onDragStart(parseInt(mDiv().style.left),parseInt(mDiv().style.top),e.clientX,e.clientY);
		mObj.lastMouseX=e.clientX;
		mObj.lastMouseY=e.clientY;
		document.onmousemove=p_move.drag;
		document.onmouseup=p_move.end;
		p_move.status="dragging";
		return false;
	}, 
	drag:function(e){
		e=p_move.fixE(e);
		var mObj=p_move.obj;
		var mX=e.clientX;
		var mY=e.clientY;
		var posX,posY;
		posX=parseInt(mDiv().style.left)+mX-mObj.lastMouseX;
		posY=parseInt(mDiv().style.top)+mY-mObj.lastMouseY;
		mDiv().style.left=posX+"px";
		mDiv().style.top=posY+"px";
		mObj.lastMouseX=mX;
		mObj.lastMouseY=mY;
		if (IE) {mObj.onDrag((mX+document.documentElement.scrollLeft),(mY+document.documentElement.scrollTop));}
		else {mObj.onDrag(e.pageX,e.pageY);}
  		return false;
	}, 
	end:function(){
		document.onmousemove=null;
		document.onmouseup=null;
		p_move.obj.onDragEnd(parseInt(mDiv().style.left),parseInt(mDiv().style.top));
		p_move.obj=null;
		p_move.status="";
	},
	fixE:function(e){
		if(typeof e=="undefined")e=window.event;
		if(typeof e.layerX=="undefined")e.layerX=e.offsetX;
		if(typeof e.layerY=="undefined")e.layerY=e.offsetY;
		return e;
	}
};
// Initialize modules behaviors
function initMove(v_obj,v_type,v_parent,v_direction,v_usecache){
	var l_obj=_gel(v_obj.id+"_h");
	// if the node is not recognize as a moving object, go to next node
	if(!l_obj)return;
	if (v_type=="module"){
		//Check that module is movable
		var l_id=getModuleId(v_obj);
		if (module[l_id].blocked) return;
	}
	// move cursor on bar mouseover
	l_obj.style.cursor="move";
	l_obj.objMoved=v_obj;
	p_move.init(l_obj);
	// manage an url in the object header
	var l_uObj=_gel(v_obj.id+"_u");  
	if(l_uObj){
		if (l_uObj.href==window.location.href || l_uObj.href==window.location.href+"#"){
			l_uObj.onmousedown=l_uObj.onclick;
		} else {
			l_uObj.onmousedown=function(){window.location.href=this.href;}
		}
	}
	l_obj.onDragStart=function(){
		var l_selObj=this.objMoved;
		setPos(l_selObj,v_parent);
		l_selObj.origNextSibling=l_selObj.nextSibling;
		// dragged object building
		var mDivObj=mDiv();
		mDivObj.style.zIndex=1000;
		mDivObj.style.left=getPos(l_selObj,"Left")+"px";
		mDivObj.style.top=getPos(l_selObj,"Top")+"px";
		mDivObj.style.height=l_selObj.offsetHeight+"px";
		mDivObj.style.width=l_selObj.offsetWidth+"px";
		mDivObj.style.display="block";
		mDivObj.style.opacity=0.6;
		mDivObj.style.filter="alpha(opacity=60)";
		mDivObj.innerHTML=(v_type=="module")?updModMove(l_selObj.innerHTML):l_selObj.innerHTML;
		mDivObj.className=l_selObj.className;

		this.isDrag=false;
		if (v_usecache) p_cache.show("block");
	} ;
	l_obj.onDrag=function(v_x,v_y){
		objMove(this.objMoved,v_x,v_y,v_parent,v_direction,v_type);
		this.isDrag=true
	} ;
	l_obj.onDragEnd=function(v_x,v_y){
		hideDivMove();
		if(this.isDrag){
			var l_uniq=this.objMoved.id.replace(v_type,"");
			if (v_type=="module"){
				l_id=uniqToId(l_uniq);
				var l_vars=[];
				if (p_area.showType==0){
					var l_old=module[l_id].col;
					var l_new=this.objMoved.parentNode.id.replace(/col/,"");
					if (l_old==l_new){l_vars[0]=l_old;} else {l_vars[0]=l_old;l_vars[1]=l_new;}
				} else {l_vars[0]=1;}
				//if not in a user page
				if (p_tabs.sel==indef){
					if (p_tabs.overtabid!=-1){p_area.module.insertInTab(p_tabs.overtabid,module[l_id].id);}
				} else {
					saveChanges(l_vars);
					if (p_tabs.overtabid!=-1){p_area.module.changeTab(p_tabs.overtabid,l_uniq);}
				}
				p_tabs.moduleOutAll();
			}
			if (v_type=="tab"){p_tabs.save(l_uniq);}
			if (v_type=="admpage"){admPages.save(l_uniq);}
		}
		if (v_usecache) p_cache.show("none");
		this.style.zIndex=1;
	}
}
// Set position of modules during deplacement
function setPos(v_obj,v_parent){
	var l_lstNb=v_parent.length?v_parent.length:2;
	for(var j=1;j<l_lstNb;j++){
		var l_decalY=0;
		var l_lst=v_parent.length?v_parent[j]:v_parent;
		for(var i=0;i<l_lst.childNodes.length;i++){
			var l_node=l_lst.childNodes[i];
			//** if the node is the treated div one, the next nodes must be moved up by div height
			if (l_node==v_obj) decalY=l_node.offsetHeight;
			//** set the position of each nodes (use of decalY for modules under the one moved)
			l_node.pagePosLeft=getPos(l_node,"Left");
			l_node.pagePosTop=getPos(l_node,"Top")-l_decalY;
		}
	}
} 
// Return the absolution Left or Top position of a module
function getPos(v_node,v_ref){
	var l_ret=0;
	while(v_node!=null){
		l_ret+=v_node["offset"+v_ref];
		v_node=v_node.offsetParent;
	}
	return l_ret
}
// Module position during deplacement
function objMove(v_obj,v_x,v_y,v_parent,v_direction,v_type){
	var l_nextMod=null;
	var l_x,l_y,l_w,l_h,l_treated=false;
	var l_pond=(v_direction=="multidim")?40:v_obj.offsetHeight;
	var l_lstNb=v_parent.length?v_parent.length:2;
	//is object moving over an existing one
	for(var j=1;j<l_lstNb;j++){
		var l_lst=v_parent.length?v_parent[j]:v_parent;
		for(var i=0;i<l_lst.childNodes.length;i++){
			var l_node=l_lst.childNodes[i];
			l_x=l_node.pagePosLeft;
			l_y=l_node.pagePosTop;
			l_w=l_node.offsetWidth;
			l_h=l_node.offsetHeight;
			if (v_x>l_x && v_x<(l_x+l_w) && v_y>l_y && v_y<(l_y+l_h)){
				l_treated=true;
				if (v_y<(l_y+l_pond)){
					if (l_node==v_obj.nextSibling&&l_node.nextSibling) {l_nextMod=l_node.nextSibling;break;}
					else {l_nextMod=l_node;break;}
				}
			}
		}
	}
	if (!l_treated&&v_type=="module"&&jsid>0){
		var l_tabs=_gel("tabsframe");
		for(var i=0;i<l_tabs.childNodes.length;i++){
			if (i==p_tabs.sel) continue;
			var l_node=l_tabs.childNodes[i];
			if (l_node.id=="") continue;
			//l_x=l_node.pagePosLeft;
			l_x=getPos(l_node,"Left");
			l_y=getPos(l_node,"Top");
			l_w=l_node.offsetWidth;
			l_h=l_node.offsetHeight;
			if (v_x>l_x && v_x<(l_x+l_w) && v_y>l_y && v_y<(l_y+l_h)){
				l_treated=true;
				p_tabs.moduleOver(i);
				//v_obj.style.display="none";
				return;
			} else {
				p_tabs.moduleOut(i);
			}
		}
	}
//	//is object out of selection (under first row)
//	if (!l_treated&&v_direction=="multidim"){
//		for(var j=1;j<l_lstNb;j++){
//			var l_lst=v_parent.length?v_parent[j]:v_parent;
//			var l_node=l_lst.childNodes[0];
//			l_x=l_node.pagePosLeft;
//			l_y=l_node.pagePosTop;
//			l_w=l_node.offsetWidth;
//			l_h=l_node.offsetHeight;
//			if (v_x>l_x&&v_y<=l_y) {l_nextMod=l_node;break;}
//		}
//	}
	//is object out of selection (aside the first col)
	if (!l_treated&&v_direction=="multidim"){
		var l_lst=v_parent.length?v_parent[1]:v_parent;
		for(var i=0;i<l_lst.childNodes.length;i++){
			var l_node=l_lst.childNodes[i];
			l_x=l_node.pagePosLeft;
			l_y=l_node.pagePosTop;
			l_w=l_node.offsetWidth;
			l_h=l_node.offsetHeight;
			if (v_x<=l_x&&v_y<=l_y) {l_nextMod=l_node;break;}
		}
	}
	//is the module below the "necessary" boxes
	if (!l_treated&&v_direction=="multidim"){
		for(var j=1;j<l_lstNb;j++){
			var l_lst=v_parent.length?v_parent[j]:v_parent;
			for(var i=0;i<l_lst.childNodes.length;i++){
				var l_node=l_lst.childNodes[i];
				if (l_node.className=="necessary"){
					l_x=l_node.pagePosLeft;
					l_y=l_node.pagePosTop;
					l_w=l_node.offsetWidth;
					if (v_x>l_x && v_x<(l_x+l_w) && v_y>l_y){
						l_treated=true;
						l_nextMod=l_node;break;
					}
				}
			}
		}
	}

	if(l_nextMod!=null&&v_obj!=l_nextMod){
		if (v_type=="module"){
			var l_id=getModuleId(l_nextMod);
			if (l_id!=-1 && module[l_id].blocked) return;
		}
		l_nextMod.parentNode.insertBefore(v_obj,l_nextMod);
		setPos(v_obj,v_parent);
		//only for IE (Is causing a displaying issue with FF on newspaper mode : the col1 is moving under the newspaper div)
		if (IE) hideParent(v_obj);
	}
} 
// Hide parent of concerned node
function hideParent(v_obj){
	v_obj.parentNode.style.display="none";
	v_obj.parentNode.style.display="";
}
// Modules number restriction 
function maxModReached(){
	var l_ret=false;
	if (module.length>__maxModNb){
		p_alert.show(lg("msgMaxMod",__maxModNb));
		l_ret=true;
	}
	return l_ret;
}
// Get the module identifier
function getModId(v_obj){
	var l_id=v_obj.parentNode.id;
	l_id=id.replace("module","")
	return parseInt(l_id.replace("_o",""),10);
}
// Save Module changes
function saveChanges(v_vars,v_supid){
	var l_inc=0,l_save=false;
	var l_s="prof="+jsprof;
	//build the saving string (for each column IMPACTED)
	for (var l_var=0;l_var<v_vars.length;l_var++){
		for (var l_nod=0;l_nod<cols[v_vars[l_var]].childNodes.length-1;l_nod++){
			//get the information of the concerned node (only if module one)
			var l_mod=cols[v_vars[l_var]].childNodes[l_nod];
			if (getModuleId(l_mod)!=-1){
				l_id=getModuleId(l_mod);
			} else {continue;}
			//var l_id=l_mod.id.replace(/module/,"");
			//// if the object is not a module, continue to next FOR item
			//if (l_id!=parseInt(l_id,10)) continue;
			//l_id=uniqToId(l_id);
			if (p_area.showType==0){
				//redefine the position of the modules in the modified columns
				module[l_id].newpos=l_nod+1;
				module[l_id].newcol=v_vars[l_var];
			} else {
				module[l_id].newposj=l_nod+1;
			}
			//if position modified, the saving string is updated
			if (module[l_id].col!=module[l_id].newcol||module[l_id].pos!=module[l_id].newpos||module[l_id].posj!=module[l_id].newposj){
				//check if new module (added) or not
				l_save=true;
				if (module[l_id].col<1){
					l_s+="&idn="+module[l_id].id+"&un="+module[l_id].uniq+"&xn="+module[l_id].newcol+"&yn="+module[l_id].newpos+"&jn="+module[l_id].newposj+"&vn="+_esc(module[l_id].vars);
				} else {
					l_inc++;
					l_s+="&id"+l_inc+"="+module[l_id].id+"&x"+l_inc+"="+module[l_id].newcol+"&y"+l_inc+"="+module[l_id].newpos+"&j"+l_inc+"="+module[l_id].newposj+"&u"+l_inc+"="+module[l_id].uniq;
				}
				module[l_id].col=module[l_id].newcol;
				module[l_id].pos=module[l_id].newpos;
				module[l_id].posj=module[l_id].newposj;
			}
		}
	}
	//treat the sources in the newspaper mode
	if (p_area.showType==1){
		for (var i=0;i<module.length;i++){
			if (module[i].format=='R'){
				//Check changes in first col
				if (module[i].newpos!=module[i].pos){
					l_inc++;
					l_s+="&id"+l_inc+"="+module[i].id+"&x"+l_inc+"="+module[i].newcol+"&y"+l_inc+"="+module[i].newpos+"&j"+l_inc+"="+module[i].newposj+"&u"+l_inc+"="+module[i].uniq;
				}
				// Check changes in the sources
				if (module[i].col<1){
					//save changes
					l_save=true;
					l_s+="&idn="+module[i].id+"&un="+module[i].uniq+"&xn="+module[i].newcol+"&yn="+module[i].newpos+"&jn="+module[i].newposj+"&vn="+module[i].vars;
					module[i].col=module[i].newcol;
					module[i].pos=module[i].newpos;
					module[i].posj=module[i].newposj;
				}
			}
		}
	}
	if (v_supid!=indef){
		l_save=true;
		l_s+="&ids="+module[v_supid].id+"&us="+module[v_supid].uniq;
	}
	//call the XML saving function
	if (l_save){
		executescr("scr_config_place.php",l_s,false);
	}
	// this action restart the protection counter
	if (jspass!=""){p_counter.reset(4);}
}
// fill & Refresh module with format="M"
function refreshModCont(v_id){
//	getXml(module[v_id].url+"pid="+jsid+"&prof="+jsprof+"&p="+module[v_id].uniq+"&"+module[v_id].vars,displayModCont,new Array(v_id,0,module[v_id].uniq),"xml");
	getXml(module[v_id].url,displayModCont,new Array(v_id,0,module[v_id].uniq),"xml","pid="+jsid+"&prof="+jsprof+"&p="+module[v_id].uniq+"&"+module[v_id].vars,"POST");
	return false;
}
function displayModCont(response,vars){
	if (response.getElementsByTagName("Module")[0]){
		var l_mod=response.getElementsByTagName("Module")[0];
		var l_script="";
		p_param.fillEditBox(l_mod,vars[2]);
		if (l_mod.getElementsByTagName("Content")[0]){
			var l_contenttag=response.getElementsByTagName("Content")[0];
			var l_content=l_contenttag.firstChild.nodeValue;
			l_content=l_content.replace(/__MODULE_ID__/g,vars[2]);
//			var l_script=getXMLval(l_contenttag,"script","str",false,"")
			if (l_content.indexOf("<script>")!=-1||l_content.indexOf('<script language="text/javascript">')!=-1||l_content.indexOf("<script language='text/javascript'>")!=-1){
				var l_pos1=l_content.indexOf("<script>");
				if (l_pos1==-1) l_pos1=l_content.indexOf("<script language='text/javascript'>");
				if (l_pos1==-1) l_pos1=l_content.indexOf('<script language="text/javascript">');
				l_pos1=l_content.indexOf(">",l_pos1);
				var l_pos2=l_content.indexOf("</script>",l_pos1);
				var l_script=l_content.substring((l_pos1+1),l_pos2);
			}
			navPrint("module"+vars[2]+"_c",l_content);
			//launch script
			if (l_script!="") eval(l_script);
		}
	}
}
// fill & Refresh module with format="H"
//function refreshHtmlCont(v_id,v_pass){
//	var l_frm2=(IE)?frames["modfram"+module[v_id].uniq].window:document.getElementById("modfram"+module[v_id].uniq).contentWindow;
//	if (IE) {l_frm2.attachEvent('onload', function() {alert('tata');});}
//	else {l_frm2.addEventListener('load',function() {alert('tata');},false);}
//	if (v_pass==indef) l_frm2.location.href=pfolder+"empty_module.html";
//	//wait for the frame to be loaded
//	var l_frm=(IE)?frames["modfram"+module[v_id].uniq].document:document.getElementById("modfram"+module[v_id].uniq).contentDocument;
//	if (!l_frm||!l_frm.body||l_frm.body.innerHTML=="") {var l_script="refreshHtmlCont("+v_id+",true)";setTimeout(l_script, 1000);}
//	else { 
//		getXml(module[v_id].url,displayHtmlCont,new Array(v_id,0,module[v_id].uniq),"xml","pid="+jsid+"&prof="+jsprof+"&p="+module[v_id].uniq+"&"+module[v_id].vars,"GET");
//	}
//	return false;
//}
function displayHtmlCont(response,vars){
	if (response.getElementsByTagName("Module")[0]){
		var l_mod=response.getElementsByTagName("Module")[0];
		p_param.fillEditBox(l_mod,vars[2]);
		if (l_mod.getElementsByTagName("Content")[0]){
			var l_node=response.getElementsByTagName("Content")[0];
			if (l_node.firstChild.nodeType == 3){l_node.removeChild(l_node.firstChild);}
			l_content=l_node.firstChild.nodeValue;
			l_content=l_content.replace(/__MODULE_ID__/g,vars[2]);

			var l_frm=(IE)?frames["modfram"+vars[2]].document:document.getElementById("modfram"+vars[2]).contentDocument;
			var l_body=l_frm.body;
			l_body.innerHTML=l_content;
		}
	}
}
var p_param={
	show:function(v_uniq){
		//show edit box for selected module
		if (navIsShown("editbar"+v_uniq)) {p_param.hide(v_uniq);}
		else {navShow("editbar"+v_uniq,"block");}
		return false;
	},
	hide:function(v_uniq){
		//hide edit box for selected module
		navShow("editbar"+v_uniq,"none");
		return false;
	},
	fillEditBox:function(response,v_uniq){
		//generate edit box for a module
		l_s="<form name='editform"+v_uniq+"' onsubmit='return p_param.valid("+v_uniq+");'>";
		var l_id=uniqToId(v_uniq);
		//var ptitl=module[l_id].name;
		var ptitl=(getVar(module[l_id].vars,"ptitl")==""?module[l_id].name:getVar(module[l_id].vars,"ptitl"));
		if (module[l_id].format!='R' || p_area.showType==0){
			l_s+="<table cellpadding='2' cellspacing='0' width='90%'>";
			l_s+="<tr><td>"+lg("lblModuleTitle")+"</td><td><input type='text' name='ptitl' size='18' value='"+ptitl+"' /></td></tr>";
			if (__barcolnb>1){
				l_s+="<tr><td>"+lg("lblBarColor")+"</td><td>";
				l_s+="<table cellspacing='1' cellpadding='0'><tr><td class='barstyle0'><a href='#' onclick='p_param.setBColor("+v_uniq+")'>"+img("s.gif",18,18,"","barcoli","barcol"+v_uniq+"-")+"</a></td>";
				for (var i=1;i<=__barcolnb;i++){
					l_s+="<td class='barstyle"+i+"'><a href='#' onclick='p_param.setBColor("+v_uniq+","+i+")'>"+img("s.gif",18,18,"","barcoli","barcol"+v_uniq+"-"+i)+"</a></td>";
				}
				l_s+="<td><input type='hidden' name='bcolor' value='' /></td></tr></table></td></tr>";
			}
			var i=0;
			while (response && response.getElementsByTagName("UserPref")[i]){
				var l_pref=response.getElementsByTagName("UserPref")[i];
				var l_type=getXMLprop(l_pref,"datatype","str",true,"string");
				if (l_type!="hidden") l_s+="<tr><td>"+getXMLprop(l_pref,"display_name","str",false,"")+"</td><td>";
				var l_name=getXMLprop(l_pref,"name","str",true,"");
				var l_selValue=getVar(module[l_id].vars,l_name);
				var l_def=(l_selValue=="")?getXMLprop(l_pref,"default_value","str",false,""):l_selValue;
				switch(l_type){
					case "enum":
					l_s+="<select name='"+l_name+"'>";
					var j=0;
					while(l_pref.getElementsByTagName("EnumValue")[j]){
						var l_opt=l_pref.getElementsByTagName("EnumValue")[j];
						var l_optValue=getXMLprop(l_opt,"value","str",false,"")
						l_s+="<option value='"+l_optValue+"'"+((l_optValue==l_def)?" selected='selected'":"")+">"+getXMLprop(l_opt,"display_value","str",false,l_optValue)+"</option>";
						j++;
					}
					l_s+="</select>";
					break;
					case "string":
					l_s+="<input type='text' name='"+l_name+"' value='"+l_def+"' size='24' />";
					break;
					case "hidden":
					l_s+="<input type='hidden' name='"+l_name+"' value='"+l_def+"' />";
					break;
					case "bool":
					l_s+="<input type='checkbox' name='"+l_name+"'"+((l_def==1)?" checked='checked'":"")+" />";
					break;
				}
				if (l_type!="hidden") l_s+="</td></tr>";
				i++;
			}
			if (p_area.module.showAdminProperties){
				//l_s+="<div id='adminbar"+this.uniq+"' class='editbox'>essai</div>";
				l_s+="<tr><td class='tophr'>"+lg("lblFixedModule")+"</td><td class='tophr'><input type='checkbox' name='admblocked'"+(module[l_id].blocked?" checked='checked'":"")+" /></td></tr>";
			}
			l_s+="<tr><td colspan='2' align='center'><input class='btn' type='submit' value='"+lg("lblBtnValid")+"' /> <a href='#' onclick='return p_param.hide("+v_uniq+");'>"+lg("lblClose")+"</a></td></tr>";
			l_s+="</table></form>";
			navPrint("editbar"+v_uniq,l_s);
			p_param.setBColor(v_uniq,getVar(module[l_id].vars,"bcolor"));
			p_area.module.changeName(l_id,ptitl);
		}
	},
	valid:function(v_uniq){
		//save new module customization
		var l_form=document.forms["editform"+v_uniq];
		var i=0,l_var,l_vars=[],l_refreshAll=false;
		var l_id=uniqToId(v_uniq);
		while(l_form.elements[i]){
			switch(_lc(l_form.elements[i].type)){
				case "text":
				case "password":
				case "select-one":
				case "hidden":
					l_var=l_form.elements[i].name+"="+_esc(l_form.elements[i].value);break;
				case "checkbox":
				case "radio":
					l_var=(l_form.elements[i].checked?l_form.elements[i].name+"=1":l_form.elements[i].name+"=0");break;
			}
			if ((l_form.elements[i].name).substr(0,3)=="adm"){
				if (l_form.elements[i].name=="admblocked") {
					//the entire module needs to be refresh -> only solution: refresh all the modules
					if (module[l_id].blocked!=l_form.elements[i].checked) l_refreshAll=true;
					module[l_id].blocked=l_form.elements[i].checked;
				}
			} else {
				l_vars.push(l_var);
			}
			i++;
		}
		var l_qs=l_vars.join("&");
		//if title has changed or not
		if (module[l_id].name==getVar(l_qs,"ptitl")){
			l_qs=supVar(l_qs,"ptitl");
		} else {
			p_area.module.changeName(l_id,getVar(l_qs,"ptitl"));
		}
		//if icon is set, keep it
		if (getVar(module[l_id].vars,"icon")!="") l_qs+="&icon="+getVar(module[l_id].vars,"icon");
		
		module[l_id].changeVar("",l_qs);
		if (l_refreshAll) {p_area.init();}
		else {
			module[l_id].refresh();
			module[l_id].hdrColor();
			p_param.hide(v_uniq);
		}
		//if (p_area.module.showAdminProperties) executescr("../admin/scr_pages_adminproperties.php",v_uniq+l_admprop,true);
		return false;
	},
	getModuleParam:function(v_id){
		var l_url=(module[v_id].url).replace(".php","_param.xml");
		l_url=l_url.replace(/\?/g,"");
		getXml(l_url,p_param.treatModuleParam,new Array(module[v_id].uniq,0),"xml");
	},
	treatModuleParam:function(response,vars){
		if (response.getElementsByTagName("Module")[0]){
			var l_mod=response.getElementsByTagName("Module")[0];
			p_param.fillEditBox(l_mod,vars[0]);
		}
	},
	setBColor:function(v_uniq,v_color){
		//get the new color number in the form
		if (!v_color) v_color="";
		document.forms["editform"+v_uniq].bcolor.value=v_color;
		//change selected image border
		(_gel("barcol"+v_uniq+"-")).className="barcoli";
		for (var i=1;i<=__barcolnb;i++){
			(_gel("barcol"+v_uniq+"-"+i)).className="barcoli";
		}
		(_gel("barcol"+v_uniq+"-"+v_color)).className="barcola";
	}
}

//==================================================================================================================
//						MENUS MANAGEMENT
//==================================================================================================================

var p_addContent={
	leftmenuinit:false,
	menu:function(v_type){
		//no access to menu if page locked
		if (p_area.locked) return false;
		// Open the "add content" menu
		if (showBoxStatus){hideBox();}
		if (__menuposition=="h"){
			var l_s="<table cellpadding='0'><tr><td><table class='addmenuhdr'><tr><td nowrap='nowrap'>";
			var l_initdim;
			for (var i=0;i<__dimension.length;i++){
				if (__dimension[i]["lg"]=='' || __dimension[i]["lg"]==__lang){
					if (!l_initdim) l_initdim=__dimension[i]["id"];
					l_s+="<a id='dir"+__dimension[i]["seq"]+"' class='optlist' href='#' onclick='return p_addContent.lists("+__dimension[i]["seq"]+","+__dimension[i]["id"]+",1)'>"+__dimension[i]["name"]+"</a> | ";
				}
			}
			if (__useList) l_s+="<a id='dir"+i+"' class='optlist' href='#' onclick='return p_addContent.lists("+i+",0,1)'>"+lg("lblList")+"</a> | ";
			l_s+="</td><td nowrap='nowrap' valign='middle'><form name='mod__search' onsubmit='p_addContent.getSearch(document.mod__search.searchtxt.value,0);return false;'>&nbsp;"+img("ico_search.gif",12,12)+" <input class='thinbox' name='searchtxt' type='text' size='20' value='"+lg("lblSearch")+"' onclick=\"this.value='';\" /><input type='submit' name='buts' class='btn' value='Go' /></form></td>";
			l_s+="<td nowrap='nowrap' valign='middle'><form name='rss' onsubmit='return p_rss.checkFeed()'>&nbsp;|&nbsp;<a href='#' onclick='return p_rss.info()'>"+lg("lblAddRSS")+"</a> <input class='thinbox' name='vars' type='text' size='20' value='"+lg("lblRSSFlow")+"' onclick=\"javascript:vars.value='';navPrint('authrss','');\" /><input type='submit' name='butr' class='btn' value='Go' /><div id='authrss' style='width:180px;text-align:left;display:none;'></div></form></td>";
			if (__userModuleJs=='I') l_s+="<td nowrap='nowrap'>&nbsp;|&nbsp;<a href='#' onclick='return createMyModule()'>"+img("ico_ownmodule.gif",14,14)+" "+lg("lblCreateYourMod")+"</a></td>";
			l_s+="</tr></table></td></tr>";
			l_s+="<tr><td id='listmod' style='height:116px;padding-top:8px;' valign='top'></td></tr>";
			l_s+="</table>";

			navPrint("box",box(0,img("ico_menu_add.gif",12,12,"","imgmid")+" "+lg("lblAddMenu")+" :","hideBox()",l_s));
			navShow("box","block");
			showBoxStatus=true;
			if (v_type!=indef && __useList){p_addContent.lists(0,0,v_type);}else{p_addContent.lists(0,l_initdim,0);}
		} else {
			(_gel("menus")).style.marginLeft="190px";
			(_gel("modules")).style.marginLeft="190px";
			navShow("leftmenu","block");
			if (!p_addContent.leftmenuinit){
				var l_s="<table cellpadding='2' cellspacing='0' border='0' width='100%'>";
				l_s+="<tr><td><table cellpadding='2' cellspacing='0' width='100%' bgcolor='#c6c3c6'><tr><td style='color:#ffffff'><b>"+lg("lblAddContent")+"</b></td><td align='right'><a href='#' onclick='p_addContent.hide()'>"+img("ico_close.gif",9,9)+"</a></td></tr></table></td></tr>";
				l_s+="<tr><td class='bottomhr' nowrap='nowrap' align='middle' style='height:56px'><form name='rss' onsubmit='return p_rss.checkFeed()'><a href='#' onclick='return p_rss.info()'>"+lg("lblAddRSS")+"</a><br /><input class='thinbox' name='vars' type='text' size='20' value='"+lg("lblRSSFlow")+"' onclick=\"javascript:vars.value='';navPrint('authrss','');\" /><input type='submit' name='butr' class='btn' value='Go' /><div id='authrss' style='width:180px;text-align:left;display:none;'></div></form>";
				if (jsid>0) l_s+="<a href='#' onclick='return p_rss.importMenu()'>"+lg("lblImport")+" (OPML)</a>";
				l_s+="</td></tr>";
				l_s+="<tr><td class='bottomhr' nowrap='nowrap' align='middle' style='height:46px'><form name='mod__search' onsubmit='p_addContent.getSearch(document.mod__search.searchtxt.value,0);return false;'>"+img("ico_search.gif",12,12)+" "+lg("lblSearch")+"<br /><input class='thinbox' name='searchtxt' type='text' size='20' value='"+lg("lblSearch")+"' onclick=\"this.value='';\" /><input type='submit' name='buts' class='btn' value='Go' />&nbsp;<a href='#' onclick='return p_addContent.clearSearch();'>"+img("ico_close.gif")+"</a><br /><div id='listmod' style='width:180px;text-align:left;'></div></form></td></tr>";
				l_s+="<tr><td style='padding-top:8px'>"+lg("lblExplore")+" :<br /><br /><div id='exp"+0+"'>loading ...</div></td></tr>";
				l_s+="</table>";
				navPrint("leftmenu",l_s);
				p_addContent.getExplorer(0);
				p_addContent.leftmenuinit=true;
				p_edit.leftmenuinit=false;
			}
		}
		return false;
	},
	hide:function(){
		if (__menuposition=="h"){hideBox();} else {hideLeftMenu();}
	},
	lists:function(v_id,v_catid,v_order){
		for (var i=0;i<__dimension.length;i++){
			navClass("dir"+__dimension[i]["seq"],((__dimension[i]["seq"]==v_id)?"sellist":"optlist"));
		}
		if (v_catid==0){p_addContent.getList(1,v_order);}
		else {p_addContent.initDir(v_catid);}
		return false;
	},
	getList:function(v_page,v_order){
		if (v_order==indef) v_order=1;
		// Open the services lists
		getXml("selections/allservices"+v_order+"_"+v_page+".xml",p_addContent.displayList,new Array(v_page,v_order));
	},
	displayList:function(response,vars){
		var l_s="";
		l_s+="<table cellpadding='0' cellspacing='0'>";
		if (response.getElementsByTagName("page")[0]){
			var l_id;
			l_s+="<tr><td width='20'></td><td><table width='600'><tr>";
			l_s+="<td><input type=radio"+((vars[1]==1)?" checked='checked'":"")+" onclick='p_addContent.getList(1,1);' />"+lg("lblNewMods")+"</td>";
			if (__useNotation) l_s+="<td><input type='radio'"+((vars[1]==2)?" checked='checked'":"")+" onclick='p_addContent.getList(1,2);' />"+lg("lblBestRank")+"</td>";
			if (__useNotation) l_s+="<td><input type='radio'"+((vars[1]==3)?" checked='checked'":"")+" onclick='p_addContent.getList(1,3);' />"+lg("lblPopMods")+"</td>";
			l_s+="<td><input type='radio'"+((vars[1]==4)?" checked='checked'":"")+" onclick='p_addContent.getList(1,4);' />"+lg("lblNewsMods")+"</td>";
			l_s+="</tr></table></td><td width='20'></td></tr>";
			l_s+="<tr><td style='height:126px' valign='top' align='center'>";
			if (vars[0]>1){l_s+="<a href='#' onclick='p_addContent.getList("+(vars[0]-1)+","+vars[1]+");return false;'>"+img("prev.gif",14,27,lg("lblPrevMods"))+"</a>";}
			l_s+="</td><td valign='top' class='dirdiva'><table cellpadding='0' cellspacing='1' width='700'>";
			var i=0;
			while (response.getElementsByTagName("item")[i]){
				result=response.getElementsByTagName("item")[i];
				l_id=getXMLval(result,"id","int",false,0);
				l_s+="<tr><td>"+img("../modules/pictures/box0_"+l_id+".gif",16,16,"","imgmid")+" <a class='menul' href='#' onclick='return openmod("+l_id+")'>"+getXMLval(result,"name","str",false,"--")+"</a> : "+getXMLval(result,"desc","str",false,"...")+"</td></tr>";
				i++;
			}
			if (i==7){l_s+="</table></td><td valign='top' align='center'><a href='#' onclick='p_addContent.getList("+(vars[0]+1)+","+vars[1]+");return false;'>"+img("next.gif",14,27,lg("lblNextMods"))+"</a>";}
		} else {l_s+=lg("lblDisplayErr");}
		l_s+="</td></tr></table>";
		navShow("listmod","block");
		navPrint("listmod",l_s);
	},
	getSearch:function(v_s,v_page){
		// Open the search results
		v_s=formatSearch(v_s);
		navClass("dirlink","optlist");
		navClass("listlink","optlist");
		navClass("sellink","optlist");
		navPrint("listmod","Recherche en cours ...");
		getXml("xmlsearch.php?searchtxt="+_esc(v_s)+"&p="+v_page,p_addContent.displaySearch,new Array(v_s,v_page));
	},
	displaySearch:function(response,vars){
		var l_s="",l_result;
		l_s+="<table cellpadding='0' cellspacing='0' width='95%'>";
		if (response.getElementsByTagName("nbres")[0]){
			var l_nbres=getXMLval(response,"nbres","int",false,0);
			l_s+="<tr><td style='height:20px'><table width='100%'><tr><td>"+lg("lblResultsFor")+" '"+vars[0]+"' :</td>";
			if (__useContact) l_s+="<td align='right'><a href='#' onclick='return p_contact.menu(2);'>"+lg("lblModMissing")+"</a></td>";
			l_s+="</tr></table>";
			l_s+="<table width='100%'><tr><td width='11' style='height:80px' valign='top'>";
			if (vars[1]!=0){l_s+="<a href='#' onclick=\"p_addContent.getSearch('"+vars[0]+"',"+(parseInt(vars[1])-1)+");return false;\">"+img("ico_previous.gif",7,9,lg("lblPrevMods"))+"</a> ";}
			l_s+="</td><td valign='top' class='dirdiva'><table cellpadding='0' cellspacing='1'>";
			if (response.getElementsByTagName("item")[0]){
				for (var i=0;i<7;i++){
					if (response.getElementsByTagName("item")[i]){
						l_result=response.getElementsByTagName("item")[i];
						l_s+="<tr><td>"+img("../modules/pictures/box0_"+getXMLval(l_result,"id","int",false,0)+".gif",16,16,"","imgmid")+" <a class='menul' href='#' onclick='return openmod("+getXMLval(l_result,"id","int",false,0)+")'>"+getXMLval(l_result,"name","str",false,"...")+"</a></td></tr>";
					}
				}
			} else {l_s+="<tr><td>"+lg("lblSrchNoMod")+"</td></tr>";}
			if (l_nbres==8){l_s+="</table></td><td width='11' valign='top'><A href='#' onclick=\"p_addContent.getSearch('"+vars[0]+"',"+(parseInt(vars[1])+1)+");return false;\">"+img("ico_next.gif",7,9,lg("lblNextMods"))+"</a>";}
		}
		else {l_s+="<tr><td><table><tr><td style='color:#ff0000'>"+lg("lblSrch3car");}
		l_s+="</td></tr></table></td></tr></table>";
		navShow("listmod","block");
		navPrint("listmod",l_s);
	},
	clearSearch:function(){
		navPrint("listmod","");
		return false;
	},
	initDir:function(v_cat){
		// Initialize modules directory menu
		var l_s="<table cellpadding='0' cellspacing='0' border='0'><TR>";
		l_s+="<td><table cellspacing='0' width='100%'><tr><td>"+lg("lblNavDir")+" :</td><td align='right'></td></tr></table></td></tr>";
		l_s+="<tr><td><table><tr>";
		l_s+="<td><div id='level1' class='dirdivi' style='width:230px'></div></td>";
		l_s+="<td><div id='level2' class='dirdivi' style='width:200px'></div></td>";
		l_s+="<td><div id='level3' class='dirdivi' style='width:200px'></div></td>";
		l_s+="<td><div id='level4' class='dirdivi' style='width:170px'></div></td>";
		l_s+="</tr></table></td></tr></table>"+img("",7,7)+"<br />";
		navShow("listmod","block");
		navPrint("listmod",l_s);
		navPrint("level1","Chargement ...");
		p_addContent.getDir(v_cat,1);
	},
	getDir:function(v_cat,v_level){
		// Open the modules directory
		getXml("../cache/cat_"+v_cat+"_"+__lang+".xml",p_addContent.displayDir,v_level);
	},
	displayDir:function(response,vars){
		var l_s="";
		if (response.getElementsByTagName("parent")[0]){
			l_s+="<table cellpadding='0' cellspacing='1' border='0' style='width:90%'>";
			if (response.getElementsByTagName("dir")[0]){
				var l_i=0,l_dirid;
				while (response.getElementsByTagName("dir")[l_i]){
					var l_result=response.getElementsByTagName("dir")[l_i];
					l_dirid=getXMLval(l_result,"dirid","int",false,0);
					l_dirquantity=getXMLval(l_result,"quantity","int",false,0);
					if (l_dirquantity!=0) l_s+="<tr><td id='dir"+l_dirid+"' class='catopti' onmouseover='catOptOver("+l_dirid+")' onmouseout='catOptOut("+l_dirid+")'>&nbsp;<a href='#' class='menul' onclick='p_addContent.getDir("+l_dirid+","+(vars+1)+");catOptSel("+l_dirid+","+vars+");return false;'>"+getXMLval(l_result,"dirname","str",false,"...")+" ("+l_dirquantity+")</a></td></tr>";
					l_i++;
				}
			}
			if (response.getElementsByTagName("item")[0]){
				var l_i=0,l_itemid;
				while (response.getElementsByTagName("item")[l_i]){
					var l_result=response.getElementsByTagName("item")[l_i];
					l_itemid=getXMLval(l_result,"id","int",false,0);
					l_s+="<tr><td>"+img("../modules/pictures/box0_"+l_itemid+".gif",16,16,"","imgmid")+"&nbsp;<a href='#' class='menul' onclick='openmod("+l_itemid+");return false;'>"+getXMLval(l_result,"name","str",false,"...")+"</a></td></tr>";
					l_i++;
				}
			}
			l_s+="</table>";
		}
		else {l_s+=lg("lblDisplayErr");}

		navClass("level"+vars,"dirdiva");
		navPrint("level"+vars,l_s);
		//clear unused div
		for (var i=vars+1;i<5;i++){navPrint("level"+i,"");navClass("level"+i,"dirdivi");}
	},
	getExplorer:function(v_cat,v_open){
		if (v_open==indef) v_open=1;
		getXml("../cache/cat_"+v_cat+(v_cat==0?"":"_"+__lang)+".xml",p_addContent.displayExplorer,new Array(v_cat,v_open));
		return false;
	},
	displayExplorer:function(response,vars){
		var l_s="";
		if (vars[0]!=0) l_s+="<a href='#' class='menul' onclick='return p_addContent.getExplorer("+vars[0]+","+(vars[1]==0?"1":"0")+");'>"+getXMLval(response,"dirname","str",true,"--")+"</a><br />";
		if (response.getElementsByTagName("parent")[0] && vars[1]==1){
			if (response.getElementsByTagName("dir")[0]){
				var l_i=0,l_dirid;
				while (response.getElementsByTagName("dir")[l_i]){
					var l_result=response.getElementsByTagName("dir")[l_i];
					l_dirid=getXMLval(l_result,"dirid","int",false,0);
					l_dirquantity=getXMLval(l_result,"quantity","int",false,0);
					if (l_dirquantity!=0 || vars[0]==0) l_s+="<div class='expdiri' id='exp"+l_dirid+"'><a href='#' class='menul' onclick='return p_addContent.getExplorer("+l_dirid+");'>"+getXMLval(l_result,"dirname","str",false,"...")+" ("+l_dirquantity+")</a></div>";
					l_i++;
				}
			}
			if (response.getElementsByTagName("item")[0]){
				var l_i=0,l_itemid;
				while (response.getElementsByTagName("item")[l_i]){
					var l_result=response.getElementsByTagName("item")[l_i];
					l_itemid=getXMLval(l_result,"id","int",false,0);
					l_s+=img("../modules/pictures/box0_"+l_itemid+".gif",16,16,"","imgmid")+"&nbsp;<a href='#' class='menul' onclick='openmod("+l_itemid+");return false;'>"+getXMLval(l_result,"name","str",false,"...")+"</a><br />";
					l_i++;
				}
			}
		}

		if (vars[0]!=0) navClass("exp"+vars[0],(vars[1]==0?"expdiri":"expdira"));
		navPrint("exp"+vars[0],l_s);
	}
}
function createMyModule(){
	if (jsid==0){p_alert.show(lg("msgTutorialConn"));}
	else {link("../tutorial/");}
	return false;
}
// Directory management
function dirOptOver(v_id){if (_gel("dir"+v_id)&&(_gel("dir"+v_id)).className=="diropti") navClass("dir"+v_id,"diropta");}
function dirOptOut(v_id){if (_gel("dir"+v_id)&&(_gel("dir"+v_id)).className=="diropta") navClass("dir"+v_id,"diropti");}
function dirOptSel(v_id,v_level){
	navClass("dir"+v_id,"diropts");
	if (dirOptSelId[v_level]!=indef && dirOptSelId[v_level]!=v_id){navClass("dir"+dirOptSelId[v_level],"diropti");}
	dirOptSelId[v_level]=v_id;
}
function catOptOver(v_id){if (_gel("dir"+v_id)&&(_gel("dir"+v_id)).className=="catopti") navClass("dir"+v_id,"catopta");}
function catOptOut(v_id){if (_gel("dir"+v_id)&&(_gel("dir"+v_id)).className=="catopta") navClass("dir"+v_id,"catopti");}
function catOptSel(v_id,v_level){
	navClass("dir"+v_id,"catopts");
	if (dirOptSelId[v_level]!=indef && dirOptSelId[v_level]!=v_id){navClass("dir"+dirOptSelId[v_level],"catopti");}
	dirOptSelId[v_level]=v_id;
}
var p_edit={
	oldStyle:3,
	leftmenuinit:false,
	menu:function(){
		//no access to menu if page locked
		if (p_area.locked) return false;
		// Open the "edit" menu
		if (showBoxStatus){hideBox();}
		p_edit.oldStyle=p_area.style;
		if (__menuposition=="h"){
			var l_s="<form name='option'>";
			l_s+="<table width='100%'><tr><td class='bottomhr'><table width='100%' cellpadding='3'>";
			if (__themeNb>1) l_s+="<tr><td class='menuopt'>"+lg("lblColors")+" <font class='chgcolor'><a href='#' onclick='prevstyle();'>&nbsp; "+img("ico_left_arrow.gif",6,9,lg("lblPrevCol"))+" </a>&nbsp; &nbsp;<a href='#' onclick='nextstyle();'> "+img("ico_right_arrow.gif",6,9,lg("lblNextCol"))+" &nbsp;</a></font></td></tr>";
			//l_s+="<tr><td class='menuopt'>"+lg("lblColNb")+" <input type='radio' name='nbcol' value='2' />2 <input type=radio name='nbcol' value=3 />3 <input type=radio name='nbcol' value=4 />4</td></tr>";
			l_s+="<tr><td class='menuopt'>"+lg("lblColNb")+" <input type='button' value='-' style='width:20px' onclick='p_edit.supCols()' /> <input type='text' name='nbcol' value='"+p_area.col.nb+"' style='text-align:right;width:20px;' size='1' disabled /> <input type='button' value='+' style='width:20px' onclick='p_edit.addCols()' /></td></tr>";
			l_s+="<tr><td class='menuopt'>"+lg("lblUseInternalReader")+" <input type='checkbox' name='usereader' "+(p_rss.usereader==1?"checked='checked' ":"")+"/></td></tr>";
			l_s+="<tr><td class='menuopt'>"+lg("lblMoveMods")+" <input type='checkbox' name='controls' "+((p_banner.option.ctrl=='Y')?"checked='checked' ":"")+"/></td></tr>";
			if (jsid!=0){
				//if info feed exists
				if (__rssinfo!=""){
					l_s+="<tr><td class='menuopt'>"+lg("lblDailyAdvise")+" <input type='checkbox' name='useadvise'";
					if (p_banner.info.requested=="Y") l_s+=" checked='checked'";
					l_s+=" /></td></tr>";
				}
				l_s+="<tr><td class='menuopt'>"+lg("lblSecurity")+" <input type='checkbox' name='usepass'";
				if (jspass!="") l_s+=" checked='checked'";
				l_s+=" /> <a href='#' onclick='help(1)'>?</a></td></tr>";
			}
			l_s+="</table><br /><input class='btnbig' type='button' value='"+lg("lblBtnValid")+"' onclick='p_edit.save();' /><br /><br />";
			l_s+="</div></td></tr>";
			if (jsid!=0&&IE) l_s+="<tr><td class='bottomhr'>"+img("ico_right_arrow.gif",6,9,"","imgmid")+" Simplifiez-vous la vie en acc&eacute;dant plus rapidement &agrave; vos portails : "+img("ico_home.gif",14,14)+" <a class='menul' href='#' onclick='addHome();return false;'>"+lg("lblHome")+"</a> &nbsp; &nbsp; "+img("ico_favorite.gif",14,14)+" <a class='menul' href='#' onclick='addFav();return false;'>"+lg("lblFav")+"</a></td></tr>";
			l_s+="<tr><td>"+helpMove()+"</td></tr>";
			l_s+="</td></tr></table></form>";

			//p_area.module.showHdr();
			navPrint("box",box(0,img("ico_menu_tools.gif",12,12,"","imgmid")+" "+lg("lblEditMenu"),"p_edit.hide()",l_s));
			navShow("box","block");
			showBoxStatus=true;
		} else {
			(_gel("menus")).style.marginLeft="190px";
			(_gel("modules")).style.marginLeft="190px";
			navShow("leftmenu","block");
			if (!p_edit.leftmenuinit){
				var l_s="<form name='option'><table cellpadding='2' cellspacing='0' border='0' width='100%'>";
				l_s+="<tr><td><table cellpadding='2' cellspacing='0' width='100%' bgcolor='#c6c3c6'><tr><td style='color:#ffffff'><b>"+lg("lblPersonalize")+"</b></td><td align='right'><a href='#' onclick='p_edit.hide()'>"+img("ico_close.gif",9,9)+"</a></td></tr></table></td></tr>";
				if (__themeNb>1) l_s+="<tr><td class='bottomhr' align='center'>"+lg("lblColors")+" <font class='chgcolor'><a href='#' onclick='prevstyle();'>&nbsp; "+img("ico_left_arrow.gif",6,9,lg("lblPrevCol"))+" </a>&nbsp; &nbsp;<a href='#' onclick='nextstyle();'> "+img("ico_right_arrow.gif",6,9,lg("lblNextCol"))+" &nbsp;</a></font></td></tr>";
				l_s+="<tr><td class='bottomhr' align='center'>"+lg("lblColNb")+"<br /><input type='button' value='-' style='width:20px' onclick='p_edit.supCols()' /> <input type='text' name='nbcol' value='"+p_area.col.nb+"' style='text-align:right;width:20px;' size='1' disabled /> <input type='button' value='+' style='width:20px' onclick='p_edit.addCols()' /></td></tr>";
				l_s+="<tr><td class='bottomhr' align='center'>"+lg("lblUseInternalReader")+" <input type='checkbox' name='usereader' "+(p_rss.usereader==1?"checked='checked' ":"")+"/></td></tr>";
				l_s+="<tr><td class='bottomhr' align='center'>"+lg("lblMoveMods")+" <input type='checkbox' name='controls' "+((p_banner.option.ctrl=='Y')?"checked='checked' ":"")+"/></td></tr>";
				if (jsid!=0){
					//if info feed exists
					if (__rssinfo!=""){
						l_s+="<tr><td class='bottomhr' align='center'>"+lg("lblDailyAdvise")+" <input type='checkbox' name='useadvise'";
						if (p_banner.info.requested=="Y") l_s+=" checked='checked'";
						l_s+=" /></td></tr>";
					}
					l_s+="<tr><td class='bottomhr' align='center'>"+lg("lblSecurity")+" <input type='checkbox' name='usepass'";
					if (jspass!="") l_s+=" checked='checked'";
					l_s+=" /> <a href='#' onclick='help(1)'>?</a></td></tr>";
				}
				l_s+="<tr><td align='center'><br /><input class='btnbig' type='button' value='"+lg("lblBtnValid")+"' onclick='p_edit.save();' /></td></tr>";
				if (jsid!=0&&IE) l_s+="<tr><td class='bottomhr'><br />"+img("ico_right_arrow.gif",6,9,"","imgmid")+" "+lg("lblSimplifyAccess")+" :<br />"+img("ico_home.gif",14,14)+" <a class='menul' href='#' onclick='addHome();return false;'>"+lg("lblHome")+"</a><br />"+img("ico_favorite.gif",14,14)+" <a class='menul' href='#' onclick='addFav();return false;'>"+lg("lblFav")+"</a></td></tr>";
				l_s+="<tr><td><br />"+helpMove()+"</td></tr>";
				l_s+="</table></form>";
				navPrint("leftmenu",l_s);
				p_edit.leftmenuinit=true;
				p_addContent.leftmenuinit=false;
			}
		}
		//document.forms['option'].nbcol[(p_area.col.nb-2)].checked=true;
		return false;
	},
	hide:function(){
		if (__menuposition=="h"){hideBox();} else {hideLeftMenu();}
		//re-initialize the colors (if not saved)
		if (p_area.style!=p_edit.oldStyle){
			p_area.style=p_edit.oldStyle;
			setActiveStyleSheet(p_area.style);
		}
	},
	addCols:function(){
		l_colnb=parseInt(document.forms("option").nbcol.value,10);
		if (l_colnb<9){
			l_colnb++;
			document.forms("option").nbcol.value=l_colnb;
		}
	},
	supCols:function(){
		l_colnb=parseInt(document.forms("option").nbcol.value,10);
		if (l_colnb>1){
			l_colnb--;
			document.forms("option").nbcol.value=l_colnb;
		}
	},
	save:function(){
		// Save the settings
		var l_form=document.forms['option'];
		//Columns
		l_nbCol=parseInt(l_form.nbcol.value,10);
		//for (var i=0;i<3;i++) { 
		//	if (l_form.nbcol[i].checked==true) { 
		//		l_nbCol=i+2; 
		//		break; 
		//	}
		//}
		var l_allowSuppress=p_area.col.check(l_nbCol);
		//sécurity
		var l_secu=(l_form.usepass)?l_form.usepass.checked:false;
		jspass=l_secu?"ok":"";
		//info banner
		if (jsid!=0 && __rssinfo!=""){
			p_banner.info.requested=(l_form.useadvise.checked)?"Y":"N";
			if (p_banner.info.requested=="Y" && p_banner.info.loaded && p_banner.info.shown) p_banner.info.load(0);
		}
		//style
		p_edit.oldStyle=p_area.style;
		// showtype
		//var l_showType=getRadioValue(l_form.showtype);
		//use reader
		var l_usereader=(l_form.usereader.checked?1:0);
		//controls
		var l_controls=(l_form.controls.checked?"Y":"N");
		
		tab[p_tabs.sel].label=p_tabs.currName;
		tab[p_tabs.sel].lock=jspass;

		if (l_allowSuppress){
			//if (p_area.showType!=l_showType) changeShowType(l_showType);
			if (p_banner.option.ctrl!=l_controls) p_area.module.switchHdr();
			if (p_area.showType==1&&l_nbCol!=p_area.col.nb) p_alert.show(lg("lblColNbErr"));
			if (l_nbCol>p_area.col.nb){p_area.col.add(l_nbCol);}
			else if (l_nbCol<p_area.col.nb){p_area.col.sup(l_nbCol);}
			p_rss.usereader=l_usereader;
			p_tabs.create(p_tabs.sel);
			
			executescr("scr_config_options.php","prof="+jsprof+"&portstyle="+p_area.style+"&portname="+_esc(p_tabs.currName)+"&col="+l_nbCol+"&advise="+p_banner.info.requested+"&usepass="+l_secu+"&usereader="+l_usereader+"&ctrl="+l_controls,true);
		}
		p_edit.hide();
	}
}
// Open the new module window
function openmod(v_id,v_vars,v_type){
	if (v_vars==indef) v_vars='';
	if (v_type==indef) v_type='portal';
	getXml("../cache/item_"+v_id+".xml",displayMod,new Array(v_id,v_vars,v_type));
	return false;
}
function displayMod(response,vars){
	var l_s="",l_result,l_newId;
	if (response.getElementsByTagName("item")[0]){
		l_s+="<table cellpadding='0' cellspacing='0' border='0' width='100%'><tr><td valign='top'><table cellpadding=0 cellspacing=0>";
		l_result=response.getElementsByTagName("item")[0];
		var l_size=getXMLval(l_result,"size","int",false,100);
		var l_minwidth=getXMLval(l_result,"minwidth","int",false,180);
		var l_sizable=getXMLval(l_result,"sizable","int",false,1);
		var l_name=getXMLval(l_result,"name","str",false,"--");
		var l_format=getXMLval(l_result,"format","str",false,"I");
		var l_website=getXMLval(l_result,"website","str",false,"");
		var l_nbvars=getXMLval(l_result,"nbvars","int",false,0);
		if (vars[1]=='') vars[1]=getXMLval(l_result,"var","str",false,"");
		if (showNewMod) closeNewMod();
		l_newId=module.length;
		// var url=l_result.getElementsByTagName("url")[0].firstChild.nodeValue+"pid="+jsid+"&prof="+jsprof+"&p="+l_newId;
		var l_url=getXMLval(l_result,"url","str",false,"");
		//show overview if configured in admin panel
		if (__useoverview || vars[2]=="uniq"){
			l_s+="<tr><td style='padding-top:8px;width:390px;' valign='top'>";
			l_s+=getXMLval(l_result,"description","str",false,"...");
			if (vars[2]=="portal") l_s+="<br /><br /><center><input class='btnbig' type='button' value='"+lg("lblBtnModAdd")+"' onclick='module[module.length-1].placeinCol(1);closeNewMod();' /></center><br />";
			l_s+="<td id=col"+(vars[2]=="portal"?"0":"1")+" style='width:400px;'></td></tr></table></td></tr>";
			l_s+="</table>";
			navPrint("newmod",box(0,l_name+img("star_yellow2_"+getXMLval(l_result,"nota","int",false,0)+".gif",53,12),"closeNewMod()",l_s));
			navShow("newmod","block");
			maxUniq++;
			if (vars[2]=="portal"){
				cols[0]=_gel("col0");
				module[l_newId]=new moduleObj(0,0,0,l_size,vars[0],l_website,l_name,vars[1],l_minwidth,l_sizable,400,l_url,0,l_newId,maxUniq,l_format,l_nbvars,0);
				module[l_newId].create();
				module[l_newId].show();
			} else if (vars[2]=="uniq"){
				cols[1]=_gel("col1");
				module[l_newId]=new moduleObj(1,1,1,l_size,vars[0],l_website,l_name,vars[1],l_minwidth,l_sizable,400,l_url,0,l_newId,1,l_format,l_nbvars,0);
				module[l_newId].create();
				module[l_newId].show();
				cols[1].appendChild(p_area.module.endList());
				p_area.module.showHdr();
				p_area.col.isInit=false;
				displayItems();
				//initMove(cols[0],"module",cols,"multidim",true);
			}
			showNewMod=true;
		} else {
			maxUniq++;
			module[l_newId]=new moduleObj(-1,0,0,l_size,vars[0],l_website,l_name,vars[1],l_minwidth,l_sizable,400,l_url,0,l_newId,maxUniq,l_format,l_nbvars,0);
			module[l_newId].create();
			module[l_newId].show();
			module[l_newId].placeinCol(1);
		}
	} else {debug("Cache is not generated for this module","error");}
}
// Close the new module window
function closeNewMod(){
	// if last module created is not placed in the portal
	if (module.length==0) return;
	var l_id=module.length-1;
	if (module[l_id].newcol==0 || !isPortal) {
	//if (module[l_id].newcol==0 || jsprof==0) {
		p_area.module.supFeed(maxUniq);
		module[l_id].destruct();
		delete(module[l_id]);
		module.length-=1;
		maxUniq--;
	}
	navPrint("newmod","");
	navShow("newmod","none");
	showNewMod=false;
}
var p_pages={
	def:"N",
	change:function(v_prof,v_keepCurrentPage){
		jsprof=v_prof;
		p_area.clean(_gel("modules"));
		navShow("newspaper","none");
		closeNewMod();
		hideBox();
		p_pages.open();
		if (!v_keepCurrentPage){
			p_tabs.create(indef,false,false,jsprof);
		}
	},
	refresh:function(v_prof){
		if (jsprof==0){link("../portal/mypage.php?start="+v_prof);}
		else {
			p_tabs.sel=indef;
			p_tabs.load(v_prof);
			p_pages.change(v_prof,true);
		}
	},
	open:function(){
		startLoading();
		p_area.load("../portal/xmlmodules.php","id="+jsprof);
	},
	others:function(v_id){
		// Open the "exemples" menu
		if (showBoxStatus){hideBox();}
		var l_s="<table cellpadding='0'><tr><td class='bottomhr'>"+lg("lblExamples")+" | ";
		for (var i=0;i<__dimension.length;i++){
			if (__dimension[i]["id"]!=0){
				if (__dimension[i]["lg"]=="" || __dimension[i]["lg"]==__lang){
					if (v_id==indef) v_id=__dimension[i]["id"];
					l_s+="<a id='dir"+__dimension[i]["seq"]+"' class='"+((v_id==__dimension[i]["id"])?"sellist":"optlist")+"' href='#' onclick='p_pages.others("+__dimension[i]["id"]+")'>"+__dimension[i]["name"]+"</a> | ";
				}
			}
		}
		l_s+="</td></tr>";
		l_s+="<tr><td id='listexample' style='height:116px;padding-top:8px;' valign='top'></td></tr>";
		l_s+="</table>";

		navPrint("box",box(0,img("ico_menu_examples.gif",12,12,"","imgmid")+" "+lg("lblOtherPortal")+" :","hideBox()",l_s));
		navShow("box","block");
		showBoxStatus=true;
		p_pages.initList(v_id,0);
		return false;
	},
	newPortal:function(v_id){
		// open the "Add portal box"
		if (showBoxStatus){hideBox();}

		if (__useSharing){
			var l_s=img("ico_right_arrow.gif",6,9)+" <a href='#' onclick='return p_pages.newEmpty();'>"+lg("lblNewEmpty")+"</a>";
//			l_s+=img("ico_right_arrow.gif",6,9)+" <u>"+lg("lblNewMagic")+" :</u> <form name='magic' onsubmit='p_pages.newFromKW(this);return false;'>";
//			l_s+="<INPUT type=text name='searchtxt' size=62 maxlength=150 value='ex: cinema, google, gastronomie, emploi,  ...' onFocus='focusKeys();' /> <INPUT class=btn type=submit value='creer ma page' /><BR /><font class='grey'>ex: cin&eacute;ma, google, gastronomie, emploi, bloc-note, lemonde.fr, ipod nano,internet, </font>";
//			l_s+="</FORM><br />";
			l_s+="<br /><br />"+img("ico_right_arrow.gif",6,9)+" <u>"+lg("lblNewExample")+" :</u> | ";
			for (var i=0;i<__dimension.length;i++){
				if (__dimension[i]["id"]!=0){
					if (__dimension[i]["lg"]=="" || __dimension[i]["lg"]==__lang){
						if (v_id==indef) v_id=__dimension[i]["id"];
						l_s+="<a id='dir"+__dimension[i]["seq"]+"' class='"+((v_id==__dimension[i]["id"])?"sellist":"optlist")+"' href='#' onclick='p_pages.newPortal("+__dimension[i]["id"]+")'>"+__dimension[i]["name"]+"</a> | ";
					}
				}
			}
			l_s+="<br /><div id='listexample'>"+lg("lblLoading")+"</div>";
			navPrint("box",box(0,lg("lblNewTit"),"hideBox()",l_s));
			navShow("box","block");
			showBoxStatus=true;
			p_pages.initList(v_id,1);
		} else {p_pages.newEmpty();}
	},
	initList:function(v_cat,v_type){
		// Initialize modules directory menu
		var l_s="<table cellpadding='0' cellspacing='0' border='0'>";
		l_s+="<tr><td><table><tr>";
		l_s+="<td><div id='level1' class='dirdivi' style='width:230px;'></div></td>";
		l_s+="<td><div id='level2' class='dirdivi' style='width:200px;'></div></td>";
		l_s+="<td><div id='level3' class='dirdivi' style='width:200px;'></div></td>";
		l_s+="<td><div id='level4' class='dirdivi' style='width:170px;'></div></td>";
		l_s+="</tr></table></td></tr></table>"+img("",7,7)+"<br />";
		navShow("listexample","block");
		navPrint("listexample",l_s);
		navPrint("level1","Chargement ...");
		p_pages.getList(v_cat,1,v_type);
	},
	getList:function(v_cat,v_level,v_type){
		// Open the modules directory
		getXml("../cache/portaldir_"+v_cat+"_"+__lang+".xml",p_pages.displayList,new Array(v_level,v_type));
	},
	displayList:function(response,vars){
		var l_s="";
		if (response.getElementsByTagName("dir")[0]||response.getElementsByTagName("portal")[0]){
			l_s+="<table cellpadding='0' cellspacing='1' border='0' style='width:90%'>";
			if (response.getElementsByTagName("dir")[0]){
				var l_i=0,l_dirid;
				while (response.getElementsByTagName("dir")[l_i]){
					var l_result=response.getElementsByTagName("dir")[l_i];
					l_dirid=getXMLval(l_result,"dirid","int",false,0);
					l_s+="<tr><td id='dir"+l_dirid+"' class='catopti' onmouseover='catOptOver("+l_dirid+")' onmouseout='catOptOut("+l_dirid+")'> <a href='#' class='menul' onclick='p_pages.getList("+l_dirid+","+(vars[0]+1)+","+vars[1]+");catOptSel("+l_dirid+","+vars[0]+");return false;'>"+getXMLval(l_result,"dirname","str",false,"...")+"</a></td></tr>";
					l_i++;
				}
			}
			if (response.getElementsByTagName("portal")[0]){
				var l_i=0,l_exampleid;
				while (response.getElementsByTagName("portal")[l_i]){
					var l_result=response.getElementsByTagName("portal")[l_i];
					l_exampleid=getXMLval(l_result,"id","int",false,0);
					l_s+="<tr><td>"+img("ico_example.gif",13,11,"","imgmid")+" <a href='#' class='menul' onclick='p_pages.loadOverview("+l_exampleid+","+vars[1]+");return false;'>"+getXMLval(l_result,"name","str",false,"...")+"</a></td></tr>";
					l_i++;
				}
			}
			l_s+="</table>";
		}
		else {l_s+=lg("lblNoPortal");}

		navClass("level"+vars[0],"dirdiva");
		navPrint("level"+vars[0],l_s);
		//clear unused div
		for (var i=vars[0]+1;i<5;i++){navPrint("level"+i,"");navClass("level"+i,"dirdivi");}
	},
	newEmpty:function(){
		// Create empty portal
		executescr("scr_createportal.php","w=3&s="+p_area.style+"&n=nouveau&t=0&nb=15",false,true,p_pages.refresh);
	},
	newExample:function(v_id,v_type,v_check){
		if (v_type!=indef && v_type==2){
			getXml("xmlfriendportal.php?id="+v_id+"&chk="+v_check,p_pages.newGetModules,"");
		} else {
			getXml("../cache/portal_"+v_id+".xml",p_pages.newGetModules,"");
		}
	},
	newGetModules:function(response,vars){
		// Get modules from XML file for creation of a new portal
		var i=0,l_s="";
		var l_style=getXMLval(response,"style","int",false,3);
		var l_mode=getXMLval(response,"showtype","int",false,0);
		while (response.getElementsByTagName("module")[i]){
			var l_result=response.getElementsByTagName("module")[i];
			l_s+="&id"+i+"="+getXMLval(l_result,"id","int",false,0);
			l_s+="&col"+i+"="+getXMLval(l_result,"col","int",false,1);
			l_s+="&pos"+i+"="+getXMLval(l_result,"pos","int",false,i);
			l_s+="&posj"+i+"="+getXMLval(l_result,"posj","int",false,i);
			l_s+="&var"+i+"="+getXMLval(l_result,"vars","str",false,"");
			l_s+="&blocked"+i+"="+getXMLval(l_result,"blocked","int",false,0);
			l_s+="&minimized"+i+"="+getXMLval(l_result,"minimized","int",false,0);
			i++;
		}
		executescr("scr_createportal.php","w=3&s="+l_style+"&n=nouveau&t="+l_mode+"&nb=25&sess="+getSession()+l_s,false,true,openPage);
	},
	suppress:function(){
		//check if module is locked in the portal => no suppression
		for (var i=0;i<module.length;i++){
			if (module[i].blocked){
				p_alert.show(lg("msgNotRemovable"));
				return false;
			}
		}
		// Suppress a portal
		response=confirm(lg("msgSuppressConfirm"));
		if (response==1){
			//find out the portal to redirect on
			//var l_nextPage=-1;
			//for (var i=0;i<tab.length;i++){
			//	if (tab[i].id!=jsprof){l_nextPage=i;break;}
			//}
			executescr("scr_suppersonal.php","id="+tab[p_tabs.sel].id+"&seq="+tab[p_tabs.sel].seq);
			
			if (tab.length<2){link("mymodules.php");}
			else {
				//update tabs sequence
				for (var i=0;i<tab.length;i++){
					if (i>p_tabs.sel) tab[i].seq--;
				}
				//delete the tab
				tab.splice(p_tabs.sel,1);
				//activate the def tab
				p_pages.change(tab[0].id);
			}
		}
	},
	def:function(){
		// Set portal as default one
		response=confirm(lg("msgDefaultConfirm"));
		if (response==1){
			p_pages.def="Y";
			p_tabs.create(p_tabs.sel);
			if (p_banner.option.shown) {p_banner.option.shown=false;p_banner.option.show();}
			executescr("scr_setdefault.php","prof="+jsprof,true)
		}
	},
	loadOverview:function(v_id,v_type,v_check){
		if (v_type==2){
			getXml("xmlfriendportal.php?id="+v_id+"&chk="+v_check,p_pages.displayOverview,new Array(v_id,v_type,v_check));
		} else {
			getXml("../cache/portal_"+v_id+".xml",p_pages.displayOverview,new Array(v_id,v_type,v_check));
		}
	},
	displayOverview:function(response,vars){
		var l_s="<table cellpadding='0' cellspacing='1' border='0' width='100%'>";
		var l_tit=getXMLval(response,"name","str",false,lg("lblNoTitle"));
		l_s+="<tr><td valign=top>"+lg("lblDescription")+" :<br />"+getXMLval(response,"description","str",false,lg("lblNoDescription"));
		if (vars[1]==0){
			l_s+="<br /><br /><center><input class='btnbig' type='button' value='"+lg("lblUseExample")+"' onclick='p_pages.show("+vars[0]+")' /></center>";
		} else {
			l_s+="<br /><br /><center><input class='btnbig' type='button' value='"+lg("lblCreateFromExample")+"' onclick=\"p_pages.newExample("+vars[0]+","+vars[1]+",'"+vars[2]+"')\" /></center>";
		}

		l_s+="</td><td valign='top'>"+lg("lblModules")+" :<br />";
		if (response.getElementsByTagName("module")[0]){
			var l_i=0;
			l_s+="<table cellpadding='0' cellspacing='0'>";
			while (response.getElementsByTagName("module")[l_i]){
				var l_result=response.getElementsByTagName("module")[l_i];
				l_s+="<tr><td>"+img("../modules/pictures/box0_"+getXMLval(l_result,"id","int",false,0)+".gif",16,16,"","imgmid")+"</td><td>"+getXMLval(l_result,"name","str",false,"-")+"</td></tr>";
				l_i++;
			}
			l_s+="</table>";
		}
		else {l_s+=lg("lblNoModule");}

		if (showNewMod) closeNewMod();
		navShow("newmod","block");
		navPrint("newmod",box(0,l_tit,"closeNewMod()",l_s));
	},
	show:function(v_id){
		p_area.clean(_gel("modules"));
		closeNewMod();
		hideBox();
		p_area.load("../cache/portal_"+v_id+".xml");
		startLoading();
	},
	isPageExisting:function(v_sess){
		if (v_sess!=indef){
			if (v_sess=="admin"){link("../admin/index.php");}
//			else if(v_sess=="redactor"){link("../redactor/index.php");}
			else {getXml("xmlpages.php",p_pages.createFromXml,v_sess);}
		}
	},
	createFromXml:function(response,vars){
		//if page tag, redirect to this page
		if (response.getElementsByTagName("page")[0]){
			link("../portal/"+getXMLval(response.getElementsByTagName("page")[0],"url","str",false,""));
			return;
		}
		// Get modules from XML file for creation of a new portal
		var i=0,l_s="";
		var l_name=getXMLval(response,"name","str",false,"myPage");
		var l_style=getXMLval(response,"style","int",false,1);
		var l_nbcol=getXMLval(response,"nbcol","int",false,3);
		var l_mode=getXMLval(response,"showtype","int",false,0);
		var l_npnb=getXMLval(response,"npnb","int",false,25);
		while (response.getElementsByTagName("module")[i]){
			var l_result=response.getElementsByTagName("module")[i];
			l_s+="&id"+i+"="+getXMLval(l_result,"id","int",false,0);
			l_s+="&col"+i+"="+getXMLval(l_result,"col","int",false,1);
			l_s+="&pos"+i+"="+getXMLval(l_result,"pos","int",false,i);
			l_s+="&posj"+i+"="+getXMLval(l_result,"posj","int",false,i);
			l_s+="&var"+i+"="+_esc(getXMLval(l_result,"vars","str",false,""));
			l_s+="&blocked"+i+"="+getXMLval(l_result,"blocked","int",false,0);
			l_s+="&minimized"+i+"="+getXMLval(l_result,"minimized","int",false,0);
			i++;
		}
		executescr("scr_createportal.php","w="+l_nbcol+"&s="+l_style+"&n="+l_name+"&t="+l_mode+"&nb="+l_npnb+"&sess="+vars+l_s,false,true,openPage);
	}
}
function hideBox(){
	navPrint("box","");
	navShow("box","none");
	showBoxStatus=false;
}
function hideAllBox(){
	hideBox();
	if (__menuposition=="v"){hideLeftMenu();}
}
function hideLeftMenu(){
	navShow("leftmenu","none");
	(_gel("menus")).style.marginLeft="0px";
	(_gel("modules")).style.marginLeft="0px";
}

//===============================================================================================================
//					OTHER OBJECTS MANAGEMENT
//===============================================================================================================

// initialize the hidding window (for drag action)
var p_cache={
	init:function(){
		var l_obj=_gel("cache");
		if (!NS&&!OP){l_obj.style.backgroundColor="#efefef";l_obj.style.opacity=0.1;l_obj.style.filter="alpha(opacity=10)";}
	},
	show:function(v_status){
		var l_obj=_gel("cache");
		if (v_status=="block"){
			l_obj.style.width=document.body.scrollWidth;
			l_obj.style.height=document.body.scrollHeight;
		}
		l_obj.style.display=v_status;
	}
}
// Switch the display of the news
//function changeShowType(v_id){
//	if (p_area.showType==v_id){alert(lg("msgTypeNoChg"));}
//	else {
//		//navClass("show"+p_area.showType,"iconei");
//		p_area.showType=v_id;
//		//navClass("show"+p_area.showType,"iconea");
//		//executescr("scr_setshowtype.php","prof="+jsprof+"&st="+v_id);
//		p_area.init();
//	}
//	return false;
//}
// Check if additionnal module is requested
function additionalMod(){
	if (getVar(window.location.search.substring(1),"open")){
		var l_vars=(getVar(window.location.search.substring(1),"vars"))?getVar(window.location.search.substring(1),"vars"):"";
		openmod(getVar(window.location.search.substring(1),"open"),l_vars);
	}
}
var p_tabs={
	isInit:false,
	sel:indef,
	currName:"",
	overtabid:-1,
	load:function(v_prof,v_locked){
		var l_tabXml=(jsid==0)?"selections/tabs.xml":"xmltabs.php";
		var l_locked=v_locked?true:false;
		getXml(l_tabXml,p_tabs.treat,new Array(l_locked,v_prof));
	},
	treat:function(response,vars){
		var i=0,result;
		while (response.getElementsByTagName("tab")[i]){
			result=response.getElementsByTagName("tab")[i];
			tab[i]=new tabObj(getXMLval(result,"number","int",false,0),getXMLval(result,"name","str",false,"..."),getXMLval(result,"type","str",false,"P"),getXMLval(result,"action","str",false,""),getXMLval(result,"locked","int",false,0),getXMLval(result,"seq","int",false,0),getXMLval(result,"edit","int",false,0),getXMLval(result,"move","int",false,0));
			i++;
		}
//		if (p_tabs.sel!=indef){p_tabs.create(p_tabs.sel,vars[0]);}else{p_tabs.create();}
		p_tabs.create(p_tabs.sel,vars[0],false,vars[1]);
	},
	create:function(v_id,v_locked,v_stopMove,v_prof){
		// Create the pages tab
		if (v_locked==indef) v_locked=false;
//		var l_movable=tab[v_id]&&tab[v_id].movable&&!v_stopMove;
		var l_movable=!v_stopMove;
		var l_s="";
//		if (jsid>=0) l_s+="<div style='height:27px;margin:4px;' width='100%' align='right' valign='center'>";
		l_s+="<div class='headlink'>";
		if (jsid>0) {l_s+=lg("lblHello")+" <a class='u' href='#' onclick='"+(v_locked?"":"changeProfile()")+"'>"+shortName(jsusername)+"</a> | ";}
		//additional links (configured in config.js)
		for (var i=0;i<__headlinks.length;i++){
			if ((__headlinks[i]["anonymous"]&&jsid==0)||(__headlinks[i]["connected"]&&jsid!=0&&jsprof!=0)){
				if (__headlinks[i]["fct"]!="") l_s+="<a class='u' href='#' id='"+__headlinks[i]["id"]+"' onclick='return "+__headlinks[i]["fct"]+"' title=\""+__headlinks[i]["comment"]+"\">";
				if (__headlinks[i]["img"]!="-") l_s+=img(__headlinks[i]["img"],false,false,__headlinks[i]["comment"],"imgmid")+" ";
				l_s+=__headlinks[i]["label"]
				if (__headlinks[i]["fct"]!="") l_s+="</a>";
				l_s+=" | ";
			}
		}
		if (__userModuleJs=="I" && jsid>0) l_s+="<a href='#' class='u' onclick='goIndex()'>"+lg("lblArchive2")+"</a> | ";
		if (__useArchive && jsid>0) l_s+="<a href='#' class='u' onclick='goArchive()'>"+lg("lblArchive")+"</a> | ";
		if (__useSharing && jsid>0) l_s+="<a href='#' class='u' onclick='p_msg.load(false)'>"+lg("lblMsgYour")+"</a><span id=msgnb></span> | ";
		if (jsid==0) {l_s+="<a href='#' class='u' onclick='return connectBox();'><b>"+lg("lblConnect")+"</b></a>";}
		else if (jsid>0) {l_s+="<a class='u' href='"+pfolder+"scr_authentif.php?act=logout'>"+lg("lblDisconnect")+"</a>";}
//		if (jsid==0) {l_s+="<A href='#' onclick='connectBox();return false;'><B>"+lg("lblConnect")+"</B></A> | <a href='#' onclick='openHelp();return false;' title='"+lg("lblFirstUsage")+"'><B>"+lg("lblHelp")+"</B></A>";}
//		else if (jsid>0) {l_s+=lg("lblHello")+" <A class=u href=# onclick='"+(v_locked?"":"changeProfile()")+"'>"+shortName(jsusername)+"</A> | <A class=u href=# onclick='return goIndex()'>"+lg("lblArchive")+"</A> | <A class=u href=# onclick='return p_banner.option.show();'>"+lg("lblShowOpt")+"</A> | <A class=u href=# onclick='p_msg.load(false);'>"+lg("lblMsgYour")+"</A><span id='msgnb'></span> | <A class=u href='"+pfolder+"scr_authentif.php?act=logout'>"+lg("lblDisconnect")+"</A>";}
		l_s+="&nbsp;&nbsp;</div><table cellpadding='0' cellspacing='0' width='100%'><tr>";
		var i=0;
		while (i<tab.length){
			//if selected tab in not yet defined
			if (v_id==indef&&v_prof==tab[i].id) {v_id=i;p_tabs.sel=i;}
			//first tab initialise moving tab list
			if (tab[i].seq==1) l_s+="<td><table cellpadding='0' cellspacing='0' border='0'><tr id='tabsframe'>";
			l_s+="<td id='tab"+i+"' width='1'>";
			if (i==v_id){
				p_tabs.currName=tab[i].label;
				l_s+="<table class='taba' cellpadding='0' cellspacing='0'><tr><td class='tabal' id='tab"+i+"_h'"+(l_movable&&tab[i].movable?" style='cursor:move'":"")+"><a href='#' onmousedown='"+(v_locked||!tab[i].editable?"":"p_tabs.edit("+i+")")+"' style='cursor:text'>"+tab[i].label+"<span id='tabextra'></span></a></td><td class='tabar'>";
				if (jsid>0){
					l_s+="<table cellpadding='0' cellspacing='0' border='0'>";
					if (tab[i].lock!=""){l_s+="<tr><td style='font-size:2pt;'><a href='#' onclick='lockPage();return false;'>"+img("lock.gif",7,9,lg("lblSecuActive"),"imgmid")+"</a></td></tr>";}
					l_s+="<tr><td style='font-size:2pt;'><a href='#' onclick='"+(v_locked?"":"return p_banner.option.show()")+"'>"+img("ico_down_arrow.gif",11,8,lg("lblShowOpt"),"imgmid")+"</a></td></tr>";
					l_s+="</table>";
				} else {l_s+="&nbsp;";}
				l_s+="</td><td class='intertaba'>"+img("s.gif",1,1)+"</td></tr></table>";
				changePageTitle(p_tabs.currName);
			} else {
//				l_s+="<table class='tab' cellpadding='0' cellspacing='0'><tr><td class='tabl' id='tab"+i+"_h'"+(l_movable&&tab[i].movable?" style='cursor:move'":"")+"><A href="+((tab[i].type==4)?"'"+tab[i].fct+"'":"# onclick=\"p_tabs.sel="+i+";p_tabs.create(p_tabs.sel);"+tab[i].fct+";return false;\"")+" id='tab"+i+"_u'>"+tab[i].label+"</A></td><td class='tabr'>";
				l_s+="<table class='tab' cellpadding='0' cellspacing='0'><tr><td class='tabl'"+(tab[i].movable?" id='tab"+i+"_h' style='cursor:move'":"")+">";
				if (v_prof==0) {l_s+="<a href='../portal/mypage.php?start="+tab[i].id+"' id='tab"+i+"_u'>"+tab[i].label+"</a>";}
				else {l_s+="<a href="+((tab[i].type==4)?"'"+tab[i].fct+"'":"'#' onclick=\"p_tabs.create("+i+");"+tab[i].fct+";return false;\"")+" id='tab"+i+"_u'>"+tab[i].label+"</a>";}
				l_s+="</td><td class='tabr'>";
				l_s+=(tab[i].lock=="")?"&nbsp;":img("lock.gif",7,9,lg("lblProtected"));
				l_s+="</td><td class='intertab'>"+img("s.gif",1,1)+"</td></tr></table>";
			}
			l_s+="</td>";
			i++;
		}
		if (jsid>0) l_s+="<td nowrap='nowrap' class='endtab'><a href='#' onclick='p_pages.newPortal();return false;'>+ "+lg("lblNewpage")+"&nbsp;</a></td>";
//		if (i>0) l_s+="<TD class='endtab'>&nbsp;</TD></TR></TABLE></TD>";
		if (i>0) l_s+="</tr></table></td><td class='endtab' width='100%'>&nbsp;</td>";
		l_s+="</tr></table>";
		navPrint("tabs",l_s);
		p_tabs.isInit=false;
		if (l_movable) p_tabs.init();
	},
	init:function(){
		// Initialize column & modules behaviors
		// do not initialize the tabs if already done
		if (p_tabs.isInit) return;
		//if no tab existing for user
		if (tab.length==0) return;
		p_tabs.isInit=true;
		var l_tabs=_gel("tabsframe");
		for(var i=0;i<l_tabs.childNodes.length-1;i++){
			var l_mod=l_tabs.childNodes[i];
			initMove(l_mod,"tab",l_tabs,"horizontal",false);
		}
	},
	save:function(v_movedId){
		// Save the tabs changes
		var l_tabs=_gel("tabsframe");
		var l_prevPlace=0;
		for(var i=0;i<l_tabs.childNodes.length-1;i++){
			if ((l_tabs.childNodes[i].id).indexOf("tab")!=-1){
				l_id=(l_tabs.childNodes[i].id).replace("tab","");
				if (l_id==v_movedId && (l_prevPlace+1)!=tab[l_id].seq){
					executescr("scr_movetab.php","id="+tab[l_id].id+"&old="+tab[l_id].seq+"&new="+(l_prevPlace+1),false);
				}
				l_prevPlace=tab[l_id].seq;
				tab[l_id].seq=i+1;
				//if (l_id==p_tabs.sel) l_newSeq=tab[l_id].seq;
			}
		}
		tab.sort(p_tabs.sort);
		p_tabs.create(indef,false,false,jsprof);
	},
	sort:function(a,b){
		if (a.seq<b.seq) return -1;
		if (a.seq>b.seq) return 1;
		return 0; 
	},
	edit:function(v_id){
		// Edit tab name
		p_tabs.create(p_tabs.sel,false,true);
		var l_tab=_gel("tab"+v_id+"_h");
		l_tab.innerHTML="<form onsubmit='p_tabs.rename(this.tabinput,"+v_id+");return false;'><input class='thinbox' name='tabinput' id='tabinput' type='text' size='30' maxlength='30' style='border:0px;font-size:7pt;margin:0px;height:13px;' value='"+tab[v_id].label+"' /> <input class='btnsmall' type='submit' value='"+lg("lblOk")+"' /> <a href='#' onclick='p_tabs.create(p_tabs.sel);'>"+img("ico_close.gif",9,9,lg("lblCancel"),"imgmid")+"</a></form>";
		var l_input=_gel("tabinput");
		l_input.select();
	},
	rename:function(v_input,v_id){
		// Change tab name
		var l_name=(v_input.value).replace(/'/g,"").replace(/"/g,"");
		if (l_name!="" && l_name!=p_tabs.currName){
			p_tabs.currName=l_name;
			tab[v_id].label=l_name;
			executescr("scr_config_options.php","prof="+jsprof+"&portstyle="+p_area.style+"&portname="+_esc(p_tabs.currName)+"&col="+p_area.col.nb+"&advise="+p_banner.info.requested,false);
		}
		p_tabs.create(p_tabs.sel);
		p_rss.pageUnread();
	},
	moduleOver:function(v_id){
		var l_obj=_gel("tab"+v_id);
		l_obj.style.border="1px solid #ff0000";
		p_tabs.overtabid=v_id;
	},
	moduleOut:function(v_id){
		var l_obj=_gel("tab"+v_id);
		if (l_obj) l_obj.style.border="0px";
		p_tabs.overtabid=-1;
	},
	moduleOutAll:function(){
		for (var i=0;i<tab.length;i++){p_tabs.moduleOut(i);}
	}
}
// statistic management
function stats(){
	executescr("scr_addstats.php","prof="+jsprof+"&id="+jsid,false);
}
function _IG_Analytics(){}
function _IG_RegisterOnloadHandler(v_fct){
	window.onload=v_fct;
}
function _IG_FetchContent(v_url, v_fct){
	getXml(v_url,v_fct,"","html","","GET");
}
function _IG_FetchXmlContent(v_url, v_fct){
	getXml(v_url,v_fct,"","xml","","GET");
}
// Display saving box
function showSave(){
	if (showBoxStatus){hideBox();}
	var l_s="<table><tr>";
	l_s+="<td valign=top width='400'><div class='bottomhr'><b>"+lg("lblAccountCreation")+" "+__apname+" :</b></div><br />";
	l_s+="<form name='form1' method='post' onsubmit='return subscribe(this,savePage);'>";
	l_s+="<table cellspacing='2' cellpadding='0' border='0'>";
	l_s+="<tr><td>"+lg("lblEmail")+" :&nbsp;</td><td><input class='thinbox' name='username' type='text' size='17' maxlength='64' /></td></tr>";
	l_s+="<tr><td>"+lg("lblEmailConfirmation")+" :&nbsp;</td><td><input class='thinbox' name='username2' type='text' size='17' maxlength='64' /></td></tr>";
	l_s+="<tr><td>"+lg("lblPassword")+" :&nbsp;</td><td><input class='thinbox' type='password' name='pass' size='17' maxlength='16' /></td></tr>";
	l_s+="<tr><td>"+lg("lblPasswordConfirmation")+" :&nbsp;</td><td><input class='thinbox' type='password' name='confpass' size='17' maxlength='16' /></td></tr>";
	l_s+="</table><br />";
	l_s+="<input type='checkbox' name='autoconn' />"+lg("lblAutoConnection")+"<br />";
	if (__useNewsletter) l_s+="<input type='checkbox' name='newsletter' />"+lg("lblNewsletterRequired")+" "+__apname+".<br />";
	if (__useConditions) l_s+="<input type='checkbox' name='conditions' />"+lg("lblConditionsStr","<a href='#' onclick=\"return link('conditions.html',true,true);\">"+lg("lblConditions")+"</a>")+".<br />";
	l_s+=img("",8,8)+"<br /><br />";
	l_s+="<center><input class='btn' type='submit' name='"+lg("lblOk")+"' style='width:250px' value='"+lg("lblSavePage")+"' /></center>";
	l_s+="</form><br />";
	l_s+="</td><td width='50'></td><td valign='top' width='400'><div class='bottomhr'><b>"+lg("lblAlreadyMember")+" ?</b></div><br />";
	l_s+="<form name='form2' method='post' onsubmit='return connect(this,savePage);'>";
	l_s+="<table cellspacing='0' cellpadding='0' border='0'>";
	l_s+="<tr><td>&nbsp;&nbsp;"+lg("lblEmail")+" :&nbsp;&nbsp;</td><td><input class='thinbox' name='username' id='username' type='text' size='17' maxlength='64' value='' />&nbsp;&nbsp;</td></tr>";
	l_s+="<tr><td style='height:20px'>&nbsp;&nbsp;"+lg("lblPassword")+" :&nbsp;&nbsp;</td><td><input class='thinbox' name='password' type='password' size='17' maxlength='16' />&nbsp;&nbsp;<a href='"+pfolder+"password_missing.php' target=_blank style='font-size:7pt;'>"+lg("lblMissingPassword")+" ?</a></td></tr>";
	l_s+="<tr><td></td><td><input type='checkbox' name='autoconn' />"+lg("lblAutoConnection")+"</td></tr>";
	l_s+="<tr><td style='height:8px'></td></tr><tr><td colspan='2' align='center'><br /><input class='btn' type='submit' value='"+lg("lblSavePage")+"' style='width:250px' /></td></tr>";
	l_s+="</table></form>";
	l_s+="<br /><br /><table width='400'><tr><td style='border:1px solid #ffffff;padding:8px;'>"+__conditionComment+"</td></tr></table>";
	l_s+="</td></tr></table>";
	navPrint("box",box(0,img("ico_menu_disk.gif",12,12,"","imgmid")+" "+lg("lblSavePage"),"hideBox()",l_s));
	navShow("box","block");
	showBoxStatus=true;
	return false;
}
// connect to profile
function connect(v_form,v_function,v_type){
	var l_connStr="u="+v_form.username.value+"&p="+v_form.password.value;
	if (v_form.autoconn && v_form.autoconn.checked) l_connStr+="&auto=1";
	if (v_type) l_connStr+="&rtype=1";
	if (v_form.username.value==""){p_alert.show(lg("lblEmailChk")+".\r\n");}
	else {executescr("scr_connect.php",l_connStr,true,true,v_function);}
	return false;
}
// subscribe
function subscribe(v_form,v_function){
	var l_e="";
	if (v_form.username.value==""){l_e+=lg("msgSubEmailMiss")+"\r\n";}
	if (v_form.pass.value==""){l_e+=lg("msgSubPassMiss")+"\r\n";}
	else {if (!checkEmail(v_form.username.value)){l_e+=lg("msgSubEmailValid")+"\r\n";};}
	if (v_form.username.value!=v_form.username2.value){l_e+=lg("msgSubEmaildiff")+"\r\n";}
	if (v_form.pass.value!=v_form.confpass.value){l_e+=lg("msgSubPassDiff")+"\r\n";}
	if(__useConditions&&!v_form.conditions.checked){l_e+=lg("msgSubCond");}
	var l_connStr="u="+v_form.username.value+"&p="+v_form.pass.value+((__useNewsletter&&v_form.newsletter.checked)?"&n=1":"");
	if (v_form.autoconn.checked) l_connStr+="&auto=1";
	if (l_e==""){
		executescr("scr_subscribe.php",l_connStr,true,true,v_function);
	}
	else {p_alert.show(l_e);}
	return false;
}
// Change user password
function changePass(){
	executescr("scr_changepwd.php","oldpass="+_esc(document.forms["newpass"].oldpass.value)+"&pass1="+_esc(document.forms["newpass"].pass1.value)+"&pass2="+_esc(document.forms["newpass"].pass2.value),true);
}
// User profile changes box
function changeProfile(){
	if (showBoxStatus){hideBox();}

	var l_s="<table><tr>";
	l_s+="<td valign='top' width='400'><div class='bottomhr'><b>"+lg("lblModifyPassword")+" :</b></div><br />";
	l_s+="<form name='newpass'><table>";
	l_s+="<tr><td>"+lg("lblOldPassword")+" :</td><td> <input class='thinbox' type='password' name='oldpass' maxlength='16' /></td></tr>";
	l_s+="<tr><td>"+lg("lblNewPassword")+" :</td><td> <input class='thinbox' type='password' name='pass1' maxlength='16' /></td></tr>";
	l_s+="<tr><td>"+lg("lblRetypeNewPassword")+" :</td><td> <input class='thinbox' type='password' name='pass2' maxlength='16' /></td></tr>";
	l_s+="<tr><td></td><td><input class='btn' type='button' value='"+lg("lblModify")+"' onclick='changePass();' /></td></tr>";
	l_s+="</table></form></td><td width='20'></td><td valign='top' width='400'>";
	l_s+="<div class='bottomhr'><b>"+lg("lblChangeUser")+" :</b></div><br /><form name='conBox' method='post' onsubmit='return connect(this,link,true)'><table><tr><td>"+lg("lblEmail")+"</td><td><input class='thinbox' type='text' name='username' size='30' maxlength='64' /></td></tr><tr><td>"+lg("lblPassword")+"</td><td><input class='thinbox' type='password' name='password' size='16' maxlength='16' /></td></tr><tr><td></td><td><input type='checkbox' name='autoconn' />"+lg("lblAutoConnection")+"<br /><br /><input type='submit' value='"+lg("lblOk")+"' class='btn' /> <a href='../portal/password_missing.php' target='_blank' style='font-size:7pt;'>"+lg("lblMissingPassword")+" ?</a></td></tr></table></form>";
	l_s+="</td></tr></table></form>";

	navPrint("box",box(0,"VOTRE PROFIL","hideBox()",l_s));
	navShow("box","block");
	showBoxStatus=true;
	return false;
}
// Security box
function askCode(){
	hideAllBox();
	p_newspaper.hide();
	
	var l_s="<center><form name='identif' method='post' onsubmit='return checkCode(this)'><br /><br /><br /><table cellpadding='10' width='400'><tr><td class='protectbox'>";
	l_s+="<center><b>"+lg("lblPortalProtected")+"</b><br /><br />"+lg("lblRequestPassword")+" :<br /><br />"+lg("lblPassword")+" : <input class='thinbox' type='password' name='pass' /><input class='btn' type='submit' value='"+lg("lblBtnValid")+"' /><br /><br /><div align='right'><a href='../portal/password_missing.php' target=_blank>"+lg("lblMissingPassword")+" ?</a></div>";
	l_s+="</td></tr></table><br /><br /><br /></form></center>";
	navPrint("modules",l_s);
	navShow("modules","block");
	document.forms["identif"].pass.focus();
}
function checkCode(v_form){
	executescr("scr_unlock.php","id="+jsprof+"&pass="+v_form.pass.value,true,false,p_pages.open);
	return false;
}
function lockPage(){
	executescr("scr_protect.php","",false,false,p_pages.open);
	//link("scr_protect.php?page="+tab[p_tabs.sel].fct);
}
function connectBox(){
//	var l_s="<FORM name='conBox' action='scr_authentif.php' method=post><div class='bottomhr'>"+lg("lblConnectToYourPortal")+" :</div><br /><table><tr><td>"+lg("lblEmail")+" </td><td><INPUT class='thinbox' type='text' name='username' size=25 maxlength=64 /></td></tr><tr><td>"+lg("lblPassword")+" </td><td><INPUT class='thinbox' type='password' name='password' size=16 maxlength=16 /></td></tr><tr><td></td><td><INPUT type='submit' value='"+lg("lblConnect")+"' class=btn /> <A class=w href='password_missing.php' target='_blank'>"+lg("lblMissingPassword")+" ?</A></td></tr></table><br /></FORM>"
	var l_s="<form name='conBox' method='post' onsubmit='return connect(this,link,true)'><div class='bottomhr'>"+lg("lblConnectToYourPortal")+" :</div><br /><table><tr><td>"+lg("lblEmail")+" </td><td><input class='thinbox' type='text' name='username' size='25' maxlength='64' /></td></tr><tr><td>"+lg("lblPassword")+" </td><td><input class='thinbox' type='password' name='password' size='16' maxlength='16' /></td></tr><tr><td></td><td><input type='checkbox' name='autoconn' />"+lg("lblAutoConnection")+"<br /><br /><input type='submit' value='"+lg("lblConnect")+"' class='btn' /> <a class='w' href='password_missing.php' target='_blank'>"+lg("lblMissingPassword")+" ?</a></td></tr></table><br /></form>"
	navPrint("box",box(0,lg("lblConnect"),"hideBox()",l_s));
	navShow("box","block");
	document.conBox.username.focus();
	return false;
}
// Save current page
function savePage(v_type){
	if (v_type=="user"){
		// save the page (modules + personalization)
		executescr("scr_createportal.php",getConfig(),false,true,openPage);
	}
}
// Save portal configuration in cookie
function getConfig(){
	var l_ret="w="+p_area.col.nb+"&s="+p_area.style+"&n="+_esc(p_tabs.currName)+"&t="+p_area.showType+"&nb="+p_newspaper.nb;
	for (var i=0;i!=module.length;i++){
		l_ret+="&id"+i+"="+module[i].id+"&pos"+i+"="+module[i].newpos+"&col"+i+"="+module[i].newcol+"&posj"+i+"="+module[i].newposj+"&var"+i+"="+_esc(module[i].vars)+"&blocked"+i+"="+(module[i].blocked?"1":"0")+"&minimized"+i+"="+(module[i].minimized?"1":"0");
	}
	return l_ret;
}
function pageSelection(v_sess){
	if (v_sess) link("addtoapplication2.php?mid="+module[0].id+"&v="+_esc(module[0].vars));
}
// Init page
function initPage(){
	if (getVar(window.location.search.substring(1),"searchtxt")){
		loadMagic(getVar(window.location.search.substring(1),"searchtxt"));
	} else if (getVar(window.location.search.substring(1),"portal")) {
		p_area.load("../cache/portal_"+getVar(window.location.search.substring(1),"portal")+".xml");
	} else if (getVar(window.location.search.substring(1),"n")){
		p_area.load("xmlmodules_invitation.php?i="+getVar(window.location.search.substring(1),"i")+"&e="+getVar(window.location.search.substring(1),"e")+"&p="+getVar(window.location.search.substring(1),"p"));
		p_tabs.currName=getVar(window.location.search.substring(1),"n");
	} else {
		p_area.load("selections/page0.xml");
	}
}
// Show a portal
function displayPortal(v_id){
	p_tabs.create(indef,indef,indef,v_id);
	navShow("modules","none");
	hideBox();
	p_area.hideFrame();
	navShow("magic","none");//do not suppress !
//	p_tabs.currName=tab[(v_id+1)].label;
	p_banner.info.show();
	startLoading();
	p_area.load("selections/page"+v_id+".xml");
}

//===============================================================================================================
//					RSS MANAGEMENT
//===============================================================================================================

var p_rss={
	feeds:[],
	unread:0,
	opmlfile:"",
	usereader:1,
	checkFeed:function(){
		//get content of the rss link input by user
		var l_rss=document.forms['rss'].vars.value;
		l_auth=document.forms['rss'].pass?Base64.encode(document.forms['rss'].login.value+":"+document.forms['rss'].pass.value):indef;
		if (__useproxy){
			if (__proxypacfile=="")	getXml("../portal/xmlvalidrssproxy.php",p_rss.checkFeedXml,new Array(l_rss,l_auth),"html","url="+l_rss,"POST");
			else {
				if (getProxy(l_rss)==""){
					if (l_auth==indef){
						getXml("../portal/xmlvalidrss.php",p_rss.checkFeedXml,new Array(l_rss,l_auth),"html","url="+l_rss,"POST");
					} else {
						getXml("../portal/xmlvalidrssauth.php",p_rss.checkFeedXml,new Array(l_rss,l_auth),"html","url="+l_rss+"&auth="+l_auth,"POST");
					}
				} else getXml("../portal/xmlvalidrssproxy.php",p_rss.checkFeedXml,new Array(l_rss,l_auth),"html","proxy="+getProxy(l_rss)+"&url="+l_rss,"POST");
			}
		} else {
			if (l_auth==indef){
				getXml("../portal/xmlvalidrss.php",p_rss.checkFeedXml,new Array(l_rss,l_auth),"html","url="+l_rss,"POST");
			} else {
				getXml("../portal/xmlvalidrssauth.php",p_rss.checkFeedXml,new Array(l_rss,l_auth),"html","auth="+l_auth+"&url="+l_rss,"POST");
			}
		}
		//rss checks notification
		navPrint("authrss",lg("checkingFeed"));
		navShow("authrss","block");
		return false;
	},
	checkFeedXml:function(response,vars){
		//analyse content of the rss link input by user
		if (response.indexOf("<?xml")==-1){
			if (response.indexOf("404")!=-1) p_alert.show(lg("invalidRss"));
			else if (response=="") p_alert.show(lg("invalidRss"));
			else if (response.indexOf("401")!=-1) {p_rss.authentification();}
			else p_alert.show(lg("msgIncorrectFeed"));
			navShow("authrss","none");
		} else {
			p_rss.getFeed(vars);
		}
		return false;
	},
	authentification:function(){
		//get information for authentified rss feed
		navPrint("authrss","<font style='color:#ff0000'>"+lg("lblProtectedFeed")+"</font><br /><table><tr><td>"+lg("lblLogin")+"</td><td><input name='login' type='text' size='10' /></td></tr><tr><td>"+lg("lblPassword")+"</td><td><input name='pass' type='password' size='10' /></td></tr><tr><td></td><td><input type='submit' class='btn' value='Go' /></td></tr></table>");
		navShow("authrss","block");
	},
	getFeed:function(vars){
		//temporaly shortcut for authentified feed
		if (vars[1]!=indef){
			p_rss.showMod(vars[0],indef,vars[1]);
			return false;
		}
		//var l_rss=document.forms['rss'].vars.value;
		if (__useproxy){
			if (__proxypacfile=="")	getXml("../portal/xmlcheckfeedproxy.php",p_rss.getFeedXml,vars,"xml","url="+vars[0],"POST");
			else {
				if (getProxy(vars[0])==""){
					getXml("../portal/xmlcheckfeed.php",p_rss.getFeedXml,vars,"xml","url="+vars[0],"POST");
				} else getXml("../portal/xmlcheckfeedproxy.php",p_rss.getFeedXml,vars,"xml","proxy="+getProxy(vars[0])+"&url="+vars[0],"POST")
			}
		} else {
			getXml("../portal/xmlcheckfeed.php",p_rss.getFeedXml,vars,"xml","url="+vars[0],"POST");
		}
		return false;
	},
	getFeedXml:function(response,vars){
		if (response.getElementsByTagName("error")[0]){
			p_alert.show(lg("msgIncorrectFeed"));
			navShow("authrss","none");
		} else {
			l_icon=getXMLval(response,"icon","str",false,"0");
			p_rss.showMod(vars[0],(l_icon==0?indef:l_icon),vars[1]);
		}
	},
	showMod:function(v_rss,v_icon,v_auth){
		//suppress checking feed notification
		navShow("authrss","none");
		// show RSS module
		openmod(86,"rssurl="+_esc(v_rss)+(v_icon==indef?"":"&icon="+v_icon)+(v_auth==indef?"":"&auth="+v_auth));
		return false;
	},
	info:function(){p_alert.show(lg("msgRSShlp"));return false;},
	refreshAll:function(){
		if (p_area.showType==0){
			for (var i=0;i<module.length;i++){
				if (module[i].format=='R') module[i].refresh();
				//refresh also emails
				if (module[i].format=='M' && module[i].id==350) module[i].refresh();
			}
		} else {
			p_newspaper.refresh();
		}
	},
	refresh:function(v_id){
		// Fill & Refresh RSS module
		navPrint("module"+module[v_id].uniq+"_c",lg("lblLoading"))
		var l_oldNb=parseInt(getVar(module[v_id].vars,"nb"),10);
		var l_nb=(l_oldNb==0||isNaN(l_oldNb))?5:l_oldNb;
		//get RSS feed
		if (p_area.showType==0){
			getXml(module[v_id].url,p_rss.display,new Array(v_id,l_nb,module[v_id].uniq),"xml","pid="+jsid+"&prof="+jsprof+"&p="+module[v_id].uniq+"&bar="+p_banner.option.ctrl+"&"+module[v_id].vars,"POST");
		} else {
			getXml(module[v_id].url,p_newspaper.chk,new Array(v_id,l_nb,module[v_id].uniq),"xml","pid="+jsid+"&prof="+jsprof+"&p="+module[v_id].uniq+"&bar="+p_banner.option.ctrl+"&"+module[v_id].vars,"POST");
		}
		return false;
	},
	init:function(){
		// initialize feeds
		for (i=0;i<module.length;i++){module[i].isLoaded=false;}
		p_rss.feeds.length=0;
	},
	get:function(response,v_modId,v_nb){
		// get module feeds
		if (response.getElementsByTagName("header")[0]){
			//if RSS, name is the URL of the RSS feed
			if (module[v_modId].id==86) {
				var l_vars=_unesc(module[v_modId].vars);
				var l_p1=l_vars.indexOf("rssurl=http://")+14;
				if (l_p1!=-1){
					var l_p2=l_vars.indexOf("/",l_p1);
					if (l_p2==-1) l_p2=l_vars.indexOf("&",l_p1);
					if (l_p2==-1) l_p2=l_vars.length;
					module[v_modId].link=l_vars.substring(l_p1,l_p2);
					p_area.module.changeName(v_modId,(getVar(module[v_modId].vars,"ptitl")==""?getXMLval(response,"ftitle","str",false,"RSS reader"):getVar(module[v_modId].vars,"ptitl")));
					//navPrint("module"+module[v_modId].uniq+"_h",(module[v_modId].name).substr(0,20));
				}
			}

			module[v_modId].header=getXMLval(response,"header","str",false,"");
			module[v_modId].footer=getXMLval(response,"footer","str",false,"");
			module[v_modId].isLoaded=true;
			p_param.fillEditBox(response,module[v_modId].uniq);
			var i=0,l_item,l_title,l_link,l_image,l_date,l_desc;
			while (i<v_nb && response.getElementsByTagName("item")[i]){
				l_item=response.getElementsByTagName("item")[i];
				l_title=getXMLval(l_item,"title","str",false,"...");
				l_desc=getXMLval(l_item,"desc","str",false,"");
				l_link=getXMLval(l_item,"link","str",false,"");
				if (l_item.getElementsByTagName("pubdate")[0] && l_item.getElementsByTagName("pubdate")[0].firstChild) l_date=dateDelai(l_item.getElementsByTagName("pubdate")[0].firstChild.nodeValue);
				if (l_title=="") l_title=lg("lblNoTitle");
				if (l_item.getElementsByTagName("audio")[0] && l_item.getElementsByTagName("audio")[0].firstChild) l_title+=" <a href='#' onclick=\"p_reader.open('"+getXMLval(l_item,"audio","str",false,"")+"','a')\">"+img("audio.gif",16,16,lg("lblListen"),"imgmid")+"</a>";
				if (l_item.getElementsByTagName("quicktime")[0] && l_item.getElementsByTagName("quicktime")[0].firstChild) l_title+=" <a href='#' onclick=\"p_reader.open('"+getXMLval(l_item,"quicktime","str",false,"")+"','q')\">"+img("video.gif",16,16,lg("lblWatch"),"imgmid")+"</a>";
				if (l_item.getElementsByTagName("mpeg")[0] && l_item.getElementsByTagName("mpeg")[0].firstChild) l_title+=" <a href='#' onclick=\"p_reader.open('"+getXMLval(l_item,"mpeg","str",false,"")+"','m')\">"+img("video.gif",16,16,lg("lblWatch"),"imgmid")+"</a>";
				if (l_item.getElementsByTagName("image")[0] && l_item.getElementsByTagName("image")[0].firstChild) {
					l_image=" src='"+getXMLval(l_item,"image","str",false,"")+"' "+((getXMLprop(l_item.getElementsByTagName("image")[0],"width","str",false,"")=="")?"":" width="+getXMLprop(l_item.getElementsByTagName("image")[0],"width","str",false,""));
				} else {l_image="x";}

				//p_rss.feeds.push(new feedObj(i,module[v_modId].id,module[v_modId].uniq,module[v_modId].name,l_title,l_link,l_image,l_date,l_desc));
				p_rss.feeds.push(new feedObj(p_rss.feeds.length,module[v_modId].id,module[v_modId].uniq,module[v_modId].name,l_title,l_link,l_image,l_date,l_desc));

				i++;
			}
			module[v_modId].isLoaded=true;
			return true;
		}
		return false;
	},
	display:function(response,vars){
		var l_s="",l_item,l_title;
		var l_modId=vars[0];
		//bug correction : if a module is removed during its refresh or other module refresh
		if (!module[l_modId]) l_modId=uniqToId(vars[2]);
		l_s+="<table cellpadding='0' cellspacing='0' width='100%'><tr><td>";

		if (!module[l_modId].isLoaded && response!=indef) p_rss.get(response,l_modId,(vars[1]==indef?10:vars[1]));
		if (module[l_modId]&&module[l_modId].isLoaded){
			l_s+=module[l_modId].header;
//			l_s+="</td></tr><tr><td style='padding:6px'><ul>";
			l_s+="</td></tr><tr><td style='padding:6px'><table cellpadding='1' cellspacing='0' width='100%'>";
			var i=0,j=0;
			while (p_rss.feeds[i]&&(vars[1]==indef || j<vars[1])){
				if (p_rss.feeds[i].modUniq==module[l_modId].uniq){
					if (p_rss.feeds[i].image!="x"&&j==0){l_s+="<tr><td valign='top'><a href='"+p_rss.feeds[i].link+"' target='npdetailf' onclick='return p_rss.linkClicked(this,"+vars[2]+","+p_rss.feeds[i].id+")'><img"+p_rss.feeds[i].image+" align='left' style='margin-right:6px' />"+p_rss.feeds[i].title+"</a></td></tr></table><br /><table cellpadding='1' cellspacing='0' width='100%'>";}
					else {
						l_s+="<tr><td class='contentpic'>"+img("ico_right_arrow.gif",6,9)+"</td><td><a href='"+p_rss.feeds[i].link+"' target='npdetailf' onclick=\"return p_rss.linkClicked(this,"+vars[2]+","+p_rss.feeds[i].id+",'"+p_rss.feeds[i].link+"',"+vars[0]+","+vars[1]+");\">"+p_rss.feeds[i].title+"</a></td>";
						if (jsid>0&&__useArchive) l_s+="<td class='contentpic'><a href='#' onclick='return p_article.save("+i+")'>"+img("ico_disk_s.gif",9,9,lg("lblSave"))+"</a></td>";
						if (jsid>0&&__useSharing) l_s+="<td class='contentpic'><a href='#' onclick='return p_friends.menu(2,"+i+")'>"+img("ico_share_s.gif",11,9,lg("lblShareInfo"))+"</a></td>";
						l_s+="</tr>";
					}
					//if (p_rss.feeds[i].desc) l_s+="<tr><td></td><td>"+p_rss.feeds[i].desc+"</td></tr>";
					j++;
				}
				i++;
			}
			if (j==0){l_s+="<tr><td>"+lg("lblNoArticle")+"</td></tr>";}
			l_s+="</table></td></tr><tr><td>"+module[l_modId].footer;
		} else {l_s+=lg("lblModIssue");}
		l_s+="</td></tr></table>";
		navPrint("module"+vars[2]+"_c",l_s);
		p_rss.moduleUnread(vars[2]);
	},
	displayAll:function(){
		for (var i=0;i<module.length;i++){
			if (module[i].format=='R'){
				p_rss.display(indef,new Array(i,(getVar(module[i].vars,"nb")?getVar(module[i].vars,"nb"):5),module[i].uniq));
			}
		}
	},
	moduleUnread:function(v_id){
		var l_content=_gel("module"+v_id+"_c"),nbur=0;
		var l_link=l_content.getElementsByTagName("a");
		for (var i=0;i<l_link.length;i++){
			var l_node=l_link[i];
			if (document.all){
				if (l_node.currentStyle.color!="#c6c3c6") nbur++;
			} else {
				if (window.getComputedStyle(l_node, null).color!="rgb(198, 195, 198)") nbur++;
			}
		}
		l_id=uniqToId(v_id);
		module[l_id].nbunread=nbur;
		if (nbur>0) p_area.module.changeName(l_id);
		p_rss.pageUnread();
	},
	linkClicked:function(v_linkobj,v_id,v_artid,v_link,v_modId,v_nbart){
		var l_id=uniqToId(v_id);
		var l_newUnread=false;
		if (document.all){
			if (v_linkobj.currentStyle.color!="#c6c3c6") l_newUnread=true;
		} else {
			if (window.getComputedStyle(v_linkobj, null).color!="rgb(198, 195, 198)") l_newUnread=true;
		}
		if (l_newUnread){
			module[l_id].nbunread--;
			p_area.module.changeName(l_id);
			p_rss.pageUnread();
		}
		if (p_rss.usereader==1){
			p_newspaper.init();
			p_newspaper.showDetail(v_artid);
			p_newspaper.load();
			return true;
		} else {
			if (IE) return true;
			link(v_link,true);
			//link visited status is not instantaneous with FF
			setTimeout("p_rss.display(indef,new Array("+v_modId+","+v_nbart+","+v_id+"))",1000);
			return false;
		}
	},
	pageUnread:function(){
		if (jsid==-1) return;
		p_rss.unread=0;
		for (var i=0;i<module.length;i++){
			if (module[i].nbunread>0) p_rss.unread+=module[i].nbunread;
		}
		//p_banner.option.shown=false;
		//p_banner.option.show();
		if (p_rss.unread>0) navPrint("tabextra","("+p_rss.unread+")");
		changePageTitle();
	},
	importMenu:function(){
		var l_s="<table cellpadding='5' cellspacing='0' width='100%'>";
		l_s+="<tr><td><b>"+lg("lblImportOpml")+"</b><br /><br />";
		l_s+="<form enctype='multipart/form-data' method='post' action='../portal/scr_opml_import.php' target='iopml'>";
		l_s+="<input type='file' name='opml' /> <input type='submit' value='"+lg("lblUpload")+"' />";
		l_s+="</form><iframe style='display:none' src='about:blank' id='iopml' name='iopml' onload='p_rss.importTreat()'></iframe><div id='opmlres'></div></td></tr></table>";
		navPrint("box",box(0,lg("lblImport"),"hideBox()",l_s));
		navShow("box","block");
		return false;
	},
	importTreat:function(){
		var i = _gel("iopml");
		if (i.contentDocument) {
			var d = i.contentDocument;
		} else if (i.contentWindow) {
			var d = i.contentWindow.document;
		} else {
			var d = window.frames["iopml"].document;
		}
		if (d.location.href == "about:blank") {
			return;
		}
		if (d.body.innerHTML==""){p_alert.show(lg("msgXMLerror"));}
		else {
			p_rss.opmlfile=d.body.innerHTML;
			getXml(p_rss.opmlfile,p_rss.importSelectTab,"");
		}
	},
	importSelectTab:function(response,vars){
		var l_s="";
		if (response.getElementsByTagName("opml")[0] || response.getElementsByTagName("body")[0]){
			var opmlcont=response.getElementsByTagName("body")[0]?response.getElementsByTagName("body")[0]:response.getElementsByTagName("opml")[0];
			l_s+="<br />"+lg("lblChooseOpmlTab")+" :<br /><br />";
			for (var i=0;i<opmlcont.childNodes.length;i++){
				var result=opmlcont.childNodes[i];
				if (_lc(result.nodeName)=="outline") l_s+="- <a href='#' onclick='p_rss.getImportTab("+i+")'>"+getXMLprop(result,"title","str",false,"empty")+"</a><br />";
			}
		}
		if (l_s=="" || l_s==indef) l_s=lg("msgXMLerror");
		navPrint("opmlres",l_s);
	},
	getImportTab:function(v_id){
		getXml(p_rss.opmlfile,p_rss.addImportTab,v_id);
	},
	addImportTab:function(response,vars){
		if (response.getElementsByTagName("opml")[0]){
			var opmlcont=response.getElementsByTagName("body")[0]?response.getElementsByTagName("body")[0]:response.getElementsByTagName("opml")[0];
			var selOutline=opmlcont.childNodes[vars];
			var l_title=getXMLprop(selOutline,"title","str",false,"empty");
			var l_s="",l_col=1,l_pos=1,l_inc=0;
			for (var i=0;i<selOutline.childNodes.length;i++){
				var result=selOutline.childNodes[i];
				if (_lc(result.nodeName)=="outline"){
					l_s+="&id"+l_inc+"=86";
					l_s+="&col"+l_inc+"="+l_col;
					l_s+="&pos"+l_inc+"="+l_pos;
					l_s+="&posj"+l_inc+"="+l_inc;
					l_s+="&var"+l_inc+"="+_esc("nb=5&rssurl="+getXMLprop(result,"xmlUrl","str",false,""));
					l_s+="&blocked"+l_inc+"=0";
					l_s+="&minimized"+l_inc+"=0";
					l_col++;
					if (l_col==4) {l_col=1;l_pos++;}
					l_inc++;
				}
			}
			executescr("scr_createportal.php","w=3&s="+p_area.style+"&n="+l_title+"&t=0&nb=25&sess="+getSession()+l_s,false,true,openPage);
		}
	},
	getId:function(v_id){
		for (var i=0;i<p_rss.feeds.length;i++){
			if (p_rss.feeds[i].id==v_id) return i;
		}
		return v_id;
	}
}
var p_newspaper={
	nb:20,
	selArticle:0,
	readerWidth:0,
	readerHeight:0,
	init:function(){
		//hide modules
		navShow("modules","none");
		navShow("newspaper","block");
		//hide menus
		hideAllBox();
		
		var l_obj=_gel("newspaper");
		if (!l_obj){ 
			var l_tr=_gel("maintr");
			l_obj=null;l_obj=document.createElement("TD");
			l_obj.id="newspaper";
			l_obj.style.display="none";
			l_obj.style.verticalAlign="top";
			l_tr.insertBefore(l_obj,cols[1]);
		}
		//compute frames dimensions
		l_left=getPos(l_obj,"Left");
		l_top=getPos(l_obj,"Top");
		p_rss.readerWidth=getWindowWidth()-l_left-310;
		p_rss.readerHeight=getWindowHeight()-l_top-70;
		//l_obj.innerHTML="<div class='module'><table class='bmod' cellpadding='0' cellspacing='0' width='100%' border='0'><tr><td class='newspaperbar'><table cellpadding='0' cellspacing='0' border='0' width='100%'><tr><td class='menutitle' width='100%'>"+img("ico_newspaper.gif",17,15,"","imgmid")+" &nbsp; <b>"+lg("lblNewsTitle")+"</b></td>";<td nowrap='nowrap'><a href='#' onclick='return p_newspaper.size(2)'>"+lg("lblLessArticle")+"</a> | <a href='#' onclick='return p_newspaper.size(1)'>"+lg("lblMoreArticle")+"</a> | <a href='#' onclick='p_rss.init();p_newspaper.load();return false;'>"+img("ico_refresh.gif",13,9,lg("lblRefresh"))+" "+lg("lblRefresh")+"</a> | <a href='#' onclick='p_newspaper.hide()'>"+img("ico_close.gif",9,9,lg("lblClose"),"imgmid")+" "+lg("lblClose")+"</a></td></tr></table></td></tr><tr><td id='npcontent' class='newspaper'>"+lg("lblLoading")+"</td></tr></table>"+img("s.gif",600,1);
		var l_s="<div class='module'>";
		l_s+="<table class='bmod' cellpadding='0' cellspacing='0' width='100%' border='0'><tr><td class='newspaperbar'><table cellpadding='0' cellspacing='0' border='0' width='100%'><tr><td class='menutitle' width='100%'>"+img("ico_newspaper.gif",17,15,"","imgmid")+" &nbsp; </td><td nowrap='nowrap'><a href='#' onclick='return p_newspaper.refresh();'>"+img("ico_refresh.gif",13,9,lg("lblRefresh"))+" "+lg("lblRefresh")+"</a> | <a href='#' onclick='p_newspaper.hide()'>"+img("ico_close.gif",9,9,lg("lblClose"),"imgmid")+" "+lg("lblClose")+"</a></td></tr></table></td></tr>";
		l_s+="<tr><td id='npcontent' class='newspaper'>";
		l_s+="<div id='sourcelist'>"+lg("lblLoading")+"</div>";
		l_s+="<table><tr><td width='300px' valign='top'><div id='nparticles' style='width:285px;height:"+p_rss.readerHeight+"px;overflow:auto;vertical-align:top;'></div></td>";
		l_s+="<td id='npdetail' class='frame' style='width:"+p_rss.readerWidth+"px;height:"+p_rss.readerHeight+"px;'>&nbsp;</td></tr></table>";
		l_s+="</td></tr></table>";
		l_s+="</div>";
		l_obj.innerHTML=l_s;
		p_area.showType=1;
	},
	load:function(){
		// Switch to newspaper display
	//	p_newspaper.init();
		var l_inc=0,l_allLoaded=true;
		for (var i=0;i<module.length;i++){
			if (module[i].format=='R' && !module[i].isLoaded){
				l_allLoaded=false;
				p_rss.refresh(i);
				//getXml(module[i].url+"pid="+jsid+"&prof="+jsprof+"&p="+module[i].uniq+"&"+module[i].vars,p_newspaper.chk,new Array(module[i].name,i));
			}
		}
		if (l_allLoaded) p_newspaper.show(true);
	},
	refresh:function(){
		p_rss.init();
		p_newspaper.load();
		return false;
	},
	chk:function(response,vars){if (p_rss.get(response,vars[0],vars[1])) {p_newspaper.show(true);};},
	show:function(v_sort,v_src){
		// Display news as newspaper
		var j=0;
		//if multisources, display only once on the last source loading
		var l_s=lg("lblSrc")+" :";
		var srclink=[];
		for (var i=0;i<module.length;i++){
			if (module[i].format=='R'){
				if (module[i].isLoaded){
					if (v_src==i){srclink.push(" "+module[i].name);}
					else {srclink.push(" <a href='#' style='font-weight:normal' onclick='return p_newspaper.show(false,"+i+")'>"+module[i].name+"</a>");}
				} else {srclink.push(" "+module[i].name+" "+img("ico_wait.gif",9,9,lg("lblSrcLoading"),"imgmid"));}
				//l_s+="&nbsp;<a href='#' onclick='p_newspaper.supSrc("+i+");'>+img("ico_close.gif",9,9,lg("lblSrcSup"),"imgmid")+"</a>";
				//l_s+=" |";
			}
		}
		l_s+=srclink.join(" | ");
		//l_s+=" + <a href='#' onclick='p_addContent.menu(4);return false;'>"+lg("lblSrcAdd")+"</a>";
		if (v_src!=indef) l_s+=" | <a href='#' style='color:#008200' onclick='return p_newspaper.show(false)'>"+lg("lblSrcAll")+"</a>";
		if(__useGSearch) l_s+="<center><b>"+lg("lblSrcSrch")+"</b> <div id='searchform' width='350'></div></center><br /><table width='100%'><tr><td valign='top' width='100%'><div id='searchResults' width='600'>"+lg("lblLoading")+"</div></td></tr></table>";
		navPrint("sourcelist",l_s);
		l_s="";
		if (v_sort) p_rss.feeds.sort(sortDate);
		i=0;
		l_s+="<table cellpadding='2' cellspacing='0' border='0' width='100%'>";
		//while (i<p_newspaper.nb && j<p_rss.feeds.length){
		while (j<p_rss.feeds.length){
			if (v_src==indef||p_rss.feeds[j].modUniq==module[v_src].uniq){
				var l_style=(i%2==1)?"dark":"clear";
				l_s+="<tr class='"+l_style+"'>";
				//if (p_rss.feeds[j].image!="x"){l_s+="<td class='"+l_style+"' width='42'><img"+p_rss.feeds[j].image+" width='40' /></td>";}else{l_s+="<td class='"+l_style+"'>&nbsp;</td>";}
				//l_s+="<td class='normal'>"+img("../modules/pictures/box0_"+p_rss.feeds[j].modId+".gif",16,16,p_rss.feeds[j].modName,"imgmid")+"</td>";
				var l_id=uniqToId(p_rss.feeds[j].modUniq);
				l_s+="<td class='normal'>"+img("../modules/pictures/"+module[l_id].icon,16,16,"","imgmid")+"</td>";
				
				l_s+="<td id='npart"+p_rss.feeds[j].id+"' class='"+(p_rss.feeds[j].id==p_newspaper.selArticle?"highlight":"normal")+"'><a class='title' href='"+p_rss.feeds[j].link+"' target='npdetailf' onclick='return p_newspaper.showDetail("+p_rss.feeds[j].id+")'>"+p_rss.feeds[j].title+"</a><br />";
				l_s+="<span class='source'>"+p_rss.feeds[j].modName+"</span> - "+formatDelai(p_rss.feeds[j].date);
				if (jsid!=0&&__useArchive) l_s+=" - <a style='font-weight:normal' href='#' onclick='return p_article.save("+j+")'>"+lg("lblSave")+"</a>";
				l_s+="<br /><br /></td>";
				l_s+="</tr>"; 
				i++;
			}
			j++;
		}
		if (i==0) l_s+="<tr><td><div style='width:100%;height:200px'>"+lg("lblSrcMissing")+"</div></td></tr>";
		l_s+="</table>";
		navPrint("nparticles",l_s);
		if(__useGSearch) initGSearch(true);
		return false;
	},
	showDetail:function(v_id){
		//after newspaper sorting, array id change => getId
		l_id=(p_rss.feeds[v_id].id==v_id)?v_id:p_rss.getId(v_id);
		var l_s="<div id='npdetaili'><h2>"+p_rss.feeds[l_id].title+"</h2><br />";
		l_s+="<span class='source'>"+p_rss.feeds[l_id].modName+"</span> - "+formatDelai(p_rss.feeds[l_id].date);
		l_s+="<br /><a href='#' onclick='return p_newspaper.showSite();'>"+lg("lblOpenInReader")+"</a> - <a href='"+p_rss.feeds[l_id].link+"' target='_blank'>"+lg("lblOpenInNewPage")+"</a>";
		l_s+="<br /><br />"+p_rss.feeds[l_id].desc+"</div>";
		l_s+="<iframe id='npdetailf' name='npdetailf' src='' style='width:100%;height:"+p_rss.readerHeight+"px;display:none;'></iframe>";
		navPrint("npdetail",l_s);
		//un highlight the previous article
		navClass("npart"+p_newspaper.selArticle,"read");
		//highlight the selected article
		navClass("npart"+p_rss.feeds[l_id].id,"highlight");
		p_newspaper.selArticle=p_rss.feeds[l_id].id;
		return true;
	},
	showSite:function(){
		navShow("npdetaili","none");
		navShow("npdetailf","block");
		return false;
	},
	hide:function(){
		navShow("newspaper","none");
		navShow("modules","block");
		p_area.showType=0;
		p_rss.displayAll();
	},
	supSrc:function(v_id){
		//suppress Newspaper Source
		if (p_area.module.suppress(module[v_id].uniq,true)) p_newspaper.show(false);
	},
	size:function(v_act){
		// Select number of article to show
		var l_oldNb=p_newspaper.nb;
		if (v_act==1&&p_newspaper.nb<30&&p_newspaper.nb<p_rss.feeds.length) p_newspaper.nb+=5;
		if (v_act==2&&p_newspaper.nb>5) p_newspaper.nb-=5;
		if (p_newspaper.nb!=l_oldNb){
			executescr("scr_newspaper.php","prof="+jsprof+"&nb="+p_newspaper.nb);
			p_newspaper.show(false);
		}
		return false;
	}
}
var p_reader={
	open:function(v_src,v_type){
		// Open media inside Portaneo
		var l_s="<table width='100%' cellpadding='0' cellspacing='0'><tr><td class='advise' align='center'><table cellpadding='3' cellspacing='0'><tr><td>";
		if (v_type=="a") l_s+="<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' width='400' height='18' id='mp3player' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0'><param name='movie' value='"+pfolder+"../tools/mp3player.swf'><param name='flashvars' value='file="+_esc(v_src)+"&autostart=true'><param name='wmode' value='transparent' /><embed src='"+pfolder+"../tools/mp3player.swf' wmode='transparent' width='400' height='18' flashvars='file="+_esc(v_src)+"&autostart=true' name='mp3player' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' /></object>";
		if (v_type=="m"||v_type=="q") l_s+="<object classid='clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B' width='320' height='250' codebase='http://www.apple.com/qtactivex/qtplugin.cab'><param name='controller' value='TRUE'><param name='type' value='video/quicktime'><param name='autoplay' value='true'><param name='target' value='myself'><param name='src' value='"+v_src+"'><param name='pluginspage' value='http://www.apple.com/quicktime/download/'><embed controller='TRUE' target='myself'  width='320' height='250' src='"+v_src+"' qtsrc='"+v_src+"' type='video/quicktime' bgcolor='black' border='0' loop='false' autoplay='true' pluginspage='http://www.apple.com/quicktime/download/'></embed></object><br /><br />"+lg("lblVideoWarning");
		l_s+="</td><td valign='top'><a href='#' onclick='p_reader.hide();return false;'>"+img("ico_close.gif",9,9)+"</a></td></tr></table></td></tr></table>";
		navShow("audio","block");
		navPrint("audio",l_s);
	},
	hide:function(){p_area.clean(_gel("audio"));navShow("audio","none");}
}

//===============================================================================================================
//					PORTAL INFO MANAGEMENT
//===============================================================================================================

//Manage the information in the portal banner
var p_banner={};
p_banner.option={
	shown:false,
	ctrl:'Y',
	show:function(){
		//no access to options if page locked
		if (p_area.locked) return false;
		if (p_banner.option.shown){p_banner.option.hide();}
		else {
			//display the options in the banner
			var l_s="<table cellpadding='3' cellspacing='0' border='0' width='100%'><tr><td class='advise' align='center'>";
			//l_s+=lg("lblDisplay")+" <a href='#' onclick='return changeShowType(0)'>"+img("ico_bloc.gif",16,16,lg("lblSBloc"),((p_area.showType==0)?"iconea":"iconei"),"show0")+"</a> : <a href='#' onclick='return changeShowType(1)'>"+img("ico_newspaper.gif",16,16,lg("lblSNews"),((p_area.showType==0)?"iconei":"iconea"),"show1")+"</a> | ";
			//if (p_rss.unread!=0) l_s+="Non lus : "+p_rss.unread+" | "
			//l_s+="<a class='"+((p_banner.option.ctrl=='Y')?"iconea":"iconei")+"' id='movBtn' href='#' onclick='p_area.module.switchHdr();'>"+img("ico_menu_move.gif",12,12,lg("lblMoveMods2"),"imgmid")+" "+lg("lblMoveMods")+"</a>";
			for (var i=0;i<__option.length;i++){
				if ((__option[i]["anonymous"]&&jsid<=0)||(__option[i]["connected"]&&jsid>0)) l_s+="<a href='#' id='"+__option[i]["id"]+"' onclick='return "+__option[i]["fct"]+"'>"+img(__option[i]["img"],12,12,__option[i]["comment"],"imgmid")+" "+__option[i]["label"]+"</a> | ";
			}
			if (jsid>0){
			//	if (def=="N"){l_s+=" | <a href='#' onclick='p_pages.def()'>"+lg("lblDefault")+"</a>";}
				l_s+=img("ico_close.gif",9,9)+" <a href='#' onclick='return p_pages.suppress();'>"+lg("lblSuppresspage")+"</a>";
			}
			l_s+="</td></tr></table>";
			navPrint("advise",l_s);
			navShow("advise","block");
			p_banner.option.shown=true;
			p_banner.info.shown=false;
		}
		return false;
	},
	hide:function(){
		if (p_banner.info.requested=='Y'&&jsid>0&&__rssinfo!="") {p_banner.info.load(0);}else{navShow("advise","none");}
		p_banner.option.shown=false;
	}
}
p_banner.info={
	shown:false,
	requested:'Y',
	loaded:false,
	item:[],
	itemid:0,
	load:function(v_id){
		if (p_banner.info.requested=="Y"&&__rssinfo!=""){
			getXml(__rssinfo,p_banner.info.display,v_id);
			p_banner.info.show();
			p_banner.info.loaded=true;
		}
	},
	display:function(response,vars){
		var i=0;
		while (response.getElementsByTagName("item")[i]){
			var result=response.getElementsByTagName("item")[i];
			if (getXMLval(result,"link","str",false,"")==""){
				p_banner.info.item.push(getXMLval(result,"title","str",false,"..."));
			} else {
				p_banner.info.item.push("<a href='"+getXMLval(result,"link","str",false,"#")+"'>"+getXMLval(result,"title","str",false,"...")+"</a>");
			}
			i++;
		}
		p_banner.info.roll();
	},
	roll:function(){
		if (p_banner.info.item.length>0&&p_banner.info.shown){
			var l_s="<center><table cellpadding='4' cellspacing='0' border='0' width='800'><tr><td class='advise' align='left'>";
			//l_s+=lg("lblDisplay")+" <a href='#' onclick='changeShowType(0)'>"+img("ico_bloc.gif",16,16,lg("lblSBloc"),(p_area.showType==0?"iconea":"iconei"),"show0")+"</a> : <a href='#' onclick='changeShowType(1)'>"+img("ico_newspaper.gif",16,16,lg("lblSNews"),(p_area.showType==0?"iconei":"iconea"),"show1")+"</a> | ";
			if (p_banner.info.itemid==p_banner.info.item.length) p_banner.info.itemid=0;
			l_s+=p_banner.info.item[p_banner.info.itemid];
			p_banner.info.itemid++;
			l_s+="</td></tr></table></center>";
			navPrint("advise",l_s);
		}
	},
	show:function(){
		if (p_banner.info.requested=="Y" && !p_banner.info.shown) {
			navShow("advise","block");
			p_banner.info.shown=true;
			p_banner.option.shown=false;
		}
	},
	hide:function(){
		if (p_banner.info.requested=="Y" && p_banner.info.shown){
			navShow("advise","none");
			p_banner.info.shown=false;
		}
	}
}
var p_alert={
	show:function(v_msg){
		if (_gel("errordiv")==null){
			var l_obj=null;
			l_obj=document.createElement("DIV");
			l_obj.id="errordiv";
			l_obj.className="errordiv";
			document.body.appendChild(l_obj);
		} else {l_obj=_gel("errordiv");}
		l_obj.style.top=(document.all)?document.documentElement.scrollTop+"px":window.pageYOffset+"px";
		var l_s="<table width='100%'><tr><td align='center'>"+v_msg+"</td><td width='13' bgcolor='#888888' align='center'><a href='#' onclick='return p_alert.hide()'>"+img("ico_close.gif",9,9)+"</a></td></tr></table>";
		navPrint("errordiv",l_s);
		//avoid that the message remain in the middle of the page
		window.onscroll=p_alert.hide;
		p_effect.fadein(l_obj);
	},
	hide:function(){
		p_effect.fadeout(_gel("errordiv"));
		window.onscroll=null;
		return false;
	}
}
var p_effect={
	obj:{},
	opacity:0,
	timer:{},
	fadein:function(v_obj){
		if (p_effect.timer) clearTimeout(p_effect.timer);
		p_effect.obj=v_obj;
		p_effect.opacity=0;
		p_effect.fadeinaction();
		p_effect.obj.style.display="block";
	},
	fadeinaction:function(){
		p_effect.opacity+=0.1;
		p_effect.obj.style.opacity=""+p_effect.opacity;
		p_effect.obj.style.filter="alpha(opacity="+(p_effect.opacity*100)+")";
		if (p_effect.opacity<1) p_effect.timer=setTimeout("p_effect.fadeinaction()",70);
	},
	fadeout:function(v_obj){
		if (p_effect.timer) clearTimeout(p_effect.timer);
		p_effect.obj=v_obj;
		p_effect.opacity=1;
		p_effect.fadeoutaction();
	},
	fadeoutaction:function(){
		p_effect.opacity-=0.1;
		p_effect.obj.style.opacity=""+p_effect.opacity;
		p_effect.obj.style.filter="alpha(opacity="+(p_effect.opacity*100)+")";
		if (p_effect.opacity>0){p_effect.timer=setTimeout("p_effect.fadeoutaction()",70);}
		else {p_effect.obj.style.display="none";}
	}
}
//  Base64 encode
//  http://www.webtoolkit.info/
var Base64 = {
	// private property
	_keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
	// public method for encoding
	encode:function(input){
		var output = "";
		var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
		var i = 0;
		input = Base64._utf8_encode(input);
		while (i < input.length) {
			chr1 = input.charCodeAt(i++);
			chr2 = input.charCodeAt(i++);
			chr3 = input.charCodeAt(i++);
			enc1 = chr1 >> 2;
			enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
			enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
			enc4 = chr3 & 63;
			if (isNaN(chr2)) {
				enc3 = enc4 = 64;
			} else if (isNaN(chr3)) {
				enc4 = 64;
			}
			output = output + this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) + this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
		}
		return output;
	},
	// private method for UTF-8 encoding
	_utf8_encode : function (string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";
		for (var n = 0; n < string.length; n++) {
			var c = string.charCodeAt(n);
			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
		}
		return utftext;
	}
}