/*
* Retourne la grandeur du viewport (body) permet d'ajuster le
*  positionnement de certains items.
*/
function get_document_height_and_width() {
	var x,y;
	if (self.innerHeight) // all except Explorer
	{
		x = self.innerWidth;
		y = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight)
		// Explorer 6 Strict Mode
	{
		x = document.documentElement.clientWidth;
		y = document.documentElement.clientHeight;
	}
	else if (document.body) // other Explorers
	{
		x = document.body.clientWidth;
		y = document.body.clientHeight;
	}

	return { 'h': y, 'w': x };
}

/*
* Permet d'afficher le resume le cacher, nous allons ajouter une propriete au
* div du resume pour conserver le status d'affichage.
*/
function toggle_abstract() {
	var ref = $('abstract');
	if(ref.is_hiding == undefined || ref.is_hiding == false) {
		new Effect.SlideUp('abstract');
		new Effect.Fade('abstract');
		ref.is_hiding = true;
		
		$('hide-abstract').innerHTML = "Afficher le r&eacute;sum&eacute;";
	} else {
		new Effect.SlideDown('abstract');
		new Effect.Appear('abstract');
		ref.is_hiding = false;
		
		$('hide-abstract').innerHTML = "Masquer le r&eacute;sum&eacute;";
	}
}

function toggle_abstract2() {
    var alldivs = document.getElementsByTagName("div");
    var show = document.getElementById("show-abstract");
    var hide = document.getElementById("hide-abstract");
    /* NB: "show" s'affiche quand les abstracts sont caches,
       "hide" s'affiche quand les abstracts sont visibles */
    for (var i = 0; i < alldivs.length ; ++i) {
        if (alldivs[i].className == 'resumes')
            {
                /* de cache vers visible */
                if (alldivs[i].style.display == 'none'){
                    alldivs[i].style.display = 'block';
                    show.style.display = 'none';
                    hide.style.display = 'block';
                }
                else if (alldivs[i].style.display == 'block') {
                    /* de visible vers cache */
                    alldivs[i].style.display = 'none';
                    show.style.display = 'block';
                    hide.style.display = 'none';
                }
                /* on suppose que le resume est cache (necessaire
                 * bizarrement, parce que la feuille de style ne fixe
                 * pas cette propriete. Le dernier bloc ici suppose
                 * donc que le resume est cache au debut. Il faudrait
                 * changer si jamais les resumes etait visible au
                 * chargement de la page.*/
                else {
                    alldivs[i].style.display = 'block';
                    show.style.display = 'none';
                    hide.style.display = 'block';
                }
            }
    }
}


function toggle_abstract3() {
    var resumes = document.getElementById("lesresumes");
    var show = document.getElementById("show-abstract");
    var hide = document.getElementById("hide-abstract");
 

    /* Pour les textes */
    var cacher = /^cacher/;
    var montrer = /^montrer/;

    /*Pour les controles*/
    var cacherCtl = /^hidden/;
    var montrerCtl = /^visible/;

    if (resumes.className == "cacher-resumes") {
        resumes.className = resumes.className.replace(cacher, "montrer");
        show.className = show.className.replace(montrerCtl, "hidden");
        hide.className = hide.className.replace(cacherCtl, "visible");
    }
    else {
        resumes.className = resumes.className.replace(montrer, "cacher");
        show.className = show.className.replace(cacherCtl, "visible");
        hide.className = hide.className.replace(montrerCtl, "hidden");
    }
}




/*
* permet d'ajouter le symbol § aux identifiants des paragraphes.
* Le tout est mis dans un observer du load du document.
* 
* sinon faudrait changer comment lodel transformer les document word en xhtml. (?? ca doit etre plutot dans le modele editorial qu'il faudrait regarder)
*/
function add_symbols_to_paragraphs() {
	var elements_para = document.getElementsByClassName('paranumber');

	// Utilisation de l'iterateur 
	// des elements venant de prototype.
	elements_para.each(
		function(param) {
			param.innerHTML = "§" + param.innerHTML;
		}
	);
};


/*
* Redimensionne le div #page pour qu'il ait la grandeur minimum requis
* pour occuper toutes la page entiere.
*/
function resize_page() {
	h_w =  get_document_height_and_width();
	
	if($('page') && Element.getHeight("page") <= h_w.h ) {
		console.log('adjust.');
		$('page').style.height = h_w.h + "px";
		$('footer').style.position = "absolute";
		$('footer').style.bottom = "0px"; 
    }
}


// On ajoute les evenements aux documents
Event.observe(window, 'load', resize_page, false);
Event.observe(window, 'resize', resize_page, false);
Event.observe(window, 'load', add_symbols_to_paragraphs, false);
