﻿function __validate(o)
{
	var s 	= null;
	var r 	= true;
	var a 	= o.input;
	var l 	= (typeof(o.lang)=='string')?o.lang:'fr';
	if(typeof(a.length)!='number' || a.length==0) return false;

	for(var j = 0;j<=a.length-1;j++)
	{
		var e 	= a[j][0];
		var t 	= a[j][1];
		var u 	= a[j][3];
		var d 	= root.getObject(a[j][2]);
		var v 	= e.value;

		if(typeof(u)!='undefined'){if(v==u) v='';}

		var p 	= v.match(".{1,}");

		if(p==null)
		{
			r = false;
			if(s==null){s=e;__setFocus(s);}
			if(d!=null) d.innerHTML = (l=='fr')?'Ce champ est vide!':'This field is empty !';
		}
		d.className = (p==null)?'erreurOpen':'erreur';
		if(t=='string' && p!=null)
		{
			var m = v.match("\\d{1,}");
			if(m!=null)
			{
				r = false;
				if(s==null){s=e;__setFocus(s);}
				if(d!=null) d.innerHTML = (l=='fr')?'Les caractères numériques ne sont pas permis!':'Numeric characters are not allowed !';
			}
			d.className = (m!=null)?'erreurOpen':'erreur';
		}
		if(t=='number' && p!=null)
		{
			var m = v.match("\\D{1,}");
			if(m!=null)
			{
				r = false;
				if(s==null){s=e;__setFocus(s);}
				if(d!=null) d.innerHTML = (l=='fr')?'Ce champ devrait contenir uniquement des caractères numériques!':'This field should only contain digits !';
			}
			d.className = (m!=null)?'erreurOpen':'erreur';
		}
		if(t=='alphaNumeric' && p!=null)
		{
			var m = v.match("\\.{1,}");
			if(m!=null)
			{
				r = false;
				if(s==null){s=e;__setFocus(s);}
				if(d!=null) d.innerHTML = (l=='fr')?'Ce champ devrait uniquement contenir des caractères alpha-numériques!':'This field should only contain alpha-numeric characters !';
			}
			d.className = (m!=null)?'erreurOpen':'erreur';
		}
		if(t=='email' && p!=null)
		{
			v = v.toLowerCase();
			var m = v.match("^([_a-z0-9-]+)(\\.[_a-z0-9-]+)*@([a-z0-9-]+)(\\.[a-z0-9-]+)*(\\.[a-z]{2,4})$");
			if(m==null)
			{
				r = false;
				if(s==null){s=e;__setFocus(s);}
				if(d!=null) d.innerHTML = (l=='fr')?'Cette addresse de courriel n\'est pas valide!':'This email is not valid !';
			}
			d.className = (m==null)?'erreurOpen':'erreur';
		}
		if(t=='phone' && p!=null)
		{
			var m = v.match("^[0-9\\-\\(\\)\\ \\.]{10,14}$");
			if(m==null)
			{
				r = false;
				if(s==null){s=e;__setFocus(s);}
				if(d!=null) d.innerHTML = (l=='fr')?'Ce téléphone n\'est pas valide!':'This phone is not valid !';
			}
			d.className = (m==null)?'erreurOpen':'erreur';
		}
	}
	return r;
}
function __setFocus(o)
{
	o.focus();
	o.select();
}