// Scripts génériques du site


// Interface Flash
function getFlashMovie(movieName) {
	return navigator.appName.indexOf("Microsoft") != -1 ? window[movieName] : document[movieName]
}

function formSend(what) {
	getFlashMovie("flash_accueil").sendVarToFlash(what)
	return false
}    

var menu_actif=''
function active(objID,what) {
	if(what==2 && objID!=menu_actif) {
		// clic sur un menu -> look actif
		if(menu_actif) x_fade(menu_actif,'100:1:25')
		x_fade(objID,'1:100:25')
		menu_actif=objID
	}
	else if(objID!=menu_actif) {
		// mouseover (1) / mouseout (0)
		if(what==1) x_fade(objID,'1:100:25')
		else x_fade(objID,'100:1:25')
	}
	return false
}


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


// Fade in/out d'un objet
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(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 x_scroll_doc1
function x_scroll_to_object(id) {
	var comp=200, iecomp=230
	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
 x_scroll_doc1=navigator.userAgent.toLowerCase().indexOf('safari')>-1? document.body : doc // Forcage obligatoire avec 3.1 (525.13)
 var offset=x_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(x_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
 x_do_scroll(target,distance,old_offset,offset,stepdiv,down)
 }
}

function x_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=x_scroll_doc1.scrollTop
 distance=Math.abs(target-offset)
 if(distance && old_offset!=offset)
 setTimeout('x_do_scroll('+target+','+distance+','+old_offset+','+offset+','+stepdiv+','+down+')',30)
 }
} 
