
addLoadEvent( function() {flash()} )

// Multiple onload function created by: Simon Willison
// http://simonwillison.net/2004/May/26/addLoadEvent/
// usage : addLoadEvent( function() {fct_name()} )
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

// Clignottement des pavés bleus
var flashID=0,maxFlash=0
function flash() {
	if(!maxFlash) do { maxFlash++ } while(document.getElementById('carre'+maxFlash))
	if(flashID) {
		var obj=document.getElementById('carre'+flashID)
		obj.style.filter='alpha(opacity=100)'
		obj.style.opacity=1
	}
	flashID++
	if(flashID==maxFlash) flashID=1
	var obj=document.getElementById('carre'+flashID)
	obj.style.filter='alpha(opacity=70)'
	obj.style.opacity=.7
	setTimeout('flash()',150)
}


// fade in/out
// p :	transparence init:transparence finale:step (delta transparence sur 50 msec)
// t :	référence vers l'objet où se trouve btn_id : rien = self, 1=top
if(!x_IDmem) var x_IDmem=new Array
if(!x_status) var x_status=new Array
function x_fade(btn_id,p,t,alpha) {
	if(typeof(t)=='undefined') var t=''
	if(t=='') var btn=document.getElementById(btn_id)
	else var btn=top.document.getElementById(btn_id)
	if(typeof(alpha)=='undefined' && x_IDmem[btn_id]) clearTimeout(x_IDmem[btn_id])
	if(!p && p!='0') var px=new Array; else px=p.split(':')
	if(!px[0] && px[0]!='0') px[0]=100	// alpha de départ
	if(!px[1]) px[1]=50		// alpha de fin
	if(!px[2]) px[2]=10		// step
	px[2]=Math.abs(parseInt(px[2]))
	px[0]=parseInt(px[0]);px[1]=parseInt(px[1])
	if(!alpha && alpha!='0') var alpha=px[0]	// premier passage
	if(px[0]>px[1]) px[2]=-px[2]
	if(btn) {
		if(btn.style.opacity!='') {
			alpha0=btn.style.opacity*100	// IE6/7 : opacity est positionné ci-dessous quel que soit le navigateur
			if((px[2]<0 && alpha0<=px[1]) || (px[2]>0 && alpha0>=px[1])) alpha=px[1]
			else if((px[2]<0 && alpha0<alpha) || (px[2]>0 && alpha0>alpha)) alpha=alpha0
		}
		btn.style.filter=alpha==100? '' : 'alpha(opacity='+alpha+')'
		btn.style.opacity=alpha/100
		btn.style.display='inline'
		var end=px[2]<0 ? alpha<=px[1] : alpha>=px[1]
		if(!end) {
			alpha+=px[2]
			if((px[2]<0 && alpha<=px[1]) || (px[2]>0 && alpha>=px[1])) alpha=px[1]
			x_IDmem[btn_id]=setTimeout('x_fade("' + btn_id + '","'
			+ p + '","'+t+'",'+alpha+')'
			, 50)
		}
		else {
			x_status[btn_id]=alpha? 1:0
			if(alpha==0) btn.style.display='none'
		}
	}
}


// scroll progressif vers l'objet id, ou vers début de page si id=_top
var scroll_doc1
function scroll_to_object(id) {
	// compensation d'offset pour FF/Safari/Opera, et IE (dépend du design de la page)
	if(typeof(comp)=='undefined') var comp=0;
	if(typeof(iecomp)=='undefined') var iecomp=170;

	var target=-1
	if(id=='_top') target=0
	else {
		var x=document.getElementById(id)
		if(x) {
			target=x.offsetTop-5
			if(target<0) target=0
			else target+=comp+(document.all? iecomp : 0)
		}
	}
	if(target>-1) {
		var doc=document.compatMode && document.compatMode=="BackCompat" ? document.body : document.documentElement
		scroll_doc1=navigator.userAgent.toLowerCase().indexOf('safari')>-1? document.body : doc	// Forcage obligatoire avec 3.1 (525.13)
		var offset=scroll_doc1.scrollTop
		var down=target>=offset
		var hwin=doc.clientHeight	// hauteur de la fenêtre
		var stepdiv=2000/hwin
		if(down) {
			// scroll vers le bas : si la cible est hors de portée on s'arrête au scroll maxi possible
			// nécessaire pour avoir l'effet de ralentisement
			var max_target=Math.max(scroll_doc1.scrollHeight,doc.clientHeight)-doc.clientHeight	// scroll maxi possible
			target=Math.min(max_target,target)
		}
		var distance=Math.abs(target-offset),step=1, old_offset=offset-1
		setTimeout('do_scroll('+target+','
			+distance+','+old_offset+','+offset+','+stepdiv+','+down+')',30)	// IE6/7 : blocage du scroll pendant 1/2 sec après le premier
																				// Avec ce timeout, le premier arrive APRES le blocage. Pas top, mais mieux
	}
}

function do_scroll(target,distance,old_offset,offset,stepdiv,down) {
	if(distance) {
		old_offset=offset
		var step=Math.round(distance/stepdiv)
		if(step<1) step=1
		offset+=down? step : -step
		self.scrollTo(0,offset)
		offset=scroll_doc1.scrollTop
		distance=Math.abs(target-offset)
		if(distance && old_offset!=offset)
			setTimeout('do_scroll('+target+','+distance+','+old_offset+','+offset+','+stepdiv+','+down+')',30)
	}
}

