// JavaScript Document

var specificPageOnload = Array();
function globalPageOnload() {
	for (i = 0; i < specificPageOnload.length; i++) {
		var func = specificPageOnload[i];
		func();
	}
}

function isIE() {
	return /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent);
}

function loadXMLString(txt) 
{
	try //Internet Explorer
	{
		xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async="false";
		xmlDoc.loadXML(txt);
		return(xmlDoc); 
	}
	catch(e)
	{
		try //Firefox, Mozilla, Opera, etc.
		{
			parser=new DOMParser();
			xmlDoc=parser.parseFromString(txt,"text/xml");
			return(xmlDoc);
		}
		catch(e) { return null }
	}
	return(null);
}

// Clipboard flash pour firefox & co.
if(!window.clipboardData) {
    window.clipboardData = {
        setData : function(mode,content) {
            var clipboard = document.body;
            var flashclipboard = clipboard.flashclipboard;
            if(flashclipboard == null) {
                flashclipboard = document.createElement('div');
                clipboard.flashclipboard = flashclipboard;
                clipboard.appendChild(flashclipboard);
            }
            flashclipboard.innerHTML = '<embed src="' + baseUrl + '/assets/flash/clipboard.swf" FlashVars="clipboard='+encodeURIComponent(content)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
        }
    }
}

// D�tecteur de flash
function detectFlash() {
	if (navigator.plugins != null && navigator.plugins.length > 0)
		return navigator.plugins["Shockwave Flash 2.0"]
		                         || navigator.plugins["Shockwave Flash"]
		                         || (navigator.userAgent.toLowerCase().indexOf("webtv") != -1);
	else {
		try {
			new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			return true;
		} catch (e) {
			return false;
		}
	}
}

// Détecteur de zeroclipboard compatible
function flashClipboard() {
	return detectFlash() && 
		!navigator.userAgent.match(/Linux/);
}

// Loader pour ZeroClipboard
var preClipText;
var clip;
function flashClipboardLoader(url) {
    if (!isIE() && flashClipboard()) {
        ZeroClipboard.setMoviePath(url);
        clip = new ZeroClipboard.Client();
        clip.setHandCursor(true);
        clip.setText(preClipText);
		titre = $('stitre').innerHTML ;
        clip.addEventListener('complete', function (client, text) {
            modalShowUrl(text, titre);
        });
        if ($('lex_showurl_link'))
        	clip.glue('lex_showurl_link');
    }
}

function clipGlue(obj, text) {
    if (!isIE() && flashClipboard()) {
    	if (clip.div)
    		clip.reposition(obj);
    	else
    		clip.glue(obj);
    	clip.setText(text);
    }
}

     ////////////////////////////////
	//Fonction qui r�cup�re la classe d'un objet
	/////////////////////////////// 
	    
	function getElementsByClassName(className, tag, elm){ //TODO: unused
	var testClass = new RegExp("(^|s)" + className + "(s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i ];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
	}
	
	function getLink(node) {
		var i=0;
		for (i=0;i<node.attributes.length;i++) {
			if(node.attributes[i].nodeValue="href") {
				return node.attributes[i].value;
			}
		}
		return node.firstChild.data;
	}
	
	function getXmlUrl(node) {
		var i=0;
		for (i=0;i<node.attributes.length;i++) {
			if(node.attributes[i].nodeName=="xmlUrl") {
				return node.attributes[i].nodeValue;
			}
		}
		return null;
	}
	
	//////////////////////////////
	//Ouvrir une pop-up
	//////////////////////////////
	
	function OuvrirMiniSite(url) { //TODO/ unused
               window.open(url, "Lextenso.fr", "menubar=no, status=no, scrollbars=yes, menubar=no, width=802, height=600");
        }
	
	function open_popup(pUrl,nom)
{
	var widthPopup = Math.max(400,screen.width - 300);
	var heightPopup = Math.max(200,screen.height - 300);
	var top = (screen.height-heightPopup)/2;
	var left = (screen.width-widthPopup)/2;

	var thestyle='status=yes,location=yes,directorie=yes,resizable=yes,scrollbars=yes,menubar=yes,toolbar=yes,top='+top+',left='+left+',width='+widthPopup+',height='+heightPopup;
	var w_page_popup = window.open(pUrl,nom,thestyle);
	w_page_popup.focus();
}
	 
	function chgfond(couleur){
	var colorBox=$('ColorValue');
    colorBox.value=couleur;
	//alert(colorBox.style.backgroundColor);
}
	 
	////////////////////////////////
	//Fonction g�re le rollover sur le widget
	/////////////////////////////// 
	  
     function onOverWidget(portal, widget) {
     widget.getElement().insertBefore($('control_buttons'), widget.getElement().firstChild);
     $('control_buttons').show(); 
	 var zone = widget.getElement(); 
	 var zoneUpDown = zone.getElementsByClassName('upDownClass', 'div');
	 zoneUpDown[0].show();  
     } 
	 
   	 ////////////////////////////////
	//Fonction g�re le rollout sur le widget
	///////////////////////////////
     function onOutWidget(portal, widget) {
     $('control_buttons').hide();  
	 var zone = widget.getElement();
	 var zoneUpDown = zone.getElementsByClassName('upDownClass', 'div');
	 zoneUpDown[0].hide();
     } 

	 ////////////////////////////////
	//Fonction g�re le click d'�dition du widget
	///////////////////////////////
		 
	 function clickEdition(element){
	 var widget = $(element).up(".widget").widget;
	 portal.changeWidget(widget);	  
	 }
	 
	/////////////////////////////////
	//Fonction g�re la suppression du widget
	///////////////////////////////
   	
     function removeWidget(element) {
	     var widget = $(element).up(".widget").widget;
	     if (confirm('Etes-vous s\u00FBr de vouloir supprimer ce widget?')) { 
		     document.body.appendChild($('control_buttons').hide())
		     portal.remove(widget);
		     hideShowRestauration();
		     setCookieOrdre();
	    	 loadBlocResto();
	    	 ajaxDeleteWidget(widget.getElement().id);
	      }
     }  
	 
	////////////////////////////////
	//Fonction g�re la validation de l'�dition du widget
	///////////////////////////////
	 
	function miseAJour(element) {
	    var widget = $(element).up(".widget").widget;
		portal.miseAJourWidget(widget);
		ajaxEditionWidget(widget.getElement().id);
    }  
	 
	
	////////////////////////////////
	//Fonction g�re lle reload du widget
	///////////////////////////////
	 
	function reloadWidget(url, element) {
    var widget = $(element).up(".widget").widget;
	portal.reloadRSS(url, widget);
    } 
	
	////////////////////////////////
	//Fonction g�re le hide/show de la zone de contenu du widget
	///////////////////////////////
	 
	function minWidget(element) {
    var widget = $(element).up(".widget").widget;
	portal.miniWidget(widget);
    }  
	 
	function maxWidget(element) {
    var widget = $(element).up(".widget").widget;
    portal.maxiWidget(widget);
    } 
	  
	//////////////////////////
	//Permet de lancer le selecteur de couleur
	//////////////////////////	
	
	function changeCouleur(evenement, element){
	var widget = $(element).up(".widget").widget;
	portal.ColorClick(evenement, widget);
	} 	
	
	////////////////////////////////
	//Fonction qui ferme la zone d'�dition du widget
	///////////////////////////////
	 function fermer(element) {
     var widget = $(element).up(".widget").widget;
	 portal.fermerEdition(widget);      
     }	
	 
	 //////////////////////////////
	 /////////////////////////////
	 function infoEdition(element) {
       var widget = $(element).up(".widget").widget;
	   portal.recupValueFormEdition(widget);      
     }	
	 
	////////////////////////////////
	//Fonction g�re la zone d'ajout d'un widget
	///////////////////////////////
	function clickAjout(){
		//On d�roule la zone
		$('zoneContenuAjout').innerHTML="";
		Element.toggle('zoneAjoutWidget');
		var colorBox=$('ColorValue');
		$('ajoutPerso').style.fontWeight = "normal";
	    $('ajoutLextenso').style.fontWeight = "normal";
		//On r�initialise la couleur
		colorBox.style.backgroundColor='';
		var zoneCouleur = document.getElementsByClassName('ColorChoixClassAjout');
		if(zoneCouleur[0]){
			zoneCouleur[0].style.backgroundColor = colorBox.style.backgroundColor;
	 	}
	}
	  
	////////////////////////////////
	//Fonction g�re la zone de restauration d'un widget Revue
	///////////////////////////////
	function clickRestauration(){
	    var target = 'zoneRestoBloc';
	    if($(target).style.display=="none") {
	    	//Chargement du contenu � restaurer
			loadBlocResto();
	    }
	    //On d�roule la zone
		Element.toggle('zoneRestoBloc');
	}
	
	////////////////////////////////
	//Chargement du bloc de restauration
	///////////////////////////////
	function loadBlocResto(){
		if(onglet!="actus"){
			var url = '../personnalisation/restauration';
			var target = 'zoneRestoBloc';
			var myAjax = new Ajax.Updater(
					target,
					url,
					{method: 'post',parameters:{onglet:onglet, widgetsAffichesConcat:ordre_widgets()}});			
		}
	}	  
	  
	////////////////////////////////
	//Fonction g�re l'ajout d'un widget lextenso
	///////////////////////////////
	function clickAjoutLextenso() {
	    //Chargement du contenu � restaurer
	    var colorBox=$('ColorValue');
	    var url = 'restauration';
        var target = 'zoneContenuAjout';
        var myAjax = new Ajax.Updater(target, url, {method: 'post',parameters:{typeAjout:'lextenso',onglet:onglet, widgetsAffichesConcat:ordre_widgets()}});
	  
	    $('ajoutPerso').style.fontWeight = "normal";
	    $('ajoutLextenso').style.fontWeight = "bold";
	  
	    //On r�initialise la couleur
	    colorBox.style.backgroundColor='';
	    var zoneCouleur = document.getElementsByClassName('ColorChoixClassAjout');
	    if(zoneCouleur[0]){
	    	zoneCouleur[0].style.backgroundColor = colorBox.style.backgroundColor;
	   	}  
	} 
	  
	////////////////////////////////
	//Fonction g�re l'ajout d'un widget perso
	///////////////////////////////
	  function clickAjoutPerso(){
	  //Chargement du contenu � restaurer
	  var colorBox=$('ColorValue');
	    var url = 'restauration';
       var target = 'zoneContenuAjout';
       var myAjax = new Ajax.Updater(target, url, {method: 'post',parameters:{typeAjout:'perso'}});
	  
	  $('ajoutPerso').style.fontWeight = "bold";
	  $('ajoutLextenso').style.fontWeight = "normal";
	  
	  //On r�initialise la couleur
	   colorBox.style.backgroundColor='';
	   var zoneCouleur = document.getElementsByClassName('ColorChoixClassAjout');
	   if(zoneCouleur[0]){
	   zoneCouleur[0].style.backgroundColor = colorBox.style.backgroundColor;
	   		}  
	  }
	 
	////////////////////////////////
	//Fonction g�re l'ajout d'un widget
	///////////////////////////////
	function ajoutWidget() {
		//R�cuperation des informations du formulaire
		var index	 	= $("restaurationTitre").selectedIndex;
		if (index < 0)
			return;
		var titre 		= $("restaurationTitre").options[index].text;
		var flux 		= $("restaurationTitre").options[index].attributes.getNamedItem('lexurl').nodeValue;
		var uid			= $("restaurationTitre").options[index].value;
		var ambiance 	= $('restaurationAmbiance').value;
		var nbreFlux	= $("restaurationNb").value;
		var colonne 	= $("restaurationColonne").value;
		
		// ajout widgets
		portal.add(new Xilinus.Widget("widget","widget_"+uid).setTitle(uid,'').setEdition().setContent(), colonne);
		//loadRSS(uid,flux,nbreFlux,ambiance,titre,1,1);
		loadWidget(uid,flux,nbreFlux,ambiance,titre,1,1,colonne);
		portal.addWidgetControls("control_buttons");
		clickAjoutLextenso();
	}	
	     
	
	
	///////////////////////////////////////////////////
	//Called a widget has been move during drag and drop
	////////////////////////////////////////////////////
    function onChange() {
    	setCookieOrdre();
    }
	
	///////////////////////////////////////////////////
	//Appel lors :
    //	- Drag and Drop
	////////////////////////////////////////////////////
    function onUpdate() {
    	hideShowRestauration();
    	var ordreAvt = Get_Cookie("lextensoCookie_ordre_widget_"+ onglet + ident);
    	setCookieOrdre();
    	var ordreApres = Get_Cookie("lextensoCookie_ordre_widget_"+ onglet +ident);
    	infoCookie = getWidgetMove(ordreAvt,ordreApres);
    	if(infoCookie!=null) {
    		var widget = infoCookie.split(";")
    		ajaxDragDropWidget(Get_Cookie("lextensoCookie_"+widget[0])+"\|"+widget[1]+"\|"+widget[2]);
    	}
    }
    
    function getWidgetMove(ordreAvt,ordreApres) {
    	var widgetsAvt = ordreAvt.split(";");
    	var widgetsApres = ordreApres.split(";");
    	var index_colonne;
    	for (index_colonne=0;index_colonne<3;index_colonne++) {
    		if(widgetsAvt[index_colonne].length<widgetsApres[index_colonne].length) {
    			uidAvt = widgetsAvt[index_colonne].split("=")[1].split("\|");
    			uidApres = widgetsApres[index_colonne].split("=")[1].split("\|");
    			var i;
    			var listeWidgets = uidApres;
    			for(i=0;i<uidAvt.length;i++) {
    				listeWidgets = listeWidgets.without(uidAvt[i]);
    			}
    			return listeWidgets[0]+";"+index_colonne+";"+uidApres.indexOf(listeWidgets[0]);
    		}
    	}
    	//le widget n'a pas �t� chang� de colonne mais de ligne
    	for (index_colonne=0;index_colonne<3;index_colonne++) {
    		if(widgetsAvt[index_colonne] != widgetsApres[index_colonne]) {
    			uidAvt = widgetsAvt[index_colonne].split("=")[1].split("\|");
    			uidApres = widgetsApres[index_colonne].split("=")[1].split("\|");
    			var i = 0;
    			for(i=0;i<uidAvt.length;i++) {
    				if(uidAvt[i] != uidApres[i]) {
    					return uidAvt[0]+";"+index_colonne+";"+i;
    				}
    			}
    		}
    	}
    }
    
    function setCookieOrdre() {
    	var today = new Date();
		var zero_date = new Date(0,0,0);
		today.setTime(today.getTime() - zero_date.getTime());
		var cookie_expire_date = new Date(today.getTime() + (8 * 7 * 86400000));
		Set_Cookie("lextensoCookie_ordre_widget_"+onglet+ident,ordre_widgets(),cookie_expire_date,"/");
    }
	
function loadOPML() {
	if ((!$('fichierOPML')) || (!$('fichierOPML').files) || ($('fichierOPML').files.length < 1))
		return;	
	var fichier = xmlParse($('fichierOPML').files[0].getAsText("utf8"));
	var fichiers = fichier.getElementsByTagName('outline');
	//R�cuperation des informations du formulaire
	var titre 		= "";
	var flux 		= $("adrFlux").value;
	var ambiance 	= $('ambianceFlux').value;
	var nbreFlux	= $("nbFlux").value;
	var colonne 	= $("colFlux").value;
	var outline;
	for(var i = 0; i < fichiers.length; i++) {
		outline = getXmlUrl(fichiers[i]);
		if(outline!=null) {
			loadWidget(outline,outline,nbreFlux,ambiance,titre,1,1,colonne);
		}
	}
}
    
    
function reloadRss(element) {
	var id = element.ancestors()[1].id.substring(7);
	var nameCookie = "lextensoCookie_"+ id;
	if(Get_Cookie(nameCookie)) {
		var widget = $(element).up(".widget").widget;
		widget.setContent();
		loadRSS(id,getInfoVisitor(nameCookie,0),getInfoVisitor(nameCookie,1),getInfoVisitor(nameCookie,2),getInfoVisitor(nameCookie,3),getInfoVisitor(nameCookie,4),getInfoVisitor(nameCookie,5));	
	}
	
}


function rssGetNodeContent(node) {
	if (node == null)
		return '';
	var s = null;
	if ((typeof(node.data) != 'undefined') && (node.data != '') && (node.data != null))
		s = node.data.unescapeHTML().stripTags();
	if (s == null)
		s = '';
	var i;
	for (i = 0; i < node.childNodes.length; i++) {
		s += rssGetNodeContent(node.childNodes[i]);
	}
	return s;
}

var globalRssLinkOpensNewWindow = false;
var globalRssUseRssTitle = false;
function asyncRSSLoader(originalRequest, id_widget, nbFlux, color, titreBloc, BoolDetail, BoolAuteur) {
	  var bTitle = "";
	  var bImg = "";
	  var bLink = "";
	  var bImgLink = "";
	  var items = null;
	  var entries = new Array();
	  var i;
	  try {
		  if ((originalRequest.responseXML != null)
				  && (originalRequest.responseXML.childNodes.length > 0)) {
			  for (i = 0; i < originalRequest.responseXML.childNodes.length; i++) {
				  try {
					  if (originalRequest.responseXML.childNodes[i].nodeName.toLowerCase().match('feed|rss|rdf|rdf:rdf')) {
						  items = originalRequest.responseXML.childNodes[i];
						  break;
					  }
				  } catch (e) { }
			  }
		  } else {
			  // Si jamais Ajax n'a pas r�ussi � parser le XML, on tente
			  // de le parser � la main
			  var rssFlow = loadXMLString(originalRequest.responseText);
			  if (rssFlow.nodeName.toLowerCase().match('feed|rss|rdf|rdf:rdf')) {
				  items = rssFlow;
			  } else {
				  for (i = 0; i < rssFlow.childNodes.length; i++) {
					  try {
						  if (rssFlow.childNodes[i].nodeName.toLowerCase().match('feed|rss|rdf|rdf:rdf')) {
							  items = rssFlow.childNodes[i];
							  break;
						  }
					  } catch (e) { }
				  }
			  }
		  }
		  if (items == null)
			  throw('FEED_UNSUPPORTED');
		  /* Pour les flux de type ATOM */
		  if (items.nodeName.toLowerCase() == 'feed') {
			  bTitle = items.getElementsByTagName('title')[0].firstChild.nodeValue;
			  try {
				  bLink = items.getElementsByTagName('link')[0].attributes.getNamedItem('href').nodeValue;
				  bImg = items.getElementsByTagName('logo')[0].firstChild.nodeValue;
			  } catch (e) { }	
			  for (i = 0; i < items.getElementsByTagName('entry').length && i < 10; i++) {
				  try {
					  var entry = items.getElementsByTagName('entry')[i];
					  var newEntry = new Array();
					  newEntry['title'] = entry.getElementsByTagName('title')[0].firstChild.nodeValue;
					  newEntry['link'] = entry.getElementsByTagName('link')[0].attributes.getNamedItem('href').nodeValue;
					  if (entry.getElementsByTagName('summary').length > 0)
						  newEntry['desc'] = entry.getElementsByTagName('summary')[0].firstChild.nodeValue;
					  else if (entry.getElementsByTagName('content').length > 0)
						  newEntry['desc'] = entry.getElementsByTagName('content')[0].firstChild.data.unescapeHTML().stripTags();
					  else
						  newEntry['desc'] = '';
					  try {
						  newEntry['author'] =
							  entry
							  .getElementsByTagName('author')[0]
							  .getElementsByTagName('name')[0]
							  .firstChild.nodeValue;
					  } catch (e) {
						  newEntry['author'] = '';
					  }
					  // Les dates sont toujours au format rfc3339 pour atom
					  try {
						  var newDate = new Date();
						  var strDate = entry.getElementsByTagName('updated')[0].firstChild.nodeValue; 
						  newDate.setFullYear(strDate.substr(0, 4), strDate.substr(5, 2), strDate.substr(8, 2));
						  newEntry['date'] = newDate;
					  } catch (e) {
						  newEntry['date'] = null;
					  }
					  entries.push(newEntry);
				  } catch (e) {
					  // Il nous manque des informations cruciales, on ne peut
					  // pas afficher cette entr�e, on continue avec la suivante
				  }
			  }
			  
          /* Pour les flux de type RSS 0.9x, 1.0 et 2.0 */
		  } else if ((items.nodeName.toLowerCase() == 'rss') || (items.nodeName.toLowerCase().match('rdf|rdf:rdf'))) {
			  var chan = items.getElementsByTagName('channel')[0];
			  bTitle = rssGetNodeContent(chan.getElementsByTagName('title')[0]);
			  try {
				  bLink = chan.getElementsByTagName('link')[0].firstChild.nodeValue;
			  } catch (e) { }
			  try {
				  var image = chan.getElementsByTagName('image')[0];
				  bImg = image.getElementsByTagName('url')[0].firstChild.nodeValue;
				  bImgLink = image.getElementsByTagName('link')[0].firstChild.nodeValue;
			  } catch (e) { }

			  for (i = 0; i < items.getElementsByTagName('item').length && i < 10; i++) {
				  try {
					  var entry = items.getElementsByTagName('item')[i];
					  var newEntry = new Array();
					  newEntry['title'] = rssGetNodeContent(entry.getElementsByTagName('title')[0]);
					  newEntry['link'] = rssGetNodeContent(entry.getElementsByTagName('link')[0]);
					  newEntry['desc'] = rssGetNodeContent(entry.getElementsByTagName('description')[0]);
					  newEntry['author'] = rssGetNodeContent(entry.getElementsByTagName('dc:creator')[0]);
					  if (!newEntry['author'])
						  newEntry['author'] = rssGetNodeContent(entry.getElementsByTagName('author')[0]);
					  // Les dates ne sont toujours au format web... (Sun, 19 May 2002 15:21:36 GMT)
					  try {
						  var rawDate = rssGetNodeContent(entry.getElementsByTagName('pubDate')[0]);
						  if (!rawDate)
							  rawDate = rssGetNodeContent(entry.getElementsByTagName('dc:date')[0]);
						  var unixDate = Date.parse(rawDate);
						  var newDate = new Date();
						  if (!isNaN(unixDate)) {
							  newDate.setTime(unixDate);
						  } else if (rawDate.match(/^\d{4}\D\d{2}\D\d{2}/)) {
							  // On esp�re avoir un format genre YYYY-MM-DD
							  newDate.setFullYear(rawDate.substr(0, 4), rawDate.substr(5, 2), rawDate.substr(8, 2));
						  } else if (rawDate.match(/^\d{2}\D\d{2}\D\d{4}/)) {
							  // On esp�re avoir un format genre DD-MM-YYYY
							  newDate.setFullYear(rawDate.substr(6, 4), rawDate.substr(3, 2), rawDate.substr(0, 2));
						  } else
							  throw('INVALID_DATE');
						  newEntry['date'] = newDate;
					  } catch (e) {
						  newEntry['date'] = null;
					  }
					  entries.push(newEntry);
				  } catch (e) {
					  var newEntry = new Array();
					  newEntry['title'] = e;
					  newEntry['desc'] = '';
					  entries.push(newEntry);
					  // Il nous manque des informations cruciales, on ne peut
					  // pas afficher cette entr�e, on continue avec la suivante
				  }
			  }
		  } else throw("FEED_UNSUPPORTED")
		  
		  var htmlFeed = "";
		  
		  if (bImg != "") {
			  if (bImgLink == "")
				  bImgLink = bLink;
				var browser=navigator.appName;
				classStyle = "imageRSS";
				var isIE7 = false;
				if (Prototype.Browser.IE) {
				  Prototype.Browser.IEVersion = parseFloat(navigator.appVersion.split(';')[1].strip().split(' ')[1]);
				  isIE7 =  Prototype.Browser.IEVersion == 7;
				}
				if(browser == "Microsoft Internet Explorer" && !isIE7){
					//changeClassName( 'widget_w','widget_w2', $("widget_"+id_widget) );
					//classStyle = "imageRSS2";
				}
				bImg = bImg.replace("localhost",ip);
				htmlFeed +=
					'<span class="'+classStyle+'"><a target="_blank" href="'+ bImgLink + '"><img src="'+ bImg +'"/></a></span>';
		  }
		  
		  for (i = 0; i < entries.length; i++) {
			  var entry = entries[i];
			  if (entry['link'].match(/weblextenso\/article\/afficher\?id=(.*)/)) {
				  entry['link'] = 'javascript:afficherDocument(\'' + RegExp.lastParen + '\')';
			  }
			  var shortDesc = entry['desc'];
			  if (shortDesc.length > 100) 
				  shortDesc = shortDesc.substr(0, shortDesc.indexOf(' ', 99)) + " (...)";
			  for (var j = 33; (j < shortDesc.length) && (j < 99); j+=33) {
				  nextSpace = shortDesc.indexOf(' ', j); 
				  if (nextSpace >= 0)
					  shortDesc = shortDesc.substr(0, nextSpace) + '<br/>' + shortDesc.substr(nextSpace + 1); 
			  }
			  var affichage = (i < nbFlux) ? 'block' : 'none';
			  var TexDetail = (BoolDetail != '0') ? 'block' : 'none';
			  var TexAuteur = (BoolAuteur != '0') ? 'inline' : 'none';
			  htmlFeed += '<div class="contenuRss" style="display:' + affichage + '"><div class="zoneInfoRSS">'
			  + '<a ' + (globalRssLinkOpensNewWindow ? 'target="_blank"' : '')   
			  + 'href="'+ entry['link'] + '"><span class="titreArticle" onmouseover="tooltip.show(this);" onmouseout="tooltip.hide(this);" title="' + shortDesc + '">' + entry['title'] + '</span>'
			  + '<br/><span class="extraitArticle" style="display:'+ TexDetail +'">' + entry['desc'] + '</span></a>'
			  + '<br/><span class="nomAuteur" style="display:'+ TexAuteur +'">' + entry['author']
			  if (entry['date'] != null) {
				  if (entry['author'] != '') htmlFeed += ", "; 
				  htmlFeed += '</span><span class="dateGras" style="color: ' + color + '">' + entry['date'].getDate()+'.'+(entry['date'].getMonth()+1)+'.'+entry['date'].getFullYear() + '</span>';
			  } else
				  htmlFeed += '</span>';
			  htmlFeed += "</div></div>";
		  }

		  if(entries.length == 0){
		    htmlFeed += '<div class="contenuRss" "><div class="zoneInfoRSS"></div></div>';
		    htmlFeed+='<div class="clear"></div>';
		  }
	      if (bLink!="") {
	    	  htmlFeed+='<div class="clear"></div>';
		      if(onglet=="article") {
		    	  aLink = '../recherche/avancee?action=edit&' + bLink.substring(bLink.indexOf('?ref=')+1);
		    	  htmlFeed += '<div id="articlesAJour"><a href="'+bLink+'" id="articleJourText">Tous les articles mis &agrave; jour</a></div>';
		    	  htmlFeed += '<div id="articlesAJour"><a href="'+aLink+'" id="articleJourText">Les archives</a></div>';
		      } else if(onglet == "chronique") {
		    	  htmlFeed += '<div id="articlesAJour"><a href="'+bLink+'" id="articleJourText">Toutes les chroniques</a></div>';
		      }
	      }

	      $("header_widget_"+id_widget).style.color = color;
	      if (!globalRssUseRssTitle && (titreBloc != '') && (typeof(titreBloc) != 'undefined') && (titreBloc != null))
	    	  $("widget_title_"+id_widget).innerHTML = titreBloc;
	      else
	    	  $("widget_title_"+id_widget).innerHTML = bTitle;
	      $("content_widget_"+id_widget).innerHTML = htmlFeed;
	
	      //Mise � jour des hauteurs de Widget et colonne
	      $("content_widget_"+id_widget).up(".widget").widget.updateHeight();
	      portal._updateColumnsHeight();
		  
	  } catch (e) {
		  //Suppression du cookie associ� au widget
		  Delete_Cookie("lextensoCookie_"+id_widget);
		  //Suppression du widget
		  var widget = $("widget_"+id_widget).widget;
		  portal.remove(widget);
	  }
	  loadRSSworking = false;
}

function changeClassName( strClassName,newClassName, obj ) {
    if ( obj.className == strClassName ) {
        obj.className = newClassName;
    }
    for ( var i = 0; i < obj.childNodes.length; i++ )
        changeClassName( strClassName,newClassName, obj.childNodes[i] );
}
/* Grosse bidouille pour rendre le chargement des widgets s�quentiel sous IE */
var loadRSSqueue = new Array();
var loadRSSworking = false;
function loadRSS(id_widget,url,nbFlux,color,titreBloc,BoolDetail,BoolAuteur) {
	/* On ne fait �a que sous IE, sinon on prend le comportement normal
	 * plus rapide.
	 */
	if (isIE())
		loadRSSqueue.push(function(){
			_loadRSS(id_widget,url,nbFlux,color,titreBloc,BoolDetail,BoolAuteur);
		});
	else
		_loadRSS(id_widget,url,nbFlux,color,titreBloc,BoolDetail,BoolAuteur);
}
function loadRSSTimer() {
	if ((!loadRSSworking) && (loadRSSqueue.length > 0)) {
		loadRSSworking = true;
		var f = loadRSSqueue.pop();
		f();
		setTimeout(loadRSSTimer, 20);
	} else if (loadRSSworking)
		setTimeout(loadRSSTimer, 20);
	else
		setTimeout(loadRSSTimer, 500);
}
loadRSSTimer();

/////////////////////////////////////////
//Fonction qui load le flux RSS (rss 2.0)
/////////////////////////////////////////
function _loadRSS(id_widget,url,nbFlux,color,titreBloc,BoolDetail,BoolAuteur)
{
    //Sauvegarde des informations sur le widget 
	//(a garder en debut de fonction pour eviter la corruption des cookies)
    setVisitorInfo(id_widget, url, nbFlux, color, titreBloc, BoolDetail, BoolAuteur);
    if(!url) return;
	var urlToLoad;
	if(url.startsWith("http")) {
		urlToLoad = "/feed/" + encodeURIComponent(url);
	} else {
		urlToLoad = url;
	}
  var myAjax = new Ajax.Request (
	  urlToLoad,
  { 
    method : 'get',
    asynchronous: true,
    onComplete : function(originalRequest) {
		  asyncRSSLoader(originalRequest, id_widget, nbFlux, color, titreBloc, BoolDetail, BoolAuteur)
	  }
  });
}

function ordre_widgets() {
	var col = "widget_col_";
	var order_col;
	var order="";
	
	var id_col = 0;
	var id_ligne = 0;
	
	for(id_col=0; id_col<3; id_col++) {
		//On r�cup�re les �l�ments fils d'une colonne
		order_col = $(col + id_col).childElements();
		//On r�cup�re l'ordre dans la colonne
		order += id_col + "=";
		for (id_ligne=0; id_ligne<order_col.size(); id_ligne++) {
			if(order_col[id_ligne].id != "pub" ) {
				if(order_col[id_ligne].id == "monLext") {
					order += order_col[id_ligne].id;
				} else {
					order += order_col[id_ligne].id.substring(7);
				}
				if ((id_ligne != order_col.size() - 1 && order_col[id_ligne].id != "monLext")
						|| (order_col[id_ligne].id == "monLext") && order_col.size() != 2) order += "\|";
			} 
		}
		order += ";";
	}
	if(order.endsWith('\|;')) order = order.replace('\|;', ';');
	return order;
}

//Comportement lors du focus d'un champs de login
function loginInputFocus(element) {
	//On met le champs mot de passe en mode password
	if(element.id.endsWith("asswordV")) {
		$(element.id.replace("word","")).toggle();
		$(element.id.replace("wordV","")).toggle();
		$(element.id.replace("V","")).focus();
		$(element.id.replace("V","")).value="";
	}
	//On vide le champs si on a la valeur initiale
	if(element.value=="Identifiant" || element.value=="Email") {
		element.value="";
	}
}

//Comportement lors de la perte de focus d'un champs de login
function loginInputBlur(element) {
	if(element.value=="" && element.id.endsWith("assword")) {
		$(element.id.replace("word","")+"V").toggle();
		$(element.id.replace("word","")).toggle();
	}
	if(element.value=="" && element.id.endsWith("ogin")) {
		element.value="Identifiant";
	}
	if(element.value=="" && element.id.endsWith("mail")) {
		element.value="Email";
	}
}

function loadWidget(id_widget,url,nbFlux,color,titreBloc,BoolDetail,BoolAuteur,colonne) {
	//On charge le widget selectionn�
	portal.add(new Xilinus.Widget("widget","widget_"+id_widget).setTitle(id_widget,"").setEdition().setContent(), colonne);
	loadRSS(id_widget,url,nbFlux,color,titreBloc,BoolDetail,BoolAuteur);
	
	//On met � jour les cookies
	hideShowRestauration();
	setCookieOrdre();
	//On recharge les �l�ments que l'on peut restaurer
	loadBlocResto();
	var textCookie = url+"\|"+nbFlux+"\|"+color+"\|"+titreBloc+"\|"+BoolDetail+"\|"+BoolAuteur+"\|"+colonne;
	ajaxAjoutWidget(id_widget,textCookie);
}

function loadFluxPerso() {
	var now = new Date();
	//R�cuperation des informations du formulaire
	var titre 		= "";
	var flux 		= $("adrFlux").value;
	var uid			= now.getTime();
	var ambiance 	= $('ambianceFlux').value;
	var nbreFlux	= $("nbFlux").value;
	var colonne 	= $("colFlux").value;
	if(flux!="") {
		loadWidget(flux,flux,nbreFlux,ambiance,titre,1,1,colonne);
	}
}

function send_identification(urlsauvegarde) {
	//On r�cup�re les informations renseign� par l'utilisateur
	var login 		  = $("modalLogin") ? $("modalLogin").value : "";
	var password 	  = $("modalPassword") ? $("modalPassword").value : "";
	var email 		  = $("modalEmail") ? $("modalEmail").value : "";
	
	if(email == ""){
		email 		  = $("email") ? $("email").value : "";
	}
	
	Delete_Cookie("lextensoCookie_ordre_widget_article","/");
	Delete_Cookie("lextensoCookie_ordre_widget_chronique","/");
	Delete_Cookie("lextensoCookie_ordre_widget_actus","/");
	if(typeof(ident)!="undefined") {
		if(ident=="") ident="tempo";
	}
	setCookieOrdre();
	
	//Si l'email est valide, on envoit les informations au serveur
	var url = urlsauvegarde;
	var target = "MB_content";
	if(typeof(onglet)=="undefined"){
		onglet = "";
	}
	/*
	new Ajax.Updater(target, url, {
		 method: 'post',
		 asynchronous:false,
		 onComplete: function() {fin_send_identification();},
		 parameters: { login:login, password:password, email:email, onglet:onglet}
	});*/
	Modalbox.show(url, {
		method: 'post',
		params: { login:login, password:password, email:email, onglet:onglet },
		afterLoad: fin_send_identification
	});
}


function send_ident(urlsauvegarde,email) {
	//On r�cup�re les informations renseign� par l'utilisateur
	var login 		  = $("modalLogin") ? $("modalLogin").value : "";
	var password 	  = $("modalPassword") ? $("modalPassword").value : "";
	
	Delete_Cookie("lextensoCookie_ordre_widget_article","/");
	Delete_Cookie("lextensoCookie_ordre_widget_chronique","/");
	Delete_Cookie("lextensoCookie_ordre_widget_actus","/");
	if(typeof(ident)!="undefined") {
		if(ident=="") ident="tempo";
	}
	setCookieOrdre();
	
	//Si l'email est valide, on envoit les informations au serveur
	var url = urlsauvegarde;
	var target = "MB_content";
	if(typeof(onglet)=="undefined"){
		onglet = "";
	}
	Modalbox.show(url, {
		method: 'post',
		params: { login:login, password:password, email:email, onglet:onglet },
		afterLoad: fin_send_identification
	});
}
function send_identification_noperso(urlsauvegarde) {
	//On r�cup�re les informations renseign� par l'utilisateur
	var login 		= $("modalLogin") ? $("modalLogin").value : "";
	var password 	= $("modalPassword") ? $("modalPassword").value : "";
	var email 		= $("modalEmail") ? $("modalEmail").value : "";

	if(typeof(ident)!="undefined") {
		if(ident=="") ident="tempo";
	}
	
	//Si l'email est valide, on envoit les informations au serveur
	var url = urlsauvegarde;
	var target = "MB_content";
	if(typeof(onglet)=="undefined"){
		onglet = "";
	}
	/*
	new Ajax.Updater(target, url, {
		 method: 'post',
		 asynchronous:false,
		 onComplete: function() { fin_send_identification();},
		 parameters: { login:login, password:password, email:email, onglet:onglet}
	});*/
	Modalbox.show(url, {
		method: 'post',
		params: { login:login, password:password, email:email, onglet:onglet },
		afterLoad: fin_send_identification
	});
}

function send_identification_modeip() {
	var login 		= $("modalLogin") ? $("modalLogin").value : "";
	var password 	= $("modalPassword") ? $("modalPassword").value : "";
	
	var url = "../moncompte/loginmodeip";
	var target = "MB_content";
	new Ajax.Updater(target, url, {
		 method: 'post',
		 asynchronous:false,
		 onComplete: function() { fin_send_identification();},
		 parameters: { login:login, password:password}
	});
}


function fin_send_identification() {
	var urlToRedirect = $("urlToRedirect") ? $("urlToRedirect").value : "";
	Modalbox.resizeToContent();
	ajaxLoginForm();
	$("urlToRedirect").value = urlToRedirect;
}

function recuperationMdp() {
	var login = $("loginMdp") ? $("loginMdp").value : "";
	
	var url = "../moncompte/motdepasse/recuperer";
	var target = "MB_content";
	new Ajax.Updater(target, url, {
		 method: 'post',
		 onComplete: function() { Modalbox.resizeToContent();},
		 parameters: { login:login}
	});
}

function hideShowRestauration() {
	if(onglet!="actus") {
		var col = "widget_col_";
		var id_col = 0;
		var nbreFluxAffiche=0;
		
		//On calcul le nombre de flux affich�
		for(id_col=0; id_col<3; id_col++) {
			childs = $(col + id_col).childElements();
			for(i=0; i<childs.size(); i++) {
			if(childs[i].id.indexOf('widget_ENT')>=0)
				nbreFluxAffiche++;				
			}			
		}
		if(!$('monLext')) nbreFluxAffiche++;
		
		if(nbreFluxRef==nbreFluxAffiche-1) {
			//On cache la possibilit� de restaurer
			$('ajoutRestaure').style.display="none";
			if($('zoneRestoBloc').style.display=="") Element.toggle('zoneRestoBloc');
			
		} else {
			if(onglet!="actus") {
				//On affiche le lien de restauration
				$('ajoutRestaure').style.display="block";
			}
		}
	}	
}

function ajaxLoginForm() {
	var url = "../moncompte/ajaxlogin";
	var target = "formLogin";
	new Ajax.Updater(target, url, {
		 method: 'post',
		 asynchronous:false
	});
}

/******************************
 *    AJAX personnalisation
 ******************************/
function ajaxEditionWidget(name) {
	var url = "../personnalisation/edition";
	new Ajax.Request(url, {
		 method: 'post',
		 parameters:{asynchronous:true,onglet:onglet,infoWidgets:Get_Cookie("lextensoCookie_"+name.substring(7))+"|0|0"}
	});
}

function ajaxAjoutWidget(id_widget,textCookie) {
	var url = "../personnalisation/ajout";
	new Ajax.Request(url, {
		 method: 'post',
		 parameters:{asynchronous:true,onglet:onglet,infoWidgets:textCookie+"|0"}
	});
}

function ajaxDeleteWidget(name) {
	var url = "../personnalisation/delete";
	if(name!="monLext") {
		var info = Get_Cookie("lextensoCookie_"+name.substring(7))+"|0|0";
	} else {
		var info = "monLext|0| |monLext|1|1|0|0";
	}
	new Ajax.Request(url, {
		 method: 'post',
		 parameters:{asynchronous:true,onglet:onglet,infoWidgets:info}
	});
}

function ajaxDragDropWidget(textCookie) {
	var url = "../personnalisation/dragdrop";
	new Ajax.Request(url, {
		 method: 'post',
		 parameters:{asynchronous:true,onglet:onglet,infoWidgets:textCookie}
	});
}


// Aide de la recherche
function openHelpWindow(url) {
	window.open(url, 'HelpWindow', 'directories=no,height=330,width=440,location=no,menubar=no,toolbar=no,resizable=yes', true);
}

function openHelpWindowMax(url) {
	window.open(url, 'HelpWindow', 'directories=no,height=500,width=750,location=no,menubar=no,toolbar=no,resizable=yes,scrollbars=yes', true);
}


// V�rification de la recherche simple
function simpleSearchCheck(failurl) {
	var s = document.forms.simpleSearch.words.value;
	if (s.match('^ *$')) {
		modalWarn('Erreur de saisie', 'Veuillez renseigner votre recherche.', 'Erreur sur la saisie du formulaire');
		return false;
	}
	return true;
}

//Met � z�ro les champs contenant leurs valeurs par d�faut
//TODO: d�porter les valeurs ici en dur ailleurs
function nullContentIfDefault(textfield) {
	if ((textfield.value == RES_DEF_VOS_MOTS_CLEFS)
		|| (textfield.value == RES_DEF_JJMMAA)
		|| (textfield.value == RES_DEF_NOM_PRENOM)
		|| (textfield.value == RES_DEF_TELEPHONE)
		|| (textfield.value == RES_DEF_E_MAIL)
		|| (textfield.value == RES_DEF_HORAIRES_THEMATIQUES))
		textfield.value = '';
}


function demandeInformation(form) {
	var url = form.action;
    var target = 'contactReponse';
    var myAjax = new Ajax.Updater(
		target,
		url,
		{method: 'post',parameters:{contactNom:$('contactNom').value, 
									contactTelephone:$('contactTelephone').value,
									contactEmail:$('contactEmail').value,
									contactNote:$('contactNote').value}});
	$('demandeInformation').reset();
	return false;
}

function formContactUp(){
	Effect.toggle('CompteRightBoxMidId', 'blind');
	if($('iconFormContact').style.display =='block'){
		$('iconFormContact').style.display = 'none';
	}else{
		$('iconFormContact').style.display = 'block';
	}
}


/* Modales Lextenso nouvelle formule */

function connectAndGotoUrl(url, mustIdentify, modalTitle, forceConnect) {
	if ((modalTitle == undefined) || (modalTitle == null) || (modalTitle == ''))
		modalTitle = RES_IDENTIFICATION;
	if (!($('isConnect').value)){
		ajaxLoginForm();
	}
	if (!forceConnect && $('isConnect').value && (!mustIdentify || $('isIdentify').value)) {
		window.location = url;
		return;
	}
	var modalUrl = baseUrl + '/modal/auth?needsPersonnalisation=';
	modalUrl += mustIdentify ? 'true' : 'false';
	modalUrl += '&nextUrl=' + encodeURIComponent(url);
	if (forceConnect)
		modalUrl += '&forceConnect=true';
	Modalbox.show(modalUrl, {title: modalTitle});
}

function connectAndShowModal(url, mustIdentify, modalTitle) {
	if ((modalTitle == undefined) || (modalTitle == null) || (modalTitle == ''))
		modalTitle = RES_IDENTIFICATION;
	if ($('isConnect').value && (!mustIdentify || $('isIdentify').value)) {
		Modalbox.show(url, {title: modalTitle});
		return;
	}	
	var modalUrl = baseUrl + '/modal/auth?needsPersonnalisation=';
	modalUrl += mustIdentify ? 'true' : 'false';
	modalUrl += '&nextModal=' + encodeURIComponent(url);
	Modalbox.show(modalUrl, {title: modalTitle});
}

function afficherDocument(id) {
	connectAndGotoUrl('afficher?id=' + encodeURIComponent(id), false, RES_AFFICHER_DOCUMENT);
}
function openDocument(id, mustIdentify) {
	connectAndOpen('../article/afficher?id=' + encodeURIComponent(id), mustIdentify, RES_AFFICHER_DOCUMENT,false,true);
}
function connectAndOpen(url, mustIdentify, modalTitle, forceConnect,onConnectOnly) {
	if ((modalTitle == undefined) || (modalTitle == null) || (modalTitle == ''))
		modalTitle = RES_IDENTIFICATION;
	if (!forceConnect && $('isConnect').value && (!mustIdentify || $('isIdentify').value)) {
		window.location = url;
		return;
	}
	var modalUrl = baseUrl + '/modal/auth?needsPersonnalisation=';
	modalUrl += mustIdentify ? 'true' : 'false';
	modalUrl += '&nextUrl=' + encodeURIComponent(url);
	if (forceConnect)
		modalUrl += '&forceConnect=true';
	if(onConnectOnly)
		modalUrl += '&onConnectOnly=true';
	modalUrl += '&openDoc=true';
	Modalbox.show(modalUrl, {title: modalTitle});
}

function modalConfirm(text, action, title, isScript) {
	var yes;
	if (isScript)
		yes = action;
	else
		yes = 'window.location = \'' + action + '\';'
	Modalbox.show(
			'<fieldset id="lexModal"><div class="warning"><p>'+ text + '</p></div><div class="buttons"><input type="button" class="small" value="Non" onClick="Modalbox.hide()"/><input type="button" class="small" value="Oui" onClick="Modalbox.hide(); ' + yes + '"/></div></fieldset>', {title: title});
}
function setAlerteMailRequete(url) {
	connectAndShowModal(url, true, "Enregistrement alerte");
}
function modalOk(text, title) {
	Modalbox.show('<fieldset id="lexModal"><p>' + text + '</p><div class="buttons"><input type="button" class="small" value="Ok" onClick="Modalbox.hide()"/></fieldset>', {title: title});
}
function modalWarn(redText, text, title) {
	Modalbox.show('<fieldset id="lexModal"><div class="warning"><p><b>' + redText + '</b></p><p>' + text + '</p></div><div class="buttons"><input type="button" class="small" value="Ok" onClick="Modalbox.hide()"/></div></fieldset>', {title: title});
}

function modalOk2(title) {
	text1 = 'Enregistrer votre adresse Email vous permettra de vous identifier de manière individuelle pour personnaliser votre interface, d\'enregistrer des documents dans un dossier ou de mémoriser des requêtes sur lesquelles vous pourrez créer une alerte';
	text2='<a class="ht-help-link-save" href="#"  onclick="send_identification(\'../personnalisation/sauvegarde?saveEmail=true\')">« enregistrer une adresse e-mail »</a>';
	modalOk(text1+'<br/><br/>'+text2, title);
}

function modalWarnAndRedirect(redText, text, title, redirection, redirectionTitle) {
	Modalbox.show('<fieldset id="lexModal"><div class="warning"><p><b>' + redText + '</b></p><p>' + text + '</p></div><div class="buttons"><input type="button" class="small" value="Ok" onClick="Modalbox.show(\''+redirection+'\', {title:\''+redirectionTitle+'\'})"/></div></fieldset>', {title: title});
}

function modalConfirmSaveMail(text,email) {
	Modalbox.show('<fieldset id="lexModal"><div class="warning"><p><b>'+text+'</b></p></div><div class="buttons"><input type="button" value="Annuler" onclick="Modalbox.hide(); return false;"/><input type="submit" value="Valider" onclick="send_ident(\'../personnalisation/sauvegarde\',\''+email+'\'); return false;"/></div></fieldset>', {title: 'Enregistrer email'});
}

function modalShowUrl(url, title) {
	var clipboard = '';
	var clipboardFunc = null;
	if (title == null)
		title = 'Lien du document';
	if (isIE() || flashClipboard()) {
		clipboard = '<p>Vous pouvez la coller via votre presse papier.</p>';
	}
	if (isIE()) {
		clipboardFunc = function () {
			window.clipboardData.setData('text', url);
		}
	}
	Modalbox.show('<fieldset id="lexModal"><p>Lien vers votre document:</p><p><code>' + url + '</code></p>' + clipboard + '<div class="buttons"><input type="button" class="small" value="Ok" onClick="Modalbox.hide()"/></div></fieldset>', {title: title, afterLoad: clipboardFunc});
}

/**
 * Fonction de validation du formulaire de contact
 */
function checkContactForm()
{
	bool=true;
	
	// init contactReponse
	document.getElementById("contactReponse").innerHTML = '';
	
	var messages = document.getElementById("messages");
	if(document.getElementById("contactNom").value=="" || document.getElementById("contactNom").value=='Nom, prénom') {
		bool=false;
		document.getElementById("contactNom").value='Nom, prénom';
		messages.innerHTML = 'Le champ "Nom, prénom" est obligatoire';
		return bool;
	}
	if(document.getElementById("contactTelephone").value=="" || document.getElementById("contactTelephone").value=='Téléphone') {
		bool=false;
		document.getElementById("contactTelephone").value='Téléphone';
		messages.innerHTML = 'Le champ "Téléphone" est obligatoire';
		return bool;
	}	
	if(!checkContactNom(document.getElementById("contactNom").value)) {
		bool=false;
		messages.innerHTML = 'Veuillez saisir votre nom et prénom séparés d\'une virgule';
		return bool;
	}
	if(!checkContactTel(document.getElementById("contactTelephone").value)) {
		bool=false;
		messages.innerHTML = 'Veuillez saisir un numéro valide';
		return bool;
	}
	if(document.getElementById("contactEmail").value!="" && document.getElementById("contactEmail").value!="E-mail" && !checkContactEmail(document.getElementById("contactEmail").value)) {
		bool=false;
		messages.innerHTML = 'Veuillez saisir un e-mail valide';
		return bool;
	}
	messages.innerHTML = '';
	return bool;	
}

/**
 * Fonction de vérification de la validité du champ nom
 * @param $nom
 * @return
 */
function checkContactNom(nom) { 
	var reg = new RegExp('^(.){1,},(.){1,}$', 'i');
	if(reg.test(trim(nom))) {
		return(true);
	}
	else {
		return(false);
	}

}

/**
 * Fonction de vérification de la validité d'une adresse email
 * @param $mail
 * @return
 */
function checkContactEmail(mail) { 
	var reg = new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$', 'i');
	if(reg.test(trim(mail))) {
		return(true);
	}
	else {
		return(false);
	}

}

/**
 * Fonction de vérification de la validité du champ telephone
 * @param $tel
 * @return
 */
function checkContactTel(tel) { 
	//var reg = new RegExp("^(0[1-68])(?:[ _.-]?(\\d{2})){4}$", "i"); /* numéro français */
	var reg = new RegExp("^\\d{4,}$", "i"); /* uniquement des chiffres */
	if(reg.test(trim(tel))) {
		return(true);
	}
	else {
		return(false);
	}

}

/**
* Fonction anuuler le blanc à gauche et à droite
*/
function trim(string) {
	return string.replace(/(^\s*)|(\s*$)/g,'');
}
