//Browsercheck (needed)
function lib_bwcheck(){ 
  this.ver 	  = navigator.appVersion;
  this.agent  = navigator.userAgent;
  this.dom 	  = document.getElementById?1:0;
  this.opera5 = this.agent.indexOf("Opera 5")>-1;
  this.opera6 = this.agent.indexOf("Opera 6")>-1;
  this.opera7 = this.agent.indexOf("Opera 7")>-1;
  this.ie5 	  = (this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; 
  this.ie6 	  = (this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
  this.ie4 	  = (document.all && !this.dom && !this.opera5)?1:0;
  this.ie 	  = this.ie4||this.ie5||this.ie6;
  this.mac 	  = this.agent.indexOf("Mac")>-1;
  this.ns6 	  = (this.dom && parseInt(this.ver) >= 5) ?1:0; 
  this.ns4 	  = (document.layers && !this.dom)?true:false;
  this.bw 	  = (this.ie6||this.ie5||this.ie4||this.ns4||this.ns6||this.opera5);
  return this;
}
bw = new lib_bwcheck() //Browsercheck object

//Debug function 
function lib_message(txt){
	//alert(txt);
	return false;
}

//Lib objects
function lib_obj(obj,nest,frm){  
  if(!bw.bw) return lib_message('Old browser');
  if(!obj) return
  if(frm && top.frames.length < 2) return;
  nest = (!nest)?"":'document.'+nest+'.';
  frm = (!frm)?"":'window.parent.frames["'+frm+'"].';
  this.evnt = (bw.dom)?eval(frm+"document.getElementById(obj)"):(bw.ie4)?eval(frm+"document.all[obj]"):(bw.ns4)?eval(""+frm+""+nest+"document.layers."+obj):0;
  if(!this.evnt) return lib_message('The layer does not exist ('+obj+')'+'- \nIf your using Netscape please check the nesting of your tags!');

  this.css = (bw.dom||bw.ie4)?this.evnt.style:this.evnt;
  this.ref = (bw.dom||bw.ie4)?document:this.css.document;
  //
  this.x = parseInt(this.css.left)||this.css.pixelLeft||this.evnt.offsetLeft||0;
  this.y = parseInt(this.css.top)||this.css.pixelTop||this.evnt.offsetTop||0;
  //
  this.w = this.evnt.offsetWidth||this.css.clip.width||this.ref.width||this.css.pixelWidth||0;
  this.h = this.evnt.offsetHeight||this.css.clip.height||this.ref.height||this.css.pixelHeight||0;
  //
  this.z = this.css.zIndex;
  this.bgC = (bw.dom||bw.ie4)?this.css.backgroundColor:(bw.ns4)?this.ref.bgColor:0;

  this.c = 0; //Clip values
  if((bw.dom || bw.ie4) && this.css.clip){
  										 this.c = this.css.clip;
										 this.c = this.c.slice(5,this.c.length-1);
										 //style.clip="rect(0 300 300 0)";
										 //			   rect(t  r   b  l)
  										 this.c = this.c.split(' ');
  										 for(var i=0;i<4;i++){
					  										 this.c[i] = parseInt(this.c[i]);
					  										 }
  										 }
  this.ct = this.css.clip.top||this.c[0]||0; 
  this.cr = this.css.clip.right||this.c[1]||this.w||0;
  this.cb = this.css.clip.bottom||this.c[2]||this.h||0; 
  this.cl = this.css.clip.left||this.c[3]||0;
  this.obj = obj + "Object";
  eval(this.obj + "=this");

  //Specific create for foldoutmenu net
  this.vis = 0;
  //
  return this
}

// A unit of measure that will be added when setting the position of a layer.
var px = (bw.ns4||window.opera)?"":"px";

//
if(bw.ns4){ //NS4 resize fix.
  scrX = innerWidth;
  scrY = innerHeight;
  onresize = function(){
			 if(scrX!= innerWidth || scrY!= innerHeight){
			 history.go(0);
			 }
			 };
}

if(bw.agent.indexOf('Opera')>-1 && (bw.opera5 || bw.opera6) && bw.dom){ //Opera 5/6 resize fix.
  document.onmousemove = function(){
						 if(scrX < innerWidth-10 || scrY < innerHeight-10 || scrX > innerWidth+10 || scrY > innerHeight+10){
						 scrX = innerWidth;
						 scrY = innerHeight;
						 //Relance la fonction d'initialisation
						 initFoldout();
						 //
						 }
						 };
}
//

lib_obj.prototype.getP = function(t){
						 //t = 'x'||'y'
						 v = eval("this."+t+"");
						 return v;
						 }

lib_obj.prototype.getS = function(t){
						 //t = 'w'||'h'
						 v = eval("this."+t+"");
						 return v;
						 }

lib_obj.prototype.getC = function(t){
						 //t = 't'||'r'||'b'||'l'
						 v = eval("this.c"+t+"");
						 return v;
						 }

lib_obj.prototype.getZ = function(){
				   		 return this.z;
				   }

//Moving object to
lib_obj.prototype.moveIt = function(x,y){
  						   this.x = x;
						   this.y = y;
						   this.css.left = x;
						   this.css.top = y
						   }

//Moving object by
lib_obj.prototype.moveBy = function(x,y){
  						   this.css.left = this.x += x;
						   this.css.top = this.y += y;
						   }

//Showing object
lib_obj.prototype.showIt = function(){
						   this.css.visibility = "visible";
						   }

lib_obj.prototype.f_showIt = function(){
							 f = [];
							 f[0] = "progid:DXImageTransform.Microsoft.Fade(duration=0.5, overlap=1)"
							 f[1] = "progid:DXImageTransform.Microsoft.Barn(duration=1, orientation=horizontal, motion=in)";


								  this.css.filter = f[0];
								  this.evnt.filters[0].Apply();
								  this.css.visibility = "visible";
								  this.evnt.filters[0].Play();
						   	 }

//Hiding object
lib_obj.prototype.hideIt = function(){
						   this.css.visibility = "hidden";
						   }

//Changing backgroundcolor
lib_obj.prototype.bg = function(color){ 
					   if(bw.opera) this.css.background = color;
					   else if(bw.dom||bw.ie4) this.css.backgroundColor=color
					   else if(bw.ns4) this.css.bgColor=color  
}

//Writing content to object
lib_obj.prototype.writeIt = function(text,startHTML,endHTML){
							if(bw.ns4){
    								  if(!startHTML){
													startHTML, endHTML = "";
													}
	  								  this.ref.open("text/html"); 
    								  this.ref.write(startHTML + text + endHTML); 
    								  this.ref.close()
									  }
							else this.evnt.innerHTML=text
}


//Clipping object to
lib_obj.prototype.clipTo = function(t,r,b,l,setwidth){ 
  						   this.ct = t;
						   this.cr = r;
						   this.cb = b;
						   this.cl = l;
  						   if(bw.ns4){
    								 this.css.clip.top = t;
									 this.css.clip.right = r
    								 this.css.clip.bottom = b;
									 this.css.clip.left = l
  									 }
						   else{
    						   if(t<0) t = 0;
							   if(r<0) r = 0;
							   if(b<0) b = 0;
							   if(b<0) b = 0
    						   this.css.clip = "rect("+t+","+r+","+b+","+l+")";
							   //
							   //Actualisation pour (ie5+, ns6+, moz1+)
    						   if(setwidth){
										   this.css.pixelWidth = this.css.width = r; 
    									   this.css.pixelHeight = this.css.height = b;
										   this.w = r;
										   this.h = b

										   }
							   //
  							   }
						   }

//Clipping object by
lib_obj.prototype.clipBy = function(t,r,b,l,setwidth){ 
  						   this.clipTo(this.ct+t,this.cr+r,this.cb+b,this.cl+l,setwidth)
}

//Clip animation
lib_obj.prototype.clipIt = function(t,r,b,l,step,fn,wh){
  tstep=Math.max(Math.max(Math.abs((t-this.ct)/step),Math.abs((r-this.cr)/step)),
    Math.max(Math.abs((b-this.cb)/step),Math.abs((l-this.cl)/step)))
  if(!this.clipactive){
    this.clipactive=true; if(!wh) wh=0; if(!fn) fn=0
    this.clip(t,r,b,l,(t-this.ct)/tstep,(r-this.cr)/tstep,
      (b-this.cb)/tstep,(l-this.cl)/tstep,tstep,0, fn,wh)
  }
}
lib_obj.prototype.clip = function(t,r,b,l,ts,rs,bs,ls,tstep,astep,fn,wh){
  if(astep<tstep){
    if(wh) eval(wh); 
    astep++
    this.clipBy(ts,rs,bs,ls,1);
    setTimeout(this.obj+".clip("+t+","+r+","+b+","+l+","+ts+","+rs+","
      +bs+","+ls+","+tstep+","+astep+",'"+fn+"','"+wh+"')",50)
  }else{
    this.clipactive=false; this.clipTo(t,r,b,l,1);
    if(fn) eval(fn)
  }
}

//Slide animation
lib_obj.prototype.slideIt = function(endx,endy,inc,speed,fn,wh){
  if(!this.slideactive){
    var distx = endx - this.x;
    var disty = endy - this.y
    var num = Math.sqrt(Math.pow(distx,2)+Math.pow(disty,2))/inc
    var dx = distx/num; var dy = disty/num
    this.slideactive = 1; 
    if(!wh) wh=0; if(!fn) fn=0
    this.slide(dx,dy,endx,endy,speed,fn,wh)
    }
}
lib_obj.prototype.slide = function(dx,dy,endx,endy,speed,fn,wh) {
  if(this.slideactive&&
  (Math.floor(Math.abs(dx))<Math.floor(Math.abs(endx-this.x))|| 
    Math.floor(Math.abs(dy))<Math.floor(Math.abs(endy-this.y)))){
    this.moveBy(dx,dy); 
    if(wh) eval(wh)
    setTimeout(this.obj+".slide("+dx+","+dy+","+endx+","+endy+","+speed+",'"
    +fn+"','"+wh+"')",speed)
  }else{
    this.slideactive = 0; 
    this.moveIt(endx,endy);
    if(fn) eval(fn)
  }
}

//Circle animation ****************
lib_obj.prototype.circleIt = function(rad,ainc,a,enda,xc,yc,speed,fn) {
  if((Math.abs(ainc)<Math.abs(enda-a))) {
    a += ainc
    var x = xc + rad*Math.cos(a*Math.PI/180)
    var y = yc - rad*Math.sin(a*Math.PI/180)
    this.moveIt(x,y)
    setTimeout(this.obj+".circleIt("+rad+","+ainc+","+a+","+enda+","
      +xc+","+yc+","+speed+",'"+fn+"')",speed)
  }else if(fn&&fn!="undefined") eval(fn)
}

//Document size object
function lib_doc_size(d){ 
  this.x = 0;
  this.x2 = bw.ie && document.body.offsetWidth-20||innerWidth||0;
  this.y = 0;
  this.y2 = bw.ie && document.body.offsetHeight-5||innerHeight||0;
  if(!this.x2||!this.y2) return message('Document has no width or height') 
  this.x50 = this.x2/2;
  this.y50 = this.y2/2;
  //
  if(d != 0){
  r = [];
  r['w'] = this.x2;
  r['h'] = this.y2;
  return r
  }
  else return this;
  //
}

//--- Drag drop functions start
dd_is_active=0; dd_obj=0; dd_mobj=0
function lib_dd(){
  dd_is_active=1
  if(bw.ns4){
    document.captureEvents(Event.MOUSEMOVE|Event.MOUSEDOWN|Event.MOUSEUP)
  }
  document.onmousemove=lib_dd_move;
  document.onmousedown=lib_dd_down
  document.onmouseup=lib_dd_up
}
lib_obj.prototype.dragdrop = function(obj){
  if(!dd_is_active) lib_dd()
  this.evnt.onmouseover=new Function("lib_dd_over("+this.obj+")")
  this.evnt.onmouseout=new Function("dd_mobj=0")
  if(obj) this.ddobj=obj
}
lib_obj.prototype.nodragdrop = function(){
  this.evnt.onmouseover=""; this.evnt.onmouseout=""
  dd_obj=0; dd_mobj=0
}
//Drag drop event functions
function lib_dd_over(obj){dd_mobj=obj}
function lib_dd_up(e){dd_obj=0}
function lib_dd_down(e){ //Mousedown
  if(dd_mobj){
    x=(bw.ns4 || bw.ns6)?e.pageX:event.x||event.clientX
    y=(bw.ns4 || bw.ns6)?e.pageY:event.y||event.clientY
    dd_obj=dd_mobj
    dd_obj.clX=x-dd_obj.x; 
    dd_obj.clY=y-dd_obj.y
  }
}
function lib_dd_move(e,y,rresize){ //Mousemove
  x=(bw.ns4 || bw.ns6)?e.pageX:event.x||event.clientX
  y=(bw.ns4 || bw.ns6)?e.pageY:event.y||event.clientY
  if(dd_obj){
    nx=x-dd_obj.clX; ny=y-dd_obj.clY
    if(dd_obj.ddobj) dd_obj.ddobj.moveIt(nx,ny)
    else dd_obj.moveIt(nx,ny)
  }
  if(!bw.ns4) return false      
}
//--- Drag drop functions end

function getPageOffsetLeft(el) {
  var x;
  // Return the x coordinate of an element relative to the page.
  x = el.offsetLeft;
  if (el.offsetParent != null) x += getPageOffsetLeft(el.offsetParent);
  return x;
}

function getPageOffsetTop(el) {
  var y;
  // Return the x coordinate of an element relative to the page.
  y = el.offsetTop;
  if(el.offsetParent != null){
							 y += getPageOffsetTop(el.offsetParent);
							 }
  return y;
}


function preload(imgObj,imgSrc) {
	if (document.images) {
		eval(imgObj+' = new Image()')
		eval(imgObj+'.src = "'+imgSrc+'"')
	}
}
function changeImage(layer,imgName,imgObj) {
	if(document.images){
	if(document.layers && (layer != null && layer != "undefined")) eval('document.'+layer+'.document.images["'+imgName+'"].src = '+imgObj+'.src');
	else document.images[imgName].src = eval(imgObj+".src");
	}
}

// --- PosDyna
var winSize;
var actualSize;

function checkSize(){
  var actualSize = lib_doc_size(1);
  if((winSize['w'] != actualSize['w']) || (winSize['h'] != actualSize['h'])){
  winSize['w'] = actualSize['w'];
  winSize['h'] = actualSize['h'];
  posObj();
  }
  setTimeout("checkSize()",100);
}

function posObj(){
  //Positionnement des deux colonnes
  oCont[0].css.left = (winSize['w']/2) - 390 + px; 
  oCont[1].css.left = (winSize['w']/2) + (390 - 148) + px; for(h=0;h<2;h++) oCont[h].css.top = 87 + px

  // Positionnement des Bulles d'aide
  if(window.c_h){
  	el = document.images['pos_help']
  	objHelp.moveIt(getPageOffsetLeft(el) - 191,getPageOffsetTop(el) + 10)
  	if(h_vis == 1){
		objHelp.hideIt()
		h_vis = 0;
  	}
  }
  //

  //Positionnement des calques de la rubrique "Fiche offre d'emploi"
  if(window.doc_st){
  //Top
  for(i=0;i<num_niv;i++) eval("obj_t"+i+".moveIt("+ ((winSize['w']/2) - 219) +","+ ((window.pos_top)?pos_top:166) +")");
  //Sub
  for(i=0;i<num_niv;i++) eval("obj_t"+i+"_.moveIt("+ ((winSize['w']/2) - 219) +","+ ((window.pos_top)?pos_top:183) +")");
  }
  //
}

// --- PosDyna

// --- Scrollablearea
var speed = 40;
var loop, timer; 
var scroll_H = 11
lib_obj.prototype.MoveAreaDown = function(move){
									//Attention la valeur scroll_H était au préalable à 0
								 	if(this.y >- this.h + objContainer.h - scroll_H){ 
    							  	this.moveIt(0,this.y-move) 
    							  	if(loop) setTimeout(this.obj+".MoveAreaDown("+move+")",speed); 
								  	} 
								 }

lib_obj.prototype.MoveAreaUp = function(move){
									//Attention la valeur 11 était au préalable à 0
							   		if(this.y < scroll_H){ 
									this.moveIt(0,this.y-move) 
    						   		if(loop) setTimeout(this.obj+".MoveAreaUp("+move+")",speed); 
									} 
							   } 
 
function PerformScroll(speed){ 
	if(initialised){ 
	loop = true; 
	if(speed>0) objScroller.MoveAreaDown(speed) 
	else objScroller.MoveAreaUp(speed) 
	} 
} 
 
function CeaseScroll(){
    loop = false 
    if(timer) clearTimeout(timer);
} 

var initialised;
 
function initialiseScrollableArea(){ 
    objContainer = new lib_obj('divContainer');
    objScroller  = new lib_obj('divContent','layers.divCont1.document.layers.divTop1_0.document.layers.divSub1_0.document.layers.divContainer');
	if(!objContainer.ref) return;
	//Attention la valeur scroll_H était au préalable à 0
    objScroller.moveIt(0,scroll_H) 
    initialised = true;
	// 
}
// --- Scrollablearea





