Array.prototype.in_array = function(p_val){
  var l = this.length;
  for(var i = 0; i < l;i++)
    if(this[i]==p_val)
      return true;
  return false;
}

function is_null(input){
  return input==null;
}

function is_array(input){
  return typeof(input)=='object'&&(input instanceof Array);
}

function getValueElementID(_element)
{
  var elementID=document.getElementById(_element);
  if(elementID)
  {
    if(elementID.tagName=='SELECT')
      return elementID.options[elementID.selectedIndex].value;
    else
      if(elementID.tagName=='INPUT' || elementID.tagName=='TEXTAREA')
	return elementID.value;
      else
	return elementID.innerHTML;
  }
}

function setValueElementID(_element,_value)
{
  if(_element)
  {
//     if(_element.tagName=='SELECT')
//       return _element.options[_element.selectedIndex].value;
//     else
      if(_element.tagName=='INPUT' || _element.tagName=='TEXTAREA')
	_element.value=_value;
      else
	return _element.innerHTML=_value;
  }
}

function chargeCSS(chemin){
  var lien_css = document.createElement('link'); 
  lien_css.href = chemin; 
  lien_css.rel = 'stylesheet'; 
  lien_css.type = 'text/css'; 
  document.getElementsByTagName('head')[0].appendChild(lien_css);
}

function delCSS(filename)
{
  var allsuspects=document.getElementsByTagName('link');
  for (var i=allsuspects.length; i>=0; i--)
    if (allsuspects[i] && allsuspects[i].getAttribute('href')!=null && allsuspects[i].getAttribute('href').indexOf(filename)!=-1)
      allsuspects[i].parentNode.removeChild(allsuspects[i]);
}

function changeCurseur(mode)
{
  document.body.style.cursor=mode;
}

function afficheInfos(cheminCSS,idElement,message){
  chargeCSS(cheminCSS);
  
  var MAJAffiche=document.getElementById(idElement);
  
  if(MAJAffiche)
  {
    MAJAffiche.innerHTML=message;
    setTimeout(function(){delAfficheInfos(cheminCSS,idElement,message)},4000);
  }
}

function delAfficheInfos(cheminCSS,idElement,message){
  var MAJAffiche=document.getElementById(idElement);
  
  if(MAJAffiche)
    MAJAffiche.innerHTML='';
  
  delCSS(cheminCSS);
}

function getSelectMess(tagName)
{
  var total='';
  var listeMess=document.getElementsByName(tagName);
  for(var i=0; i < listeMess.length; i++)
    if(listeMess[i].checked)
      total +=listeMess[i].value + ':#:';
    total=total.substring(0,total.length-3);
  return total;
}

function getXhr()
{
  var xhr = null;

  if(window.XMLHttpRequest) // Firefox et autres
      xhr = new XMLHttpRequest(); 
  else
    if(window.ActiveXObject)
    { // Internet Explorer 
      try
      {
	xhr = new ActiveXObject("Msxml2.XMLHTTP");
      }
      catch (e)
      {
	xhr = new ActiveXObject("Microsoft.XMLHTTP");
      }
    }
    else
    { // XMLHttpRequest non supporté par le navigateur 
      alert('Votre navigateur ne supporte pas les objets XMLHTTPRequest...');
    }

  return xhr;
}

// Node cleaner
function goClean(c)
{
  if(!c.data.replace(/\s/g,''))
    c.parentNode.removeChild(c);
}

function clean(d)
{
  var bal=d.getElementsByTagName('*');

  for(i=0;i<bal.length;i++)
  {
    a=bal[i].previousSibling;

    if(a && a.nodeType==3)
      goClean(a);

    b=bal[i].nextSibling;

    if(b && b.nodeType==3)
      goClean(b);
  }
  return d;
}


function requeteAjax(rAPage,ligne,redirection)
{
  var xhr = getXhr();
  
  xhr.onreadystatechange = function()
  {
    if(xhr.readyState == 4)
    {
      if(xhr.status == 200)
      {
	var leselect = xhr.responseText;
	// 	alert(leselect);
	
	if(ligne.indexOf('action=supprimer')!=-1 || ligne.indexOf('action=monter')!=-1 || ligne.indexOf('action=descendre')!=-1 || ligne.indexOf('action=limiter_article')!=-1 || ligne.indexOf('action=limiter_caractere')!=-1 || ligne.indexOf('action=supprimer_menu')!=-1 || ligne.indexOf('action=monter_menu')!=-1 || ligne.indexOf('action=descendre_menu')!=-1 || ligne.indexOf('action=ajouter_menu')!=-1 || ligne.indexOf('action=ajouter_sousmenu')!=-1 || ligne.indexOf('action=ajouter_diapo')!=-1 || ligne.indexOf('action=supprimer_mess')!=-1 || ligne.indexOf('action=afficher_mess')!=-1 || ligne.indexOf('action=conserver_mess')!=-1 || ligne.indexOf('action=ajout_Adresses')!=-1 || ligne.indexOf('action=ajout_Groupes')!=-1)
	  window.open(redirection,'_self');
      }
      else
	alert('status : '+xhr.status+'\n reponse : '+xhr.statusText);
    }
  }
          
  if(ligne.indexOf('action=limiter_article')!=-1)
  {
    var selection=document.getElementById('nbArticlesByPages');
    ligne+='&nbArticlesByPages='+selection.options[selection.selectedIndex].value;
  }
  else
    if(ligne.indexOf('action=limiter_caractere')!=-1)
    {
      var selection=document.getElementById('nbCaracteresByArticles');
      ligne+='&nbCaracteresByArticles='+selection.options[selection.selectedIndex].value;
    }
		    
  // 	alert(ligne);
  xhr.open("POST",rAPage,true);
  xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  xhr.send(ligne);
}


function requeteAjaxCompte(rAPage,ligne,redirection,message)
{
  var xhr = getXhr();
  
  xhr.onreadystatechange = function()
  {
    if(xhr.readyState == 4)
    {
      if(xhr.status == 200)
      {
	var leselect = xhr.responseText;
	leselect=leselect.replace(/\n/g,'');
	
	if(redirection=='liste')
	{
	  var eCheck = document.getElementsByName('checkPermissions[]');
	  var tLigne=[];
	  tLigne = leselect.split('/');
	  
	  for(j = 0; j < eCheck.length; j++)
	  {
	    var vTmp=eCheck[j].value;
	    
	    if(tLigne.in_array(vTmp))
	      eCheck[j].checked=true;
	    else
	      eCheck[j].checked=false;
	  }
	}
	else
	  afficheInfos('./CSS/afficheInfos.css','afficheInfosDroits_message',message);
      }
      else
	alert('status : '+xhr.status+'\n reponse : '+xhr.statusText);
    }
  }
    
  var selection=document.getElementById('select_compte');
  ligne+='&idStyleCompte='+selection.options[selection.selectedIndex].parentNode.id+'&idCompte='+selection.options[selection.selectedIndex].value;
//   	alert(ligne);
  xhr.open("POST",rAPage,true);
  xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  xhr.send(ligne);
}


function requeteAjaxGeneric(_tElement,rAPage,ligne,redirection,_afficheEtatID)
{
  var xhr = getXhr();
  
  xhr.onreadystatechange = function()
  {
    if(xhr.readyState == 4)
    {
      if(xhr.status == 200)
      {
	var leselect = xhr.responseText;
	
	if(leselect.length>0)
	{
	  if(leselect.contains('{"') && leselect.contains('":'))
	  {
	    var tRes=JSON.decode(leselect);
	    
	    if('success' in tRes && _afficheEtatID.length>0)
	    {
	      var afficheEtat=document.getElementById(_afficheEtatID);
	      setValueElementID(afficheEtat,tRes['success']);
	      (function() {setValueElementID(afficheEtat,'');}).delay(4000);
	    }
	  }
	}
	  
// 	  //	alert(leselect);
// 	  var tLigne = leselect.split('/');
// 	  // 	alert(tLigne.join("\r\n"));
// 	  for(var i = 0; i < tLigne.length; i++)
// 	  {
// 	    var tVarVal = tLigne[i].split('=>');
// 	    var element2change=document.getElementById(tVarVal[0]);
// 	    
// 	    if(element2change)
// 	    {
// 	      if(element2change.tagName=='INPUT' || element2change.tagName=='TEXTAREA')
// 		element2change.value=tVarVal[1];
// 	      else
// 		if(element2change.tagName=='DIV' || element2change.tagName=='SPAN')
// 		  element2change.innerHTML=tVarVal[1];
// 		else
// 		  if(element2change.tagName=='SELECT')
// 		  {
// 		    var indexSelect=0;
// 		    
// 		    for(j=0; j<element2change.length; j++)
// 		      if(element2change.options[j].value==tVarVal[1])
// 		      {
// 			indexSelect=j;
// 			break;
// 		      }
// 		      		    		    
// 		    element2change.options[j].selected=true;
// 		  }
// 	    }
// 	  }
	  
	if(redirection)
	  if(redirection.length>0)
	    window.open(redirection,'_self');
      }
      else
	alert('status : '+xhr.status+'\n reponse : '+xhr.statusText);
    }
  }
	
  var isWithParam=false;
  
  if(ligne)
    if(ligne.length>0)
      isWithParam=true;
    
  for(var i=0;i<_tElement.length;i++)
    if(document.getElementById(_tElement[i]))
      if(i==0 && !isWithParam)
	ligne+=_tElement[i]+'='+getValueElementID(_tElement[i]);
      else
	ligne+='&'+_tElement[i]+'='+getValueElementID(_tElement[i]);
      
  xhr.open('POST',rAPage,true);
  xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  xhr.send(ligne);
}



// function requeteAjaxGeneric(getElementId,rAPage,ligne,redirection)
// {
//   var xhr = getXhr();
// 
//   xhr.onreadystatechange = function()
//   {
//     if(xhr.readyState == 4)
//     {
//       if(xhr.status == 200)
//       {
// 	var leselect = xhr.responseText;
// //	alert(leselect);
// 	var tLigne = leselect.split('/');
// 	$tGroupe
// // 	alert(tLigne.join("\r\n"));
// 	for(var i = 0; i < tLigne.length; i++)
// 	{
// 	  var tVarVal = tLigne[i].split('=>');
// 	  var element2change=document.getElementById(tVarVal[0]);
// 
// 	  if(element2change)
// 	  {
// 	    if(element2change.tagName=='INPUT' || element2change.tagName=='TEXTAREA')
// 	      element2change.value=tVarVal[1];
// 	    else
// 	      if(element2change.tagName=='DIV' || element2change.tagName=='SPAN')
// 		element2change.innerHTML=tVarVal[1];
// 	      else
// 		if(element2change.tagName=='SELECT')
// 		{
// 		  var indexSelect=0;
// 		  
// 		  for(j=0; j<element2change.length; j++)
// 		    if(element2change.options[j].value==tVarVal[1])
// 		    {
// 		      indexSelect=j;
// 		      break;
// 		    }
// 		    		    
// 		  element2change.options[j].selected=true;
// 		}
// 	  }
// 	}
// 
// 	if(redirection.lenght>0)
// 	  window.open(redirection,'_self');
//       }
//       else
// 	alert('status : '+xhr.status+'\n reponse : '+xhr.statusText);
//     }
//   }
//   
//   var Element=document.getElementById(getElementId);
//   var elementHidden=document.getElementById('hidden_'+getElementId);
//   
//   if(elementHidden)
//     ligne+='&hiddenVar=hidden_'+getElementId+'&hiddenVal=getElementId';
//     
//   if(document.getElementById(getElementId).tagName=='SELECT')
//     ligne+='&getElementId='+Element.options[Element.selectedIndex].value;
//   
//   xhr.open("POST",rAPage,true);
//   xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
//   xhr.send(ligne);
// }

function escapeEval(string)
{
  var str = string;
  str = str.replace(/\\/g,'\\\\');
  return str.replace(new RegExp('\'','g'),"\\'");
}

function changeSexe(string,h,f)
{
  var selection=document.getElementById('civilite');
  var to=document.getElementById('sexe');
  
  if(selection && to)
    if(string=='MR')
      to.innerHTML=h;
    else
      to.innerHTML=f;
}

function changeValSelect(string,selectVar)
{
  var selection=document.getElementById(string);
  var to=document.getElementById(selectVar);
  
  if(selection)
    selection.innerHTML=to.options[to.selectedIndex].value;
}

function vider_form(_form,isWithHidden,_other)
{
  var els = document.getElementById(_form).elements;
  
  // 	alert(els.join("\r\n"));
  for(var i=0;i<els.length;i++)
  {
//     alert('element courant:'+els[i].type+'=>'+els[i].value+"\r\n");
    
    if(els[i].type=='checkbox')
      els[i].checked = false;
    
    if(els[i].type=='textarea' || els[i].type=='text' || els[i].type=='file' || els[i].type=='input')
      els[i].value = '';
    
    if(isWithHidden && els[i].type=='hidden')
      els[i].value = '';
  }
  
    if(_other)
      if(_other!='NULL')
      {
	if(_other.indexOf('/')!=-1)
	{
	  var tLigne = _other.split('/');
	  
	  for(i=0;i<tLigne.length;i++)
	    document.getElementById(tLigne[i]).innerHTML='';
	}
	else
	  document.getElementById(_other).innerHTML='';
      }
}

function HorlogeStart() 
{
  Horloge_Nu = new Date;
  Horloge_Indhold = HorlogeStartAffichage(Horloge_Nu.getHours()) + ":" + HorlogeStartAffichage(Horloge_Nu.getMinutes()) + ":" + HorlogeStartAffichage(Horloge_Nu.getSeconds());
  document.getElementById("HorlogeDyna").innerHTML = Horloge_Indhold;
  setTimeout("HorlogeStart()",1000);
}

function HorlogeStartAffichage(Value) 
{
  return (Value > 9) ? "" + Value : "0" + Value;
}


