//ajoute un événement à un élément donné
//par exemple...
//addEvent(window, 'load', POINTER_TO_FUNCTION);
function addEvent (element, type, handler) {
	if (element.addEventListener) {
		element.addEventListener(type, handler, false);
	} else {
		// assigner à chaque événement un ID unique
		if (!handler.$$guid) handler.$$guid = guid++;
		// créer pour l'élément un hash table des types d'événement
		if (!element.events) element.events = {};
		// créer pour chaque élément/ paires d'événements, un hash table de gestionnaires d'événements
		var handlers = element.events[type];
		if (!handlers) {
			handlers = element.events[type] = {};
			// enregistre le gestionnaire d'événement existant(s'il y en a un)
			if (element["on" + type]) {
				handlers[0] = element["on" + type];
			}
		}
		// enregistre le gestionnaire d'événement dans le hash table
		handlers[handler.$$guid] = handler;
		// assigne un gestionnaire d'événement global pour faire tout le travail
		element["on" + type] = handleEvent;
	}
};
// un compteur pour créer les ID uniques
var guid = 1;
function removeEvent(element, type, handler) {
	if (element.removeEventListener) {
		element.removeEventListener(type, handler, false);
	}else{
		// détruire le gestionnaire d'événement du hash table
		if (element.events && element.events[type]) {
			delete element.events[type][handler.$$guid];
		}
	}
};
function handleEvent (event) {
	var returnValue = true;
	// attrape l'objet événement (IE utilise un object événement global)
	event = event || fixEvent(((this.ownerDocument || this.document || this).parentWindow || window).event);
	// obtient une référence au hash table du gestionnaire d'événement
	var handlers = this.events[event.type];
	// exécute chaque gestionnaire d'événement
	for (var i in handlers) {
		this.$$handleEvent = handlers[i];
		if (this.$$handleEvent(event) === false) {
			returnValue = false;
		}
	}
	return returnValue;
};
function fixEvent(event) {
	// ajoute la méthode standard d'événement du W3C
	event.preventDefault = preventDefault;
	event.stopPropagation = stopPropagation;
	return event;
};
function preventDefault() {
	this.returnValue = false;
};
function stopPropagation() {
	this.cancelBubble = true;
};

//compatibilité premier_enfant pour les opérations DOM
function is_all_ws(nod){
  // Utilisation ECMA-262 Edition 3 String et fonctionnalités RegExp
  return !(/[^\t\n\r ]/.test(nod.data));
};
function is_ignorable( nod ){
  return ( nod.nodeType == 8) || // Un noeud de commentaire
         ( (nod.nodeType == 3) && is_all_ws(nod) ); // un noeud texte, tout ws
};

function first_child(par){
  var res=par.firstChild;
  while (res) {
    if (!is_ignorable(res)) return res;
    res = res.nextSibling;
  }
  return null;
};
function Trim(chaine){
	return(chaine.replace(/^\s+/,'').replace(/\s+$/,''));
};

// Taille du texte 
var currentStyleSheet = 'regulier';

function toggleTextSize()
{  
if(currentStyleSheet == 'regulier')
  {
    setActiveStyleSheet('large');
  }
  else
  {
    setActiveStyleSheet('regulier');
  }
}

function setStyleSheetSize()
{
  currentStyleSheet = readCookie('currentStyleSheet');
  if(currentStyleSheet == null)
  {
    currentStyleSheet = 'regulier';
  }
  setActiveStyleSheet(currentStyleSheet);
}

function setActiveStyleSheet(title)
{
  var i, a, main;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
      a.disabled = true;
      if(a.getAttribute("title") == title)
      {
        a.disabled = false;
        createCookie('currentStyleSheet', title);
        currentStyleSheet = title;
      }
    }
  }

}

function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

window.onload = function(e) {
  setStyleSheetSize();
}

