//Scott Andrew - ajouter et supprimer  des gestionnaires d'évènement à des gestionnaire existant
function addEvent(obj, evType, fn){
 if (obj.addEventListener){
   obj.addEventListener(evType, fn, false);
   return true;
 } else if (obj.attachEvent){
   var r = obj.attachEvent("on"+evType, fn);
   return r;
 } else {
   return false;
 }
}
function removeEvent(obj, evType, fn){
  if (obj.removeEventListener){
    obj.removeEventListener(evType, fn, false);
    return true;
  } else if (obj.detachEvent){
    var r = obj.detachEvent("on"+evType, fn);
    return r;
  } else {
    alert("Handler could not be removed");
  }
}

//XMLHttpREquest - tout navigateur (selon wikipedia)
function createXhrObject()
{
    if (window.XMLHttpRequest)
        return new XMLHttpRequest();

    if (window.ActiveXObject)
    {
        var names = [
            "Msxml2.XMLHTTP.6.0",
            "Msxml2.XMLHTTP.3.0",
            "Msxml2.XMLHTTP",
            "Microsoft.XMLHTTP"
        ];
        for(var i in names)
        {
            try{ return new ActiveXObject(names[i]); }
            catch(e){}
        }
    }
    window.alert("Votre navigateur ne prend pas en charge l'objet XMLHTTPRequest.");
    return null; // non supporté
}



//On eleve les champs select pour IE5 et 6 (bug d'affichage avec opacity) (Michel Deboom)
function cgselect(v) {
	var elem=document.getElementsByTagName('select'),
		ie=navigator.appVersion.substr(17,4)=="MSIE"?1:0,
		ver = navigator.appVersion.substr(17,6);
	if(ver=="MSIE 5" || ver=="MSIE 6") { //ie5 ou ie6/win
		for(i=0;i<elem.length;i++)elem[i].style.visibility=v;
	}
}
function cacherselect() { cgselect('hidden'); }
function voirselect() { cgselect('visible'); }


//Centre Un objet
function recadre() {
	//Charge le cadre en surimpression
	var	gdim = document.getElementById('pop');
	var	arp = document.getElementById('arplan');
	//recherche d'info (Michel Deboom)
	// ie6 ou ie7/win suivant doctype
	var db=!document.documentElement.clientWidth?document.body:document.documentElement,
		// infos sur la fenêtre du navigateur
		sx=window.pageXOffset?window.pageXOffset:db.scrollLeft,		// scroll h
		sy=window.pageYOffset?window.pageYOffset:db.scrollTop, 		// scroll v
		fx=window.innerWidth?window.innerWidth:db.clientWidth, 		// l fenêtre
		fy=window.innerHeight?window.innerHeight:db.clientHeight,	// h fenêtre
		// centre l'image dans la fenêtre sans la tronquer
		gdimx=gdim.offsetWidth>fx?sx:fx/2-gdim.offsetWidth/2+sx,
		gdimy=gdim.offsetHeight>fy?sy:fy/2-gdim.offsetHeight/2+sy;
	//cadre en centré
	gdim.style.left=gdimx+'px';
	gdim.style.top=gdimy+'px';
	//l'arrière plan prend toute la page
	arp.style.width=db.scrollWidth+'px';
	arp.style.height=db.scrollHeight+'px';
}

//Affiche la fenètre en transparence
function cherche_et_affiche_fenetre(btn) {
	//on cherche
	var url;
	if (btn=="archives") url='/incl/lstarchives.php';
	else if  (btn=="ctags") url='/incl/lstctags.php';
	else return false;

	//affiche le loader
	affiche_loader();
	//chargement de l'information à afficher
	xhr = createXhrObject();
	xhr.open('GET', url, true);  //false : mode synchrone, on attend la réponse
	xhr.onreadystatechange = affiche_fenetre;
	xhr.send(null);
}

//Arrière plan + Loader
function affiche_loader() {
	//Suppression des champs qui ne devrait pas exister
	if(document.getElementById('arplan')) {
		var em=document.getElementById('arplan');
		em.parentNode.removeChild(em);
	}
	if(document.getElementById('pop')) {
		var em=document.getElementById('pop');
		em.parentNode.removeChild(em);
	}
	//Création des champs
	var arp=document.createElement('p');
	arp.setAttribute('id', 'arplan');
	arp.appendChild(document.createTextNode(' '));
	var p=document.createElement('div');
	p.setAttribute('id', 'pop');
	var img=document.createElement('img');
	img.setAttribute('id', 'imgloaderajax');
	img.setAttribute('width', '32');
	img.setAttribute('height', '32');
	img.setAttribute('src', '/incl/img/ajax-loader.gif');
	p.appendChild(img);

	//affichage
	cgselect('hidden'); //Cache les champs select pour IE 5 & 6
	document.body.appendChild(arp);
	document.body.appendChild(p);
	recadre();

	//On attache les évènements associés
	addEvent(window,"resize",recadre);
	addEvent(arp,"mousedown",cache_fenetre); //fermer
	addEvent(document,"keydown",kpres); //gestion clavier
}

//La fenètre, une fois chargé
function affiche_fenetre() {
	//On attend que la réponse soit disponible
	if(xhr.readyState  == 4) {
		//Le résultat est affiché dans le cadre pop
		var	fen = document.getElementById('pop');
		var	img = document.getElementById('imgloaderajax');
		//supprime l'image
		fen.removeChild(img);
		//ajoute la réponse
		fen.innerHTML = xhr.responseText;
		//Adapte le cadre pop
		recadre();
	}
}
function kpres(e) {
	var e=e||w.event,
	tch=e.which?e.which:e.keyCode;
	if(tch==27||tch==13){cache_fenetre();}// fermer avec la touche "Echap" ou ENTER
}

function cache_fenetre() {
	var arp=document.getElementById('arplan');
	//On supprime les évènements associé
	removeEvent(window,"resize",recadre);
	removeEvent(arp,"mousedown",cache_fenetre);
	removeEvent(document,"keydown",kpres);

	//On supprime le code html associé
	arp.parentNode.removeChild(arp);
	var em=document.getElementById('pop');
	em.parentNode.removeChild(em);

	//On rend visible les balises select sous IE 5/6
	cgselect('visible');
}

//fonction globale pour ajouter les évènements
//(vérifie que le DOM  est implémenté
function chargement() {
	if(document.getElementById && document.createTextNode) {
		//Modifie le bouton Archives pour lui insérer le JS
		var btn=document.getElementById('btnarchives');
		btn.setAttribute('href','#');
		btn.onclick=function(){cherche_et_affiche_fenetre('archives');return false;};

		//Modifie le bouton Catégories pour lui insérer le JS
		var btn=document.getElementById('btncategories');
		btn.setAttribute('href','#');
		btn.onclick=function(){cherche_et_affiche_fenetre('ctags');return false;};
	}
}

//chargement du script
addEvent(window,"load",chargement);

//*********************************Fonctions Jquery**********************************************//
$(function(){

  //Effet rolover sur les onglets "sites"
  $('#s_jeunes').mouseover(function(){
  	//affiche l'onglet enfoncé
  	$('#sites').css('background-position', '0 -25px');
  });
  $('#s_jeunes').mouseout (function(){
  	//affiche l'onglet enfoncé
  	$('#sites').css('background-position', '0 0');
  });

  $('#s_archive').mouseover(function(){
  	//affiche l'onglet enfoncé
  	$('#sites').css('background-position', '0 -50px');
  });
  $('#s_archive').mouseout (function(){
  	//affiche l'onglet enfoncé
  	$('#sites').css('background-position', '0 0');
  });

  $('#s_galerie').mouseover(function(){
  	//affiche l'onglet enfoncé
  	$('#sites').css('background-position', '0 -75px');
  });
  $('#s_galerie').mouseout (function(){
  	//affiche l'onglet enfoncé
  	$('#sites').css('background-position', '0 0');
  });


});
