/******************************************************************************************************
* Fonctions javascript utilisées pour le formulaire d'offre d'emploi disponible aux employeurs sur le web
*
* Version	Demande   	Date        	Programmeur			             
* --------	----------  	------------ 	-----------------------------------	  
* 1.00	  	12975	    	2009-09-18  Simon Gilbert-Deschênes	  
* - Création
*
* 1.01    	8678     	2010-01-07  Simon Gilbert-Deschênes
* - Changer la fonction "move" pour prendre l'objet option pour le mettre dans les array au lieu de
*   l'attribut "text" seulement. Permet de tout transporter.
* - Ajouter la fonction "sortProgramme". Elle est utilisée pour ordonner les "<option>" programme 
* - Ajouter la fonction "noaccent". Cette fonction sert à convertir les caractères accentués en non accentué
*    et la retourne en minuscule.
* 1.02          8678            2010-02-04 Simon Gilbert-Deschênes
* - Ajouter la validation des courriels. 
* 1.03          8678            2010-04-14  Simon Gilbert-Deschênes
* - Mettre les choix de type d'emploi en choix unique. Utiliser les radio au lieu de checkbox. 
* - Ajouter la fonction "resetRadiosTypes".
* 1.04          8678            2010-05-13  Simon Gilbert-Deschênes
* - Rajouter la fonction "validerTauxHoraire" 
* 1.05          13745           2011-11-15  Sylvain Mailhot
* - Ajoute valide courriel candidatures dans fonction soumettre formulaire
*******************************************************************************************************/
function setFocus(objectId) {   
	document.getElementById(objectId).className="focusChampFormulaire";
	document.getElementById(objectId+"_div").className="focusChampFormulaire";    
}  

function lostFocus(objectId) {        
	document.getElementById(objectId).className="champFormulaire";
	document.getElementById(objectId+"_div").className="champFormulaire";
}

function changeCheckbox(objectImage, objectCheckox) {    

	var vImage = document.getElementById(objectImage);
	var vCheckbox = document.getElementById(objectCheckox);
	var vType = vCheckbox.type

	if (vType == "checkbox") {
	  
	  if(vCheckbox.checked) {
		vCheckbox.checked = false;
		vImage.src =  document.getElementById("blank").src;

	  } else {
		vCheckbox.checked = true;
		vImage.src =  document.getElementById("chk_on").src;
	  }
	} else if (vType == "radio") {
	  
	  if(vCheckbox.checked) {
		vCheckbox.checked = false;
		vImage.src =  document.getElementById("rdo_off").src;

	  } else {
		vCheckbox.checked = true;
		vImage.src =  document.getElementById("rdo_on").src;
	  }

	}
}

function initRadiosCheckboxes() {
  
	document.getElementById("legende_types_on").src =  document.getElementById("rdo_on").src;
	document.getElementById("legende_types_off").src =  document.getElementById("rdo_off").src;
  
	document.getElementById("code_type_emploi_regulier_id").checked = true;
	document.getElementById("img_regulier").src =  document.getElementById("rdo_on").src;

	document.getElementById("code_type_emploi_temporaire_id").checked = false;
	document.getElementById("img_temporaire").src =  document.getElementById("rdo_off").src;

	document.getElementById("code_type_emploi_occasionnel_id").checked = false;
	document.getElementById("img_occasionnel").src =  document.getElementById("rdo_off").src;

	document.getElementById("code_type_emploi_ete_id").checked = false;
	document.getElementById("img_ete").src =  document.getElementById("rdo_off").src;
	
	document.getElementById("code_type_emploi_contr_id").checked = false;
	document.getElementById("img_contract").src =  document.getElementById("rdo_off").src;

	document.getElementById("code_modalite_emploi_temps_plein_id").checked = true;
	document.getElementById("img_temps_plein").src =  document.getElementById("chk_on").src;
	   
	document.getElementById("code_modalite_emploi_temps_partiel_id").checked = false;
	document.getElementById("img_temps_partiel").src =  document.getElementById("blank").src;

	document.getElementById("horaire_jour_id").checked = true;
	document.getElementById("img_horaire_jour").src =  document.getElementById("chk_on").src;

	document.getElementById("horaire_soir_id").checked = false;
	document.getElementById("img_horaire_soir").src =  document.getElementById("blank").src;

	document.getElementById("horaire_nuit_id").checked = false;
	document.getElementById("img_horaire_nuit").src =  document.getElementById("blank").src;

	document.getElementById("horaire_rotation_id").checked = false;
	document.getElementById("img_horaire_rotation").src =  document.getElementById("blank").src;
	   
	document.getElementById("horaire_appel_id").checked = false;
	document.getElementById("img_horaire_appel").src =  document.getElementById("blank").src;

	document.getElementById("horaire_weekend_id").checked = false;
	document.getElementById("img_horaire_weekend").src =  document.getElementById("blank").src;

	document.getElementById("horaire_dispo_id").checked = false;
	document.getElementById("img_horaire_dispo").src =  document.getElementById("blank").src;        

	document.getElementById("legende_nb_heures_on").src =  document.getElementById("rdo_on").src;
	document.getElementById("legende_nb_heures_off").src =  document.getElementById("rdo_off").src;

	document.getElementById("nb_heures_15_id").checked = true;
	document.getElementById("img_15_heures").src =  document.getElementById("rdo_on").src;

	document.getElementById("nb_heures_20_id").checked = false;
	document.getElementById("img_20_heures").src =  document.getElementById("rdo_off").src;
		
	document.getElementById("nb_heures_25_id").checked = false;
	document.getElementById("img_25_heures").src =  document.getElementById("rdo_off").src;

	document.getElementById("nb_heures_30_id").checked = false;
	document.getElementById("img_30_heures").src =  document.getElementById("rdo_off").src;

	document.getElementById("nb_heures_32_id").checked = false;
	document.getElementById("img_32_heures").src =  document.getElementById("rdo_off").src;

	document.getElementById("nb_heures_325_id").checked = false;
	document.getElementById("img_325_heures").src =  document.getElementById("rdo_off").src;

	document.getElementById("nb_heures_35_id").checked = false;
	document.getElementById("img_35_heures").src =  document.getElementById("rdo_off").src;

	document.getElementById("nb_heures_355_id").checked = false;
	document.getElementById("img_355_heures").src =  document.getElementById("rdo_off").src;

	document.getElementById("nb_heures_375_id").checked = false;
	document.getElementById("img_375_heures").src =  document.getElementById("rdo_off").src;

	document.getElementById("nb_heures_40_id").checked = false;
	document.getElementById("img_40_heures").src =  document.getElementById("rdo_off").src;
							 
	document.getElementById("nb_heures_autres_id").checked = false;
	document.getElementById("img_autres_heures").src =  document.getElementById("rdo_off").src;
	
	document.getElementById("ind_salaire_deter_id").checked = false;
	document.getElementById("img_salaire_deter").src =  document.getElementById("blank").src;
	/*
	document.getElementById("ind_emploi_urgent_id").selected = false;
	document.getElementById("img_emploi_urgent").src =  document.getElementById("blank").src;
	*/
	 
}



function resetRadiosHeures(imageSelectedId, radiosSelectedId ) {  
		
	document.getElementById("img_15_heures").src =  document.getElementById("rdo_off").src;	
	document.getElementById("img_20_heures").src =  document.getElementById("rdo_off").src;	
	document.getElementById("img_25_heures").src =  document.getElementById("rdo_off").src;
	document.getElementById("img_30_heures").src =  document.getElementById("rdo_off").src;
	document.getElementById("img_32_heures").src =  document.getElementById("rdo_off").src;
	document.getElementById("img_325_heures").src =  document.getElementById("rdo_off").src;
	document.getElementById("img_35_heures").src =  document.getElementById("rdo_off").src;
	document.getElementById("img_355_heures").src =  document.getElementById("rdo_off").src;
	document.getElementById("img_375_heures").src =  document.getElementById("rdo_off").src;
	document.getElementById("img_40_heures").src =  document.getElementById("rdo_off").src;
	document.getElementById("img_autres_heures").src =  document.getElementById("rdo_off").src;

	document.getElementById(radiosSelectedId).checked = true;
	document.getElementById(imageSelectedId).src =  document.getElementById("rdo_on").src;
	   
}

function resetRadiosTypes(imageSelectedId, radiosSelectedId ) {  
		
	document.getElementById("img_regulier").src =  document.getElementById("rdo_off").src;	
	document.getElementById("img_temporaire").src =  document.getElementById("rdo_off").src;	
	document.getElementById("img_occasionnel").src =  document.getElementById("rdo_off").src;
	document.getElementById("img_ete").src =  document.getElementById("rdo_off").src;
	document.getElementById("img_contract").src =  document.getElementById("rdo_off").src;

	document.getElementById(radiosSelectedId).checked = true;
	document.getElementById(imageSelectedId).src =  document.getElementById("rdo_on").src;
	   
}

function noaccent(chaine) {
  temp = chaine;
  temp = temp.toLowerCase();
  temp = temp.replace(/[àâä]/gi,"a");
  temp = temp.replace(/[éèêë]/gi,"e");
  temp = temp.replace(/[îï]/gi,"i");
  temp = temp.replace(/[ôö]/gi,"o");
  temp = temp.replace(/[ùûü]/gi,"u");
  
  return temp;
}

function sortProgramme(a,b)
{
 var v_retour = 0;
 var textA = noaccent(a.text);
 var textB = noaccent(b.text);
  
  if( textA > textB ) {
    v_retour = 1;	
  } else if (textA < textB) {
    v_retour = -1;
  } 

return v_retour;
}

function move(fromBoxId, toBoxId) {

    var fbox = document.getElementById(fromBoxId);
	var tbox = document.getElementById(toBoxId);

	var arrFbox = new Array();
	var arrTbox = new Array();
	
	var i;	
	
	for (i = 0; i < tbox.options.length; i++) {
	  
	  arrTbox[i] = tbox.options[i];
	}

	var fLength = 0;
	var tLength = arrTbox.length;

	for(i = 0; i < fbox.options.length; i++) {
	  
	  if (fbox.options[i].selected && fbox.options[i].value != "") {
		arrTbox[tLength] = fbox.options[i];
		tLength++;
	  }
	  else {
		arrFbox[fLength] = fbox.options[i];
		fLength++;
	  }
	}

	arrFbox.sort(sortProgramme);
	arrTbox.sort(sortProgramme);
	fbox.length = 0;
	tbox.length = 0;

	var c;

	for(c = 0; c < arrFbox.length; c++) {	    
	  fbox[c] = arrFbox[c];
	}

	for(c = 0; c < arrTbox.length; c++) {	  
	  tbox[c] = arrTbox[c];
	}
	
}  

function soumettreFormulaire() {

  if( !validerTelephone("no_telephone_employeur_id", "Téléphone - entreprise") ) {
    document.getElementById("no_telephone_employeur_id").focus();
    return false;
  } 

  if( !validerTelephone("no_telecopieur_employeur_id", "Télécopieur - entreprise") ) {
    document.getElementById("no_telecopieur_employeur_id").focus();
    return false;
  }  
  
  if( !validerTelephone("no_telephone_contact_id", "Téléphone - contact") ) {  
    document.getElementById("no_telephone_contact_id").focus();
    return false;
  }  
  
  if( !validerNombre("texte_heures_autres_id", "nombre d'heures") ) {  
    document.getElementById("texte_heures_autres_id").focus();
    return false;
  }
  
  
  if( !validerNombre("taux_horaire_id", "taux horaire") ) {   
	document.getElementById("taux_horaire_id").focus();
    return false;
  }
  
  if ( !validerCourriel("courriel_employeur_id", "Courriel - employeur" ) ) {
	document.getElementById("courriel_employeur_id").focus();
	return false;
  }
  
  if ( !validerCourrielContact()  )  {
    document.getElementById("courriel_contact_employeur_id").focus();
	return false;
  }	
  
  if ( !validerCourriel("courriel_copie_formulaire_id", "Courriel de réception copie formulaire" ) ) {
	document.getElementById("courriel_copie_formulaire_id").focus();
	return false;
  }
  
  if ( !validerCourriel("courriel_envoie_candidature_id", "Courriel - candidatures" ) ) {
	document.getElementById("courriel_envoie_candidature_id").focus();
	return false;
  }

  var vProgrammesDec = document.getElementById("code_programme_id");
  var vProgrammesAec = document.getElementById("code_programme_aec_id");
    
  //Mettre au moins une option et la sélectionner pour passer le param_value
  if(vProgrammesDec.options.length==0) {  
	  vProgrammesDec.options[0] = new Option();   
  } 
  
  for(i = 0; i < vProgrammesDec.options.length; i++) {	  
	  vProgrammesDec.options[i].selected = true;  
  }
  
  //Mettre au moins une option et la sélectionner pour passer le param_value
  if(vProgrammesAec.options.length==0) {	
    vProgrammesAec.options[0] = new Option(); 
  }
  
  for(i = 0; i < vProgrammesAec.options.length; i++) {	  
	  vProgrammesAec.options[i].selected = true;
  } 
  
  document.formulaireOffreEmploi.submit();
  
}

function validerNombre( itemId, itemLabel ) {
 
    objChamp = document.getElementById(itemId);  
 
	if( !isNaN(objChamp.value)) {
		objChamp.style.backgroundColor="";
		objChamp.style.borderColor="";
		return true;
	} else { 
		alert("Veuillez spécifier un \""+itemLabel+"\" valide.");		
		objChamp.style.backgroundColor="#eabdbd";
		objChamp.style.borderColor="red";
		return false;
	}
 return true;
}

function validerTauxHoraire( itemId, itemLabel ) {
 
    objChamp = document.getElementById(itemId);  
 
	if( !isNaN(objChamp.value)) {
		if(objChamp.value >= 0 && objChamp.value < 1000 ) {
			objChamp.style.backgroundColor="";
			objChamp.style.borderColor="";
			return true;
		} else {
			alert("Veuillez spécifier un \""+itemLabel+"\" valide entre 0 et 1000.");		
			objChamp.style.backgroundColor="#eabdbd";
			objChamp.style.borderColor="red";
			return false;
		}
	} else { 
		alert("Veuillez spécifier un \""+itemLabel+"\" valide.");		
		objChamp.style.backgroundColor="#eabdbd";
		objChamp.style.borderColor="red";
		return false;
	}
 return true;
}

function validerCourrielContact() {
 
    objChamp = document.getElementById("courriel_contact_employeur_id");  
 
	if( objChamp.value.replace("@","").length > 0 ) {
		objChamp.style.backgroundColor="";
		objChamp.style.borderColor="";
		return validerCourriel("courriel_contact_employeur_id", "Courriel - contact" );
	} else { 
		alert("Veuillez spécifier l'adresse de courrier électronique de la personne contact.");		
		objChamp.style.backgroundColor="#eabdbd";
		objChamp.style.borderColor="red";
		return false;
	}
 return true;
}

function validerTelephone( itemId, itemLabel ) {
 
    objChamp = document.getElementById(itemId);    
 
	if( !isNaN(objChamp.value)) {
		objChamp.style.backgroundColor="";
		objChamp.style.borderColor="";
        
		if(objChamp.value.length != 10 && objChamp.value.length > 0) {
			alert("Le numéro de téléphone \""+itemLabel+"\" doit contenir 10 chiffres. (Exemple: 8191234567) ");
			objChamp.style.backgroundColor="#eabdbd";
			objChamp.style.borderColor="red";
			return false;
		}
		
	    return true;
	} else { 
		alert("Le numéro de téléphone \""+itemLabel+"\" doit contenir que des chiffres. (Exemple: 8191234567) ");
		objChamp.style.backgroundColor="#eabdbd";
		objChamp.style.borderColor="red";		
		return false;
	}
 
}

function imposeMaxLength(Object, MaxLen, nomChamp)
{
  if (Object.value.length > MaxLen) {
	alert("Le champ \"" + nomChamp + "\" contient plus de "+MaxLen+" caractères. Son contenu sera tronqué à "+MaxLen+" caractères.");
    Object.value = Object.value.substr(1,MaxLen);
  }
}

function validerCourriel(itemId, itemLabel) {

  // Valider les e-mails
  var champCourriel = document.getElementById(itemId);
  var courriel = champCourriel.value;
  if (!courriel.match("^[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$") &&
     (courriel != null&&courriel!="@"&&courriel!="")) {

    alert("L'adresse de courriel \"" +itemLabel+ "\" n'a pas un format valide.");
    champCourriel.style.backgroundColor="#eabdbd";
	champCourriel.style.borderColor="red";	
	return false;
  }
  champCourriel.style.backgroundColor="";
  champCourriel.style.borderColor="";	
  return true;
}

