var elementName=0;
var elementType=1;
var elementMsg=2;
var elementOption=3;

var i=0;
var typeText=i++;
var typeEmail=i++;
var typeSelect=i++;
var typeRadio=i++;
var typeCheckbox=i++;
var typeCheckPwd=i++;

function checkemail(element)
{
	element.value = element.value.replace(/^\s+|\s+$/g,'');
	var re = /^[\w-\.]+@[a-z0-9_-]+\.?[a-z0-9_-]+\.[a-z]{2,3}$/;
	if (re.exec(element.value) == null)
		return false;
	else
		return true;
}

function checktext(element, minsize)
{
	element.value = element.value.replace(/^\s+|\s+$/g,'');
	if (element.value.length >= minsize)
		return true;
	else
		return false;
}

function checkdate(element) {
  var strDay, strMonth, strYear;
  var intday, intMonth, intYear;
  strYear = element.substr(0, 4);
  strMonth = element.substr(4, 2);
  strDay = element.substr(6);
  intday = parseInt(strDay, 10);
  if (isNaN(intday)) return false;
  intMonth = parseInt(strMonth, 10);
  if (isNaN(intMonth)) return false;
  intYear = parseInt(strYear, 10);
  if (isNaN(intYear))  return false;
  if (intYear < 2001) return false;
  if (intMonth>12 || intMonth<1) return false;
  if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12)	&& (intday > 31 || intday < 1)) return false;
  if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) return false;
  if (intMonth == 2) {
    if (intday < 1) return false;
    if (LeapYear(intYear) == true) {
      if (intday > 29) return false;
    } else {
      if (intday > 28) return false;
    }
  }
  return true;
}

function checkcheckbox(element)
{
	return element.checked;
}

function checkradio(element)
{
	return element.checked;
}

function checkmatchpwd(pwd1,pwd2)
{
	return (pwd1.value == pwd2.value);
}

// à mettre dans la page HTML à checker
//formdesc = [
//	["elementname",typeText,"Alert message if elementname didn't match"],
////["countrylist",	typeText,	"<?=$lblfillin?> <?=$lblcountry?>"]
//];

function checkform(form, formdesc)
{
	var stop,i;
	for (i=0; i<formdesc.length; i++) {
		stop=0;
		var elem = eval("document."+form.name+"."+formdesc[i][elementName]);
		switch (formdesc[i][elementType]) {
			case typeText : 
				if (!checktext(elem,1)) stop = 1;
			break;
			case typeEmail : 
				if (!checkemail(elem)) stop = 1;
			break;
			case typeCheckbox : 
				if (!checkcheckbox(elem)) stop = 1;
			break;			
			case typeRadio :
				stop = 1;
				for(j=0; j<elem.length;j++) {
					if(elem[j].checked==true)
						stop = 0;
				}
			break;
			case typeSelect : 
				if (!checkselect(elem)) stop = 1;
			break;
			case typeCheckPwd : 
				elem2 = eval("document."+form.name+"."+formdesc[i][elementOption]); 
				if (!checkmatchpwd(elem, elem2)) stop = 1;
			break;
		}
		if (stop) {
			alert(formdesc[i][elementMsg]);
			elem.focus();
			return false;
		}
	}
	return true;
}

//String.prototype.LTrim=new Function("return this.replace(/^\\s+/,'')");
//String.prototype.RTrim=new Function("return this.replace(/\\s+$/,'')");
//String.prototype.Trim=new Function("return this.replace(/^\\s+|\\s+$/g,'')");

