//--------------------------------------------------------------
//	  Fonction javascript de controle de formulaire
//--------------------------------------------------------------


// Test si le champ est vide
// True : vide
// False : pas vide
function vide(champ)
{
	if(champ.length == 0)
	{
		return true;
	}
	else
	{
		return false;
	}
}

//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);
}

//text, password, hidden, textarea, file
function getTextVal(tf)
{
	var ret=tf.value;
	return(ret);
}

//checkbox
function getCheckboxVal(cb)
{var L=cb.length;var ret='';
for (i = 0; i < L; i++)
{if (cb[i].checked==true) {ret += cb[i].value + '\n';}}
return(ret);
}

//select
function getSelectVal(sel)
{var ret='';
ret=sel.options[sel.selectedIndex].text;
return(ret);
}

// Permet de tester si les trois parametres d'une date correspondent à une date reelle
function IsDate(JJ, MM, AAAA)
{if(JJ<1||JJ>31||MM<1||MM>12) return false;
if(MM==2)
{if(JJ==30||JJ==31) return false;
  if(JJ==29) return ((AAAA%4==0&&AAAA%100!=0)||AAAA%400==0);
}
else if(JJ==31) return !(MM==4||MM==6||MM==9||MM==11);
return true;
}

//Permet de tester si l'URL commence bien par http://
function IsURL(lurl)
{
	if(lurl.length > 7 && lurl.substring(0,7)=="http://")
		return true;
	else return false;
}

// Permet de tester si l'email passé en parametre est un email valide
// de la forme xxx@xxxx.domain
function IsEMail(emailStr)
{var validDomain=false;
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.asso.mobi.tel.eu.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);
}


// Permet de tester si l'email passé en parametre est un email valide
// de la forme xxx@nordnet.fr
function IsEMailNN(emailStr)
{var validAddressNN=false;
var AtPos = emailStr.lastIndexOf("@");

if(IsEMail(emailStr))
{
	var monAdresse = emailStr.slice(AtPos);
	monAdresse = monAdresse.toLowerCase();
	if(monAdresse == "@nordnet.fr") {validAddressNN=true;}
}
return(validAddressNN);
}


// Permet de tester si le parametre est un champ numerique
function IsNumber(NumStr)
{var regEx=/^[0-9]+$/;
var ret=false;
if (regEx.test(NumStr)) ret=true;
return ret;
}

// Permet de tester si le parametre est un champ alphanumerique
function IsLettreNum(NumStr)
{var regEx=/^[A-Za-z0-9]+$/;
var ret=false;
if (regEx.test(NumStr)) ret=true;
return ret;
}

// Permet de tester si le parametre est un champ alphanumerique accentué
function IsAdresse(NumStr)
{var regEx=/^[- 0-9),;.(A-Za-z_çâäàéèëêûüùïîöôÿ\']+$/;
var ret=false;
if (regEx.test(NumStr)) ret=true;
return ret;
}

// Permet de tester si le parametre est un champ alphanumerique
function IsNom(NumStr)
{var regEx=/^[- A-Za-z_\']+$/;
var ret=false;
if (regEx.test(NumStr)) ret=true;
return ret;
}

// Permet de tester si le parametre est un champ alphanumerique accentué
function IsNomAccent(NumStr)
{var regEx=/^[- A-Za-z_çâäàéèëêûüùïîöôÿ\']+$/;
var ret=false;
if (regEx.test(NumStr)) ret=true;
return ret;
}

// Permet de tester si le parametre est un champ alphabetique + "." , "_" et "-"
function IsPassword(NumStr)
{var regEx=/^[a-z0-9]+$/;
var ret=false;
if (regEx.test(NumStr)) ret=true;
return ret;
}


// Permet de tester si le parametre est un champ alphabetique
function IsLettre(NumStr)
{var regEx=/^[A-Za-z]+$/;
var ret=false;
if (regEx.test(NumStr)) ret=true;
return ret;
}

// Permet de verifier la validité d'une carte de credit
function isCreditCard(st) {
  // Encoding only works on cards with less than 19 digits with Luhn mod-10
  if (st.length > 19) return (false);
  sum=0;mul=1;l=st.length;
  for(i=0;i<l;i++)
  {digit = st.substring(l-i-1,l-i);
   tproduct = parseInt(digit ,10)*mul;
   if (tproduct >= 10)
    sum += (tproduct % 10) + 1;
   else
    sum += tproduct;
   if (mul == 1)
    mul++;
   else
    mul--;
  }
  if ((sum % 10) == 0)
   return (true);
  else
   return (false);
}

// Teste si le numero appartient à une VISA
function isVisa(cc)
{if(((cc.length==16)||(cc.length==13))&&(cc.substring(0,1)==4)) return isCreditCard(cc);
return false;
}

// Teste si le numero appartient à une MasterCard
function isMasterCard(cc)
{firstdig = cc.substring(0,1);
seconddig = cc.substring(1,2);
if((cc.length==16)&&(firstdig==5)&&((seconddig>=1)&&(seconddig<=5))) return isCreditCard(cc);
  return false;
}

// Teste si le numero appartient à une American express
function isAmericanExpress(cc)
{firstdig = cc.substring(0,1);
seconddig = cc.substring(1,2);
if((cc.length==15)&&(firstdig==3)&&((seconddig==4)||(seconddig==7))) return isCreditCard(cc);
  return false;
}

// Teste si le numero appartient à une carte de credit
function isAnyCard(cc)
{if(!isCreditCard(cc)) return false;
if(!isMasterCard(cc) && !isVisa(cc) && !isAmericanExpress(cc)) return false;
return true;
}
 
// Verifie la validité d'un numéros de telephone
function verifTel(num)
{
	if( num.indexOf(" ") >0) return false;
	if(IsNumber(num) && num.length == 10)
	{	
		return true;
	}
	else return false;
}
		
// Verifie le code postal
function verifCode(code)
{
	if(IsNumber(code) &&  code.length == 5)
		return true;
	else return false;
}



// Supprime les espaces à GAUCHE et à DROITE d'une chaîne
function Trim(TRIM_VALUE){
	if(TRIM_VALUE.length < 1){
		return"";
	}
	TRIM_VALUE = RTrim(TRIM_VALUE);
	TRIM_VALUE = LTrim(TRIM_VALUE);
	
	if(TRIM_VALUE==""){
		return "";
	}
	else{
		return TRIM_VALUE;
	}
} //End Function



// Supprime les espaces à DROITE d'une chaîne
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){
		}
		else{
			strTemp = VALUE.substring(0,iTemp +1);
			break;
		}
		iTemp = iTemp-1;

	} //End While
	return strTemp;

} //End Function



// Supprime les espaces à GAUCHE d'une chaîne
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){
		}
		else{
			strTemp = VALUE.substring(iTemp,v_length);
			break;
		}
		iTemp = iTemp + 1;
	} //End While
	return strTemp;
} //End Function

