// JavaScript Document
// ajouter un evenement au gestionnaire sans ecraser les precedents...
function addEvent(obj, type, fn)
{
	if(obj.attachEvent)
	{
		var funk = type+fn;
		var funke = "e"+funk;
		obj[funke] = fn;
		obj[funk] = function(){obj[funke](window.event);}
		obj.attachEvent("on"+type, obj[funk]);
	}
	else
	{
		obj.addEventListener(type, fn, false);
	}
}

// ... et son oppose
function removeEvent(obj, type, fn)
{
	var funk = type+fn;
	if(obj.detachEvent)
	{
		obj.detachEvent("on"+type, obj[funk]);
		obj[funk] = null;
	}
	else
	{
		obj.removeEventListener(type, fn, false);
	}
}

// deroule et enroule les description de documents
function doc_deroul(e)
{
	var form_doc = document.getElementById('form_doc');
	var targ;
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
	targ = targ.parentNode;
	var numOK = targ.id.match(/[0-9]+/);
	if(form_doc)
	{
		var docs = form_doc.getElementsByTagName('span');
		var nombre = docs.length;
		for(var i = 0 ; i < nombre; i++)
		{
			if(num = docs[i].id.match(/span_doc_([0-9]+)/))
			{
				if(reroul = document.getElementById('desc_doc_'+num[1]))
				{
					if(num[1] == numOK && reroul.style.display != 'block')
					{
						reroul.style.display = 'block'; // il faut afficher le bloc avant de le retailler, sinon IE ne prend pas en compte la taille de l'image la premiere fois (=0)
						if(img_doc = document.getElementById('img_doc_'+num[1]))
						{
	 						if(reroul.style.height == ""){ reroul.style.height = (reroul.offsetHeight - (img_doc.complete?10:0)) +'px';} // bug d'IE qui considere le flottant quand il calcule la taille, donc on remet tout le monde d'accord !
							if(img_doc.complete) // si l'image est chargee completment en mémoire...
							{
								if(reroul.offsetHeight < img_doc.height + 10) // on compare les tailles...
								{
									reroul.style.height = (img_doc.height + 10)+'px'; // et on redimensionne le cadre de la description si il est trop petit, ...
								}
							}
							else // sinon on appelle a un rythme regulier une fonction qui verifie que l'image est complete et, le cas echeant applique la meme methode que si dessus
							{
								try{clearInterval(test_img);} catch(e){}
								test_img = setInterval("test_image('"+reroul.id+"','"+img_doc.id+"')",50);
							}
						}
					}
					else
					{
						reroul.style.display = 'none';
					}
				}
			}
		}
	}
}
function test_image(reroul_,img_doc_)
{
	if((reroul_ = document.getElementById(reroul_)) && (img_doc_ = document.getElementById(img_doc_)))
	{
		if(img_doc_.complete)
		{
			if((reroul_.offsetHeight < img_doc_.height + 10))
			{	reroul_.style.height = (img_doc_.height + 10)+'px';}
			clearInterval(test_img);
		}
	}
}

function aff_eff_env_ami()
{
	if(elem = document.getElementById("cont_env_ami"))
	{
		if(env_ami_displayed)
		{
			elem.style.display = "none";
			env_ami_displayed = false;
		}
		else
		{
			elem.style.display = "block";
			env_ami_displayed = true;
		}
	}
}


function doc_coche(e)
{
	var targ;
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
	targ = targ.parentNode;
	var numOK = targ.id.match(/[0-9]+/);
	if(cocheme = document.getElementById('check_doc_'+numOK))
	{
		cocheme.checked = !cocheme.checked;
	}
}

// initialise les evenements
function initComportments()
{
	var form_doc = document.getElementById('form_doc');
	if(form_doc)
	{
		var docs = form_doc.getElementsByTagName('span');
		var nombre = docs.length;
		for(var i = 0 ; i < nombre; i++)
		{
			if(docs[i].id.match(/span_doc_[0-9]+/))
			{
				docs[i].onclick = doc_deroul;
			}
		}
		var titres = form_doc.getElementsByTagName('h2');
		var nombre = titres.length;
		for(var i = 0 ; i < nombre; i++)
		{
			if(titres[i].id.match(/titre_doc_[0-9]+/))
			{
				titres[i].onclick = doc_coche;
			}
		}
	}

	if(elem = document.getElementById("envami"))
	{
		elem.onclick = aff_eff_env_ami;
	}
	if(elem = document.getElementById("close_env"))
	{
		elem.onclick = aff_eff_env_ami;
	}

	if(defil = document.getElementById('actu_defil'))
	{
		addEvent(document.getElementById('actu_defil'), 'mouseover', stop_defil);
		addEvent(document.getElementById('actu_defil'), 'mouseout', start_defil);
		defil.style.top = defil.offsetTop+'px';
		start_defil();
	}
	

}

function move_actu()
{
	defil = document.getElementById('actu_defil');
	defil.style.top = (parseInt(defil.style.top) - 1)+'px';
	if(parseInt(defil.style.top) < 0-defil.offsetHeight) defil.style.top = "500px";
}

function start_defil()
{
	timer = setInterval("move_actu()",30);
}

function stop_defil()
{
	clearInterval(timer);
}

var env_ami_displayed = false;
addEvent(window, 'load', initComportments);
