function MM_swapImgRestore() {
	//v3.0
	var i, x, a = document.MM_sr;
	for (i=0; a && i<a.length && (x=a[i]) && x.oSrc; i++) {
		x.src = x.oSrc;
	}
}
function MM_preloadImages() {
	//v3.0
	var d = document;
	if (d.images) {
		if (!d.MM_p) {
			d.MM_p = new Array();
		}
		var i, j = d.MM_p.length, a = MM_preloadImages.arguments;
		for (i=0; i<a.length; i++) {
			if (a[i].indexOf("#") != 0) {
				d.MM_p[j] = new Image();
				d.MM_p[j++].src = a[i];
			}
		}
	}
}
function MM_findObj(n, d) {
	//v4.01
	var p, i, x;
	if (!d) {
		d = document;
	}
	if ((p=n.indexOf("?"))>0 && parent.frames.length) {
		d = parent.frames[n.substring(p+1)].document;
		n = n.substring(0, p);
	}
	if (!(x=d[n]) && d.all) {
		x = d.all[n];
	}
	for (i=0; !x && i<d.forms.length; i++) {
		x = d.forms[i][n];
	}
	for (i=0; !x && d.layers && i<d.layers.length; i++) {
		x = MM_findObj(n, d.layers[i].document);
	}
	if (!x && d.getElementById) {
		x = d.getElementById(n);
	}
	return x;
}
function MM_swapImage() {
	//v3.0
	var i, j = 0, x, a = MM_swapImage.arguments;
	document.MM_sr = new Array();
	for (i=0; i<(a.length-2); i += 3) {
		if ((x=MM_findObj(a[i])) != null) {
			document.MM_sr[j++] = x;
			if (!x.oSrc) {
				x.oSrc = x.src;
			}
			x.src = a[i+2];
		}
	}
}
function getElementsByBaseTagClass(base, tag, className) {
	var classPat = new RegExp('\\b'+className+'\\b');
	var nodes = base.getElementsByTagName(tag);
	var matching = [];
	for (var i = 0; i<nodes.length; i++) {
		if (classPat.test(nodes[i].className)) {
			matching.push(nodes[i]);
		}
	}
	return matching;
}
//*****************************************************************************
// Copyright 2001 by Mike Hall.
// See http://www.brainjar.com for terms of use.
//*****************************************************************************
// Determine browser and version.
function Browser() {
	var ua, s, i;
	this.isIE = false;
	// Internet Explorer
	this.isNS = false;
	// Netscape
	this.version = null;
	ua = navigator.userAgent;
	s = "MSIE";
	if ((i=ua.indexOf(s))>=0) {
		this.isIE = true;
		this.version = parseFloat(ua.substr(i+s.length));
		return;
	}
	s = "Netscape6/";
	if ((i=ua.indexOf(s))>=0) {
		this.isNS = true;
		this.version = parseFloat(ua.substr(i+s.length));
		return;
	}
	// Treat any other "Gecko" browser as NS 6.1. 
	s = "Gecko";
	if ((i=ua.indexOf(s))>=0) {
		this.isNS = true;
		this.version = 6.1;
		return;
	}
}
var browser = new Browser();
//----------------------------------------------------------------------------
// Class-related utility functions.
//----------------------------------------------------------------------------
function hasClass(obj, cName) {
	return new RegExp('\\b'+cName+'\\b').test(obj.className);
}
function addClass(obj, cName) {
	if (!hasClass(obj, cName)) {
		obj.className += obj.className ? ' '+cName : cName;
	}
	return true;
}
function removeClass(obj, cName) {
	if (!hasClass(obj, cName)) {
		return false;
	}
	var rep = obj.className.match(' '+cName) ? ' '+cName : cName;
	obj.className = obj.className.replace(rep, '');
	return true;
}
function toggleClass(obj, cName1, cName2) {
	if (!hasClass(obj, cName1)) {
		return false;
	}
	var rep = obj.className.match(' '+cName1) ? ' '+cName1 : cName1;
	obj.className = obj.className.replace(rep, ' '+cName2);
	return true;
}
//----------------------------------------------------------------------------
// General utility functions.
//----------------------------------------------------------------------------
function getContainerWith(node, tagName, className) {
	// Starting with the given node, find the nearest containing element
	// with the specified tag name and style class.
	while (node != null) {
		if (node.tagName != null && node.tagName == tagName && hasClassName(node, className)) {
			return node;
		}
		node = node.parentNode;
	}
	return node;
}
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 getPageY() {
	if (window.scrollY) {
		return window.scrollY;
	}
	// Mozilla 
	if (window.pageYOffset) {
		return window.pageYOffset;
	}
	// Opera, NN4 
	if (document.documentElement && document.documentElement.scrollTop) {
		// IE
		return document.documentElement.scrollTop;
	} else if (document.body && document.body.scrollTop) {
		return document.body.scrollTop;
	}
	return 0;
}
// ---
/*
    Written by Jonathan Snook, http://www.snook.ca/jonathan
    Add-ons by Robert Nyman, http://www.robertnyman.com
*/
function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];		
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}	
	}
	return (arrReturnElements)
}
// To cover IE 5 Mac lack of the push method
if (!Array.push){
	Array.prototype.push = function(value) {this[this.length] = value; };
}
/*================================================================================================*/
/*START Hover image named with _n at the end of name. */
var W3CDOM = (document.createElement && document.getElementsByTagName);
var mouseOvers = new Array();
var mouseOuts = new Array();
var curIndexs = -1;
var curTabIndexs = -1;
var scrollInterval;
var iTab = new Array();
var iTabContent = new Array();
var oIcoZoom;
var oGalleryZoom;
var oPopUpImg;
var oCloseZoom;
function init() {
	if (!W3CDOM) {
		return;
	}
	//// INIT FOR SCROLLER  
	iClicks = $$('div.highlightMetier');
	iShows = $$('div.bigVisuel');
	oIcoZoom = $('iconZoom');
	oGalleryZoom= $('galleryZoom');
	if (oGalleryZoom) oGalleryZoom.setStyles({opacity:'0', display:'block'})
	oPopUpImg= $('popUpImg');
	oCloseZoom=$('closeZoom');
	//oLoadingZoom=$('loadingZoom');
	oCloseZoom.onclick = function (evt){
		opaceIt(oGalleryZoom, 0);
	}
	oIcoZoom.onclick = function (evt){
			var myBigImgRoot=iShows[curIndexs].childNodes[0].src.split(".");
			var sImgName=iShows[curIndexs].childNodes[0].src;
			var aSplitRoot=sImgName.split("/");
			var aSplitImgName=aSplitRoot[aSplitRoot.length-1].split(".");
			var myZoomImg="images/"+aSplitImgName[0]+"_zoom.jpg";
			oPopUpImg.style.display="none";
			oPopUpImg.src=myZoomImg;			
			//oLoadingZoom.setStyles({opacity:'1'})
			opaceIt(oGalleryZoom, 1);
			oPopUpImg.onload=function(){
				oPopUpImg.style.display="block";
				//opaceIt(this, 1);
				//oLoadingZoom.setStyles({opacity:'0'})
			}
		}
	if (iClicks.length>0) {
		////
		iClicks.each(function (item) {
			item.setStyles({cursor:'pointer'});
		});
		////
		for (var i = 0; i<iClicks.length; i++) {
			iClicks[i].indexs = i;
			iClicks[i].onmouseover = function(evt) {
				this.setStyles({border:'1px solid #CCC'});
			};
			iClicks[i].onmouseout = function(evt) {
				this.setStyles({border:'1px solid #e8e8e8'});
			};
			iClicks[i].onclick = function(evt) {				
				showVisuel(this.indexs);
				changeBkg(this, '#b7ddf0');
			};
		}
		iClicks[0].onclick();
		/////// INIT SCROLLING
		var slideBarObj = new Slider($('slideBarContainer'), $('slideBar'), {onChange:function (pos) {
			slideBarObj.curPos = pos;
			slideContent.set(pos);
		}, mode:'vertical'});
		// define the fist position of the slide bar = 0;
		slideBarObj.curPos = 0;
		/////
		var slideContent = new Slider($('fichesMetiersList'), $('scrollContent'), {onChange:function (pos) {
			slideBarObj.set(pos);
		}, mode:'vertical', wheel:true});
		///////
		$('slideBar').setStyles({cursor:'pointer'});
		$('scrollerUp').setStyles({cursor:'pointer'});
		$('scrollerUp').onmousedown = function(evt) {
			clearInterval(scrollInterval);
			scrollInterval = setInterval(function () {
				moveObj(slideBarObj, -2);
			}, 100);
		};
		$('scrollerUp').onclick = $('scrollerUp').onmouseout=function (evt) {
			clearInterval(scrollInterval);
		};
		$('scrollerDown').setStyles({cursor:'pointer'});
		$('scrollerDown').onmousedown = function(evt) {
			scrollInterval = setInterval(function () {
				moveObj(slideBarObj, 2);
			}, 100);
		};
		$('scrollerDown').onclick = $('scrollerDown').onmouseout=function (evt) {
			clearInterval(scrollInterval);
		};
	}
	///// INIT FOR TAB 
	iTabContent = $$('div.tableCont');
	iTab = $$('li.tableTab');
	if (iTab.length>0) {
		iTab.each(function (item) {
			item.setStyles({cursor:'pointer'});
		});
		for (var i = 0; i<iTabContent.length; i++) {
			iTab[i].indexs = i;
			iTab[i].defaultImg = iTab[i].getFirst().getProperty('src');
			iTab[i].onclick = function(evt) {
				if (this.indexs != curTabIndexs) {
					var imgArr = this.defaultImg.split('.');
					var tempSrc = imgArr[imgArr.length-2];
					imgArr[imgArr.length-2] = tempSrc.substr(0, tempSrc.length-2)+'_a';
					this.getFirst().setProperty('src', imgArr.join('.'));
					swapTab(this.indexs, iTab, iTabContent);
				}
			};
			
			iTab[i].onmouseover = function(evt) {				
				if (this.indexs != curTabIndexs) {
					var imgArr = this.defaultImg.split('.');
					var tempSrc = imgArr[imgArr.length-2];
					imgArr[imgArr.length-2] = tempSrc.substr(0, tempSrc.length-2)+'_o';
					this.getFirst().setProperty('src', imgArr.join('.'));
				}else{
					this.setStyles({cursor:''});
				}
			};
			iTab[i].onmouseout = function(evt) {
				if (this.indexs != curTabIndexs) {
					this.getFirst().setProperty('src', this.defaultImg);
				}else{
					this.setStyles({cursor:'pointer'});	
				}
				
			};
		}
	}	
	////// 
}
//end init
function initreset() {
	if (!W3CDOM) {
		return;
	}
	var imgs = document.getElementsByTagName('img');
	for (var i = 0; i<imgs.length; i++) {
		if (imgs[i].src.indexOf('.gif') != -1) {
			// On cible seulement les lments input de type image avec une extension de type .gif
			tmp = (imgs[i].src.substring(imgs[i].src.lastIndexOf('/')+1)).substring(0, (imgs[i].src.substring(imgs[i].src.lastIndexOf('/')+1)).lastIndexOf('.'));
			if (tmp.indexOf('_') != -1) {
				/* search all img have "_" */
				if (tmp.substring(tmp.lastIndexOf('_')+1) == "o") {
					var suffix = imgs[i].src.substring(imgs[i].src.lastIndexOf('.'));
					var tmpimg = new Image();
					tmpimg.src = imgs[i].src.substring(0, imgs[i].src.lastIndexOf('_'))+"_n.gif";
					imgs[i].src = tmpimg.src;
				}
			}
		}
	}
	//end for
}
//end initreset
//----------------------------------------------------------------------------
// .
//----------------------------------------------------------------------------
var fsub = false;
var mobj;
var osrc = "";
function mouseGoesOver(fsub, mEvent) {
	if (checkIt("msie") != 0) {
		// use in IE
		if (fsub == true) {
			mobj.src = osrc;
			fsub = false;
		} else {
			this.src = mouseOvers[this.number].src;
		}
		osrc = event.srcElement.src;
		mobj = event.srcElement;
	} else {
		// use in firefox
		if (fsub == true) {
			mobj.src = osrc;
			fsub = false;
		} else if (fsub == '') {
			osrc = mEvent.target.src;
			mobj = mEvent.target;
		} else {
			this.src = mouseOvers[this.number].src;
		}
	}
}
function mouseGoesOut() {
	this.src = mouseOuts[this.number].src;
}
var detect = navigator.userAgent.toLowerCase();
var OS, browser, total, thestring;
var version = 0;
function checkIt(string) {
	place = detect.indexOf(string)+1;
	thestring = string;
	return place;
}
/*END Hover input and image */
/*================================================================================================*/
/************Check Form Validate************/
function acceptType(typeStr, input){
		var typeArr = typeStr.split(',');
		
		var extType = input.split('.');
		for (var i=0; i<typeArr.length;i++){
			if (extType[extType.length -1] == typeArr[i])
				return true;
		}1
		return false;
}
function isEmail(s)
{
	if (s.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]{2,4}$/) != -1)
		return true;
	return false;
}
function showError(formobj, err_str, err_div, input) {
	var x = getPageOffsetLeft(input);
	var y = getPageOffsetTop(input);
	var objCon = MM_findObj(err_div+"Content");
	var divObj = MM_findObj(err_div);
	if (objCon != null) {
		objCon.innerHTML = "<p>"+err_str+"</p>";
	}
	if (divObj != null) {
		divObj.style.left = (x+0)+"px";
		divObj.style.top = y+20+"px";
		divObj.style.visibility = "visible";
	}
	if (browser.isIE) {
		var iframeObj = MM_findObj(err_div+"Iframe");
		if (iframeObj != null && divObj != null) {
			iframeObj.style.width = divObj.offsetWidth+"px";
			iframeObj.style.height = divObj.offsetHeight+"px";
			iframeObj.style.left = divObj.style.left;
			iframeObj.style.top = divObj.style.top;
			iframeObj.style.visibility = "visible";
			iframeObj.style.display = "block";
		}
	}
	input.style.backgroundColor = "#ffffad";
	input.focus();
	return false;
}
function closeError(err_div) {
	var divObj = MM_findObj(err_div);
	if (divObj != null) {
		divObj.style.visibility = "hidden";
	}
	if (browser.isIE) {
		var iframeObj = MM_findObj(err_div+"Iframe");
		if (iframeObj != null && divObj != null) {
			iframeObj.style.display = "none";
		}
	}
}
function validFrmInfos() {
	var validated = true;
	var frmObj = document.getElementById("frmInfos");
	if (frmObj.txtNom.value == "") {
		showError(frmObj, "Vous devez remplir le champ Nom.", "error", frmObj.txtNom);
		validated = false;
	} else if (frmObj.txtPrenom.value == "") {
		showError(frmObj, "Vous devez remplir le champ Prénom.", "error", frmObj.txtPrenom);
		validated = false;
	} /*else if (frmObj.txtEmail.value == "") {
		showError(frmObj, "Vous devez remplir le champ E-mail.", "error", frmObj.txtEmail);
		validated = false;
	} else if (!isEmail(frmObj.txtEmail.value)) {
		showError(frmObj, "Le format de votre e-mail n’est pas correct", "error", frmObj.txtEmail);
		validated = false;}*/
 else if (frmObj.txtPostale.value == "") {
		showError(frmObj, "Vous devez remplir le champ Adresse postale.", "error", frmObj.txtPostale);
		validated = false;
	}
	validated ? frmObj.submit() : validated=false;
}
function validFrmContacts() {
	var validated = true;
	var frmObj = document.getElementById("frmContacts");
	if (frmObj.txtNom.value == "") {
		showError(frmObj, "Vous devez remplir le champ Nom.", "error", frmObj.txtNom);
		validated = false;
	} else if (frmObj.txtPrenom.value == "") {
		showError(frmObj, "Vous devez remplir le champ Prénom.", "error", frmObj.txtPrenom);
		validated = false;
	} else if (frmObj.txtEmail.value == "") {
		showError(frmObj, "Vous devez remplir le champ E-mail.", "error", frmObj.txtEmail);
		validated = false;
	} else if (!isEmail(frmObj.txtEmail.value)) {
		showError(frmObj, "Your email is not correct.", "error", frmObj.txtEmail);
		validated = false;
	}
	validated ? frmObj.submit() : validated=false;
}
function formSubmit(FormId) {
	document.getElementById(FormId).submit();
}
function ChangeRadion(name) {
	frm = document.frmDeposezVotreCv;
	frm.radio.value = 'change_radio';
	if (name == 'stage') {
		frm.radio_value.value = 'stage';
	} else {
		frm.radio_value.value = 'emploi';
	}
	formSubmit('frmDeposezVotreCv');
}
function SubmitFrmDeposezVotreCv() {
	var check;
	validFrmDeposez();
	check = validated;
	alert(check);
	if (check) {
		frm = document.frmDeposezVotreCv;
		frm.nav3.value = 'submit';
		formSubmit('frmDeposezVotreCv');
	}
}
function validFrmDeposez() {
	var validated = true;
	var frmObj = document.getElementById("frmDeposezVotreCv");
	if (frmObj.txtNom.value == "") {
		showError(frmObj, "Vous devez remplir le champ Nom.", "error", frmObj.txtNom);
		validated = false;
	} else if (frmObj.txtPrenom.value == "") {
		showError(frmObj, "Vous devez remplir le champ Prénom.", "error", frmObj.txtPrenom);
		validated = false;
	} else if (frmObj.txtEmail.value == "") {
		showError(frmObj, "Vous devez remplir le champ E-mail.", "error", frmObj.txtEmail);
		validated = false;
	} else if (!isEmail(frmObj.txtEmail.value)) {
		showError(frmObj, "Le format de votre e-mail n’est pas correct", "error", frmObj.txtEmail);
		validated = false;
	} else if (frmObj.txtJoin1.value == "" || !acceptType('doc,pdf', frmObj.txtJoin1.value)) {
		showError(frmObj, "Vous devez joindre votre CV au format .doc ou .pdf", "error", frmObj.txtJoin1);
	 	validated = false;
	}
	if (validated) {
		frm = document.frmDeposezVotreCv;
		frm.nav3.value = 'submit';
		formSubmit('frmDeposezVotreCv');
	} else {
		validated = false;
	}
}
/*#################################################################
######################### EFFECT FUNCTIONS ########################
#################################################################*/
function swapTab(indexs, tabArr, tabContentArr) {
	if (curTabIndexs == indexs) {
		return;
	}
	if (tabArr[curTabIndexs]) {
		tabArr[curTabIndexs].getFirst().setProperty('src', tabArr[curTabIndexs].defaultImg);
		tabContentArr[curTabIndexs].setStyles({display:'none'});
		//opaceIt(tabContentArr[curTabIndexs], 0);
	}
	tabContentArr[indexs].setStyles({display:'block'});
	//opaceIt(tabContentArr[indexs], 1);
	curTabIndexs = indexs;
}
function moveObj(thisObj, thisPos) {
	if ((thisObj.curPos == 0) && (thisPos<0)) {
		return;
	}
	if ((thisObj.curPos == 100) && (thisPos>0)) {
		return;
	}
	thisObj.set(thisObj.curPos+thisPos);
}
function changeBkg(thisObj, bkgColor){
	if (!thisObj)
		return;	
	var myEffects = new Fx.Styles(thisObj, {duration: 300, transition: Fx.Transitions.quadIn});	
	myEffects.start({'background-color': bkgColor});	
}
function opaceIt(thisObj, opaceTo, newfunction) {
	if (!thisObj) {
		return;
	}
	var myEffects = new Fx.Styles(thisObj, {duration:400, transition:Fx.Transitions.quadInOut});
	myEffects.start({opacity:opaceTo, mozOpacity:opaceTo});
}
function showVisuel(indexs) {
	if (indexs == curIndexs) {
		return;
	}
	var oldIndexs = curIndexs;
	var frmObj = iShows[indexs];
	
	//if (icoZoom.length > 0){
		//alert('change');
		
		//icoZoom.getFirst().setProperty('href', iShows[indexs].getFirst().getProperty('src'));
	
	//}
	frmObj.setStyles({opacity:0});
	frmObj.setStyles({mozOpacity:0});
	frmObj.setStyles({display:'block'});
	var myEffects = new Fx.Styles(frmObj, {duration:400, transition:Fx.Transitions.quadIn});
	myEffects.start({opacity:1, mozOpacity:1});
	opaceIt(iShows[curIndexs], 0);
	changeBkg(iClicks[curIndexs], '#d8d8d8');
	//
	curIndexs = indexs;
}
/*#################################################################
####################### END EFFECT FUNCTIONS ######################
#################################################################*/
// BROWSE REPLACEMENT
function initBrowseButtons() {
	var form = $('frmDeposezVotreCv');
	// get the list of buttons
	var images = initBrowseButtons.arguments;
	for (var i = 0; i<images.length; i++) {
		// capture the image object
		var imgObj = $(images[i]);
		// get the position
		var imgPos = imgObj.getPosition();
		// create input [type=file]
		var input = document.createElement('INPUT');
		input.id = images[i]+'_hide';
		input.name = images[i]+'_hide';
		input.type = 'file';
		input.size = 1;
		input.style.position = 'absolute';
		input.style.width = '113px';
		input.style.top = imgPos.y+'px';
		input.style.left = (imgPos.x-35)+'px';
		input.style.opacity = 0;
		input.style.mozOpacity = 0;
		input.style.filter = 'alpha(opacity=0)';
		//input.style.cursor = "pointer";
		// init behaviours
		input.onmouseover = function() {
		};
		input.onmouseout = function() {
		};
		input.onchange = function() {
			// get the target text input
			var param = this.id.split("_");
			var target = $(param[1]);
			// update the text input value
			target.value = this.value;
			target.onchange = function() {
				var target = $("file_"+this.id+"_hide");
				// update the text input value
				target.value = this.value;
			};
		};
		form.appendChild(input);
	}
}
