function trimFields(form) {
	var l = form.getElementsByTagName('INPUT');
	for (var i=0;i<l.length;i++) {
		if (l[i].type!="text" && l[i].type!="password") continue;
		l[i].value = l[i].value.replace(/[\r\n\t]/g,'');
		l[i].value = l[i].value.replace(/(^ +)|( +$)/g,'');
	}
	var l = form.getElementsByTagName('TEXTAREA');
	for (var i=0;i<l.length;i++) {
		l[i].value = l[i].value.replace(/[\r\n]+/g,'\n');
		l[i].value = l[i].value.replace(/(^[\r\n\t ]+)|([\r\n\t ]+$)/g,'');
	}
}
function isFieldsFilled() {
	var ok = true;
	for (var i=0;i<arguments.length;i++) {
		var res = document.getElementById(arguments[i]).value.match(/\w/);
		headlightError(arguments[i],res);
		if (!res) ok = false;
	}
	return ok;
}
function isMail(f) {
	if (document.getElementById(f).value.length==0) return true;
	var res = document.getElementById(f).value.match(/^(\w+\-?\.?_?)*\w+@([\w\-]+\.)+\w+$/);
	headlightError(f,res);
	return res;
}
function isSubdomain(f) {
	var res = document.getElementById(f).value.match(/^[a-z0-9][a-z0-9\-\.]*[a-z0-9]$/i);
	headlightError(f,res);
	return res;
}
function isPassword(f1,f2) {
	if ((document.getElementById(f1).value.length+document.getElementById(f1).value.length)==0) return true;
	var res = document.getElementById(f1).value==document.getElementById(f2).value;
	headlightError(f1,res);
	headlightError(f2,res);
	return res;
}
function isTel(f) {
	if (document.getElementById(f).value.length==0) return true;
	document.getElementById(f).value = document.getElementById(f).value.replace(/\D/g,"");
	var res = document.getElementById(f).value.length==10;
	headlightError(f,res);
	return res;
}
function isDOMTOM(f) {
	if (document.getElementById(f).value.length==0) return true;
	var res = document.getElementById(f).value.match(/^9[7-8]/);
	headlightError(f,res);
	return res;
}
function isRib(f1,f2,f3,f4) {
	var ok = true;
	var s = document.getElementById(f1).value + document.getElementById(f2).value + document.getElementById(f3).value + document.getElementById(f4).value;
	if (s.length==0) return true;
	s = s.toUpperCase();
	//s = s.replace(/[^A-Z0-9]/g,'');
	if (s.length!=23) ok = false;
	var translation = new Array('1','2','3','4','5','6','7','8','9','1','2','3','4','5','6','7','8','9','2','3','4','5','6','7','8','9');
	for (var i=0;i<s.length;i++) {
		var code=s.charCodeAt(i)-65;
		if (code>=0 && code<=25) {
			s = s.substring(0,i) + translation[code] + s.substring(i+1,s.length);
		}
	}

	var c1 = s.substr(0,7);
	var c2 = s.substr(7,8);
	var c3 = s.substr(15,8);

	c2 = (parseFloat(c1)%97).toString()+c2;
	c3 = (parseFloat(c2)%97).toString()+c3;
	if (parseFloat(c3)%97 != 0) ok = false;
	headlightError(f1,ok);
	headlightError(f2,ok);
	headlightError(f3,ok);
	headlightError(f4,ok);
	return ok;
}
function headlightError (f,ok) {
	document.getElementById(f).style.cssText = (ok) ? "" : "border:1px solid red";
}


function setValue(nom,enc) {
	valeur = unescape(enc);
	var objs = document.getElementsByName(nom);
	if (!objs.length) return;
	switch (objs[0].tagName) {
		case 'TEXTAREA':
			objs[0].value=valeur;
		break;
		case 'SELECT':
			for (var i=0; i<objs[0].length; i++) {
				if (objs[0][i].value==valeur) {
					objs[0].selectedIndex=i;
					break;
				}
			}
		break;
		case 'INPUT':
			switch (objs[0].type) {
				case 'text':
					objs[0].value=valeur;
				break;
				case 'hidden':
					objs[0].value=valeur;
				break;
				case 'radio':
					for (var i=0; i<objs.length; i++) {
						if (objs[i].value==valeur) {
							objs[i].checked=true;
							break;
						}
					}
				break;
				case 'checkbox':
					objs[0].checked=true;
				break;
			}
		break;
	}
}

// pr bug safari
function unescape(enc) {
	var t=enc.split('%');
	var dec=t[0];
	for (var i=1;i<t.length;i++) {
		dec+=String.fromCharCode(parseInt(t[i].substr(0,2),16));
		dec+=t[i].substr(2,t[i].length-2);
	}
	return dec;
}
