/* Loïc Pennamen pour Magnana.com */

// 
function aLire(identifiant){
	onOffBlock(identifiant);
	onOffBlockInline('plus-' + identifiant);
	onOffBlockInline('moins-' + identifiant);
}
// dérouler un bloc vertical dont la hauteur est connue
function deroulerH(cible, debut, fin, vitesse, hack){ 	// si hack == true, la fonction ne peut s'appeller que elle-même, pour éviter les doublons de timeout
	bloc = document.getElementById('sousMenu-' + cible);
	
	// si un enroulement a lieu, le supprimer;	
	if(document.getElementById('mouvement-' + cible).value == 'enroulement'){
		eval('window.clearTimeout(fermeture'+cible+');');
		document.getElementById('mouvement-' + cible).value = 'demiTour';
		debut = bloc.offsetHeight;
		//alert(debut);
		//alert('tentative de cleartimeout');
	}
	
	// puis :
	if(debut<fin){
		debut+=vitesse;
		if (typeof(hack) == 'undefined') { var hack = false;}

		var mouvement = document.getElementById('mouvement-' + cible).value; 
		if(mouvement == 'ferme' || mouvement == 'demiTour' || hack==true){
			// ACTION !
			if(hack){
				bloc.style.height= debut + 'px';
				if(bloc.style.display == 'none'){
					bloc.style.display = 'block';
				}
			}
			document.getElementById('mouvement-' + cible).value = 'deroulement';
			eval('window.ouverture'+cible+' = window.setTimeout("deroulerH('+cible+', '+debut+', '+fin+', '+vitesse+', true)", 10);');
		}
	}
	else{
		document.getElementById('mouvement-' + cible).value = 'ouvert';
	}
}
function enroulerH(cible, debut, fin, vitesse, hack){ 	// si hack == true, la fonction ne peut s'appeller que elle-même, pour éviter les doublons de timeout
	bloc = document.getElementById('sousMenu-' + cible);
	
	// si un deroulement a lieu, le supprimer;	
	if(document.getElementById('mouvement-' + cible).value == 'deroulement'){
		eval('window.clearTimeout(ouverture'+cible+');');
		document.getElementById('mouvement-' + cible).value = 'demiTour';
		debut = bloc.offsetHeight;
		//alert(debut);
		//alert('tentative de cleartimeout');
	}
	
	if(debut>fin){
		debut -= vitesse;
		
		// si la cible est en mouvement "deroulement", mais que la fonction ne s'est pas appelée elle même on ne fait rien
		var mouvement = document.getElementById('mouvement-' + cible).value; 
		if (typeof(hack) == 'undefined') { var hack = false;}
		if(mouvement == 'ouvert' || mouvement == 'demiTour' || hack==true){
			// ACTION !
			if(hack) bloc.style.height= debut + 'px';
			
			document.getElementById('mouvement-' + cible).value = 'enroulement';
			eval('window.fermeture'+cible+' = window.setTimeout("enroulerH('+cible+', '+debut+', '+fin+', '+vitesse+', true)", 10);');
		}
	}
	// une fois le deroulement arrivé à bon port
	else{
		document.getElementById('mouvement-' + cible).value = 'ferme';
		bloc.style.display= 'none';
	}
}



function changerHref(idLien, href){
	document.getElementById(idLien).href = href;
}

function getSelectedRadioValue (radiobutton){
	var returnValue = "";
	if (radiobutton.length == 1){
		returnValue = radiobutton.value;
	} else {
		for (i=0;i<radiobutton.length;i++){
			if (radiobutton[i].checked==true) {
				returnValue=radiobutton[i].value;
			}
		}
	}
	return returnValue;
}
function redirige(page) {
	location.href=page;
}
function upImage(image, ext){
	image.src=image.src.substr(0, image.src.length - 4) + "-up." + ext;
}
function downImage(image, ext){
	image.src=image.src.substr(0, image.src.length - 7) + "." + ext;
}
///////////
function majInput(inputVise, valeur){
	document.getElementById(inputVise).value=valeur;
}
/////////// ajoute la chaine à la valeur de l'input
function majPlusInput(inputVise, valeur){
	if(document.getElementById(inputVise).value != ''){
		document.getElementById(inputVise).value = document.getElementById(inputVise).value + ' ; ' + valeur;
	}
	else{
		document.getElementById(inputVise).value = valeur;
	}
}
///////////
function changerImage(idImage, srcImage){
	document.getElementById(idImage).src=srcImage;
}
function changerImageObj(image, srcImage){
	image.src=srcImage;
}
///////////
var newWin = null;
function closeWin(){
	if (newWin != null){
		if(!newWin.closed)
		newWin.close();
	}
}
///////////
function popUp(strURL,strType,strHeight,strWidth) {
	closeWin();
	var strOptions="";
	if (strType=="console") strOptions="resizable,height="+strHeight+",width="+strWidth;
	if (strType=="fixed") strOptions="status,height="+strHeight+",width="+strWidth;
	if (strType=="elastic") strOptions="toolbar,menubar,scrollbars,resizable,location,height="+strHeight+",width="+strWidth;
	newWin = window.open(strURL, 'newWin', strOptions);
	newWin.focus();
} 
/////////////////////////////
// switchBlock intervertit l'affichage de deux blocs donnés par leur ID
function switchBlock(afficher, masquer){
	document.getElementById(afficher).style.display='block';
	document.getElementById(masquer).style.display='none';
}
// switchBlock intervertit l'affichage de deux blocs donnés par leur ID
function switchBlockInline(afficher, masquer){
	document.getElementById(afficher).style.display='inline';
	document.getElementById(masquer).style.display='none';
}
// onOffBlock fonctionne comme un interrupteur sur un bloc donné par son id
function onOffBlock(afficher){
	if(document.getElementById(afficher).style.display=='block') {		document.getElementById(afficher).style.display='none';	}
	else if(document.getElementById(afficher).style.display=='none') {	document.getElementById(afficher).style.display='block';	}
}
function onOffBlockInline(afficher){
	if(document.getElementById(afficher).style.display=='inline') {		document.getElementById(afficher).style.display='none';	}
	else if(document.getElementById(afficher).style.display=='none') {	document.getElementById(afficher).style.display='inline';	}
}
// onOffParClasse fonctionne comme un interrupteur sur un bloc donné par sa classe et sa balise
function onOffParClasse(className, tag){
	if(elts = getElementsByClassName(className, tag)) {		
		for(i=0 ; i < elts.length ; i++){
			// alert(elts[i]);
			if(elts[i].style.display=='block')	elts[i].style.display='none';
			else if(elts[i].style.display=='none')	elts[i].style.display='block';
		}
	}
}
function masquerParClasse(className, tag){
	if(elts = getElementsByClassName(className, tag)) {		
		for(i=0 ; i < elts.length ; i++){
			// alert(elts[i]);
			elts[i].style.display='none';
		}
	}
}
function afficherParClasse(className, tag){
	if(elts = getElementsByClassName(className, tag)) {		
		for(i=0 ; i < elts.length ; i++){
			// alert(elts[i]);
			elts[i].style.display='block';
		}
	}
}
// unPourTous affiche un bloc au détriment d'une liste de blocs transmise dans une chaine de caracteres, les iID sont séparés par des ;
function unPourTous(afficher, masquer, display){
	if(!display) display = 'block';
	// si la mise en bloc de l'éément à afficher fonctionne
	if(document.getElementById(afficher).style.display=display){
		// création du tableau des ID de blocks à effacer
		mesId = masquer.split(';');
		// boucle
		for(i=0 ; i < mesId.length ; i++){
			document.getElementById(mesId[i]).style.display='none';
		}
	}
}
// pas ON un liens au détriment des autres de la meme liste (meme precinpe que fonction précédente
function onOffLien(liensOn, liensOff){
	// mise sur ON
	if(document.getElementById(liensOn).className='on'){
		// création du tableau des ID de liens à rendre OFF
		mesId = liensOff.split(';');
		// boucle
		for(i=0 ; i < mesId.length ; i++){
			document.getElementById(mesId[i]).className='off';
		}
	}
}

function masquer(idAMasquer){
	if(document.getElementById(idAMasquer)) document.getElementById(idAMasquer).style.display='none';
}
function afficher(idAAfficher){
	if(document.getElementById(idAAfficher)) document.getElementById(idAAfficher).style.display='block';
}
function afficherInline(idAAfficher){
	if(bloc = document.getElementById(idAAfficher)){
		bloc.style.display='inline';
	}
}

// limiter le nombre de caracteres d'un textarea
function limiterTA(monTA,nbCaracteres,temoin){
	nbActuel=monTA.value.length;
	if(nbActuel>=nbCaracteres+1){
		alert('Vous ne pouvez entrer que '+nbCaracteres+' caractères maximum');
		monTA.value=monTA.value.substr(0,nbCaracteres-2);
	}
	document.getElementById(temoin).innerHTML='<sup>'+ (nbCaracteres-nbActuel) + ' caractères restants</sup>';
}

///////////////// COOKIES	.
function EcrireCookie(nom, valeur){
	var argv=EcrireCookie.arguments;
	var argc=EcrireCookie.arguments.length;
	var expires=(argc > 2) ? argv[2] : null;
	var path=(argc > 3) ? argv[3] : null;
	var domain=(argc > 4) ? argv[4] : null;
	var secure=(argc > 5) ? argv[5] : false;
	document.cookie=nom+"="+escape(valeur)+
	((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
	((path==null) ? "" : ("; path="+path))+
	((domain==null) ? "" : ("; domain="+domain))+
	((secure==true) ? "; secure" : "");
}
//
function EffaceCookie(nom){
	date=new Date;
	date.setFullYear(date.getFullYear()-1);
	EcrireCookie(nom,null,date);
}
//
function getCookieVal(offset){
	var endstr=document.cookie.indexOf (";", offset);
	if (endstr==-1) endstr=document.cookie.length;
	return unescape(document.cookie.substring(offset, endstr));
}
//
function LireCookie(nom){
	var arg=nom+"=";
	var alen=arg.length;
	var clen=document.cookie.length;
	var i=0;
	while (i<clen)
	{
	var j=i+alen;
	if (document.cookie.substring(i, j)==arg) return getCookieVal(j);
	i=document.cookie.indexOf(" ",i)+1;
	if (i==0) break;

	}
	return null;
}
// fonction spéciale : sert à afficher ou masquer une div contenant les infos d'une offre liées au fait qu'elles oit limitée dans le temps ou non
function limiterDansLeTemps(){
	RendreVisible = false;
	// tableau des contrats qui provoquent une durée
	limites = Array('CDD','Stage', 'Interim');
	
	var Chckbox = document.getElementById("div_chck").getElementsByTagName('input');
	// dans la div concernée
	for (i=0; i < Chckbox.length; i++){
		// pour chaque input
		if (Chckbox[i].nodeName=="INPUT"){
			// s'il est coché
			if(document.getElementById(Chckbox[i].getAttribute("id")).checked == true){
				// s'il fait partie des elements qui nécessitent une durée :
				if(in_array(limites, document.getElementById(Chckbox[i].getAttribute("id")).value)){
					RendreVisible = true;
				}
			}
		}
	}
	
	// et donc : si il y a un des contrats selectionnés
	if(RendreVisible){
		// changer le repere de durée déterminée
		document.getElementById('duree_determinee_offre').value='1';
		// afficher le bloc adéquat
		afficher('infosDeDuree');
	}
	else{
		// changer le repere de durée déterminée
		document.getElementById('duree_determinee_offre').value='0';
		// afficher le bloc adéquat
		masquer('infosDeDuree');
	}
}
	
	
	
	
	
	
	
	

// choping
function GereChkbox(conteneur, a_faire){
	var blnEtat=null;
	var Chckbox = document.getElementById(conteneur).getElementsByTagName('input');
	for (i in Chckbox){
		if (Chckbox[i].nodeName=="INPUT"){
			if (Chckbox[i].getAttribute("type")=="checkbox") {
				blnEtat = (a_faire=='0') ? false : (a_faire=='1') ? true : (document.getElementById(Chckbox[i].getAttribute("id")).checked) ? false : true;
				document.getElementById(Chckbox[i].getAttribute("id")).checked =blnEtat;
			}
		}
	}
}	
// CHOPING :
function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|s)" + className + "(s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i ];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}
function in_array(array, p_val) {
    for(var i = 0, l = array.length; i < l; i++) {
        if(array[i] == p_val) {
            rowid = i;
            return true;
        }
    }
    return false;
}
// menuDeroulant : gere le menu de gauche : déroule la cible et enroule les autres
/* V1 *
function menuDeroulant(cible){
	//var bloc = 'sousMenu-' + cible; 
	var bloc = cible; // MAJ
	var hauteur = 	(document.getElementById('sousrub-' + cible).value);	hauteur++;	hauteur = hauteur * 15;
	var mouvement = 	(document.getElementById('mouvement-' + cible).value);
	
	//alert(hauteur);
	if(bloc){
		// s'il est fermé
		if(mouvement == 'ferme'){
			deroulerH(bloc, 1, hauteur, 2);
			document.getElementById('mouvement-' + cible).value = 'deroulement';
		}
		if(mouvement == 'ouvert'){
			enroulerH(bloc, hauteur, 1, 2);
			document.getElementById('mouvement-' + cible).value = 'enroulement';
		}
	}
}
/* */

