/*-------------- F O N C T I O N   N O N   O B S T R U S I V E --------------------*/
function showOrHiddeInput(id,default_pos,effect)
{
	var current_state = document.getElementById(id).style.display;
	
	if( current_state == '' && typeof(default_pos) !== 'undefined')
		current_state = default_pos;
		
	if (current_state == 'none')
		showInput(id,effect);
	else
		hiddeInput(id);
}

function showOrHiddeInputJquery(id)
{
	$('#'+id).slideToggle("slow");
}
function showInputJquery(id)
{
	$('#'+id).slideDown("slow");
}
function hiddeInputJquery(id)
{
	$('#'+id).slideUp("slow");
}

function modifyImg(id,src,alt) {
	var img = document.getElementById(id);
	if(img.src == src[1]) {
		img.src = src[0];
		img.alt = alt[0];
	} else {
		img.src = src[1];
		img.alt = alt[1];
	}
}


function showInput(id)
{
	document.getElementById(id).style.display = 'block';
}
function hiddeInput(id)
{
	document.getElementById(id).style.display = 'none';
}

function fillInput(id,value)
{
	document.getElementById(id).value = value;
}
function disableInput(id)
{
	if(document.getElementById(id).disabled != true) {
		document.getElementById(id).disabled = true;
	}
	else {
		document.getElementById(id).disabled = false;
	}
}

function domDeleteParent(noeud_id,no_return)
{
	var noeud = document.getElementById(noeud_id);
	if(typeof(noeud) != 'undefined') {
		noeud.parentNode.parentNode.removeChild(noeud);
		if(no_return !== false) {
			return true;
		}
	}
	
	if(no_return !== false) {
		return false;
	}
}//domDelete

function domDelete(noeud_id,no_return)
{
	var noeud = document.getElementById(noeud_id);
	if(typeof(noeud) != 'undefined') {
		noeud.parentNode.removeChild(noeud);
		if(no_return !== false) {
			return true;
		}
	}
	
	if(no_return !== false) {
		return false;
	}
}//domDelete

function insertIntoInput(id,string) {
	var elem = document.getElementById(id);
	elem.value += string;
}//insertInto

function checkAll(form_name,checkbox_name)
{
	var formulaire;
	var firstElement = 0;
	var lastElement = 0;
	
	if(typeof(document[form_name]) == 'undefined') {
		formulaire = document.getElementById(form_name); 
	} else {
		formulaire = document[form_name]; 
	}
	// compte tous les éléments du formulaire en numérotant chronologiquement
	var temp = formulaire.elements.length;
	
	//on récupère le premier element des checkbox
	for (var i=1; i < temp; i++)
	{
		 
		if(formulaire.elements[i].type == 'checkbox') {
			if(checkbox_name != 'undefined') {
				if(formulaire.elements[i].name == checkbox_name+'[]') {
					//si le premier élément n'a pas encore été trouvé
					if(firstElement == 0) { firstElement = i;  }
					lastElement = i;
				}
			} else {
					if(firstElement == 0) { firstElement = i; }
					lastElement = i;
			}
		}
	}
	
	//on regarde si le lastElement est bon, si il ne l'est pas alors on récupère la taille globale
	if(lastElement < firstElement) {
		lastElement = temp;
	}
	
	if (formulaire.elements[firstElement].checked)
	{ // si la case est cochée
		for (var i=firstElement; i <= lastElement; i++)
		{ // on coche toutes les autres
			if(formulaire.elements[i].type == 'checkbox')
				formulaire.elements[i].checked=1;
		}
	}
	else
	{
		for (var i=firstElement; i <= lastElement; i++)
		{ // on décoche tout
			if(formulaire.elements[i].type == 'checkbox')
				formulaire.elements[i].checked=0;
		}
	}
}
				 
function checkone(form_name)
{
	var m=0; // initialisation du nombre de cases cochées
	var temp = document[form_name].elements.length;
	for (var i=1; i < temp; i++)
	{ // on commence à 1 pour ne pas prendre en compte la checkbox principale
		if (document[form_name].elements[i].checked)
		{ // si la checkbox courante est cochée, on comptabilise
			m++;
		}
	}
	if (document[form_name].elements[1].checked)
	{ // si la checkbox principale est cochée, on la décoche
		document[form_name].elements[1].checked=0;
	}
	else
	{ // dans le cas contraire, on vérifie que toutes les checkbox sont cochées
		if (m == (temp-1)) document[form_name].elements[1].checked=1;
	}
}
				 
/*
function moreLess(id)
{
	var elem = document.getElementById(id);
	alert('Debug mode : '+elem+' : '+elem.html+' cc '+id);
	if(1==1)return;
	document.getElementById(id).innerHtml = html;
}*/
/*-------------- F O N C T I O N   G E T E L E M E N T S --------------------*/

function getElementsByClass(class_elem) {
	var elements = document.getElementsByTagName("*");
	var retour = new Array();
	var i;
	var j=0;
					
	for(i=0;i<elements.length;++i)
	{
		var recherche = " "+elements[i].className+" ";
		if(recherche.indexOf(" " + class_elem + " ") != -1)
		retour[j++] = elements[i];
	}
	return retour;
}

				
/*-------------- F O N C T I O N   F A D E --------------------*/
function setOpacity(obj, opacity) {
  opacity = (opacity == 100)?99.999:opacity;
  
  // IE/Win
  obj.style.filter = "alpha(opacity:"+opacity+")";
  
  // Safari<1.2, Konqueror
  obj.style.KHTMLOpacity = opacity/100;
  
  // Older Mozilla and Firefox
  obj.style.MozOpacity = opacity/100;
  
  // Safari 1.2, newer Firefox and Mozilla, CSS3
 
}

function fadeIn(objId,opacity) {
  if (document.getElementById) {
    obj = document.getElementById(objId);
    if (opacity <= 100) {
      setOpacity(obj, opacity);
      opacity += 10;
      window.setTimeout("fadeIn('"+objId+"',"+opacity+")", 100);
    }
  }
}
				
/*-------------- F O N C T I O N   C O O K I E --------------------*/

//3 fonctions de création de cookies, et lecture
function ecrire_cookie(nom, valeur, expires) {
  document.cookie=nom+"="+escape(valeur)+
  ((expires==null) ? "" : ("; expires="+expires.toGMTString()));
}

function arguments_cookie(offset){
  var endstr=document.cookie.indexOf (";", offset);
  if (endstr==-1) endstr=document.cookie.length;
  return unescape(document.cookie.substring(offset, endstr)); 
}

function lire_cookie(nom) {
  var arg=nom+"=";
  var alen=arg.length;
  var clen=document.cookie.length;
  var i=0;
  while (i<clen){
    var j=i+alen;
    if (document.cookie.substring(i, j)==arg)
	{
		var endstr=document.cookie.indexOf (";", j);
		if (endstr==-1) endstr=document.cookie.length;
		return unescape(document.cookie.substring(j, endstr)); 
	}
       //return arguments_cookies(j);
    i=document.cookie.indexOf(" ",i)+1;
    if (i==0) break;
  }
  return null; 
}

/*-------------- F O N C T I O N   I N S E R T I O N --------------------*/

function fieldInsertion(idElement,repdeb,repfin) {
  var input = document.getElementById(idElement);
  
  if(typeof(repfin) === 'undefined') repfin = '';
  
  input.focus();
  /* pour l'Explorer Internet */
  if(typeof document.selection != 'undefined') {
    /* Insertion du code de formatage */
    var range = document.selection.createRange();
    var insText = range.text;
    range.text = repdeb + insText + repfin;
    /* Ajustement de la position du curseur */
    range = document.selection.createRange();
    if (insText.length == 0) {
      range.move('character', -repfin.length);
    } else {
      range.moveStart('character', repdeb.length + insText.length + repfin.length);
    }
    range.select();
  }
  /* pour navigateurs plus récents basés sur Gecko*/
  else if(typeof input.selectionStart != 'undefined')
  {
    /* Insertion du code de formatage */
    var start = input.selectionStart;
    var end = input.selectionEnd;
    var insText = input.value.substring(start, end);
    input.value = input.value.substr(0, start) + repdeb + insText + repfin + input.value.substr(end);
    /* Ajustement de la position du curseur */
    var pos;
    if (insText.length == 0) {
      pos = start + repdeb.length;
    } else {
      pos = start + repdeb.length + insText.length + repfin.length;
    }
    input.selectionStart = pos;
    input.selectionEnd = pos;
  }
  /* pour les autres navigateurs */
  else
  {
    /* requête de la position d'insertion */
    var pos;
    var re = new RegExp('^[0-9]{0,3}$');
    while(!re.test(pos)) {
      pos = prompt("Insertion à la position (0.." + input.value.length + "):", "0");
    }
    if(pos > input.value.length) {
      pos = input.value.length;
    }
    /* Insertion du code de formatage */
    var insText = prompt("Veuillez entrer le texte à formater:");
    input.value = input.value.substr(0, pos) + repdeb + insText + repfin + input.value.substr(pos);
  }
}