function checkMessagePerso(formulaire){
	if(document.getElementById('sujet').value=="") {
		alert("Merci d'indiquer le sujet de votre message");
		document.getElementById('sujet').focus();
		return false;
	}
	if(document.getElementById('texte').value=="") {
		alert("Merci d'indiquer le texte de votre message");
		document.getElementById('texte').focus();
		return false;
	}
	formulaire.submit();
}

function isEmail(str) {
  if (window.RegExp) {
    var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
    var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";
    var reg1 = new RegExp(reg1str);
    var reg2 = new RegExp(reg2str);
    if (!reg1.test(str) && reg2.test(str)) {
      return true;
    }
    return false;
  } else {
    if(str.indexOf("@") >= 0)
      return true;
    return false;
  }
}

function 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=findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}


function validEvaluation(){
var n,nb,cr,i,args=validEvaluation.arguments;
nb=args[1];
n=0;
form=findObj(args[0]);
for (i=0;i<nb;i++) {
    cr=findObj('evaluation'+i);
    if (cr[0].checked) {n++;}
    if (cr[1].checked) {n++;}
    }
if (n!=nb) {alert("Au moins 1 candidats n'a pas été évalué");
	    return false;}
	    else {
	    form.submit();
	    }
}

function validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { 
  	test=args[i+2]; 
  	val=findObj(args[i]);
  	champ=args[i+1];
    if (val) { 
    	nm=val.name; 
    	if ((val=val.value)!="") {
	    	if (test.indexOf('isEmail')!=-1) { 
	      		p=val.indexOf('@');
        		if (!isEmail(val)) errors+='- Le champ \''+champ+'\' doit contenir une adresse e-mail.\n';
      		} else if (test.indexOf('isSame')!=-1) {
      			p=test.indexOf(':');
			    champ2=test.substring(p+1,test.length);
			    val2=findObj(champ2);
			    val2=val2.value;
			    p=champ.indexOf(':');
			    champ2=champ.substring(p+1);
			    champ=champ.substring(0,p);
			    if(val2!=val)errors+='- Les champs \''+champ+'\' et \''+champ2+'\' doivent avoir la meme valeur.\n';
      		} else if (test!='R') { 
      			num = parseFloat(val);
        		if (isNaN(val)) errors+='- Le champ \''+champ+'\' doit contenir un nombre.\n';
        		if (test.indexOf('inRange') != -1) { 
        			p=test.indexOf(':');
			        min=test.substring(8,p);
			        max=test.substring(p+1);
			        if (num<min || max<num) errors+='- Le champ \''+champ+'\' doit contenir un nombre entre '+min+' et '+max+'.\n';
   				}
   			}
   		} else if (test.charAt(0) == 'R') {
   			if(champ.indexOf(':')>0){
   				p=champ.indexOf(':');
   				champ2=champ.substring(p+1);
			    champ=champ.substring(0,p);
   			}
   			errors += '- Le champ \''+champ+'\' est requis.\n';
   		}
   	}
  } 
  if (errors) {
  	alert('Merci de completer le formulaire :\n'+errors);
  }
document.formReturnValue = (errors == '');
}

function date_diff(date1,date2){
 if(date2!=""){ 
    year_date1=eval('document.form.'+date1+'Annee.value');
    month_date1=eval('document.form.'+date1+'Mois.value');
    day_date1=eval('document.form.'+date1+'Jour.value');
 
    year_date2=eval('document.form.'+date2+'Annee.value');
    month_date2=eval('document.form.'+date2+'Mois.value');
    day_date2=eval('document.form.'+date2+'Jour.value'); 
    
    date2 = new Date(year_date2,month_date2,day_date2);
 }
 
 if(date2=="" && date1!=""){   //Prend la date d'aujourd'hui pour la différence si date2 est vide
    date2 = new Date(); 
 }
 
 if(date1=="" && date2==""){
    year_date2='';
    month_date2='';
    day_date2='';
    
    date2 = new Date( year_date2, month_date2,day_date2);
 }
  
 date1 = new Date(year_date1,month_date1,day_date1);
 difference = date1-date2;
 
 diff=Math.round(difference/1000/60/60/24);
 
 return (diff);
}


function confirmDelete(element){
    if(confirm("Etes vous sur de vouloir definitivement supprimer cet element ?")){
	document.location = element;
    }
}

function confirmAnnule(element){
	if(confirm("Etes vous sur de vouloir annuler cette procédure ? Une fois validé, il est impossible de revenir sur cette décision.")){
		document.location = element;
	}
}

function verif_etape1(){
    var errors='';
    checkbox = document.getElementById("checkbox_urg"); 
    textarea = document.getElementById("textarea_urg");
    if(checkbox.checked && textarea.value==''){
	errors+="*Si vous avez recours au délai d'urgence, vous devez le justifier\n";  
    }
    if(errors){
	alert("Le formulaire contient l'erreur suivante :\n\n"+errors);
    }
    document.formReturnValue = (errors == '');
}


function verif_etape2(){

 var errors='';
 
 prm =document.form.io_resp_marche.value;
 nom = document.form.io_nom;
 adresse = document.form.io_adresse;
 ville = document.form.io_ville;
 // depart = document.form.io_nbdepart.selectedIndex;
 code=document.form.io_code_postal.value;
 // pays=document.form.io_autres_pays;
 tel=document.form.io_tel.value;
 telecop=document.form.io_telecop.value;
 adresse=document.form.io_adresse;
	
	if(prm==""){
	errors+="* Le champ personne responsable est requis.\n";	
	}
	if(prm.length<5 && prm!=''){
	errors+="* Le champ personne responsable du marché requiert 5 caractères au minimum.\n";
	}
	if(nom.value==""){
	errors+="* Le champ nom de l'organisme est requis.\n";
	}
	if(prm.charAt(0)!=prm.charAt(0).toUpperCase() && prm!=''){
	errors+="* Personne responsable du marché: Réservez l'utilisation de la majuscule à la première lettre des phrases et des noms  propres.\n";
	}
	if(adresse.value==""){
	errors+="* Le champ adresse est requis.\n";
	}
	if(code==""){
	errors+="* Le champ code_postal est requis.\n";
	}
	//if(pays.value.charAt(0)!=pays.value.charAt(0).toUpperCase() && pays.value!=''){
	//errors+="* Autres pays : Seul la première lettre du pays doit s'écrire en majuscules, par exemple: Belgique\n";
	//}
	if(isNaN(code)){
	errors+="*Le code postal doit être un chiffre\n";
	}
	if(isNaN(tel)){
	errors+="*Le numéro de téléphone doit être composé de chiffres\n";
	}
	if(isNaN(telecop)){
	errors+="*Le télecopieur doit être composé de chiffres\n";
	}
	if(ville.value==""){
	errors+="* Le champ ville est requis.\n";
	}
	if(ville.value.charAt(0)!=ville.value.charAt(0).toUpperCase() && ville.value!=''){
	errors+="* Ville : Seul la première lettre de la ville doit s'écrire en majuscules, par exemple: Paris\n";
	}
	if(adresse.value.charAt(0)!=adresse.value.charAt(0).toUpperCase() && adresse.value!=''){
	errors+="* Adresse : Seul la première lettre de l'adresse doit s'écrire en majuscules, par exemple: Paris\n";
	}
	//if(document.form.io_nbdepart.options[depart].value==""){
	//errors+="* Le champ département est requis.\n"; 
	//}
	if(document.form.io_email.value!=''&&(document.form.io_email.value.indexOf("@")<=0 || document.form.io_email.value.indexOf(".")<=0)){
	errors+="* L'adresse mail que vous avez entré n'est pas valide\n";
	}
	if(errors){
	alert('merci de compléter le formulaire suivant vos erreurs :\n\n'+errors);
	}
	document.formReturnValue = (errors == '');
}

function verif_etape3(){

//    var errors='';

//    i = document.form.market_type.selectedIndex;
//    market_object = document.form.market_object.value;
//    ville_exec	=document.form.ville_march_exec.value;
//    ville_livr=document.form.ville_march_livr.value;
//    lieu_livr=document.form.lieu_march_livr;
//    lieu_exec=document.form.lieu_march_exec;
//    code_livr=document.form.codepostal_march_livr.value;
//    code_exec=document.form.codepostal_march_exec.value;

//	if(ville_exec.charAt(0)!=ville_exec.charAt(0).toUpperCase() && ville_exec.value!=''){
//	errors+="* Ville d'execution : Seul la première lettre de la ville doit s'écrire en majuscules, par exemple: Paris\n";
//	}
//	if(ville_livr.charAt(0)!=ville_livr.charAt(0).toUpperCase() && ville_livr.value!=''){
//	errors+="* Ville de livraison : Seul la première lettre de la ville doit s'écrire en majuscules, par exemple: Paris\n";
//	}
//	if(lieu_livr.value.charAt(0)!=lieu_livr.value.charAt(0).toUpperCase() && lieu_livr.value!=''){
//	errors+="* Lieu de livraison : Seul la première lettre de la ville doit s'écrire en majuscules, par exemple: Paris\n";
//	}
//	if(lieu_exec.value.charAt(0)!=lieu_exec.value.charAt(0).toUpperCase() && lieu_exec.value!=''){
//	errors+="* Lieu d'execution : Seul la première lettre de la ville doit s'écrire en majuscules, par exemple: Paris\n";
//	}
//	if(lieu_exec.value.length<5 && lieu_exec.value!=''){
//	errors+="* Le lieu d'execution doit contenir au moins 5 caractères\n";
//	}
//	if(lieu_livr.value.length<5 && lieu_livr.value!=''){
//	errors+="* Le lieu de livraison doit contenir au moins 5 caractères\n";
//	}
//	if(isNaN(code_livr)){
//	errors+="* Le code postal de livraison doit être un chiffre\n";
//	}
//	if(isNaN(code_exec)){
//	errors+="* Le code postal d'éxecution doit être un chiffre\n";
//	}
//	if(market_object==""){
//	errors+="* Le champ objet du marché est requis\n";
//	}
//	if(document.form.market_type.options[i].value==""){
//	errors+="* Le champ type de marché est requis\n";
//	}
//	if(market_object.charAt(0)!=market_object.charAt(0).toUpperCase() && market_object!=""){
//	errors+="* Objet du marché : Réservez l'utilisation de la majuscule à la première lettre des phrases et des noms propres\n";
//	}
//	if(errors){
//	alert("le formulaire contient les erreurs suivantes :\n\n"+errors);
//	}
//    document.formReturnValue = (errors == '');

}	

function verif_etape4(){

    var errors='';
    cp_type_marche	= document.form.cp_type_marche.selectedIndex;
//    cp_tab_mod		= document.form.cp_tab_mod.selectedIndex;
    cp_carac		= document.form.cp_carac.value;
    cp_qte		= document.form.cp_qte.value;
    cp_opt		= document.form.cp_opt.value;
    cp_cal		= document.form.cp_cal.value;

    if(document.form.cp_type_marche.options[cp_type_marche].value==""){
        errors+="* Le champ type de marché est requis\n";	
    }
    //if(document.form.cp_type_marche.options[cp_type_marche].value=="Marché divisé en lots" && document.form.cp_tab_mod.options[cp_tab_mod].value==""){
    //    errors+="* Le champ type de lots est requis\n";
    //}
//    if(cp_qte.charAt(0)!=cp_qte.charAt(0).toUpperCase()){
//        errors+="* Quantités : Réservez l'utilisation de la majuscule à la première lettre des phrases et des noms propres \n";
//    }
//    if(cp_opt.charAt(0)!=cp_opt.charAt(0).toUpperCase()){
//        errors+="* Quantités : Réservez l'utilisation de la majuscule à la première lettre des phrases et des noms propres \n";
//    }
    if(cp_cal.charAt(0)!=cp_cal.charAt(0).toUpperCase()){
        errors+="* Calendrier des marchés ultérieurs : Réservez l'utilisation de la majuscule à la première lettre des phrases et des noms propres \n";
    }
    if(errors){
        alert("le formulaire contient les erreurs suivantes :\n\n"+errors);
    }
    document.formReturnValue = (errors == '');
}

function verif_etape5(){
	rr_nblot_detail	= document.form.rr_nblot_detail.selectedIndex;
//	rr_nblot	= document.form.rr_nblot.selectedIndex;
	
//	if(document.form.rr_type_lots.options[rr_type_lots].value=="Marché divisé en lots" && document.form.rr_type_lots.options[rr_type_lots].value=="Liste de lots"){	
//		for(i=1;i<=document.form.rr_nblot.options[rr_nblot].value;i++){ 	
//			if(document.getElementById('rr_lot'+i).value.charAt(0)!=document.getElementById('rr_lot'+i).value.charAt(0).toUpperCase()){
//			    errors+="* Description du lot : Réservez l'utilisation de la majuscule à la première lettre des phrases\n";
//			    break;
//			}
//		}
//	}
//	if(document.form.rr_type_lots.options[rr_type_lots].value=="Marché divisé en lots" && document.form.rr_type_lots.options[rr_type_lots].value!="" && document.form.rr_nblot.selectedIndex==0 && document.form.rr_nblot_detail.selectedIndex==0){
//	    errors+="* Le champ nombre de lots est requis\n";
//	}
//	if(document.form.rr_type_lots.options[rr_type_lots].value=="Marché divisé en lots" && document.form.rr_type_lots.options[rr_type_lots].value=="Lots détaillés"){ 	
//		for(i=1;i<=document.form.rr_nblot_detail.options[rr_nblot_detail].value;i++){ 
//			if(document.getElementById('rr_numlot_detail'+i).value==""){
//			    errors+="* Le champ lot est requis\n";
//			    break;
//			}
//			if(document.getElementById('rr_desc_detail'+i).value==""){
//			    errors+="* Le champ description succincte est requis\n";
//			    break;
//			}
//		}
//	}
}

function verif_etape6(){

    var errors='';
    m=document.form.rrl_mois.value;
    j=document.form.rrl_jours.value;
    i=document.form.rrl_dates_jours.selectedIndex;
    
    if(date_diff('rrl_eoj','rrl_acd')<0){
    //    errors+="*La date de fin de marché doit être postérieur à la date de début de marché\n";
    }
    if(date_diff('rrl_acd','')<0){
    //    errors+="*La date de début de marché doit être supérieur à la date de l'envoi de l'avis\n";
    }
    if(date_diff('rrl_dp','')<0){
    //    errors+="*La date prévisionnelle de début de marché doit être postérieure à la date de l'envois de l'avis\n";
    }
    if(document.form.rrl_dates_jours.options[i].value=='Dates' && (document.form.rrl_acdAnnee.value=='' || document.form.rrl_acdMois.value=='' || document.form.rrl_acdJour.value=='' || document.form.rrl_eojAnnee.value=='' || document.form.rrl_eojMois.value=='' || document.form.rrl_eojJour.value=='')){
        errors+="*Vous devez spécifier une durée du marché avec une date de début et une date de fin\n";
    }
    if(document.form.rrl_dates_jours.options[i].value=='Mois/Jours'&& m==''&& j==''){
        errors+="*Le champ mois et/ou jours est requis\n"; 	
    }
    if(j!='' && isNaN(j)){
        errors+="*Le champ jours requis est un numéric\n";
    }
    if(m!='' && isNaN(m)){
        errors+="*Le champ mois requis est un numéric\n";
    }
    if(errors){
        alert("le formulaire contient les erreurs suivantes :\n\n"+errors);
    }
    document.formReturnValue = (errors == '');
}

function verif_etape7(){
    var errors='';
    if(document.form.crm_cge.length<=4 && document.form.crm_cge.value!=''){
	errors+="*Le champ Cautionnement et garanties exigés doit comporter au minimum 5 caractères alphanumériques.\n";
    }
    if(document.form.crm_fj.length<=4 && document.form.crm_fj.value!=''){
	errors+="*Le champ Modalités de financement et de paiement doit comporter au minimum 5 caractères alphanumériques.\n";
    }
    if(document.form.crm_mfp.length<=4 && document.form.crm_mfp.value!=''){
	errors+="*Le champ Forme juridique ... doit comporter au minimum 5 caractères alphanumériques.\n";
    }
    if(errors){
	alert("le formulaire contient les erreurs suivantes :\n\n"+errors);
    }
    document.formReturnValue =(errors == '');
}


function verif_etape8(){
    var errors='';

    if(errors){
	alert("le formulaire contient les erreurs suivantes :\n\n"+errors);
    }
    document.formReturnValue =(errors == '');
}


function verif_etape9(){
    var errors='';
    if(document.form.cp_critere_select.value==''){
	//errors+="*Le champ critère de sélection est requis\n"; 
    }
    if(errors){
	alert("le formulaire contient les erreurs suivantes :\n\n"+errors);
    }
    document.formReturnValue =(errors == '');
}


function verif_etape10(){
    var errors='';
    max=document.form.nb_max_candid.value;
    min=document.form.nb_min_candid.value;
    if(isNaN(max) && max!=''){
	errors+="*Le nombre maximal de candidats doit être numérique.\n";
    }
    if(isNaN(min) && min!=''){ 
	errors+="*Le nombre minimal de candidats doit être numérique.\n";
    }
    if(min>=max && min!='' && max!=''){
	errors+="*Le nombre maximal de candidats doit être supérieur ou égal au nombre minimal de candidats.\n"; 
    }
    if((min=''&& max!='') || (max='' && min!='')){
	errors+="*Le nombre maximal de candidats doit être supérieur ou égal au nombre minimal de candidats.\n";
    }
    if(errors){
	alert("le formulaire contient les erreurs suivantes :\n\n"+errors);
    }
    document.formReturnValue =(errors == '');
}


function verif_etape11(){
    var errors='';
    document.formReturnValue =(errors == '');
}


function verif_etape12(){
    var errors='';
    if(document.form.pc_date_envavisAnnee.value=="" && document.form.pc_date_envavisMois.value=="" && document.form.pc_date_envavisJour.value=="" ){
	errors+="*Le champ date envois du présent est requis\n";
    }
    if(document.form.pc_date_preinfoAnnee.value=="" && document.form.pc_date_preinfoMois.value=="" && document.form.pc_date_preinfoJour.value=="" ){
	errors+="*Le champ date de la rédaction de l'avis de pré-information est requis\n";
    }
    if(errors){
	alert("Le formulaire contient les erreurs suivantes:\n\n"+errors);
    }
    document.formReturnValue =(errors == '');
}


function verif_etape13(){
    var errors='';
    var count=0;
    m = document.form.cd_dlcJour.selectedIndex;
    j = document.form.cd_diJour.selectedIndex;
    i = document.form.cd_dloJour.selectedIndex;

    if(document.form.cd_dloJour.options[i].value==''){
	count ++;
    }
    if(document.form.cd_diJour.options[j].value==''){
	count ++;
    }
    if(document.form.cd_dlcJour.options[m].value==''){
	count ++;
    }
    if(count>2){
	errors += "Au minimum 2 dates doivent être renseignées.\n";
    }	
    if(errors){
	alert("Le formulaire contient les erreurs suivantes:\n\n"+errors);
    }
    document.formReturnValue =(errors == '');	
}


function verif_etape14(){
    var errors='';
    i = document.form.ar_defetudes.value.length;
    j = document.form.ar_renscomp.value.length;
    k = document.form.ar_detailpai.value.length;
    l = document.form.ar_modpai.value.length;
    m = document.form.ar_nbprimes.value.length;
    if(i<=4 && document.form.ar_defetudes.value!=''){
	errors+="*Le champ définition des études doit comporter au moins 5 caractères\n";
    }
    if(j<=4 && document.form.ar_renscomp.value!=''){
	errors+="*Le champ renseignement complémentaire doit comporter au moins 5 caractères\n";
    }
    if(k<=4 && document.form.ar_detailpai.value!=''){
	errors+="*Le champ détail de paiement doit comporter au moins 5 caractères\n";
    }
    if(l<=4 && document.form.ar_modpai.value!=''){
	errors+="*Le champ modalité de paiement doit comporter au moins 5 caractères\n";
    }
    if(m<=4 && document.form.ar_nbprimes.value!=''){
	errors+="*Le champ nombres et valeurs des primes doit comporter au minimum 5 caractères\n";
    }
    if(errors){
	alert("Le formulaire contient les erreurs suivantes:\n\n"+errors);
    }
    document.formReturnValue =(errors == '');
}


function verif_etape15(){
    var errors='';
    adr = document.form.ac_adr_util.options[document.form.ac_adr_util.selectedIndex].value;
    if(adr=="Choisissez une adresse pour..." && (document.form.ac_nameorga.value!='' || document.form.ac_corres.value!=''|| document.form.ac_adr.value!=''|| document.form.ac_ville.value!=''|| document.form.ac_code.value!=''|| document.form.ac_pays.value!=''|| document.form.ac_tel.value!='' || document.form.ac_telecop.value!='' || document.form.ac_poste.value!='' || document.form.ac_email.value!='' || document.form.ac_site.value!='')){  
	errors+="*Vous devez choisir un type d'adresse complémentaire.\n";
    }
    if(document.form.ac_email.value!=''&&(document.form.ac_email.value.indexOf("@")<=0 || document.form.ac_email.value.indexOf(".")<=0)){
	errors+="* L'adresse mail que vous avez entré n'est pas valide\n";
    }
    if(errors){
	alert("Le formulaire contient les erreurs suivantes:\n\n"+errors);
    }
    document.formReturnValue =(errors == '');
}


function verif_etape16(){
    var errors='';
    var count=0;
    m = document.form.date_deb_pubJour.selectedIndex;
    j = document.form.date_fin_pubJour.selectedIndex;

    if(document.form.date_deb_pubJour.options[m].value==''){
	count ++;
    }
    if(document.form.date_fin_pubJour.options[j].value==''){
	count ++;
    }
    if(count>0){
	errors += "Les 2 dates doivent être renseignées.\n";
    }	
    if(errors){
	alert("Le formulaire contient les erreurs suivantes:\n\n"+errors);
    }
    document.formReturnValue =(errors == '');	
}




function verif_etape17(){
    var errors='';
    if(document.form.f_type_fact[0].checked==false && document.form.f_type_fact[1].checked==false ){
    	errors+="*Le choix d'un type de facturation est requis \n";
    }
    if(document.form.f_num_bon_cmde.value==''){
    	errors+="*Le champ numero de bon de commande est requis\n";
    }
    if(document.form.f_type_fact[0].checked && document.form.f_denom.value==''){
	errors+="*le champ dénomination pour le libellé facture est requis \n";
    }
    if(document.form.f_type_fact[1].checked && document.form.f_code_cli.value==''){
	errors+="*Le champ code client pour le libellé facture est requis \n";
    }  
    if(errors){
	alert("le formulaire contient les erreurs suivantes:\n\n"+errors);
    }
    document.formReturnValue =(errors == '');
}
