function control(obj,typ){
	switch (typ){
		case 'numeric':
			if (arguments[2]!=null) var retmp = "^\\d{" + arguments[2] + "}$"; else var retmp = "^\\d+$";
			var re = new RegExp(retmp);
			var result = re.test(obj.value);
			break;
		case 'range':
			if (obj.value!=''){
				if (arguments[3]!=null){
					if (obj.value >= arguments[2] && obj.value <= arguments[3]) var result = true; else var result = false;
				} else {
					if (obj.value >= arguments[2]) var result = true;	else var result = false;
				}
			}	else var result = false;
			break;
		case 'alpha':
			if (obj.value!='') var result = true; else var result = false;
			break;
		case 'email':
			var re = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
			//var re = /^((\w+(\-\w+)*)*\.?(\w+(\-\w+)*))+@((\w+(\-\w+)*)*\.(\w+(\-\w+)*))+$/;
			var result = re.test(obj.value);
			break;
		case 'date':
			var re = /^(0?\d|[012]\d|[3][01])(\/|-|.)(0?\d|[01][012])\2\d{2,4}$/;
			var result = re.test(obj.value);
			var d = parseInt(obj.value.substr(0,2),10);
			var m = parseInt(obj.value.substr(3,2),10);
			var y = parseInt(obj.value.substr(6),10);
			if (result) result = result && isDate(y, m, d);
			break;
		case 'heure':
			var re = /^(0?\d|[1]\d|[2][0123])(\:)(0?\d|[012345]\d)((\:)(0?\d|[012345]\d))?$/;
			var result = re.test(obj.value);
			break;
		case 'selected':
			var result = (obj.selectedIndex!=-1 && obj.selectedIndex!=0);
			break;
		case 'checked':
			var result = false;
			for(var i=0;i<obj.length;i++) if (obj[i].checked) result = true;
			break;
		default:
			var result = false;
			break;
	}
	if (!result) {
		try {
			obj.focus();
		}
		catch (ex) {
		}
	}
	return result;
}

function getYear(d) { 
  return (d < 1000) ? d + 1900 : d;
}

function isDate(year, month, day) {
	month = month - 1;  // javascript month range : 0- 11
	var tempDate = new Date(year,month,day);
	if ( (getYear(tempDate.getYear()) == year) &&
		 (month == tempDate.getMonth()) &&
		 (day == tempDate.getDate()) )
		return true;
	else
		return false;
}
