// 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>';
        }
    }
}

// Detecteur 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 recupere 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'edition 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'edition 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;
	var zone = widget.getElement();
	var accesFormDiv = zone.getElementsByClassName('formEdition', 'div');
	var setvalueRed = accesFormDiv[1].childNodes[4].value;
	if(setvalueRed == '1' )accesFormDiv[1].childNodes[4].value = '0';
	else accesFormDiv[1].childNodes[4].value = '1';
	portal.reduireWidget(widget);
	ajaxMinMaxWidget(widget.getElement().id,true);
	portal.miniWidget(widget);
    }  
	 
	function maxWidget(element) {
    var widget = $(element).up(".widget").widget;
	var zone = widget.getElement();
	var accesFormDiv = zone.getElementsByClassName('formEdition', 'div');
	var setvalueRed = accesFormDiv[1].childNodes[4].value;
	if(setvalueRed == '1' )accesFormDiv[1].childNodes[4].value = '0';
	else accesFormDiv[1].childNodes[4].value = '1';
	portal.reduireWidget(widget);
	ajaxMinMaxWidget(widget.getElement().id, false);
    portal.maxiWidget(widget);
    } 
	
	function ajaxMinMaxWidget(name, isMin){
		var reduire = '0';
		if(isMin) reduire = '1';
		var url = "../personnalisation/edition";
		new Ajax.Request(url, {
			 method: 'post',
			 parameters:{asynchronous:true,onglet:onglet,infoWidgets:Get_Cookie("lextensoCookie_"+name.substring(7))+"|0|0"}
		});
		
	}
	//////////////////////////
	//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'edition 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 deroule la zone
		$('zoneContenuAjout').innerHTML="";
		Element.toggle('zoneAjoutWidget');
		var colorBox=$('ColorValue');
		$('ajoutPerso').style.fontWeight = "normal";
	    $('ajoutLextenso').style.fontWeight = "normal";
		//On reinitialise 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 a restaurer
			loadBlocResto();
	    }
	    //On deroule 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 a 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 reinitialise 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 a 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 reinitialise 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() {
		//Recuperation 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 ete change 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() {
    	if(typeof(onglet) != 'undefined' && typeof(ident) != 'undefined'){
	    	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');
	//Recuperation 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),getInfoVisitor(nameCookie,6));	
	}
	
}


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,BoolReduire) {
	  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 reussi a parser le XML, on tente
			  // de le parser a 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 entree, 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 espere avoir un format genre YYYY-MM-DD
							  newDate.setFullYear(rawDate.substr(0, 4), parseInt(rawDate.substr(5, 2))-1, rawDate.substr(8, 2));
						  } else if (rawDate.match(/^\d{2}\D\d{2}\D\d{4}/)) {
							  // On espere avoir un format genre DD-MM-YYYY
							  newDate.setFullYear(rawDate.substr(6, 4), parseInt(rawDate.substr(3, 2))-1, 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 entree, 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>';
		      } 
	      }

	      $("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 a jour des hauteurs de Widget et colonne
	      $("content_widget_"+id_widget).up(".widget").widget.updateHeight();
	      portal._updateColumnsHeight();
		  
	  } catch (e) {
		  //Suppression du cookie associe au widget
		  Delete_Cookie("lextensoCookie_"+id_widget);
		  //Suppression du widget
		  var widget = $("widget_"+id_widget).widget;
		  portal.remove(widget);
	  }
	  loadRSSworking = false;
	  if(BoolReduire == '1'){
			var widget = $("widget_"+id_widget).widget;
		    portal.miniWidget(widget);
	  }
}

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 sequentiel sous IE */
var loadRSSqueue = new Array();
var loadRSSworking = false;
function loadRSS(id_widget,url,nbFlux,color,titreBloc,BoolDetail,BoolAuteur,BoolReduire) {
	/* On ne fait ca 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,BoolReduire);
		});
	else
		_loadRSS(id_widget,url,nbFlux,color,titreBloc,BoolDetail,BoolAuteur,BoolReduire);
}
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, BoolReduire)
{
    //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, BoolReduire);
    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, BoolReduire)
	  }
  });
}

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++) {
		if($(col + id_col)){
			//On recupere les elements fils d'une colonne
			order_col = $(col + id_col).childElements();
			//On recupere 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 selectionne
	portal.add(new Xilinus.Widget("widget","widget_"+id_widget).setTitle(id_widget,"").setEdition().setContent(), colonne);
	loadRSS(id_widget,url,nbFlux,color,titreBloc,BoolDetail,BoolAuteur,'0');
	
	//On met a jour les cookies
	hideShowRestauration();
	setCookieOrdre();
	//On recharge les elements que l'on peut restaurer
	loadBlocResto();
	var textCookie = url+"\|"+nbFlux+"\|"+color+"\|"+titreBloc+"\|"+BoolDetail+"\|"+BoolAuteur+"\|0"+"\|"+colonne;
	ajaxAjoutWidget(id_widget,textCookie);
}

function loadFluxPerso() {
	var now = new Date();
	//Recuperation 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 recupere les informations renseigne par l'utilisateur
	var login 		  = $("modalLogin") ? $("modalLogin").value : "";
	var password 	  = $("modalPassword") ? $("modalPassword").value : "";
	var email 		  = $("modalEmail") ? $("modalEmail").value : "";
	
	if(email == ""){
		email 		  = $("email") ? $("email").value : "";
	}
	if('function' == typeof(Delete_Cookie)){
		Delete_Cookie("lextensoCookie_ordre_widget_article","/");
		Delete_Cookie("lextensoCookie_ordre_widget_actus","/");
		if(typeof(ident)!="undefined") {
			if(ident=="") ident="tempo";
		}
		if('function' == typeof(setCookieOrdre)){
			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}
	});*/
	if(onglet=="accueil"){
		url = url.substring(3);
	}
	url = changeToNewUrl(url);
	Modalbox.show(url, {
		method: 'post',
		params: { login:login, password:password, email:email, onglet:onglet },
		afterLoad: fin_send_identification
	});
}


function send_ident(urlsauvegarde,email) {
	//On recupere les informations renseignees par l'utilisateur
	var login 		  = $("modalLogin") ? $("modalLogin").value : "";
	var password 	  = $("modalPassword") ? $("modalPassword").value : "";
	if('function' == typeof(Delete_Cookie)){
		Delete_Cookie("lextensoCookie_ordre_widget_article","/");
		Delete_Cookie("lextensoCookie_ordre_widget_actus","/");
	
		if(typeof(ident)!="undefined") {
			if(ident=="") ident="tempo";
		}
		if('function' == typeof(setCookieOrdre)){
			setCookieOrdre();
		}
	}
	
	//Si l'email est valide, on envoit les informations au serveur
	var url = urlsauvegarde;
	var target = "MB_content";
	if(typeof(onglet)=="undefined"){
		onglet = "";
	}
	if(onglet=="accueil"){
		url = url.substring(3);
	}
	url = changeToNewUrl(url);
	Modalbox.show(url, {
		method: 'post',
		params: { login:login, password:password, email:email, onglet:onglet },
		afterLoad: fin_send_identification
	});
}
function send_identification_noperso(urlsauvegarde) {
	//On recupere les informations renseigne 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}
	});*/
	url = changeToNewUrl(url);
	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 = baseUrl + "/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();
	if($("urlToRedirect")){
		urlToRedirect = changeToNewUrl(urlToRedirect);
		$("urlToRedirect").value = urlToRedirect;
	}
}

function recuperationMdp() {
	var login = $("loginMdp") ? $("loginMdp").value : "";
	
	var url = baseUrl + "/moncompte/motdepasse/recuperer";
	if($("accueilPage")) 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 affiche
		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 possibilite 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 = baseUrl + "/moncompte/ajaxlogin";
	var target = "formLogin";
	new Ajax.Updater(target, url, {
		 method: 'post',
		 asynchronous:false
	});
}

/******************************
 *    AJAX personnalisation
 ******************************/
function ajaxEditionWidget(name) {
	var url = baseUrl + "/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 = baseUrl + "/personnalisation/ajout";
	new Ajax.Request(url, {
		 method: 'post',
		 parameters:{asynchronous:true,onglet:onglet,infoWidgets:textCookie+"|0"}
	});
}

function ajaxDeleteWidget(name) {
	var url = baseUrl + "/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|0";
	}
	new Ajax.Request(url, {
		 method: 'post',
		 parameters:{asynchronous:true,onglet:onglet,infoWidgets:info}
	});
}

function ajaxDragDropWidget(textCookie) {
	var url = baseUrl + "/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 a zero les champs contenant leurs valeurs par defaut
//TODO: deporter 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) && tryLogin(url)){
		ajaxLoginForm();
	}
	url = changeToNewUrl(url);
	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 tryLogin(url){
 if(trim(url).indexOf('recherche/requete') > 0 || trim(url).indexOf('dossier/index') > 0) return false;
 return true;
}
function connectAndGotoToDoc(url, mustIdentify, modalTitle, forceConnect) {
	if ((modalTitle == undefined) || (modalTitle == null) || (modalTitle == ''))
		modalTitle = RES_IDENTIFICATION;
	url = changeToNewUrl(url);
	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';
	modalUrl += '&openDoc=true';
	Modalbox.show(modalUrl, {title: modalTitle});
}

function connectAndShowModal(url, mustIdentify, modalTitle) {
	if ((modalTitle == undefined) || (modalTitle == null) || (modalTitle == ''))
		modalTitle = RES_IDENTIFICATION;
	url = changeToNewUrl(url);
	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)) {
		url = changeToNewUrl(url);
		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(changeToNewUrl(modalUrl), {title: modalTitle});
}

function modalConfirm(text, action, title, isScript) {
	action = changeToNewUrl(action);
	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&egrave;re individuelle pour personnaliser votre interface, d\'enregistrer des documents dans un dossier ou de cr&eacute;er des alertes';
	text2='<a class="ht-help-link-save" href="#"  onclick="connectAndGotoUrl(\'\',true)">&laquo; enregistrer une adresse e-mail &raquo;</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) {
	url = changeToNewUrl(url);
	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,'');
}

/**
*Store into cookies login
**/
function storeInfoLoginCookie(isStore, isRemember){
	var cookie_expire_date = new Date(today.getTime() + (8 * 7 * 86400000));
	if(!isStore){
		
		var loginBoxRemember = isRemember+'-false';
		Set_Cookie('loginBoxRemember', loginBoxRemember,cookie_expire_date,"/","",false);
		Modalbox.hide();
	}
	else{
		var loginBoxLogin = $('loginBoxLogin').value;
		var loginBoxPassword = $('loginBoxPassword').value;
		var loginBoxRemember = isRemember+'-true';
		if ((loginBoxLogin && trim(loginBoxLogin).length > 0)
				&& (loginBoxPassword && trim(loginBoxPassword).length > 0)) {
			Set_Cookie('loginBoxLogin', loginBoxLogin,cookie_expire_date,"/","",false);
			Set_Cookie('loginBoxPassword', loginBoxPassword,cookie_expire_date,"/","",false);
			Set_Cookie('loginBoxRemember', loginBoxRemember,cookie_expire_date,"/","",false);
		}
		Modalbox.hide();
	}
	var myForm = $('login-form');
	if(myForm){
		myForm.submit();
	}
}

function storeLoginCookieModal(){
	var loginBoxLogin = $('modalLogin').value;
	var loginBoxPassword = $('modalPassword').value;
	if ((loginBoxLogin && trim(loginBoxLogin).length > 0)
			&& (loginBoxPassword && trim(loginBoxPassword).length > 0)) {
		var cookie_expire_date = new Date(today.getTime() + (8 * 7 * 86400000));
		Set_Cookie('loginBoxLogin', loginBoxLogin,cookie_expire_date,"/","",false);
		Set_Cookie('loginBoxPassword', loginBoxPassword,cookie_expire_date,"/","",false);
	}
}

/**
*Read from cookies login
**/
function rememberLoginCookie(){
	var loginBoxLogin = Get_Cookie('loginBoxLogin');
	var loginBoxPassword = Get_Cookie('loginBoxPassword');
	if (loginBoxLogin && trim(loginBoxLogin).length > 0) {
		$('loginBoxLogin').value = loginBoxLogin;
		$('loginBoxPassword').value = loginBoxPassword;
	}
}        

function modalConfirmSaveLogin() {
	if(trim($('loginBoxLogin').value)=='' || trim($('loginBoxPassword').value)==''
		|| trim($('loginBoxLogin').value)=='Identification' || trim($('loginBoxPassword').value)=='Mots de passe'){
		var title = 'Identification';
		var text1 = 'Erreur de saisie';
		var text2 = 'Erreur dans la saisie des identifiants.';
		Modalbox.show('<fieldset id="lexModal"><div class="warning"><p><b>'+text1+'</b></p><p>'+text2+'</p></div><div class="buttons"><input type="button" class="small" value="OK" onclick="Modalbox.hide(); return false;"/></div></fieldset>', {title: title});			
	}
	else{
		var loginBoxRemember = Get_Cookie('loginBoxRemember');
		if(loginBoxRemember && trim(loginBoxRemember).length > 0 && (loginBoxRemember == 'true-true' || loginBoxRemember == 'true-false')){
			var isStor = true;
			if(loginBoxRemember.split('-')[1]=='false') isStor = false;
			$('realEmailField').value = $('loginBoxEmail').value;
			storeInfoLoginCookie(isStor,true);	
		}else{
			$('realEmailField').value = $('loginBoxEmail').value;
			var title = 'Identification Abonn&eacute;s';
			var text = 'Souhaitez-vous m&eacute;moriser votre identifiant et votre mot de passe ?';
			Modalbox.show(
					'<fieldset id="lexModal"><div><p>'
					+ text 
					+ '</p></div><p><input type="checkbox" id="noSaveLogin" onchange="" class="labelLoginQuery_chk" /><label class="labelLoginQuery" style="vertical-align: middle;">Ne plus me poser cette question</label></p><div class="buttons"><input type="button" class="small" value="Non" onClick="return storeInfoLoginCookie(false,$(\'noSaveLogin\').checked)"/><input type="button" class="small" value="Oui" onClick="return storeInfoLoginCookie(true,$(\'noSaveLogin\').checked);"/></div></fieldset>', {title: title});
		}
	}
	return false;
}

// Cette fonction pour pour forcer le rafraichissement on change legerement l'url 
function changeToNewUrl(url){
	if(url && url.length > 0) {
		if(trim(url).indexOf(')') == url.length-1) return url;
		if(!(url.indexOf('?') > 0)) url = url + "?";
		url = url+ '&d='+today.getTime();
	}
	return url;		
}

