// JavaScript Document

function getForm(){
	return document.question;
}
 
//##################
//# GetFormIn puts #
//##################
//radio
function getRadioVal(rb){
	var L=rb.length;var ret="";
	for (var i = 0 ; i< L ; i++){
		if(rb[i].checked) {
			ret=rb[i].value;
			break;
		}
	}
	return(ret);
}
 
//select
function getSelectVal(sel){
	var ret='';
	ret=sel.options[sel.selectedIndex].text;
	return(ret);
}



//#############
//# Control   #
//#############
function isEMail(emailStr){
	var validDomain=false;
  var regEx=/^[a-z0-9&\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*?[a-z]+$/;
	if (regEx.test(emailStr)){
		
	var AtPos = emailStr.lastIndexOf("@");
  var DotPos= emailStr.lastIndexOf(".");
  if((AtPos>0)&&(DotPos>0)&&(AtPos<DotPos)){
		var domainExtList='ac.ad.ae.af.ag.ai.al.am.an.ao.aq.ar.as.at.au.aw.az.ba.bb.bd.be.bf.bg.bh.bi.bj.bm.bn.bo.br.bs.bt.bv.bw.by.bz.ca.cc.cd.cf.cg.ch.ci.ck.cl.cm.cn.co.cr.cs.cu.cv.cx.cy.cz.de.dj.dk.dm.do.dz.ec.ee.eg.eh.er.es.et.fi.fj.fk.fm.fo.fr.fx.ga.gb.gd.ge.gf.gg.gh.gi.gl.gm.gn.gp.gq.gr.gs.gt.gu.gw.gy.hk.hm.hn.hr.ht.hu.id.ie.il.im.in.io.iq.ir.is.it.je.jm.jo.jp.ke.kg.kh.ki.km.kn.kp.kr.kw.ky.kz.la.lb.lc.li.lk.lr.ls.lt.lu.lv.ly.ma.mc.md.mg.mh.mk.ml.mm.mn.mo.mp.mq.mr.ms.mt.mu.mv.mw.mx.my.mz.na.nc.ne.nf.ng.ni.nl.no.np.nr.nt.nu.nz.om.pa.pe.pf.pg.ph.pk.pl.pm.pn.pr.ps.pt.pw.py.qa.re.ro.ru.rw.sa.sb.sc.sd.se.sg.sh.si.sj.sk.sl.sm.sn.so.sr.st.su.sv.sy.sz.tc.td.tf.tg.th.tj.tk.tm.tn.to.tp.tr.tt.tv.tw.tz.ua.ug.uk.um.us.uy.uz.va.vc.ve.vg.vi.vn.vu.wf.ws.ye.yt.yu.za.zm.zr.zw.com.edu.gov.int.mil.net.org.biz.pro.info.aero.name.coop.arpa.nato.museum.EoF';
  	var domainExt=domainExtList.split(".");
		var emailExt=emailStr.substr(DotPos+1);
  	emailExt=emailExt.toLowerCase();
  	for(i=0;domainExt.length;i++){
			if (domainExt[i]=='EoF') {
				break; //infinite loop else
			}
			if (emailExt==domainExt[i]) {
				validDomain=true;
				break;
			}
		}
  }
	}
  return(validDomain);
}

function isAlphaString(NumStr){
	var regEx=/^[A-Za-z\s\-\xco-\xcf\xd6\xdc\xe0-\xf6\xf9-\xfd\xff\x27\x60\x91\xb4\x92\x2c\x2e\x3a]+$/;
  var ret=false;
  if (regEx.test(NumStr)){
		ret=true;
	}
  return ret;
}

//###########
//# Trim    #
//###########

function trim(TRIM_VALUE){
	if(TRIM_VALUE.length < 1){
		return "";
	}
	TRIM_VALUE = RTrim(TRIM_VALUE);
	TRIM_VALUE = LTrim(TRIM_VALUE);
	return TRIM_VALUE;
} //End Function

function RTrim(VALUE){
	var w_space = String.fromCharCode(32);
	var v_length = VALUE.length;
	var strTemp = "";
	if(v_length < 0){
		return "";
	}
	var iTemp = v_length-1;

	while(iTemp > -1){
		if(VALUE.charAt(iTemp) != w_space){
			strTemp = VALUE.substring(0,iTemp+1);
			break;
		}
		iTemp--;
	} //End While
	return strTemp;
} //End Function

function LTrim(VALUE){
	var w_space = String.fromCharCode(32);
	if(v_length < 1){
		return"";
	}
	var v_length = VALUE.length;
	var strTemp = "";
	var iTemp = 0;
	while(iTemp < v_length){
		if(VALUE.charAt(iTemp) != w_space){
			strTemp = VALUE.substring(iTemp,v_length);
			break;
		}
		iTemp = iTemp + 1;
	} //End While
	return strTemp;
} //End Function

//################
//# Verification #
//################

var nb_envoi = 0;

function trimFields(form){
	form.nom.value = trim(form.nom.value);
	form.prénom.value = trim(form.prénom.value);
	form.mail.value = trim(form.mail.value);
}//end function

function verifQuestion(){
	var alertMsg = "Les données saisies contiennent des erreurs :\n\n";
	var errorFound = false;
	var form = getForm();
	trimFields(form);
	
	//verification du nom
	var nom = form.nom.value;
	if(!(nom.length > 0)){
		alertMsg += " - Le champ 'Nom' ne peut être vide\n";
		errorFound = true;
	} else {
		if(!isAlphaString(nom)){
			alertMsg += " - Le champ 'Nom' contient des caratères interdits\n";
			errorFound = true;
		}
	}
	
	//verification du prenom
	var prenom = form.prénom.value;
	if(!(prenom.length > 0)){
		alertMsg += " - Le champ 'Prénom' ne peut être vide\n";
		errorFound = true;
	} else {
		if(!isAlphaString(prenom)){
			alertMsg += " - Le champ 'Prénom' contient des caratères interdits\n";
			errorFound = true;
		}
	}
	
	//verification du mail
	var mail = form.mail.value;
	if(!(mail.length > 0)){
		alertMsg += " - Le champ 'Courriel' ne peut être vide\n";
		errorFound = true;
	} else {
		if(!isEMail(mail)){
			alertMsg += " - Le champ 'Courriel' contient une adresse mail invalide";
			errorFound = true;
		}
	}
	
	//verification du mail
	var texte = form.message.value;
	if(!(texte.length > 0)){
		alertMsg += " - Le champ 'Message' ne peut être vide\n";
		errorFound = true;
	}
	
	if(errorFound){
		alert(alertMsg);
		return false;
	} else {
		form.envoi.disabled = true;
		nb_envoi = 1;
		return true;
	}
}